Commit a7334e08 by Julien Jorry

MERGE KOHINOS

parent c715bd64
......@@ -57,3 +57,6 @@ EXTRA_SECURITY_ADMIN_PASSWORD=ChangeMe
EMAIL_ERROR=technique@kohinos.net
EMAIL_USER_FROM=noreply@kohinos.fr
EMAIL_ERROR_FROM=noreply@kohinos.fr
# For development with Docker, execute `id -u` and use the value here
DOCKER_USER_ID=
......@@ -73,4 +73,4 @@ reconversions/*
#dir containing ccas transactions csv
ccastransactions/*
!ccastransactions/.versionme
\ No newline at end of file
!ccastransactions/.versionme
# Update v2.4.10 (2023-04-10)
- Fix : adherente admin export : add enabled field
- Achat monnaie : fix maximum to 1000€
- Fix solidoume form : from 1 to 10 and from 1 to 11 for solidoume@doume.org
- Fix wording Solidoume params : Date de prélèvement => Date de redistribution
# Update v2.4.9 (2023-02-29)
- Fix solidoume + admin cotisation prestataire list for super admin
# Update v2.4.8 (2023-01-29)
- Solidoume: add modal on confirm + add links to buy emlc if balance is inferior
- Some minor print improvements in index for rubriques and stats
- Add Solidoume param descriptionCotisation to separate text solidoume 1st page to 2nd page
- Fix solidoume command
- Add horaires to comptoir + add some infos on groupepresta in map and liste of groupepresta + fix issue with map
- Fix other margin problem due to bootstrap update + fetch entities improving
- Fix fetch problem on user + adherent decreasing performance
- Fix bootstrap update 2 : fix sliders + margins/padding + fix achat slider value from 1 to 1000 + update bootswatch theme
- Fix bootstrap data-bs-**** changes on v5
- Charts : optimize loading on admin + some doctrine lazy loading optimization
- Fix api platform print html
# Update v2.4.7 (2022-08-01)
- Chart for stats in admin panel
- Add stimulus and Chartjs
- Update webpack + bootstrap on front
- Add stats number for presta, adherent, comptoirs, groupes, pages, faqs, documents, news
- ADd shorcut in admin for validate achat monnaie
- Add notification for caissier for presta's transactions
# Update v2.4.6 (2022-10-29)
- Fix ckeditor : all plugin js files was not in build...
- Adherent : Fix search for adherent to make a transfer
- Fix prestas count display on map
- Fix export operation : add expediteur and destinataire
- API : allow export to csv + fix map poi get all without pagination
- Fix Solidoume redistribution program : bug in some particular situation
Fix SolidoumeCommand bug : if someone has not been yet taken
- Fix installation bug, global parameter not mandatory
- Geoloc prestataire : by default visible on map
- Fix menu bug if no USE_PAYZEN config
- Fix Don for emlc cotisation
- Fix impersonating
- Fix fixtures dev on certain globalparameters boolean
- Fix API : remove unuse map endpoints
- Update README.md
- Fix Solidoume command exit bug
- Update documentation in doc/ directory
- Fix errors in installation process : add empty .gitignore in templates/themes/custom to keep directory custom + fix error in.env.dist EMAIL_ERROR with no bracket
- Add new file
- ADMIN export : Add simple email into prestataire and solidoume export
- Solidoume : add send quizz to >3 months participants + fix email layout + fix total amount calculated on taking
- Fix solidoume command for redistribution don bug + fix solidoume item show
- Fix bin/console bug
# Update v2.4.5 (2022-08-01)
- Admin : export prestatataires : ajout d'une colonne avec les gestionnaires (nom + email)
- Ajout d'un message d'erreur quand un prestatataire essaye de demander une reconversion et qu'il n'est pas à jour de sa cotisation
......
......@@ -630,7 +630,7 @@ state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Fédération Kohinos
Copyright (C) 2019-2021
Copyright (C) 2019-2023
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
......
Le site : https://kohinos.com
Pour l'installation du Kohinos, voir
https://kohinos.net
......
2.4.5
\ No newline at end of file
2.4.10
\ No newline at end of file
import { startStimulusApp } from '@symfony/stimulus-bridge';
// Registers Stimulus controllers from controllers.json and in the controllers/ directory
export const app = startStimulusApp(require.context(
'@symfony/stimulus-bridge/lazy-controller-loader!./controllers',
true,
/\.[jt]sx?$/
));
\ No newline at end of file
{
"controllers": {
"@symfony/ux-chartjs": {
"chart": {
"enabled": true,
"fetch": "eager"
}
}
},
"entrypoints": []
}
import { Controller } from '@hotwired/stimulus';
/*
* This is an example Stimulus controller!
*
* Any element with a data-controller="hello" attribute will cause
* this controller to be executed. The name "hello" comes from the filename:
* hello_controller.js -> "hello"
*
* Delete this file or adapt it for your use!
*/
export default class extends Controller {
// connect() {
// this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js';
// }
}
......@@ -2156,6 +2156,22 @@ https://github.com/sonata-project/SonataAdminBundle/issues/4022
opacity: 0.01 !important;
}
.spinner::before {
animation: 1.5s linear infinite spinner;
animation-play-state: inherit;
border: solid 5px #cfd0d1;
border-bottom-color: #1c87c9;
border-radius: 50%;
content: "";
height: 20px;
position: absolute;
top: 10%;
left: 10%;
transform: translate3d(-50%, -50%, 0);
width: 40px;
will-change: transform;
}
.prestataire-products-families-row {
display: flex;
gap: 10px;
......
body {
background-color: lightgray;
}
#mapid {
height: 360px;
}
......@@ -52,6 +49,30 @@ legend.required:after {
.invalid-feedback {
display: inline-block !important;
}
.form-control, .form-group {
margin-bottom: 10px !important;
}
.form-group:last-child {
margin-bottom: 0px !important;
}
.modal-footer .btn:not(.disabled):active {
margin-top: 6px !important;
}
.modal-footer .btn:not(.disabled):hover {
margin-top: 5px !important;
}
.slider .tooltip.bs-tooltip-top {
margin-top: -37px !important;
}
.slider .tooltip {
display: none !important;
}
form[name='formSolidoumeItem'] .form-check {
text-align: left !important;
}
form[name='formAchatMonnaieAdherent'] .form-check {
display: inline-block !important;
}
.header-placeholder {
height: 0.5rem;
......
// Lumen 4.6.0
// Lumen 5.2.2
// Bootswatch
// Variables ===================================================================
// Variables
// KOHINOS : load font from local, not googleapis
// $web-font-path: "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,700;1,400&display=swap" !default;
// @if $web-font-path {
// @import url($web-font-path);
// }
/* source-sans-pro-300 - latin */
@font-face {
font-family: 'Source Sans Pro';
......@@ -106,33 +107,30 @@
url('../fonts/Source-Sans-Pro/source-sans-pro-v14-latin-900.svg#SourceSansPro') format('svg'); /* Legacy iOS */
}
// Mixins ======================================================================
:root {
color-scheme: light;
}
// Mixins
@mixin shadow($width: 4px){
border-style: solid;
border-width: 0 1px $width 1px;
}
// Navbar ======================================================================
// Navbar
.navbar {
@include shadow();
}
.bg-primary {
border-color: darken($primary, 5%);
}
.bg-dark {
border-color: darken($dark, 5%);
}
.bg-light {
background-color: $white !important;
border-color: darken($white, 5%);
@each $color, $value in $theme-colors {
&.bg-#{$color} {
border-color: shade-color($value, 10%);
}
}
}
// Buttons =====================================================================
// Buttons
.btn {
@include shadow();
......@@ -149,37 +147,26 @@
@include box-shadow(none);
}
&-primary {
border-color: darken($primary, 5%);
}
&-secondary {
border-color: darken($secondary, 5%);
}
&-success {
border-color: darken($success, 5%);
}
&-info {
border-color: darken($info, 5%);
}
&-danger {
border-color: darken($danger, 5%);
}
&-warning {
border-color: darken($warning, 5%);
}
@each $color, $value in $theme-colors {
&-#{$color} {
&:hover,
&:active,
&:focus {
background-color: $value;
}
&-light {
border-color: darken($light, 5%);
&,
&:not(.disabled):hover,
&:not(.disabled):active,
&:focus {
border-color: shade-color($value, 10%);
}
}
}
}
&-dark {
border-color: darken($dark, 5%);
}
.btn-outline-secondary {
color: $black;
}
[class*="btn-outline"] {
......@@ -200,7 +187,7 @@
}
}
// Typography ==================================================================
// Typography
.text-secondary {
color: $gray-700 !important;
......@@ -210,192 +197,13 @@
color: $gray-600;
}
// Tables ======================================================================
.table {
&-primary,
&-success,
&-info,
&-warning,
&-danger {
color: $white;
}
&-hover tbody {
.table-primary:hover,
.table-success:hover,
.table-info:hover,
.table-warning:hover,
.table-danger:hover,
.table-dark:hover {
color: $white;
}
}
&-primary {
&,
> th,
> td {
background-color: $primary;
}
}
&-secondary {
&,
> th,
> td {
background-color: $secondary;
}
}
&-light {
&,
> th,
> td {
background-color: $light;
}
}
&-dark {
&,
> th,
> td {
background-color: $dark;
}
}
&-success {
&,
> th,
> td {
background-color: $success;
}
}
&-info {
&,
> th,
> td {
background-color: $info;
}
}
&-danger {
&,
> th,
> td {
background-color: $danger;
}
}
&-warning {
&,
> th,
> td {
background-color: $warning;
}
}
&-active {
&,
> th,
> td {
background-color: $table-active-bg;
}
}
&-hover {
.table-primary:hover {
&,
> th,
> td {
background-color: darken($primary, 5%);
}
}
.table-secondary:hover {
&,
> th,
> td {
background-color: darken($secondary, 5%);
}
}
.table-light:hover {
&,
> th,
> td {
background-color: darken($light, 5%);
}
}
.table-dark:hover {
&,
> th,
> td {
background-color: darken($dark, 5%);
}
}
.table-success:hover {
&,
> th,
> td {
background-color: darken($success, 5%);
}
}
.table-info:hover {
&,
> th,
> td {
background-color: darken($info, 5%);
}
}
.table-danger:hover {
&,
> th,
> td {
background-color: darken($danger, 5%);
}
}
.table-warning:hover {
&,
> th,
> td {
background-color: darken($warning, 5%);
}
}
.table-active:hover {
&,
> th,
> td {
background-color: $table-active-bg;
}
}
}
}
// Forms =======================================================================
// Forms
.form-control {
box-shadow: inset 0 2px 0 rgba(0, 0, 0, .075);
}
.input-group-sm {
> .input-group-prepend,
> .input-group-append {
.btn {
font-size: $btn-font-size-sm;
}
}
}
// Navs ========================================================================
// Navs
.nav {
.open > a,
......@@ -422,8 +230,8 @@
&:not(.disabled):focus,
&.active {
padding-bottom: add(.5rem, 6px);
border-bottom-color: transparent;
margin-top: 0;
border-bottom-color: transparent;
}
}
......@@ -440,7 +248,7 @@
}
.breadcrumb {
border-color: darken($breadcrumb-bg, 5%);
border-color: shade-color($breadcrumb-bg, 10%);
@include shadow();
}
......@@ -449,17 +257,16 @@
> li > span {
position: relative;
top: 0;
@include shadow();
color: $pagination-color;
font-size: 12px;
font-weight: 700;
color: $pagination-color;
text-transform: uppercase;
@include shadow();
&:hover,
&:focus {
top: 1px;
border-bottom-width: 3px;
text-decoration: none;
border-bottom-width: 3px;
}
&:active {
......@@ -490,15 +297,15 @@
&,
&:hover,
&:active {
border-left-width: 2px;
border-right-width: 2px;
border-left-width: 2px;
}
}
}
// Indicators ==================================================================
// Indicators
.close {
.btn-close {
text-decoration: none;
opacity: .4;
......@@ -514,42 +321,42 @@
&-primary {
background-color: $primary;
border-color: darken($primary, 5%);
border-color: shade-color($primary, 10%);
}
&-secondary {
background-color: $secondary;
border-color: darken($secondary, 5%);
border-color: shade-color($secondary, 10%);
}
&-success {
background-color: $success;
border-color: darken($success, 5%);
border-color: shade-color($success, 10%);
}
&-info {
background-color: $info;
border-color: darken($info, 5%);
border-color: shade-color($info, 10%);
}
&-danger {
background-color: $danger;
border-color: darken($danger, 5%);
border-color: shade-color($danger, 10%);
}
&-warning {
background-color: $warning;
border-color: darken($warning, 5%);
border-color: shade-color($warning, 10%);
}
&-dark {
background-color: $dark;
border-color: darken($dark, 5%);
border-color: shade-color($dark, 10%);
}
&-light {
background-color: $light;
border-color: darken($light, 5%);
border-color: shade-color($light, 10%);
}
.alert-link {
......@@ -569,13 +376,13 @@
}
.badge {
&-warning,
&-info {
color: $white;
&.bg-secondary,
&.bg-light {
color: $dark;
}
}
// Containers ==================================================================
// Containers
a.list-group-item {
&-success {
......@@ -585,7 +392,7 @@ a.list-group-item {
&.active:hover,
&.active:focus {
background-color: darken($success, 5%);
background-color: shade-color($success, 10%);
}
}
......@@ -596,7 +403,7 @@ a.list-group-item {
&.active:hover,
&.active:focus {
background-color: darken($warning, 5%);
background-color: shade-color($warning, 10%);
}
}
......@@ -607,24 +414,15 @@ a.list-group-item {
&.active:hover,
&.active:focus {
background-color: darken($danger, 5%);
background-color: shade-color($danger, 10%);
}
}
}
.jumbotron {
border: 1px solid $gray-200;
box-shadow: inset 0 2px 0 rgba(0, 0, 0, .05);
}
.modal,
.toast {
.close {
color: $black;
&:not(:disabled):not(.disabled):hover,
&:not(:disabled):not(.disabled):focus {
color: $black;
}
.toast,
.offcanvas {
.btn-close {
background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$black}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
}
}
// Lumen 4.6.0
// Lumen 5.2.2
// Bootswatch
$theme: "lumen" !default;
//
// Color system
//
......@@ -37,18 +39,19 @@ $danger: $red !default;
$light: $gray-100 !default;
$dark: $gray-700 !default;
$yiq-contrasted-threshold: 200 !default;
$min-contrast-ratio: 1.75 !default;
// Fonts
// stylelint-disable-next-line value-keyword-case
$font-family-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
$font-size-base: .875rem !default;
// Tables
$table-bg-scale: 0 !default;
// Buttons
$btn-font-size: .75rem !default;
$btn-font-size-sm: .625rem !default;
$btn-font-weight: 700 !default;
// Dropdowns
......@@ -72,9 +75,12 @@ $pagination-active-border-color: darken($primary, 5%) !default;
$pagination-disabled-color: $gray-600 !default;
$pagination-disabled-bg: $pagination-bg !default;
// Jumbotron
// Breadcrumbs
$jumbotron-bg: #fafafa !default;
$breadcrumb-padding-y: .375rem !default;
$breadcrumb-padding-x: .75rem !default;
$breadcrumb-bg: $pagination-bg !default;
$breadcrumb-border-radius: .25rem !default;
// Modals
......@@ -82,4 +88,6 @@ $modal-content-border-color: rgba($black, .1) !default;
// Close
$close-color: $white !default;
$btn-close-color: $white !default;
$btn-close-opacity: .4 !default;
$btn-close-hover-opacity: 1 !default;
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -21,16 +21,20 @@
* custom hérite de lumen mais on supprime l'appel à googlefont ! ("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic")
*
* @import "~bootswatch/dist/[theme]/variables";
* @import "~bootstrap/scss/bootstrap";
* @import "~bootswatch/dist/[theme]/bootswatch";
*
* Remplacer [custom] par un des thèmes possibles :
* cerulean, cosmo, cyborg, darkly, flatly, journal, litera, lumen, lux, materia, minty, pulse, sandstone, simplex, sketchy, slate, solar, spacelab, superhero, united, yeti
* Remplacer [theme] par un des thèmes possibles (thème par défaut du Kohinos: lumen) :
* cerulean, cosmo, cyborg, darkly, flatly, journal, litera, lumen, lux, materia, minty, morph, pulse, quartz, sandstone, simplex, sketchy, slate, solar, spacelab, superhero, united, vapor, yeti, zephyr
*/
@import "./custom/variables";
@import "~bootstrap/scss/bootstrap";
@import "bootstrap/scss/bootstrap";
@import "./custom/bootswatch";
// @import "~bootstrap/scss/bootstrap-grid";
@import "~select2/dist/css/select2";
// @import "~bootswatch/dist/lumen/variables";
// @import "~bootstrap/scss/bootstrap";
// @import "~bootswatch/dist/lumen/bootswatch";
@import "select2/dist/css/select2";
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 34px;
......@@ -41,3 +45,7 @@
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 32px;
}
a {
color: var(--bs-link-color);
text-decoration: none;
}
\ No newline at end of file
/*
* Welcome to your app's main JavaScript file!
*
* We recommend including the built version of this JavaScript file
* (and its CSS file) in your base layout (base.html.twig).
*/
// any CSS you require will output into a single css file (app.css in this case)
import '../bootstrap';
// any CSS you require will output into a single css file (admin.css in this case)
require('../css/admin.css');
require('bootstrap');
require('../css/common.css');
require('../js/geoloc.js');
require('../js/flash-messages.js');
const $ = require("jquery");
$('#flash-messages').flashNotification('init');
$(document).ready(function() {
loadDynamicChart();
function loadDynamicChart() {
$('.loadDynamicChart').each(function() {
var self = $(this);
$.ajax({
url : self.data('url'),
type: 'get',
success: function(data) {
if(data.success == true && data.html != null) {
self.parent().html(data.html);
self.addClass('label-success');
} else {
self.addClass('label-error');
}
},
error: function(data) {
self.addClass('label-error');
}
});
});
}
/*
* On user edit page, on the rolesgroup checkbox:
* - display 'group' select if "Gestionnaire de groupe" is checked
......@@ -31,12 +50,24 @@ $(document).ready(function() {
} else {
$('.comptoirsgeres_select').addClass('hide')
}
} else if (label.includes('groupe') || label.includes('contact')) {
} else if (label.includes('groupe')) {
if (isChecked) {
$('.groupesgeres_select').removeClass('hide')
} else {
$('.groupesgeres_select').addClass('hide')
}
} else if (label.includes('contact')) {
if (isChecked) {
$('.groupecontactsgeres_select').removeClass('hide')
} else {
$('.groupecontactsgeres_select').addClass('hide')
}
} else if (label.includes('trésorier')) {
if (isChecked) {
$('.groupetresoriersgeres_select').removeClass('hide')
} else {
$('.groupetresoriersgeres_select').addClass('hide')
}
}
}
......@@ -44,6 +75,27 @@ $(document).ready(function() {
$('.possible_group_cblist li .checkbox label ins').on('click', possiblegroups_display_selects);
$('.graphStatsButton').on('click', function (e) {
e.preventDefault();
var self = $(this);
$.ajax({
url : self.data('url'),
type: 'get',
success: function(data) {
if(data.success == true && data.html != null) {
$(self.data('target')).html(data.html);
loadDynamicChart()
} else {
self.addClass('label-error');
}
},
error: function(data) {
self.addClass('label-error');
}
});
});
$('.editableboolean').on('click', function (e) {
e.preventDefault();
var self = $(this);
......
......@@ -7,10 +7,11 @@
// any CSS you require will output into a single css file (app.css in this case)
// start the Stimulus application
import '../bootstrap';
// UTILISER LES FONT AWESOME POUR L'ICONOGRAPHIE
require('../../public/fontawesome/css/all.min.css');
// CSS DU KOHINOS
require('../css/app.css');
// THEME BOOTSTRAP / BOOTSWATCH + CONFIGURATION GLOBALE (COULEURS, FONTS...)
require('../css/global.scss');
......@@ -42,12 +43,16 @@ require('bootstrap-slider/dist/css/bootstrap-slider.min.css')
require('../leaflet/leaflet.js');
// for flash message notification
require('../js/flash-messages.js');
require('../js/solidoume.js');
require('../js/geoloc.js');
require('select2/dist/js/select2.full');
require('select2/dist/js/i18n/fr');
// CSS DU KOHINOS
require('../css/app.css');
$('#flash-messages').flashNotification('init');
var $collectionHolder;
......@@ -150,6 +155,7 @@ function showConfirmTransactionModal(div, form, montant, don, destinataire = nul
$('#confirmTransactionModal #confirmTransactionButton').off()
$('#confirmTransactionModal #confirmTransactionButton').on('click', function(e){
$(this).attr('disabled', true)
$(this).html('<span class="spinner-border spinner-border-sm ms-4 me-4" role="status" aria-hidden="true"></span>')
form.submit()
});
}
......@@ -192,25 +198,27 @@ $(function() {
addGroupeForm($collectionHolder, $newLinkLi);
});
// Get the ul that holds the collection of groupes
$collectionHolderGeoloc = $('.geolocs');
if ($('.geolocs').length) {
// Get the ul that holds the collection of groupes
$collectionHolderGeoloc = $('.geolocs');
// add a delete link to all of the existing tag form li elements
$collectionHolderGeoloc.find('li').each(function() {
addGroupeFormDeleteLinkGeoloc($(this));
});
// add a delete link to all of the existing tag form li elements
$collectionHolderGeoloc.find('li').each(function() {
addGroupeFormDeleteLinkGeoloc($(this));
});
// add the "add a groupe" anchor and li to the groupes ul
$collectionHolderGeoloc.append($newLinkLiGeoloc);
// add the "add a groupe" anchor and li to the groupes ul
$collectionHolderGeoloc.append($newLinkLiGeoloc);
// count the current form inputs we have (e.g. 2), use that as the new
// index when inserting a new item (e.g. 2)
$collectionHolderGeoloc.data('index', $collectionHolderGeoloc.find(':input').length);
// count the current form inputs we have (e.g. 2), use that as the new
// index when inserting a new item (e.g. 2)
$collectionHolderGeoloc.data('index', $collectionHolderGeoloc.find(':input').length);
$addGeolocButton.on('click', function(e) {
// add a new groupe form (see next code block)
addGroupeFormGeoloc($collectionHolderGeoloc, $newLinkLiGeoloc);
});
$addGeolocButton.on('click', function(e) {
// add a new groupe form (see next code block)
addGroupeFormGeoloc($collectionHolderGeoloc, $newLinkLiGeoloc);
});
}
// BOOTSTRAP TOOLTIPS
$('[data-toggle="tooltip"]').tooltip()
......@@ -234,7 +242,7 @@ $(function() {
$("span.achat_monnaie_montant_total").text(valuetotal + ' €')
});
$("input:text[name='formAchatMonnaieAConfirmerAdherent[don][montant]']").change(function() {
var valuetotal = parseFloat($('input.achatmonnaie-montant-slider').slider().val()) + parseFloat($("input:text[name='formAchatMonnaieAConfirmerAdherent[don][montant]']").val().replace(",", "."))
var valuetotal = parseFloat($("span.achat_monnaie_montant_choisi").text().replace(" €", "")) + parseFloat($("input:text[name='formAchatMonnaieAConfirmerAdherent[don][montant]']").val().replace(",", "."))
$("span.achat_monnaie_montant_total").text(valuetotal + ' €')
});
$("input:radio[name='formAchatMonnaieAdherent[montantradio]']").change(function() {
......@@ -369,7 +377,9 @@ $(function() {
// Get destinataire
var destinataire_select = $('#' + form.name + '_destinataire')[0]
var destinataire_name = destinataire_select.options[destinataire_select.selectedIndex].text
if (destinataire_select.length) {
var destinataire_name = destinataire_select.options[destinataire_select.selectedIndex].text
}
// Get montant
var montant_field = $('#' + form.name + '_montant')[0]
......@@ -383,6 +393,7 @@ $(function() {
}
showConfirmTransactionModal(div, form, montant_value, don_value, destinataire_name)
$(this).attr('disabled', false);
} else {
// Use symfony validation
form.submit()
......@@ -424,6 +435,7 @@ $(function() {
}
showConfirmTransactionModal(div, form, montant_value, don_value)
$(this).attr('disabled', false);
} else {
// Use symfony validation
form.submit()
......
......@@ -23,30 +23,34 @@
*/
listenIncomingMessages: function() {
$(document).ajaxComplete(function(event, xhr, settings) {
var data = $.parseJSON(xhr.responseText);
try {
var data = $.parseJSON(xhr.responseText);
if (data.messages) {
var messages = data.messages;
if (data.messages) {
var messages = data.messages;
var i;
var i;
if (messages.error) {
for (i = 0; i < messages.error.length; i++) {
methods.addError(messages.error[i]);
if (messages.error) {
for (i = 0; i < messages.error.length; i++) {
methods.addError(messages.error[i]);
}
}
}
if (messages.success) {
for (i = 0; i < messages.success.length; i++) {
methods.addSuccess(messages.success[i]);
if (messages.success) {
for (i = 0; i < messages.success.length; i++) {
methods.addSuccess(messages.success[i]);
}
}
}
if (messages.info) {
for (i = 0; i < messages.info.length; i++) {
methods.addInfo(messages.info[i]);
if (messages.info) {
for (i = 0; i < messages.info.length; i++) {
methods.addInfo(messages.info[i]);
}
}
}
} catch (e) {
return false;
}
});
},
......@@ -85,8 +89,11 @@
getCloseButton: function() {
var closeButtonElt = $('<button></button>')
.addClass('close')
.addClass('btn-close')
.attr('data-bs-dismiss', 'alert')
.attr('data-dismiss', 'alert')
.attr('aria-label', 'close')
.attr('type', 'button')
.html('&times')
;
......
$(document).ready(function() {
$('#formSolidoumeItem_amount, #formSolidoumeItem_isRecurrent').on('change', function(e) {
$('#formSolidoumeItem_save').attr('disabled', false);
var form = this.closest('form')
var balance = $('#' + form.name + '_balance').val()
var amount = $('#' + form.name + '_amount').val()
var isrecurrent = $('#' + form.name + '_isRecurrent').is(':checked')
if (parseFloat(balance) < parseFloat(amount)) {
$('#formSolidoumeItem_save').attr('disabled', true);
$('#formSolidoumeItem_error').attr('style', 'display:block;');
} else {
$('#formSolidoumeItem_error').attr('style', 'display:none;');
}
});
});
\ No newline at end of file
......@@ -91,9 +91,10 @@
"symfony/swiftmailer-bundle": "^3.1",
"symfony/translation": "4.4.*",
"symfony/twig-bundle": "4.4.*",
"symfony/ux-chartjs": "^2.3",
"symfony/validator": "4.4.*",
"symfony/web-link": "4.4.*",
"symfony/webpack-encore-bundle": "^1.14",
"symfony/webpack-encore-bundle": "^1.16",
"symfony/yaml": "4.4.*",
"twig/extensions": "^1.5",
"twig/extra-bundle": "^2.12|^3.0",
......
......@@ -14905,6 +14905,90 @@
"time": "2022-04-12T15:19:55+00:00"
},
{
"name": "symfony/ux-chartjs",
"version": "v2.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/ux-chartjs.git",
"reference": "bd47735efc696072a35a56eeba8410592e38dbe8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/ux-chartjs/zipball/bd47735efc696072a35a56eeba8410592e38dbe8",
"reference": "bd47735efc696072a35a56eeba8410592e38dbe8",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/config": "^4.4.17|^5.0|^6.0",
"symfony/dependency-injection": "^4.4.17|^5.0|^6.0",
"symfony/http-kernel": "^4.4.17|^5.0|^6.0"
},
"conflict": {
"symfony/flex": "<1.13",
"symfony/webpack-encore-bundle": "<1.11"
},
"require-dev": {
"symfony/framework-bundle": "^4.4.17|^5.0|^6.0",
"symfony/phpunit-bridge": "^5.2|^6.0",
"symfony/twig-bundle": "^4.4.17|^5.0|^6.0",
"symfony/var-dumper": "^4.4.17|^5.0|^6.0",
"symfony/webpack-encore-bundle": "^1.11"
},
"type": "symfony-bundle",
"extra": {
"thanks": {
"name": "symfony/ux",
"url": "https://github.com/symfony/ux"
}
},
"autoload": {
"psr-4": {
"Symfony\\UX\\Chartjs\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Titouan Galopin",
"email": "galopintitouan@gmail.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Chart.js integration for Symfony",
"homepage": "https://symfony.com",
"keywords": [
"symfony-ux"
],
"support": {
"source": "https://github.com/symfony/ux-chartjs/tree/v2.5.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2022-09-20T17:04:34+00:00"
},
{
"name": "symfony/validator",
"version": "v4.4.41",
"source": {
......@@ -15263,16 +15347,16 @@
},
{
"name": "symfony/webpack-encore-bundle",
"version": "v1.14.1",
"version": "v1.16.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/webpack-encore-bundle.git",
"reference": "6b18be99bf2a5a402b80a2c00043fe0b365fe836"
"reference": "bb399930c0299866258b616a74a27b50b94c5d45"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/6b18be99bf2a5a402b80a2c00043fe0b365fe836",
"reference": "6b18be99bf2a5a402b80a2c00043fe0b365fe836",
"url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/bb399930c0299866258b616a74a27b50b94c5d45",
"reference": "bb399930c0299866258b616a74a27b50b94c5d45",
"shasum": ""
},
"require": {
......@@ -15280,7 +15364,9 @@
"symfony/asset": "^4.4 || ^5.0 || ^6.0",
"symfony/config": "^4.4 || ^5.0 || ^6.0",
"symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0",
"symfony/deprecation-contracts": "^2.1 || ^3.0",
"symfony/http-kernel": "^4.4 || ^5.0 || ^6.0",
"symfony/polyfill-php80": "^1.25.0",
"symfony/service-contracts": "^1.0 || ^2.0 || ^3.0"
},
"require-dev": {
......@@ -15314,7 +15400,7 @@
"description": "Integration with your Symfony app & Webpack Encore!",
"support": {
"issues": "https://github.com/symfony/webpack-encore-bundle/issues",
"source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.14.1"
"source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.16.0"
},
"funding": [
{
......@@ -15330,7 +15416,7 @@
"type": "tidelift"
}
],
"time": "2022-05-03T17:55:32+00:00"
"time": "2022-10-18T15:21:06+00:00"
},
{
"name": "symfony/yaml",
......
......@@ -61,4 +61,5 @@ return [
Cron\CronBundle\CronCronBundle::class => ['all' => true],
Gregwar\CaptchaBundle\GregwarCaptchaBundle::class => ['all' => true],
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
Symfony\UX\Chartjs\ChartjsBundle::class => ['all' => true],
];
......@@ -272,8 +272,8 @@ api_platform:
# mime_types: ['application/ld+json']
json:
mime_types: ['application/json']
# html:
# mime_types: ['text/html']
html:
mime_types: ['text/html']
csv:
mime_types: ['text/csv']
......
......@@ -60,11 +60,15 @@ doctrine:
dql:
string_functions:
str_to_date: App\DQL\StrToDate
MONTH: DoctrineExtensions\Query\Mysql\Month
YEAR: DoctrineExtensions\Query\Mysql\Year
numeric_functions:
acos: DoctrineExtensions\Query\Mysql\Acos
cos: DoctrineExtensions\Query\Mysql\Cos
radians: DoctrineExtensions\Query\Mysql\Radians
sin: DoctrineExtensions\Query\Mysql\Sin
datetime_functions:
date: App\DQL\DQLDate
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
......
......@@ -21,14 +21,14 @@ monolog:
type: console
process_psr_3_messages: false
channels: ["!event", "!doctrine"]
deprecation:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"
deprecation_filter:
type: filter
handler: deprecation
max_level: info
channels: ["php"]
# deprecation:
# type: stream
# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"
# deprecation_filter:
# type: filter
# handler: deprecation
# max_level: info
# channels: ["php"]
main_critical:
type: fingers_crossed
action_level: critical
......
......@@ -90,6 +90,8 @@ security:
ROLE_CAISSIER: ROLE_USER
ROLE_ADMIN_SIEGE: [ROLE_USER, ROLE_ADMIN]
ROLE_REDACTEUR: [ROLE_USER, ROLE_ADMIN]
ROLE_SECRETAIRE: [ROLE_USER, ROLE_ADMIN]
ROLE_SOLIDOUME: [ROLE_USER, ROLE_ADMIN]
ROLE_TRESORIER: [ROLE_USER, ROLE_ADMIN]
ROLE_CONTROLEUR: [ROLE_USER, ROLE_ADMIN]
ROLE_GESTION_GROUPE: [ROLE_USER, ROLE_ADMIN]
......
......@@ -33,6 +33,8 @@ sonata_block:
# contexts: [admin]
admin.block.dashboard:
contexts: [admin]
admin.block.charts:
contexts: [admin]
sonata_formatter:
default_formatter: text
......
......@@ -97,62 +97,114 @@ sonata_admin:
# BOTTOM BOTTOM BOTTOM
blocks:
-
class: col-xs-12 col-md-12
position: top
type: admin.block.dashboard
-
position: top
class: col-xs-12 col-md-12
-
type: admin.block.charts
position: center
type: sonata.admin.block.admin_list
# DO NOT SHOW THE BASIC ADMIN LIST
# -
# class: col-xs-12 col-md-6
# position: center
# class: col-xs-12 col-md-12
# position: bottom
# type: sonata.admin.block.admin_list
# -
# class: col-xs-4 col-md-3
# position: top
# type: sonata.admin.block.stats
# settings:
# code: admin.adherent.gerer
# icon: fas fa-user
# text: Adherents
# color: bg-info
# filters:
# enabled: { value: 1 }
-
type: sonata.admin.block.stats
position: top
class: col-xs-6 col-md-3
roles: ['ROLE_SUPER_ADMIN', ROLE_ADMIN_ADHERENT_GERER_ALL', 'ROLE_ADMIN_ADHERENT_GERER_LIST', 'ROLE_ADMIN_ADHERENT_GERER_CREATE']
settings:
code: admin.adherent.gerer
icon: fas fa-user
text: Adherents
color: bg-info
filters:
enabled: { value: 1 }
# _per_page: { value: 32 }
# -
# class: col-xs-4 col-md-3
# position: top
# type: sonata.admin.block.stats
# settings:
# code: admin.prestataire.gerer
# icon: fas fa-user-ninja
# text: Prestataires
# color: bg-info
# filters:
# enabled: { value: 1 }
# -
# class: col-xs-4 col-md-3
# position: top
# type: sonata.admin.block.stats
# settings:
# code: admin.groupe.gerer
# icon: fas fa-user-ninja
# text: Groupes
# color: bg-info
# filters:
# enabled: { value: 1 }
# -
# class: col-xs-4 col-md-3
# position: top
# type: sonata.admin.block.stats
# settings:
# code: admin.comptoir.gerer
# icon: fas fa-user-ninja
# text: Comptoirs
# color: bg-info
# filters:
# enabled: { value: 1 }
-
type: sonata.admin.block.stats
position: top
class: col-xs-6 col-md-3
roles: ['ROLE_SUPER_ADMIN', 'ROLE_ADMIN_PRESTATAIRE_GERER_ALL', 'ROLE_ADMIN_PRESTATAIRE_GERER_LIST', 'ROLE_ADMIN_PRESTATAIRE_GERER_CREATE']
settings:
code: admin.prestataire.gerer
icon: fas fa-shopping-basket
text: Prestataires
color: bg-info
filters:
enabled: { value: 1 }
-
type: sonata.admin.block.stats
position: top
class: col-xs-6 col-md-3
roles: ['ROLE_SUPER_ADMIN', 'ROLE_ADMIN_GROUPE_GERER_ALL', 'ROLE_ADMIN_GROUPE_GERER_LIST', 'ROLE_ADMIN_GROUPE_GERER_CREATE']
settings:
code: admin.groupe.gerer
icon: fa fa-object-group
text: Groupes
color: bg-info
filters:
enabled: { value: 1 }
-
type: sonata.admin.block.stats
position: top
class: col-xs-6 col-md-3
roles: ['ROLE_SUPER_ADMIN', 'ROLE_ADMIN_COMPTOIR_GERER_ALL', 'ROLE_ADMIN_COMPTOIR_GERER_LIST', 'ROLE_ADMIN_COMPTOIR_GERER_CREATE']
settings:
code: admin.comptoir.gerer
icon: fa fa-home
text: Comptoirs
color: bg-info
filters:
enabled: { value: 1 }
-
type: sonata.admin.block.stats
position: top
class: col-xs-6 col-md-3
roles: ['ROLE_SUPER_ADMIN', 'ROLE_ADMIN_NEWS_GERER_ALL', 'ROLE_ADMIN_NEWS_GERER_LIST', 'ROLE_ADMIN_NEWS_GERER_CREATE']
settings:
code: admin.news.gerer
icon: fa fa-newspaper-o
text: Actualités
color: bg-info
filters:
enabled: { value: 1 }
-
type: sonata.admin.block.stats
position: top
class: col-xs-6 col-md-3
roles: ['ROLE_SUPER_ADMIN', 'ROLE_ADMIN_PAGE_GERER_ALL', 'ROLE_ADMIN_PAGE_GERER_LIST', 'ROLE_ADMIN_PAGE_GERER_CREATE']
settings:
code: admin.page.gerer
icon: fa fa-file-image-o
text: Pages
color: bg-info
filters:
enabled: { value: 1 }
-
type: sonata.admin.block.stats
position: top
class: col-xs-6 col-md-3
roles: ['ROLE_SUPER_ADMIN', 'ROLE_ADMIN_FAQ_GERER_ALL', 'ROLE_ADMIN_FAQ_GERER_LIST', 'ROLE_ADMIN_FAQ_GERER_CREATE']
settings:
code: admin.faq.gerer
icon: fa fa-question
text: FAQ
color: bg-info
filters:
enabled: { value: 1 }
-
type: sonata.admin.block.stats
position: top
class: col-xs-6 col-md-3
roles: ['ROLE_SUPER_ADMIN', 'ROLE_ADMIN_DOCUMENT_GERER_ALL', 'ROLE_ADMIN_DOCUMENT_GERER_LIST', 'ROLE_ADMIN_DOCUMENT_GERER_CREATE']
settings:
code: admin.document.gerer
icon: fa fa-file
text: Documents
color: bg-info
filters:
enabled: { value: 1 }
# -
# type: sonata.block.service.text
# position: right
......@@ -162,9 +214,9 @@ sonata_admin:
# :
# Exemple de block de stats
# -
# class: col-lg-3 col-xs-6 # twitter bootstrap responsive code
# position: top # zone in the dashboard
# type: sonata.admin.block.stats # block id
# position: top # zone in the dashboard
# class: col-lg-3 col-xs-6 # twitter bootstrap responsive code
# settings:
# code: sonata.page.admin.page # admin code - service id
# icon: fa-magic # font awesome icon
......@@ -358,6 +410,7 @@ sonata_admin:
# roles: [ ROLE_ONE, ROLE_TWO ]
options:
legacy_twig_text_extension: false
use_select2: true
sonata_block:
blocks:
......
webpack_encore:
# The path where Encore is building the assets.
# This should match Encore.setOutputPath() in webpack.config.js.
# The path where Encore is building the assets - i.e. Encore.setOutputPath()
output_path: '%kernel.project_dir%/public/build'
# If multiple builds are defined (as shown below), you can disable the default build:
# output_path: false
# Set attributes that will be rendered on all script and link tags
script_attributes:
defer: false
# Uncomment (also under link_attributes) if using Turbo Drive
# https://turbo.hotwired.dev/handbook/drive#reloading-when-assets-change
# 'data-turbo-track': reload
# link_attributes:
# Uncomment if using Turbo Drive
# 'data-turbo-track': reload
# If using Encore.enableIntegrityHashes() and need the crossorigin attribute (default: false, or use 'anonymous' or 'use-credentials')
# crossorigin: 'anonymous'
# Preload all rendered script and link tags automatically via the HTTP/2 Link header
# preload: true
# Throw an exception if the entrypoints.json file is missing or an entry is missing from the data
# strict_mode: false
# If you have multiple builds:
# builds:
# pass "frontend" as the 3rg arg to the Twig functions
# {{ encore_entry_script_tags('entry1', null, 'frontend') }}
# frontend: '%kernel.project_dir%/public/frontend/build'
# Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
# Put in config/packages/prod/webpack_encore.yaml
# cache: true
framework:
assets:
json_manifest_path: '%kernel.project_dir%/public/build/manifest.json'
#when@prod:
# webpack_encore:
# # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
# # Available in version 1.2
# cache: true
#when@test:
# webpack_encore:
# strict_mode: false
......@@ -185,8 +185,7 @@ services:
app.twig.stats.extension:
class: App\Twig\StatsExtension
autowire: false
arguments: ["@doctrine.orm.entity_manager"]
autowire: true
app.formfactory:
class: App\Factory\FormFactory
......@@ -257,10 +256,17 @@ services:
tags:
- { name: sonata.block }
admin.block.charts:
class: App\Block\ChartsBlock
arguments:
- '@twig'
tags:
- { name: sonata.block }
admin.adherent.gerer:
class: App\Admin\AdherentAdmin
# arguments: [~, App\Entity\OBJECT, 'PixSortableBehaviorBundle:SortableAdmin']
arguments: [~, App\Entity\Adherent, 'App\Controller\AdherentAdminController']
# arguments: [~, App\Entity\Adherent, 'PixSortableBehaviorBundle:SortableAdmin']
arguments: [~, App\Entity\Adherent, 'App\Controller\CRUD\CRUDController']
tags:
- name: sonata.admin
manager_type: orm
......
version: "3.9"
services:
database:
image: mariadb:10.6.17
volumes:
- database:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: kohinos
MYSQL_DATABASE: kohinos
MYSQL_USER: kohinos
MYSQL_PASSWORD: kohinos
ports:
- "3306:3306"
server:
build:
context: .
dockerfile: ./docker/server/Dockerfile
user: ${DOCKER_USER_ID}
env_file:
- .env
working_dir: /sources
volumes:
- ".:/sources"
ports:
- "8080:80"
phpmyadmin:
image: phpmyadmin:5-apache
environment:
PMA_HOST: database
ports:
- "8081:80"
volumes:
database:
FROM php:7.4-apache
RUN set -eux \
&& apt-get update && apt-get install -y --no-install-recommends \
git \
gnupg2 \
libcurl4 \
libcurl4-openssl-dev \
libedit-dev \
libfreetype6-dev \
libicu-dev \
libjpeg62-turbo-dev \
libmagickwand-dev \
libonig-dev \
libpng-dev \
libpq-dev \
libxml2-dev \
libzip-dev \
default-mysql-client \
unzip \
wget \
&& rm -rf /var/lib/apt/lists/*
RUN set -eux \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install \
ctype \
gd \
intl \
iconv \
json \
mbstring \
pdo_mysql \
tokenizer \
xml \
zip
COPY ./docker/server/apache-site.conf /etc/apache2/sites-available/kohinos.conf
COPY ./docker/server/apache-conf.conf /etc/apache2/conf-available/kohinos.conf
COPY ./docker/server/php.ini /usr/local/etc/php/conf.d/kohinos.ini
RUN set -eux \
&& a2dissite 000-default \
&& a2ensite kohinos \
&& a2enconf kohinos \
&& a2enmod \
expires \
headers \
rewrite
ENV COMPOSER_HOME /tmp
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
COPY --from=composer:2 /tmp/keys.dev.pub /tmp/keys.tags.pub /tmp/
ServerName localhost
ServerSignature Off
ServerTokens Prod
<Directory "/sources">
Require all granted
AllowOverride All
Options -MultiViews -Indexes +FollowSymLinks
</Directory>
<VirtualHost *:80>
DocumentRoot /sources/public
ErrorLog /dev/stderr
CustomLog /dev/null combined
</VirtualHost>
memory_limit = 256M
......@@ -94,10 +94,45 @@ App\Entity\Usergroup:
'ROLE_ADMIN_DONS_ALL',
'ROLE_ADMIN_ADHERENT_GERER_LIST',
'ROLE_ADMIN_FLUX_GERER_ALL']]
usergroup_solidoume:
__construct: ['Gestionnaire Solidoume', [
'ROLE_SOLIDOUME',
'ROLE_ADMIN_SOLIDOUME_ALL',
'ROLE_ADMIN_SOLIDOUME_PARAMETERS_ALL',
'ROLE_ADMIN_NEWS_GERER_ALL',
'ROLE_ADMIN_ADHERENT_GERER_ALL',
'ROLE_ADMIN_ADHERENT_COTISATIONS_ALL'
]]
usergroup_secretaire:
__construct: ['Secrétaire', [
'ROLE_SECRETAIRE',
'ROLE_SONATA_MEDIA_ADMIN_MEDIA_ALL',
'ROLE_SONATA_MEDIA_ADMIN_GALLERY_ALL',
'ROLE_SONATA_MEDIA_ADMIN_GALLERY_HAS_MEDIA_ALL',
'ROLE_PRODIGIOUS_SONATA_MENU_ADMIN_MENU_ALL',
'ROLE_PRODIGIOUS_SONATA_MENU_ADMIN_MENU_ITEM_ALL',
'ROLE_ADMIN_NEWS_GERER_ALL',
'ROLE_ADMIN_DOCUMENT_GERER_ALL',
'ROLE_ADMIN_RUBRIQUE_GERER_ALL',
'ROLE_ADMIN_FAQ_GERER_ALL',
'ROLE_ADMIN_PAGE_GERER_ALL',
'ROLE_ADMIN_TRADUCTION_GERER_ALL',
'ROLE_ADMIN_COMPTOIR_GERER_LIST',
'ROLE_ADMIN_COMPTOIR_GERER_VIEW',
'ROLE_ADMIN_ADHERENT_GERER_ALL',
'ROLE_ADMIN_ADHERENT_COTISATIONS_ALL',
'ROLE_ADMIN_PRESTATAIRE_GERER_ALL',
'ROLE_ADMIN_PRESTATAIRE_COTISATIONS_ALL',
'ROLE_ADMIN_GROUPE_GERER_EDIT',
'ROLE_ADMIN_GROUPE_GERER_VIEW',
'ROLE_ADMIN_COMPTOIR_GERER_ALL',
'ROLE_ADMIN_GROUPEPRESTA_GERER_ALL']]
usergroup_gestiongroupe:
__construct: ['Gestionnaire de Groupe', [
'ROLE_GESTION_GROUPE',
'ROLE_SONATA_USER_ADMIN_USER_ALL',
'ROLE_SONATA_USER_ADMIN_USER_LIST',
'ROLE_SONATA_USER_ADMIN_USER_VIEW',
'ROLE_SONATA_USER_ADMIN_USER_EXPORT',
'ROLE_ADMIN_ADHERENT_GERER_ALL',
'ROLE_ADMIN_ADHERENT_COTISATIONS_ALL',
'ROLE_ADMIN_PRESTATAIRE_GERER_ALL',
......
......@@ -90,14 +90,51 @@ App\Entity\Usergroup:
'ROLE_ADMIN_OPERATION_COMPTOIR_GERER_ALL',
'ROLE_ADMIN_OPERATION_GROUPE_GERER_ALL',
'ROLE_ADMIN_OPERATION_SIEGE_GERER_ALL',
'ROLE_ADMIN_PRESTATAIRE_GERER_ALL',
'ROLE_ADMIN_PRESTATAIRE_COTISATIONS_ALL',
'ROLE_ADMIN_HELLOASSO_ALL',
'ROLE_ADMIN_DONS_ALL',
'ROLE_ADMIN_ADHERENT_GERER_LIST',
'ROLE_ADMIN_FLUX_GERER_ALL']]
usergroup_solidoume:
__construct: ['Gestionnaire Solidoume', [
'ROLE_SOLIDOUME',
'ROLE_ADMIN_SOLIDOUME_ALL',
'ROLE_ADMIN_SOLIDOUME_PARAMETERS_ALL',
'ROLE_ADMIN_NEWS_GERER_ALL',
'ROLE_ADMIN_ADHERENT_GERER_ALL',
'ROLE_ADMIN_ADHERENT_COTISATIONS_ALL'
]]
usergroup_secretaire:
__construct: ['Secrétaire', [
'ROLE_SECRETAIRE',
'ROLE_SONATA_MEDIA_ADMIN_MEDIA_ALL',
'ROLE_SONATA_MEDIA_ADMIN_GALLERY_ALL',
'ROLE_SONATA_MEDIA_ADMIN_GALLERY_HAS_MEDIA_ALL',
'ROLE_PRODIGIOUS_SONATA_MENU_ADMIN_MENU_ALL',
'ROLE_PRODIGIOUS_SONATA_MENU_ADMIN_MENU_ITEM_ALL',
'ROLE_ADMIN_NEWS_GERER_ALL',
'ROLE_ADMIN_DOCUMENT_GERER_ALL',
'ROLE_ADMIN_RUBRIQUE_GERER_ALL',
'ROLE_ADMIN_FAQ_GERER_ALL',
'ROLE_ADMIN_PAGE_GERER_ALL',
'ROLE_ADMIN_TRADUCTION_GERER_ALL',
'ROLE_ADMIN_COMPTOIR_GERER_LIST',
'ROLE_ADMIN_COMPTOIR_GERER_VIEW',
'ROLE_ADMIN_ADHERENT_GERER_ALL',
'ROLE_ADMIN_ADHERENT_COTISATIONS_ALL',
'ROLE_ADMIN_PRESTATAIRE_GERER_ALL',
'ROLE_ADMIN_PRESTATAIRE_COTISATIONS_ALL',
'ROLE_ADMIN_GROUPE_GERER_EDIT',
'ROLE_ADMIN_GROUPE_GERER_VIEW',
'ROLE_ADMIN_COMPTOIR_GERER_ALL',
'ROLE_ADMIN_GROUPEPRESTA_GERER_ALL']]
usergroup_gestiongroupe:
__construct: ['Gestionnaire de Groupe', [
'ROLE_GESTION_GROUPE',
'ROLE_SONATA_USER_ADMIN_USER_ALL',
'ROLE_SONATA_USER_ADMIN_USER_LIST',
'ROLE_SONATA_USER_ADMIN_USER_VIEW',
'ROLE_SONATA_USER_ADMIN_USER_EXPORT',
'ROLE_ADMIN_ADHERENT_GERER_ALL',
'ROLE_ADMIN_ADHERENT_COTISATIONS_ALL',
'ROLE_ADMIN_PRESTATAIRE_GERER_ALL',
......@@ -990,7 +1027,7 @@ App\Entity\User:
possiblegroups: ['@usergroup_contact']
groups: ['@usergroup_contact']
roles: ['ROLE_CONTACT']
groupesgeres: ['@groupe1']
groupecontactsgeres: ['@groupe1']
usercomptoir:
username: 'user_comptoir'
email: 'comptoir@kohinos.test'
......
......@@ -2,8 +2,7 @@ grumphp:
hooks_dir: ~
hooks_preset: local
git_hook_variables:
# EXEC_GRUMPHP_COMMAND: 'docker-compose exec -T php'
EXEC_GRUMPHP_COMMAND: 'exec'
EXEC_GRUMPHP_COMMAND: 'docker compose exec -T server'
# EXEC_GRUMPHP_COMMAND: 'exec'
stop_on_failure: false
ignore_unstaged_changes: false
......
{
"devDependencies": {
"@symfony/webpack-encore": "^1.7.0",
"@hotwired/stimulus": "^3.0.0",
"@symfony/stimulus-bridge": "^3.0.0",
"@symfony/ux-chartjs": "file:vendor/symfony/ux-chartjs/Resources/assets",
"@symfony/webpack-encore": "^4.0.0",
"chart.js": "^3.4.1",
"core-js": "^3.0.0",
"file-loader": "^6.0.0",
"sass-loader": "9.0.1",
"webpack-notifier": "^1.6.0",
"workbox-webpack-plugin": "^6.5.2"
"regenerator-runtime": "^0.13.9",
"sass-loader": "13.1.0",
"webpack-notifier": "^1.15.0",
"workbox-webpack-plugin": "^6.5.4"
},
"license": "UNLICENSED",
"private": true,
......@@ -15,13 +21,15 @@
"build": "encore production --progress"
},
"dependencies": {
"bootstrap": "^4.4.1",
"@popperjs/core": "^2.11.6",
"bootstrap": "^5.2.2",
"bootstrap-slider": "^11.0.2",
"bootswatch": "^4.3.1",
"bootswatch": "^5.2.2",
"ckeditor": "^4.12.1",
"jquery": "^3.3.1",
"popper.js": "^1.16.1",
"sass": "1.35.1",
"select2": "^4.1.0-rc.0"
"jquery": "^3.6.1",
"sass": "1.55.0",
"select2": "^4.1.0-rc.0",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0"
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -4,57 +4,46 @@
*/
/*!
* Bootstrap v4.5.3 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Bootstrap v5.2.2 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
/*!
* Sizzle CSS Selector Engine v2.3.5
* @kurkle/color v0.2.1
* https://github.com/kurkle/color#readme
* (c) 2022 Jukka Kurkela
* Released under the MIT License
*/
/*!
* Chart.js v3.9.1
* https://www.chartjs.org
* (c) 2022 Chart.js Contributors
* Released under the MIT License
*/
/*!
* Sizzle CSS Selector Engine v2.3.6
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2020-03-14
* Date: 2021-02-16
*/
/*!
* jQuery JavaScript Library v3.5.1
* jQuery JavaScript Library v3.6.1
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2020-05-04T22:49Z
*/
/**!
* @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.1
* @license
* Copyright (c) 2016 Federico Zivolo and contributors
*
* 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.
* Date: 2022-08-26T17:52Z
*/
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -4,34 +4,48 @@
*/
/*!
* Bootstrap v4.5.3 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Bootstrap v5.2.2 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
/*!
* Sizzle CSS Selector Engine v2.3.5
* @kurkle/color v0.2.1
* https://github.com/kurkle/color#readme
* (c) 2022 Jukka Kurkela
* Released under the MIT License
*/
/*!
* Chart.js v3.9.1
* https://www.chartjs.org
* (c) 2022 Chart.js Contributors
* Released under the MIT License
*/
/*!
* Sizzle CSS Selector Engine v2.3.6
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2020-03-14
* Date: 2021-02-16
*/
/*!
* jQuery JavaScript Library v3.5.1
* jQuery JavaScript Library v3.6.1
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2020-05-04T22:49Z
* Date: 2022-08-26T17:52Z
*/
/*!
......@@ -47,28 +61,3 @@
========================================================= */
/*! Select2 4.1.0-rc.0 | https://github.com/select2/select2/blob/master/LICENSE.md */
/**!
* @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.1
* @license
* Copyright (c) 2016 Federico Zivolo and contributors
*
* 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.
*/
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.
CKEDITOR.dialog.add("a11yHelp",(function(e){function n(e){for(var n,a,t=[],l=0;l<o.length;l++)a=o[l],1<(n=e/o[l])&&2>=n&&(e-=a,t.push(c[a]));return t.push(c[e]||String.fromCharCode(e)),t.join("+")}function a(a,t){var l=e.getCommandKeystroke(t,!0);return l.length?CKEDITOR.tools.array.map(l,n).join(" / "):a}var t=e.lang.a11yhelp,l=e.lang.common.keyboard,i=CKEDITOR.tools.getNextId(),d=/\$\{(.*?)\}/g,o=[CKEDITOR.ALT,CKEDITOR.SHIFT,CKEDITOR.CTRL],c={8:l[8],9:t.tab,13:l[13],16:l[16],17:l[17],18:l[18],19:t.pause,20:t.capslock,27:t.escape,33:t.pageUp,34:t.pageDown,35:l[35],36:l[36],37:t.leftArrow,38:t.upArrow,39:t.rightArrow,40:t.downArrow,45:t.insert,46:l[46],91:t.leftWindowKey,92:t.rightWindowKey,93:t.selectKey,96:t.numpad0,97:t.numpad1,98:t.numpad2,99:t.numpad3,100:t.numpad4,101:t.numpad5,102:t.numpad6,103:t.numpad7,104:t.numpad8,105:t.numpad9,106:t.multiply,107:t.add,109:t.subtract,110:t.decimalPoint,111:t.divide,112:t.f1,113:t.f2,114:t.f3,115:t.f4,116:t.f5,117:t.f6,118:t.f7,119:t.f8,120:t.f9,121:t.f10,122:t.f11,123:t.f12,144:t.numLock,145:t.scrollLock,186:t.semiColon,187:t.equalSign,188:t.comma,189:t.dash,190:t.period,191:t.forwardSlash,192:t.graveAccent,219:t.openBracket,220:t.backSlash,221:t.closeBracket,222:t.singleQuote};return c[CKEDITOR.ALT]=l[18],c[CKEDITOR.SHIFT]=l[16],c[CKEDITOR.CTRL]=CKEDITOR.env.mac?l[224]:l[17],{title:t.title,minWidth:600,minHeight:400,contents:[{id:"info",label:e.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},html:function(){for(var e='<div class="cke_accessibility_legend" role="document" aria-labelledby="'+i+'_arialbl" tabIndex="-1">%1</div><span id="'+i+'_arialbl" class="cke_voice_label">'+t.contents+" </span>",n=[],l=t.legend,o=l.length,c=0;c<o;c++){for(var r=l[c],s=[],p=r.items,g=p.length,m=0;m<g;m++){var u,h=p[m];(u=(u=CKEDITOR.env.edge&&h.legendEdge?h.legendEdge:h.legend).replace(d,a)).match(d)||s.push("<dt>%1</dt><dd>%2</dd>".replace("%1",h.name).replace("%2",u))}n.push("<h1>%1</h1><dl>%2</dl>".replace("%1",r.name).replace("%2",s.join("")))}return e.replace("%1",n.join(""))}()+'<style type="text/css">.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}</style>'}]}],buttons:[CKEDITOR.dialog.cancelButton]}}));
\ No newline at end of file
CKEDITOR.dialog.add("about",(function(e){e=e.lang.about;var t=CKEDITOR.getUrl(CKEDITOR.plugins.get("about").path+"dialogs/"+(CKEDITOR.env.hidpi?"hidpi/":"")+"logo_ckeditor.png");return{title:e.dlgTitle,minWidth:390,minHeight:210,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{type:"html",html:'<style type="text/css">.cke_about_container{color:#000 !important;padding:10px 10px 0;margin-top:5px}.cke_about_container p{margin: 0 0 10px;}.cke_about_container .cke_about_logo{height:81px;background-color:#fff;background-image:url('+t+");"+(CKEDITOR.env.hidpi?"background-size:194px 58px;":"")+'background-position:center; background-repeat:no-repeat;margin-bottom:10px;}.cke_about_container a{cursor:pointer !important;color:#00B2CE !important;text-decoration:underline !important;}.cke_about_container > p,.cke_rtl .cke_about_container > p{text-align:center;}</style><div class="cke_about_container"><div class="cke_about_logo"></div><p>CKEditor '+CKEDITOR.version+" (revision "+CKEDITOR.revision+')<br><a target="_blank" rel="noopener noreferrer" href="https://ckeditor.com/">https://ckeditor.com</a></p><p>'+e.moreInfo+'<br><a target="_blank" rel="noopener noreferrer" href="https://ckeditor.com/legal/ckeditor-oss-license/">https://ckeditor.com/legal/ckeditor-oss-license/</a></p><p>'+e.copy.replace("$1",'<a target="_blank" rel="noopener noreferrer" href="https://cksource.com/">CKSource</a> - Frederico Knabben')+"</p></div>"}]}],buttons:[CKEDITOR.dialog.cancelButton]}}));
\ No newline at end of file
!function(){function e(e){for(var n=(e=e.getElementsByTag("*")).count(),o=0;o<n;o++)(function(e){for(var n=0;n<t.length;n++)!function(t){var n=e.getAttribute("on"+t);e.hasAttribute("on"+t)&&(e.removeAttribute("on"+t),e.on(t,(function(t){var o=(i=/(return\s*)?CKEDITOR\.tools\.callFunction\(([^)]+)\)/.exec(n))&&i[1],a=i&&i[2].split(","),i=/return false;/.test(n);if(a){for(var r,l=a.length,s=0;s<l;s++){a[s]=r=CKEDITOR.tools.trim(a[s]);var c=r.match(/^(["'])([^"']*?)\1$/);if(c)a[s]=c[2];else if(r.match(/\d+/))a[s]=parseInt(r,10);else switch(r){case"this":a[s]=e.$;break;case"event":a[s]=t.data.$;break;case"null":a[s]=null}}a=CKEDITOR.tools.callFunction.apply(window,a),o&&!1===a&&(i=1)}i&&t.data.preventDefault()})))}(t[n])})(e.getItem(o))}var t="click keydown mousedown keypress mouseover mouseout".split(" ");CKEDITOR.plugins.add("adobeair",{onLoad:function(){CKEDITOR.env.air&&(CKEDITOR.dom.document.prototype.write=CKEDITOR.tools.override(CKEDITOR.dom.document.prototype.write,(function(e){function t(e,t,n,o){t=e.append(t),(n=CKEDITOR.htmlParser.fragment.fromHtml(n).children[0].attributes)&&t.setAttributes(n),o&&t.append(e.getDocument().createText(o))}return function(n){if(this.getBody()){var o=this,a=this.getHead();n=n.replace(/(<style[^>]*>)([\s\S]*?)<\/style>/gi,(function(e,n,o){return t(a,"style",n,o),""})),n=(n=n.replace(/<base\b[^>]*\/>/i,(function(e){return t(a,"base",e),""}))).replace(/<title>([\s\S]*)<\/title>/i,(function(e,t){return o.$.title=t,""})),n=n.replace(/<head>([\s\S]*)<\/head>/i,(function(e){var t=new CKEDITOR.dom.element("div",o);return t.setHtml(e),t.moveChildren(a),""})),n.replace(/(<body[^>]*>)([\s\S]*)(?=$|<\/body>)/i,(function(e,t,n){o.getBody().setHtml(n),(e=CKEDITOR.htmlParser.fragment.fromHtml(t).children[0].attributes)&&o.getBody().setAttributes(e)}))}else e.apply(this,arguments)}})),CKEDITOR.addCss("body.cke_editable { padding: 8px }"),CKEDITOR.ui.on("ready",(function(t){if((t=t.data)._.panel){var n=t._.panel._.panel;!function t(){n.isLoaded?e(n._.holder):setTimeout(t,30)}()}else t instanceof CKEDITOR.dialog&&e(t._.element)})))},init:function(t){CKEDITOR.env.air&&(t.on("uiReady",(function(){e(t.container),t.on("elementsPathUpdate",(function(t){e(t.data.space)}))})),t.on("contentDom",(function(){t.document.on("click",(function(e){e.data.preventDefault(!0)}))})))}})}();
\ No newline at end of file
CKEDITOR.plugins.add("ajax",{requires:"xml"}),CKEDITOR.ajax=function(){function t(){if(!CKEDITOR.env.ie||"file:"!=location.protocol)try{return new XMLHttpRequest}catch(t){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(t){}try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(t){}return null}function n(t){return 4==t.readyState&&(200<=t.status&&300>t.status||304==t.status||0===t.status||1223==t.status)}function e(t){return n(t)?t.responseText:null}function r(t){if(n(t)){var e=t.responseXML;return new CKEDITOR.xml(e&&e.firstChild?e:t.responseText)}return null}function u(n,e,r){var u=!!e,a=t();return a?(a.open("GET",n,u),u&&(a.onreadystatechange=function(){4==a.readyState&&(e(r(a)),a=null)}),a.send(null),u?"":r(a)):null}return{load:function(t,n){return u(t,n,e)},post:function(n,r,u,a){return function(n,e,r,u,a){var o=t();if(!o)return null;o.open("POST",n,!0),o.onreadystatechange=function(){4==o.readyState&&(u&&u(a(o)),o=null)},o.setRequestHeader("Content-type",r||"application/x-www-form-urlencoded; charset=UTF-8"),o.send(e)}(n,r,u,a,e)},loadXml:function(t,n){return u(t,n,r)}}}();
\ No newline at end of file
!function(){function t(t,e){var i=t.config.autocomplete_commitKeystrokes||CKEDITOR.config.autocomplete_commitKeystrokes;this.editor=t,this.throttle=void 0!==e.throttle?e.throttle:20,this.view=this.getView(),this.model=this.getModel(e.dataCallback),this.model.itemsLimit=e.itemsLimit,this.textWatcher=this.getTextWatcher(e.textTestCallback),this.commitKeystrokes=CKEDITOR.tools.array.isArray(i)?i.slice():[i],this._listeners=[],this.outputTemplate=void 0!==e.outputTemplate?new CKEDITOR.template(e.outputTemplate):null,e.itemTemplate&&(this.view.itemTemplate=new CKEDITOR.template(e.itemTemplate)),"ready"===this.editor.status?this.attach():this.editor.on("instanceReady",(function(){this.attach()}),this),t.on("destroy",(function(){this.destroy()}),this)}function e(t){this.itemTemplate=new CKEDITOR.template('<li data-id="{id}">{name}</li>'),this.editor=t}function i(t){this.dataCallback=t,this.isActive=!1,this.itemsLimit=0}function s(t){return CKEDITOR.tools.array.reduce(CKEDITOR.tools.object.keys(t),(function(e,i){return e[i]=CKEDITOR.tools.htmlEncode(t[i]),e}),{})}CKEDITOR.plugins.add("autocomplete",{requires:"textwatcher",onLoad:function(){CKEDITOR.document.appendStyleSheet(this.path+"skins/default.css")},isSupportedEnvironment:function(){return!CKEDITOR.env.ie||8<CKEDITOR.env.version}}),t.prototype={attach:function(){function t(){this._listeners.push(s.on("keydown",(function(t){this.onKeyDown(t)}),this,null,5))}var e=this.editor,i=CKEDITOR.document.getWindow(),s=e.editable(),n=s.isInline()?s:s.getDocument();CKEDITOR.env.iOS&&!s.isInline()&&(n=e.window.getFrame().getParent()),this.view.append(),this.view.attach(),this.textWatcher.attach(),this._listeners.push(this.textWatcher.on("matched",this.onTextMatched,this)),this._listeners.push(this.textWatcher.on("unmatched",this.onTextUnmatched,this)),this._listeners.push(this.model.on("change-data",this.modelChangeListener,this)),this._listeners.push(this.model.on("change-selectedItemId",this.onSelectedItemId,this)),this._listeners.push(this.view.on("change-selectedItemId",this.onSelectedItemId,this)),this._listeners.push(this.view.on("click-item",this.onItemClick,this)),this._listeners.push(i.on("scroll",(function(){this.viewRepositionListener()}),this)),this._listeners.push(n.on("scroll",(function(){this.viewRepositionListener()}),this)),this._listeners.push(e.on("contentDom",t,this)),this._listeners.push(e.on("change",(function(){this.viewRepositionListener()}),this)),this._listeners.push(this.view.element.on("mousedown",(function(t){t.data.preventDefault()}),null,null,9999)),s&&t.call(this)},close:function(){this.model.setActive(!1),this.view.close()},commit:function(t){if(this.model.isActive){if(this.close(),null==t&&null==(t=this.model.selectedItemId))return;t=this.model.getItemById(t);var e=this.editor;e.fire("saveSnapshot"),e.getSelection().selectRanges([this.model.range]),e.insertHtml(this.getHtmlToInsert(t),"text"),e.fire("saveSnapshot")}},destroy:function(){CKEDITOR.tools.array.forEach(this._listeners,(function(t){t.removeListener()})),this._listeners=[],this.view.element&&this.view.element.remove()},getHtmlToInsert:function(t){return t=s(t),this.outputTemplate?this.outputTemplate.output(t):t.name},getModel:function(t){var e=this;return new i((function(i,s){return t.call(this,CKEDITOR.tools.extend({autocomplete:e},i),s)}))},getTextWatcher:function(t){return new CKEDITOR.plugins.textWatcher(this.editor,t,this.throttle)},getView:function(){return new e(this.editor)},open:function(){this.model.hasData()&&(this.model.setActive(!0),this.view.open(),this.model.selectFirst(),this.view.updatePosition(this.model.range))},viewRepositionListener:function(){this.model.isActive&&this.view.updatePosition(this.model.range)},modelChangeListener:function(t){this.model.hasData()?(this.view.updateItems(t.data),this.open()):this.close()},onItemClick:function(t){this.commit(t.data)},onKeyDown:function(t){if(this.model.isActive){var e=t.data.getKey(),i=!1;27==e?(this.close(),this.textWatcher.unmatch(),i=!0):40==e?(this.model.selectNext(),i=!0):38==e?(this.model.selectPrevious(),i=!0):-1!=CKEDITOR.tools.indexOf(this.commitKeystrokes,e)&&(this.commit(),this.textWatcher.unmatch(),i=!0),i&&(t.cancel(),t.data.preventDefault(),this.textWatcher.consumeNext())}},onSelectedItemId:function(t){this.model.setItem(t.data),this.view.selectItem(t.data)},onTextMatched:function(t){this.model.setActive(!1),this.model.setQuery(t.data.text,t.data.range)},onTextUnmatched:function(){this.model.query=null,this.model.lastRequestId=null,this.close()}},e.prototype={append:function(){this.document=CKEDITOR.document,this.element=this.createElement(),this.document.getBody().append(this.element)},appendItems:function(t){this.element.setHtml(""),this.element.append(t)},attach:function(){this.element.on("click",(function(t){(t=t.data.getTarget().getAscendant(this.isItemElement,!0))&&this.fire("click-item",t.data("id"))}),this),this.element.on("mouseover",(function(t){t=t.data.getTarget(),this.element.contains(t)&&(t=t.getAscendant((function(t){return t.hasAttribute("data-id")}),!0))&&(t=t.data("id"),this.fire("change-selectedItemId",t))}),this)},close:function(){this.element.removeClass("cke_autocomplete_opened")},createElement:function(){var t=new CKEDITOR.dom.element("ul",this.document);return t.addClass("cke_autocomplete_panel"),t.setStyle("z-index",this.editor.config.baseFloatZIndex-3),t},createItem:function(t){return t=s(t),CKEDITOR.dom.element.createFromHtml(this.itemTemplate.output(t),this.document)},getViewPosition:function(t){var e;t=(t=t.getClientRects())[t.length-1],e=(e=this.editor.editable()).isInline()?CKEDITOR.document.getWindow().getScrollPosition():e.getParent().getDocumentPosition(CKEDITOR.document);var i=CKEDITOR.document.getBody();return"static"===i.getComputedStyle("position")&&(i=i.getParent()),i=i.getDocumentPosition(),e.x-=i.x,e.y-=i.y,{top:t.top+e.y,bottom:t.top+t.height+e.y,left:t.left+e.x}},getItemById:function(t){return this.element.findOne('li[data-id="'+t+'"]')},isItemElement:function(t){return t.type==CKEDITOR.NODE_ELEMENT&&Boolean(t.data("id"))},open:function(){this.element.addClass("cke_autocomplete_opened")},selectItem:function(t){null!=this.selectedItemId&&this.getItemById(this.selectedItemId).removeClass("cke_autocomplete_selected");var e=this.getItemById(t);e.addClass("cke_autocomplete_selected"),this.selectedItemId=t,this.scrollElementTo(e)},setPosition:function(t){var e,i=this.editor,s=this.element.getSize("height"),n=i.editable(),o=(i=CKEDITOR.env.iOS&&!n.isInline()?i.window.getFrame().getParent().getClientRect(!0):n.isInline()?n.getClientRect(!0):i.window.getFrame().getClientRect(!0),n=t.top-i.top,i.bottom-t.bottom);e=t.top<i.top?i.top:Math.min(i.bottom,t.bottom),s>o&&s<n&&(e=t.top-s),i.bottom<t.bottom&&(e=Math.min(t.top-s,i.bottom-s)),i.top>t.top&&(e=Math.max(t.bottom,i.top)),this.element.setStyles({left:t.left+"px",top:e+"px"})},scrollElementTo:function(t){t.scrollIntoParent(this.element)},updateItems:function(t){var e,i=new CKEDITOR.dom.documentFragment(this.document);for(e=0;e<t.length;++e)i.append(this.createItem(t[e]));this.appendItems(i),this.selectedItemId=null},updatePosition:function(t){this.setPosition(this.getViewPosition(t))}},CKEDITOR.event.implementOn(e.prototype),i.prototype={getIndexById:function(t){if(!this.hasData())return-1;for(var e=this.data,i=0,s=e.length;i<s;i++)if(e[i].id==t)return i;return-1},getItemById:function(t){return~(t=this.getIndexById(t))&&this.data[t]||null},hasData:function(){return Boolean(this.data&&this.data.length)},setItem:function(t){if(0>this.getIndexById(t))throw Error("Item with given id does not exist");this.selectedItemId=t},select:function(t){this.fire("change-selectedItemId",t)},selectFirst:function(){this.hasData()&&this.select(this.data[0].id)},selectLast:function(){this.hasData()&&this.select(this.data[this.data.length-1].id)},selectNext:function(){if(null==this.selectedItemId)this.selectFirst();else{var t=this.getIndexById(this.selectedItemId);0>t||t+1==this.data.length?this.selectFirst():this.select(this.data[t+1].id)}},selectPrevious:function(){if(null==this.selectedItemId)this.selectLast();else{var t=this.getIndexById(this.selectedItemId);0>=t?this.selectLast():this.select(this.data[t-1].id)}},setActive:function(t){this.isActive=t,this.fire("change-isActive",t)},setQuery:function(t,e){var i=this,s=CKEDITOR.tools.getNextId();this.lastRequestId=s,this.query=t,this.range=e,this.selectedItemId=this.data=null,this.dataCallback({query:t,range:e},(function(t){s==i.lastRequestId&&(i.data=i.itemsLimit?t.slice(0,i.itemsLimit):t,i.fire("change-data",i.data))}))}},CKEDITOR.event.implementOn(i.prototype),CKEDITOR.plugins.autocomplete=t,t.view=e,t.model=i,CKEDITOR.config.autocomplete_commitKeystrokes=[9,13]}();
\ No newline at end of file
.cke_autocomplete_panel{background:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;border-radius:3px;box-sizing:border-box;display:none;font:12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;list-style:none;margin:0;max-height:300px;overflow:auto;padding:0;position:absolute;width:200px}.cke_autocomplete_opened{display:block}.cke_autocomplete_panel>li{padding:5px}.cke_autocomplete_panel>li:hover{cursor:pointer}.cke_autocomplete_panel>li:hover,.cke_autocomplete_selected{background-color:#eff0ef}
\ No newline at end of file
!function(){var e=/^<a[^>]+href="([^"]+)"[^>]*>([^<]+)<\/a>$/i;CKEDITOR.plugins.add("autoembed",{requires:"autolink,undo",lang:"az,bg,ca,cs,da,de,de-ch,el,en,en-au,eo,es,es-mx,et,eu,fr,gl,hr,hu,it,ja,km,ko,ku,lt,lv,mk,nb,nl,oc,pl,pt,pt-br,ro,ru,sk,sq,sr,sr-latn,sv,tr,ug,uk,vi,zh,zh-cn",init:function(t){var a,n=1;t.on("paste",(function(i){if(i.data.dataTransfer.getTransferType(t)==CKEDITOR.DATA_TRANSFER_INTERNAL)a=0;else{var o=i.data.dataValue.match(e);(a=null!=o&&decodeURI(o[1])==decodeURI(o[2]))&&(i.data.dataValue='<a data-cke-autoembed="'+ ++n+'"'+i.data.dataValue.substr(2))}}),null,null,20),t.on("afterPaste",(function(){a&&function(e,t){var a,n=e.editable().findOne('a[data-cke-autoembed="'+t+'"]'),i=e.lang.autoembed;if(n&&n.data("cke-saved-href")){n=n.data("cke-saved-href");var o=CKEDITOR.plugins.autoEmbed.getWidgetDefinition(e,n);if(o){var d,r="function"==typeof o.defaults?o.defaults():o.defaults,s=(r=CKEDITOR.dom.element.createFromHtml(o.template.output(r)),e.widgets.wrapElement(r,o.name)),l=new CKEDITOR.dom.documentFragment(s.getDocument());l.append(s),(d=e.widgets.initOn(r,o))?(a=e.showNotification(i.embeddingInProgress,"info"),d.loadContent(n,{noNotifications:!0,callback:function(){var n=e.editable().findOne('a[data-cke-autoembed="'+t+'"]');if(n){var i=e.getSelection(),o=e.createRange(),d=e.editable();e.fire("saveSnapshot"),e.fire("lockSnapshot",{dontUpdate:!0});var r=i.createBookmarks(!1)[0],u=r.startNode,f=r.endNode||u;CKEDITOR.env.ie&&9>CKEDITOR.env.version&&!r.endNode&&u.equals(n.getNext())&&n.append(u),o.setStartBefore(n),o.setEndAfter(n),d.insertElement(s,o),d.contains(u)&&d.contains(f)?i.selectBookmarks([r]):(u.remove(),f.remove()),e.fire("unlockSnapshot")}a.hide(),e.widgets.finalizeCreation(l)},errorCallback:function(){a.hide(),e.widgets.destroy(d,!0),e.showNotification(i.embeddingFailed,"info")}})):e.widgets.finalizeCreation(l)}else CKEDITOR.warn("autoembed-no-widget-def")}}(t,n)}))}}),CKEDITOR.plugins.autoEmbed={getWidgetDefinition:function(e,t){var a,n=e.config.autoEmbed_widget||"embed,embedSemantic",i=e.widgets.registered;if("string"==typeof n){for(n=n.split(",");a=n.shift();)if(i[a])return i[a]}else if("function"==typeof n)return i[n(t)];return null}}}();
\ No newline at end of file
CKEDITOR.plugins.add("autogrow",{init:function(e){e.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&e.on("instanceReady",(function(){e.editable().isInline()?e.ui.space("contents").setStyle("height","auto"):function(e){function t(){i=e.document,a=i[CKEDITOR.env.ie?"getBody":"getDocumentElement"](),m=CKEDITOR.env.quirks?i.getBody():i.getDocumentElement();var t=CKEDITOR.env.quirks?m:m.findOne("body");t&&(t.setStyle("height","auto"),t.setStyle("min-height",CKEDITOR.env.safari?"0%":"auto")),d=CKEDITOR.dom.element.createFromHtml('<span style="margin:0;padding:0;border:0;clear:both;width:1px;height:1px;display:block;">'+(CKEDITOR.env.webkit?"&nbsp;":"")+"</span>",i)}function o(){s&&m.setStyle("overflow-y","hidden");var t,o=e.window.getViewPaneSize().height;a.append(d),t=d.getDocumentPosition(i).y+d.$.offsetHeight,d.remove(),t+=g,t=Math.max(t,c),(t=Math.min(t,l))!=o&&n!=t&&(t=e.fire("autoGrow",{currentHeight:o,newHeight:t}).newHeight,e.resize(e.container.getStyle("width"),t,!0),n=t),s||(t<l&&m.$.scrollHeight>m.$.clientHeight?m.setStyle("overflow-y","hidden"):m.removeStyle("overflow-y"))}var n,i,a,m,d,r,g=e.config.autoGrow_bottomSpace||0,c=void 0!==e.config.autoGrow_minHeight?e.config.autoGrow_minHeight:200,l=e.config.autoGrow_maxHeight||1/0,s=!e.config.autoGrow_maxHeight;for(r in e.addCommand("autogrow",{exec:o,modes:{wysiwyg:1},readOnly:1,canUndo:!1,editorFocus:!1}),{contentDom:1,key:1,selectionChange:1,insertElement:1,mode:1})e.on(r,(function(t){"wysiwyg"==t.editor.mode&&setTimeout((function(){var t=e.getCommand("maximize");!e.window||t&&t.state==CKEDITOR.TRISTATE_ON?n=null:(o(),s||o())}),100)}));e.on("afterCommandExec",(function(e){"maximize"==e.data.name&&"wysiwyg"==e.editor.mode&&(e.data.command.state==CKEDITOR.TRISTATE_ON?m.removeStyle("overflow-y"):o())})),e.on("contentDom",t),t(),e.config.autoGrow_onStartup&&e.editable().isVisible()&&e.execCommand("autogrow")}(e)}))}});
\ No newline at end of file
!function(){var t=/"/g;CKEDITOR.plugins.add("autolink",{requires:"clipboard,textmatch",init:function(e){function a(a){if(a=(a={text:a,link:a.replace(t,"%22")}).link.match(CKEDITOR.config.autolink_urlRegex)?r.output(a):o.output(a),e.plugins.link){a=CKEDITOR.dom.element.createFromHtml(a);var n=CKEDITOR.plugins.link.parseLinkAttributes(e,a);n=CKEDITOR.plugins.link.getLinkAttributes(e,n);CKEDITOR.tools.isEmpty(n.set)||a.setAttributes(n.set),n.removed.length&&a.removeAttributes(n.removed),a.removeAttribute("data-cke-saved-href"),a=a.getOuterHtml()}return a}function n(t,e){var a=t.slice(0,e).split(/\s+/);return(a=a[a.length-1])&&i(a)?{start:t.lastIndexOf(a),end:e}:null}function i(t){return t.match(CKEDITOR.config.autolink_urlRegex)||t.match(CKEDITOR.config.autolink_emailRegex)}var r=new CKEDITOR.template('<a href="{link}">{text}</a>'),o=new CKEDITOR.template('<a href="mailto:{link}">{text}</a>');if(e.on("paste",(function(t){if(t.data.dataTransfer.getTransferType(e)!=CKEDITOR.DATA_TRANSFER_INTERNAL){var n=t.data.dataValue;-1<n.indexOf("<")||!i(n)||(t.data.dataValue=a(n),t.data.type="html")}})),!CKEDITOR.env.ie||CKEDITOR.env.edge){var l=e.config.autolink_commitKeystrokes||CKEDITOR.config.autolink_commitKeystrokes;e.on("key",(function(t){if("wysiwyg"===e.mode&&-1!=CKEDITOR.tools.indexOf(l,t.data.keyCode)&&((i=CKEDITOR.plugins.textMatch.match(e.getSelection().getRanges()[0],n))&&(!(t=e.getSelection()).getRanges()[0].startContainer.getAscendant("a",!0)&&(t.selectRanges([i.range]),e.insertHtml(a(i.text),"text"),!CKEDITOR.env.webkit)))){var i=t.getRanges()[0],r=e.createRange();r.setStartAfter(i.startContainer),t.selectRanges([r])}}))}}}),CKEDITOR.config.autolink_commitKeystrokes=[13,32],CKEDITOR.config.autolink_urlRegex=/^(https?|ftp):\/\/(-\.)?([^\s\/?\.#]+\.?)+(\/[^\s]*)?[^\s\.,]$/i,CKEDITOR.config.autolink_emailRegex=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/}();
\ No newline at end of file
!function(){var t=!1;CKEDITOR.plugins.add("balloonpanel",{init:function(){t||(CKEDITOR.document.appendStyleSheet(this.path+"skins/"+CKEDITOR.skin.name+"/balloonpanel.css"),t=!0)}}),CKEDITOR.ui.balloonPanel=function(t,e){for(var i in this.editor=t,CKEDITOR.tools.extend(this,{width:360,height:"auto",triangleWidth:20,triangleHeight:20,triangleMinDistance:40},e,!0),this.templates={},this.templateDefinitions)this.templates[i]=new CKEDITOR.template(this.templateDefinitions[i]);this.parts={},this.focusables={},this.showListeners={},this.activeShowListeners={},this.rect={visible:!1},this.build(),t.on("destroy",(function(){this.destroy()}),this)},CKEDITOR.ui.balloonPanel.prototype={templateDefinitions:{panel:'<div class="cke {id} cke_reset_all cke_chrome cke_balloon cke_editor_{name} cke_{langDir} '+CKEDITOR.env.cssClass+'" dir="{langDir}" title="'+(CKEDITOR.env.gecko?" ":"")+'" lang="{langCode}" role="dialog" style="{style}" tabindex="-1" aria-labelledby="cke_{name}_arialbl"></div>',content:'<div class="cke_balloon_content">{content}</div>',title:'<div class="cke_balloon_title" role="presentation">{title}</div>',close:'<a class="cke_balloon_close_button" href="javascript:void(0)" title="Close" role="button" tabindex="-1"><span class="cke_label">X</span></a>',triangleOuter:'<span class="cke_balloon_triangle cke_balloon_triangle_outer"></span>',triangleInner:'<span class="cke_balloon_triangle cke_balloon_triangle_inner">&#8203;</span>'},build:function(){var t=this.editor;this.parts={title:CKEDITOR.dom.element.createFromHtml(this.templates.title.output({title:this.title})),close:CKEDITOR.dom.element.createFromHtml(this.templates.close.output()),panel:CKEDITOR.dom.element.createFromHtml(this.templates.panel.output({id:t.id,langDir:t.lang.dir,langCode:t.langCode,name:t.name,style:"display:none;",voiceLabel:t.lang.editorPanel+", "+t.name})),content:CKEDITOR.dom.element.createFromHtml(this.templates.content.output({content:this.content||""})),triangleOuter:CKEDITOR.dom.element.createFromHtml(this.templates.triangleOuter.output()),triangleInner:CKEDITOR.dom.element.createFromHtml(this.templates.triangleInner.output())},this.parts.panel.append(this.parts.title,1),this.parts.panel.append(this.parts.close,1),this.parts.panel.append(this.parts.triangleOuter),this.parts.panel.append(this.parts.content),this.parts.triangleOuter.append(this.parts.triangleInner),this.registerFocusable(this.parts.panel),this.registerFocusable(this.parts.close),this.parts.title.unselectable(),this.parts.close.unselectable(),CKEDITOR.document.getBody().append(this.parts.panel),this.resize(this.width,this.height),this.on("show",this.activateShowListeners,this),this.on("hide",this.deactivateShowListeners,this),this.parts.close.on("click",(function(t){this.hide(),t.data.preventDefault()}),this)},show:function(){this.rect.visible||(this.rect.visible=!0,this.parts.panel.show(),this.fire("show"))},hide:function(){this.rect.visible&&(this.rect.visible=!1,this.parts.panel.hide(),this.blur(),this.fire("hide"))},blur:function(){this.editor.focus()},move:function(t,e){this.rect.left=e,this.rect.top=t,this.parts.panel.setStyles({left:CKEDITOR.tools.cssLength(e),top:CKEDITOR.tools.cssLength(t)})},attach:function(){function t(t,e){return Math.max(0,Math.min(t.right,e.right)-Math.max(t.left,e.left))*Math.max(0,Math.min(t.bottom,e.bottom)-Math.max(t.top,e.top))}function e(t,e,i,n){return(t={top:t,left:e}).right=t.left+i,t.bottom=t.top+n,t}function i(t,e){return t.right=e.right,t.width=t.right-t.left,e.y&&(t.y=e.y),t}function n(t){var e=s(t,!0);return t=s(t),e=i(e[0],e.pop()),t=i(t[0],t.pop()),e.bottom=t.bottom,e.height=e.bottom-e.top,t.y&&(e.y=t.y),t.top=e.top,t.height=e.height,[e,t]}function s(t,e){var i=e?t[0]:t[t.length-1],n=e?"top":"bottom";return CKEDITOR.tools.array.filter(t,(function(t){if(t[n]===i[n])return t}))}var o,a,l,h,r={right:"left",top:"bottom",topLeft:"bottomLeft",topRight:"bottomRight",bottom:"top",bottomLeft:"topLeft",bottomRight:"topRight",left:"right"};return function(s,c){if(s instanceof CKEDITOR.dom.selection){var g,p=s.getRanges();p=s.isFake&&s.isInTable()?CKEDITOR.tools.array.map(p,(function(t){return t.getClientRects(!0)[0]})):p[p.length-1].getClientRects(!0);g=(m=p[0])===(b=p[p.length-1])?[m]:m.top===b.top?[i(m,b)]:n(p)}(c instanceof CKEDITOR.dom.element||!c)&&(c={focusElement:c}),!0===(c=CKEDITOR.tools.extend(c,{show:!0})).show&&this.show(),this.fire("attach"),o=CKEDITOR.document.getWindow(),a=this.editor.window.getFrame(),l=this.editor.editable(),!(h=l.isInline())&&CKEDITOR.env.safari&&(a=a.getParent());var m,d,u,f,b=(p=this.getWidth())*(m=this.getHeight());d=s.getClientRect&&s.getClientRect(!0);var v=h?l.getClientRect(!0):a.getClientRect(!0),_=o.getViewPaneSize(),w=o.getScrollPosition(),C={top:Math.max(v.top,w.y),left:Math.max(v.left,w.x),right:Math.min(v.right,_.width+w.x),bottom:Math.min(v.bottom,_.height+w.y)};for(var R in h&&this.editor.elementMode===CKEDITOR.ELEMENT_MODE_INLINE&&((C=this._getViewPaneRect(o)).right+=this.triangleWidth,C.bottom+=this.triangleHeight),g?(CKEDITOR.tools.array.forEach(g,(function(t){this._adjustElementRect(t,h?C:v)}),this),d=this._getAlignments(g[0],p,m),1<g.length&&(d["bottom hcenter"]=this._getAlignments(g[1],p,m)["bottom hcenter"]),f={"top hcenter":!0,"bottom hcenter":!0}):(this._adjustElementRect(d,h?C:v),d=this._getAlignments(d,p,m)),f||d){if(f=e(d[R].top,d[R].left,p,m),0===(f=d[R].areaDifference=b-t(f,C))){u=R;break}u||(u=R),f<d[u].areaDifference&&(u=R)}R=(f=this.parts.panel.getAscendant((function(t){return!(t instanceof CKEDITOR.dom.document)&&"static"!==t.getComputedStyle("position")})))?parseInt(f.getComputedStyle("margin-left"),10):0,f=f?parseInt(f.getComputedStyle("margin-top"),10):0,this.move(d[u].top-f,d[u].left-R),u=u.split(" "),this.setTriangle(r[u[0]],u[1]),!1!==c.focusElement&&(c.focusElement||this.parts.panel).focus()}}(),resize:function(t,e){this.rect.width=t,this.rect.height=e,this.parts.panel.setStyles({width:CKEDITOR.tools.cssLength(t),height:CKEDITOR.tools.cssLength(e)})},getWidth:function(){return"auto"===this.rect.width?this.parts.panel.getClientRect().width:this.rect.width},getHeight:function(){return"auto"===this.rect.height?this.parts.panel.getClientRect().height:this.rect.height},setTriangle:function(t,e){var i=this.parts.triangleOuter,n=this.parts.triangleInner;this.triangleSide&&(i.removeClass("cke_balloon_triangle_"+this.triangleSide),i.removeClass("cke_balloon_triangle_align_"+this.triangleAlign),n.removeClass("cke_balloon_triangle_"+this.triangleSide)),this.triangleSide=t,this.triangleAlign=e,i.addClass("cke_balloon_triangle_"+t),i.addClass("cke_balloon_triangle_align_"+e),n.addClass("cke_balloon_triangle_"+t)},registerFocusable:function(t){this.editor.focusManager.add(t),this.focusables[t.getUniqueId()]=t},deregisterFocusable:function(t){this.editor.focusManager.remove(t),delete this.focusables[t.getUniqueId()]},addShowListener:function(t){var e=CKEDITOR.tools.getNextNumber();this.showListeners[e]=t,this.rect.visible&&this.activateShowListener(e);var i=this;return{removeListener:function(){i.removeShowListener(e)}}},removeShowListener:function(t){this.deactivateShowListener(t),delete this.showListeners[t]},activateShowListener:function(t){this.activeShowListeners[t]=this.showListeners[t].call(this)},deactivateShowListener:function(t){this.activeShowListeners[t]&&this.activeShowListeners[t].removeListener(),delete this.activeShowListeners[t]},activateShowListeners:function(){for(var t in this.showListeners)this.activateShowListener(t)},deactivateShowListeners:function(){for(var t in this.activeShowListeners)this.deactivateShowListener(t)},destroy:function(){this.deactivateShowListeners(),this.parts.panel.remove()},setTitle:function(t){this.parts.title.setHtml(t)},_getAlignments:function(t,e,i){return{"right vcenter":{top:t.top+t.height/2-i/2,left:t.right+this.triangleWidth},"left vcenter":{top:t.top+t.height/2-i/2,left:t.left-e-this.triangleWidth},"top hcenter":{top:t.top-i-this.triangleHeight,left:t.left+t.width/2-e/2},"top left":{top:t.top-i-this.triangleHeight,left:t.left+t.width/2-this.triangleMinDistance},"top right":{top:t.top-i-this.triangleHeight,left:t.right-t.width/2-e+this.triangleMinDistance},"bottom hcenter":{top:t.bottom+this.triangleHeight,left:t.left+t.width/2-e/2},"bottom left":{top:t.bottom+this.triangleHeight,left:t.left+t.width/2-this.triangleMinDistance},"bottom right":{top:t.bottom+this.triangleHeight,left:t.right-t.width/2-e+this.triangleMinDistance}}},_adjustElementRect:function(t,e){t.left=Math.max(e.left,Math.min(e.right-1,t.left)),t.right=Math.max(e.left,Math.min(e.right,t.right)),t.top=Math.max(e.top,Math.min(e.bottom-1,t.top)),t.bottom=Math.max(e.top,Math.min(e.bottom,t.bottom))},_getViewPaneRect:function(t){var e=t.getScrollPosition();return t=t.getViewPaneSize(),{top:e.y,bottom:e.y+t.height,left:e.x,right:e.x+t.width}}},CKEDITOR.event.implementOn(CKEDITOR.ui.balloonPanel.prototype)}();
\ No newline at end of file
.cke_balloon{background:#fff;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15);outline:none;position:absolute;z-index:10000}.cke_balloon_title{border-bottom:1px solid #eee;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;color:#474747;cursor:default;font-size:14px;font-weight:700;padding:3px 3px 8px;text-shadow:0 1px 0 hsla(0,0%,100%,.75)}a.cke_balloon_close_button{background-image:url(../../../../skins/kama/images/sprites.png);background-position:0 -1022px;background-repeat:no-repeat;cursor:pointer;height:20px;position:absolute;text-align:center;top:5px;width:20px}a.cke_balloon_close_button:hover{background-position:0 -1045px}.cke_balloon_content{min-height:68px;overflow:hidden}.cke_balloon_close_button:hover{filter:alpha(opacity = 100);opacity:1}.cke_balloon_close_button span{display:none}.cke_ltr .cke_balloon_close_button{right:5px}.cke_rtl .cke_balloon_close_button{left:6px}.cke_balloon_triangle{border-style:solid;display:block;height:0;position:absolute;width:0}.cke_balloon_triangle_inner,.cke_balloon_triangle_outer{z-index:0}.cke_balloon_triangle_outer.cke_balloon_triangle_bottom,.cke_balloon_triangle_outer.cke_balloon_triangle_top{border-color:#6b6b6b transparent}.cke_balloon_triangle_inner.cke_balloon_triangle_bottom,.cke_balloon_triangle_inner.cke_balloon_triangle_top{left:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_bottom{border-width:20px 20px 0;bottom:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_bottom{border-color:#fff transparent;border-width:20px 20px 0;top:-21px}.cke_balloon_triangle_outer.cke_balloon_triangle_top{border-width:0 20px 20px;top:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_top{border-color:#fff transparent;border-width:0 20px 20px;top:1px}.cke_balloon_triangle_outer.cke_balloon_triangle_left,.cke_balloon_triangle_outer.cke_balloon_triangle_right{border-color:transparent #6b6b6b}.cke_balloon_triangle_inner.cke_balloon_triangle_left,.cke_balloon_triangle_inner.cke_balloon_triangle_right{border-color:transparent #fff;top:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_left{border-width:20px 20px 20px 0;left:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_left{border-color:transparent #fff;border-width:20px 20px 20px 0;left:1px}.cke_balloon_triangle_outer.cke_balloon_triangle_right{border-width:20px 0 20px 20px;right:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_right{border-width:20px 0 20px 20px;right:1px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_hcenter{left:50%;margin-left:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_left{left:20px;margin-left:0}.cke_balloon_triangle_outer.cke_balloon_triangle_align_right{margin-left:0;right:20px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_vcenter{margin-top:-20px;top:50%}
\ No newline at end of file
.cke_balloon{background:#fff;border:2px solid #aaa;outline:none;position:absolute;z-index:10000}.cke_balloon_title{background:#f8f8f8;color:#484848;cursor:default;font-size:12px;font-weight:700;padding:12px 30px 12px 12px}a.cke_balloon_close_button{background-image:url(images/close.png);background-position:50% -1px;background-repeat:no-repeat;border:2px solid transparent;border-radius:2px;cursor:pointer;filter:alpha(opacity = 70);height:16px;opacity:.7;position:absolute;text-align:center;top:8px;width:16px;z-index:5}a.cke_balloon_close_button:active,a.cke_balloon_close_button:focus{border:2px solid #0079f7;outline:none}.cke_balloon_content{min-height:68px;overflow:hidden;padding:0 6px 6px}.cke_balloon_close_button:hover{filter:alpha(opacity = 100);opacity:1}.cke_balloon_close_button:focus:hover{border:2px solid #139ff7;filter:alpha(opacity = 100);opacity:1}.cke_hidpi .cke_balloon_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_balloon_close_button span{display:none}.cke_ltr .cke_balloon_close_button{right:10px}.cke_rtl .cke_balloon_close_button{left:10px}.cke_balloon_triangle{border-style:solid;display:block;height:0;position:absolute;width:0}.cke_balloon_triangle_inner,.cke_balloon_triangle_outer{z-index:0}.cke_balloon_triangle_outer.cke_balloon_triangle_bottom,.cke_balloon_triangle_outer.cke_balloon_triangle_top{border-color:#999 transparent}.cke_balloon_triangle_inner.cke_balloon_triangle_bottom,.cke_balloon_triangle_inner.cke_balloon_triangle_top{left:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_bottom{border-width:20px 20px 0;bottom:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_bottom{border-color:#fff transparent;border-width:20px 20px 0;top:-22px}.cke_balloon_triangle_outer.cke_balloon_triangle_top{border-width:0 20px 20px;top:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_top{border-color:#f8f8f8 transparent;border-width:0 20px 20px;top:2px}.cke_balloon_triangle_outer.cke_balloon_triangle_left,.cke_balloon_triangle_outer.cke_balloon_triangle_right{border-color:transparent #999}.cke_balloon_triangle_inner.cke_balloon_triangle_left,.cke_balloon_triangle_inner.cke_balloon_triangle_right{border-color:transparent #fff;top:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_left{border-width:20px 20px 20px 0;left:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_left{border-color:transparent #fff;border-width:20px 20px 20px 0;left:2px}.cke_balloon_triangle_outer.cke_balloon_triangle_right{border-width:20px 0 20px 20px;right:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_right{border-width:20px 0 20px 20px;right:2px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_hcenter{left:50%;margin-left:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_left{left:20px;margin-left:0}.cke_balloon_triangle_outer.cke_balloon_triangle_align_right{margin-left:0;right:20px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_vcenter{margin-top:-20px;top:50%}
\ No newline at end of file
.cke_balloon{background:#fff;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15);outline:none;position:absolute;z-index:10000}.cke_balloon_title{background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);border-bottom:1px solid #999;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;color:#474747;cursor:default;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr="#f5f5f5",endColorstr="#cfd1cf");font-size:13px;font-weight:700;padding:6px 30px 6px 10px;text-shadow:0 1px 0 hsla(0,0%,100%,.75)}a.cke_balloon_close_button{background-image:url(images/close.png);background-position:50%;background-repeat:no-repeat;cursor:pointer;filter:alpha(opacity = 80);height:20px;opacity:.8;position:absolute;text-align:center;top:3px;width:20px;z-index:5}.cke_balloon_content{min-height:68px;overflow:hidden}.cke_balloon_close_button:hover{filter:alpha(opacity = 100);opacity:1}.cke_hidpi .cke_balloon_close_button{background-image:url(images/hidpi/close.png);background-size:16px}.cke_balloon_close_button span{display:none}.cke_ltr .cke_balloon_close_button{right:5px}.cke_rtl .cke_balloon_close_button{left:6px}.cke_balloon_triangle{border-style:solid;display:block;height:0;position:absolute;width:0}.cke_balloon_triangle_inner,.cke_balloon_triangle_outer{z-index:0}.cke_balloon_triangle_outer.cke_balloon_triangle_bottom,.cke_balloon_triangle_outer.cke_balloon_triangle_top{border-color:#6b6b6b transparent}.cke_balloon_triangle_inner.cke_balloon_triangle_bottom,.cke_balloon_triangle_inner.cke_balloon_triangle_top{left:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_bottom{border-width:20px 20px 0;bottom:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_bottom{border-color:#fff transparent;border-width:20px 20px 0;top:-21px}.cke_balloon_triangle_outer.cke_balloon_triangle_top{border-width:0 20px 20px;top:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_top{border-color:#f5f5f5 transparent;border-width:0 20px 20px;top:1px}.cke_balloon_triangle_outer.cke_balloon_triangle_left,.cke_balloon_triangle_outer.cke_balloon_triangle_right{border-color:transparent #6b6b6b}.cke_balloon_triangle_inner.cke_balloon_triangle_left,.cke_balloon_triangle_inner.cke_balloon_triangle_right{border-color:transparent #fff;top:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_left{border-width:20px 20px 20px 0;left:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_left{border-color:transparent #fff;border-width:20px 20px 20px 0;left:1px}.cke_balloon_triangle_outer.cke_balloon_triangle_right{border-width:20px 0 20px 20px;right:-20px}.cke_balloon_triangle_inner.cke_balloon_triangle_right{border-width:20px 0 20px 20px;right:1px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_hcenter{left:50%;margin-left:-20px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_left{left:20px;margin-left:0}.cke_balloon_triangle_outer.cke_balloon_triangle_align_right{margin-left:0;right:20px}.cke_balloon_triangle_outer.cke_balloon_triangle_align_vcenter{margin-top:-20px;top:50%}
\ No newline at end of file
!function(){function t(t,o){this.editor=t,this.options=o,this.toolbar=new CKEDITOR.ui.balloonToolbar(t),this.options&&void 0===this.options.priority&&(this.options.priority=CKEDITOR.plugins.balloontoolbar.PRIORITY.MEDIUM),this._loadButtons()}function o(t){this.editor=t,this._contexts=[],this._listeners=[],this._attachListeners()}var e=CKEDITOR.tools.array.filter(["matches","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector"],(function(t){return!!window.HTMLElement&&t in HTMLElement.prototype}))[0];CKEDITOR.ui.balloonToolbarView=function(t,o){o=CKEDITOR.tools.extend(o||{},{width:"auto",triangleWidth:7,triangleHeight:7}),CKEDITOR.ui.balloonPanel.call(this,t,o),this._listeners=[]},CKEDITOR.ui.balloonToolbar=function(t,o){this._view=new CKEDITOR.ui.balloonToolbarView(t,o),this._items={}},CKEDITOR.ui.balloonToolbar.prototype.attach=function(t,o){this._view.renderItems(this._items),this._view.attach(t,{focusElement:!1,show:!o})},CKEDITOR.ui.balloonToolbar.prototype.show=function(){this._view.show()},CKEDITOR.ui.balloonToolbar.prototype.hide=function(){this._view.hide()},CKEDITOR.ui.balloonToolbar.prototype.reposition=function(){this._view.reposition()},CKEDITOR.ui.balloonToolbar.prototype.addItem=function(t,o){this._items[t]=o},CKEDITOR.ui.balloonToolbar.prototype.addItems=function(t){for(var o in t)this.addItem(o,t[o])},CKEDITOR.ui.balloonToolbar.prototype.getItem=function(t){return this._items[t]},CKEDITOR.ui.balloonToolbar.prototype.deleteItem=function(t){this._items[t]&&(delete this._items[t],this._view.renderItems(this._items))},CKEDITOR.ui.balloonToolbar.prototype.destroy=function(){for(var t in this._items)this._items[t].destroy&&this._items[t].destroy(),this.deleteItem(t);this._pointedElement=null,this._view.destroy()},CKEDITOR.ui.balloonToolbar.prototype.refresh=function(){for(var t in this._items){var o=this._view.editor.getCommand(this._items[t].command);o&&o.refresh(this._view.editor,this._view.editor.elementPath())}},t.prototype={destroy:function(){this.toolbar&&this.toolbar.destroy()},show:function(t){t&&this.toolbar.attach(t),this.toolbar.show()},hide:function(){this.toolbar.hide()},refresh:function(){this.toolbar.refresh()},_matchRefresh:function(t,o){var e=null;return this.options.refresh&&(e=this.options.refresh(this.editor,t,o)||null)&&!1==e instanceof CKEDITOR.dom.element&&(e=t&&t.lastElement||this.editor.editable()),e},_matchWidget:function(){var t=this.options.widgets,o=null;if(t){var e=this.editor.widgets&&this.editor.widgets.focused&&this.editor.widgets.focused.name;"string"==typeof t&&(t=t.split(",")),-1!==CKEDITOR.tools.array.indexOf(t,e)&&(o=this.editor.widgets.focused.element)}return o},_matchElement:function(t){return this.options.cssSelector&&e&&t.$[e](this.options.cssSelector)?t:null},_loadButtons:function(){var t=this.options.buttons;t&&(t=t.split(","),CKEDITOR.tools.array.forEach(t,(function(t){var o=this.editor.ui.create(t);o&&this.toolbar.addItem(t,o)}),this))}},o.prototype={create:function(t){return t=new CKEDITOR.plugins.balloontoolbar.context(this.editor,t),this.add(t),t},add:function(t){this._contexts.push(t)},check:function(t){function o(t,o,e){n(t,(function(t){if(!s||s.options.priority>t.options.priority){var n=o(t,e);n instanceof CKEDITOR.dom.element&&(i=n,s=t)}}))}function e(t,o){return t._matchElement(o)}if(t||(t=this.editor.getSelection(),CKEDITOR.tools.array.forEach(t.getRanges(),(function(t){t.shrink(CKEDITOR.SHRINK_ELEMENT,!0)}))),t){var i,s,n=CKEDITOR.tools.array.forEach,r=t.getRanges()[0],l=r&&r.startPath();if(o(this._contexts,(function(o){return o._matchRefresh(l,t)})),o(this._contexts,(function(t){return t._matchWidget()})),l)for((r=t.getSelectedElement())&&!r.isReadOnly()&&o(this._contexts,e,r),r=0;r<l.elements.length;r++){var a=l.elements[r];a.isReadOnly()||o(this._contexts,e,a)}this.hide(),s&&s.show(i)}},hide:function(){CKEDITOR.tools.array.forEach(this._contexts,(function(t){t.hide()}))},destroy:function(){CKEDITOR.tools.array.forEach(this._listeners,(function(t){t.removeListener()})),this._listeners.splice(0,this._listeners.length),this._clear()},_clear:function(){CKEDITOR.tools.array.forEach(this._contexts,(function(t){t.destroy()})),this._contexts.splice(0,this._contexts.length)},_refresh:function(){CKEDITOR.tools.array.forEach(this._contexts,(function(t){t.refresh()}))},_attachListeners:function(){this._listeners.push(this.editor.on("destroy",(function(){this.destroy()}),this),this.editor.on("selectionChange",(function(){this.check()}),this),this.editor.on("mode",(function(){this.hide()}),this,null,9999),this.editor.on("blur",(function(){this.hide()}),this,null,9999),this.editor.on("afterInsertHtml",(function(){this.check(),this._refresh()}),this,null,9999))}};var i=!1,s=!1;CKEDITOR.plugins.add("balloontoolbar",{requires:"balloonpanel",isSupportedEnvironment:function(){return!CKEDITOR.env.ie||8<CKEDITOR.env.version},beforeInit:function(t){s||(CKEDITOR.document.appendStyleSheet(this.path+"skins/default.css"),CKEDITOR.document.appendStyleSheet(this.path+"skins/"+CKEDITOR.skin.name+"/balloontoolbar.css"),s=!0),t.balloonToolbars=new CKEDITOR.plugins.balloontoolbar.contextManager(t)},init:function(t){t.balloonToolbars=new CKEDITOR.plugins.balloontoolbar.contextManager(t),i||(i=!0,CKEDITOR.ui.balloonToolbarView.prototype=CKEDITOR.tools.extend({},CKEDITOR.ui.balloonPanel.prototype),CKEDITOR.ui.balloonToolbarView.prototype.build=function(){CKEDITOR.ui.balloonPanel.prototype.build.call(this),this.parts.panel.addClass("cke_balloontoolbar"),this.parts.title.remove(),this.deregisterFocusable(this.parts.close),this.parts.close.remove()},CKEDITOR.ui.balloonToolbarView.prototype.show=function(){function t(){this.reposition()}if(!this.rect.visible){var o=this.editor.editable();this._detachListeners(),this._listeners.push(this.editor.on("change",t,this)),this._listeners.push(this.editor.on("resize",t,this)),this._listeners.push(CKEDITOR.document.getWindow().on("resize",t,this)),this._listeners.push(o.attachListener(o.getDocument(),"scroll",t,this)),CKEDITOR.ui.balloonPanel.prototype.show.call(this)}},CKEDITOR.ui.balloonToolbarView.prototype.reposition=function(){this.rect.visible&&this.attach(this._pointedElement,{focusElement:!1})},CKEDITOR.ui.balloonToolbarView.prototype.hide=function(){this._detachListeners(),CKEDITOR.ui.balloonPanel.prototype.hide.call(this)},CKEDITOR.ui.balloonToolbarView.prototype.blur=function(t){t&&this.editor.focus()},CKEDITOR.ui.balloonToolbarView.prototype._getAlignments=function(t,o,e){return{"bottom hcenter":(t=CKEDITOR.ui.balloonPanel.prototype._getAlignments.call(this,t,o,e))["bottom hcenter"],"top hcenter":t["top hcenter"]}},CKEDITOR.ui.balloonToolbarView.prototype._detachListeners=function(){this._listeners.length&&(CKEDITOR.tools.array.forEach(this._listeners,(function(t){t.removeListener()})),this._listeners=[])},CKEDITOR.ui.balloonToolbarView.prototype.destroy=function(){this._deregisterItemFocusables(),CKEDITOR.ui.balloonPanel.prototype.destroy.call(this),this._detachListeners()},CKEDITOR.ui.balloonToolbarView.prototype.renderItems=function(t){var o=[],e=CKEDITOR.tools.object.keys(t),i=!1;this._deregisterItemFocusables(),CKEDITOR.tools.array.forEach(e,(function(e){CKEDITOR.ui.richCombo&&t[e]instanceof CKEDITOR.ui.richCombo&&i?(i=!1,o.push("</span>")):CKEDITOR.ui.richCombo&&t[e]instanceof CKEDITOR.ui.richCombo||i||(i=!0,o.push('<span class="cke_toolgroup">')),t[e].render(this.editor,o)}),this),i&&o.push("</span>"),this.parts.content.setHtml(o.join("")),this.parts.content.unselectable(),CKEDITOR.tools.array.forEach(this.parts.content.find("a").toArray(),(function(t){t.setAttribute("draggable","false"),this.registerFocusable(t)}),this)},CKEDITOR.ui.balloonToolbarView.prototype.attach=function(t,o){this._pointedElement=t,CKEDITOR.ui.balloonPanel.prototype.attach.call(this,t,o)},CKEDITOR.ui.balloonToolbarView.prototype._deregisterItemFocusables=function(){var t,o=this.focusables;for(t in o)this.parts.content.contains(o[t])&&this.deregisterFocusable(o[t])})}}),CKEDITOR.plugins.balloontoolbar={context:t,contextManager:o,PRIORITY:{LOW:999,MEDIUM:500,HIGH:10}}}();
\ No newline at end of file
.cke_balloon.cke_balloontoolbar{background:#f8f8f8;border:1px solid #d1d1d1;outline:none;position:absolute;z-index:10000}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle{border-style:solid;display:block;height:0;position:absolute;width:0}.cke_balloon.cke_balloontoolbar .cke_balloon_content{float:left;min-height:10px;padding:3px}.cke_balloon.cke_balloontoolbar .cke_combo_button,.cke_balloon.cke_balloontoolbar .cke_toolgroup{margin-bottom:0}.cke_balloon.cke_balloontoolbar .cke_balloon_content>span:last-child.cke_toolgroup,.cke_balloon.cke_balloontoolbar .cke_balloon_content>span:last-child>a.cke_combo_button{margin-right:0;padding-right:0}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner,.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer{z-index:0}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_align_hcenter{left:50%;margin-left:-7px}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_bottom,.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_top{border-color:#d1d1d1 transparent}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner.cke_balloon_triangle_bottom,.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner.cke_balloon_triangle_top{border-color:#f8f8f8 transparent;left:-7px}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_bottom{border-width:7px 7px 0;bottom:-7px}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner.cke_balloon_triangle_bottom{border-width:7px 7px 0;top:-8px}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_top{border-width:0 7px 7px;top:-7px}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner.cke_balloon_triangle_top{border-width:0 7px 7px}
\ No newline at end of file
.cke_balloon.cke_balloontoolbar{background:#fff url(../../../../skins/kama/images/sprites.png) repeat-x 0 -150px;background:linear-gradient(180deg,#fff,#d3d3d3 20px);border:1px solid #d3d3d3;padding:0}.cke_balloon.cke_balloontoolbar .cke_balloon_content{padding:4px}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner.cke_balloon_triangle_bottom,.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_bottom,.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_top{border-color:#d3d3d3 transparent}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner.cke_balloon_triangle_top{border-color:#fff transparent}
\ No newline at end of file
.cke_balloon.cke_balloontoolbar span:last-child a:last-child:after,.cke_balloon.cke_balloontoolbar span:last-child a:last-child:hover:after,.cke_balloon.cke_balloontoolbar span:last-child:after{border-right:0}.cke_balloon.cke_balloontoolbar .cke_combo{margin-bottom:0;margin-right:2px}.cke_balloon.cke_balloontoolbar .cke_combo:first-child a.cke_combo_button{margin-left:0}.cke_balloon.cke_balloontoolbar .cke_combo:last-child{margin-right:0}.cke_balloon.cke_balloontoolbar .cke_combo a.cke_combo_button{margin:0 1px 0 -2px}.cke_balloon.cke_balloontoolbar .cke_combo_off a.cke_combo_button:active,.cke_balloon.cke_balloontoolbar .cke_combo_off a.cke_combo_button:focus,.cke_balloon.cke_balloontoolbar .cke_combo_off a.cke_combo_button:hover,.cke_balloon.cke_balloontoolbar .cke_combo_on a.cke_combo_button{border:none;outline:1px solid #bcbcbc;padding:1px}
\ No newline at end of file
.cke_balloon.cke_balloontoolbar{background:linear-gradient(180deg,#f5f5f5,#cfd1cf);border:1px solid #b6b6b6;border-radius:0;filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr="#f5f5f5",endColorstr="#cfd1cf")}.cke_balloon.cke_balloontoolbar .cke_balloon_content{padding:4px}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_bottom,.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_outer.cke_balloon_triangle_top{border-color:#b6b6b6 transparent}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner.cke_balloon_triangle_bottom{border-color:#cfd1cf transparent}.cke_balloon.cke_balloontoolbar .cke_balloon_triangle_inner.cke_balloon_triangle_top{border-color:#f5f5f5 transparent}
\ No newline at end of file
!function(){CKEDITOR.on("dialogDefinition",(function(e){var t;t=e.data.name,e=e.data.definition,"link"==t?(e.removeContents("target"),e.removeContents("upload"),e.removeContents("advanced"),(t=e.getContents("info")).remove("emailSubject"),t.remove("emailBody")):"image"==t&&(e.removeContents("advanced"),(t=e.getContents("Link")).remove("cmbTarget"),(t=e.getContents("info")).remove("txtAlt"),t.remove("basic"))}));var e,t={b:"strong",u:"u",i:"em",color:"span",size:"span",left:"div",right:"div",center:"div",justify:"div",quote:"blockquote",code:"code",url:"a",email:"span",img:"span","*":"li",list:"ol"},n={strong:"b",b:"b",u:"u",em:"i",i:"i",code:"code",li:"*"},i={strong:"b",em:"i",u:"u",li:"*",ul:"list",ol:"list",code:"code",a:"link",img:"img",blockquote:"quote"},r={color:"color",size:"font-size",left:"text-align",center:"text-align",right:"text-align",justify:"text-align"},a={url:"href",email:"mailhref",quote:"cite",list:"listType"},s=CKEDITOR.dtd,l=CKEDITOR.tools.extend({table:1},s.$block,s.$listItem,s.$tableContent,s.$list),o=/\s*(?:;\s*|$)/,u={smiley:":)",sad:":(",wink:";)",laugh:":D",cheeky:":P",blush:":*)",surprise:":-o",indecision:":|",angry:">:(",angel:"o:)",cool:"8-)",devil:">:-)",crying:";(",kiss:":-*"},c={},h=[];for(e in u)c[u[e]]=e,h.push(u[e].replace(/\(|\)|\:|\/|\*|\-|\|/g,(function(e){return"\\"+e})));h=new RegExp(h.join("|"),"g");var f=function(){var e,t=[],n={nbsp:" ",shy:"­"};for(e in n)t.push(e);return t=new RegExp("&("+t.join("|")+");","g"),function(e){return e.replace(t,(function(e,t){return n[t]}))}}();CKEDITOR.BBCodeParser=function(){this._={bbcPartsRegex:/(?:\[([^\/\]=]*?)(?:=([^\]]*?))?\])|(?:\[\/([a-z]{1,16})\])/gi}},CKEDITOR.BBCodeParser.prototype={parse:function(e){for(var n,i,s=0;n=this._.bbcPartsRegex.exec(e);)if((i=n.index)>s&&(s=e.substring(s,i),this.onText(s,1)),s=this._.bbcPartsRegex.lastIndex,(i=(n[1]||n[3]||"").toLowerCase())&&!t[i])this.onText(n[0]);else if(n[1]){var l=t[i],u={},c={};if(n=n[2],"left"!=i&&"right"!=i&&"center"!=i&&"justify"!=i||(n=i),n)if("list"==i&&(isNaN(n)?/^[a-z]+$/.test(n)?n="lower-alpha":/^[A-Z]+$/.test(n)&&(n="upper-alpha"):n="decimal"),r[i]){"size"==i&&(n+="%"),c[r[i]]=n,n=u;var h="",f=void 0;for(f in c)h=h+(f+":"+c[f]).replace(o,";");n.style=h}else a[i]&&(u[a[i]]=CKEDITOR.tools.htmlDecode(n));"email"!=i&&"img"!=i||(u.bbcode=i),this.onTagOpen(l,u,CKEDITOR.dtd.$empty[l])}else n[3]&&this.onTagClose(t[i]);e.length>s&&this.onText(e.substring(s,e.length),1)}},CKEDITOR.htmlParser.fragment.fromBBCode=function(e){function t(e){if(0<u.length)for(var t=0;t<u.length;t++){var n=u[t],i=n.name,r=CKEDITOR.dtd[i],a=m.name&&CKEDITOR.dtd[m.name];a&&!a[i]||e&&r&&!r[e]&&CKEDITOR.dtd[e]||((n=n.clone()).parent=m,m=n,u.splice(t,1),t--)}}function n(e,t){var n=!(r=0<(n=m.children.length)&&m.children[n-1])&&d.getRule(i[m.name],"breakAfterOpen"),r=r&&r.type==CKEDITOR.NODE_ELEMENT&&d.getRule(i[r.name],"breakAfterClose"),a=e&&d.getRule(i[e],t?"breakBeforeClose":"breakBeforeOpen");f&&(n||r||a)&&f--,f&&e in l&&f++;for(;f&&f--;)m.children.push(new CKEDITOR.htmlParser.element("br"))}function r(e,t){n(e.name,1);var i=(t=t||m||o).children.length;e.previous=0<i&&t.children[i-1]||null,e.parent=t,t.children.push(e),e.returnPoint&&(m=e.returnPoint,delete e.returnPoint)}var a,s=new CKEDITOR.BBCodeParser,o=new CKEDITOR.htmlParser.fragment,u=[],f=0,m=o;for(s.onTagOpen=function(e,i){var l=new CKEDITOR.htmlParser.element(e,i);if(CKEDITOR.dtd.$removeEmpty[e])u.push(l);else{var o=m.name;if((h=o&&(CKEDITOR.dtd[o]||(m._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span)))&&!h[e]){var c,h=!1;if(e==o?r(m,m.parent):(e in CKEDITOR.dtd.$listItem?(s.onTagOpen("ul",{}),c=m):(r(m,m.parent),u.unshift(m)),h=!0),m=c||(m.returnPoint||m.parent),h)return void s.onTagOpen.apply(this,arguments)}t(e),n(e),l.parent=m,l.returnPoint=a,a=0,l.isEmpty?r(l):m=l}},s.onTagClose=function(e){for(var t=u.length-1;0<=t;t--)if(e==u[t].name)return void u.splice(t,1);for(var n=[],i=[],a=m;a.type&&a.name!=e;)a._.isBlockLike||i.unshift(a),n.push(a),a=a.parent;if(a.type){for(t=0;t<n.length;t++)r(e=n[t],e.parent);m=a,r(a,a.parent),a==m&&(m=m.parent),u=u.concat(i)}},s.onText=function(e){var i=CKEDITOR.dtd[m.name];i&&!i["#"]||(n(),t(),e.replace(/(\r\n|[\r\n])|[^\r\n]*/g,(function(e,t){if(void 0!==t&&t.length)f++;else if(e.length){var n=0;e.replace(h,(function(t,i){r(new CKEDITOR.htmlParser.text(e.substring(n,i)),m),r(new CKEDITOR.htmlParser.element("smiley",{desc:c[t]}),m),n=i+t.length})),n!=e.length&&r(new CKEDITOR.htmlParser.text(e.substring(n,e.length)),m)}})))},s.parse(CKEDITOR.tools.htmlEncode(e));m.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT;)e=m.parent,r(m,e),m=e;return o};var d=new(CKEDITOR.tools.createClass({$:function(){this._={output:[],rules:[]},this.setRules("list",{breakBeforeOpen:1,breakAfterOpen:1,breakBeforeClose:1,breakAfterClose:1}),this.setRules("*",{breakBeforeOpen:1,breakAfterOpen:0,breakBeforeClose:1,breakAfterClose:0}),this.setRules("quote",{breakBeforeOpen:1,breakAfterOpen:0,breakBeforeClose:0,breakAfterClose:1})},proto:{setRules:function(e,t){var n=this._.rules[e];n?CKEDITOR.tools.extend(n,t,!0):this._.rules[e]=t},getRule:function(e,t){return this._.rules[e]&&this._.rules[e][t]},openTag:function(e){e in t&&(this.getRule(e,"breakBeforeOpen")&&this.lineBreak(1),this.write("[",e))},openTagClose:function(e){"br"==e?this._.output.push("\n"):e in t&&(this.write("]"),this.getRule(e,"breakAfterOpen")&&this.lineBreak(1))},attribute:function(e,t){"option"==e&&this.write("=",t)},closeTag:function(e){e in t&&(this.getRule(e,"breakBeforeClose")&&this.lineBreak(1),"*"!=e&&this.write("[/",e,"]"),this.getRule(e,"breakAfterClose")&&this.lineBreak(1))},text:function(e){this.write(e)},comment:function(){},lineBreak:function(){!this._.hasLineBreak&&this._.output.length&&(this.write("\n"),this._.hasLineBreak=1)},write:function(){this._.hasLineBreak=0;var e=Array.prototype.join.call(arguments,"");this._.output.push(e)},reset:function(){this._.output=[],this._.hasLineBreak=0},getHtml:function(e){var t=this._.output.join("");return e&&this.reset(),f(t)}}}));CKEDITOR.plugins.add("bbcode",{requires:"entities",beforeInit:function(e){CKEDITOR.tools.extend(e.config,{enterMode:CKEDITOR.ENTER_BR,basicEntities:!1,entities:!1,fillEmptyBlocks:!1},!0),e.filter.disable(),e.activeEnterMode=e.enterMode=CKEDITOR.ENTER_BR},init:function(e){function t(e){var t=e.data;e=CKEDITOR.htmlParser.fragment.fromBBCode(e.data.dataValue);var n=new CKEDITOR.htmlParser.basicWriter;e.writeHtml(n,r),e=n.getHtml(!0),t.dataValue=e}var i=e.config,r=new CKEDITOR.htmlParser.filter;r.addRules({elements:{blockquote:function(e){var t=new CKEDITOR.htmlParser.element("div");if(t.children=e.children,e.children=[t],t=e.attributes.cite){var n=new CKEDITOR.htmlParser.element("cite");n.add(new CKEDITOR.htmlParser.text(t.replace(/^"|"$/g,""))),delete e.attributes.cite,e.children.unshift(n)}},span:function(e){var t;(t=e.attributes.bbcode)&&("img"==t?(e.name="img",e.attributes.src=e.children[0].value,e.children=[]):"email"==t&&(e.name="a",e.attributes.href="mailto:"+e.children[0].value),delete e.attributes.bbcode)},ol:function(e){e.attributes.listType?"decimal"!=e.attributes.listType&&(e.attributes.style="list-style-type:"+e.attributes.listType):e.name="ul",delete e.attributes.listType},a:function(e){e.attributes.href||(e.attributes.href=e.children[0].value)},smiley:function(e){e.name="img";var t=e.attributes.desc,n=i.smiley_images[CKEDITOR.tools.indexOf(i.smiley_descriptions,t)];n=CKEDITOR.tools.htmlEncode(i.smiley_path+n);e.attributes={src:n,"data-cke-saved-src":n,title:t,alt:t}}}}),e.dataProcessor.htmlFilter.addRules({elements:{$:function(t){var i,r=t.attributes,a=CKEDITOR.tools.parseCssText(r.style,1),s=t.name;if(s in n)s=n[s];else if("span"==s)(i=a.color)?(s="color",i=CKEDITOR.tools.convertRgbToHex(i)):(i=a["font-size"])&&(r=i.match(/(\d+)%$/))&&(i=r[1],s="size");else if("ol"==s||"ul"==s){if(i=a["list-style-type"])switch(i){case"lower-alpha":i="a";break;case"upper-alpha":i="A"}else"ol"==s&&(i=1);s="list"}else if("blockquote"==s){try{var l=t.children[0],o=t.children[1],c="cite"==l.name&&l.children[0].value;c&&(i='"'+c+'"',t.children=o.children)}catch(e){}s="quote"}else if("a"==s)(i=r.href)&&(-1!==i.indexOf("mailto:")?(s="email",t.children=[new CKEDITOR.htmlParser.text(i.replace("mailto:",""))],i=""):((s=1==t.children.length&&t.children[0])&&s.type==CKEDITOR.NODE_TEXT&&s.value==i&&(i=""),s="url"));else if("img"==s){if(t.isEmpty=0,a=r["data-cke-saved-src"]||r.src,r=r.alt,a&&-1!=a.indexOf(e.config.smiley_path)&&r)return new CKEDITOR.htmlParser.text(u[r]);t.children=[new CKEDITOR.htmlParser.text(a)]}return t.name=s,i&&(t.attributes.option=i),null},div:function(e){var t=CKEDITOR.tools.parseCssText(e.attributes.style,1)["text-align"]||"";if(t)return e.name=t,null},br:function(e){if((e=e.next)&&e.name in l)return!1}}},1),e.dataProcessor.writer=d,e.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?e.once("contentDom",(function(){e.on("setData",t)})):e.on("setData",t)},afterInit:function(e){var t;e._.elementsPath&&(t=e._.elementsPath.filters)&&t.push((function(t){var n=t.getName(),r=i[n]||!1;return"link"==r&&0===t.getAttribute("href").indexOf("mailto:")?r="email":"span"==n?t.getStyle("font-size")?r="size":t.getStyle("color")&&(r="color"):"div"==n&&t.getStyle("text-align")?r=t.getStyle("text-align"):"img"==r&&(t=t.data("cke-saved-src")||t.getAttribute("src"))&&0===t.indexOf(e.config.smiley_path)&&(r="smiley"),r}))}})}();
\ No newline at end of file
!function(){function e(e,t,i,r){if(!e.isReadOnly()&&!e.equals(i.editable())){CKEDITOR.dom.element.setMarker(r,e,"bidi_processed",1),r=e;for(var o=i.editable();(r=r.getParent())&&!r.equals(o);)if(r.getCustomData("bidi_processed"))return e.removeStyle("direction"),void e.removeAttribute("dir");((r="useComputedState"in i.config?i.config.useComputedState:1)?e.getComputedStyle("direction"):e.getStyle("direction")||e.hasAttribute("dir"))!=t&&(e.removeStyle("direction"),r?(e.removeAttribute("dir"),t!=e.getComputedStyle("direction")&&e.setAttribute("dir",t)):e.setAttribute("dir",t),i.forceNextSelectionCheck())}}function t(e,t,i){var r=e.getCommonAncestor(!1,!0);if((e=e.clone()).enlarge(i==CKEDITOR.ENTER_BR?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS),e.checkBoundaryOfElement(r,CKEDITOR.START)&&e.checkBoundaryOfElement(r,CKEDITOR.END)){for(var o;r&&r.type==CKEDITOR.NODE_ELEMENT&&(o=r.getParent())&&1==o.getChildCount()&&!(r.getName()in t);)r=o;return r.type==CKEDITOR.NODE_ELEMENT&&r.getName()in t&&r}}function i(i){return{context:"p",allowedContent:{"h1 h2 h3 h4 h5 h6 table ul ol blockquote div tr p div li td":{propertiesOnly:!0,attributes:"dir"}},requiredContent:"p[dir]",refresh:function(e,t){var i,r;if(!(r=void 0===(r=e.config.useComputedState)||r)){i=t.lastElement;for(var o=e.editable();i&&!(i.getName()in a)&&!i.equals(o);){var n=i.getParent();if(!n)break;i=n}}(i=i||t.block||t.blockLimit).equals(e.editable())&&(o=e.getSelection().getRanges()[0].getEnclosedNode())&&o.type==CKEDITOR.NODE_ELEMENT&&(i=o),i&&(r=r?i.getComputedStyle("direction"):i.getStyle("direction")||i.getAttribute("dir"),e.getCommand("bidirtl").setState("rtl"==r?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.getCommand("bidiltr").setState("ltr"==r?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)),(r=(t.block||t.blockLimit||e.editable()).getDirection(1))!=(e._.selDir||e.lang.dir)&&(e._.selDir=r,e.fire("contentDirChanged",r))},exec:function(r){var a=r.getSelection(),d=r.config.enterMode;if((s=a.getRanges())&&s.length){for(var l,c={},E=a.createBookmarks(),s=s.createIterator(),u=0;l=s.getNextRange(1);){var g=l.getEnclosedNode();g&&(!g||g.type==CKEDITOR.NODE_ELEMENT&&g.getName()in n)||(g=t(l,o,d)),g&&e(g,i,r,c);var T=new CKEDITOR.dom.walker(l),C=E[u].startNode,O=E[u++].endNode;for(T.evaluator=function(e){var t,i=d==CKEDITOR.ENTER_P?"p":"div";return(t=!!e&&e.type==CKEDITOR.NODE_ELEMENT&&e.getName()in o)&&((i=e.is(i))&&(i=!!(i=e.getParent())&&i.type==CKEDITOR.NODE_ELEMENT),t=!(i&&e.getParent().is("blockquote"))),!!(t&&e.getPosition(C)&CKEDITOR.POSITION_FOLLOWING&&(e.getPosition(O)&CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_CONTAINS)==CKEDITOR.POSITION_PRECEDING)};g=T.next();)e(g,i,r,c);for((l=l.createIterator()).enlargeBr=d!=CKEDITOR.ENTER_BR;g=l.getNextParagraph(d==CKEDITOR.ENTER_P?"p":"div");)e(g,i,r,c)}CKEDITOR.dom.element.clearAllMarkers(c),r.forceNextSelectionCheck(),a.selectBookmarks(E),r.focus()}}}}function r(e){var t=e==d.setAttribute,i=e==d.removeAttribute,r=/\bdirection\s*:\s*(.*?)\s*(:?$|;)/;return function(o,n){if(!this.isReadOnly()){var a;if(a=o==(t||i?"dir":"direction")||"style"==o&&(i||r.test(n))){e:{for(var d=(a=this).getDocument().getBody().getParent();a;){if(a.equals(d)){a=!1;break e}a=a.getParent()}a=!0}a=!a}if(a&&(a=this.getDirection(1),d=e.apply(this,arguments),a!=this.getDirection(1)))return this.getDocument().fire("dirChanged",this),d}return e.apply(this,arguments)}}var o={table:1,ul:1,ol:1,blockquote:1,div:1},n={},a={};CKEDITOR.tools.extend(n,o,{tr:1,p:1,div:1,li:1}),CKEDITOR.tools.extend(a,n,{td:1}),CKEDITOR.plugins.add("bidi",{lang:"af,ar,az,bg,bn,bs,ca,cs,cy,da,de,de-ch,el,en,en-au,en-ca,en-gb,eo,es,es-mx,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,oc,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,tt,ug,uk,vi,zh,zh-cn",icons:"bidiltr,bidirtl",hidpi:!0,init:function(e){function t(t,i,r,o,n){e.addCommand(r,new CKEDITOR.command(e,o)),e.ui.addButton&&e.ui.addButton(t,{label:i,command:r,toolbar:"bidi,"+n})}if(!e.blockless){var r=e.lang.bidi;t("BidiLtr",r.ltr,"bidiltr",i("ltr"),10),t("BidiRtl",r.rtl,"bidirtl",i("rtl"),20),e.on("contentDom",(function(){e.document.on("dirChanged",(function(t){e.fire("dirChanged",{node:t.data,dir:t.data.getDirection(1)})}))})),e.on("contentDirChanged",(function(t){t=(e.lang.dir!=t.data?"add":"remove")+"Class";var i=e.ui.space(e.config.toolbarLocation);i&&i[t]("cke_mixed_dir_content")}))}}});for(var d=CKEDITOR.dom.element.prototype,l=["setStyle","removeStyle","setAttribute","removeAttribute"],c=0;c<l.length;c++)d[l[c]]=CKEDITOR.tools.override(d[l[c]],r)}();
\ No newline at end of file
CKEDITOR.dialog.add("paste",(function(e){function t(t){var a=new CKEDITOR.dom.document(t.document),o=a.getBody(),s=a.getById("cke_actscrpt");s&&s.remove(),o.setAttribute("contenteditable",!0),o.on(i.mainPasteEvent,(function(e){e=i.initPasteDataTransfer(e),n?e!=n&&(n=i.initPasteDataTransfer()):n=e})),CKEDITOR.env.ie&&8>CKEDITOR.env.version&&a.getWindow().on("blur",(function(){a.$.selection.empty()})),a.on("keydown",(function(e){var t;switch((e=e.data).getKeystroke()){case 27:this.hide(),t=1;break;case 9:case CKEDITOR.SHIFT+9:this.changeFocus(1),t=1}t&&e.preventDefault()}),this),e.fire("ariaWidget",new CKEDITOR.dom.element(t.frameElement)),a.getWindow().getFrame().removeCustomData("pendingFocus")&&o.focus()}var n,a=e.lang.clipboard,i=CKEDITOR.plugins.clipboard;return e.on("pasteDialogCommit",(function(t){t.data&&e.fire("paste",{type:"auto",dataValue:t.data.dataValue,method:"paste",dataTransfer:t.data.dataTransfer||i.initPasteDataTransfer()})}),null,null,1e3),{title:a.paste,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?370:350,minHeight:CKEDITOR.env.quirks?250:245,onShow:function(){this.parts.dialog.$.offsetHeight,this.setupContent(),this._.committed=!1},onLoad:function(){(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&"rtl"==e.lang.dir&&this.parts.contents.setStyle("overflow","hidden")},onOk:function(){this.commitContent()},contents:[{id:"general",label:e.lang.common.generalTab,elements:[{type:"html",id:"pasteMsg",html:'<div style="white-space:normal;width:340px">'+a.pasteMsg+"</div>"},{type:"html",id:"editing_area",style:"width:100%;height:100%",html:"",focus:function(){var e=this.getInputElement(),t=e.getFrameDocument().getBody();!t||t.isReadOnly()?e.setCustomData("pendingFocus",1):t.focus()},setup:function(){var i=this.getDialog(),o='<html dir="'+e.config.contentsLangDirection+'" lang="'+(e.config.contentsLanguage||e.langCode)+'"><head><style>body{margin:3px;height:95%;word-break:break-all;}</style></head><body><script id="cke_actscrpt" type="text/javascript">window.parent.CKEDITOR.tools.callFunction('+CKEDITOR.tools.addFunction(t,i)+",this);<\/script></body></html>",s=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie&&!CKEDITOR.env.edge?"javascript:void((function(){"+encodeURIComponent("document.open();("+CKEDITOR.tools.fixDomain+")();document.close();")+'})())"':"",r=CKEDITOR.dom.element.createFromHtml('<iframe class="cke_pasteframe" frameborder="0" allowTransparency="true" src="'+s+'" aria-label="'+a.pasteArea+'" aria-describedby="'+i.getContentElement("general","pasteMsg").domId+'"></iframe>');if(n=null,r.on("load",(function(n){n.removeListener(),(n=r.getFrameDocument()).write(o),e.focusManager.add(n.getBody()),CKEDITOR.env.air&&t.call(this,n.getWindow().$)}),i),r.setCustomData("dialog",i),(i=this.getElement()).setHtml(""),i.append(r),CKEDITOR.env.ie&&!CKEDITOR.env.edge){var d=CKEDITOR.dom.element.createFromHtml('<span tabindex="-1" style="position:absolute" role="presentation"></span>');d.on("focus",(function(){setTimeout((function(){r.$.contentWindow.focus()}))})),i.append(d),this.focus=function(){d.focus(),this.fire("focus")}}this.getInputElement=function(){return r},CKEDITOR.env.ie&&(i.setStyle("display","block"),i.setStyle("height",r.$.offsetHeight+2+"px"))},commit:function(){var e=this.getDialog().getParentEditor(),t=this.getInputElement().getFrameDocument().getBody(),a=t.getBogus();a&&a.remove(),t=t.getHtml(),this.getDialog()._.committed=!0,e.fire("pasteDialogCommit",{dataValue:t,dataTransfer:n||i.initPasteDataTransfer()})}}]}]}}));
\ No newline at end of file
CKEDITOR.plugins.add("cloudservices",{requires:"filetools,ajax",onLoad:function(){function e(e,r,n,s){o.call(this,e,r,n),this.customToken=s}var o=CKEDITOR.fileTools.fileLoader;e.prototype=CKEDITOR.tools.extend({},o.prototype),e.prototype.upload=function(e,r){(e=e||this.editor.config.cloudServices_uploadUrl)?o.prototype.upload.call(this,e,r):CKEDITOR.error("cloudservices-no-upload-url")},CKEDITOR.plugins.cloudservices.cloudServicesLoader=e},beforeInit:function(e){var o=e.config.cloudServices_tokenUrl,r={token:null,REFRESH_INTERVAL:e.CLOUD_SERVICES_TOKEN_INTERVAL||36e5,refreshToken:function(){CKEDITOR.ajax.load(o,(function(e){e&&(r.token=e)}))},init:function(){this.refreshToken();var o=window.setInterval(this.refreshToken,this.REFRESH_INTERVAL);e.once("destroy",(function(){window.clearInterval(o)}))}};o?r.init():CKEDITOR.error("cloudservices-no-token-url"),e.on("fileUploadRequest",(function(e){var o=e.data.fileLoader,n=e.data.requestData,s=o.customToken||r.token;o instanceof CKEDITOR.plugins.cloudservices.cloudServicesLoader&&(n.file=n.upload,delete n.upload,s?e.data.fileLoader.xhr.setRequestHeader("Authorization",s):(CKEDITOR.error("cloudservices-no-token"),e.cancel()))}),null,null,6),e.on("fileUploadResponse",(function(e){var o,r=e.data.fileLoader,n=r.xhr;if(r instanceof CKEDITOR.plugins.cloudservices.cloudServicesLoader){e.stop();try{o=JSON.parse(n.responseText),e.data.response=o}catch(e){CKEDITOR.warn("filetools-response-error",{responseText:n.responseText})}}}))}}),CKEDITOR.plugins.cloudservices={cloudServicesLoader:null};
\ No newline at end of file
CKEDITOR.dialog.add("codeSnippet",(function(e){var t,n=e._.codesnippet.langs,a=e.lang.codesnippet,i=document.documentElement.clientHeight,l=[];for(t in l.push([e.lang.common.notSet,""]),n)l.push([n[t],t]);return n=CKEDITOR.document.getWindow().getViewPaneSize(),e=Math.min(n.width-70,800),n=n.height/1.5,650>i&&(n=i-220),{title:a.title,minHeight:200,resizable:CKEDITOR.DIALOG_RESIZE_NONE,contents:[{id:"info",elements:[{id:"lang",type:"select",label:a.language,items:l,setup:function(e){e.ready&&e.data.lang&&this.setValue(e.data.lang),!CKEDITOR.env.gecko||e.data.lang&&e.ready||(this.getInputElement().$.selectedIndex=-1)},commit:function(e){e.setData("lang",this.getValue())}},{id:"code",type:"textarea",label:a.codeContents,setup:function(e){this.setValue(e.data.code)},commit:function(e){e.setData("code",this.getValue())},required:!0,validate:CKEDITOR.dialog.validate.notEmpty(a.emptySnippetError),inputStyle:"cursor:auto;width:"+e+"px;height:"+n+"px;tab-size:4;text-align:left;",class:"cke_source"}]}]}}));
\ No newline at end of file
.hljs{background:#222;display:block;padding:.5em}.ini .hljs-title,.nginx .hljs-title,.profile .hljs-header *{color:#fff}.css .hljs-rules,.diff,.hljs-comment,.hljs-doctype,.hljs-javadoc,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-preprocessor .hljs-title,.hljs-shebang,.hljs-tag,.hljs-template_comment,.profile .hljs-summary,.tex .hljs-special{color:#444}.clojure .hljs-attribute,.coffeescript .hljs-attribute,.diff .hljs-change,.hljs-regexp,.hljs-string,.hljs-symbol,.ini .hljs-value,.smalltalk .hljs-char,.xml .hljs-attribute,.xml .hljs-value{color:#fc3}.hljs-addition,.hljs-number{color:#0c6}.css .funtion,.django .hljs-variable,.go .hljs-constant,.go .hljs-typename,.hljs-built_in,.hljs-flow,.hljs-hexcolor,.hljs-important,.hljs-inheritance,.hljs-literal,.ini .hljs-keyword,.lua .hljs-title,.mel .hljs-variable,.parser3 .hljs-variable,.perl .hljs-variable,.php .hljs-variable,.smalltalk .method,.vhdl .hljs-typename{color:#32aaee}.clojure .hljs-built_in,.css .hljs-attr_selector,.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.css .hljs-tag,.hljs-keyword,.hljs-request,.hljs-status,.hljs-tag .hljs-title,.hljs-winutils,.lisp .hljs-title,.tex .hljs-command{color:#64a}.apache .hljs-tag,.avrasm .hljs-label,.bash .hljs-variable,.css .hljs-keyword,.go .hljs-built_in,.hljs-deletion,.hljs-envvar,.hljs-parent,.hljs-template_tag,.hljs-title,.lisp .hljs-keyword,.lua .hljs-built_in,.nginx .hljs-variable,.objectivec .hljs-class .hljs-id,.rsl .hljs-built_in,.ruby .hljs-constant,.smalltalk .hljs-class,.tail,.tex .hljs-formula,.tex .hljs-formula *,.vala .hljs-constant,.vbscript .hljs-built_in{color:#b16}.apache .hljs-tag,.hljs-phpdoc,.hljs-yardoctag,.ini .hljs-title,.parser3 .hljs-title,.profile .hljs-header{font-weight:700}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.6}.css,.css .hljs-attribute,.css .hljs-value,.diff .hljs-chunk,.erlang *,.erlang_repl *,.haskell *,.hljs,.hljs-container,.hljs-subst,.javascript,.lisp .hljs-number,.lisp .hljs-string,.tail .hljs-params,.xml{color:#aaa}
\ No newline at end of file
.hljs{background:#fff;color:#000;display:block;padding:.5em}.apache .hljs-cbracket,.apache .hljs-tag,.hljs-addition,.hljs-change,.hljs-filter .hljs-argument,.hljs-string,.hljs-tag .hljs-value,.nginx .hljs-built_in,.tex .hljs-formula{color:#888}.apache .hljs-sqbracket,.hljs-comment,.hljs-deletion,.hljs-doctype,.hljs-javadoc,.hljs-pi,.hljs-shebang,.hljs-template_comment{color:#ccc}.apache .hljs-tag,.clojure .hljs-title,.css .hljs-tag,.hljs-flow,.hljs-keyword,.hljs-request,.hljs-status,.hljs-tag .hljs-title,.hljs-winutils,.http .hljs-title,.ini .hljs-title,.lisp .hljs-title,.nginx .hljs-title,.tex .hljs-command{font-weight:700}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#999580}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#d73737}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#b65611}.css .hljs-rules .hljs-attribute,.ruby .hljs-class .hljs-title{color:#cfb017}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#60ac39}.css .hljs-hexcolor{color:#1fad83}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#6684e1}.hljs-keyword,.javascript .hljs-function{color:#b854d4}.hljs{background:#292824;color:#a6a28c;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#7d7a68}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#d73737}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#b65611}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#cfb017}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#60ac39}.css .hljs-hexcolor{color:#1fad83}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#6684e1}.hljs-keyword,.javascript .hljs-function{color:#b854d4}.hljs{background:#fefbec;color:#6e6b5e;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#9c9491}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#f22c40}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#df5320}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#d5911a}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#5ab738}.css .hljs-hexcolor{color:#00ad9c}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#407ee7}.hljs-keyword,.javascript .hljs-function{color:#6666ea}.hljs{background:#2c2421;color:#a8a19f;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#766e6b}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#f22c40}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#df5320}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#d5911a}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#5ab738}.css .hljs-hexcolor{color:#00ad9c}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#407ee7}.hljs-keyword,.javascript .hljs-function{color:#6666ea}.hljs{background:#f1efee;color:#68615e;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#9e8f9e}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#ca402b}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#a65926}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#bb8a35}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#379a37}.css .hljs-hexcolor{color:#159393}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#516aec}.hljs-keyword,.javascript .hljs-function{color:#7b59c0}.hljs{background:#292329;color:#ab9bab;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#776977}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#ca402b}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#a65926}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#bb8a35}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#379a37}.css .hljs-hexcolor{color:#159393}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#516aec}.hljs-keyword,.javascript .hljs-function{color:#7b59c0}.hljs{background:#f7f3f7;color:#695d69;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#7195a8}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#d22d72}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#935c25}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#8a8a0f}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#568c3b}.css .hljs-hexcolor{color:#2d8f6f}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#257fad}.hljs-keyword,.javascript .hljs-function{color:#5d5db1}.hljs{background:#1f292e;color:#7ea2b4;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#5a7b8c}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#d22d72}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#935c25}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#8a8a0f}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#568c3b}.css .hljs-hexcolor{color:#2d8f6f}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#257fad}.hljs-keyword,.javascript .hljs-function{color:#5d5db1}.hljs{background:#ebf8ff;color:#516d7b;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#809980}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#e6193c}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#87711d}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#c3c322}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#29a329}.css .hljs-hexcolor{color:#1999b3}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#3d62f5}.hljs-keyword,.javascript .hljs-function{color:#ad2bee}.hljs{background:#242924;color:#8ca68c;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs-comment,.hljs-title{color:#687d68}.css .hljs-class,.css .hljs-id,.css .hljs-pseudo,.hljs-attribute,.hljs-regexp,.hljs-tag,.hljs-variable,.html .hljs-doctype,.ruby .hljs-constant,.xml .hljs-doctype,.xml .hljs-pi,.xml .hljs-tag .hljs-title{color:#e6193c}.hljs-built_in,.hljs-constant,.hljs-literal,.hljs-number,.hljs-params,.hljs-pragma,.hljs-preprocessor{color:#87711d}.css .hljs-rules .hljs-attribute,.hljs-ruby .hljs-class .hljs-title{color:#c3c322}.hljs-header,.hljs-inheritance,.hljs-string,.hljs-value,.ruby .hljs-symbol,.xml .hljs-cdata{color:#29a329}.css .hljs-hexcolor{color:#1999b3}.coffeescript .hljs-title,.hljs-function,.javascript .hljs-title,.perl .hljs-sub,.python .hljs-decorator,.python .hljs-title,.ruby .hljs-function .hljs-title,.ruby .hljs-title .hljs-keyword{color:#3d62f5}.hljs-keyword,.javascript .hljs-function{color:#ad2bee}.hljs{background:#f0fff0;color:#5e6e5e;display:block;padding:.5em}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs{background:#b7a68e url(brown_papersq.png);display:block;padding:.5em}.clojure .hljs-built_in,.hljs-change,.hljs-flow,.hljs-keyword,.hljs-literal,.hljs-request,.hljs-status,.hljs-winutils,.lisp .hljs-title,.nginx .hljs-title,.tex .hljs-special{color:#059;font-weight:700}.hljs,.hljs-subst,.hljs-tag .hljs-keyword{color:#363c69}.apache .hljs-cbracket,.apache .hljs-tag,.css .hljs-rules .hljs-value,.django .hljs-filter .hljs-argument,.django .hljs-template_tag,.django .hljs-variable,.haskell .hljs-type,.hljs-addition,.hljs-attr_selector,.hljs-built_in,.hljs-envvar,.hljs-javadoc,.hljs-pragma,.hljs-preprocessor,.hljs-pseudo,.hljs-stream,.hljs-string,.hljs-tag .hljs-value,.hljs-title,.ruby .hljs-class .hljs-parent,.ruby .hljs-string,.ruby .hljs-symbol,.ruby .hljs-symbol .hljs-string,.smalltalk .hljs-array,.smalltalk .hljs-class,.smalltalk .hljs-localvars,.sql .hljs-aggregate,.tex .hljs-number{color:#2c009f}.apache .hljs-sqbracket,.hljs-comment,.hljs-deletion,.hljs-doctype,.hljs-pi,.hljs-shebang,.hljs-template_comment,.java .hljs-annotation,.nginx .hljs-built_in,.python .hljs-decorator,.tex .hljs-formula{color:#802022}.apache .hljs-tag,.bash .hljs-variable,.css .hljs-id,.diff .hljs-header,.haskell .hljs-type,.hljs-chunk,.hljs-keyword,.hljs-literal,.hljs-phpdoc,.hljs-title,.hljs-winutils,.rsl .hljs-built_in,.smalltalk .hljs-class,.sql .hljs-aggregate,.tex .hljs-command,.vbscript .hljs-built_in{font-weight:700}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.8}
\ No newline at end of file
.hljs{background:#444;display:block;padding:.5em}.clojure .hljs-built_in,.hljs-change,.hljs-flow,.hljs-keyword,.hljs-literal,.hljs-winutils,.lisp .hljs-title,.nginx .hljs-title,.tex .hljs-special{color:#fff}.hljs,.hljs-subst{color:#ddd}.apache .hljs-cbracket,.apache .hljs-tag,.coffeescript .hljs-attribute,.css .hljs-rules .hljs-value,.django .hljs-filter .hljs-argument,.django .hljs-template_tag,.django .hljs-variable,.haskell .hljs-type,.hljs-addition,.hljs-attr_selector,.hljs-built_in,.hljs-envvar,.hljs-javadoc,.hljs-pragma,.hljs-preprocessor,.hljs-prompt,.hljs-pseudo,.hljs-stream,.hljs-string,.hljs-tag .hljs-value,.hljs-title,.ini .hljs-title,.ruby .hljs-class .hljs-parent,.ruby .hljs-string,.ruby .hljs-symbol,.ruby .hljs-symbol .hljs-string,.smalltalk .hljs-array,.smalltalk .hljs-class,.smalltalk .hljs-localvars,.sql .hljs-aggregate,.tex .hljs-command{color:#d88}.apache .hljs-sqbracket,.hljs-comment,.hljs-deletion,.hljs-doctype,.hljs-pi,.hljs-shebang,.hljs-template_comment,.java .hljs-annotation,.python .hljs-decorator,.tex .hljs-formula{color:#777}.apache .hljs-tag,.bash .hljs-variable,.css .hljs-id,.diff .hljs-header,.haskell .hljs-type,.hljs-chunk,.hljs-keyword,.hljs-literal,.hljs-phpdoc,.hljs-request,.hljs-status,.hljs-title,.hljs-winutils,.rsl .hljs-built_in,.smalltalk .hljs-class,.sql .hljs-aggregate,.tex .hljs-special,.vbscript .hljs-built_in{font-weight:700}.coffeescript .javascript,.javascript .xml,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs{background:#f0f0f0;display:block;padding:.5em}.clojure .hljs-built_in,.hljs,.hljs-subst,.hljs-tag .hljs-title,.lisp .hljs-title,.nginx .hljs-title{color:#000}.apache .hljs-cbracket,.apache .hljs-tag,.asciidoc .hljs-header,.bash .hljs-variable,.coffeescript .hljs-attribute,.django .hljs-variable,.erlang_repl .hljs-function_or_atom,.haml .hljs-symbol,.hljs-addition,.hljs-aggregate,.hljs-constant,.hljs-flow,.hljs-parent,.hljs-pragma,.hljs-preprocessor,.hljs-rules .hljs-value,.hljs-rules .hljs-value .hljs-number,.hljs-stream,.hljs-string,.hljs-tag .hljs-value,.hljs-template_tag,.hljs-title,.markdown .hljs-header,.ruby .hljs-symbol,.ruby .hljs-symbol .hljs-string,.smalltalk .hljs-class,.tex .hljs-command,.tex .hljs-special{color:#800}.asciidoc .hljs-blockquote,.diff .hljs-header,.hljs-annotation,.hljs-chunk,.hljs-comment,.hljs-template_comment,.markdown .hljs-blockquote,.smartquote{color:#888}.asciidoc .hljs-bullet,.asciidoc .hljs-link_url,.go .hljs-constant,.hljs-change,.hljs-date,.hljs-hexcolor,.hljs-literal,.hljs-number,.hljs-regexp,.lasso .hljs-variable,.makefile .hljs-variable,.markdown .hljs-bullet,.markdown .hljs-link_url,.smalltalk .hljs-char,.smalltalk .hljs-symbol{color:#080}.apache .hljs-sqbracket,.asciidoc .hljs-attribute,.asciidoc .hljs-link_label,.clojure .hljs-attribute,.coffeescript .hljs-property,.erlang_repl .hljs-reserved,.haml .hljs-bullet,.hljs-array,.hljs-attr_selector,.hljs-decorator,.hljs-deletion,.hljs-doctype,.hljs-envvar,.hljs-filter .hljs-argument,.hljs-important,.hljs-javadoc,.hljs-label,.hljs-localvars,.hljs-phony,.hljs-pi,.hljs-prompt,.hljs-pseudo,.hljs-shebang,.lasso .hljs-attribute,.markdown .hljs-link_label,.nginx .hljs-built_in,.ruby .hljs-string,.tex .hljs-formula,.vhdl .hljs-attribute{color:#88f}.apache .hljs-tag,.asciidoc .hljs-strong,.bash .hljs-variable,.css .hljs-tag,.go .hljs-typename,.hljs-aggregate,.hljs-built_in,.hljs-id,.hljs-javadoctag,.hljs-keyword,.hljs-phpdoc,.hljs-request,.hljs-status,.hljs-title,.hljs-winutils,.hljs-yardoctag,.markdown .hljs-strong,.smalltalk .hljs-class,.tex .hljs-command{font-weight:700}.asciidoc .hljs-emphasis,.markdown .hljs-emphasis{font-style:italic}.nginx .hljs-built_in{font-weight:400}.coffeescript .javascript,.javascript .xml,.lasso .markup,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}
\ No newline at end of file
.hljs{background:#f8f8ff;color:#000;display:block;padding:.5em}.diff .hljs-header,.hljs-comment,.hljs-javadoc,.hljs-template_comment{color:#408080;font-style:italic}.assignment,.css .rule .hljs-keyword,.hljs-keyword,.hljs-literal,.hljs-subst,.hljs-winutils,.javascript .hljs-title,.lisp .hljs-title{color:#954121}.hljs-hexcolor,.hljs-number{color:#40a070}.hljs-phpdoc,.hljs-string,.hljs-tag .hljs-value,.tex .hljs-formula{color:#219161}.hljs-id,.hljs-title{color:#19469d}.hljs-params{color:#00f}.hljs-subst,.javascript .hljs-title,.lisp .hljs-title{font-weight:400}.haskell .hljs-label,.hljs-class .hljs-title,.tex .hljs-command{color:#458;font-weight:700}.django .hljs-tag .hljs-keyword,.hljs-rules .hljs-property,.hljs-tag,.hljs-tag .hljs-title{color:navy;font-weight:400}.hljs-attribute,.hljs-variable,.instancevar,.lisp .hljs-body{color:teal}.hljs-regexp{color:#b68}.hljs-class{color:#458;font-weight:700}.hljs-symbol,.input_number,.lisp .hljs-keyword,.ruby .hljs-symbol .hljs-keyword,.ruby .hljs-symbol .hljs-string,.ruby .hljs-symbol .keymethods,.tex .hljs-special{color:#990073}.builtin,.constructor,.hljs-built_in,.lisp .hljs-title{color:#0086b3}.hljs-cdata,.hljs-doctype,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-shebang{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}.tex .hljs-formula{opacity:.5}
\ No newline at end of file
.hljs{background:navy;display:block;padding:.5em}.hljs,.hljs-subst{color:#0ff}.apache .hljs-cbracket,.apache .hljs-tag,.clojure .hljs-title,.coffeescript .hljs-attribute,.css .hljs-rules .hljs-value,.css .hljs-rules .hljs-value .hljs-number,.django .hljs-template_tag,.django .hljs-variable,.haskell .hljs-type,.hljs-addition,.hljs-built_in,.hljs-pragma,.hljs-preprocessor,.hljs-string,.hljs-tag .hljs-value,.ruby .hljs-string,.ruby .hljs-symbol,.ruby .hljs-symbol .hljs-string,.smalltalk .hljs-class,.sql .hljs-aggregate,.tex .hljs-command{color:#ff0}.bash .hljs-variable,.clojure .hljs-built_in,.css .hljs-id,.haskell .hljs-type,.hljs-change,.hljs-envvar,.hljs-flow,.hljs-keyword,.hljs-title,.hljs-winutils,.rsl .hljs-built_in,.smalltalk .hljs-class,.sql .hljs-aggregate,.tex .hljs-special,.vbscript .hljs-built_in,.xml .hljs-tag .hljs-title{color:#fff}.apache .hljs-sqbracket,.hljs-comment,.hljs-deletion,.hljs-javadoc,.hljs-phpdoc,.hljs-template_comment,.java .hljs-annotation,.tex .hljs-formula{color:#888}.clojure .hljs-attribute,.hljs-date,.hljs-literal,.hljs-number,.hljs-regexp,.smalltalk .hljs-char,.smalltalk .hljs-symbol{color:#0f0}.diff .hljs-header,.django .hljs-filter .hljs-argument,.hljs-attr_selector,.hljs-chunk,.hljs-prompt,.hljs-pseudo,.hljs-shebang,.nginx .hljs-built_in,.python .hljs-decorator,.smalltalk .hljs-array,.smalltalk .hljs-localvars,.xml .hljs-pi{color:teal}.apache .hljs-tag,.css .hljs-id,.haskell .hljs-type,.hljs-flow,.hljs-keyword,.hljs-request,.hljs-status,.hljs-title,.hljs-winutils,.nginx .hljs-built_in,.rsl .hljs-built_in,.smalltalk .hljs-class,.sql .hljs-aggregate,.tex .hljs-command,.tex .hljs-special,.vbscript .hljs-built_in{font-weight:700}
\ 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.
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