From ad959ce7a636aea7e7d5e7b89d5cd63b9cf7709a Mon Sep 17 00:00:00 2001 From: JFH <20402845+jfhenon@users.noreply.github.com> Date: Thu, 24 Dec 2020 13:47:38 +0100 Subject: [PATCH] progress --- .../jgraduate/LICENSE-Apache2.0.txt | 0 src/editor/{ => components}/jgraduate/README | 0 .../jgraduate/css/jGraduate.css | 0 .../components/jgraduate/css/jPicker.css | 256 ++++++++++++++++++ .../jgraduate/images/AlphaBar.png | Bin .../jgraduate/images/Bars.png | Bin .../jgraduate/images/Maps.png | Bin .../jgraduate/images/NoColor.png | Bin .../jgraduate/images/bar-opacity.png | Bin .../jgraduate/images/map-opacity.png | Bin .../jgraduate/images/mappoint.gif | Bin .../jgraduate/images/mappoint_c.png | Bin .../jgraduate/images/mappoint_f.png | Bin .../jgraduate/images/picker.gif | Bin .../jgraduate/images/preview-opacity.png | Bin .../jgraduate/images/rangearrows.gif | Bin .../jgraduate/images/rangearrows2.gif | Bin .../jgraduate/jQuery.jGraduate.js | 115 ++++---- .../jgraduate/jQuery.jPicker.js | 2 +- src/editor/components/seColorPicker.js | 102 ++++--- src/editor/index.html | 2 - src/editor/jgraduate/css/jPicker.css | 1 - src/editor/svgedit.css | 4 - 23 files changed, 377 insertions(+), 105 deletions(-) rename src/editor/{ => components}/jgraduate/LICENSE-Apache2.0.txt (100%) rename src/editor/{ => components}/jgraduate/README (100%) rename src/editor/{ => components}/jgraduate/css/jGraduate.css (100%) create mode 100644 src/editor/components/jgraduate/css/jPicker.css rename src/editor/{ => components}/jgraduate/images/AlphaBar.png (100%) rename src/editor/{ => components}/jgraduate/images/Bars.png (100%) rename src/editor/{ => components}/jgraduate/images/Maps.png (100%) rename src/editor/{ => components}/jgraduate/images/NoColor.png (100%) rename src/editor/{ => components}/jgraduate/images/bar-opacity.png (100%) rename src/editor/{ => components}/jgraduate/images/map-opacity.png (100%) rename src/editor/{ => components}/jgraduate/images/mappoint.gif (100%) rename src/editor/{ => components}/jgraduate/images/mappoint_c.png (100%) rename src/editor/{ => components}/jgraduate/images/mappoint_f.png (100%) rename src/editor/{ => components}/jgraduate/images/picker.gif (100%) rename src/editor/{ => components}/jgraduate/images/preview-opacity.png (100%) rename src/editor/{ => components}/jgraduate/images/rangearrows.gif (100%) rename src/editor/{ => components}/jgraduate/images/rangearrows2.gif (100%) rename src/editor/{ => components}/jgraduate/jQuery.jGraduate.js (93%) rename src/editor/{ => components}/jgraduate/jQuery.jPicker.js (99%) delete mode 100644 src/editor/jgraduate/css/jPicker.css diff --git a/src/editor/jgraduate/LICENSE-Apache2.0.txt b/src/editor/components/jgraduate/LICENSE-Apache2.0.txt similarity index 100% rename from src/editor/jgraduate/LICENSE-Apache2.0.txt rename to src/editor/components/jgraduate/LICENSE-Apache2.0.txt diff --git a/src/editor/jgraduate/README b/src/editor/components/jgraduate/README similarity index 100% rename from src/editor/jgraduate/README rename to src/editor/components/jgraduate/README diff --git a/src/editor/jgraduate/css/jGraduate.css b/src/editor/components/jgraduate/css/jGraduate.css similarity index 100% rename from src/editor/jgraduate/css/jGraduate.css rename to src/editor/components/jgraduate/css/jGraduate.css diff --git a/src/editor/components/jgraduate/css/jPicker.css b/src/editor/components/jgraduate/css/jPicker.css new file mode 100644 index 00000000..831a171d --- /dev/null +++ b/src/editor/components/jgraduate/css/jPicker.css @@ -0,0 +1,256 @@ +.jPicker .Icon { + display: inline-block; + height: 24px; + position: relative; + text-align: left; + width: 25px +} + +.jPicker .Icon span.Color, .jPicker .Icon span.Alpha { + background-position: 2px 2px; + display: block; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100% +} + +.jPicker .Icon span.Image { + background-repeat: no-repeat; + cursor: pointer; + display: block; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100% +} + +.jPicker.Container { + z-index: 10 +} + +table.jPicker { + background-color: #efefef; + border: 1px outset #666; + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px!important; + margin: 0; + padding: 5px; + width: 545px; + z-index: 20 +} + +.jPicker .Move { + background-color: #ddd; + border-color: #fff #666 #666 #fff; + border-style: solid; + border-width: 1px; + cursor: move; + height: 12px; + padding: 0 +} + +.jPicker .Title { + font-size: 11px!important; + font-weight: bold; + margin: -2px 0 0 0; + padding: 0; + text-align: center; + width: 100% +} + +.jPicker div.Map { + border-bottom: 2px solid #fff; + border-left: 2px solid #9a9a9a; + border-right: 2px solid #fff; + border-top: 2px solid #9a9a9a; + cursor: crosshair; + height: 260px; + margin: 0 5px 0 5px; + overflow: hidden; + padding: 0; + position: relative; + width: 260px +} + +.jPicker div[class="Map"] { + height: 256px; + width: 256px +} + +.jPicker div.Bar { + border-bottom: 2px solid #fff; + border-left: 2px solid #9a9a9a; + border-right: 2px solid #fff; + border-top: 2px solid #9a9a9a; + cursor: n-resize; + height: 260px; + margin: 12px 10px 0 5px; + overflow: hidden; + padding: 0; + position: relative; + width: 24px +} + +.jPicker div[class="Bar"] { + height: 256px; + width: 20px +} + +.jPicker .Map .Map1, .jPicker .Map .Map2, .jPicker .Map .Map3, .jPicker .Bar .Map1, .jPicker .Bar .Map2, .jPicker .Bar .Map3, .jPicker .Bar .Map4, .jPicker .Bar .Map5, .jPicker .Bar .Map6 { + background-color: transparent; + background-image: none; + display: block; + left: 0; + position: absolute; + top: 0 +} + +.jPicker .Map .Map1, .jPicker .Map .Map2, .jPicker .Map .Map3 { + height: 2596px; + width: 256px +} + +.jPicker .Bar .Map1, .jPicker .Bar .Map2, .jPicker .Bar .Map3, .jPicker .Bar .Map4 { + height: 3896px; + width: 20px +} + +.jPicker .Bar .Map5, .jPicker .Bar .Map6 { + height: 256px; + width: 20px +} + +.jPicker .Map .Map1, .jPicker .Map .Map2, .jPicker .Bar .Map6 { + background-repeat: no-repeat +} + +.jPicker .Map .Map3, .jPicker .Bar .Map5 { + background-repeat: repeat +} + +.jPicker .Bar .Map1, .jPicker .Bar .Map2, .jPicker .Bar .Map3, .jPicker .Bar .Map4 { + background-repeat: repeat-x +} + +.jPicker .Map .Arrow { + display: block; + position: absolute +} + +.jPicker .Bar .Arrow { + display: block; + left: 0; + position: absolute +} + +.jPicker .Preview { + font-size: 9px; + text-align: center +} + +.jPicker .Preview div { + border: 2px inset #eee; + height: 62px; + margin: 0 auto; + padding: 0; + width: 62px +} + +.jPicker .Preview div span { + border: 1px solid #000; + display: block; + height: 30px; + margin: 0 auto; + padding: 0; + width: 60px +} + +.jPicker .Preview .Active { + border-bottom-width: 0 +} + +.jPicker .Preview .Current { + border-top-width: 0; + cursor: pointer +} + +.jPicker .Button { + text-align: center; + width: 115px +} + +.jPicker .Button input { + width: 100px +} + +.jPicker .Button .Ok { + margin: 12px 0 5px 0 +} + +.jPicker td.Radio { + margin: 0; + padding: 0; + width: 31px +} + +.jPicker td.Radio input { + margin: 0 5px 0 0; + padding: 0 +} + +.jPicker td.Text { + font-size: 12px!important; + height: 22px; + margin: 0; + padding: 0; + text-align: left; + width: 70px +} + +.jPicker tr.Hex td.Text { + width: 100px +} + +.jPicker td.Text input { + background-color: #fff; + border: 1px inset #aaa; + height: 19px; + margin: 0 0 0 5px; + text-align: left; + width: 30px +} + +.jPicker td[class="Text"] input { + height: 15px +} + +.jPicker tr.Hex td.Text input.Hex { + width: 50px +} + +.jPicker tr.Hex td.Text input.AHex { + width: 20px +} + +.jPicker .Grid { + text-align: center; + width: 114px +} + +.jPicker .Grid span.QuickColor { + border: 1px inset #aaa; + cursor: pointer; + display: inline-block; + height: 15px; + line-height: 15px; + margin: 0; + padding: 0; + width: 19px +} + +.jPicker .Grid span[class="QuickColor"] { + width: 17px +} \ No newline at end of file diff --git a/src/editor/jgraduate/images/AlphaBar.png b/src/editor/components/jgraduate/images/AlphaBar.png similarity index 100% rename from src/editor/jgraduate/images/AlphaBar.png rename to src/editor/components/jgraduate/images/AlphaBar.png diff --git a/src/editor/jgraduate/images/Bars.png b/src/editor/components/jgraduate/images/Bars.png similarity index 100% rename from src/editor/jgraduate/images/Bars.png rename to src/editor/components/jgraduate/images/Bars.png diff --git a/src/editor/jgraduate/images/Maps.png b/src/editor/components/jgraduate/images/Maps.png similarity index 100% rename from src/editor/jgraduate/images/Maps.png rename to src/editor/components/jgraduate/images/Maps.png diff --git a/src/editor/jgraduate/images/NoColor.png b/src/editor/components/jgraduate/images/NoColor.png similarity index 100% rename from src/editor/jgraduate/images/NoColor.png rename to src/editor/components/jgraduate/images/NoColor.png diff --git a/src/editor/jgraduate/images/bar-opacity.png b/src/editor/components/jgraduate/images/bar-opacity.png similarity index 100% rename from src/editor/jgraduate/images/bar-opacity.png rename to src/editor/components/jgraduate/images/bar-opacity.png diff --git a/src/editor/jgraduate/images/map-opacity.png b/src/editor/components/jgraduate/images/map-opacity.png similarity index 100% rename from src/editor/jgraduate/images/map-opacity.png rename to src/editor/components/jgraduate/images/map-opacity.png diff --git a/src/editor/jgraduate/images/mappoint.gif b/src/editor/components/jgraduate/images/mappoint.gif similarity index 100% rename from src/editor/jgraduate/images/mappoint.gif rename to src/editor/components/jgraduate/images/mappoint.gif diff --git a/src/editor/jgraduate/images/mappoint_c.png b/src/editor/components/jgraduate/images/mappoint_c.png similarity index 100% rename from src/editor/jgraduate/images/mappoint_c.png rename to src/editor/components/jgraduate/images/mappoint_c.png diff --git a/src/editor/jgraduate/images/mappoint_f.png b/src/editor/components/jgraduate/images/mappoint_f.png similarity index 100% rename from src/editor/jgraduate/images/mappoint_f.png rename to src/editor/components/jgraduate/images/mappoint_f.png diff --git a/src/editor/jgraduate/images/picker.gif b/src/editor/components/jgraduate/images/picker.gif similarity index 100% rename from src/editor/jgraduate/images/picker.gif rename to src/editor/components/jgraduate/images/picker.gif diff --git a/src/editor/jgraduate/images/preview-opacity.png b/src/editor/components/jgraduate/images/preview-opacity.png similarity index 100% rename from src/editor/jgraduate/images/preview-opacity.png rename to src/editor/components/jgraduate/images/preview-opacity.png diff --git a/src/editor/jgraduate/images/rangearrows.gif b/src/editor/components/jgraduate/images/rangearrows.gif similarity index 100% rename from src/editor/jgraduate/images/rangearrows.gif rename to src/editor/components/jgraduate/images/rangearrows.gif diff --git a/src/editor/jgraduate/images/rangearrows2.gif b/src/editor/components/jgraduate/images/rangearrows2.gif similarity index 100% rename from src/editor/jgraduate/images/rangearrows2.gif rename to src/editor/components/jgraduate/images/rangearrows2.gif diff --git a/src/editor/jgraduate/jQuery.jGraduate.js b/src/editor/components/jgraduate/jQuery.jGraduate.js similarity index 93% rename from src/editor/jgraduate/jQuery.jGraduate.js rename to src/editor/components/jgraduate/jQuery.jGraduate.js index 78a5a820..d27a85aa 100644 --- a/src/editor/jgraduate/jQuery.jGraduate.js +++ b/src/editor/components/jgraduate/jQuery.jGraduate.js @@ -17,6 +17,11 @@ * @example $.jGraduate.Paint({hex: '#rrggbb', linearGradient: o}); // throws an exception? */ +/** + * @todo JFH: This jQuery plugin was adapted to work within a Web Component. + * We have to rewrite it as a pure webcomponent. +*/ + /* eslint-disable jsdoc/require-property */ /** * The jQuery namespace. @@ -273,6 +278,9 @@ export default function jQueryPluginJGraduate ($) { $settings = $.extend(true, {}, $.fn.jGraduateDefaults, options || {}), id = $this.attr('id'), idref = '#' + $this.attr('id') + ' '; + // JFH !!!!! + const $shadowRoot = this.parentNode; + const $wc = (selector) => $($shadowRoot.querySelectorAll(selector)); if (!idref) { /* await */ $.alert('Container element must have an id attribute to maintain unique id strings for sub-elements.'); @@ -332,8 +340,9 @@ export default function jQueryPluginJGraduate ($) { '
' + '
' ); - const colPicker = $(idref + '> .jGraduate_colPick'); - const gradPicker = $(idref + '> .jGraduate_gradPick'); + /* JFH !!!! */ + const colPicker = $wc(idref + '> .jGraduate_colPick'); + const gradPicker = $wc(idref + '> .jGraduate_gradPick'); gradPicker.html( '
' + @@ -440,9 +449,9 @@ export default function jQueryPluginJGraduate ($) { const attrInput = {}; const SLIDERW = 145; - $('.jGraduate_SliderBar').width(SLIDERW); - - const container = $('#' + id + '_jGraduate_GradContainer')[0]; + $wc('.jGraduate_SliderBar').width(SLIDERW); + // JFH !!!!!! + const container = $wc('#' + id + '_jGraduate_GradContainer')[0]; const svg = mkElem('svg', { id: id + '_jgraduate_svg', @@ -491,7 +500,8 @@ export default function jQueryPluginJGraduate ($) { let stopGroup; // eslint-disable-line prefer-const if (isSolid) { - grad = curGradient = $('#' + id + '_lg_jgraduate_grad')[0]; + // JFH !!!!!!!! + grad = curGradient = $wc('#' + id + '_lg_jgraduate_grad')[0]; color = $this.paint[curType]; mkStop(0, '#' + color, 1); @@ -578,18 +588,6 @@ export default function jQueryPluginJGraduate ($) { focusCoord[0].id = id + '_jGraduate_focusCoord'; - // const coords = $(idref + ' .grad_coord'); - - // $(container).hover(function () { - // coords.animate({ - // opacity: 1 - // }, 500); - // }, function () { - // coords.animate({ - // opacity: .2 - // }, 500); - // }); - let showFocus; $.each(['x1', 'y1', 'x2', 'y2', 'cx', 'cy', 'fx', 'fy'], function (i, attr) { const isRadial = isNaN(attr[1]); @@ -606,7 +604,7 @@ export default function jQueryPluginJGraduate ($) { } } - attrInput[attr] = $('#' + id + '_jGraduate_' + attr) + attrInput[attr] = $wc('#' + id + '_jGraduate_' + attr) .val(attrval) .change(function () { // TODO: Support values < 0 and > 1 (zoomable preview?) @@ -683,14 +681,14 @@ export default function jQueryPluginJGraduate ($) { e.preventDefault(); return false; }).data('stop', stop).data('bg', pathbg).dblclick(function () { - $('div.jGraduate_LightBox').show(); + $wc('div.jGraduate_LightBox').show(); const colorhandle = this; let stopOpacity = Number(stop.getAttribute('stop-opacity')) || 1; let stopColor = stop.getAttribute('stop-color') || 1; let thisAlpha = (Number.parseFloat(stopOpacity) * 255).toString(16); while (thisAlpha.length < 2) { thisAlpha = '0' + thisAlpha; } colr = stopColor.substr(1) + thisAlpha; - $('#' + id + '_jGraduate_stopPicker').css({left: 100, bottom: 15}).jPicker({ + $wc('#' + id + '_jGraduate_stopPicker').css({left: 100, bottom: 15}).jPicker({ window: {title: 'Pick the start color and opacity for the gradient'}, images: {clientPath: $settings.images.clientPath}, color: {active: colr, alphaSupport: true} @@ -701,11 +699,11 @@ export default function jQueryPluginJGraduate ($) { colorhandle.setAttribute('fill-opacity', stopOpacity); stop.setAttribute('stop-color', stopColor); stop.setAttribute('stop-opacity', stopOpacity); - $('div.jGraduate_LightBox').hide(); - $('#' + id + '_jGraduate_stopPicker').hide(); + $wc('div.jGraduate_LightBox').hide(); + $wc('#' + id + '_jGraduate_stopPicker').hide(); }, null, function () { - $('div.jGraduate_LightBox').hide(); - $('#' + id + '_jGraduate_stopPicker').hide(); + $wc('div.jGraduate_LightBox').hide(); + $wc('#' + id + '_jGraduate_stopPicker').hide(); }); }); @@ -735,13 +733,13 @@ export default function jQueryPluginJGraduate ($) { */ function remStop () { delStop.setAttribute('display', 'none'); - const path = $(curStop); + const path = $wc(curStop); const stop = path.data('stop'); const bg = path.data('bg'); - $([curStop, stop, bg]).remove(); + $wc([curStop, stop, bg]).remove(); } - const stopMakerDiv = $('#' + id + '_jGraduate_StopSlider'); + const stopMakerDiv = $wc('#' + id + '_jGraduate_StopSlider'); let stops, curStop, drag; @@ -761,9 +759,6 @@ export default function jQueryPluginJGraduate ($) { if (curStop) curStop.setAttribute('stroke', '#000'); item.setAttribute('stroke', 'blue'); curStop = item; - // stops = $('stop'); - // opac_select.val(curStop.attr('fill-opacity') || 1); - // root.append(delStop); } let stopOffset; @@ -792,7 +787,7 @@ export default function jQueryPluginJGraduate ($) { const rot = angle ? 'rotate(' + angle + ',' + cX + ',' + cY + ') ' : ''; if (scaleX === 1 && scaleY === 1) { curGradient.removeAttribute('gradientTransform'); - // $('#ang').addClass('dis'); + // $wc('#ang').addClass('dis'); } else { const x = -cX * (scaleX - 1); const y = -cY * (scaleY - 1); @@ -801,7 +796,7 @@ export default function jQueryPluginJGraduate ($) { rot + 'translate(' + x + ',' + y + ') scale(' + scaleX + ',' + scaleY + ')' ); - // $('#ang').removeClass('dis'); + // $wc('#ang').removeClass('dis'); } } @@ -981,22 +976,22 @@ export default function jQueryPluginJGraduate ($) { previewRect.setAttribute('fill-opacity', gradalpha / 100); - $('#' + id + ' div.grad_coord').mousedown(function (evt) { + $wc(id + ' div.grad_coord').mousedown(function (evt) { evt.preventDefault(); - draggingCoord = $(this); + draggingCoord = $wc(this); // const sPos = draggingCoord.offset(); offset = draggingCoord.parent().offset(); $win.mousemove(onCoordDrag).mouseup(onCoordUp); }); // bind GUI elements - $('#' + id + '_jGraduate_Ok').bind('click', function () { + $wc(id + '_jGraduate_Ok').bind('click', function () { $this.paint.type = curType; $this.paint[curType] = curGradient.cloneNode(true); $this.paint.solidColor = null; okClicked(); }); - $('#' + id + '_jGraduate_Cancel').bind('click', function (paint) { + $wc(id + '_jGraduate_Cancel').bind('click', function (paint) { cancelClicked(); }); @@ -1010,11 +1005,11 @@ export default function jQueryPluginJGraduate ($) { } } - $('#' + id + '_jGraduate_match_ctr')[0].checked = !showFocus; + $wc('#' + id + '_jGraduate_match_ctr')[0].checked = !showFocus; let lastfx, lastfy; - $('#' + id + '_jGraduate_match_ctr').change(function () { + $wc('#' + id + '_jGraduate_match_ctr').change(function () { showFocus = !this.checked; focusCoord.toggle(showFocus); attrInput.fx.val(''); @@ -1157,13 +1152,13 @@ export default function jQueryPluginJGraduate ($) { }; $.each(sliders, function (type, data) { - const handle = $(data.handle); + const handle = $wc(data.handle); handle.mousedown(function (evt) { const parent = handle.parent(); slider = { type, elem: handle, - input: $(data.input), + input: $wc(data.input), parent, offset: parent.offset() }; @@ -1171,7 +1166,7 @@ export default function jQueryPluginJGraduate ($) { evt.preventDefault(); }); - $(data.input).val(data.val).change(function () { + $wc(data.input).val(data.val).change(function () { const isRad = curType === 'radialGradient'; let val = Number(this.value); let xpos = 0; @@ -1261,28 +1256,30 @@ export default function jQueryPluginJGraduate ($) { null, function () { cancelClicked(); } ); - - const tabs = $(idref + ' .jGraduate_tabs li'); + // JFH !!!! + // const tabs = $wc(idref + ' .jGraduate_tabs li'); + const tabs = $wc('.jGraduate_tabs li'); tabs.click(function () { tabs.removeClass('jGraduate_tab_current'); $(this).addClass('jGraduate_tab_current'); - $(idref + ' > div').hide(); + $wc(idref + ' > div').hide(); const type = $(this).attr('data-type'); - /* const container = */ $(idref + ' .jGraduate_gradPick').show(); + $wc(idref + ' .jGraduate_gradPick').show(); if (type === 'rg' || type === 'lg') { // Show/hide appropriate fields - $('.jGraduate_' + type + '_field').show(); - $('.jGraduate_' + (type === 'lg' ? 'rg' : 'lg') + '_field').hide(); + $wc('.jGraduate_' + type + '_field').show(); + $wc('.jGraduate_' + (type === 'lg' ? 'rg' : 'lg') + '_field').hide(); - $('#' + id + '_jgraduate_rect')[0].setAttribute('fill', 'url(#' + id + '_' + type + '_jgraduate_grad)'); + $wc('#' + id + '_jgraduate_rect')[0] + .setAttribute('fill', 'url(#' + id + '_' + type + '_jgraduate_grad)'); // Copy stops curType = type === 'lg' ? 'linearGradient' : 'radialGradient'; - $('#' + id + '_jGraduate_OpacInput').val($this.paint.alpha).change(); + $wc('#' + id + '_jGraduate_OpacInput').val($this.paint.alpha).change(); - const newGrad = $('#' + id + '_' + type + '_jgraduate_grad')[0]; + const newGrad = $wc('#' + id + '_' + type + '_jgraduate_grad')[0]; if (curGradient !== newGrad) { const curStops = $(curGradient).find('stop'); @@ -1292,27 +1289,27 @@ export default function jQueryPluginJGraduate ($) { curGradient.setAttribute('spreadMethod', sm); } showFocus = type === 'rg' && curGradient.getAttribute('fx') !== null && !(cx === fx && cy === fy); - $('#' + id + '_jGraduate_focusCoord').toggle(showFocus); + $wc('#' + id + '_jGraduate_focusCoord').toggle(showFocus); if (showFocus) { - $('#' + id + '_jGraduate_match_ctr')[0].checked = false; + $wc('#' + id + '_jGraduate_match_ctr')[0].checked = false; } } else { - $(idref + ' .jGraduate_gradPick').hide(); - $(idref + ' .jGraduate_colPick').show(); + $wc(idref + ' .jGraduate_gradPick').hide(); + $wc(idref + ' .jGraduate_colPick').show(); } }); - $(idref + ' > div').hide(); + $wc(idref + ' > div').hide(); tabs.removeClass('jGraduate_tab_current'); let tab; switch ($this.paint.type) { case 'linearGradient': - tab = $(idref + ' .jGraduate_tab_lingrad'); + tab = $wc(idref + ' .jGraduate_tab_lingrad'); break; case 'radialGradient': - tab = $(idref + ' .jGraduate_tab_radgrad'); + tab = $wc(idref + ' .jGraduate_tab_radgrad'); break; default: - tab = $(idref + ' .jGraduate_tab_color'); + tab = $wc(idref + ' .jGraduate_tab_color'); break; } $this.show(); diff --git a/src/editor/jgraduate/jQuery.jPicker.js b/src/editor/components/jgraduate/jQuery.jPicker.js similarity index 99% rename from src/editor/jgraduate/jQuery.jPicker.js rename to src/editor/components/jgraduate/jQuery.jPicker.js index 4b6c41c7..86232ac6 100755 --- a/src/editor/jgraduate/jQuery.jPicker.js +++ b/src/editor/components/jgraduate/jQuery.jPicker.js @@ -1556,7 +1556,7 @@ const jPicker = function ($) { const all = ui.val('all'); activePreview.css({backgroundColor: (all && '#' + all.hex) || 'transparent'}); setAlpha.call(that, activePreview, (all && toFixedNumeric((all.a * 100) / 255, 4)) || 0); - } catch (e) { } + } catch (e) {} } /** * @param {external:jQuery} ui diff --git a/src/editor/components/seColorPicker.js b/src/editor/components/seColorPicker.js index 0a633fc8..443dd6c1 100644 --- a/src/editor/components/seColorPicker.js +++ b/src/editor/components/seColorPicker.js @@ -1,6 +1,6 @@ /* globals jQuery */ -import jQueryPluginJGraduate from '../jgraduate/jQuery.jGraduate.js'; -import jQueryPluginJPicker from '../jgraduate/jQuery.jPicker.js'; +import jQueryPluginJGraduate from './jgraduate/jQuery.jGraduate.js'; +import jQueryPluginJPicker from './jgraduate/jQuery.jPicker.js'; import PaintBox from './PaintBox.js'; const $ = [ @@ -11,7 +11,9 @@ const $ = [ const template = document.createElement('template'); template.innerHTML = `
- icon - + +
@@ -46,7 +51,7 @@ template.innerHTML = `
`; /** - * @class SeMenuItem + * @class SeColorPicker */ export class SeColorPicker extends HTMLElement { /** @@ -57,17 +62,18 @@ export class SeColorPicker extends HTMLElement { // create the shadowDom and insert the template this._shadowRoot = this.attachShadow({mode: 'open'}); this._shadowRoot.appendChild(template.content.cloneNode(true)); - this.$img = this._shadowRoot.querySelector('img'); - this.$label = this._shadowRoot.querySelector('label'); - this.$picker = this._shadowRoot.getElementById('picker'); + this.$logo = this._shadowRoot.getElementById('logo'); + this.$label = this._shadowRoot.getElementById('label'); this.paintBox = null; + this.$picker = this._shadowRoot.getElementById('picker'); + this.$color_picker = this._shadowRoot.getElementById('color_picker'); } /** * @function observedAttributes * @returns {any} observed */ static get observedAttributes () { - return ['label', 'src', 'value', 'picker']; + return ['label', 'src', 'type']; } /** * @function attributeChangedCallback @@ -80,10 +86,13 @@ export class SeColorPicker extends HTMLElement { if (oldValue === newValue) return; switch (name) { case 'src': - this.$img.setAttribute('src', newValue); + this.$logo.setAttribute('src', newValue); break; case 'label': - this.$label.setAttribute('title', newValue); + this.setAttribute('title', newValue); + break; + case 'type': + this.$label.setAttribute(`Pick a ${newValue} Paint and Opacity`); break; default: // eslint-disable-next-line no-console @@ -96,7 +105,7 @@ export class SeColorPicker extends HTMLElement { * @returns {any} */ get label () { - return this.getAttribute('label'); + return this.$label.getAttribute('title'); } /** @@ -106,6 +115,21 @@ export class SeColorPicker extends HTMLElement { set label (value) { this.setAttribute('label', value); } + /** + * @function get + * @returns {any} + */ + get type () { + return this.getAttribute('type'); + } + + /** + * @function set + * @returns {void} + */ + set type (value) { + this.setAttribute('type', value); + } /** * @function get * @returns {any} @@ -138,29 +162,31 @@ export class SeColorPicker extends HTMLElement { connectedCallback () { this.paintBox = new PaintBox(this, this.type); let {paint} = this.paintBox; - $('#color_picker') - .draggable({ - cancel: '.jGraduate_tabs, .jGraduate_colPick, .jGraduate_gradPick, .jPicker', - containment: 'window' - }) - .jGraduate( - { - images: {clientPath: './jgraduate/images/'}, - paint, - window: {pickerTitle: this.label}, - // images: {clientPath: configObj.curConfig.imgPath}, - newstop: 'inverse' - }, - function (p) { - paint = new $.jGraduate.Paint(p); - this.paintBox.setPaint(paint); - this.svgCanvas.setPaint(this.picker, paint); - $('#color_picker').hide(); - }, - () => { - $('#color_picker').hide(); - } - ); + $(this.$picker).click(() => { + $(this.$color_picker) + .draggable({ + cancel: '.jGraduate_tabs, .jGraduate_colPick, .jGraduate_gradPick, .jPicker', + containment: 'window' + }) + .jGraduate( + { + images: {clientPath: './components/jgraduate/images/'}, + paint, + window: {pickerTitle: this.label}, + // images: {clientPath: configObj.curConfig.imgPath}, + newstop: 'inverse' + }, + function (p) { + paint = new $.jGraduate.Paint(p); + this.paintBox.setPaint(paint); + this.svgCanvas.setPaint(this.picker, paint); + $('#color_picker').hide(); + }, + () => { + $('#color_picker').hide(); + } + ); + }); } } diff --git a/src/editor/index.html b/src/editor/index.html index f18e975e..aa31af93 100644 --- a/src/editor/index.html +++ b/src/editor/index.html @@ -398,8 +398,6 @@
  • - -
    diff --git a/src/editor/jgraduate/css/jPicker.css b/src/editor/jgraduate/css/jPicker.css deleted file mode 100644 index f0f3a10f..00000000 --- a/src/editor/jgraduate/css/jPicker.css +++ /dev/null @@ -1 +0,0 @@ -.jPicker .Icon{display:inline-block;height:24px;position:relative;text-align:left;width:25px}.jPicker .Icon span.Color,.jPicker .Icon span.Alpha{background-position:2px 2px;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker .Icon span.Image{background-repeat:no-repeat;cursor:pointer;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.jPicker.Container{z-index:10}table.jPicker{background-color:#efefef;border:1px outset #666;font-family:Arial,Helvetica,Sans-Serif;font-size:12px!important;margin:0;padding:5px;width:545px;z-index:20}.jPicker .Move{background-color:#ddd;border-color:#fff #666 #666 #fff;border-style:solid;border-width:1px;cursor:move;height:12px;padding:0}.jPicker .Title{font-size:11px!important;font-weight:bold;margin:-2px 0 0 0;padding:0;text-align:center;width:100%}.jPicker div.Map{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:crosshair;height:260px;margin:0 5px 0 5px;overflow:hidden;padding:0;position:relative;width:260px}.jPicker div[class="Map"]{height:256px;width:256px}.jPicker div.Bar{border-bottom:2px solid #fff;border-left:2px solid #9a9a9a;border-right:2px solid #fff;border-top:2px solid #9a9a9a;cursor:n-resize;height:260px;margin:12px 10px 0 5px;overflow:hidden;padding:0;position:relative;width:24px}.jPicker div[class="Bar"]{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3,.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4,.jPicker .Bar .Map5,.jPicker .Bar .Map6{background-color:transparent;background-image:none;display:block;left:0;position:absolute;top:0}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Map .Map3{height:2596px;width:256px}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{height:3896px;width:20px}.jPicker .Bar .Map5,.jPicker .Bar .Map6{height:256px;width:20px}.jPicker .Map .Map1,.jPicker .Map .Map2,.jPicker .Bar .Map6{background-repeat:no-repeat}.jPicker .Map .Map3,.jPicker .Bar .Map5{background-repeat:repeat}.jPicker .Bar .Map1,.jPicker .Bar .Map2,.jPicker .Bar .Map3,.jPicker .Bar .Map4{background-repeat:repeat-x}.jPicker .Map .Arrow{display:block;position:absolute}.jPicker .Bar .Arrow{display:block;left:0;position:absolute}.jPicker .Preview{font-size:9px;text-align:center}.jPicker .Preview div{border:2px inset #eee;height:62px;margin:0 auto;padding:0;width:62px}.jPicker .Preview div span{border:1px solid #000;display:block;height:30px;margin:0 auto;padding:0;width:60px}.jPicker .Preview .Active{border-bottom-width:0}.jPicker .Preview .Current{border-top-width:0;cursor:pointer}.jPicker .Button{text-align:center;width:115px}.jPicker .Button input{width:100px}.jPicker .Button .Ok{margin:12px 0 5px 0}.jPicker td.Radio{margin:0;padding:0;width:31px}.jPicker td.Radio input{margin:0 5px 0 0;padding:0}.jPicker td.Text{font-size:12px!important;height:22px;margin:0;padding:0;text-align:left;width:70px}.jPicker tr.Hex td.Text{width:100px}.jPicker td.Text input{background-color:#fff;border:1px inset #aaa;height:19px;margin:0 0 0 5px;text-align:left;width:30px}.jPicker td[class="Text"] input{height:15px}.jPicker tr.Hex td.Text input.Hex{width:50px}.jPicker tr.Hex td.Text input.AHex{width:20px}.jPicker .Grid{text-align:center;width:114px}.jPicker .Grid span.QuickColor{border:1px inset #aaa;cursor:pointer;display:inline-block;height:15px;line-height:15px;margin:0;padding:0;width:19px}.jPicker .Grid span[class="QuickColor"]{width:17px} diff --git a/src/editor/svgedit.css b/src/editor/svgedit.css index 174a2455..79935b71 100644 --- a/src/editor/svgedit.css +++ b/src/editor/svgedit.css @@ -1,7 +1,3 @@ -@import "./jgraduate/css/jGraduate.css"; -@import "./jgraduate/css/jPicker.css"; - - body { background: #D0D0D0; }