Commit 137b3923 by haojie

1

parent 94f8e1e2
<?php
namespace App\Admin\Controllers;
use App\Models\AdminConfig;
use App\Service\AdminConfigService;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Show;
class AdminConfigController extends AdminController
{
public function grid()
{
return Grid::make(new AdminConfig(), function (Grid $grid) {
$grid->column('id')->sortable();
$grid->column('key')->using(AdminConfigService::keyList)->label();
$grid->column('value');
$grid->column('status')->switch();
$grid->column('remark');
$grid->column('created_at')->sortable();
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->panel();
$filter->equal('key')->select(AdminConfigService::keyList)->width(3);
});
$grid->disableBatchDelete();
$grid->disableDeleteButton();
});
}
protected function detail($id)
{
return Show::make($id, new AdminConfig(), function (Show $show) {
$show->field('id');
$show->field('key');
$show->field('value');
$show->field('status');
$show->field('remark');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new AdminConfig(), function (Form $form) {
$form->display('id');
$form->select('key', '类型')->options(AdminConfigService::keyList)->required();
$form->text('value')->required();
$form->switch('status');
$form->textarea('remark');
$form->submitted(function (Form $form) {
// 选择key自动加上name
// $email = $form->keyList;
// $user = \App\Models\User::where('email', $email)->first();
// if (filled($user) && $user->id != $form->getKey()) {
// return $form->response()->error('当前邮箱已经存在了');
// }
});
$form->display('created_at');
$form->display('updated_at');
});
}
}
<?php
namespace App\Admin\Controllers;
use Dcat\Admin\Http\Controllers\AuthController as BaseAuthController;
class AuthController extends BaseAuthController
{
}
<?php
namespace App\Admin\Controllers;
use App\Admin\Metrics\Examples;
use App\Http\Controllers\Controller;
use Dcat\Admin\Http\Controllers\Dashboard;
use Dcat\Admin\Layout\Column;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Layout\Row;
class HomeController extends Controller
{
public function index(Content $content)
{
return $content
->header('Dashboard')
->description('Description...')
->body(function (Row $row) {
$row->column(6, function (Column $column) {
$column->row(Dashboard::title());
$column->row(new Examples\Tickets());
});
$row->column(6, function (Column $column) {
$column->row(function (Row $row) {
$row->column(6, new Examples\NewUsers());
$row->column(6, new Examples\NewDevices());
});
$column->row(new Examples\Sessions());
$column->row(new Examples\ProductOrders());
});
});
}
}
<?php
namespace App\Admin\Metrics\Examples;
use Dcat\Admin\Admin;
use Dcat\Admin\Widgets\Metrics\Donut;
class NewDevices extends Donut
{
protected $labels = ['Desktop', 'Mobile'];
/**
* 初始化卡片内容
*/
protected function init()
{
parent::init();
$color = Admin::color();
$colors = [$color->primary(), $color->alpha('blue2', 0.5)];
$this->title('New Devices');
$this->subTitle('Last 30 days');
$this->chartLabels($this->labels);
// 设置图表颜色
$this->chartColors($colors);
}
/**
* 渲染模板
*
* @return string
*/
public function render()
{
$this->fill();
return parent::render();
}
/**
* 写入数据.
*
* @return void
*/
public function fill()
{
$this->withContent(44.9, 28.6);
// 图表数据
$this->withChart([44.9, 28.6]);
}
/**
* 设置图表数据.
*
* @param array $data
*
* @return $this
*/
public function withChart(array $data)
{
return $this->chart([
'series' => $data
]);
}
/**
* 设置卡片头部内容.
*
* @param mixed $desktop
* @param mixed $mobile
*
* @return $this
*/
protected function withContent($desktop, $mobile)
{
$blue = Admin::color()->alpha('blue2', 0.5);
$style = 'margin-bottom: 8px';
$labelWidth = 120;
return $this->content(
<<<HTML
<div class="d-flex pl-1 pr-1 pt-1" style="{$style}">
<div style="width: {$labelWidth}px">
<i class="fa fa-circle text-primary"></i> {$this->labels[0]}
</div>
<div>{$desktop}</div>
</div>
<div class="d-flex pl-1 pr-1" style="{$style}">
<div style="width: {$labelWidth}px">
<i class="fa fa-circle" style="color: $blue"></i> {$this->labels[1]}
</div>
<div>{$mobile}</div>
</div>
HTML
);
}
}
<?php
namespace App\Admin\Metrics\Examples;
use Dcat\Admin\Widgets\Metrics\Line;
use Illuminate\Http\Request;
class NewUsers extends Line
{
/**
* 初始化卡片内容
*
* @return void
*/
protected function init()
{
parent::init();
$this->title('New Users');
$this->dropdown([
'7' => 'Last 7 Days',
'28' => 'Last 28 Days',
'30' => 'Last Month',
'365' => 'Last Year',
]);
}
/**
* 处理请求
*
* @param Request $request
*
* @return mixed|void
*/
public function handle(Request $request)
{
$generator = function ($len, $min = 10, $max = 300) {
for ($i = 0; $i <= $len; $i++) {
yield mt_rand($min, $max);
}
};
switch ($request->get('option')) {
case '365':
// 卡片内容
$this->withContent(mt_rand(1000, 5000).'k');
// 图表数据
$this->withChart(collect($generator(30))->toArray());
break;
case '30':
// 卡片内容
$this->withContent(mt_rand(400, 1000).'k');
// 图表数据
$this->withChart(collect($generator(30))->toArray());
break;
case '28':
// 卡片内容
$this->withContent(mt_rand(400, 1000).'k');
// 图表数据
$this->withChart(collect($generator(28))->toArray());
break;
case '7':
default:
// 卡片内容
$this->withContent('89.2k');
// 图表数据
$this->withChart([28, 40, 36, 52, 38, 60, 55,]);
}
}
/**
* 设置图表数据.
*
* @param array $data
*
* @return $this
*/
public function withChart(array $data)
{
return $this->chart([
'series' => [
[
'name' => $this->title,
'data' => $data,
],
],
]);
}
/**
* 设置卡片内容.
*
* @param string $content
*
* @return $this
*/
public function withContent($content)
{
return $this->content(
<<<HTML
<div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
<h2 class="ml-1 font-lg-1">{$content}</h2>
<span class="mb-0 mr-1 text-80">{$this->title}</span>
</div>
HTML
);
}
}
<?php
namespace App\Admin\Metrics\Examples;
use Dcat\Admin\Widgets\Metrics\Round;
use Illuminate\Http\Request;
class ProductOrders extends Round
{
/**
* 初始化卡片内容
*/
protected function init()
{
parent::init();
$this->title('Product Orders');
$this->chartLabels(['Finished', 'Pending', 'Rejected']);
$this->dropdown([
'7' => 'Last 7 Days',
'28' => 'Last 28 Days',
'30' => 'Last Month',
'365' => 'Last Year',
]);
}
/**
* 处理请求
*
* @param Request $request
*
* @return mixed|void
*/
public function handle(Request $request)
{
switch ($request->get('option')) {
case '365':
case '30':
case '28':
case '7':
default:
// 卡片内容
$this->withContent(23043, 14658, 4758);
// 图表数据
$this->withChart([70, 52, 26]);
// 总数
$this->chartTotal('Total', 344);
}
}
/**
* 设置图表数据.
*
* @param array $data
*
* @return $this
*/
public function withChart(array $data)
{
return $this->chart([
'series' => $data,
]);
}
/**
* 卡片内容.
*
* @param int $finished
* @param int $pending
* @param int $rejected
*
* @return $this
*/
public function withContent($finished, $pending, $rejected)
{
return $this->content(
<<<HTML
<div class="col-12 d-flex flex-column flex-wrap text-center" style="max-width: 220px">
<div class="chart-info d-flex justify-content-between mb-1 mt-2" >
<div class="series-info d-flex align-items-center">
<i class="fa fa-circle-o text-bold-700 text-primary"></i>
<span class="text-bold-600 ml-50">Finished</span>
</div>
<div class="product-result">
<span>{$finished}</span>
</div>
</div>
<div class="chart-info d-flex justify-content-between mb-1">
<div class="series-info d-flex align-items-center">
<i class="fa fa-circle-o text-bold-700 text-warning"></i>
<span class="text-bold-600 ml-50">Pending</span>
</div>
<div class="product-result">
<span>{$pending}</span>
</div>
</div>
<div class="chart-info d-flex justify-content-between mb-1">
<div class="series-info d-flex align-items-center">
<i class="fa fa-circle-o text-bold-700 text-danger"></i>
<span class="text-bold-600 ml-50">Rejected</span>
</div>
<div class="product-result">
<span>{$rejected}</span>
</div>
</div>
</div>
HTML
);
}
}
<?php
namespace App\Admin\Metrics\Examples;
use Dcat\Admin\Admin;
use Dcat\Admin\Widgets\Metrics\Bar;
use Illuminate\Http\Request;
class Sessions extends Bar
{
/**
* 初始化卡片内容
*/
protected function init()
{
parent::init();
$color = Admin::color();
$dark35 = $color->dark35();
// 卡片内容宽度
$this->contentWidth(5, 7);
// 标题
$this->title('Avg Sessions');
// 设置下拉选项
$this->dropdown([
'7' => 'Last 7 Days',
'28' => 'Last 28 Days',
'30' => 'Last Month',
'365' => 'Last Year',
]);
// 设置图表颜色
$this->chartColors([
$dark35,
$dark35,
$color->primary(),
$dark35,
$dark35,
$dark35
]);
}
/**
* 处理请求
*
* @param Request $request
*
* @return mixed|void
*/
public function handle(Request $request)
{
switch ($request->get('option')) {
case '7':
default:
// 卡片内容
$this->withContent('2.7k', '+5.2%');
// 图表数据
$this->withChart([
[
'name' => 'Sessions',
'data' => [75, 125, 225, 175, 125, 75, 25],
],
]);
}
}
/**
* 设置图表数据.
*
* @param array $data
*
* @return $this
*/
public function withChart(array $data)
{
return $this->chart([
'series' => $data,
]);
}
/**
* 设置卡片内容.
*
* @param string $title
* @param string $value
* @param string $style
*
* @return $this
*/
public function withContent($title, $value, $style = 'success')
{
// 根据选项显示
$label = strtolower(
$this->dropdown[request()->option] ?? 'last 7 days'
);
$minHeight = '183px';
return $this->content(
<<<HTML
<div class="d-flex p-1 flex-column justify-content-between" style="padding-top: 0;width: 100%;height: 100%;min-height: {$minHeight}">
<div class="text-left">
<h1 class="font-lg-2 mt-2 mb-0">{$title}</h1>
<h5 class="font-medium-2" style="margin-top: 10px;">
<span class="text-{$style}">{$value} </span>
<span>vs {$label}</span>
</h5>
</div>
<a href="#" class="btn btn-primary shadow waves-effect waves-light">View Details <i class="feather icon-chevrons-right"></i></a>
</div>
HTML
);
}
}
<?php
namespace App\Admin\Metrics\Examples;
use Dcat\Admin\Widgets\Metrics\RadialBar;
use Illuminate\Http\Request;
class Tickets extends RadialBar
{
/**
* 初始化卡片内容
*/
protected function init()
{
parent::init();
$this->title('Tickets');
$this->height(400);
$this->chartHeight(300);
$this->chartLabels('Completed Tickets');
$this->dropdown([
'7' => 'Last 7 Days',
'28' => 'Last 28 Days',
'30' => 'Last Month',
'365' => 'Last Year',
]);
}
/**
* 处理请求
*
* @param Request $request
*
* @return mixed|void
*/
public function handle(Request $request)
{
switch ($request->get('option')) {
case '365':
case '30':
case '28':
case '7':
default:
// 卡片内容
$this->withContent(162);
// 卡片底部
$this->withFooter(29, 63, '1d');
// 图表数据
$this->withChart(83);
}
}
/**
* 设置图表数据.
*
* @param int $data
*
* @return $this
*/
public function withChart(int $data)
{
return $this->chart([
'series' => [$data],
]);
}
/**
* 卡片内容
*
* @param string $content
*
* @return $this
*/
public function withContent($content)
{
return $this->content(
<<<HTML
<div class="d-flex flex-column flex-wrap text-center">
<h1 class="font-lg-2 mt-2 mb-0">{$content}</h1>
<small>Tickets</small>
</div>
HTML
);
}
/**
* 卡片底部内容.
*
* @param string $new
* @param string $open
* @param string $response
*
* @return $this
*/
public function withFooter($new, $open, $response)
{
return $this->footer(
<<<HTML
<div class="d-flex justify-content-between p-1" style="padding-top: 0!important;">
<div class="text-center">
<p>New Tickets</p>
<span class="font-lg-1">{$new}</span>
</div>
<div class="text-center">
<p>Open Tickets</p>
<span class="font-lg-1">{$open}</span>
</div>
<div class="text-center">
<p>Response Time</p>
<span class="font-lg-1">{$response}</span>
</div>
</div>
HTML
);
}
}
<?php
namespace App\Admin\Metrics\Examples;
use Dcat\Admin\Widgets\Metrics\Card;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
class TotalUsers extends Card
{
/**
* 卡片底部内容.
*
* @var string|Renderable|\Closure
*/
protected $footer;
/**
* 初始化卡片.
*/
protected function init()
{
parent::init();
$this->title('Total Users');
$this->dropdown([
'7' => 'Last 7 Days',
'28' => 'Last 28 Days',
'30' => 'Last Month',
'365' => 'Last Year',
]);
}
/**
* 处理请求.
*
* @param Request $request
*
* @return void
*/
public function handle(Request $request)
{
switch ($request->get('option')) {
case '365':
$this->content(mt_rand(600, 1500));
$this->down(mt_rand(1, 30));
break;
case '30':
$this->content(mt_rand(170, 250));
$this->up(mt_rand(12, 50));
break;
case '28':
$this->content(mt_rand(155, 200));
$this->up(mt_rand(5, 50));
break;
case '7':
default:
$this->content(143);
$this->up(15);
}
}
/**
* @param int $percent
*
* @return $this
*/
public function up($percent)
{
return $this->footer(
"<i class=\"feather icon-trending-up text-success\"></i> {$percent}% Increase"
);
}
/**
* @param int $percent
*
* @return $this
*/
public function down($percent)
{
return $this->footer(
"<i class=\"feather icon-trending-down text-danger\"></i> {$percent}% Decrease"
);
}
/**
* 设置卡片底部内容.
*
* @param string|Renderable|\Closure $footer
*
* @return $this
*/
public function footer($footer)
{
$this->footer = $footer;
return $this;
}
/**
* 渲染卡片内容.
*
* @return string
*/
public function renderContent()
{
$content = parent::renderContent();
return <<<HTML
<div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
<h2 class="ml-1 font-lg-1">{$content}</h2>
</div>
<div class="ml-1 mt-1 font-weight-bold text-80">
{$this->renderFooter()}
</div>
HTML;
}
/**
* 渲染卡片底部内容.
*
* @return string
*/
public function renderFooter()
{
return $this->toString($this->footer);
}
}
<?php
use Dcat\Admin\Admin;
use Dcat\Admin\Grid;
use Dcat\Admin\Form;
use Dcat\Admin\Grid\Filter;
use Dcat\Admin\Show;
/**
* Dcat-admin - admin builder based on Laravel.
* @author jqh <https://github.com/jqhph>
*
* Bootstraper for Admin.
*
* Here you can remove builtin form field:
*
* extend custom field:
* Dcat\Admin\Form::extend('php', PHPEditor::class);
* Dcat\Admin\Grid\Column::extend('php', PHPEditor::class);
* Dcat\Admin\Grid\Filter::extend('php', PHPEditor::class);
*
* Or require js and css assets:
* Admin::css('/packages/prettydocs/css/styles.css');
* Admin::js('/packages/prettydocs/js/main.js');
*
*/
<?php
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Route;
use Dcat\Admin\Admin;
Admin::routes();
Route::group([
'prefix' => config('admin.route.prefix'),
'namespace' => config('admin.route.namespace'),
'middleware' => config('admin.route.middleware'),
], function (Router $router) {
$router->get('/', 'HomeController@index');
// 基础配置
$router->resource('config', 'AdminConfigController');
});
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AdminConfig extends Model
{
use HasFactory;
protected $table = 'admin_config';
protected $fillable = [
'key',
'value',
'status',
'remark',
];
}
<?php
namespace App\Service;
class AdminConfigService
{
// 配置可选项
public const RECEIPT_ACCOUNT = 'receipt_account'; // 收款账号
public const RECEIPT_ACCOUNT_TOKEN = 'receipt_account_token'; // 收款账号私钥
public const INSCRIPTION_SELL_FEE = 'inscription_sell_fee'; // 铭文卖出手续费比例
public const INSCRIPTION_BUY_FEE = 'inscription_buy_fee'; // 铭文买入手续费比例
// 类型列表
public const keyList = [
self::RECEIPT_ACCOUNT => '收款账号',
self::RECEIPT_ACCOUNT_TOKEN => '私钥地址',
self::INSCRIPTION_SELL_FEE => '铭文卖出手续费比例',
self::INSCRIPTION_BUY_FEE => '铭文买入手续费比例',
];
}
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
"license": "MIT", "license": "MIT",
"require": { "require": {
"php": "^8.0.2", "php": "^8.0.2",
"dcat/laravel-admin": "2.2.2-beta",
"guzzlehttp/guzzle": "^7.2", "guzzlehttp/guzzle": "^7.2",
"inertiajs/inertia-laravel": "^0.6.9", "inertiajs/inertia-laravel": "^0.6.9",
"laravel/framework": "^9.19", "laravel/framework": "^9.19",
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
| |
*/ */
'debug' => (bool) env('APP_DEBUG', false), 'debug' => (bool)env('APP_DEBUG', false),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
| |
*/ */
'locale' => 'en', 'locale' => 'zh_CN',
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAdminTables extends Migration
{
public function getConnection()
{
return $this->config('database.connection') ?: config('database.default');
}
public function config($key)
{
return config('admin.'.$key);
}
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create($this->config('database.users_table'), function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('username', 120)->unique();
$table->string('password', 80);
$table->string('name');
$table->string('avatar')->nullable();
$table->string('remember_token', 100)->nullable();
$table->timestamps();
});
Schema::create($this->config('database.roles_table'), function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name', 50);
$table->string('slug', 50)->unique();
$table->timestamps();
});
Schema::create($this->config('database.permissions_table'), function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name', 50);
$table->string('slug', 50)->unique();
$table->string('http_method')->nullable();
$table->text('http_path')->nullable();
$table->integer('order')->default(0);
$table->bigInteger('parent_id')->default(0);
$table->timestamps();
});
Schema::create($this->config('database.menu_table'), function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('parent_id')->default(0);
$table->integer('order')->default(0);
$table->string('title', 50);
$table->string('icon', 50)->nullable();
$table->string('uri', 50)->nullable();
$table->timestamps();
});
Schema::create($this->config('database.role_users_table'), function (Blueprint $table) {
$table->bigInteger('role_id');
$table->bigInteger('user_id');
$table->unique(['role_id', 'user_id']);
$table->timestamps();
});
Schema::create($this->config('database.role_permissions_table'), function (Blueprint $table) {
$table->bigInteger('role_id');
$table->bigInteger('permission_id');
$table->unique(['role_id', 'permission_id']);
$table->timestamps();
});
Schema::create($this->config('database.role_menu_table'), function (Blueprint $table) {
$table->bigInteger('role_id');
$table->bigInteger('menu_id');
$table->unique(['role_id', 'menu_id']);
$table->timestamps();
});
Schema::create($this->config('database.permission_menu_table'), function (Blueprint $table) {
$table->bigInteger('permission_id');
$table->bigInteger('menu_id');
$table->unique(['permission_id', 'menu_id']);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists($this->config('database.users_table'));
Schema::dropIfExists($this->config('database.roles_table'));
Schema::dropIfExists($this->config('database.permissions_table'));
Schema::dropIfExists($this->config('database.menu_table'));
Schema::dropIfExists($this->config('database.role_users_table'));
Schema::dropIfExists($this->config('database.role_permissions_table'));
Schema::dropIfExists($this->config('database.role_menu_table'));
Schema::dropIfExists($this->config('database.permission_menu_table'));
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAdminSettingsTable extends Migration
{
public function getConnection()
{
return $this->config('database.connection') ?: config('database.default');
}
public function config($key)
{
return config('admin.'.$key);
}
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create($this->config('database.settings_table') ?: 'admin_settings', function (Blueprint $table) {
$table->string('slug', 100)->primary();
$table->longText('value');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists($this->config('database.settings_table') ?: 'admin_settings');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAdminExtensionsTable extends Migration
{
public function getConnection()
{
return $this->config('database.connection') ?: config('database.default');
}
public function config($key)
{
return config('admin.'.$key);
}
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create($this->config('database.extensions_table') ?: 'admin_extensions', function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->string('name', 100)->unique();
$table->string('version', 20)->default('');
$table->tinyInteger('is_enabled')->default(0);
$table->text('options')->nullable();
$table->timestamps();
$table->engine = 'InnoDB';
});
Schema::create($this->config('database.extension_histories_table') ?: 'admin_extension_histories', function (Blueprint $table) {
$table->bigIncrements('id')->unsigned();
$table->string('name', 100);
$table->tinyInteger('type')->default(1);
$table->string('version', 20)->default(0);
$table->text('detail')->nullable();
$table->index('name');
$table->timestamps();
$table->engine = 'InnoDB';
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists($this->config('database.extensions_table') ?: 'admin_extensions');
Schema::dropIfExists($this->config('database.extension_histories_table') ?: 'admin_extension_histories');
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class UpdateAdminMenuTable extends Migration
{
public function getConnection()
{
return $this->config('database.connection') ?: config('database.default');
}
public function config($key)
{
return config('admin.'.$key);
}
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table($this->config('database.menu_table'), function (Blueprint $table) {
$table->tinyInteger('show')->default(1)->after('uri');
$table->string('extension', 50)->default('')->after('uri');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table($this->config('database.menu_table'), function (Blueprint $table) {
$table->dropColumn('show');
$table->dropColumn('extension');
});
}
}
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if (!Schema::hasTable('admin_config')) {
Schema::create('admin_config', function (Blueprint $table) {
$table->id();
$table->string('key')->comment('配置项key');
$table->text('value')->comment('配置项value');
// 配置项状态
$table->integer('status')->default(1)->comment('配置项是否启用');
// 配置项备注
$table->text('remark')->nullable()->comment('配置项备注');
$table->timestamps();
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('admin_config');
}
};
<?php
return [
'labels' => [
'AdminConfig' => '配置管理',
'admin-config' => '配置管理',
],
'fields' => [
'key' => '类型',
'value' => '值',
'status' => '状态',
'remark' => '备注',
],
'options' => [
],
];
<?php
return [
'labels' => [
'Extensions' => '扩展',
],
'fields' => [
'alias' => '别名',
'description' => '描述',
'authors' => '开发者',
'homepage' => '主页',
'require' => '依赖',
'require_dev' => '开发环境依赖',
'name' => '包名',
'version' => '版本',
'enable' => '启用',
'config' => '配置',
'imported' => '导入',
],
'options' => [
],
];
<?php
return [
'fields' => [
'id' => 'ID',
'name' => '名称',
'username' => '用户名',
'email' => '邮箱',
'http_path' => 'HTTP路径',
'password' => '密码',
'password_confirmation' => '确认密码',
'created_at' => '创建时间',
'updated_at' => '更新时间',
'permissions' => '权限',
'slug' => '标识',
'user' => '用户',
'order' => '排序',
'ip' => 'IP',
'method' => '方法',
'uri' => 'URI',
'roles' => '角色',
'path' => '路径',
'input' => '输入',
'type' => '类型',
],
'labels' => [
'list' => '列表',
'edit' => '编辑',
'detail' => '详细',
'create' => '创建',
'root' => '顶级',
'scaffold' => '代码生成器',
],
'options' => [
//
],
];
<?php
return [
'titles' => [
'index' => '主页',
'admin' => '系统',
'users' => '管理员',
'roles' => '角色',
'permission' => '权限',
'menu' => '菜单',
'operation_log' => '操作日志',
'helpers' => '开发工具',
'extensions' => '扩展',
'scaffold' => '代码生成器',
'icons' => '图标',
],
];
<?php
return [
'labels' => [
'Extensions' => '擴展',
],
'fields' => [
'alias' => '別名',
'description' => '說明',
'authors' => '作者',
'homepage' => '首頁',
'require' => '依賴',
'require_dev' => '開發環境依賴',
'name' => '名稱',
'version' => '版本',
'enable' => '啟用',
'config' => '設定',
'imported' => '導入',
],
'options' => [
],
];
<?php
return [
'fields' => [
'id' => 'ID',
'name' => '名稱',
'username' => '用戶名',
'email' => '信箱',
'http_path' => 'HTTP路徑',
'password' => '密碼',
'password_confirmation' => '確認密碼',
'created_at' => '建立時間',
'updated_at' => '更新時間',
'permissions' => '權限',
'slug' => '標示',
'user' => '用戶',
'order' => '排序',
'ip' => 'IP',
'method' => '方法',
'uri' => 'URI',
'roles' => '角色',
'path' => '路徑',
'input' => '輸入',
'type' => '类型',
],
'labels' => [
'list' => '列表',
'edit' => '編輯',
'detail' => '詳細',
'create' => '創建',
'root' => 'root',
'scaffold' => '代碼生成器',
],
'options' => [
'permissions' => [
],
],
];
<?php
return [
'titles' => [
'index' => '首頁',
'admin' => '系統',
'users' => '管理員',
'roles' => '角色',
'permission' => '權限',
'menu' => '菜單',
'operation_log' => '操作日誌',
'helpers' => '開發工具',
'extensions' => '擴展',
'scaffold' => '代碼生成器',
'icons' => '圖示',
],
];
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
@font-face{font-family:Nunito;font-style:italic;font-weight:200;src:local('Nunito ExtraLight Italic'),local('Nunito-ExtraLightItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN5MZ9vFUT8_DQ.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:italic;font-weight:200;src:local('Nunito ExtraLight Italic'),local('Nunito-ExtraLightItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN5MZ9vEUT8_DQ.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:italic;font-weight:200;src:local('Nunito ExtraLight Italic'),local('Nunito-ExtraLightItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN5MZ9vKUT8.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:italic;font-weight:300;src:local('Nunito Light Italic'),local('Nunito-LightItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN4oZNvFUT8_DQ.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:italic;font-weight:300;src:local('Nunito Light Italic'),local('Nunito-LightItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN4oZNvEUT8_DQ.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:italic;font-weight:300;src:local('Nunito Light Italic'),local('Nunito-LightItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN4oZNvKUT8.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:italic;font-weight:400;src:local('Nunito Italic'),local('Nunito-Italic'),url(../../fonts/nunito-v10/XRXX3I6Li01BKofIMNaMRs71cA.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:italic;font-weight:400;src:local('Nunito Italic'),local('Nunito-Italic'),url(../../fonts/nunito-v10/XRXX3I6Li01BKofIMNaNRs71cA.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:italic;font-weight:400;src:local('Nunito Italic'),local('Nunito-Italic'),url(../../fonts/nunito-v10/XRXX3I6Li01BKofIMNaDRs4.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:italic;font-weight:600;src:local('Nunito SemiBold Italic'),local('Nunito-SemiBoldItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN5cYtvFUT8_DQ.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:italic;font-weight:600;src:local('Nunito SemiBold Italic'),local('Nunito-SemiBoldItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN5cYtvEUT8_DQ.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:italic;font-weight:600;src:local('Nunito SemiBold Italic'),local('Nunito-SemiBoldItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN5cYtvKUT8.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:italic;font-weight:800;src:local('Nunito ExtraBold Italic'),local('Nunito-ExtraBoldItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN4kYNvFUT8_DQ.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:italic;font-weight:800;src:local('Nunito ExtraBold Italic'),local('Nunito-ExtraBoldItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN4kYNvEUT8_DQ.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:italic;font-weight:800;src:local('Nunito ExtraBold Italic'),local('Nunito-ExtraBoldItalic'),url(../../fonts/nunito-v10/XRXQ3I6Li01BKofIMN4kYNvKUT8.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:200;src:local('Nunito ExtraLight'),local('Nunito-ExtraLight'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofA-seUbuvISTs.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:200;src:local('Nunito ExtraLight'),local('Nunito-ExtraLight'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofA-seUb-vISTs.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:200;src:local('Nunito ExtraLight'),local('Nunito-ExtraLight'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofA-seUYevI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:300;src:local('Nunito Light'),local('Nunito-Light'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAnsSUbuvISTs.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:300;src:local('Nunito Light'),local('Nunito-Light'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAnsSUb-vISTs.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:300;src:local('Nunito Light'),local('Nunito-Light'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAnsSUYevI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:400;src:local('Nunito Regular'),local('Nunito-Regular'),url(../../fonts/nunito-v10/XRXV3I6Li01BKofIOuaBXso.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:400;src:local('Nunito Regular'),local('Nunito-Regular'),url(../../fonts/nunito-v10/XRXV3I6Li01BKofIO-aBXso.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:400;src:local('Nunito Regular'),local('Nunito-Regular'),url(../../fonts/nunito-v10/XRXV3I6Li01BKofINeaB.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:600;src:local('Nunito SemiBold'),local('Nunito-SemiBold'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofA6sKUbuvISTs.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:600;src:local('Nunito SemiBold'),local('Nunito-SemiBold'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofA6sKUb-vISTs.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:600;src:local('Nunito SemiBold'),local('Nunito-SemiBold'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofA6sKUYevI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:800;src:local('Nunito ExtraBold'),local('Nunito-ExtraBold'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAksCUbuvISTs.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:800;src:local('Nunito ExtraBold'),local('Nunito-ExtraBold'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAksCUb-vISTs.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:800;src:local('Nunito ExtraBold'),local('Nunito-ExtraBold'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAksCUYevI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:900;src:local('Nunito Black'),local('Nunito-Black'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAtsGUbuvISTs.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:900;src:local('Nunito Black'),local('Nunito-Black'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAtsGUb-vISTs.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:900;src:local('Nunito Black'),local('Nunito-Black'),url(../../fonts/nunito-v10/XRXW3I6Li01BKofAtsGUYevI.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
\ No newline at end of file
!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},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(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},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=7)}({7:function(e,t,n){e.exports=n(8)},8:function(e,t){function n(e){return(n="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})(e)}function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}!function(e){var t=function(){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.options=$.extend({selector:null,event:"click",method:"POST",key:null,url:null,data:{},confirm:null,calledClass:null,before:function(e,t){},html:function(e,t,n){e.html(t)},success:function(e,t){},error:function(e,t){}},e),this.init()}var r,i,u;return r=t,(i=[{key:"init",value:function(){var t=this,n=t.options;$(n.selector).off(n.event).on(n.event,(function(o){var r=$(this).data(),i=$(this);if(!(i.attr("loading")>0)&&!1!==n.before(r,i,t)){var u=n.confirm;u?e.confirm(u[0],u[1],c):c()}function c(){i.attr("loading",1),Object.assign(r,n.data),t.promise(i,r).then(t.resolve()).catch(t.reject())}}))}},{key:"resolve",value:function(){var t=this.options;return function(n){var o=n[0],r=n[1];!1!==t.success(r,o)&&e.handleJsonResponse(o,{html:t.html,target:r})}}},{key:"reject",value:function(){var t=this.options;return function(o){var r=o[0],i=o[1];!1!==t.success(i,r)&&(r&&"object"===n(r.responseJSON)&&e.error(r.responseJSON.message),console.error(o))}}},{key:"promise",value:function(t,n){var o=this.options;return new Promise((function(r,i){Object.assign(n,{_action:o.calledClass,_key:o.key,_token:e.token}),e.NP.start(),$.ajax({method:o.method,url:o.url,data:n,success:function(n){t.attr("loading",0),e.NP.done(),r([n,t])},error:function(n){t.attr("loading",0),e.NP.done(),i([n,t])}})}))}}])&&o(r.prototype,i),u&&o(r,u),t}();e.Action=function(e){return new t(e)}}(Dcat)}});
//# sourceMappingURL=action.js.map
\ No newline at end of file
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},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(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},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=9)}({16:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.r(t);var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,a;return t=e,(n=[{key:"getChildren",value:function(e,t){var n,r=this,a=[],i=!1;return e.each((function(e,o){r.isTr(o)&&!i&&(n||(n=$(o)),n&&!r.isChildren(t,n)||(r.isChildren(t,o)?a.push(o):i=!0))})),a}},{key:"swapable",value:function(e,t){if(e&&e.length&&t===this.getDepth(e))return!0}},{key:"sibling",value:function(e,t){var n,r=this;return e.each((function(e,a){r.getDepth(a)===t&&!n&&r.isTr(a)&&(n=$(a))})),n}},{key:"isChildren",value:function(e,t){return this.getDepth(t)>this.getDepth(e)}},{key:"getDepth",value:function(e){return parseInt($(e).data("depth")||0)}},{key:"isTr",value:function(e){return"tr"===$(e).prop("tagName").toLocaleLowerCase()}}])&&r(t.prototype,n),a&&r(t,a),e}();function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var o=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=$.extend({button:null,table:null,url:"",perPage:"",showNextPage:"",pageQueryName:"",parentIdQueryName:"",depthQueryName:"",showIcon:"fa-angle-right",hideIcon:"fa-angle-down",loadMoreIcon:'<i class="feather icon-more-horizontal"></i>'},n),this.helper=t,this.key=this.depth=this.row=this.data=this._req=null,this._init()}var t,n,r;return t=e,(n=[{key:"_init",value:function(){var e=this,t=e.options;$(t.button).off("click").click((function(){if(!e._req){var n=$(this),r=$("i",this),a=r.hasClass(t.showIcon);e.key=n.data("key"),e.depth=n.data("depth"),e.row=n.closest("tr"),"0"==n.data("inserted")&&(e.request(1),n.data("inserted",1)),r.toggleClass(t.showIcon+" "+t.hideIcon);var i=[];e.helper.getChildren(e.row.nextAll(),e.row).forEach((function(t){e.helper.getDepth(t)===e.depth+1&&(i.push(t),a?$(t).show():$(t).hide())})),i.forEach((function(n){if(!a){var r=$(n).find("a[data-depth="+e.helper.getDepth(n)+"] i");r.hasClass(t.hideIcon)&&r.parent().click()}}))}}))}},{key:"request",value:function(e,t){var n=this,r=n.row,a=n.key,i=n.depth,o=n.options.table;if(!n._req){n._req=1,Dcat.loading();var l={};l[n.options.parentIdQueryName]=a,l[n.options.depthQueryName]=i+1,l[n.options.pageQueryName.replace(":key",a)]=e,$.ajax({url:n.options.url,type:"GET",data:l,headers:{"X-PJAX":!0},success:function(a){t&&t(),Dcat.loading(!1),n._req=0;var l=n.helper.getChildren(r.nextAll(),r);r=l.length?$(l.pop()):r;var c=$("<div>"+a+"</div>"),u=c.find(o+" tbody"),s=c.find("last-page").text(),f=c.find("next-page").text();if(u.find("tr").each((function(e,t){$(t).attr("data-depth",i+1)})),n.options.showNextPage&&u.find("tr").length==n.options.perPage&&s>=e){var d=$('<tr data-depth="'.concat(i+1,'" data-page="').concat(f,'">\n <td colspan="').concat(r.find("td").length,'" align="center" style="cursor: pointer">\n <a href="#" style="font-size: 1.5rem">').concat(n.options.loadMoreIcon,"</a>\n </td>\n </tr>"));r.after(d),d.click((function(){var e=$(this);n.request(e.data("page"),(function(){e.remove()}))}))}r.after(u.html()),c.find("script").each((function(e,t){r.after(t)})),$("body .extra-html").append(c.find(".extra-html").html()),Dcat.triggerReady()},error:function(e,r,a){t&&t(),Dcat.loading(!1),n._req=0,404!=e.status&&Dcat.handleAjaxError(e,r,a)}})}}}])&&i(t.prototype,n),r&&i(t,r),e}();function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var c=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=$.extend({button:null,url:""},n),this.helper=t,this.direction=this.key=this.depth=this.row=this._req=null,this._init()}var t,n,r;return t=e,(n=[{key:"_init",value:function(){var e=this;$(e.options.button).off("click").click((function(){if(!e._req){e._req=1,Dcat.loading();var t=$(this);e.key=t.data("id"),e.direction=t.data("direction"),e.row=t.closest("tr"),e.depth=e.helper.getDepth(e.row),e.request()}}))}},{key:"request",value:function(){var e=this,t=e.helper,n=e.key,r=e.row,a=e.depth,i=e.direction,o=r.prevAll(),l=r.nextAll(),c=r.prevAll("tr").first(),u=r.nextAll("tr").first();$.put({url:e.options.url.replace(":key",n),data:{_orderable:i},success:function(n){if(Dcat.loading(!1),e._req=0,!n.status)return n.data.message&&Dcat.warning(n.data.message);if(Dcat.success(n.data.message),i){var s=t.sibling(o,a);t.swapable(s,a)&&c.length&&t.getDepth(c)>=a&&(s.before(r),t.getChildren(l,r).forEach((function(e){s.before(e)})))}else{var f=t.sibling(l,a),d=f?t.getChildren(f.nextAll(),f):[];if(t.swapable(f,a)&&u.length&&t.getDepth(u)>=a){l=r.nextAll(),d.length&&(f=$(d.pop()));var h=[];t.getChildren(l,r).forEach((function(e){h.unshift(e)})),h.forEach((function(e){f.after(e)})),f.after(r)}}},error:function(t,n,r){e._req=0,Dcat.loading(!1),Dcat.handleAjaxError(t,n,r)}})}}])&&l(t.prototype,n),r&&l(t,r),e}();function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=$.extend({container:".table-card"},t);var n=this;$(this.options.container).on("table:load",(function(){n.load($(this).data("url"),$(this))}))}var t,n,r;return t=e,(n=[{key:"load",value:function(e,t){var n=this;e&&(t.attr("data-current",e),t.loading({background:"transparent!important"}),Dcat.helpers.asyncRender(e,(function(e){t.loading(!1),t.html(e),n.bind(t),t.trigger("table:loaded")})))}},{key:"bind",value:function(e){var t=this;function n(){return t.load($(this).attr("href"),e),!1}e.find(".pagination .page-link").on("click",n),e.find(".grid-column-header a").on("click",n),e.find("form").on("submit",(function(){return t.load($(this).attr("action")+"&"+$(this).serialize(),e),!1})),e.find(".filter-box .reset").on("click",n),e.find(".grid-selector a").on("click",n),Dcat.ready((function(){setTimeout((function(){e.find(".grid-refresh").off("click").on("click",(function(){return t.load(e.data("current"),e),!1}))}),10)}))}}])&&u(t.prototype,n),r&&u(t,r),e}();!function(e,t){var n=e.Dcat,r=new a;n.grid.Tree=function(e){return new o(r,e)},n.grid.Orderable=function(e){return new c(r,e)},n.grid.AsyncTable=function(e){return new s(e)}}(window,jQuery)},9:function(e,t,n){e.exports=n(16)}});
//# sourceMappingURL=grid-extend.js.map
\ No newline at end of file
.editormd-html-preview code,.editormd-preview-container code{font-size:13px!important;font-family:Inconsolata,Fira Mono,Consolas,Liberation Mono,Menlo,Courier,monospace!important;word-wrap:break-word!important}.markdown-body pre code{box-shadow:none}.com{color:#93939e!important}.tag,.typ{color:#da564a!important}.clo,.opn{color:#93a1a1!important}.atn,.lit{color:#007ee5!important}.atv{color:#fc8bb3!important}.dec,.var{color:teal!important}.fun{color:#dc322f!important}pre.prettyprint{padding:10px;border:1px solid #e1e1e8!important;-moz-tab-size:4!important;-o-tab-size:4!important;tab-size:4!important}pre.prettyprint.linenums{box-shadow:inset 40px 0 0 hsla(0,0%,93.3%,.35),inset 41px 0 0 hsla(0,0%,93.3%,.35)!important}pre.prettyprint.linenums ol.linenums{color:#1e347b!important;padding-left:30px!important;margin-top:0!important;margin-bottom:0}pre.prettyprint.linenums ol.linenums li{color:#bebec5!important;line-height:18px!important;padding-left:12px!important;background:#f7f7f9!important}pre.prettyprint.linenums ol.linenums li.L0,pre.prettyprint.linenums ol.linenums li.L1,pre.prettyprint.linenums ol.linenums li.L2,pre.prettyprint.linenums ol.linenums li.L3,pre.prettyprint.linenums ol.linenums li.L4,pre.prettyprint.linenums ol.linenums li.L5,pre.prettyprint.linenums ol.linenums li.L6,pre.prettyprint.linenums ol.linenums li.L7,pre.prettyprint.linenums ol.linenums li.L8,pre.prettyprint.linenums ol.linenums li.L9{list-style-type:decimal!important}pre.prettyprint{width:100%;border:0!important}.pln{color:#444!important}.kwd{color:#07a!important;font-weight:700}.pun{color:#999!important}.str{color:#2e7d32!important}pre.prettyprint{background-color:#f7f7f9!important;border:0 solid #333}.editormd-html-preview,.editormd-preview-container{padding:0}
\ No newline at end of file
!function(e){var t={};function n(i){if(t[i])return t[i].exports;var l=t[i]={i:i,l:!1,exports:{}};return e[i].call(l.exports,l,l.exports,n),l.l=!0,l.exports}n.m=e,n.c=t,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(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(i,l,function(t){return e[t]}.bind(null,l));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=10)}({10:function(e,t,n){e.exports=n(11)},11:function(e,t){!function(e){function t(e){e=$.extend({dialog:null,container:null,input:null,button:".submit-btn",cancel:".cancel-btn",table:".async-table",multiple:!1,max:0,values:[],lang:{exceed_max_item:Dcat.lang.exceed_max_item||"已超出最大可选择的数量"}},e);this.options=e,this.$input=$(e.input),this.selected={},this.init()}t.prototype={init:function(){var e=this,t=e.options,n=t.values;for(var i in e.labels={},n)e.labels[n[i].id]=n[i].label;e.resetSelected(),$(document).on("dialog:shown",t.dialog,(function(){e.$dialog=$(t.dialog),e.$button=e.$dialog.find(t.button),e.$cancel=e.$dialog.find(t.cancel),e.$button.on("click",(function(){var t=e.getSelectedRows();e.setKeys(t[1]),e.render(t[0]),e.$dialog.trigger("dialog:close"),e.resetSelected()})),e.$cancel.on("click",(function(){e.$dialog.trigger("dialog:close")})),e.bind(),e.resetSelected()})),e.render(n)},bind:function(){var e=this,t=e.options;e.$dialog.find(t.table).on("table:loaded",(function(){var n=e.getCheckbox();t.multiple||$(this).find(".checkbox-grid-header").remove(),n.on("change",(function(){var i=$(this),l=i.data("id"),o=i.data("label");if(this.checked){if(t.multiple||(e.selected={}),e.selected[l]={id:l,label:o},t.max&&e.getSelectedRows()[0].length>t.max)return i.prop("checked",!1),delete e.selected[l],Dcat.warning(e.options.lang.exceed_max_item)}else delete e.selected[l];t.multiple||this.checked&&n.each((function(){var e=$(this);e.data("id")!=l&&(e.prop("checked",!1),e.parents("tr").css("background-color",""))}))})),n.each((function(){var t=$(this),n=t.data("id");for(var i in e.labels[n]=t.data("label"),e.selected)n!=i||t.prop("checked",!0).trigger("change");t.trigger("change")}))}))},resetSelected:function(){var e=this.getKeys();for(var t in this.selected={},e)this.selected[e[t]]={id:e[t],label:this.labels[e[t]]}},getCheckbox:function(){return this.$dialog.find('.checkbox-grid-column input[type="checkbox"]')},getSelectedRows:function(){var e=[],t=[];for(var n in this.selected)this.selected[n]&&(t.push(n),e.push(this.selected[n]));return[e,t]},render:function(e){var t=this.options,n=$(t.container),i=n.find(".default-text"),l=n.find(".option");return e&&e.length?(i.addClass("d-none"),l.removeClass("d-none"),t.multiple?function(e,t,n){var i=[],l=$(n.container),o=l.find(".default-text"),a=l.find(".option");l.hasClass("select2")||l.addClass("select2 select2-container select2-container--default select2-container--below");for(var c in l.removeClass("form-control"),e)i.push('<li class="select2-selection__choice" >\n '.concat(e[c].label,' <span data-id="').concat(e[c].id,'" class="select2-selection__choice__remove remove " role="presentation"> ×</span>\n</li>'));i.unshift('<span class="select2-selection__clear remove-all">×</span>'),i='<span class="select2-selection select2-selection--multiple">\n <ul class="select2-selection__rendered">'.concat(i.join(""),"</ul>\n </span>");var s=$(i);function r(){a.html(""),o.removeClass("d-none"),a.addClass("d-none"),l.addClass("form-control"),t.setKeys([])}a.html(s),s.find(".remove").on("click",(function(){var e=$(this);t.deleteKey(e.data("id")),e.parent().remove(),t.getKeys().length||r()})),s.find(".remove-all").on("click",r)}(e,this,t):function(e,t,n){var i=$(n.container),l=i.find(".default-text"),o=i.find(".option"),a=$("<div class='pull-right ' style='font-weight:bold;cursor:pointer'>×</div>");o.text(e[0].label),o.append(a),a.on("click",(function(){t.setKeys([]),l.removeClass("d-none"),o.addClass("d-none")}))}(e,this,t)):(i.removeClass("d-none"),l.addClass("d-none"),void(t.multiple&&n.addClass("form-control")))},setKeys:function(e){this.$input.val(e.length?e.join(","):"").trigger("change")},deleteKey:function(e){var t=this.getKeys(),n=[];for(var i in t)t[i]!=e&&n.push(t[i]);this.setKeys(n)},getKeys:function(){var e=this.$input.val();return e?String(e).split(","):[]}},Dcat.grid.SelectTable=function(e){return new t(e)}}(window)}});
//# sourceMappingURL=select-table.js.map
\ No newline at end of file
.webuploader-container{position:relative}.web-uploader .queueList{border-radius:.25rem;border-color:#dbe3e6!important}.webuploader-element-invisible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.webuploader-pick{will-change:box-shadow!important;box-shadow:0 3px 1px -2px rgba(0,0,0,.065),0 2px 2px 0 rgba(0,0,0,.065),0 1px 5px 1px rgba(0,0,0,.065);border:1px solid transparent;display:inline-block;padding:.55rem 12px;border-radius:.2rem;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;color:#fff}.webuploader-pick-hover{opacity:.9}.webuploader-pick-disable{opacity:.6;pointer-events:none}.web-uploader{border:0;color:#555;font-size:12px;margin-top:10px;background-color:transparent}.web-uploader.disabled{background-color:#eee;min-height:34px;cursor:not-allowed}.web-uploader.file{border:0}.element-invisible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.web-uploader .placeholder{border:3px dashed #e6e6e6;text-align:center;color:#ccc;font-size:16px;position:relative}.web-uploader .placeholder .webuploader-pick{border-radius:3px;line-height:34px;padding:0 25px;color:#fff;display:inline-block;margin:0 auto 15px;cursor:pointer}.web-uploader .placeholder .webuploader-pick-hover{opacity:.9}.web-uploader .placeholder p{margin:0 0 15px}.web-uploader .placeholder .flashTip{color:#666;font-size:12px;position:absolute;width:100%;text-align:center;bottom:20px}.web-uploader .placeholder .flashTip a{text-decoration:none}.web-uploader .placeholder .flashTip a:hover{text-decoration:underline}.web-uploader .placeholder.webuploader-dnd-over{border-color:#999}.web-uploader .placeholder.webuploader-dnd-over.webuploader-dnd-denied{border-color:#bd4147}.web-uploader .filelist{list-style:none;margin:0;padding:0}.web-uploader .filelist:after{content:"";display:block;width:0;height:0;overflow:hidden;clear:both}.web-uploader .filelist li{width:120px;text-align:center;position:relative;float:left;overflow:hidden;border-radius:2px;font-size:12px;border:1px solid #dbe3e6;background:#fff;display:table;margin:8px;height:160px;padding:6px;vertical-align:middle}.web-uploader.file .filelist li{width:100%;height:38px;background:#fff;box-shadow:0 3px 1px -2px rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.05),0 1px 5px 1px rgba(0,0,0,.05);margin:0 8px 10px 0;border-radius:.25rem;border:0;padding:0}.web-uploader.file .filelist li .file-action{float:right;margin:12px 10px 0;cursor:pointer;font-size:1rem;position:absolute;right:0}.web-uploader .filelist li p.log{position:relative;top:-45px}.web-uploader .filelist li p.title{left:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;top:35px;text-indent:5px;width:160px;text-align:center;padding-top:4px;font-size:11px;color:#555;margin:3px auto}.web-uploader.file .filelist li p.title{font-weight:600;font-size:1rem;vertical-align:middle;height:38px;line-height:30px;padding-left:8px;float:left;text-align:left;max-width:100%}.web-uploader .filelist .file-type{display:none;font-size:18px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2);margin:20px 0 5px;height:105px}.web-uploader .filelist li p.upload-progress{position:absolute;width:100%;bottom:0;left:0;height:8px;overflow:hidden;z-index:50}.web-uploader .filelist li p.upload-progress span{display:none;overflow:hidden;width:0;height:100%;-webit-transition:width .2s linear;transition:width .2s linear;-webkit-animation:progressmove 2s linear infinite;animation:progressmove 2s linear infinite;-webkit-transform:translateZ(0)}@-webkit-keyframes progressmove{0%{background-position:0 0}to{background-position:17px 0}}@keyframes progressmove{0%{background-position:0 0}to{background-position:17px 0}}.web-uploader .filelist li .imgWrap{position:relative;z-index:2;line-height:100%;vertical-align:middle;overflow:hidden;width:100%;height:120px;transform-origin:50% 50%;-webit-transition:.2s ease-out;transition:.2s ease-out;margin-bottom:0}.web-uploader .filelist li img{max-width:95%;height:120px;-o-object-fit:cover;object-fit:cover}.web-uploader .filelist li p.error{background:#bd4147;color:#fff;position:absolute;bottom:0;left:0;height:28px;line-height:28px;width:100%;z-index:100}.web-uploader.file .filelist li p.error{background:#bd4147;color:#fff;font-weight:500;padding:0 20px;width:auto;margin-left:40%;top:0}.web-uploader .filelist li .success{display:block;position:absolute;left:0;bottom:0;height:40px;width:100%;z-index:2}.web-uploader .filelist li .success em{position:absolute;right:0;border-color:transparent transparent #21b978;border-style:solid;border-width:0 0 33px 40px;bottom:-1px}.web-uploader li .success i{position:absolute;bottom:5px;right:0;color:#fff;background:none;border:none;font-weight:700;outline:none;text-align:center;width:20px}.web-uploader .filelist div.file-panel{position:absolute;height:32px;width:100%;bottom:0;left:0;overflow:hidden;z-index:10}.web-uploader .filelist div.file-panel span{display:inline;float:left;width:24px;height:24px;line-height:26px;overflow:hidden;margin:5px 3px;font-weight:700;cursor:pointer;color:#fff;border-radius:1px;font-size:14px}.web-uploader .filelist div.file-panel a:first-child{margin-left:6px}.web-uploader .filelist div.file-panel a{float:left;box-shadow:none;padding-left:8px!important;padding-right:8px!important}.web-uploader .statusBar{vertical-align:middle;position:relative}.web-uploader.file .statusBar{border-top:0;padding:0}.web-uploader .statusBar .upload-progress{border:0;width:198px;height:18px;display:inline-block;text-align:center;line-height:45px;color:#fff;margin-top:20px;position:relative;margin-right:10px;border-radius:2px}.web-uploader .statusBar .upload-progress span.percentage{width:0;height:100%;left:0;top:0;position:absolute}.web-uploader .statusBar .upload-progress span.text{position:relative;z-index:10}.web-uploader .statusBar .info{display:inline-block;font-size:14px;color:#666!important;margin-top:20px}.web-uploader .statusBar .btns{margin-top:4px;right:20px;line-height:40px;float:right}.web-uploader.file .statusBar .btns{right:0}.add-file-button{display:inline-block;float:left}.web-uploader .placeholder:before{font-family:feather;font-size:58px;content:"\E8E3"}.red-dark{color:#bd4147}.green{color:#21b978}.icon-success{font-weight:700;font-size:17px;display:none}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
/*!
* Bootstrap Colorpicker - Bootstrap Colorpicker is a modular color picker plugin for Bootstrap 4.
* @package bootstrap-colorpicker
* @version v3.2.0
* @license MIT
* @link https://itsjavi.com/bootstrap-colorpicker/
* @link https://github.com/itsjavi/bootstrap-colorpicker.git
*/
.colorpicker{position:relative;display:none;font-size:inherit;color:inherit;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);padding:.75rem .75rem;width:148px;border-radius:4px;-webkit-box-sizing:content-box;box-sizing:content-box}.colorpicker.colorpicker-disabled,.colorpicker.colorpicker-disabled *{cursor:default!important}.colorpicker div{position:relative}.colorpicker-popup{position:absolute;top:100%;left:0;float:left;margin-top:1px;z-index:1060}.colorpicker-popup.colorpicker-bs-popover-content{position:relative;top:auto;left:auto;float:none;margin:0;z-index:initial;border:none;padding:.25rem 0;border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.colorpicker:after,.colorpicker:before{content:"";display:table;clear:both;line-height:0}.colorpicker-clear{clear:both;display:block}.colorpicker:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);position:absolute;top:-7px;left:auto;right:6px}.colorpicker:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:auto;right:7px}.colorpicker.colorpicker-with-alpha{width:170px}.colorpicker.colorpicker-with-alpha .colorpicker-alpha{display:block}.colorpicker-saturation{position:relative;width:126px;height:126px;background:-webkit-gradient(linear,left top,left bottom,from(transparent),to(black)),-webkit-gradient(linear,left top,right top,from(white),to(rgba(255,255,255,0)));background:linear-gradient(to bottom,transparent 0,#000 100%),linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%);cursor:crosshair;float:left;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2);margin-bottom:6px}.colorpicker-saturation .colorpicker-guide{display:block;height:6px;width:6px;border-radius:6px;border:1px solid #000;-webkit-box-shadow:0 0 0 1px rgba(255,255,255,.8);box-shadow:0 0 0 1px rgba(255,255,255,.8);position:absolute;top:0;left:0;margin:-3px 0 0 -3px}.colorpicker-alpha,.colorpicker-hue{position:relative;width:16px;height:126px;float:left;cursor:row-resize;margin-left:6px;margin-bottom:6px}.colorpicker-alpha-color{position:absolute;top:0;left:0;width:100%;height:100%}.colorpicker-alpha-color,.colorpicker-hue{-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.colorpicker-alpha .colorpicker-guide,.colorpicker-hue .colorpicker-guide{display:block;height:4px;background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.4);position:absolute;top:0;left:0;margin-left:-2px;margin-top:-2px;right:-2px;z-index:1}.colorpicker-hue{background:-webkit-gradient(linear,left bottom,left top,from(red),color-stop(8%,#ff8000),color-stop(17%,#ff0),color-stop(25%,#80ff00),color-stop(33%,#0f0),color-stop(42%,#00ff80),color-stop(50%,#0ff),color-stop(58%,#0080ff),color-stop(67%,#00f),color-stop(75%,#8000ff),color-stop(83%,#ff00ff),color-stop(92%,#ff0080),to(red));background:linear-gradient(to top,red 0,#ff8000 8%,#ff0 17%,#80ff00 25%,#0f0 33%,#00ff80 42%,#0ff 50%,#0080ff 58%,#00f 67%,#8000ff 75%,#ff00ff 83%,#ff0080 92%,red 100%)}.colorpicker-alpha{background:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),#fff;background-size:10px 10px;background-position:0 0,5px 5px;display:none}.colorpicker-bar{min-height:16px;margin:6px 0 0 0;clear:both;text-align:center;font-size:10px;line-height:normal;max-width:100%;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.colorpicker-bar:before{content:"";display:table;clear:both}.colorpicker-bar.colorpicker-bar-horizontal{height:126px;width:16px;margin:0 0 6px 0;float:left}.colorpicker-input-addon{position:relative}.colorpicker-input-addon i{display:inline-block;cursor:pointer;vertical-align:text-top;height:16px;width:16px;position:relative}.colorpicker-input-addon:before{content:"";position:absolute;width:16px;height:16px;display:inline-block;vertical-align:text-top;background:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),#fff;background-size:10px 10px;background-position:0 0,5px 5px}.colorpicker.colorpicker-inline{position:relative;display:inline-block;float:none;z-index:auto;vertical-align:text-bottom}.colorpicker.colorpicker-horizontal{width:126px;height:auto}.colorpicker.colorpicker-horizontal .colorpicker-bar{width:126px}.colorpicker.colorpicker-horizontal .colorpicker-saturation{float:none;margin-bottom:0}.colorpicker.colorpicker-horizontal .colorpicker-alpha,.colorpicker.colorpicker-horizontal .colorpicker-hue{float:none;width:126px;height:16px;cursor:col-resize;margin-left:0;margin-top:6px;margin-bottom:0}.colorpicker.colorpicker-horizontal .colorpicker-alpha .colorpicker-guide,.colorpicker.colorpicker-horizontal .colorpicker-hue .colorpicker-guide{position:absolute;display:block;bottom:-2px;left:0;right:auto;height:auto;width:4px}.colorpicker.colorpicker-horizontal .colorpicker-hue{background:-webkit-gradient(linear,right top,left top,from(red),color-stop(8%,#ff8000),color-stop(17%,#ff0),color-stop(25%,#80ff00),color-stop(33%,#0f0),color-stop(42%,#00ff80),color-stop(50%,#0ff),color-stop(58%,#0080ff),color-stop(67%,#00f),color-stop(75%,#8000ff),color-stop(83%,#ff00ff),color-stop(92%,#ff0080),to(red));background:linear-gradient(to left,red 0,#ff8000 8%,#ff0 17%,#80ff00 25%,#0f0 33%,#00ff80 42%,#0ff 50%,#0080ff 58%,#00f 67%,#8000ff 75%,#ff00ff 83%,#ff0080 92%,red 100%)}.colorpicker.colorpicker-horizontal .colorpicker-alpha{background:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),#fff;background-size:10px 10px;background-position:0 0,5px 5px}.colorpicker-inline:before,.colorpicker-no-arrow:before,.colorpicker-popup.colorpicker-bs-popover-content:before{content:none;display:none}.colorpicker-inline:after,.colorpicker-no-arrow:after,.colorpicker-popup.colorpicker-bs-popover-content:after{content:none;display:none}.colorpicker-alpha,.colorpicker-hue,.colorpicker-saturation{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.colorpicker-alpha.colorpicker-visible,.colorpicker-bar.colorpicker-visible,.colorpicker-hue.colorpicker-visible,.colorpicker-saturation.colorpicker-visible,.colorpicker.colorpicker-visible{display:block}.colorpicker-alpha.colorpicker-hidden,.colorpicker-bar.colorpicker-hidden,.colorpicker-hue.colorpicker-hidden,.colorpicker-saturation.colorpicker-hidden,.colorpicker.colorpicker-hidden{display:none}.colorpicker-inline.colorpicker-visible{display:inline-block}.colorpicker.colorpicker-disabled:after{border:none;content:'';display:block;width:100%;height:100%;background:rgba(233,236,239,.33);top:0;left:0;right:auto;z-index:2;position:absolute}.colorpicker.colorpicker-disabled .colorpicker-guide{display:none}.colorpicker-preview{background:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),#fff;background-size:10px 10px;background-position:0 0,5px 5px}.colorpicker-preview>div{position:absolute;left:0;top:0;width:100%;height:100%}.colorpicker-bar.colorpicker-swatches{-webkit-box-shadow:none;box-shadow:none;height:auto}.colorpicker-swatches--inner{clear:both;margin-top:-6px}.colorpicker-swatch{position:relative;cursor:pointer;float:left;height:16px;width:16px;margin-right:6px;margin-top:6px;margin-left:0;display:block;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2);background:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%,rgba(0,0,0,.1) 0),#fff;background-size:10px 10px;background-position:0 0,5px 5px}.colorpicker-swatch--inner{position:absolute;top:0;left:0;width:100%;height:100%}.colorpicker-swatch:nth-of-type(7n+0){margin-right:0}.colorpicker-with-alpha .colorpicker-swatch:nth-of-type(7n+0){margin-right:6px}.colorpicker-with-alpha .colorpicker-swatch:nth-of-type(8n+0){margin-right:0}.colorpicker-horizontal .colorpicker-swatch:nth-of-type(6n+0){margin-right:0}.colorpicker-horizontal .colorpicker-swatch:nth-of-type(7n+0){margin-right:6px}.colorpicker-horizontal .colorpicker-swatch:nth-of-type(8n+0){margin-right:6px}.colorpicker-swatch:last-of-type:after{content:"";display:table;clear:both}.colorpicker-element input[dir=rtl],.colorpicker-element[dir=rtl] input,[dir=rtl] .colorpicker-element input{direction:ltr;text-align:right}
/*# sourceMappingURL=bootstrap-colorpicker.min.css.map */
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
/*!
* Datetimepicker for Bootstrap 3
* version : 4.17.47
* https://github.com/Eonasdan/bootstrap-datetimepicker/
*/
.bootstrap-datetimepicker-widget {
list-style: none;
}
.bootstrap-datetimepicker-widget.dropdown-menu {
display: block;
margin: 2px 0;
padding: 4px;
width: 19em;
}
@media (min-width: 576px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
@media (min-width: 768px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
@media (min-width: 992px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
.bootstrap-datetimepicker-widget.dropdown-menu:before,
.bootstrap-datetimepicker-widget.dropdown-menu:after {
content: '';
display: inline-block;
position: absolute;
}
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-bottom-color: rgba(0, 0, 0, 0.2);
top: -7px;
left: 7px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid white;
top: -6px;
left: 8px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.top:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 7px solid #ccc;
border-top-color: rgba(0, 0, 0, 0.2);
bottom: -7px;
left: 6px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.top:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid white;
bottom: -6px;
left: 7px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
left: auto;
right: 6px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
left: auto;
right: 7px;
}
.bootstrap-datetimepicker-widget .list-unstyled {
margin: 0;
}
.bootstrap-datetimepicker-widget a[data-action] {
padding: 6px 0;
}
.bootstrap-datetimepicker-widget a[data-action]:active {
box-shadow: none;
}
.bootstrap-datetimepicker-widget .timepicker-hour,
.bootstrap-datetimepicker-widget .timepicker-minute,
.bootstrap-datetimepicker-widget .timepicker-second {
width: 54px;
font-weight: bold;
font-size: 1.2em;
margin: 0;
}
.bootstrap-datetimepicker-widget button[data-action] {
padding: 6px;
}
.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle AM/PM";
}
.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Clear the picker";
}
.bootstrap-datetimepicker-widget .btn[data-action="today"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Set the date to today";
}
.bootstrap-datetimepicker-widget .picker-switch {
text-align: center;
}
.bootstrap-datetimepicker-widget .picker-switch::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle Date and Time Screens";
}
.bootstrap-datetimepicker-widget .picker-switch td {
padding: 0;
margin: 0;
height: auto;
width: auto;
line-height: inherit;
}
.bootstrap-datetimepicker-widget .picker-switch td span,
.bootstrap-datetimepicker-widget .picker-switch td i {
line-height: 2.5;
height: 2.5em;
width: 100%;
}
.bootstrap-datetimepicker-widget table {
width: 100%;
margin: 0;
}
.bootstrap-datetimepicker-widget table td,
.bootstrap-datetimepicker-widget table th {
text-align: center;
border-radius: 0.25rem;
padding: 0.5em;
}
.bootstrap-datetimepicker-widget table th {
height: 20px;
line-height: 20px;
width: 20px;
}
.bootstrap-datetimepicker-widget table th.picker-switch {
width: 145px;
}
.bootstrap-datetimepicker-widget table th.disabled,
.bootstrap-datetimepicker-widget table th.disabled:hover {
background: none;
color: #dee2e6;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget table th.prev::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Previous Month";
}
.bootstrap-datetimepicker-widget table th.next::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Next Month";
}
.bootstrap-datetimepicker-widget table thead tr:first-child th {
cursor: pointer;
}
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover {
background: #f8f9fa;
}
.bootstrap-datetimepicker-widget table td {
height: 54px;
line-height: 54px;
width: 54px;
}
.bootstrap-datetimepicker-widget table td.cw {
font-size: .8em;
height: 20px;
line-height: 20px;
color: #dee2e6;
}
.bootstrap-datetimepicker-widget table td.day {
height: 20px;
line-height: 20px;
width: 20px;
}
.bootstrap-datetimepicker-widget table td.day:hover,
.bootstrap-datetimepicker-widget table td.hour:hover,
.bootstrap-datetimepicker-widget table td.minute:hover,
.bootstrap-datetimepicker-widget table td.second:hover {
background: #f8f9fa;
cursor: pointer;
}
.bootstrap-datetimepicker-widget table td.old,
.bootstrap-datetimepicker-widget table td.new {
color: #dee2e6;
}
.bootstrap-datetimepicker-widget table td.today {
position: relative;
}
.bootstrap-datetimepicker-widget table td.today:before {
content: '';
display: inline-block;
border: solid transparent;
border-width: 0 0 7px 7px;
border-bottom-color: #dee2e6;
border-top-color: rgba(0, 0, 0, 0.2);
position: absolute;
bottom: 4px;
right: 4px;
}
.bootstrap-datetimepicker-widget table td.active,
.bootstrap-datetimepicker-widget table td.active:hover {
background-color: #dee2e6;
color: #007bff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.bootstrap-datetimepicker-widget table td.active.today:before {
border-bottom-color: #fff;
}
.bootstrap-datetimepicker-widget table td.disabled,
.bootstrap-datetimepicker-widget table td.disabled:hover {
background: none;
color: #dee2e6;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget table td span,
.bootstrap-datetimepicker-widget table td i {
display: inline-block;
width: 54px;
height: 54px;
line-height: 54px;
margin: 2px 1.5px;
cursor: pointer;
border-radius: 0.25rem;
}
.bootstrap-datetimepicker-widget table td span:hover,
.bootstrap-datetimepicker-widget table td i:hover {
background: #f8f9fa;
}
.bootstrap-datetimepicker-widget table td span.active,
.bootstrap-datetimepicker-widget table td i.active {
background-color: #dee2e6;
color: #007bff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.bootstrap-datetimepicker-widget table td span.old,
.bootstrap-datetimepicker-widget table td i.old {
color: #dee2e6;
}
.bootstrap-datetimepicker-widget table td span.disabled,
.bootstrap-datetimepicker-widget table td i.disabled,
.bootstrap-datetimepicker-widget table td span.disabled:hover,
.bootstrap-datetimepicker-widget table td i.disabled:hover {
background: none;
color: #dee2e6;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget.usetwentyfour td.hour {
height: 27px;
line-height: 27px;
}
.bootstrap-datetimepicker-widget.wider {
width: 21em;
}
.bootstrap-datetimepicker-widget .datepicker-decades .decade {
line-height: 1.8em !important;
}
.input-group.date .input-group-addon {
cursor: pointer;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
/*!
* Datetimepicker for Bootstrap 3
* version : 4.17.47
* https://github.com/Eonasdan/bootstrap-datetimepicker/
*/.bootstrap-datetimepicker-widget{list-style:none}.bootstrap-datetimepicker-widget.dropdown-menu{display:block;margin:2px 0;padding:4px;width:19em}@media (min-width:576px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:768px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:992px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}.bootstrap-datetimepicker-widget.dropdown-menu:before,.bootstrap-datetimepicker-widget.dropdown-menu:after{content:'';display:inline-block;position:absolute}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);top:-7px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid white;top:-6px;left:8px}.bootstrap-datetimepicker-widget.dropdown-menu.top:before{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);bottom:-7px;left:6px}.bootstrap-datetimepicker-widget.dropdown-menu.top:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid white;bottom:-6px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget .list-unstyled{margin:0}.bootstrap-datetimepicker-widget a[data-action]{padding:6px 0}.bootstrap-datetimepicker-widget a[data-action]:active{box-shadow:none}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:54px;font-weight:bold;font-size:1.2em;margin:0}.bootstrap-datetimepicker-widget button[data-action]{padding:6px}.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Increment Hours"}.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Increment Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Decrement Hours"}.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Decrement Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Show Hours"}.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Show Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Toggle AM/PM"}.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Clear the picker"}.bootstrap-datetimepicker-widget .btn[data-action="today"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Set the date to today"}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget .picker-switch::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Toggle Date and Time Screens"}.bootstrap-datetimepicker-widget .picker-switch td{padding:0;margin:0;height:auto;width:auto;line-height:inherit}.bootstrap-datetimepicker-widget .picker-switch td span,.bootstrap-datetimepicker-widget .picker-switch td i{line-height:2.5;height:2.5em;width:100%}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget table td,.bootstrap-datetimepicker-widget table th{text-align:center;border-radius:.25rem;padding:.5em}.bootstrap-datetimepicker-widget table th{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget table th.picker-switch{width:145px}.bootstrap-datetimepicker-widget table th.disabled,.bootstrap-datetimepicker-widget table th.disabled:hover{background:none;color:#dee2e6;cursor:not-allowed}.bootstrap-datetimepicker-widget table th.prev::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Previous Month"}.bootstrap-datetimepicker-widget table th.next::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Next Month"}.bootstrap-datetimepicker-widget table thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background:#f8f9fa}.bootstrap-datetimepicker-widget table td{height:54px;line-height:54px;width:54px}.bootstrap-datetimepicker-widget table td.cw{font-size:.8em;height:20px;line-height:20px;color:#dee2e6}.bootstrap-datetimepicker-widget table td.day{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget table td.day:hover,.bootstrap-datetimepicker-widget table td.hour:hover,.bootstrap-datetimepicker-widget table td.minute:hover,.bootstrap-datetimepicker-widget table td.second:hover{background:#f8f9fa;cursor:pointer}.bootstrap-datetimepicker-widget table td.old,.bootstrap-datetimepicker-widget table td.new{color:#dee2e6}.bootstrap-datetimepicker-widget table td.today{position:relative}.bootstrap-datetimepicker-widget table td.today:before{content:'';display:inline-block;border:solid transparent;border-width:0 0 7px 7px;border-bottom-color:#dee2e6;border-top-color:rgba(0,0,0,0.2);position:absolute;bottom:4px;right:4px}.bootstrap-datetimepicker-widget table td.active,.bootstrap-datetimepicker-widget table td.active:hover{background-color:#dee2e6;color:#007bff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget table td.active.today:before{border-bottom-color:#fff}.bootstrap-datetimepicker-widget table td.disabled,.bootstrap-datetimepicker-widget table td.disabled:hover{background:none;color:#dee2e6;cursor:not-allowed}.bootstrap-datetimepicker-widget table td span,.bootstrap-datetimepicker-widget table td i{display:inline-block;width:54px;height:54px;line-height:54px;margin:2px 1.5px;cursor:pointer;border-radius:.25rem}.bootstrap-datetimepicker-widget table td span:hover,.bootstrap-datetimepicker-widget table td i:hover{background:#f8f9fa}.bootstrap-datetimepicker-widget table td span.active,.bootstrap-datetimepicker-widget table td i.active{background-color:#dee2e6;color:#007bff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget table td span.old,.bootstrap-datetimepicker-widget table td i.old{color:#dee2e6}.bootstrap-datetimepicker-widget table td span.disabled,.bootstrap-datetimepicker-widget table td i.disabled,.bootstrap-datetimepicker-widget table td span.disabled:hover,.bootstrap-datetimepicker-widget table td i.disabled:hover{background:none;color:#dee2e6;cursor:not-allowed}.bootstrap-datetimepicker-widget.usetwentyfour td.hour{height:27px;line-height:27px}.bootstrap-datetimepicker-widget.wider{width:21em}.bootstrap-datetimepicker-widget .datepicker-decades .decade{line-height:1.8em !important}.input-group.date .input-group-addon{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}
\ No newline at end of file
# This file is for unifying the coding style for different editors and IDEs
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
trim_trailing_whitespace = false
{
"boss": true,
"curly": true,
"eqeqeq": true,
"eqnull": true,
"expr": true,
"immed": true,
"noarg": true,
"onevar": false,
"quotmark": "single",
"smarttabs": true,
"trailing": true,
"unused": true,
"node": true,
"globals": {
"$": true,
"jQuery": true
}
}
/*
* Bootstrap Duallistbox - v3.0.7
* A responsive dual listbox widget optimized for Twitter Bootstrap. It works on all modern browsers and on touch devices.
* https://www.virtuosoft.eu/code/bootstrap-duallistbox/
*
* Made by István Ujj-Mészáros
* Under Apache License v2.0 License
*/
.bootstrap-duallistbox-container .buttons {
width: 100%;
margin-bottom: -1px;
}
.bootstrap-duallistbox-container label {
display: block;
}
.bootstrap-duallistbox-container .info {
display: inline-block;
margin-bottom: 5px;
font-size: 11px;
}
.bootstrap-duallistbox-container .clear1,
.bootstrap-duallistbox-container .clear2 {
display: none;
font-size: 10px;
}
.bootstrap-duallistbox-container .box1.filtered .clear1,
.bootstrap-duallistbox-container .box2.filtered .clear2 {
display: inline-block;
}
.bootstrap-duallistbox-container .move,
.bootstrap-duallistbox-container .remove {
width: 60%;
}
.bootstrap-duallistbox-container .btn-group .btn {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.bootstrap-duallistbox-container select {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.bootstrap-duallistbox-container .moveall,
.bootstrap-duallistbox-container .removeall {
width: 40%;
}
.bootstrap-duallistbox-container.bs2compatible .btn-group > .btn + .btn {
margin-left: 0;
}
.bootstrap-duallistbox-container select {
width: 100%;
height: 300px;
padding: 0;
}
.bootstrap-duallistbox-container .filter {
display: inline-block;
width: 100%;
height: 31px;
margin: 0 0 5px 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.bootstrap-duallistbox-container .filter.placeholder {
color: #aaa;
}
.bootstrap-duallistbox-container.moveonselect .move,
.bootstrap-duallistbox-container.moveonselect .remove {
display:none;
}
.bootstrap-duallistbox-container.moveonselect .moveall,
.bootstrap-duallistbox-container.moveonselect .removeall {
width: 100%;
}
.bootstrap-duallistbox-container .buttons{width:100%;margin-bottom:-1px}.bootstrap-duallistbox-container label{display:block}.bootstrap-duallistbox-container .info{display:inline-block;margin-bottom:5px;font-size:11px}.bootstrap-duallistbox-container .clear1,.bootstrap-duallistbox-container .clear2{display:none;font-size:10px}.bootstrap-duallistbox-container .box1.filtered .clear1,.bootstrap-duallistbox-container .box2.filtered .clear2{display:inline-block}.bootstrap-duallistbox-container .move,.bootstrap-duallistbox-container .remove{width:60%}.bootstrap-duallistbox-container .btn-group .btn{border-bottom-left-radius:0;border-bottom-right-radius:0}.bootstrap-duallistbox-container select{border-top-left-radius:0;border-top-right-radius:0}.bootstrap-duallistbox-container .moveall,.bootstrap-duallistbox-container .removeall{width:40%}.bootstrap-duallistbox-container.bs2compatible .btn-group>.btn+.btn{margin-left:0}.bootstrap-duallistbox-container select{width:100%;height:300px;padding:0}.bootstrap-duallistbox-container .filter{display:inline-block;width:100%;height:31px;margin:0 0 5px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-duallistbox-container .filter.placeholder{color:#aaa}.bootstrap-duallistbox-container.moveonselect .move,.bootstrap-duallistbox-container.moveonselect .remove{display:none}.bootstrap-duallistbox-container.moveonselect .moveall,.bootstrap-duallistbox-container.moveonselect .removeall{width:100%}
\ No newline at end of file
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('!5(a,e,t,s){w l="2o",n={2m:!1,2h:"X W",2f:"3Z",2c:"2w F",2b:"2w W",2a:"2I F",27:"2I W",N:!0,1M:!0,O:!1,1Z:!1,1W:!1,1V:"3U",2p:3R,16:!0,29:"",20:"",18:"3Q W {0}",1l:\'<P z="13 13-3P">3O</P> {0} 3N {1}\',1i:"3o 3L",1H:!1,1m:!1,1G:!1,1C:!1,1B:!1,1y:!1},i=/3K/i.3J(3I.3H.3G());5 o(e,t){3.8=a(e),3.4=a.3F({},n,t),3.3E=n,3.3D=l,3.2l()}5 r(e){e.8.3C("14")}5 c(i){i.8.q("y").L(5(e,t){w n=a(t);1q 0===n.k("R-T")&&n.k("R-T",i.2y++),1q 0===n.k("17")&&n.k("17",!1)})}5 h(i,s,l){i.8.q("y").L(5(e,t){w n=a(t);n.k("R-T")===s&&(n.V("F",l),l?(n.D("k-1d",i.1n),i.1n++):n.1o("k-1d"))})}5 m(e,n){j e.3B(/\\{(\\d+)\\}/g,5(e,t){j 1q 0!==n[t]?n[t]:e})}5 d(e){19(e.4.18){w t=e.7.E.q("y").2n,n=e.7.C.q("y").2n,i=e.8.q("y").2n-e.1j,s=e.1j,l="";l=0===i?e.4.1i:m(t===i?e.4.18:e.4.1l,[t,i]),e.7.1w.10(l),e.7.G.2t("2k",!(t===i||0===i)),l=0===s?e.4.1i:m(n===s?e.4.18:e.4.1l,[n,s]),e.7.1A.10(l),e.7.J.2t("2k",!(n===s||0===s))}}5 v(i){i.1j=0,i.7.E.2j(),i.7.C.2j(),i.8.q("y").L(5(e,t){w n=a(t);n.V("F")?(i.1j++,i.7.C.2i(n.2g(!0).V("F",n.k("17")))):i.7.E.2i(n.2g(!0).V("F",n.k("17")))}),i.4.16&&(f(i,1),f(i,2)),d(i)}5 f(s,l){19(s.4.16){u(s,l),s.7["M"+l].2j().3A(0);w o=2X 3z(a.3y(s.7["3x"+l].2e()),"3w"),r=s.8.q("y"),e=s.8;(e=1===l?r.3v(":F"):e.q("y:F")).L(5(e,t){w n=a(t),i=!0;(t.26.2v(o)||s.4.1H&&n.D("3u").2v(o))&&(i=!1,s.7["M"+l].2i(n.2g(!0).V("F",n.k("17")))),r.2x(n.k("R-T")).k("2k"+l,i)}),d(s)}}5 u(e,t){w i=e.8.q("y");e.7["M"+t].q("y").L(5(e,t){w n=a(t);i.2x(n.k("R-T")).k("17",n.V("F"))})}5 p(e){w t=e.3t("y");t.2C(5(e,t){w n=2D(e.2E("k-1d")),i=2D(t.2E("k-1d"));j i<n?1:n<i?-1:0}),t.3s().2G(e)}5 g(e){e.q("y").2C(5(e,t){j a(e).k("R-T")>a(t).k("R-T")?1:-1}).2G(e)}5 b(i){"W"!==i.4.O||i.4.N?"1S"!==i.4.O||i.4.N||u(i,1):(u(i,1),u(i,2)),i.7.E.q("y:F").L(5(e,t){w n=a(t);n.k("2J")||h(i,n.k("R-T"),!0)}),v(i),r(i),i.4.1m?p(i.7.C):g(i.7.C)}5 x(i){"W"!==i.4.O||i.4.N?"1S"!==i.4.O||i.4.N||u(i,2):(u(i,1),u(i,2)),i.7.C.q("y:F").L(5(e,t){w n=a(t);n.k("2M")||h(i,n.k("R-T"),!1)}),v(i),r(i),g(i.7.E),i.4.1m&&p(i.7.C)}5 S(n){n.7.1h.3r(5(e){n.7.Z.1U(":2S")?(e.2T(),n.7.Z.2W()):n.7.Y.1U(":2S")&&(e.2T(),n.7.Y.2W())}),n.8.K("2o.1X",5(e,t){n.1X(t)}),n.7.1Y.K("1a",5(){n.1P("",!0)}),n.7.21.K("1a",5(){n.1O("",!0)}),!1===n.4.1G&&n.7.22.K("1a",5(){b(n)}),!1===n.4.1C&&n.7.23.K("1a",5(){w i;"W"!==(i=n).4.O||i.4.N?"1S"!==i.4.O||i.4.N||u(i,1):(u(i,1),u(i,2)),i.8.q("y").L(5(e,t){w n=a(t);n.k("2J")||(n.V("F",!0),n.D("k-1d",i.1n),i.1n++)}),v(i),r(i)}),!1===n.4.1B&&n.7.24.K("1a",5(){x(n)}),!1===n.4.1y&&n.7.25.K("1a",5(){w e;"W"!==(e=n).4.O||e.4.N?"1S"!==e.4.O||e.4.N||u(e,2):(u(e,1),u(e,2)),e.8.q("y").L(5(e,t){w n=a(t);n.k("2M")||(n.V("F",!1),n.1o("k-1d"))}),v(e),r(e)}),n.7.Z.K("14 2z",5(){f(n,1)}),n.7.Y.K("14 2z",5(){f(n,2)})}o.2A={2l:5(){3.9=a(\'<Q z="28-1T-9"> <Q z="G"> <13></13> <P z="1b-9"> <P z="1b"></P> <A U="A" z="B 1K 2K-1c"></A> </P> <1F z="1f" U="26"> <Q z="B-2N 2O"> <A U="A" z="B 1E"> <i></i> <i></i> </A> <A U="A" z="B 1D"> <i></i> </A> </Q> <M 1z="1z"></M> </Q> <Q z="J"> <13></13> <P z="1b-9"> <P z="1b"></P> <A U="A" z="B 1u 2K-1c"></A> </P> <1F z="1f" U="26"> <Q z="B-2N 2O"> <A U="A" z="B 1k"> <i></i> </A> <A U="A" z="B 1t"> <i></i> <i></i> </A> </Q> <M 1z="1z"></M> </Q></Q>\').3q(3.8),3.7={3M:3.8,G:a(".G",3.9),J:a(".J",3.9),Z:a(".G .1f",3.9),Y:a(".J .1f",3.9),1Y:a(".G .1K",3.9),21:a(".J .1u",3.9),1r:a(".G > 13",3.9),1p:a(".J > 13",3.9),1w:a(".G .1b",3.9),1A:a(".J .1b",3.9),E:a(".G M",3.9),C:a(".J M",3.9),22:a(".G .1D",3.9),24:a(".J .1k",3.9),23:a(".G .1E",3.9),25:a(".J .1t",3.9),1h:a(a(".G .1f",3.9)[0].1h)},3.1e=3.8.D("1g")||"";w e="28-1T-3p-31"+3.1e,t="28-1T-F-31"+3.1e;j 3.7.E.D("32",e),3.7.C.D("32",t),3.7.1r.D("33",e),3.7.1p.D("33",t),3.1j=0,3.1n=0,3.2y=0,3.34(3.4.2m),3.35(3.4.2h),3.36(3.4.2f),3.37(3.4.2c),3.38(3.4.2b),3.39(3.4.2a),3.3a(3.4.27),3.3b(3.4.N),3.3c(3.4.1M),3.3d(3.4.O),3.3e(3.4.1Z),3.3f(3.4.1W),3.3g(3.4.1V),3.3h(3.4.2p),c(3),3.3i(3.4.16),3.1P(3.4.29),3.1O(3.4.20),3.3j(3.4.18),3.3k(3.4.1l),3.3l(3.4.1i),3.3m(3.4.1H),3.3n(3.4.1m),3.30(3.4.1G),3.2V(3.4.1C),3.2U(3.4.1B),3.2Q(3.4.1y),3.8.15(),S(3),v(3),3.8},34:5(e,t){j(3.4.2m=e)?(3.9.I("1N").H("1N-2s 2q"),3.9.q(".G, .J").I("2Z-2Y-6").H("2u"),3.9.q(".1K, .1u").I("B-1s B-2R").H("B-2P"),3.9.q("1F, M").I("1h-2L"),3.9.q(".B").I("B-1s"),3.9.q(".1E > i, .1D > i").I("12 12-11-1c").H("1v-11-1c"),3.9.q(".1t > i, .1k > i").I("12 12-11-1x").H("1v-11-1x")):(3.9.I("1N-2s 2q").H("1N"),3.9.q(".G, .J").I("2u").H("2Z-2Y-6"),3.9.q(".1K, .1u").I("B-2P").H("B-1s B-2R"),3.9.q("1F, M").H("1h-2L"),3.9.q(".B").H("B-1s"),3.9.q(".1E > i, .1D > i").I("1v-11-1c").H("12 12-11-1c"),3.9.q(".1t > i, .1k > i").I("1v-11-1x").H("12 12-11-1x")),t&&v(3),3.8},35:5(e,t){j 3.4.2h=e,3.7.1Y.10(e),3.7.21.10(e),t&&v(3),3.8},36:5(e,t){j 3.4.2f=e,3.7.Z.D("2H",e),3.7.Y.D("2H",e),t&&v(3),3.8},37:5(e,t){j 3.4.2c=e,3.7.22.D("1I",e),t&&v(3),3.8},38:5(e,t){j 3.4.2b=e,3.7.23.D("1I",e),t&&v(3),3.8},39:5(e,t){j 3.4.2a=e,3.7.24.D("1I",e),t&&v(3),3.8},3a:5(e,t){j 3.4.27=e,3.7.25.D("1I",e),t&&v(3),3.8},3b:5(e,t){19(i&&(e=!0),3.4.N=e,3.4.N){3.9.H("2B");w n=3;3.7.E.K("14",5(){b(n)}),3.7.C.K("14",5(){x(n)})}2r 3.9.I("2B"),3.7.E.1J("14"),3.7.C.1J("14");j t&&v(3),3.8},3c:5(e,t){19(i&&(e=!1),3.4.1M=e,3.4.1M){3.9.H("2F");w n=3;3.7.E.K("1L",5(){b(n)}),3.7.C.K("1L",5(){x(n)})}2r 3.9.I("2F"),3.7.E.1J("1L"),3.7.C.1J("1L");j t&&v(3),3.8},3d:5(e,t){j i&&(e=!1),3.4.O=e,t&&v(3),3.8},3e:5(e,t){j(3.4.1Z=e)?3.7.1p.X().10(e):3.7.1p.15().10(e),t&&v(3),3.8},3f:5(e,t){j(3.4.1W=e)?3.7.1r.X().10(e):3.7.1r.15().10(e),t&&v(3),3.8},3g:5(e,t){j(3.4.1V=e)?(3.7.E.D("1g",3.1e+e+"1"),3.7.C.D("1g",3.1e+e+"2")):(3.7.E.1o("1g"),3.7.C.1o("1g")),t&&v(3),3.8},3h:5(e,t){3.4.2p=e;w n=3.8.1R();j 3.8.1R()<e&&(n=e),3.7.E.1R(n),3.7.C.1R(n),t&&v(3),3.8},3i:5(e,t){j e?(3.7.Z.X(),3.7.Y.X()):(3.1P(""),3.1O(""),v(3),3.7.Z.15(),3.7.Y.15()),3.4.16=e,t&&v(3),3.8},1P:5(e,t){19(3.4.16)j 3.4.29=e,3.7.Z.2e(e),t&&v(3),3.8},1O:5(e,t){19(3.4.16)j 3.4.20=e,3.7.Y.2e(e),t&&v(3),3.8},3j:5(e,t){j(3.4.18=e)?(3.7.1w.X(),3.7.1A.X()):(3.7.1w.15(),3.7.1A.15()),t&&v(3),3.8},3k:5(e,t){j 3.4.1l=e,t&&v(3),3.8},3l:5(e,t){j 3.4.1i=e,t&&v(3),3.8},3m:5(e,t){j 3.4.1H=e,t&&v(3),3.8},3n:5(e,t){j 3.4.1m=e,t&&v(3),3.8},30:5(e,t){j 3.4.1G=e,t&&v(3),3.8},2V:5(e,t){j 3.4.1C=e,t&&v(3),3.8},2U:5(e,t){j 3.4.1B=e,t&&v(3),3.8},2Q:5(e,t){j 3.4.1y=e,t&&v(3),3.8},3S:5(){j 3.9},1X:5(e){w t;c(3),e?(t=3).7.E.q("y").L(5(){t.8.q("y").k("17",!1)}):(u(3,1),u(3,2)),v(3)},3T:5(){j 3.9.1k(),3.8.X(),a.k(3,"1Q"+l,3V),3.8}},a.3W[l]=5(n){w t,i=3X;j n===s||"3Y"==2d n?3.L(5(){a(3).1U("M")?a.k(3,"1Q"+l)||a.k(3,"1Q"+l,2X o(3,n)):a(3).q("M").L(5(e,t){a(t).2o(n)})}):"40"==2d n&&"41"!==n[0]&&"2l"!==n?(3.L(5(){w e=a.k(3,"1Q"+l);e 42 o&&"5"==2d e[n]&&(t=e[n].43(e,44.2A.45.46(i,1)))}),t!==s?t:3):1q 0}}(47,48,49);',62,258,'|||this|settings|function||elements|element|container||||||||||return|data||||||find||||||var||option|class|button|btn|select2|attr|select1|selected|box1|addClass|removeClass|box2|on|each|select|moveOnSelect|preserveSelectionOnMove|span|div|original||index|type|prop|all|show|filterInput2|filterInput1|html|arrow|glyphicon|label|change|hide|showFilterInputs|_selected|infoText|if|click|info|right|sortindex|originalSelectName|filter|name|form|infoTextEmpty|selectedElements|remove|infoTextFiltered|sortByInputOrder|sortIndex|removeAttr|label2|void|label1|default|removeall|clear2|icon|info1|left|eventRemoveAllOverride|multiple|info2|eventRemoveOverride|eventMoveAllOverride|move|moveall|input|eventMoveOverride|filterOnValues|title|off|clear1|dblclick|moveOnDoubleClick|row|setSelectedFilter|setNonSelectedFilter|plugin_|height|moved|duallistbox|is|helperSelectNamePostfix|nonSelectedListLabel|refresh|filterClear1|selectedListLabel|selectedFilter|filterClear2|moveButton|moveAllButton|removeButton|removeAllButton|text|removeAllLabel|bootstrap|nonSelectedFilter|removeSelectedLabel|moveAllLabel|moveSelectedLabel|typeof|val|filterPlaceHolder|clone|filterTextClear|append|empty|filtered|init|bootstrap2Compatible|length|bootstrapDualListbox|selectorMinimalHeight|bs2compatible|else|fluid|toggleClass|span6|match|Move|eq|elementCount|keyup|prototype|moveonselect|sort|parseInt|getAttribute|moveondoubleclick|appendTo|placeholder|Remove|filtered1|pull|control|filtered2|group|buttons|mini|setEventRemoveAllOverride|xs|focus|preventDefault|setEventRemoveOverride|setEventMoveAllOverride|focusout|new|md|col|setEventMoveOverride|list_|id|for|setBootstrap2Compatible|setFilterTextClear|setFilterPlaceHolder|setMoveSelectedLabel|setMoveAllLabel|setRemoveSelectedLabel|setRemoveAllLabel|setMoveOnSelect|setMoveOnDoubleClick|setPreserveSelectionOnMove|setSelectedListLabel|setNonSelectedListLabel|setHelperSelectNamePostfix|setSelectOrMinimalHeight|setShowFilterInputs|setInfoText|setInfoTextFiltered|setInfoTextEmpty|setFilterOnValues|setSortByInputOrder|Empty|nonselected|insertBefore|submit|detach|children|value|not|gi|filterInput|trim|RegExp|scrollTop|replace|trigger|_name|_defaults|extend|toLowerCase|userAgent|navigator|test|android|list|originalSelect|from|Filtered|warning|Showing|100|getContainer|destroy|_helper|null|fn|arguments|object|Filter|string|_|instanceof|apply|Array|slice|call|jQuery|window|document'.split('|'),0,{}));
\ No newline at end of file
/*!========================================================================
* File: bootstrap-iconpicker.css v1.10.0 by @victor-valencia
* https://victor-valencia.github.com/bootstrap-iconpicker
* ========================================================================
* Copyright 2013-2018 Victor Valencia Rico.
* Licensed under MIT license.
* https://github.com/victor-valencia/bootstrap-iconpicker/blob/master/LICENSE
* ========================================================================
*/
.iconpicker .caret {
margin-left: 10px !important;
}
.iconpicker {
min-width: 60px;
}
.iconpicker input.search-control {
margin-bottom: 6px;
margin-top: 6px;
}
div.iconpicker.left .table-icons {
margin-right: auto;
}
div.iconpicker.center .table-icons {
margin-left: auto;
margin-right: auto;
}
div.iconpicker.right .table-icons {
margin-left: auto;
}
.table-icons .btn {
min-height: 30px;
min-width: 35px;
text-align: center;
padding: 0;
margin: 2px;
}
.table-icons td {
min-width: 39px;
}
.popover {
max-width: inherit !important;
}
.iconpicker-popover {
z-index: 1050 !important;
}
.iconpicker-popover .search-control {
margin-bottom: 6px;
margin-top: 6px;
}
/*!========================================================================
* File: bootstrap-iconpicker.min.css v1.10.0 by @victor-valencia
* https://victor-valencia.github.com/bootstrap-iconpicker
* ========================================================================
* Copyright 2013-2017 Victor Valencia Rico.
* Licensed under MIT license.
* https://github.com/victor-valencia/bootstrap-iconpicker/blob/master/LICENSE
* ========================================================================
*/
.iconpicker .caret{margin-left:10px!important}.iconpicker{min-width:60px}.iconpicker input.search-control{margin-bottom:6px;margin-top:6px}div.iconpicker.left .table-icons{margin-right:auto}div.iconpicker.center .table-icons{margin-left:auto;margin-right:auto}div.iconpicker.right .table-icons{margin-left:auto}.table-icons .btn{min-height:30px;min-width:35px;text-align:center;padding:0;margin:2px}.table-icons td{min-width:39px}.popover{max-width:inherit!important}.iconpicker-popover{z-index:1050!important}.iconpicker-popover .search-control{margin-bottom:6px;margin-top:6px}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
/*!
* Validator v0.11.9 for Bootstrap 3, by @1000hz
* Copyright 2017 Cina Saffary
* Licensed under http://opensource.org/licenses/MIT
*
* https://github.com/1000hz/bootstrap-validator
*/
+function(a){"use strict";function b(b){return b.is('[type="checkbox"]')?b.prop("checked"):b.is('[type="radio"]')?!!a('[name="'+b.attr("name")+'"]:checked').length:b.is("select[multiple]")?(b.val()||[]).length:b.val()}function c(b){return this.each(function(){var c=a(this),e=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b),f=c.data("bs.validator");(f||"destroy"!=b)&&(f||c.data("bs.validator",f=new d(this,e)),"string"==typeof b&&f[b]())})}var d=function(c,e){this.options=e,this.validators=a.extend({},d.VALIDATORS,e.custom),this.$element=a(c),this.$btn=a('button[type="submit"], input[type="submit"]').filter('[form="'+this.$element.attr("id")+'"]').add(this.$element.find('input[type="submit"], button[type="submit"]')),this.update(),this.$element.on("input.bs.validator change.bs.validator focusout.bs.validator",a.proxy(this.onInput,this)),this.$element.on("submit.bs.validator",a.proxy(this.onSubmit,this)),this.$element.on("reset.bs.validator",a.proxy(this.reset,this)),this.$element.find("[data-match]").each(function(){var c=a(this),d=c.attr("data-match");a(d).on("input.bs.validator",function(){b(c)&&c.trigger("input.bs.validator")})}),this.$inputs.filter(function(){return b(a(this))&&!a(this).closest(".has-error").length}).trigger("focusout"),this.$element.attr("novalidate",!0)};d.VERSION="0.11.9",d.INPUT_SELECTOR=':input:not([type="hidden"], [type="submit"], [type="reset"], button)',d.FOCUS_OFFSET=20,d.DEFAULTS={delay:500,html:!1,disable:!0,focus:!0,custom:{},errors:{match:"Does not match",minlength:"Not long enough"},feedback:{success:"glyphicon-ok",error:"glyphicon-remove"}},d.VALIDATORS={"native":function(a){var b=a[0];return b.checkValidity?!b.checkValidity()&&!b.validity.valid&&(b.validationMessage||"error!"):void 0},match:function(b){var c=b.attr("data-match");return b.val()!==a(c).val()&&d.DEFAULTS.errors.match},minlength:function(a){var b=a.attr("data-minlength");return a.val().length<b&&d.DEFAULTS.errors.minlength}},d.prototype.update=function(){var b=this;return this.$inputs=this.$element.find(d.INPUT_SELECTOR).add(this.$element.find('[data-validate="true"]')).not(this.$element.find('[data-validate="false"]').each(function(){b.clearErrors(a(this))})),this.toggleSubmit(),this},d.prototype.onInput=function(b){var c=this,d=a(b.target),e="focusout"!==b.type;this.$inputs.is(d)&&this.validateInput(d,e).done(function(){c.toggleSubmit()})},d.prototype.validateInput=function(c,d){var e=(b(c),c.data("bs.validator.errors"));c.is('[type="radio"]')&&(c=this.$element.find('input[name="'+c.attr("name")+'"]'));var f=a.Event("validate.bs.validator",{relatedTarget:c[0]});if(this.$element.trigger(f),!f.isDefaultPrevented()){var g=this;return this.runValidators(c).done(function(b){c.data("bs.validator.errors",b),b.length?d?g.defer(c,g.showErrors):g.showErrors(c):g.clearErrors(c),e&&b.toString()===e.toString()||(f=b.length?a.Event("invalid.bs.validator",{relatedTarget:c[0],detail:b}):a.Event("valid.bs.validator",{relatedTarget:c[0],detail:e}),g.$element.trigger(f)),g.toggleSubmit(),g.$element.trigger(a.Event("validated.bs.validator",{relatedTarget:c[0]}))})}},d.prototype.runValidators=function(c){function d(a){return c.attr("data-"+a+"-error")}function e(){var a=c[0].validity;return a.typeMismatch?c.attr("data-type-error"):a.patternMismatch?c.attr("data-pattern-error"):a.stepMismatch?c.attr("data-step-error"):a.rangeOverflow?c.attr("data-max-error"):a.rangeUnderflow?c.attr("data-min-error"):a.valueMissing?c.attr("data-required-error"):null}function f(){return c.attr("data-error")}function g(a){return d(a)||e()||f()}var h=[],i=a.Deferred();return c.data("bs.validator.deferred")&&c.data("bs.validator.deferred").reject(),c.data("bs.validator.deferred",i),a.each(this.validators,a.proxy(function(a,d){var e=null;!b(c)&&!c.attr("required")&&a!="match"||void 0===c.attr("data-"+a)&&"native"!=a||!(e=d.call(this,c))||(e=g(a)||e,!~h.indexOf(e)&&h.push(e))},this)),!h.length&&b(c)&&c.attr("data-remote")?this.defer(c,function(){var d={};d[c.attr("name")]=b(c),a.get(c.attr("data-remote"),d).fail(function(a,b,c){h.push(g("remote")||c)}).always(function(){i.resolve(h)})}):i.resolve(h),i.promise()},d.prototype.validate=function(){var b=this;return a.when(this.$inputs.map(function(){return b.validateInput(a(this),!1)})).then(function(){b.toggleSubmit(),b.focusError()}),this},d.prototype.focusError=function(){if(this.options.focus){var b=this.$element.find(".has-error:first :input");0!==b.length&&(a("html, body").animate({scrollTop:b.offset().top-d.FOCUS_OFFSET},250),b.focus())}},d.prototype.showErrors=function(b){var c=this.options.html?"html":"text",d=b.data("bs.validator.errors"),e=b.closest(".form-group"),f=e.find(".help-block.with-errors"),g=e.find(".form-control-feedback");d.length&&(d=a("<ul/>").addClass("list-unstyled").append(a.map(d,function(b){return a("<li/>")[c](b)})),void 0===f.data("bs.validator.originalContent")&&f.data("bs.validator.originalContent",f.html()),f.empty().append(d),e.addClass("has-error has-danger"),e.hasClass("has-feedback")&&g.removeClass(this.options.feedback.success)&&g.addClass(this.options.feedback.error)&&e.removeClass("has-success"))},d.prototype.clearErrors=function(a){var c=a.closest(".form-group"),d=c.find(".help-block.with-errors"),e=c.find(".form-control-feedback");d.html(d.data("bs.validator.originalContent")),c.removeClass("has-error has-danger has-success"),c.hasClass("has-feedback")&&e.removeClass(this.options.feedback.error)&&e.removeClass(this.options.feedback.success)&&b(a)&&e.addClass(this.options.feedback.success)&&c.addClass("has-success")},d.prototype.hasErrors=function(){function b(){return!!(a(this).data("bs.validator.errors")||[]).length}return!!this.$inputs.filter(b).length},d.prototype.isIncomplete=function(){function c(){var c=b(a(this));return!("string"==typeof c?a.trim(c):c)}return!!this.$inputs.filter("[required]").filter(c).length},d.prototype.onSubmit=function(a){this.validate(),(this.isIncomplete()||this.hasErrors())&&a.preventDefault()},d.prototype.toggleSubmit=function(){this.options.disable&&this.$btn.toggleClass("disabled",this.isIncomplete()||this.hasErrors())},d.prototype.defer=function(b,c){return c=a.proxy(c,this,b),this.options.delay?(window.clearTimeout(b.data("bs.validator.timeout")),void b.data("bs.validator.timeout",window.setTimeout(c,this.options.delay))):c()},d.prototype.reset=function(){return this.$element.find(".form-control-feedback").removeClass(this.options.feedback.error).removeClass(this.options.feedback.success),this.$inputs.removeData(["bs.validator.errors","bs.validator.deferred"]).each(function(){var b=a(this),c=b.data("bs.validator.timeout");window.clearTimeout(c)&&b.removeData("bs.validator.timeout")}),this.$element.find(".help-block.with-errors").each(function(){var b=a(this),c=b.data("bs.validator.originalContent");b.removeData("bs.validator.originalContent").html(c)}),this.$btn.removeClass("disabled"),this.$element.find(".has-error, .has-danger, .has-success").removeClass("has-error has-danger has-success"),this},d.prototype.destroy=function(){return this.reset(),this.$element.removeAttr("novalidate").removeData("bs.validator").off(".bs.validator"),this.$inputs.off(".bs.validator"),this.options=null,this.validators=null,this.$element=null,this.$btn=null,this.$inputs=null,this};var e=a.fn.validator;a.fn.validator=c,a.fn.validator.Constructor=d,a.fn.validator.noConflict=function(){return a.fn.validator=e,this},a(window).on("load",function(){a('form[data-toggle="validator"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
The MIT License (MIT)
Copyright (c) 2015 pandao
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# Editor.md
![](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)
![](https://img.shields.io/github/stars/pandao/editor.md.svg)
![](https://img.shields.io/github/forks/pandao/editor.md.svg)
![](https://img.shields.io/github/tag/pandao/editor.md.svg)
![](https://img.shields.io/github/release/pandao/editor.md.svg)
![](https://img.shields.io/github/issues/pandao/editor.md.svg)
![](https://img.shields.io/bower/v/editor.md.svg)
**Editor.md** : The open source embeddable online markdown editor (component), based on CodeMirror & jQuery & Marked.
### Features
- Support Standard Markdown / CommonMark and GFM (GitHub Flavored Markdown);
- Full-featured: Real-time Preview, Image (cross-domain) upload, Preformatted text/Code blocks/Tables insert, Code fold, Search replace, Read only, Themes, Multi-languages, L18n, HTML entities, Code syntax highlighting...;
- Markdown Extras : Support [ToC (Table of Contents)](https://pandao.github.io/editor.md/examples/toc.html), [Emoji](https://pandao.github.io/editor.md/examples/emoji.html), [Task lists](https://pandao.github.io/editor.md/examples/task-lists.html), [@Links](https://pandao.github.io/editor.md/examples/@links.html)...;
- Compatible with all major browsers (IE8+), compatible Zepto.js and iPad;
- Support [decode & fliter of the HTML tags & attributes](https://pandao.github.io/editor.md/examples/html-tags-decode.html);
- Support [TeX (LaTeX expressions, Based on KaTeX)](https://pandao.github.io/editor.md/examples/katex.html), [Flowchart](https://pandao.github.io/editor.md/examples/flowchart.html) and [Sequence Diagram](https://pandao.github.io/editor.md/examples/sequence-diagram.html) of Markdown extended syntax;
- Support AMD/CMD (Require.js & Sea.js) Module Loader, and Custom/define editor plugins;
[README & Examples (English)](https://pandao.github.io/editor.md/en.html)
--------
**Editor.md** 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。
![editormd-screenshot](https://pandao.github.io/editor.md/examples/images/editormd-screenshot.png "editormd-screenshot")
#### 主要特性
- 支持通用 Markdown / CommonMark 和 GFM (GitHub Flavored Markdown) 风格的语法,也可[变身为代码编辑器](https://pandao.github.io/editor.md/examples/change-mode.html)
- 支持实时预览、图片(跨域)上传、预格式文本/代码/表格插入、代码折叠、跳转到行、搜索替换、只读模式、自定义样式主题和多语言语法高亮等功能;
- 支持 [ToC(Table of Contents)](https://pandao.github.io/editor.md/examples/toc.html)[Emoji表情](https://pandao.github.io/editor.md/examples/emoji.html)[Task lists](https://pandao.github.io/editor.md/examples/task-lists.html)[@链接](https://pandao.github.io/editor.md/examples/@links.html)等 Markdown 扩展语法;
- 支持 TeX 科学公式(基于 [KaTeX](https://pandao.github.io/editor.md/examples/katex.html))、流程图 [Flowchart](https://pandao.github.io/editor.md/examples/flowchart.html)[时序图 Sequence Diagram](https://pandao.github.io/editor.md/examples/sequence-diagram.html);
- 支持[识别和解析 HTML 标签,并且支持自定义过滤标签及属性解析](https://pandao.github.io/editor.md/examples/html-tags-decode.html),具有可靠的安全性和几乎无限的扩展性;
- 支持 AMD / CMD 模块化加载(支持 [Require.js](https://pandao.github.io/editor.md/examples/use-requirejs.html) & [Sea.js](https://pandao.github.io/editor.md/examples/use-seajs.html)),并且支持[自定义扩展插件](https://pandao.github.io/editor.md/examples/define-plugin.html)
- 兼容主流的浏览器(IE8+)和 [Zepto.js](https://pandao.github.io/editor.md/examples/use-zepto.html),且支持 iPad 等平板设备;
#### Examples
[https://pandao.github.io/editor.md/examples/index.html](https://pandao.github.io/editor.md/examples/index.html)
#### Download & install
[Github download](https://github.com/pandao/editor.md/archive/master.zip)
Bower install :
```shell
bower install editor.md
```
#### Usages
HTML:
```html
<link rel="stylesheet" href="editormd.min.css" />
<div id="editormd">
<textarea style="display:none;">### Hello Editor.md !</textarea>
</div>
```
> Tip: Editor.md can auto append `<textarea>` tag;
javascript:
```html
<script src="jquery.min.js"></script>
<script src="editormd.min.js"></script>
<script type="text/javascript">
$(function() {
var editor = editormd("editormd", {
path : "../lib/" // Autoload modules mode, codemirror, marked... dependents libs path
});
/*
// or
var editor = editormd({
id : "editormd",
path : "../lib/"
});
*/
});
</script>
```
Using modular script loader :
- [Using Require.js](https://github.com/pandao/editor.md/tree/master/examples/use-requirejs.html)
- [Using Sea.js](https://github.com/pandao/editor.md/tree/master/examples/use-seajs.html)
#### Dependents
- [CodeMirror](http://codemirror.net/ "CodeMirror")
- [marked](https://github.com/chjj/marked "marked")
- [jQuery](http://jquery.com/ "jQuery")
- [FontAwesome](http://fontawesome.io/ "FontAwesome")
- [github-markdown.css](https://github.com/sindresorhus/github-markdown-css "github-markdown.css")
- [KaTeX](http://khan.github.io/KaTeX/ "KaTeX")
- [prettify.js](http://code.google.com/p/google-code-prettify/ "prettify.js")
- [Rephael.js](http://raphaeljs.com/ "Rephael.js")
- [flowchart.js](http://adrai.github.io/flowchart.js/ "flowchart.js")
- [sequence-diagram.js](http://bramp.github.io/js-sequence-diagrams/ "sequence-diagram.js")
- [Prefixes.scss](https://github.com/pandao/prefixes.scss "Prefixes.scss")
#### Changes
[Change logs](https://github.com/pandao/editor.md/blob/master/CHANGE.md)
#### License
The MIT License.
Copyright (c) 2015 Pandao
/*
* Editor.md
*
* @file editormd.logo.css
* @version v1.5.0
* @description Open source online markdown editor.
* @license MIT License
* @author Pandao
* {@link https://github.com/pandao/editor.md}
* @updateTime 2015-06-09
*/
/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */
@font-face {
font-family: 'editormd-logo';
src: url("../fonts/editormd-logo.eot?-5y8q6h");
src: url(".../fonts/editormd-logo.eot?#iefix-5y8q6h") format("embedded-opentype"), url("../fonts/editormd-logo.woff?-5y8q6h") format("woff"), url("../fonts/editormd-logo.ttf?-5y8q6h") format("truetype"), url("../fonts/editormd-logo.svg?-5y8q6h#icomoon") format("svg");
font-weight: normal;
font-style: normal;
}
.editormd-logo,
.editormd-logo-1x,
.editormd-logo-2x,
.editormd-logo-3x,
.editormd-logo-4x,
.editormd-logo-5x,
.editormd-logo-6x,
.editormd-logo-7x,
.editormd-logo-8x {
font-family: 'editormd-logo';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
font-size: inherit;
line-height: 1;
display: inline-block;
text-rendering: auto;
vertical-align: inherit;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.editormd-logo:before,
.editormd-logo-1x:before,
.editormd-logo-2x:before,
.editormd-logo-3x:before,
.editormd-logo-4x:before,
.editormd-logo-5x:before,
.editormd-logo-6x:before,
.editormd-logo-7x:before,
.editormd-logo-8x:before {
content: "\e1987";
/*
HTML Entity &#xe1987;
example: <span class="editormd-logo">&#xe1987;</span>
*/
}
.editormd-logo-1x {
font-size: 1em;
}
.editormd-logo-lg {
font-size: 1.2em;
}
.editormd-logo-2x {
font-size: 2em;
}
.editormd-logo-3x {
font-size: 3em;
}
.editormd-logo-4x {
font-size: 4em;
}
.editormd-logo-5x {
font-size: 5em;
}
.editormd-logo-6x {
font-size: 6em;
}
.editormd-logo-7x {
font-size: 7em;
}
.editormd-logo-8x {
font-size: 8em;
}
.editormd-logo-color {
color: #2196F3;
}
/*! Editor.md v1.5.0 | editormd.logo.min.css | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 */
/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */@font-face{font-family:editormd-logo;src:url(../fonts/editormd-logo.eot?-5y8q6h);src:url(.../fonts/editormd-logo.eot?#iefix-5y8q6h)format("embedded-opentype"),url(../fonts/editormd-logo.woff?-5y8q6h)format("woff"),url(../fonts/editormd-logo.ttf?-5y8q6h)format("truetype"),url(../fonts/editormd-logo.svg?-5y8q6h#icomoon)format("svg");font-weight:400;font-style:normal}.editormd-logo,.editormd-logo-1x,.editormd-logo-2x,.editormd-logo-3x,.editormd-logo-4x,.editormd-logo-5x,.editormd-logo-6x,.editormd-logo-7x,.editormd-logo-8x{font-family:editormd-logo;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;font-size:inherit;line-height:1;display:inline-block;text-rendering:auto;vertical-align:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.editormd-logo-1x:before,.editormd-logo-2x:before,.editormd-logo-3x:before,.editormd-logo-4x:before,.editormd-logo-5x:before,.editormd-logo-6x:before,.editormd-logo-7x:before,.editormd-logo-8x:before,.editormd-logo:before{content:"\e1987"}.editormd-logo-1x{font-size:1em}.editormd-logo-lg{font-size:1.2em}.editormd-logo-2x{font-size:2em}.editormd-logo-3x{font-size:3em}.editormd-logo-4x{font-size:4em}.editormd-logo-5x{font-size:5em}.editormd-logo-6x{font-size:6em}.editormd-logo-7x{font-size:7em}.editormd-logo-8x{font-size:8em}.editormd-logo-color{color:#2196F3}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment