diff --git a/codebase/skins/compact.css b/codebase/skins/compact.css
index 125b677..15824bb 100644
--- a/codebase/skins/compact.css
+++ b/codebase/skins/compact.css
@@ -1,7 +1,7 @@
/*
@license
webix UI v.4.4.0
-This software is allowed to use under GPL or you need to obtain Commercial License
+This software is allowed to use under GPL or you need to obtain Commercial License
to use it in non-GPL project. Please contact sales@webix.com for details
*/
.webix_view{font-family:'PT Sans',Tahoma;font-size:13px;color:#666;-webkit-font-smoothing:antialiased;cursor:default;overflow:hidden;border:0 solid #ddd;background-color:#fff;white-space:normal;-webkit-appearance:none}
@@ -1512,8 +1512,8 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_dbllist button:last-child{margin-left:5%}
.webix_dbllist .bottom_label{font-size:10px;text-transform:uppercase;background:#ededed;padding-left:13px}
.webix_invalid .webix_list{background:#f8e2e2}
-@font-face{font-family:'PT Sans';font-style:normal;font-weight:400;src:local('PT Sans'),local('PTSans-Regular'),url(../fonts/PTS-webfont.eot) format('embedded-opentype'),url(../fonts/PTS-webfont.woff) format('woff'),url(../fonts/PTS-webfont.ttf) format('truetype')}
-@font-face{font-family:'PT Sans';font-style:normal;font-weight:700;src:local('PT Sans Bold'),local('PTSans-Bold'),url(../fonts/PTS-bold.eot) format('embedded-opentype'),url(../fonts/PTS-bold.woff) format('woff'),url(../fonts/PTS-bold.ttf) format('truetype')}
+@font-face{font-family:'PT Sans';font-style:normal;font-weight:400;src:local('PT Sans'),local('PTSans-Regular'),url(../fonts/PTS-webfont.woff) format('woff')}
+@font-face{font-family:'PT Sans';font-style:normal;font-weight:700;src:local('PT Sans Bold'),local('PTSans-Bold'),url(../fonts/PTS-bold.woff) format('woff')}
.mainFont{font-family:'PT Sans',Tahoma;font-size:13px;color:#666}
.webix_layout_toolbar.webix_toolbar{color:#fff;font-size:16px;background:#3498db}
.webix_layout_toolbar.webix_toolbar .webix_el_button,.webix_layout_toolbar.webix_toolbar .webix_el_label,.webix_layout_toolbar.webix_toolbar .webix_inp_label{color:#fff}
@@ -1760,4 +1760,4 @@ body.webix_print *{visibility:hidden}
.webix_input_icon,.webix_view{box-sizing:content-box}
.webix_view.webix_el_label{box-sizing:border-box}
.webix_inp_label,.webix_inp_top_label,.webix_label_right{margin-bottom:0}
-.webix_view table{border-collapse:initial}
\ No newline at end of file
+.webix_view table{border-collapse:initial}
diff --git a/codebase/skins/debug/compact.css b/codebase/skins/debug/compact.css
index 2b6211c..a640424 100644
--- a/codebase/skins/debug/compact.css
+++ b/codebase/skins/debug/compact.css
@@ -7293,13 +7293,13 @@ label.webix_required:after {
font-family: 'PT Sans';
font-style: normal;
font-weight: 400;
- src: local('PT Sans'), local('PTSans-Regular'), url('../../fonts/PTS-webfont.eot') format('embedded-opentype'), url('../../fonts/PTS-webfont.woff') format('woff'), url('../../fonts/PTS-webfont.ttf') format('truetype');
+ src: local('PT Sans'), local('PTSans-Regular'), url('../../fonts/PTS-webfont.woff') format('woff');
}
@font-face {
font-family: 'PT Sans';
font-style: normal;
font-weight: 700;
- src: local('PT Sans Bold'), local('PTSans-Bold'), url('../../fonts/PTS-bold.eot') format('embedded-opentype'), url('../../fonts/PTS-bold.woff') format('woff'), url('../../fonts/PTS-bold.ttf') format('truetype');
+ src: local('PT Sans Bold'), local('PTSans-Bold'), url('../../fonts/PTS-bold.woff') format('woff');
}
.mainFont {
font-family: 'PT Sans', Tahoma;
diff --git a/fonts/PTS-bold.woff b/fonts/PTS-bold.woff
new file mode 100644
index 0000000..830b063
Binary files /dev/null and b/fonts/PTS-bold.woff differ
diff --git a/fonts/PTS-webfont.woff b/fonts/PTS-webfont.woff
new file mode 100644
index 0000000..c183afc
Binary files /dev/null and b/fonts/PTS-webfont.woff differ
diff --git a/fonts/font-license.txt b/fonts/font-license.txt
new file mode 100644
index 0000000..3e33797
--- /dev/null
+++ b/fonts/font-license.txt
@@ -0,0 +1,14 @@
+## Font Awesome
+
+ Copyright (C) 2012 by Dave Gandy
+
+ Author: Dave Gandy
+ License: SIL (http://scripts.sil.org/OFL)
+ Homepage: http://fortawesome.github.com/Font-Awesome/
+
+
+
+## PT Sans Free
+
+ Copyright © 2009 ParaType Ltd.
+ License: Free Font License v1.00
\ No newline at end of file
diff --git a/fonts/fontawesome-webfont.eot b/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..e9f60ca
Binary files /dev/null and b/fonts/fontawesome-webfont.eot differ
diff --git a/fonts/fontawesome-webfont.svg b/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..855c845
--- /dev/null
+++ b/fonts/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+
+
+
diff --git a/fonts/fontawesome-webfont.ttf b/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000..35acda2
Binary files /dev/null and b/fonts/fontawesome-webfont.ttf differ
diff --git a/fonts/fontawesome-webfont.woff b/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000..400014a
Binary files /dev/null and b/fonts/fontawesome-webfont.woff differ
diff --git a/fonts/fontawesome-webfont.woff2 b/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000..4d13fc6
Binary files /dev/null and b/fonts/fontawesome-webfont.woff2 differ
diff --git a/i18n/be.js b/i18n/be.js
new file mode 100644
index 0000000..6c29c7d
--- /dev/null
+++ b/i18n/be.js
@@ -0,0 +1,83 @@
+webix.i18n.locales["be-BY"]={
+ groupDelimiter:" ",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2,
+
+ dateFormat:"%d.%m.%Y",
+ timeFormat:"%H:%i",
+ longDateFormat:"%d %F %Y",
+ fullDateFormat:"%d.%m.%Y %H:%i",
+
+ price:"{obj} руб.",
+ priceSettings:{
+ groupSize:3,
+ groupDelimiter:" ",
+ decimalDelimiter:"",
+ decimalSize:0
+ },
+
+ calendar:{
+ monthFull:["Студзень", "Люты", "Сакавік", "Красавік", "Травень", "Чэрвень", "Ліпень", "Жнівень", "Верасень", "Кастрычнік", "Лістапад", "Снежань"],
+ monthShort:["Студз", "Лют", "Сак", "Крас", "Трав", "Чэр", "Ліп", "Жнів", "Вер", "Каст", "Ліст", "Снеж"],
+ dayFull:[ "Нядзеля", "Панядзелак", "Аўторак", "Серада", "Чацвер", "Пятніца", "Субота"],
+ dayShort:["Нд", "Пн", "Аўт", "Ср", "Чцв", "Пт", "Сб"],
+ hours: "Гадзіны",
+ minutes: "Хвіліны",
+ done: "Гатова",
+ today: "Cёння",
+ clear: "Ачысціць"
+ },
+
+ controls:{
+ select:"Выбраць",
+ invalidMessage:"Няправільнае значэнне"
+ },
+ dataExport:{
+ page:"Старонка",
+ of:"з"
+ },
+ PDFviewer:{
+ of:"з",
+ automaticZoom:"Аўтаматычны зум",
+ actualSize:"Сапраўдны памер",
+ pageFit:"Памер старонкі",
+ pageWidth:"Шырыня старонкі",
+ pageHeight:"Вышыня старонкі"
+ },
+ aria:{
+ calendar:"Каляндар",
+ increaseValue:"Павялічыць значэнне",
+ decreaseValue:"Паменшыць значэнне",
+ navMonth:["Папярэдні месяц", "Наступны месяц"],
+ navYear:["Папярэдні год", "Наступны год"],
+ navDecade:["Папярэднія дзесяць год", "Наступныя дзесяць год"],
+ dateFormat:"%d %F %Y",
+ monthFormat:"%F %Y",
+ yearFormat:"%Y",
+ hourFormat:"Hours: %h",
+ minuteFormat:"Гадзіны: %i",
+ removeItem:"Прыбраць элемент",
+ pages:["Першая старонка", "Папярэдняя старонка", "Наступная старонка", "Апошняя старонка"],
+ page:"Старонка",
+ headermenu:"Меню загалоўка",
+ openGroup:"Адкрыць групу слупкоў",
+ closeGroup:"Закрыць групу слупкоў",
+ closeTab:"Закрыць укладку",
+ showTabs:"Паказаць больш укладак",
+ resetTreeMap:"Вярнуцца да першапачатковага выгляду",
+ navTreeMap:"Падняцца на ўзровень вышэй",
+ nextTab:"Наступная ўкладка",
+ prevTab:"Папярэдняя ўкладка",
+ multitextSection:"Дадаць элемент",
+ multitextextraSection:"Прыбраць элемент",
+ showChart:"Паказаць графік",
+ hideChart:"Схаваць графік",
+ resizeChart:"Змяніць памер графіка"
+ },
+ richtext:{
+ underline: "Падкрэсліванне",
+ bold: "Паўтлусты",
+ italic: "Курсіў"
+ }
+};
\ No newline at end of file
diff --git a/i18n/de.js b/i18n/de.js
new file mode 100644
index 0000000..1cf8323
--- /dev/null
+++ b/i18n/de.js
@@ -0,0 +1,83 @@
+/*German (Germany) locale*/
+webix.i18n.locales["de-DE"] = {
+ groupDelimiter:".",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2,
+ dateFormat:"%d.%n.%Y",
+ timeFormat:"%H:%i",
+ longDateFormat:"%j. %F %Y",
+ fullDateFormat:"%j. %F %Y %H:%i",
+ am:null,
+ pm:null,
+ price:"{obj} €",
+ priceSettings:{
+ groupDelimiter:".",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2
+ },
+ calendar:{
+ monthFull:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],
+ monthShort:["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],
+ dayFull:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],
+ dayShort:["So","Mo","Di","Mi","Do","Fr","Sa"],
+ hours: "Stunden",
+ minutes: "Minuten",
+ done:"Fertig",
+ clear: "Entfernen",
+ today: "Heute"
+ },
+
+ controls:{
+ select:"Wählen",
+ invalidMessage:"Irreguläre Eingabewert"
+ },
+ dataExport:{
+ page:"Seite",
+ of:"aus"
+ },
+ PDFviewer:{
+ of:"aus",
+ automaticZoom:"Automatisch Zoom",
+ actualSize:"Aktuelles Ausmaß",
+ pageFit:"Seite Ausmaß",
+ pageWidth:"Seite Breite",
+ pageHeight:"Seite Höhe"
+ },
+ aria:{
+ calendar:"Kalender",
+ increaseValue:"Wert erhöhen",
+ decreaseValue:"Wert verringern",
+ navMonth:["Vorheriger Monat", "Nächsten Monat"],
+ navYear:["Vorheriges Jahr", "Nächstes Jahr"],
+ navDecade:["Zurück Jahrzehnt", "Als nächstes Jahrzehnt"],
+ dateFormat:"%j. %F %Y",
+ monthFormat:"%F %Y",
+ yearFormat:"%Y",
+ hourFormat:"Stunden: %H",
+ minuteFormat:"Minuten: %i",
+ removeItem:"Element entfernen",
+ pages:["Erste Seite", "Vorherige Seite", "Folgeseite", "Letzte Seite"],
+ page:"Seite",
+ headermenu:"Titelmenü",
+ openGroup:"Öffnen Spaltengruppe ",
+ closeGroup:"Schließen Spaltengruppe ",
+ closeTab:"Tab schließen",
+ showTabs:"Weitere Tabs",
+ resetTreeMap:"Zurück zur ursprünglichen Ansicht",
+ navTreeMap:"Aufleveln",
+ nextTab:"Weiter tab",
+ prevTab:"Zurück tab",
+ multitextSection:"Element hinzufügen",
+ multitextextraSection:"Element entfernen",
+ showChart:"Chart anzeigen",
+ hideChart:"Chart verstecken",
+ resizeChart:"Chart Größe ändern"
+ },
+ richtext:{
+ underline: "Unterstreichen",
+ bold: "Fettgedruckt",
+ italic: "Kursiv"
+ }
+};
diff --git a/i18n/en.js b/i18n/en.js
new file mode 100644
index 0000000..c0ab97f
--- /dev/null
+++ b/i18n/en.js
@@ -0,0 +1,86 @@
+webix.i18n.locales["en-US"]={
+ groupDelimiter:",",
+ groupSize:3,
+ decimalDelimiter:".",
+ decimalSize:2,
+
+ dateFormat:"%m/%d/%Y",
+ timeFormat:"%h:%i %A",
+ longDateFormat:"%d %F %Y",
+ fullDateFormat:"%m/%d/%Y %h:%i %A",
+ am:["am","AM"],
+ pm:["pm","PM"],
+
+ price:"${obj}",
+ priceSettings:{
+ groupDelimiter:",",
+ groupSize:3,
+ decimalDelimiter:".",
+ decimalSize:2
+ },
+ fileSize: ["b","Kb","Mb","Gb","Tb","Pb","Eb"],
+
+ calendar: {
+ monthFull:["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ monthShort:["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ dayFull:["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ dayShort:["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ hours: "Hours",
+ minutes: "Minutes",
+ done:"Done",
+ clear: "Clear",
+ today: "Today"
+ },
+
+ controls:{
+ select:"Select",
+ invalidMessage: "Invalid input value"
+ },
+ dataExport:{
+ page:"Page",
+ of:"of"
+ },
+ PDFviewer:{
+ of:"of",
+ automaticZoom:"Automatic Zoom",
+ actualSize:"Actual Size",
+ pageFit:"Page Fit",
+ pageWidth:"Page Width",
+ pageHeight:"Page Height"
+ },
+ aria:{
+ calendar:"Calendar",
+ increaseValue:"Increase value",
+ decreaseValue:"Decrease value",
+ navMonth:["Previous month", "Next month"],
+ navYear:["Previous year", "Next year"],
+ navDecade:["Previous decade", "Next decade"],
+ dateFormat:"%d %F %Y",
+ monthFormat:"%F %Y",
+ yearFormat:"%Y",
+ hourFormat:"Hours: %h %A",
+ minuteFormat:"Minutes: %i",
+ removeItem:"Remove item",
+ pages:["First page", "Previous page", "Next page", "Last page"],
+ page:"Page",
+ headermenu:"Header menu",
+ openGroup:"Open column group",
+ closeGroup:"Close column group",
+ closeTab:"Close tab",
+ showTabs:"Show more tabs",
+ resetTreeMap:"Reset tree map",
+ navTreeMap:"Level up",
+ nextTab:"Next tab",
+ prevTab:"Previous tab",
+ multitextSection:"Add section",
+ multitextextraSection:"Remove section",
+ showChart:"Show chart",
+ hideChart:"Hide chart",
+ resizeChart:"Resize chart"
+ },
+ richtext:{
+ underline: "Underline",
+ bold: "Bold",
+ italic: "Italic"
+ }
+};
\ No newline at end of file
diff --git a/i18n/es.js b/i18n/es.js
new file mode 100644
index 0000000..cb24058
--- /dev/null
+++ b/i18n/es.js
@@ -0,0 +1,83 @@
+/*Spanish (Spain, International Sort) locale*/
+webix.i18n.locales["es-ES"] = {
+ groupDelimiter:".",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2,
+ dateFormat:"%d/%n/%Y",
+ timeFormat:"%G:%i",
+ longDateFormat:"%d %F %Y",
+ fullDateFormat:"%d %F %Y %G:%i",
+ am:null,
+ pm:null,
+ price:"{obj} €",
+ priceSettings:{
+ groupDelimiter:".",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2
+ },
+ calendar:{
+ monthFull:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],
+ monthShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],
+ dayFull:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],
+ dayShort:["dom","lun","mar","mié","jue","vie","sáb"],
+ hours: "Horas",
+ minutes: "Minutos",
+ done:"Listo",
+ clear: "Reinicio",
+ today: "Hoy"
+ },
+
+ controls:{
+ select:"Seleccione",
+ invalidMessage: "Valor de entrada no válido"
+ },
+ dataExport:{
+ page:"Página",
+ of:"de"
+ },
+ PDFviewer:{
+ of:"de",
+ automaticZoom:"Zoom automático",
+ actualSize:"Tamaño real",
+ pageFit:"Tamaño de página",
+ pageWidth:"Ancho de página",
+ pageHeight:"Altura de la página"
+ },
+ aria:{
+ calendar:"Сalendario",
+ increaseValue:"Aumentar el valor",
+ decreaseValue:"Disminuye el valor",
+ navMonth:["Mes anterior", "Próximo mes"],
+ navYear:["Año anterior", "Próximo año"],
+ navDecade:["Década anterior", "Próxima década"],
+ dateFormat:"%d %F %Y",
+ monthFormat:"%F %Y",
+ yearFormat:"%Y",
+ hourFormat:"Horas: %G",
+ minuteFormat:"Minutos: %i",
+ removeItem:"Retire el elemento",
+ pages:["Primera página", "Pagina anterior", "Siguiente página", "Última página"],
+ page:"Página",
+ headermenu:"Menú de títulos",
+ openGroup:"Grupo de columnas abiertas",
+ closeGroup:"Primer grupo de columnas",
+ closeTab:"Cerrar tab",
+ showTabs:"Mostrar más tabs",
+ resetTreeMap:"Volver a la vista original",
+ navTreeMap:"Elevar a mismo nivel",
+ nextTab:"Siguiente tab",
+ prevTab:"Tab anterior",
+ multitextSection:"Añadir elemento",
+ multitextextraSection:"Retire el elemento",
+ showChart:"Espectáculo chart",
+ hideChart:"Esconder chart",
+ resizeChart:"Cambiar el tamaño el chart"
+ },
+ richtext:{
+ underline: "Subrayar",
+ bold: "Negrita",
+ italic: "Itálico"
+ }
+};
diff --git a/i18n/fr.js b/i18n/fr.js
new file mode 100644
index 0000000..ce672d2
--- /dev/null
+++ b/i18n/fr.js
@@ -0,0 +1,78 @@
+webix.i18n.locales["fr-FR"]={
+ groupDelimiter:" ",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2,
+
+ dateFormat:"%d/%m/%Y",
+ timeFormat:"%H:%i",
+ longDateFormat:"%d %F %Y",
+ fullDateFormat:"%d.%m.%Y %H:%i",
+
+ price:"{obj} €",
+ priceSettings:null, //use number defaults
+
+ calendar:{
+ monthFull:["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"],
+ monthShort:["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Aôu", "Sep", "Oct", "Nov", "Déc"],
+ dayFull:["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
+ dayShort:["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"],
+ hours: "Heures",
+ minutes: "Minutes",
+ done:"Fini",
+ clear: "Effacer",
+ today: "Aujourd'hui"
+ },
+
+ controls:{
+ select:"Sélectionner",
+ invalidMessage:"Valeur d'entrée invalide"
+ },
+ dataExport:{
+ page:"Page",
+ of:"sur"
+ },
+ PDFviewer:{
+ of:"sur",
+ automaticZoom:"Zoom automatique",
+ actualSize:"Taille actuelle",
+ pageFit:"Taille de la page",
+ pageWidth:"Largeur de la page",
+ pageHeight:"Hauteur de page"
+ },
+ aria:{
+ calendar:"Сalendrier",
+ increaseValue:"Augmenter la valeur",
+ decreaseValue:"Diminution de la valeur",
+ navMonth:["Le mois précédent", "Le mois prochain"],
+ navYear:["Année précédente", "L'année prochaine"],
+ navDecade:["Décennie précédente", "Suivant décennie"],
+ dateFormat:"%d %F %Y",
+ monthFormat:"%F %Y",
+ yearFormat:"%Y",
+ hourFormat:"Heures: %H",
+ minuteFormat:"Minutes: %i",
+ removeItem:"Retirer l'élément",
+ pages:["Première page", "Page précédente", "Page suivante", "Dernière page"],
+ page:"Page",
+ headermenu:"Menu de titre",
+ openGroup:"Ouvrir groupe de colonnes ",
+ closeGroup:"Fermer groupe de colonnes",
+ closeTab:"Fermer tab",
+ showTabs:"Montrer plus tabs",
+ resetTreeMap:"Revenir à la vue originale",
+ navTreeMap:"Niveau supérieur",
+ nextTab:"Prochain tab",
+ prevTab:"Précédent tab",
+ multitextSection:"Ajouter l'élément",
+ multitextextraSection:"Retirer l'élément",
+ showChart:"Montrer chart",
+ hideChart:"Cacher chart",
+ resizeChart:"Redimensionner chart"
+ },
+ richtext:{
+ underline: "Souligner",
+ bold: "Gras",
+ italic: "Italique"
+ }
+};
\ No newline at end of file
diff --git a/i18n/it.js b/i18n/it.js
new file mode 100644
index 0000000..1151c04
--- /dev/null
+++ b/i18n/it.js
@@ -0,0 +1,83 @@
+/*Italian (Italy) locale*/
+webix.i18n.locales["it-IT"] = {
+ groupDelimiter:".",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2,
+ dateFormat:"%d/%n/%Y",
+ timeFormat:"%H:%i",
+ longDateFormat:"%j %F %Y",
+ fullDateFormat:"%j %F %Y %H:%i",
+ am:null,
+ pm:null,
+ price:"€ {obj}",
+ priceSettings:{
+ groupDelimiter:".",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2
+ },
+ calendar:{
+ monthFull:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],
+ monthShort:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],
+ dayFull:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],
+ dayShort:["dom","lun","mar","mer","gio","ven","sab"],
+ hours: "Orario",
+ minutes: "Minuti",
+ done:"Pronto",
+ clear: "Pulisci",
+ today: "Oggi"
+ },
+
+ controls:{
+ select:"Selezionare",
+ invalidMessage:"Valore di input non valido"
+ },
+ dataExport:{
+ page:"Pagina",
+ of:"di"
+ },
+ PDFviewer:{
+ of:"di",
+ automaticZoom:"Automatik Zoom",
+ actualSize:"Dimensione reale",
+ pageFit:"Dimensioni della pagina",
+ pageWidth:"Larghezza della pagina",
+ pageHeight:"Altezza della pagina"
+ },
+ aria:{
+ calendar:"Calendario",
+ increaseValue:"Aumentare il valore",
+ decreaseValue:"Riduzione valore",
+ navMonth:["Il mese scorso", "Il prossimo mese"],
+ navYear:["L'anno scorso", "L'anno prossimo"],
+ navDecade:["Decennio precedente", "Prossimo decennio"],
+ dateFormat:"%j %F %Y",
+ monthFormat:"%F %Y",
+ yearFormat:"%Y",
+ hourFormat:"Orario: %H",
+ minuteFormat:"Minuti: %i",
+ removeItem:"Rimuovere l'elemento",
+ pages:["Prima pagina", "Pagina precedente", "Pagina successiva", "Ultima pagina"],
+ page:"Pagina",
+ headermenu:"Menu del titolo",
+ openGroup:"Aperto gruppo di colonne",
+ closeGroup:"Chiudi gruppo di colonne",
+ closeTab:"Chiudi tab",
+ showTabs:"Mostra di più tabs",
+ resetTreeMap:"Tornare alla vista originale",
+ navTreeMap:"Livello superiore",
+ nextTab:"Tab prossimo",
+ prevTab:"Tab precedente",
+ multitextSection:"Aggiungi elemento",
+ multitextextraSection:"Rimuovere l'elemento",
+ showChart:"Mostrare chart",
+ hideChart:"Nascondere chart",
+ resizeChart:"Ridimensionare chart"
+ },
+ richtext:{
+ underline: "Sottolineare",
+ bold: "Grassetto",
+ italic: "Corsivo"
+ }
+};
diff --git a/i18n/ja.js b/i18n/ja.js
new file mode 100644
index 0000000..20f4ec7
--- /dev/null
+++ b/i18n/ja.js
@@ -0,0 +1,83 @@
+webix.i18n.locales["ja-JP"]={
+ groupDelimiter:",",
+ groupSize:3,
+ decimalDelimiter:".",
+ decimalSize:2,
+
+ dateFormat:"%Y.%m.%d",
+ timeFormat:"%H:%i",
+ longDateFormat:"%Y年%m月%d日",
+ fullDateFormat:"%Y.%m.%d %H:%i",
+
+ price:"¥{obj}",
+ priceSettings:{
+ groupSize:3,
+ groupDelimiter:",",
+ decimalDelimiter:"",
+ decimalSize:0
+ },
+
+ calendar:{
+ monthFull:["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ monthShort:[ "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ dayFull:["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"],
+ dayShort:["日", "月", "火", "水", "木", "金", "土"],
+ hours: "営業時間",
+ minutes: "分",
+ done: "レディー",
+ clear: "削除する",
+ today: "今日"
+ },
+
+ controls:{
+ select:"選択する",
+ invalidMessage: "無効な入力値"
+ },
+ dataExport:{
+ page:"ページ",
+ of:"から"
+ },
+ PDFviewer:{
+ of:"から",
+ automaticZoom:"自動ズーム",
+ actualSize:"実サイズ",
+ pageFit:"ページサイズ",
+ pageWidth:"ページ幅",
+ pageHeight:"ページの高さ"
+ },
+ aria:{
+ calendar:"カレンダー",
+ increaseValue:"増加値",
+ decreaseValue:"数字を小さく",
+ navMonth:["前の月", "来月"],
+ navYear:["前年", "来年"],
+ navDecade:["前の十年", "次の10年"],
+ dateFormat:"%Y年%m月%d日",
+ monthFormat:"%Y年%m月",
+ yearFormat:"%Y年",
+ hourFormat:"営業時間: %H",
+ minuteFormat:"分: %i",
+ removeItem:"要素を削除します",
+ pages:["一ページ目", "前のページ", "次のページ", "最後のページ"],
+ page:"ページ",
+ headermenu:"ヘッダメニュー",
+ openGroup:"オープン列グループ",
+ closeGroup:"閉じる列グループ",
+ closeTab:"タブを閉じます",
+ showTabs:"複数のタブを表示します",
+ resetTreeMap:"元の表示に戻ります",
+ navTreeMap:"レベルパック",
+ nextTab:"次のタブ",
+ prevTab:"前のタブ",
+ multitextSection:"要素を追加します。",
+ multitextextraSection:"要素を削除します",
+ showChart:"靴チャート",
+ hideChart:"隠すチャート",
+ resizeChart:"グラフのサイズを変更"
+ },
+ richtext:{
+ underline: "アンダーライン",
+ bold: "大胆な",
+ italic: "イタリック"
+ }
+};
\ No newline at end of file
diff --git a/i18n/pt.js b/i18n/pt.js
new file mode 100644
index 0000000..aea4313
--- /dev/null
+++ b/i18n/pt.js
@@ -0,0 +1,84 @@
+webix.i18n.locales["pt-BR"] = {
+ groupDelimiter:".",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2,
+
+ dateFormat:"%d/%m/%Y",
+ timeFormat:"%G:%i",
+ longDateFormat:"%d de %F de %Y",
+ fullDateFormat:"%d de %F de %Y %G:%i",
+
+ am:null,
+ pm:null,
+ price:"R$ {obj}",
+ priceSettings:{
+ groupDelimiter:".",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2
+ },
+ fileSize: ["b","Kb","Mb","Gb","Tb","Pb","Eb"],
+ calendar:{
+ monthFull:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],
+ monthShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],
+ dayFull:["Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado"],
+ dayShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],
+ hours: "Horas",
+ minutes: "Minutos",
+ done:"Feito",
+ clear: "Limpar",
+ today: "Hoje"
+ },
+ controls:{
+ select:"Selecionar",
+ invalidMessage: "Valor de entrada inválido"
+ },
+ dataExport:{
+ page:"Página",
+ of:"de"
+ },
+ PDFviewer:{
+ of:"de",
+ automaticZoom:"Zoom automático",
+ actualSize:"Tamanho atual",
+ pageFit:"Tamanho da página",
+ pageWidth:"Largura da página",
+ pageHeight:"Altura da página"
+ },
+ aria:{
+ calendar:"Calendário",
+ increaseValue:"Aumentar o valor",
+ decreaseValue:"Diminuir o valor",
+ navMonth:["Mês anterior", "Próximo mês"],
+ navYear:["Ano anterior", "Próximo ano"],
+ navDecade:["Década anterior", "Próxima década"],
+ dateFormat:"%d de %F de %Y",
+ monthFormat:"%F de %Y",
+ yearFormat:"%Y",
+ hourFormat:"Horas: %G",
+ minuteFormat:"Minutos: %i",
+ removeItem:"Remover elemento",
+ pages:["Primeira página", "Página anterior", "Próxima página", "Última página"],
+ page:"Página",
+ headermenu:"Menu de títulos",
+ openGroup:"Grupo coluna aberta",
+ closeGroup:"Fechar grupo de colunas",
+ closeTab:"Fechar tab",
+ showTabs:"Mostre mais tabs",
+ resetTreeMap:"Мoltar à vista original",
+ navTreeMap:"Upar",
+ nextTab:"Próximo tab",
+ prevTab:"Anterior tab",
+ multitextSection:"Adicionar elemento",
+ multitextextraSection:"Remover elemento",
+ showChart:"Exposição chart",
+ hideChart:"Esconder chart",
+ resizeChart:"Redimensionar chart"
+ },
+ richtext:{
+ underline: "Sublinhado",
+ bold: "Negrito",
+ italic: "itálico"
+ }
+};
diff --git a/i18n/ru.js b/i18n/ru.js
new file mode 100644
index 0000000..2d1e176
--- /dev/null
+++ b/i18n/ru.js
@@ -0,0 +1,78 @@
+webix.i18n.locales["ru-RU"]={
+ groupDelimiter:" ",
+ groupSize:3,
+ decimalDelimiter:",",
+ decimalSize:2,
+
+ dateFormat:"%d.%m.%Y",
+ timeFormat:"%H:%i",
+ longDateFormat:"%d %F %Y",
+ fullDateFormat:"%d.%m.%Y %H:%i",
+
+ price:"{obj} руб.",
+ priceSettings:null, //use number defaults
+
+ calendar:{
+ monthFull:["Январь", "Февраль", "Март", "Апрель", "Maй", "Июнь", "Июль", "Август", "Сентябрь", "Oктябрь", "Ноябрь", "Декабрь"],
+ monthShort:["Янв", "Фев", "Maр", "Aпр", "Maй", "Июн", "Июл", "Aвг", "Сен", "Окт", "Ноя", "Дек"],
+ dayFull:[ "Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"],
+ dayShort:["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
+ hours: "Часы",
+ minutes: "Минуты",
+ done: "Гoтовo",
+ clear: "Очистить",
+ today: "Сегодня"
+ },
+
+ controls:{
+ select:"Выбрать",
+ invalidMessage: "Неправильное значение"
+ },
+ dataExport:{
+ page:"Страница",
+ of:"из"
+ },
+ PDFviewer:{
+ of:"из",
+ automaticZoom:"Автоматический зум",
+ actualSize:"Настоящий размер",
+ pageFit:"Размер страницы",
+ pageWidth:"Ширина страницы",
+ pageHeight:"Высота страницы"
+ },
+ aria:{
+ calendar:"Календарь",
+ increaseValue:"Увеличить значение",
+ decreaseValue:"Уменьшить значение",
+ navMonth:["Предыдущий месяц", "Следующий месяц"],
+ navYear:["Предыдущий год", "Следующий год"],
+ navDecade:["Предыдущие десять лет", "Следующие десять лет"],
+ dateFormat:"%d %F %Y",
+ monthFormat:"%F %Y",
+ yearFormat:"%Y",
+ hourFormat:"Часы: %H",
+ minuteFormat:"Минуты: %i",
+ removeItem:"Удалить элемент",
+ pages:["Первая страница", "Предыдущая страница", "Следующая страница", "Последняя страница"],
+ page:"Страница",
+ headermenu:"Меню шапки таблицы",
+ openGroup:"Развернуть группу столбцов",
+ closeGroup:"Свернуть группу столбцов",
+ closeTab:"Закрыть вкладку",
+ showTabs:"Показать больше вкладок",
+ resetTreeMap:"Вернуться к первоначальному представлению",
+ navTreeMap:"Перейти на уровень выше",
+ nextTab:"Следующая вкладка",
+ prevTab:"Предыдущая вкладка",
+ multitextSection:"Добавить элемент",
+ multitextextraSection:"Удалить элемент",
+ showChart:"Показать чарт",
+ hideChart:"Спрятать чарт",
+ resizeChart:"Изменить размер чарта"
+ },
+ richtext:{
+ underline: "Подчеркивание",
+ bold: "Жирный",
+ italic: "Курсив"
+ }
+};
\ No newline at end of file
diff --git a/i18n/zh.js b/i18n/zh.js
new file mode 100644
index 0000000..e126fd0
--- /dev/null
+++ b/i18n/zh.js
@@ -0,0 +1,83 @@
+/*Chinese (Simplified, PRC) locale*/
+webix.i18n.locales["zh-CN"] = {
+ groupDelimiter:",",
+ groupSize:3,
+ decimalDelimiter:".",
+ decimalSize:2,
+ dateFormat:"%Y/%m/%j",
+ timeFormat:"%G:%i",
+ longDateFormat:"%Y'年'%m'月'%j'日'",
+ fullDateFormat:"%Y'年'%m'月'%j'日' %G:%i",
+ am:["上午","上午"],
+ pm:["下午","下午"],
+ price:"¥{obj}",
+ priceSettings:{
+ groupDelimiter:",",
+ groupSize:3,
+ decimalDelimiter:".",
+ decimalSize:2
+ },
+ calendar:{
+ monthFull:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],
+ monthShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],
+ dayFull:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],
+ dayShort:["周日","周一","周二","周三","周四","周五","周六"],
+ hours: "小时",
+ minutes: "分钟",
+ done:"完成",
+ clear: "清除",
+ today: "今天"
+ },
+
+ controls:{
+ select:"选择",
+ invalidMessage: "无效的输入值"
+ },
+ dataExport:{
+ page:"页",
+ of:"从"
+ },
+ PDFviewer:{
+ of:"从",
+ automaticZoom:"自动设置页面大小",
+ actualSize:"实际尺寸",
+ pageFit:"页面大小",
+ pageWidth:"页面宽度",
+ pageHeight:"页面高度"
+ },
+ aria:{
+ calendar:"日历",
+ increaseValue:"增加值",
+ decreaseValue:"减少值",
+ navMonth:["上个月", "下个月"],
+ navYear:["上年", "明年"],
+ navDecade:["过去十年", "下个十年"],
+ dateFormat:"%Y'年'%m'月'%j'日'",
+ monthFormat:"%Y'年'%m'月",
+ yearFormat:"%Y'年",
+ hourFormat:"小时: %G",
+ minuteFormat:"分钟: %i",
+ removeItem:"删除元素",
+ pages:["第一页", "上一页", "下一页", "最后一页"],
+ page:"页",
+ headermenu:"标题菜单",
+ openGroup:"打开栏目组",
+ closeGroup:"关闭栏目组",
+ closeTab:"关闭标签",
+ showTabs:"显示更多选项卡",
+ resetTreeMap:"回到原来的视图",
+ navTreeMap:"升级",
+ nextTab:"下一个标签",
+ prevTab:"前一个标签",
+ multitextSection:"加元",
+ multitextextraSection:"删除元素",
+ showChart:"显示图表",
+ hideChart:"隐藏图表",
+ resizeChart:"调整图"
+ },
+ richtext:{
+ underline: "强调",
+ bold: "粗體",
+ italic: "斜体"
+ }
+};
diff --git a/legacy/excanvas/AUTHORS.txt b/legacy/excanvas/AUTHORS.txt
new file mode 100644
index 0000000..f3348aa
--- /dev/null
+++ b/legacy/excanvas/AUTHORS.txt
@@ -0,0 +1,10 @@
+ExplorerCanvas
+
+Google Open Source:
+
+
+
+Developers:
+ Emil A Eklund
+ Erik Arvidsson
+ Glen Murphy
\ No newline at end of file
diff --git a/legacy/excanvas/COPYING.txt b/legacy/excanvas/COPYING.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/legacy/excanvas/COPYING.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/legacy/excanvas/README.txt b/legacy/excanvas/README.txt
new file mode 100644
index 0000000..9e8268b
--- /dev/null
+++ b/legacy/excanvas/README.txt
@@ -0,0 +1,22 @@
+ExplorerCanvas
+Copyright 2006 Google Inc.
+
+-------------------------------------------------------------------------------
+DESCRIPTION
+
+Firefox, Safari and Opera 9 support the canvas tag to allow 2D command-based
+drawing operations. ExplorerCanvas brings the same functionality to Internet
+Explorer; web developers only need to include a single script tag in their
+existing canvas webpages to enable this support.
+
+
+-------------------------------------------------------------------------------
+INSTALLATION
+
+Include the ExplorerCanvas tag in the same directory as your HTML files, and
+add the following code to your page, preferably in the tag.
+
+
+
+If you run into trouble, please look at the included example code to see how
+to best implement this
\ No newline at end of file
diff --git a/legacy/excanvas/excanvas.js b/legacy/excanvas/excanvas.js
new file mode 100644
index 0000000..e94c678
--- /dev/null
+++ b/legacy/excanvas/excanvas.js
@@ -0,0 +1,924 @@
+// Copyright 2006 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+// Known Issues:
+//
+// * Patterns are not implemented.
+// * Radial gradient are not implemented. The VML version of these look very
+// different from the canvas one.
+// * Clipping paths are not implemented.
+// * Coordsize. The width and height attribute have higher priority than the
+// width and height style values which isn't correct.
+// * Painting mode isn't implemented.
+// * Canvas width/height should is using content-box by default. IE in
+// Quirks mode will draw the canvas using border-box. Either change your
+// doctype to HTML5
+// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
+// or use Box Sizing Behavior from WebFX
+// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html)
+// * Non uniform scaling does not correctly scale strokes.
+// * Optimize. There is always room for speed improvements.
+
+// Only add this code if we do not already have a canvas implementation
+if (!document.createElement('canvas').getContext) {
+
+(function() {
+
+ // alias some functions to make (compiled) code shorter
+ var m = Math;
+ var mr = m.round;
+ var ms = m.sin;
+ var mc = m.cos;
+ var abs = m.abs;
+ var sqrt = m.sqrt;
+
+ // this is used for sub pixel precision
+ var Z = 10;
+ var Z2 = Z / 2;
+
+ /**
+ * This funtion is assigned to the