Mercurial Hosting > sceditor
changeset 38:2dfdaaac9482
simplify icons
line wrap: on
line diff
--- a/src/icons/famfamfam.js Wed Aug 17 12:00:57 2022 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -(function (document, sceditor) { - 'use strict'; - - let baseUrl = document.currentScript.getAttribute('src').match(/.*\//)[0]; - let cssUrl = baseUrl + 'famfamfam/famfamfam.css'; - let html = '<style>@import "' + cssUrl + '";</style>'; - document.head.insertAdjacentHTML('beforeend',html); - sceditor.icons = {}; -})(document, sceditor);
--- a/src/icons/famfamfam/famfamfam.css Wed Aug 17 12:00:57 2022 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ -/*! SCEditor | (C) 2011-2016, Sam Clarke | sceditor.com/license */ -/** - * Default SCEditor - * http://www.sceditor.com/ - * - * Copyright (C) 2011-16, Sam Clarke - * - * SCEditor is licensed under the MIT license: - * http://www.opensource.org/licenses/mit-license.php - */ -div.sceditor-grip, -.sceditor-button div { - background-image: url("famfamfam.png"); - background-repeat: no-repeat; - width: 16px; - height: 16px; - background-position: 0px 16px; -} -.sceditor-button-youtube div { - background-position: 0px 0px; -} -.sceditor-button-link div { - background-position: 0px -16px; -} -.sceditor-button-unlink div { - background-position: 0px -32px; -} -.sceditor-button-underline div { - background-position: 0px -48px; -} -.sceditor-button-time div { - background-position: 0px -64px; -} -.sceditor-button-table div { - background-position: 0px -80px; -} -.sceditor-button-superscript div { - background-position: 0px -96px; -} -.sceditor-button-subscript div { - background-position: 0px -112px; -} -.sceditor-button-strike div { - background-position: 0px -128px; -} -.sceditor-button-source div { - background-position: 0px -144px; -} -.sceditor-button-size div { - background-position: 0px -160px; -} -.sceditor-button-rtl div { - background-position: 0px -176px; -} -.sceditor-button-right div { - background-position: 0px -192px; -} -.sceditor-button-removeformat div { - background-position: 0px -208px; -} -.sceditor-button-quote div { - background-position: 0px -224px; -} -.sceditor-button-print div { - background-position: 0px -240px; -} -.sceditor-button-pastetext div { - background-position: 0px -256px; -} -.sceditor-button-paste div { - background-position: 0px -272px; -} -.sceditor-button-outdent div { - background-position: 0px -288px; -} -.sceditor-button-orderedlist div { - background-position: 0px -304px; -} -.sceditor-button-maximize div { - background-position: 0px -320px; -} -.sceditor-button-ltr div { - background-position: 0px -336px; -} -.sceditor-button-left div { - background-position: 0px -352px; -} -.sceditor-button-justify div { - background-position: 0px -368px; -} -.sceditor-button-italic div { - background-position: 0px -384px; -} -.sceditor-button-indent div { - background-position: 0px -400px; -} -.sceditor-button-image div { - background-position: 0px -416px; -} -.sceditor-button-horizontalrule div { - background-position: 0px -432px; -} -.sceditor-button-format div { - background-position: 0px -448px; -} -.sceditor-button-font div { - background-position: 0px -464px; -} -.sceditor-button-emoticon div { - background-position: 0px -480px; -} -.sceditor-button-email div { - background-position: 0px -496px; -} -.sceditor-button-date div { - background-position: 0px -512px; -} -.sceditor-button-cut div { - background-position: 0px -528px; -} -.sceditor-button-copy div { - background-position: 0px -544px; -} -.sceditor-button-color div { - background-position: 0px -560px; -} -.sceditor-button-code div { - background-position: 0px -576px; -} -.sceditor-button-center div { - background-position: 0px -592px; -} -.sceditor-button-bulletlist div { - background-position: 0px -608px; -} -.sceditor-button-bold div { - background-position: 0px -624px; -} -div.sceditor-grip { - background-position: 0px -640px; - width: 10px; - height: 10px; -} -.rtl div.sceditor-grip { - background-position: 0px -650px; -}
--- a/src/icons/material.js Wed Aug 17 12:00:57 2022 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -/** - * SCEditor SVG material icons plugin - * http://www.sceditor.com/ - * - * Copyright (C) 2017, Sam Clarke (samclarke.com) - * - * SCEditor is licensed under the MIT license: - * http://www.opensource.org/licenses/mit-license.php - * - * @author Sam Clarke - */ -(function (document, sceditor) { - 'use strict'; - - var dom = sceditor.dom; - - /** - * Material icons by Google (Apache license) - * https://github.com/google/material-design-icons/blob/master/LICENSE - * - * Extra icons by materialdesignicons.com and contributors (MIT license) - * https://github.com/Templarian/MaterialDesign-SVG/blob/master/LICENSE - */ - /* eslint max-len: off*/ - var icons = { - 'bold': '<path d="M13.5,15.5H10V12.5H13.5A1.5,1.5 0 0,1 15,14A1.5,1.5 0 0,1 13.5,15.5M10,6.5H13A1.5,1.5 0 0,1 14.5,8A1.5,1.5 0 0,1 13,9.5H10M15.6,10.79C16.57,10.11 17.25,9 17.25,8C17.25,5.74 15.5,4 13.25,4H7V18H14.04C16.14,18 17.75,16.3 17.75,14.21C17.75,12.69 16.89,11.39 15.6,10.79Z" />', - 'bulletlist': '<path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" />', - 'center': '<path d="M3,3H21V5H3V3M7,7H17V9H7V7M3,11H21V13H3V11M7,15H17V17H7V15M3,19H21V21H3V19Z" />', - // Cody @XT3000 - https://materialdesignicons.com/ - 'code': '<path d="M8,3A2,2 0 0,0 6,5V9A2,2 0 0,1 4,11H3V13H4A2,2 0 0,1 6,15V19A2,2 0 0,0 8,21H10V19H8V14A2,2 0 0,0 6,12A2,2 0 0,0 8,10V5H10V3M16,3A2,2 0 0,1 18,5V9A2,2 0 0,0 20,11H21V13H20A2,2 0 0,0 18,15V19A2,2 0 0,1 16,21H14V19H16V14A2,2 0 0,1 18,12A2,2 0 0,1 16,10V5H14V3H16Z" />', - 'color': '<path d="M9.62,12L12,5.67L14.37,12M11,3L5.5,17H7.75L8.87,14H15.12L16.25,17H18.5L13,3H11Z" /><path class="sce-color" d="M0,24H24V20H0V24Z" />', - 'copy': '<path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" />', - 'cut': '<path d="M19,3L13,9L15,11L22,4V3M12,12.5A0.5,0.5 0 0,1 11.5,12A0.5,0.5 0 0,1 12,11.5A0.5,0.5 0 0,1 12.5,12A0.5,0.5 0 0,1 12,12.5M6,20A2,2 0 0,1 4,18C4,16.89 4.9,16 6,16A2,2 0 0,1 8,18C8,19.11 7.1,20 6,20M6,8A2,2 0 0,1 4,6C4,4.89 4.9,4 6,4A2,2 0 0,1 8,6C8,7.11 7.1,8 6,8M9.64,7.64C9.87,7.14 10,6.59 10,6A4,4 0 0,0 6,2A4,4 0 0,0 2,6A4,4 0 0,0 6,10C6.59,10 7.14,9.87 7.64,9.64L10,12L7.64,14.36C7.14,14.13 6.59,14 6,14A4,4 0 0,0 2,18A4,4 0 0,0 6,22A4,4 0 0,0 10,18C10,17.41 9.87,16.86 9.64,16.36L12,14L19,21H22V20L9.64,7.64Z" />', - 'date': '<path d="M7,10H12V15H7M19,19H5V8H19M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3Z" />', - 'email': '<path d="M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z" />', - 'emoticon': '<path d="M12,17.5C14.33,17.5 16.3,16.04 17.11,14H6.89C7.69,16.04 9.67,17.5 12,17.5M8.5,11A1.5,1.5 0 0,0 10,9.5A1.5,1.5 0 0,0 8.5,8A1.5,1.5 0 0,0 7,9.5A1.5,1.5 0 0,0 8.5,11M15.5,11A1.5,1.5 0 0,0 17,9.5A1.5,1.5 0 0,0 15.5,8A1.5,1.5 0 0,0 14,9.5A1.5,1.5 0 0,0 15.5,11M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" />', - // JapanYoshi @japanyoshilol - https://materialdesignicons.com/ - 'font': '<path d="M17,8H20V20H21V21H17V20H18V17H14L12.5,20H14V21H10V20H11L17,8M18,9L14.5,16H18V9M5,3H10C11.11,3 12,3.89 12,5V16H9V11H6V16H3V5C3,3.89 3.89,3 5,3M6,5V9H9V5H6Z" />', - 'format': '<path d="M18,4V3A1,1 0 0,0 17,2H5A1,1 0 0,0 4,3V7A1,1 0 0,0 5,8H17A1,1 0 0,0 18,7V6H19V10H9V21A1,1 0 0,0 10,22H12A1,1 0 0,0 13,21V12H21V4H18Z" />', - // Austin Andrews @Templarian - https://materialdesignicons.com/ - 'grip': '<path d="M22,22H20V20H22V22M22,18H20V16H22V18M18,22H16V20H18V22M18,18H16V16H18V18M14,22H12V20H14V22M22,14H20V12H22V14Z" />', - // Sam Clarke @samclarke - 'horizontalrule': '<path d="M 3,3 21,3 21,5 3,5 3,3 M 3,7 15,7 15,9 3,9 3,7 m 0,4 18,0 0,4 -18,0 0,-4" />', - 'image': '<path d="M8.5,13.5L11,16.5L14.5,12L19,18H5M21,19V5C21,3.89 20.1,3 19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19Z" />', - 'indent': '<path d="M11,13H21V11H11M11,9H21V7H11M3,3V5H21V3M11,17H21V15H11M3,8V16L7,12M3,21H21V19H3V21Z" />', - 'italic': '<path d="M10,4V7H12.21L8.79,15H6V18H14V15H11.79L15.21,7H18V4H10Z" />', - 'justify': '<path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z" /> ', - 'left': '<path d="M3,3H21V5H3V3M3,7H15V9H3V7M3,11H21V13H3V11M3,15H15V17H3V15M3,19H21V21H3V19Z" /> ', - 'link': '<path d="M16,6H13V7.9H16C18.26,7.9 20.1,9.73 20.1,12A4.1,4.1 0 0,1 16,16.1H13V18H16A6,6 0 0,0 22,12C22,8.68 19.31,6 16,6M3.9,12C3.9,9.73 5.74,7.9 8,7.9H11V6H8A6,6 0 0,0 2,12A6,6 0 0,0 8,18H11V16.1H8C5.74,16.1 3.9,14.26 3.9,12M8,13H16V11H8V13Z" />', - 'ltr': '<path d="M21,18L17,14V17H5V19H17V22M9,10V15H11V4H13V15H15V4H17V2H9A4,4 0 0,0 5,6A4,4 0 0,0 9,10Z" />', - // Austin Andrews @Templarian - https://materialdesignicons.com/ - 'maximize': '<path d="M9.5,13.09L10.91,14.5L6.41,19H10V21H3V14H5V17.59L9.5,13.09M10.91,9.5L9.5,10.91L5,6.41V10H3V3H10V5H6.41L10.91,9.5M14.5,13.09L19,17.59V14H21V21H14V19H17.59L13.09,14.5L14.5,13.09M13.09,9.5L17.59,5H14V3H21V10H19V6.41L14.5,10.91L13.09,9.5Z" />', - 'orderedlist': '<path d="M7,13H21V11H7M7,19H21V17H7M7,7H21V5H7M2,11H3.8L2,13.1V14H5V13H3.2L5,10.9V10H2M3,8H4V4H2V5H3M2,17H4V17.5H3V18.5H4V19H2V20H5V16H2V17Z" />', - 'outdent': '<path d="M11,13H21V11H11M11,9H21V7H11M3,3V5H21V3M3,21H21V19H3M3,12L7,16V8M11,17H21V15H11V17Z" />', - 'paste': '<path d="M19,20H5V4H7V7H17V4H19M12,2A1,1 0 0,1 13,3A1,1 0 0,1 12,4A1,1 0 0,1 11,3A1,1 0 0,1 12,2M19,2H14.82C14.4,0.84 13.3,0 12,0C10.7,0 9.6,0.84 9.18,2H5A2,2 0 0,0 3,4V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V4A2,2 0 0,0 19,2Z" />', - 'pastetext': '<path d="M19,20H5V4H7V7H17V4H19M12,2A1,1 0 0,1 13,3A1,1 0 0,1 12,4A1,1 0 0,1 11,3A1,1 0 0,1 12,2M19,2H14.82C14.4,0.84 13.3,0 12,0C10.7,0 9.6,0.84 9.18,2H5A2,2 0 0,0 3,4V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V4A2,2 0 0,0 19,2Z" />', - 'print': '<path d="M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z" />', - 'quote': '<path d="M14,17H17L19,13V7H13V13H16M6,17H9L11,13V7H5V13H8L6,17Z" />', - 'redo': '<path d="M18.4,10.6C16.55,9 14.15,8 11.5,8C6.85,8 2.92,11.03 1.54,15.22L3.9,16C4.95,12.81 7.95,10.5 11.5,10.5C13.45,10.5 15.23,11.22 16.62,12.38L13,16H22V7L18.4,10.6Z" />', - 'removeformat': '<path d="M6,5V5.18L8.82,8H11.22L10.5,9.68L12.6,11.78L14.21,8H20V5H6M3.27,5L2,6.27L8.97,13.24L6.5,19H9.5L11.07,15.34L16.73,21L18,19.73L3.55,5.27L3.27,5Z" />', - 'right': '<path d="M3,3H21V5H3V3M9,7H21V9H9V7M3,11H21V13H3V11M9,15H21V17H9V15M3,19H21V21H3V19Z" />', - 'rtl': '<path d="M8,17V14L4,18L8,22V19H20V17M10,10V15H12V4H14V15H16V4H18V2H10A4,4 0 0,0 6,6A4,4 0 0,0 10,10Z" />', - 'size': '<path d="M3,12H6V19H9V12H12V9H3M9,4V7H14V19H17V7H22V4H9Z" />', - 'source': '<path d="M14.6,16.6L19.2,12L14.6,7.4L16,6L22,12L16,18L14.6,16.6M9.4,16.6L4.8,12L9.4,7.4L8,6L2,12L8,18L9.4,16.6Z" />', - 'strike': '<path d="M3,14H21V12H3M5,4V7H10V10H14V7H19V4M10,19H14V16H10V19Z" />', - // Austin Andrews @Templarian - https://materialdesignicons.com/ - 'subscript': '<path d="M16,7.41L11.41,12L16,16.59L14.59,18L10,13.41L5.41,18L4,16.59L8.59,12L4,7.41L5.41,6L10,10.59L14.59,6L16,7.41M21.85,21.03H16.97V20.03L17.86,19.23C18.62,18.58 19.18,18.04 19.56,17.6C19.93,17.16 20.12,16.75 20.13,16.36C20.14,16.08 20.05,15.85 19.86,15.66C19.68,15.5 19.39,15.38 19,15.38C18.69,15.38 18.42,15.44 18.16,15.56L17.5,15.94L17.05,14.77C17.32,14.56 17.64,14.38 18.03,14.24C18.42,14.1 18.85,14 19.32,14C20.1,14.04 20.7,14.25 21.1,14.66C21.5,15.07 21.72,15.59 21.72,16.23C21.71,16.79 21.53,17.31 21.18,17.78C20.84,18.25 20.42,18.7 19.91,19.14L19.27,19.66V19.68H21.85V21.03Z" />', - // Austin Andrews @Templarian - https://materialdesignicons.com/ - 'superscript': '<path d="M16,7.41L11.41,12L16,16.59L14.59,18L10,13.41L5.41,18L4,16.59L8.59,12L4,7.41L5.41,6L10,10.59L14.59,6L16,7.41M21.85,9H16.97V8L17.86,7.18C18.62,6.54 19.18,6 19.56,5.55C19.93,5.11 20.12,4.7 20.13,4.32C20.14,4.04 20.05,3.8 19.86,3.62C19.68,3.43 19.39,3.34 19,3.33C18.69,3.34 18.42,3.4 18.16,3.5L17.5,3.89L17.05,2.72C17.32,2.5 17.64,2.33 18.03,2.19C18.42,2.05 18.85,2 19.32,2C20.1,2 20.7,2.2 21.1,2.61C21.5,3 21.72,3.54 21.72,4.18C21.71,4.74 21.53,5.26 21.18,5.73C20.84,6.21 20.42,6.66 19.91,7.09L19.27,7.61V7.63H21.85V9Z" />', - // Austin Andrews @Templarian - https://materialdesignicons.com/ - 'table': '<path d="M5,4H19A2,2 0 0,1 21,6V18A2,2 0 0,1 19,20H5A2,2 0 0,1 3,18V6A2,2 0 0,1 5,4M5,8V12H11V8H5M13,8V12H19V8H13M5,14V18H11V14H5M13,14V18H19V14H13Z" />', - 'time': '<path d="M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z" />', - 'underline': '<path d="M5,21H19V19H5V21M12,17A6,6 0 0,0 18,11V3H15.5V11A3.5,3.5 0 0,1 12,14.5A3.5,3.5 0 0,1 8.5,11V3H6V11A6,6 0 0,0 12,17Z" />', - 'undo': '<path d="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z" />', - // Austin Andrews @Templarian - https://materialdesignicons.com/ - 'unlink': '<path d="M2,5.27L3.28,4L20,20.72L18.73,22L14.73,18H13V16.27L9.73,13H8V11.27L5.5,8.76C4.5,9.5 3.9,10.68 3.9,12C3.9,14.26 5.74,16.1 8,16.1H11V18H8A6,6 0 0,1 2,12C2,10.16 2.83,8.5 4.14,7.41L2,5.27M16,6A6,6 0 0,1 22,12C22,14.21 20.8,16.15 19,17.19L17.6,15.77C19.07,15.15 20.1,13.7 20.1,12C20.1,9.73 18.26,7.9 16,7.9H13V6H16M8,6H11V7.9H9.72L7.82,6H8M16,11V13H14.82L12.82,11H16Z" />', - 'youtube': '<path d="M10,16.5V7.5L16,12M20,4.4C19.4,4.2 15.7,4 12,4C8.3,4 4.6,4.19 4,4.38C2.44,4.9 2,8.4 2,12C2,15.59 2.44,19.1 4,19.61C4.6,19.81 8.3,20 12,20C15.7,20 19.4,19.81 20,19.61C21.56,19.1 22,15.59 22,12C22,8.4 21.56,4.91 20,4.4Z" />' - }; - - var nodes = {}; - - var colorPath; - - sceditor.icons = { - create: function (command) { - if (command in icons) { - // Using viewbox="1 1 22 22" to trim off the 1 unit border - // around the SVG icons. - // Default is viewbox="0 0 24 24" - nodes[command] = sceditor.dom.parseHTML( - '<svg xmlns="http://www.w3.org/2000/svg" ' + - 'viewbox="1 1 22 22" unselectable="on">' + - icons[command] + - '</svg>' - ).firstChild; - - if (command === 'color') { - colorPath = nodes[command].querySelector('.sce-color'); - } - } - - return nodes[command]; - }, - update: function (isSourceMode, currentNode) { - if (colorPath) { - var color = 'inherit'; - - if (!isSourceMode && currentNode) { - color = currentNode.ownerDocument - .queryCommandValue('forecolor'); - } - - dom.css(colorPath, 'fill', color); - } - }, - rtl: function (isRtl) { - var gripNode = nodes.grip; - - if (gripNode) { - var transform = isRtl ? 'scaleX(-1)' : ''; - - dom.css(gripNode, 'transform', transform); - dom.css(gripNode, 'msTransform', transform); - dom.css(gripNode, 'webkitTransform', transform); - } - }, - icons: icons - }; -})(document, sceditor);
--- a/src/icons/monocons.js Wed Aug 17 12:00:57 2022 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/** - * SCEditor SVG monocons plugin - * http://www.sceditor.com/ - * - * Copyright (C) 2017, Sam Clarke (samclarke.com) - * - * SCEditor is licensed under the MIT license: - * http://www.opensource.org/licenses/mit-license.php - * - * @author Sam Clarke - */ -(function (document, sceditor) { - 'use strict'; - - var dom = sceditor.dom; - - /* eslint max-len: off*/ - var icons = { - 'bold': '<text x="50%" y="50%" text-anchor="middle" dy=".5ex" font-family="Dejavu Sans, Helvetica, Arial, sans-serif" font-size="15" font-weight="bold">B</text>', - 'bulletlist': '<path d="M6 2h9v2H6zm0 5h9v2H6zm0 5h9v2H6z"/><circle cx="3" cy="3" r="1.75"/><circle cx="3" cy="8" r="1.75"/><circle cx="3" cy="13" r="1.75"/>', - 'center': '<path d="M1 1h14v2H1zm2 4h10v2H3zM1 9h14v2H1zm2 4h10v2H3z"/>', - 'code': '<path d="M7 6L4 9l3 3v-1.5L5.5 9 7 7.5zm2 0v1.5L10.5 9 9 10.5V12l3-3zM2.406 1A.517.517 0 0 0 2 1.5v13c0 .262.238.5.5.5h11a.52.52 0 0 0 .5-.5V4.375c.002-.102-.13-.193-.156-.219l-3-3A.506.506 0 0 0 10.5 1zM3 2h7v2.5c0 .262.238.5.5.5H13v9H3zm8 .688L12.313 4H11z"/>', - 'color': '<text x="50%" y="8" text-anchor="middle" dy=".5ex" font-family="Dejavu Sans, Helvetica, Arial, sans-serif" font-size="13" font-weight="bold">A</text><path class="sce-color" d="M2 13h12v2H2z"/>', - 'copy': '<path d="M6.404 5.002a.5.5 0 0 0-.406.5v10a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5V8.596a.492.492 0 0 0 0-.094.662.662 0 0 0 0-.063v-.063l-.031-.063v-.031a.557.557 0 0 0-.094-.094l-.031-.031-2.875-2.844a.498.498 0 0 0-.125-.156.5.5 0 0 0-.344-.156h-5a.59.59 0 0 0-.094.001c-.239.046.031-.003 0 0zm.594 1h4v2.5a.5.5 0 0 0 .5.5h2.5v6h-7v-9zm5 .687l1.313 1.313h-1.313V6.689zM1.406.002a.517.517 0 0 0-.406.5v10c0 .262.238.5.5.5H7V6l3-.063V3.596a.492.492 0 0 0 0-.094.331.331 0 0 0 0-.063v-.063c-.009-.021-.02-.041-.031-.062v-.031a.597.597 0 0 0-.094-.094l-.031-.031L6.969.314a.484.484 0 0 0-.125-.156A.506.506 0 0 0 6.5.002h-5a.492.492 0 0 0-.094 0c-.229.044.032-.003 0 0zm.594 1h4v2.5c0 .262.238.5.5.5H9v1.029L7 5 6 6v4l-4 .002v-9zm5 .687l1.313 1.313H7V1.689z"/>', - 'cut': '<path d="M3 .5c0 2.936 3.774 7.73 3.938 7.938l-1.813 2.844A2.46 2.46 0 0 0 4 11c-1.375 0-2.5 1.125-2.5 2.5S2.625 16 4 16s2.5-1.125 2.5-2.5c0-.444-.138-.856-.344-1.22L8 9.845l1.844 2.438A2.473 2.473 0 0 0 9.5 13.5c0 1.375 1.125 2.5 2.5 2.5s2.5-1.125 2.5-2.5S13.375 11 12 11a2.46 2.46 0 0 0-1.125.28L9.062 8.439C9.226 8.232 13 3.437 13 .5h-1L8 6.78 4 .5H3zM4 12c.834 0 1.5.666 1.5 1.5S4.834 15 4 15s-1.5-.666-1.5-1.5S3.166 12 4 12zm8 0c.834 0 1.5.666 1.5 1.5S12.834 15 12 15s-1.5-.666-1.5-1.5.666-1.5 1.5-1.5z"/>', - 'date': '<path d="M8.1 7v1h2.7v1H8.094v3H11.7v-1H9v-1h2.7V7zM4.5 7v1h.8v3h-.8v1h2.7v-1h-.9V7zM.9 1v14h14.4V1h-1.8v2h-2.7V1H5.4v2H2.7V1zm.9 4h12.6v9H1.8z"/>', - 'email': '<path d="M1 4.5v8c0 .262.238.5.5.5h13a.52.52 0 0 0 .5-.5V4.594C15 4 15 4 14.5 4H1.563C1 4 1 4 1 4.5zM2 5h12v7H2V5zm-.187-.906l-.625.812 6.5 5 .312.219.313-.219 6.5-5-.625-.813L8 8.844l-6.187-4.75z"/>', - 'emoticon': '<path d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1zm0 1a6 6 0 1 1 0 12A6 6 0 0 1 8 2zM6 5c-.546 0-1 .454-1 1s.454 1 1 1 1-.454 1-1-.454-1-1-1zm4 0c-.547 0-1 .454-1 1s.453 1 1 1c.547 0 1-.454 1-1s-.453-1-1-1zM4.5 9.5s-.002.652.469 1.281C5.44 11.409 6.389 12 8 12c1.611 0 2.561-.591 3.031-1.219.47-.629.469-1.281.469-1.281h-1s-.002.314-.281.688c-.279.374-.83.813-2.219.813-1.389 0-1.94-.44-2.219-.813C5.502 9.814 5.5 9.5 5.5 9.5z"/>', - 'font': '<path d="M7.953 9.75h-4.06l-.395 1.141c-.132.381-.254.752-.368 1.109H.7c.391-1.119.762-2.154 1.113-3.105a104.642 104.642 0 0 1 2.024-5.079 52.23 52.23 0 0 1 1.016-2.212h2.218a80.63 80.63 0 0 1 2.011 4.605c.337.84.105.338.458 1.288s-1.455 2.63-1.587 2.253zM5.912 3.959c-.052.151-.129.357-.229.616-.1.26-.215.56-.343.901-.129.341-.273.716-.431 1.125-.159.409-.32.839-.484 1.288h2.972c-.159-.45-.312-.882-.461-1.292a46.81 46.81 0 0 0-.425-1.127c-.135-.34-.252-.641-.354-.9-.1-.26-.182-.463-.245-.611zm6.949 10.042a36.325 36.325 0 0 0-.35-1.037l-.371-1.063H8.352l-.368 1.064A41.69 41.69 0 0 0 7.64 14H5.373c.365-1.045.711-2.01 1.039-2.896.328-.886.648-1.723.962-2.506.313-.786.623-1.53.927-2.235.305-.705.62-1.393.948-2.065h2.069c.318.672.634 1.36.941 2.065.311.705.621 1.449.936 2.235.314.783.636 1.619.964 2.506.327.888.676 1.853 1.041 2.896l-2.339.001zm-2.625-7.504c-.049.141-.118.333-.213.576-.094.242-.2.521-.319.84-.121.317-.254.668-.402 1.051-.147.382-.299.783-.45 1.201h2.772c-.147-.42-.291-.822-.433-1.205a43.073 43.073 0 0 0-.396-1.053c-.125-.317-.233-.598-.33-.84a13.884 13.884 0 0 0-.229-.57z"/>', - 'format': '<path d="M10.5 2v1.5H12c.235 0 .401-.009.5 0 .008.088 0 .279 0 .5v2H14V3.437c0-.237-.01-.409-.031-.593-.022-.185-.067-.42-.25-.594s-.407-.2-.594-.219A5.693 5.693 0 0 0 12.5 2zm0-2L7.187 2.5 10.5 5zm.5 5.187L13.5 8.5 16 5.187zm-.958-.339h-2.03l-3.234 8.456c-.154.392-.336.994-.854 1.022v.518h2.744v-.518c-.644-.168-.658-.462-.434-1.036l.784-2.086h3.43l.854 2.086c.238.574.308.924-.406 1.036v.518h3.276v-.518c-.434-.056-.546-.364-.686-.728l-3.444-8.75M7.424 10l1.26-3.318L10 10H7.424M4.912.975h-1.63L.686 7.764c-.124.314-.27.798-.686.82V9h2.203v-.416c-.517-.135-.528-.37-.348-.832l.629-1.674h2.754l.685 1.674c.192.461.248.742-.325.832V9c1.73.137 1.837-.002 2.079-1L4.912.975M2.81 5.11l1.012-2.664L4.878 5.11H2.81"/>', - 'grip': '<path d="M14.656 5.156l-10 10 .688.688 10-10-.688-.688zm0 3l-7 7 .688.688 7-7-.688-.688zm0 3l-4 4 .688.688 4-4-.688-.688z"/>', - 'horizontalrule': '<path d="M2 2v1h12V2H2zm0 2v1h9V4H2zm0 2v1h12V6H2zm0 2v2h12V8H2z"/>', - 'image': '<path d="M.5 2.5v11h15v-11H.5zm1 1h13v9h-13v-9z"/><circle cx="4" cy="6" r="1.25"/><path d="M1 11h14v2H1z"/><path d="M5 12l2-4 2 4z"/><path d="M7 12l4-7 4 7z"/>', - 'indent': '<path d="M1 1h14v2H1zm5 4h9v2H6zm0 4h9v2H6zm-5 4h14v2H1zm4-5L1 5v6z"/>', - 'italic': '<text x="50%" y="50%" text-anchor="middle" dy=".5ex" font-family="Dejavu Sans, Helvetica, Arial, sans-serif" font-weight="bold" font-size="15" font-style="italic">i</text>', - 'justify': '<path d="M1 1h14v2H1zm0 4h14v2H1zm0 4h14v2H1zm0 4h14v2H1z"/>', - 'left': '<path d="M1 1h14v2H1zm0 4h10v2H1zm0 4h14v2H1zm0 4h10v2H1z"/>', - 'link': '<path d="M2 4c-.625 0-1.009.438-1.188.75s-.269.63-.344.969c-.15.677-.219 1.476-.219 2.28s.068 1.605.219 2.282c.075.339.165.625.344.938s.563.78 1.188.78h4v-2H2.469c-.022-.065-.042-.06-.063-.155-.1-.447-.156-1.15-.156-1.844s.057-1.396.156-1.844c.02-.088.042-.092.063-.156H6V4H2zm8 0v2h3.531c.021.064.043.068.063.156.1.448.156 1.149.156 1.844s-.057 1.396-.156 1.844c-.021.096-.041.09-.063.156H10v2h4c.625 0 1.009-.47 1.188-.781s.269-.6.344-.938c.15-.678.219-1.476.219-2.281s-.068-1.604-.219-2.281c-.075-.34-.165-.656-.344-.97S14.625 4 14 4h-4zM5.719 7c-.523.074-.949.602-.875 1.125S5.477 9.074 6 9h4c.528.01 1-.472 1-1s-.472-1.007-1-1H6a.593.593 0 0 0-.188 0h-.093z"/>', - 'ltr': '<path d="M10.313 1.937c-.98 0-1.752.284-2.344.813-.592.529-.906 1.228-.906 2.094 0 .811.275 1.467.781 1.969.506.497 1.227.792 2.156.906V14h2V3h1v11h1V1.939zM2 4v8l4-4z"/>', - 'maximize': '<path d="M2 7l1.75-1.75-2-2L0 5V0h5L3.25 1.75l2 2L7 2v5H2zm9 9l1.75-1.75-2-2L9 14V9h5l-1.75 1.75 2 2L16 11v5h-5zm-6 0l-1.75-1.75 2-2L7 14V9H2l1.75 1.75-2 2L0 11v5h5zm6-16l1.75 1.75-2 2L9 2v5h5l-1.75-1.75 2-2L16 5V0h-5z"/>', - 'orderedlist': '<path d="M6 2h9v2H6zm0 5h9v2H6zm0 5h9v2H6zm-2.799.846q.392.1.594.352.205.25.205.636 0 .576-.441.877-.441.298-1.287.298-.298 0-.599-.05-.298-.046-.591-.142v-.77q.28.14.555.212.277.07.545.07.396 0 .607-.137.212-.138.212-.394 0-.265-.218-.4-.215-.137-.638-.137h-.4v-.644h.421q.376 0 .56-.116.185-.12.185-.36 0-.224-.18-.346-.178-.122-.505-.122-.242 0-.488.055-.246.054-.49.16v-.731q.295-.083.586-.125.29-.041.57-.041.756 0 1.13.249.375.246.375.744 0 .34-.179.558-.179.215-.529.304zm-.905-3.609H4v.734H1.186v-.734L2.599 7.99q.19-.172.28-.335.091-.163.091-.34 0-.272-.184-.438-.182-.166-.485-.166-.234 0-.511.101-.278.099-.594.296v-.851q.337-.112.667-.169.329-.06.645-.06.696 0 1.08.307.386.306.386.853 0 .317-.163.592-.164.272-.688.731l-.827.726zM1.228 4.276h.903V1.714l-.927.19V1.21l.922-.191h.971v3.258H4v.706H1.228v-.706z"/>', - 'outdent': '<path d="M1 1h14v2H1zm0 4h9v2H1zm0 4h9v2H1zm0 4h14v2H1zm10-5l4-3v6z"/>', - 'paste': '<path d="M4.406 0A.5.5 0 0 0 4 .5V1H1.5a.5.5 0 0 0-.5.5v10a.5.5 0 0 0 .5.5H6v2.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5V7.594a.492.492 0 0 0 0-.094.436.436 0 0 0 0-.125.916.916 0 0 0-.031-.063v-.031a.749.749 0 0 0-.063-.063.749.749 0 0 0-.063-.063l-2.875-2.844a.498.498 0 0 0-.125-.156A.498.498 0 0 0 11.5 4H10V1.5a.5.5 0 0 0-.5-.5H7V.5a.5.5 0 0 0-.5-.5h-2a.492.492 0 0 0-.094 0c-.239.045.032-.003 0 0zM2 2h1v.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5V2h1v2H6.5a.64.64 0 0 0-.062 0 .493.493 0 0 0-.094.031.474.474 0 0 0-.125.063l-.031.031-.031.031a.916.916 0 0 0-.063.031.47.47 0 0 0-.031.094l-.031.031A.506.506 0 0 0 6 4.5V11H2V2zm5 3h4v2.5a.5.5 0 0 0 .5.5H14v6H7v-2.406a.492.492 0 0 0 0-.094V5zm5 .688L13.313 7H12V5.688zM4.406 0A.5.5 0 0 0 4 .5V1H1.5a.5.5 0 0 0-.5.5v10a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5V5h2.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H7V.5a.5.5 0 0 0-.5-.5h-2a.492.492 0 0 0-.094 0c-.239.045.032-.003 0 0zM2 2h1v.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5V2h1v2H6.5a.5.5 0 0 0-.5.5V11H2V2zm4.406 2A.5.5 0 0 0 6 4.5v10a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5V7.594a.492.492 0 0 0 0-.094.331.331 0 0 0 0-.063v-.063a.916.916 0 0 0-.031-.063V7.28a.523.523 0 0 0-.094-.094l-.031-.031-2.875-2.844a.498.498 0 0 0-.125-.156A.503.503 0 0 0 11.5 4h-5a.492.492 0 0 0-.094 0c-.239.045.032-.003 0 0zM7 5h4v2.5a.5.5 0 0 0 .5.5H14v6H7V5zm5 .688L13.313 7H12V5.688zM8 12h5v1H8v-1zm0-2h5v1H8v-1zm0-2h5v1H8V8zm0-2h3v1H8V6z"/>', - 'pastetext': '<path d="M4.406 0A.5.5 0 0 0 4 .5V1H1.5a.5.5 0 0 0-.5.5v10a.5.5 0 0 0 .5.5H6v2.5a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5V7.594a.492.492 0 0 0 0-.094.436.436 0 0 0 0-.125.916.916 0 0 0-.031-.063v-.031a.749.749 0 0 0-.063-.063.749.749 0 0 0-.063-.063l-2.875-2.844a.498.498 0 0 0-.125-.156A.498.498 0 0 0 11.5 4H10V1.5a.5.5 0 0 0-.5-.5H7V.5a.5.5 0 0 0-.5-.5h-2a.492.492 0 0 0-.094 0zM2 2h1v.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5V2h1v2H6.5a.64.64 0 0 0-.062 0 .493.493 0 0 0-.094.031.474.474 0 0 0-.125.063l-.031.031-.031.031a.916.916 0 0 0-.063.031.47.47 0 0 0-.031.094l-.031.031A.506.506 0 0 0 6 4.5V11H2V2zm5 3h4v2.5a.5.5 0 0 0 .5.5H14v6H7v-2.406a.492.492 0 0 0 0-.094V5zm5 .688L13.313 7H12V5.688zM4.406 0A.5.5 0 0 0 4 .5V1H1.5a.5.5 0 0 0-.5.5v10a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5V5h2.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H7V.5a.5.5 0 0 0-.5-.5h-2a.492.492 0 0 0-.094 0zM2 2h1v.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5V2h1v2H6.5a.5.5 0 0 0-.5.5V11H2V2zm4.406 2A.5.5 0 0 0 6 4.5v10a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5V7.594a.492.492 0 0 0 0-.094.331.331 0 0 0 0-.063v-.062a.916.916 0 0 0-.031-.063v-.031a.523.523 0 0 0-.094-.094l-.031-.031-2.875-2.844a.498.498 0 0 0-.125-.156A.5.5 0 0 0 11.5 4h-5a.492.492 0 0 0-.094 0zM7 5h4v2.5a.5.5 0 0 0 .5.5H14v6H7V5zm5 .688L13.313 7H12V5.688z"/>', - 'print': '<path d="M4 1v3H1v8h2V6h10v6h2V4h-3V1zm1 1h6v2H5zM4 7v8h8V7zm1 1h6v6H5zm1 1v1h4V9zm0 2v1h4v-1z"/>', - 'quote': '<path d="M8 2.013c-1.998 0-3.818.382-5.188 1.125S.499 5.054.499 6.513c0 1.237.926 2.345 2.281 3.156s3.197 1.344 5.219 1.344c.344 0 .563.019.906 0l5.875 2.938c.377.18.854-.32.656-.688l-1.813-3.656c1.242-.79 1.875-2.014 1.875-3.094 0-1.46-.943-2.632-2.313-3.375S9.998 2.013 8 2.013z"/>', - 'redo': '<path d="M9 7l5-5v5z"/><path d="M9.553 2.205c1 .268 1.932.796 2.69 1.553l.706.707-1.414 1.414-.707-.707a3.995 3.995 0 0 0-3.863-1.035 3.995 3.995 0 0 0-2.828 2.828 3.995 3.995 0 0 0 1.035 3.863l.707.707-1.414 1.414-.707-.707a6.003 6.003 0 0 1-1.553-5.795 6.003 6.003 0 0 1 7.348-4.242z"/>', - 'removeformat': '<path d="M8.781 2l-.125.125L3.781 7l-.125.125-3 3-.313.313.25.344 3 4 .156.219h2.47l.125-.156 3-3 .313-.313 4.688-4.688.313-.313-.25-.344-3-4-.156-.188H8.781zm.407 1h.594l-4 4h-.594l4-4zm1.75.25l2.406 3.188-4.281 4.28-2.406-3.187 4.281-4.281z"/>', - 'right': '<path d="M1 1h14v2H1zm4 4h10v2H5zM1 9h14v2H1zm4 4h10v2H5z"/>', - 'rtl': '<path d="M5.344 2.001c-.98 0-1.783.284-2.375.813-.592.529-.875 1.227-.875 2.093 0 .811.244 1.467.75 1.969.506.497 1.227.792 2.156.906V14h2V3.001L8 3v11h1V2zM14 4l-4 4 4 4z"/>', - 'size': '<path d="M12.5.656L10 4h5L12.5.656zM4.594 4.5a49.476 49.476 0 0 0-.875 1.906c-.277.65-.581 1.334-.875 2.063-.286.729-.572 1.52-.875 2.344S1.338 12.53 1 13.5h2.094c.095-.313.2-.64.313-.97.121-.328.262-.64.375-.968h3.5c.113.329.231.64.344.969.121.329.217.656.313.969h2.188c-.338-.971-.666-1.864-.969-2.688s-.611-1.615-.906-2.344a56.045 56.045 0 0 0-.844-2.063c-.286-.66-.581-1.282-.875-1.906H4.594zM10 6l2.5 3.313L15 6h-5zm-4.5.53c.052.13.132.307.219.532.086.225.2.486.313.78.121.296.245.614.375.97s.268.734.406 1.125H4.25c.139-.391.245-.77.375-1.125.139-.355.293-.674.406-.97s.194-.555.281-.78c.087-.224.145-.401.188-.531z"/>', - 'source': '<path d="M4.937 3.939L1 8.499l3.937 4.564L6 12 3 8.499 6 5zm6.126 0L10 5.002l3 3.503-3 3.497 1.063 1.063L15 8.505z"/>', - 'strike': '<text x="50%" y="50%" text-anchor="middle" dy=".5ex" font-family="Dejavu Sans, Helvetica, Arial, sans-serif" font-size="15" font-weight="bold">S</text><path d="M1 7v1h14V7H1z"/>', - 'subscript': '<path d="M11 10v1h3v1h-3v3h4v-1h-3v-1h3v-3zM1 3l3 5-3 5h2l3-5H4l3 5h2L6 8l3-5H7L4 8h2L3 3z"/>', - 'superscript': '<path d="M11 1v1h3v1h-3v3h4V5h-3V4h3V1zM1 3l3 5-3 5h2l3-5H4l3 5h2L6 8l3-5H7L4 8h2L3 3z"/>', - 'table': '<path d="M1 2h14v2H1zm0 2v10h14V4H1zm1 1h3.5v2H2V5zm4.5 0h3v2h-3V5zm4 0H14v2h-3.5V5zM2 8h3.5v2H2V8zm4.5 0h3v2h-3V8zm4 0H14v2h-3.5V8zM2 11h3.5v2H2v-2zm4.5 0h3v2h-3v-2zm4 0H14v2h-3.5v-2z"/>', - 'time': '<path d="M8 0C3 0 0 4 0 8s3 8 8 8 8-4 8-8-3-8-8-8zm0 2c3.461 0 6 2.539 6 6s-2.539 6-6 6c-3.46 0-6-2.539-6-6s2.54-6 6-6zM7 3v6l2.5 2L11 9.5 9 8V3z"/>', - 'underline': '<text x="50%" y="50%" text-anchor="middle" dy=".5ex" font-family="Dejavu Sans, Helvetica, Arial, sans-serif" font-weight="bold" font-size="15" text-decoration="underline">U</text>', - 'undo': '<path d="M2 7h5L2 2z"/><path d="M6.447 2.205c-1 .268-1.932.796-2.69 1.553l-.706.707 1.414 1.414.707-.707a3.995 3.995 0 0 1 3.863-1.035 3.995 3.995 0 0 1 2.828 2.828 3.995 3.995 0 0 1-1.035 3.863l-.707.707 1.414 1.414.707-.707a6.003 6.003 0 0 0 1.553-5.795 6.003 6.003 0 0 0-7.348-4.242z"/>', - 'unlink': '<path d="M2 4c-.625 0-1.009.438-1.188.75s-.269.63-.344.969c-.15.677-.219 1.476-.219 2.28s.068 1.605.219 2.282c.075.339.165.625.344.938s.563.78 1.188.78h4v-2H2.469c-.022-.065-.042-.06-.063-.155-.1-.447-.156-1.15-.156-1.844s.057-1.396.156-1.844c.02-.088.042-.092.063-.156H6V4H2zm8 0v2h3.531c.021.064.043.068.063.156.1.448.156 1.149.156 1.844s-.057 1.396-.156 1.844c-.021.095-.041.09-.063.156H10v2h4c.625 0 1.009-.47 1.188-.781s.269-.6.344-.938c.15-.678.219-1.476.219-2.281s-.068-1.604-.219-2.281c-.075-.34-.165-.656-.344-.97S14.625 4 14 4h-4z"/>', - 'youtube': '<path d="M2 2C1 2 0 3 0 4v8c0 1 1 2 2 2h12c1 0 2-1 2-2V4c0-1-1-2-2-2H2zm4 3l6 3-6 3V5z"/>' - }; - - var nodes = {}; - var colorPath; - - sceditor.icons = { - create: function (command) { - if (command in icons) { - nodes[command] = sceditor.dom.parseHTML( - '<svg xmlns="http://www.w3.org/2000/svg" ' + - 'viewbox="0 0 16 16" unselectable="on">' + - icons[command] + - '</svg>' - ).firstChild; - - if (command === 'color') { - colorPath = nodes[command].querySelector('.sce-color'); - } - } - - return nodes[command]; - }, - update: function (isSourceMode, currentNode) { - if (colorPath) { - var color = 'inherit'; - - if (!isSourceMode && currentNode) { - color = currentNode.ownerDocument - .queryCommandValue('forecolor'); - } - - dom.css(colorPath, 'fill', color); - } - }, - rtl: function (isRtl) { - var gripNode = nodes.grip; - - if (gripNode) { - var transform = isRtl ? 'scaleX(-1)' : ''; - - dom.css(gripNode, 'transform', transform); - dom.css(gripNode, 'msTransform', transform); - dom.css(gripNode, 'webkitTransform', transform); - } - }, - icons: icons - }; -})(document, sceditor);
--- a/src/sceditor.js Wed Aug 17 12:00:57 2022 -0600 +++ b/src/sceditor.js Thu Aug 18 21:36:34 2022 -0600 @@ -1807,9 +1807,10 @@ '<body contenteditable="true" {spellcheck}><p></p></body>' + '</html>', - toolbarButton: '<a class="sceditor-button sceditor-button-{iconName}" ' + + + toolbarButton: '<a class="sceditor-button" ' + 'data-sceditor-command="{name}" unselectable="on">' + - '<div unselectable="on">{dispName}</div></a>', + '{icon}</a>', emoticon: '<img src="{url}" data-sceditor-emoticon="{key}" ' + 'alt="{key}" title="{tooltip}" />', @@ -1939,50 +1940,59 @@ } + function material(png) { + return '<img src="' + baseUrl + 'icons/material/' + png + '" width=18 height=18>'; + } + /** * Map of all the commands for SCEditor * @type {Object} * @name commands - * @memberOf jQuery.sceditor */ var defaultCmds = { // START_COMMAND: Bold bold: { exec: 'bold', tooltip: 'Bold', - shortcut: 'Ctrl+B' + shortcut: 'Ctrl+B', + icon: material('format-bold.png'), }, // END_COMMAND // START_COMMAND: Italic italic: { exec: 'italic', tooltip: 'Italic', - shortcut: 'Ctrl+I' + shortcut: 'Ctrl+I', + icon: material('format-italic.png'), }, // END_COMMAND // START_COMMAND: Underline underline: { exec: 'underline', tooltip: 'Underline', - shortcut: 'Ctrl+U' + shortcut: 'Ctrl+U', + icon: material('format-underline.png'), }, // END_COMMAND // START_COMMAND: Strikethrough strike: { exec: 'strikethrough', - tooltip: 'Strikethrough' + tooltip: 'Strikethrough', + icon: material('format-strikethrough.png'), }, // END_COMMAND // START_COMMAND: Subscript subscript: { exec: 'subscript', - tooltip: 'Subscript' + tooltip: 'Subscript', + icon: material('format-subscript.png'), }, // END_COMMAND // START_COMMAND: Superscript superscript: { exec: 'superscript', - tooltip: 'Superscript' + tooltip: 'Superscript', + icon: material('format-superscript.png'), }, // END_COMMAND @@ -2003,13 +2013,15 @@ } }, exec: 'justifyleft', - tooltip: 'Align left' + tooltip: 'Align left', + icon: material('format-align-left.png'), }, // END_COMMAND // START_COMMAND: Centre center: { exec: 'justifycenter', - tooltip: 'Center' + tooltip: 'Center', + icon: material('format-align-center.png'), }, // END_COMMAND // START_COMMAND: Right @@ -2029,13 +2041,15 @@ } }, exec: 'justifyright', - tooltip: 'Align right' + tooltip: 'Align right', + icon: material('format-align-right.png'), }, // END_COMMAND // START_COMMAND: Justify justify: { exec: 'justifyfull', - tooltip: 'Justify' + tooltip: 'Justify', + icon: material('format-align-justify.png'), }, // END_COMMAND @@ -2063,7 +2077,8 @@ editor.execCommand('fontname', fontName); }); }, - tooltip: 'Font Name' + tooltip: 'Font Name', + icon: material('format-font.png'), }, // END_COMMAND // START_COMMAND: Size @@ -2090,7 +2105,8 @@ editor.execCommand('fontsize', fontSize); }); }, - tooltip: 'Font Size' + tooltip: 'Font Size', + icon: material('format-size.png'), }, // END_COMMAND // START_COMMAND: Colour @@ -2132,13 +2148,15 @@ editor.execCommand('forecolor', color); }); }, - tooltip: 'Font Color' + tooltip: 'Font Color', + icon: material('palette.png'), }, // END_COMMAND // START_COMMAND: Remove Format removeformat: { exec: 'removeformat', - tooltip: 'Remove Formatting' + tooltip: 'Remove Formatting', + icon: material('format-clear.png'), }, // END_COMMAND @@ -2147,7 +2165,8 @@ exec: 'cut', tooltip: 'Cut', errorMessage: 'Your browser does not allow the cut command. ' + - 'Please use the keyboard shortcut Ctrl/Cmd-X' + 'Please use the keyboard shortcut Ctrl/Cmd-X', + icon: material('content-cut.png'), }, // END_COMMAND // START_COMMAND: Copy @@ -2155,7 +2174,8 @@ exec: 'copy', tooltip: 'Copy', errorMessage: 'Your browser does not allow the copy command. ' + - 'Please use the keyboard shortcut Ctrl/Cmd-C' + 'Please use the keyboard shortcut Ctrl/Cmd-C', + icon: material('content-copy.png'), }, // END_COMMAND // START_COMMAND: Paste @@ -2163,7 +2183,8 @@ exec: 'paste', tooltip: 'Paste', errorMessage: 'Your browser does not allow the paste command. ' + - 'Please use the keyboard shortcut Ctrl/Cmd-V' + 'Please use the keyboard shortcut Ctrl/Cmd-V', + icon: material('content-paste.png'), }, // END_COMMAND // START_COMMAND: Paste Text @@ -2192,7 +2213,8 @@ editor.createDropDown(caller, 'pastetext', content); }, - tooltip: 'Paste Text' + tooltip: 'Paste Text', + icon: material('content-paste.png'), }, // END_COMMAND // START_COMMAND: Bullet List @@ -2201,7 +2223,8 @@ fixFirefoxListBug(editor); editor.execCommand('insertunorderedlist'); }, - tooltip: 'Bullet list' + tooltip: 'Bullet list', + icon: material('format-list-bulleted.png'), }, // END_COMMAND // START_COMMAND: Ordered List @@ -2210,7 +2233,8 @@ fixFirefoxListBug(editor); editor.execCommand('insertorderedlist'); }, - tooltip: 'Numbered list' + tooltip: 'Numbered list', + icon: material('format-list-numbered.png'), }, // END_COMMAND // START_COMMAND: Indent @@ -2262,7 +2286,8 @@ editor.execCommand('indent'); } }, - tooltip: 'Add indent' + tooltip: 'Add indent', + icon: material('format-indent-increase.png'), }, // END_COMMAND // START_COMMAND: Outdent @@ -2276,7 +2301,8 @@ editor.execCommand('outdent'); } }, - tooltip: 'Remove one indent' + tooltip: 'Remove one indent', + icon: material('format-indent-decrease.png'), }, // END_COMMAND @@ -2315,14 +2341,16 @@ editor.createDropDown(caller, 'inserttable', content); }, - tooltip: 'Insert a table' + tooltip: 'Insert a table', + icon: material('table.png'), }, // END_COMMAND // START_COMMAND: Horizontal Rule horizontalrule: { exec: 'inserthorizontalrule', - tooltip: 'Insert a horizontal rule' + tooltip: 'Insert a horizontal rule', + icon: material('minus.png'), }, // END_COMMAND @@ -2334,7 +2362,8 @@ '<br /></code>' ); }, - tooltip: 'Code' + tooltip: 'Code', + icon: material('code-braces.png'), }, // END_COMMAND @@ -2394,7 +2423,8 @@ } ); }, - tooltip: 'Insert an image' + tooltip: 'Insert an image', + icon: material('image.png'), }, // END_COMMAND @@ -2440,7 +2470,8 @@ } ); }, - tooltip: 'Insert an email' + tooltip: 'Insert an email', + icon: material('email.png'), }, // END_COMMAND @@ -2489,7 +2520,8 @@ } }); }, - tooltip: 'Insert a link' + tooltip: 'Insert a link', + icon: material('link.png'), }, // END_COMMAND @@ -2509,7 +2541,8 @@ remove(anchor); } }, - tooltip: 'Unlink' + tooltip: 'Unlink', + icon: material('link-off.png'), }, // END_COMMAND @@ -2535,7 +2568,8 @@ editor.wysiwygEditorInsertHtml(before, end); }, - tooltip: 'Insert a Quote' + tooltip: 'Insert a Quote', + icon: material('format-quote-close.png'), }, // END_COMMAND @@ -2613,7 +2647,8 @@ txtExec: function (editor, caller) { editor.commands.emoticon.exec(editor, caller); }, - tooltip: 'Insert an emoticon' + tooltip: 'Insert an emoticon', + icon: material('emoticon-outline.png'), }, // END_COMMAND @@ -2659,7 +2694,8 @@ })); }); }, - tooltip: 'Insert a YouTube video' + tooltip: 'Insert a YouTube video', + icon: material('youtube.png'), }, // END_COMMAND @@ -2694,7 +2730,8 @@ txtExec: function (editor) { defaultCmds.date.exec(editor); }, - tooltip: 'Insert current date' + tooltip: 'Insert current date', + icon: material('calendar-today.png'), }, // END_COMMAND @@ -2726,7 +2763,8 @@ txtExec: function (editor) { defaultCmds.time.exec(editor); }, - tooltip: 'Insert current time' + tooltip: 'Insert current time', + icon: material('clock-outline.png'), }, // END_COMMAND @@ -2756,7 +2794,8 @@ var toggleValue = css(node, 'direction') === 'ltr' ? '' : 'ltr'; css(node, 'direction', toggleValue); }, - tooltip: 'Left-to-Right' + tooltip: 'Left-to-Right', + icon: material('format-pilcrow-arrow-right.png'), }, // END_COMMAND @@ -2785,7 +2824,8 @@ var toggleValue = css(node, 'direction') === 'rtl' ? '' : 'rtl'; css(node, 'direction', toggleValue); }, - tooltip: 'Right-to-Left' + tooltip: 'Right-to-Left', + icon: material('format-pilcrow-arrow-left.png'), }, // END_COMMAND @@ -2793,7 +2833,8 @@ // START_COMMAND: Print print: { exec: 'print', - tooltip: 'Print' + tooltip: 'Print', + icon: material('printer.png'), }, // END_COMMAND @@ -2810,7 +2851,8 @@ defaultCmds.maximize.exec(editor); }, tooltip: 'Maximize', - shortcut: 'Ctrl+Shift+M' + shortcut: 'Ctrl+Shift+M', + icon: material('arrow-expand-all.png'), }, // END_COMMAND @@ -2827,14 +2869,10 @@ defaultCmds.source.exec(editor); }, tooltip: 'View source', - shortcut: 'Ctrl+Shift+S' + shortcut: 'Ctrl+Shift+S', + icon: material('code-tags.png'), }, // END_COMMAND - - // this is here so that commands above can be removed - // without having to remove the , after the last one. - // Needed for IE. - ignore: {} }; var plugins = {}; @@ -4353,20 +4391,6 @@ var allEmoticons = {}; /** - * Current icon set if any - * - * @type {?Object} - * @private - */ - let icons = sceditor.icons; - if(!icons) { - let cssUrl = baseUrl + 'icons/famfamfam/famfamfam.css'; - let html = '<style>@import "' + cssUrl + '";</style>'; - document.head.insertAdjacentHTML('beforeend',html); - sceditor.icons = icons = {}; - } - - /** * Private functions * @private */ @@ -4739,23 +4763,12 @@ return; } - let iconName = command.icon || commandName let shortcut = command.shortcut; + let icon = command.icon; let button = _tmpl('toolbarButton', { name: commandName, - iconName: iconName, - dispName: base._(command.name || - command.tooltip || commandName) + icon: icon || '', }, true).firstChild; - - if (icons.create) { - let icon = icons.create(iconName); - if (icon) { - insertBefore( icon, button.firstChild ); - addClass(button, 'has-icon'); - } - } - button._sceTxtMode = !!command.txtExec; button._sceWysiwygMode = !!command.exec; toggleClass(button, 'disabled', !command.exec); @@ -4902,14 +4915,6 @@ e.preventDefault(); }; - if (icons.create) { - var icon = icons.create('grip'); - if (icon) { - appendChild(grip, icon); - addClass(grip, 'has-icon'); - } - } - appendChild(editorContainer, grip); appendChild(editorContainer, cover); hide(cover); @@ -5082,10 +5087,6 @@ removeClass(editorContainer, 'rtl'); removeClass(editorContainer, 'ltr'); addClass(editorContainer, dir); - - if (icons.rtl) { - icons.rtl(rtl); - } }; /** @@ -6394,10 +6395,6 @@ toggleClass(btn, 'disabled', isDisabled || state < 0); toggleClass(btn, 'active', state > 0); } - - if (icons.update) { - icons.update(isSource, parent, firstBlock); - } }; /**
--- a/src/themes/default.css Wed Aug 17 12:00:57 2022 -0600 +++ b/src/themes/default.css Thu Aug 18 21:36:34 2022 -0600 @@ -285,11 +285,13 @@ .sceditor-button { float: left; cursor: pointer; - padding: 3px 5px; - width: 16px; - height: 20px; + width: 26px; + height: 26px; border-radius: 3px; background-clip: padding-box; + display: flex; + justify-content: center; + align-items: center; } .sceditor-button:hover, .sceditor-button:active, @@ -306,15 +308,9 @@ cursor: default; box-shadow: none; } -.sceditor-button, -.sceditor-button div { - display: block; -} .sceditor-button svg { - display: inline-block; height: 16px; width: 16px; - margin: 2px 0; fill: #111; text-decoration: none; pointer-events: none; @@ -323,21 +319,10 @@ .sceditor-button.disabled svg { fill: #888; } -.sceditor-button div { - display: inline-block; - margin: 2px 0; - padding: 0; - overflow: hidden; - line-height: 0; - font-size: 0; - color: transparent; -} -.sceditor-button.has-icon div { - display: none; -} -.sceditor-button.disabled div { +.sceditor-button.disabled img { opacity: 0.3; } + .text .sceditor-button, .text .sceditor-button div, .sceditor-button.text,