Merge pull request #740 from ONLYOFFICE/feature/sse-conditional-formatting
Feature/sse conditional formatting
This commit is contained in:
commit
f9d5052638
|
@ -279,7 +279,7 @@ define([
|
|||
|
||||
Common.UI.ComboBoxColor = Common.UI.ComboBox.extend(_.extend({
|
||||
template: _.template([
|
||||
'<div class="input-group combobox input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<div class="input-group combobox combo-color input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<div class="form-control" style="padding:2px 14px 2px 3px; <%= style %> display: block;">',
|
||||
'<div style="display: inline-block;overflow: hidden;width: 100%;height: 100%;"></div>',
|
||||
'</div>',
|
||||
|
@ -292,7 +292,7 @@ define([
|
|||
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
|
||||
'<% } else { %>',
|
||||
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
|
||||
'<a tabindex="-1" type="menuitem" style="padding: 5px;"><div style="height: 15px;background-color: #<%= item.value %>"></div></a>',
|
||||
'<a tabindex="-1" type="menuitem" style="padding: 5px;"><div style="height: 15px;<%= item.styleStr %>"><%= scope.getDisplayValue(item) %></div></a>',
|
||||
'</li>',
|
||||
'<% } %>',
|
||||
'<% }); %>',
|
||||
|
@ -319,12 +319,13 @@ define([
|
|||
updateFormControl: function(record) {
|
||||
var formcontrol = $(this.el).find('.form-control > div');
|
||||
|
||||
formcontrol[0].innerHTML = record.get('displayValue');
|
||||
if (record.get('value')!=-1) {
|
||||
formcontrol[0].innerHTML = '';
|
||||
formcontrol.css({'background': '#' + record.get('value'), 'margin-top': '0'});
|
||||
formcontrol.css({'margin-top': '0'});
|
||||
formcontrol.css(record.get('styleObj'));
|
||||
} else {
|
||||
formcontrol[0].innerHTML = record.get('displayValue');
|
||||
formcontrol.css({'background': '', 'margin-top': '1px'});
|
||||
formcontrol.css({'margin-top': '1px'});
|
||||
formcontrol.css(record.get('styleObj'));
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -339,8 +340,9 @@ define([
|
|||
$('#' + this._selectedItem.get('id'), $(this.el)).addClass('selected');
|
||||
} else {
|
||||
var formcontrol = $(this.el).find('.form-control > div');
|
||||
formcontrol[0].innerHTML = '';
|
||||
formcontrol.css('background', '');
|
||||
formcontrol[0].innerHTML = value;
|
||||
formcontrol.css('margin-top', '1px');
|
||||
formcontrol.css({'color': '', 'text-align': '', 'background': '', 'border': ''});
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -357,7 +359,7 @@ define([
|
|||
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
|
||||
'<% } else { %>',
|
||||
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
|
||||
'<a tabindex="-1" type="menuitem" style="padding: 5px;"><div style="height: 15px;background-color: #<%= item.value %>"></div></a>',
|
||||
'<a tabindex="-1" type="menuitem" style="padding: 5px;"><div style="height: 15px;<%= item.styleStr %>"><%= scope.getDisplayValue(item) %></div></a>',
|
||||
'</li>',
|
||||
'<% } %>',
|
||||
'<% }); %>'
|
||||
|
@ -382,4 +384,120 @@ define([
|
|||
|
||||
}, Common.UI.ComboBoxColor || {}));
|
||||
|
||||
Common.UI.ComboBoxIcons= Common.UI.ComboBox.extend(_.extend({
|
||||
template: _.template([
|
||||
'<div class="input-group combobox combo-color input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<div class="form-control" style="padding:2px 0 2px 3px; <%= style %> display: block;">',
|
||||
'<div style="display: inline-block;overflow: hidden;width: 100%;height: 100%;"></div>',
|
||||
'</div>',
|
||||
'<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
|
||||
'<span class="caret"></span>',
|
||||
'</button>',
|
||||
'<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">',
|
||||
'<% _.each(items, function(item) { %>',
|
||||
'<% if (item.value==-1) { %>',
|
||||
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
|
||||
'<% } else { %>',
|
||||
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
|
||||
'<a tabindex="-1" type="menuitem" style="padding: 5px;">',
|
||||
'<% _.each(item.data.iconSet, function(icon) { %>',
|
||||
'<img src="<%= item.data.icons.at(icon-1).get(\'icon\') %>" style="width:16px;height:16px;margin-right: 5px;">',
|
||||
'<% }) %>',
|
||||
'</a>',
|
||||
'</li>',
|
||||
'<% } %>',
|
||||
'<% }); %>',
|
||||
'</ul>',
|
||||
'</div>'
|
||||
].join('')),
|
||||
|
||||
itemClicked: function (e) {
|
||||
var el = $(e.currentTarget).parent();
|
||||
|
||||
this._selectedItem = this.store.findWhere({
|
||||
id: el.attr('id')
|
||||
});
|
||||
if (this._selectedItem) {
|
||||
$('.selected', $(this.el)).removeClass('selected');
|
||||
el.addClass('selected');
|
||||
this.updateFormControl(this._selectedItem);
|
||||
|
||||
this.trigger('selected', this, _.extend({}, this._selectedItem.toJSON()), e);
|
||||
e.preventDefault();
|
||||
}
|
||||
},
|
||||
|
||||
updateFormControl: function(record) {
|
||||
var formcontrol = $(this.el).find('.form-control > div');
|
||||
|
||||
if (record.get('value')!=-1) {
|
||||
var str = '';
|
||||
_.each(record.get('data').iconSet, function(icon) {
|
||||
str += '<img src="' + record.get('data').icons.at(icon-1).get("icon") + '" style="width:16px;height:16px;margin-right: 5px;">';
|
||||
});
|
||||
formcontrol[0].innerHTML = str;
|
||||
formcontrol.css({'margin-top': '0'});
|
||||
} else {
|
||||
formcontrol[0].innerHTML = record.get('displayValue');
|
||||
formcontrol.css({'margin-top': '1px'});
|
||||
}
|
||||
},
|
||||
|
||||
setValue: function(value) {
|
||||
var obj;
|
||||
this._selectedItem = this.store.findWhere((obj={}, obj[this.valueField]=value, obj));
|
||||
|
||||
$('.selected', $(this.el)).removeClass('selected');
|
||||
|
||||
if (this._selectedItem) {
|
||||
this.updateFormControl(this._selectedItem);
|
||||
$('#' + this._selectedItem.get('id'), $(this.el)).addClass('selected');
|
||||
} else {
|
||||
var formcontrol = $(this.el).find('.form-control > div');
|
||||
formcontrol[0].innerHTML = value;
|
||||
formcontrol.css({'margin-top': '1px'});
|
||||
}
|
||||
},
|
||||
|
||||
onResetItems: function() {
|
||||
if (this.itemsTemplate) {
|
||||
$(this.el).find('ul').html( $(this.itemsTemplate({
|
||||
items: this.store.toJSON(),
|
||||
scope: this
|
||||
})));
|
||||
} else {
|
||||
$(this.el).find('ul').html(_.template([
|
||||
'<% _.each(items, function(item) { %>',
|
||||
'<% if (item.value==-1) { %>',
|
||||
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem"><%= scope.getDisplayValue(item) %></a></li>',
|
||||
'<% } else { %>',
|
||||
'<li id="<%= item.id %>" data-value="<%= item.value %>">',
|
||||
'<a tabindex="-1" type="menuitem" style="padding: 5px;">',
|
||||
'<% _.each(item.data.iconSet, function(icon) { %>',
|
||||
'<img src="<%= item.data.icons.at(icon-1).get(\'icon\') %>" style="width:16px;height:16px;margin-right: 5px;">',
|
||||
'<% }) %>',
|
||||
'</a>',
|
||||
'</li>',
|
||||
'<% } %>',
|
||||
'<% }); %>'
|
||||
].join(''))({
|
||||
items: this.store.toJSON(),
|
||||
scope: this
|
||||
}));
|
||||
}
|
||||
|
||||
if (!_.isUndefined(this.scroller)) {
|
||||
this.scroller.destroy();
|
||||
delete this.scroller;
|
||||
}
|
||||
this.scroller = new Common.UI.Scroller(_.extend({
|
||||
el: $('.dropdown-menu', this.cmpEl),
|
||||
minScrollbarLength : 40,
|
||||
includePadding : true,
|
||||
wheelSpeed: 10,
|
||||
alwaysVisibleY: this.scrollAlwaysVisible
|
||||
}, this.options.scroller));
|
||||
}
|
||||
|
||||
}, Common.UI.ComboBoxIcons || {}));
|
||||
});
|
|
@ -541,4 +541,59 @@ define(function(){ 'use strict';
|
|||
}
|
||||
}
|
||||
})(), Common.define.chartData || {});
|
||||
|
||||
Common.define.conditionalData = _.extend( new(function() {
|
||||
return {
|
||||
textDate: 'Date',
|
||||
textYesterday: 'Yesterday',
|
||||
textToday: 'Today',
|
||||
textTomorrow: 'Tomorrow',
|
||||
textLast7days: 'In the last 7 days',
|
||||
textLastWeek: 'Last week',
|
||||
textThisWeek: 'This week',
|
||||
textNextWeek: 'Next week',
|
||||
textLastMonth: 'Last month',
|
||||
textThisMonth: 'This month',
|
||||
textNextMonth: 'Next month',
|
||||
textText: 'Text',
|
||||
textContains: 'Contains',
|
||||
textNotContains: 'Does not contain',
|
||||
textBegins: 'Begins with',
|
||||
textEnds: 'Ends with',
|
||||
textAverage: 'Average',
|
||||
textAbove: 'Above',
|
||||
textBelow: 'Below',
|
||||
textEqAbove: 'Equal to or above',
|
||||
textEqBelow: 'Equal to or below',
|
||||
text1Above: '1 std dev above',
|
||||
text1Below: '1 std dev below',
|
||||
text2Above: '2 std dev above',
|
||||
text2Below: '2 std dev below',
|
||||
text3Above: '3 std dev above',
|
||||
text3Below: '3 std dev below',
|
||||
textGreater: 'Greater than',
|
||||
textGreaterEq: 'Greater than or equal to',
|
||||
textLess: 'Less than',
|
||||
textLessEq: 'Less than or equal to',
|
||||
textEqual: 'Equal to',
|
||||
textNotEqual: 'Not equal to',
|
||||
textBetween: 'Between',
|
||||
textNotBetween: 'Not between',
|
||||
textTop: 'Top',
|
||||
textBottom: 'Bottom',
|
||||
textBlank: 'Blank',
|
||||
textError: 'Error',
|
||||
textBlanks: 'Contains blanks',
|
||||
textNotBlanks: 'Does not contain blanks',
|
||||
textErrors: 'Contains errors',
|
||||
textNotErrors: 'Does not contain errors',
|
||||
textDuplicate: 'Duplicate',
|
||||
textUnique: 'Unique',
|
||||
textDataBar: 'Data bar',
|
||||
textIconSets: 'Icon sets',
|
||||
textFormula: 'Formula',
|
||||
exampleText: 'AaBbCcYyZz',
|
||||
noFormatText: 'No format set'
|
||||
}
|
||||
})(), Common.define.conditionalData || {});
|
||||
});
|
||||
|
|
|
@ -305,7 +305,7 @@ Common.Utils.ThemeColor = new(function() {
|
|||
},
|
||||
|
||||
colorValue2EffectId: function(clr){
|
||||
if (typeof(clr) == 'object' && clr.effectValue !== undefined && this.effectcolors) {
|
||||
if (typeof(clr) == 'object' && clr && clr.effectValue !== undefined && this.effectcolors) {
|
||||
for (var i = 0; i < this.effectcolors.length; i++) {
|
||||
if (this.effectcolors[i].effectValue===clr.effectValue && clr.color.toUpperCase()===this.effectcolors[i].color.toUpperCase()) {
|
||||
clr.effectId = this.effectcolors[i].effectId;
|
||||
|
|
|
@ -53,3 +53,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.combo-color {
|
||||
.form-control:not(input) {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
|
@ -137,7 +137,6 @@ textarea.form-control:focus {
|
|||
right: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
|
|
@ -634,3 +634,57 @@
|
|||
border: @scaled-one-px-value solid @border-regular-control;
|
||||
.background-ximage-v2('toolbar/math.png', 1500px);
|
||||
}
|
||||
|
||||
.item-databar {
|
||||
.icon {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
svg.icon {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
fill: @icon-normal-ie;
|
||||
fill: @icon-normal;
|
||||
}
|
||||
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.item-colorscale {
|
||||
.icon {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
svg.icon {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
fill: @icon-normal-ie;
|
||||
fill: @icon-normal;
|
||||
}
|
||||
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.menu-iconsets {
|
||||
margin: 5px 5px 0 10px;
|
||||
|
||||
.group-items-container > div {
|
||||
margin-right: 8px !important;
|
||||
&:not(:hover),
|
||||
&:not(.selected) {
|
||||
.box-shadow(none);
|
||||
}
|
||||
}
|
||||
.item-iconset {
|
||||
img {
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
width: 100px;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* ConditionalFormatIcons.js
|
||||
*
|
||||
* Created by Julia Radzhabova on 25.02.21
|
||||
* Copyright (c) 2021 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
define([
|
||||
'backbone'
|
||||
], function(Backbone){ 'use strict';
|
||||
|
||||
SSE.Collections.ConditionalFormatIcons = Backbone.Collection.extend({
|
||||
model: Backbone.Model.extend({
|
||||
defaults: function() {
|
||||
return {
|
||||
id: Common.UI.getId(),
|
||||
index: 0,
|
||||
icon: null
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
SSE.Collections.ConditionalFormatIconsPresets = Backbone.Collection.extend({
|
||||
model: Backbone.Model.extend({
|
||||
defaults: function() {
|
||||
return {
|
||||
id: Common.UI.getId(),
|
||||
data: 0,
|
||||
icons: null
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
});
|
|
@ -196,6 +196,7 @@ define([
|
|||
view.pmiSortCells.menu.on('item:click', _.bind(me.onSortCells, me));
|
||||
view.pmiFilterCells.menu.on('item:click', _.bind(me.onFilterCells, me));
|
||||
view.pmiReapply.on('click', _.bind(me.onReapply, me));
|
||||
view.pmiCondFormat.on('click', _.bind(me.onCondFormat, me));
|
||||
view.pmiClear.menu.on('item:click', _.bind(me.onClear, me));
|
||||
view.pmiSelectTable.menu.on('item:click', _.bind(me.onSelectTable, me));
|
||||
view.pmiInsertTable.menu.on('item:click', _.bind(me.onInsertTable, me));
|
||||
|
@ -474,6 +475,24 @@ define([
|
|||
this.api.asc_reapplyAutoFilter(this.documentHolder.ssMenu.formatTableName);
|
||||
},
|
||||
|
||||
onCondFormat: function() {
|
||||
var me = this,
|
||||
value = me.api.asc_getLocale();
|
||||
(!value) && (value = ((me.permissions.lang) ? parseInt(Common.util.LanguageInfo.getLocalLanguageCode(me.permissions.lang)) : 0x0409));
|
||||
|
||||
(new SSE.Views.FormatRulesEditDlg({
|
||||
api: me.api,
|
||||
props : null,
|
||||
isEdit : false,
|
||||
langId : value,
|
||||
handler : function(result, settings) {
|
||||
if (result == 'ok' && settings) {
|
||||
me.api.asc_setCF([settings], []);
|
||||
}
|
||||
}
|
||||
})).show();
|
||||
},
|
||||
|
||||
onClear: function(menu, item) {
|
||||
if (this.api) {
|
||||
this.api.asc_emptyCells(item.value);
|
||||
|
@ -1881,6 +1900,7 @@ define([
|
|||
documentHolder.pmiSortCells.menu.items[4].setVisible(!internaleditor);
|
||||
documentHolder.pmiFilterCells.setVisible(iscellmenu && !iscelledit && !internaleditor);
|
||||
documentHolder.pmiReapply.setVisible((iscellmenu||isallmenu) && !iscelledit && !internaleditor);
|
||||
documentHolder.pmiCondFormat.setVisible(!iscelledit && !internaleditor);
|
||||
documentHolder.ssMenu.items[12].setVisible((iscellmenu||isallmenu||isinsparkline) && !iscelledit);
|
||||
documentHolder.pmiInsFunction.setVisible(iscellmenu && !iscelledit);
|
||||
documentHolder.pmiAddNamedRange.setVisible(iscellmenu && !iscelledit && !internaleditor);
|
||||
|
@ -1960,6 +1980,7 @@ define([
|
|||
documentHolder.pmiFilterCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null) || inPivot || !filterInfo && !this.permissions.canModifyFilter);
|
||||
documentHolder.pmiSortCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null) || inPivot || !this.permissions.canModifyFilter);
|
||||
documentHolder.pmiReapply.setDisabled(isCellLocked || isTableLocked|| (isApplyAutoFilter!==true));
|
||||
documentHolder.pmiCondFormat.setDisabled(isCellLocked || isTableLocked);
|
||||
documentHolder.menuHyperlink.setDisabled(isCellLocked || inPivot);
|
||||
documentHolder.menuAddHyperlink.setDisabled(isCellLocked || inPivot);
|
||||
documentHolder.pmiInsFunction.setDisabled(isCellLocked || inPivot);
|
||||
|
|
|
@ -55,6 +55,7 @@ define([
|
|||
'spreadsheeteditor/main/app/collection/ShapeGroups',
|
||||
'spreadsheeteditor/main/app/collection/TableTemplates',
|
||||
'spreadsheeteditor/main/app/collection/EquationGroups',
|
||||
'spreadsheeteditor/main/app/collection/ConditionalFormatIcons',
|
||||
'spreadsheeteditor/main/app/controller/FormulaDialog'
|
||||
], function () {
|
||||
'use strict';
|
||||
|
@ -87,6 +88,8 @@ define([
|
|||
'ShapeGroups',
|
||||
'EquationGroups',
|
||||
'TableTemplates',
|
||||
'ConditionalFormatIcons',
|
||||
'ConditionalFormatIconsPresets',
|
||||
'Common.Collections.TextArt'
|
||||
],
|
||||
views: [],
|
||||
|
@ -2035,6 +2038,34 @@ define([
|
|||
artStore.reset(arr);
|
||||
},
|
||||
|
||||
fillCondFormatIcons: function(icons){
|
||||
if (_.isEmpty(icons)) return;
|
||||
|
||||
var arr = [],
|
||||
store = this.getCollection('ConditionalFormatIcons');
|
||||
_.each(icons, function(icon, index){
|
||||
arr.push({
|
||||
icon : icon,
|
||||
index : index
|
||||
});
|
||||
});
|
||||
store.reset(arr);
|
||||
},
|
||||
|
||||
fillCondFormatIconsPresets: function(iconSets){
|
||||
if (_.isEmpty(iconSets)) return;
|
||||
|
||||
var arr = [],
|
||||
store = this.getCollection('ConditionalFormatIconsPresets');
|
||||
_.each(iconSets, function(iconSet, index){
|
||||
arr.push({
|
||||
icons : iconSet,
|
||||
data : index
|
||||
});
|
||||
});
|
||||
store.reset(arr);
|
||||
},
|
||||
|
||||
updateThemeColors: function() {
|
||||
var me = this;
|
||||
setTimeout(function(){
|
||||
|
|
|
@ -60,6 +60,7 @@ define([
|
|||
'spreadsheeteditor/main/app/view/HeaderFooterDialog',
|
||||
'spreadsheeteditor/main/app/view/PrintTitlesDialog',
|
||||
'spreadsheeteditor/main/app/view/ScaleDialog',
|
||||
'spreadsheeteditor/main/app/view/FormatRulesManagerDlg',
|
||||
'spreadsheeteditor/main/app/view/SlicerAddDialog',
|
||||
'spreadsheeteditor/main/app/view/AdvancedSeparatorDialog'
|
||||
], function () { 'use strict';
|
||||
|
@ -186,7 +187,8 @@ define([
|
|||
pgsize: [0, 0],
|
||||
pgmargins: undefined,
|
||||
pgorient: undefined,
|
||||
lock_doc: undefined
|
||||
lock_doc: undefined,
|
||||
cf_locked: []
|
||||
};
|
||||
this.binding = {};
|
||||
|
||||
|
@ -391,7 +393,13 @@ define([
|
|||
button.on('click', _.bind(me.onEditHeaderClick, me));
|
||||
});
|
||||
toolbar.btnPrintTitles.on('click', _.bind(this.onPrintTitlesClick, this));
|
||||
|
||||
if (toolbar.btnCondFormat.rendered) {
|
||||
toolbar.btnCondFormat.menu.on('show:before', _.bind(this.onShowBeforeCondFormat, this));
|
||||
toolbar.btnCondFormat.menu.on('item:click', _.bind(this.onCondFormatMenu, this));
|
||||
toolbar.btnCondFormat.menu.items[7].menu.on('item:click', _.bind(this.onCondFormatMenu, this));
|
||||
toolbar.btnCondFormat.menu.items[9].menu.on('item:click', _.bind(this.onCondFormatMenu, this));
|
||||
toolbar.btnCondFormat.menu.items[21].menu.on('item:click', _.bind(this.onCondFormatMenu, this));
|
||||
}
|
||||
Common.Gateway.on('insertimage', _.bind(this.insertImage, this));
|
||||
|
||||
this.onSetupCopyStyleButton();
|
||||
|
@ -414,6 +422,8 @@ define([
|
|||
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect',_.bind(this.onApiCoAuthoringDisconnect, this));
|
||||
Common.NotificationCenter.on('api:disconnect', _.bind(this.onApiCoAuthoringDisconnect, this));
|
||||
this.api.asc_registerCallback('asc_onLockDefNameManager', _.bind(this.onLockDefNameManager, this));
|
||||
this.api.asc_registerCallback('asc_onLockCFManager', _.bind(this.onLockCFManager, this));
|
||||
this.api.asc_registerCallback('asc_onUnLockCFManager', _.bind(this.onUnLockCFManager, this));
|
||||
this.api.asc_registerCallback('asc_onZoomChanged', _.bind(this.onApiZoomChange, this));
|
||||
Common.NotificationCenter.on('fonts:change', _.bind(this.onApiChangeFont, this));
|
||||
} else if (config.isRestrictedEdit)
|
||||
|
@ -1581,6 +1591,175 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
onShowBeforeCondFormat: function() {
|
||||
if (this.toolbar.mnuDataBars.menu.items.length>0) // menu is inited
|
||||
return;
|
||||
|
||||
var collectionPresets = SSE.getCollection('ConditionalFormatIconsPresets');
|
||||
if (collectionPresets.length<1)
|
||||
SSE.getController('Main').fillCondFormatIconsPresets(this.api.asc_getCFIconsByType());
|
||||
|
||||
var collectionIcons = SSE.getCollection('ConditionalFormatIcons');
|
||||
if (collectionIcons.length<1)
|
||||
SSE.getController('Main').fillCondFormatIcons(this.api.asc_getFullCFIcons());
|
||||
|
||||
|
||||
var me = this;
|
||||
var menuItem = this.toolbar.mnuDataBars;
|
||||
menuItem.menu.addItem(new Common.UI.MenuItem({
|
||||
template: _.template('<div id="id-toolbar-menu-databar" class="menu-shapes" style="margin-left: 5px; width: 203px;"></div>')
|
||||
}));
|
||||
var picker = new Common.UI.DataViewSimple({
|
||||
el: $('#id-toolbar-menu-databar', menuItem.$el),
|
||||
parentMenu: menuItem.menu,
|
||||
itemTemplate: _.template('<div class="item-databar" id="<%= id %>"><svg width="25" height="25" class=\"icon\"><use xlink:href=\"#bar-<%= data.name %>\"></use></svg></div>')
|
||||
});
|
||||
picker.on('item:click', function(picker, item, record, e) {
|
||||
if (me.api) {
|
||||
if (record) {
|
||||
me.api.asc_setCF([], [], [Asc.c_oAscCFRuleTypeSettings.dataBar, record.get('data').index]);
|
||||
}
|
||||
if (e.type !== 'click')
|
||||
me.toolbar.btnCondFormat.menu.hide();
|
||||
Common.NotificationCenter.trigger('edit:complete', me.toolbar, me.toolbar.btnCondFormat);
|
||||
}
|
||||
});
|
||||
var arr = [
|
||||
{ data: {name: 'gradient-blue', index: 0} },
|
||||
{ data: {name: 'gradient-green', index: 1} },
|
||||
{ data: {name: 'gradient-red', index: 2} },
|
||||
{ data: {name: 'gradient-yellow', index: 3} },
|
||||
{ data: {name: 'gradient-lightblue', index: 4} },
|
||||
{ data: {name: 'gradient-purple', index: 5} },
|
||||
{ data: {name: 'solid-blue', index: 6} },
|
||||
{ data: {name: 'solid-green', index: 7} },
|
||||
{ data: {name: 'solid-red', index: 8} },
|
||||
{ data: {name: 'solid-yellow', index: 9} },
|
||||
{ data: {name: 'solid-lightblue', index: 10} },
|
||||
{ data: {name: 'solid-purple', index: 11} }
|
||||
];
|
||||
picker.setStore(new Common.UI.DataViewStore(arr));
|
||||
|
||||
menuItem = this.toolbar.mnuColorScales;
|
||||
menuItem.menu.addItem(new Common.UI.MenuItem({
|
||||
template: _.template('<div id="id-toolbar-menu-colorscales" class="menu-shapes" style="margin-left: 5px; width: 136px;"></div>')
|
||||
}));
|
||||
picker = new Common.UI.DataViewSimple({
|
||||
el: $('#id-toolbar-menu-colorscales', menuItem.$el),
|
||||
parentMenu: menuItem.menu,
|
||||
itemTemplate: _.template('<div class="item-colorscale" id="<%= id %>"><svg width="25" height="25" class=\"icon\"><use xlink:href=\"#color-scale-<%= data.name %>\"></use></svg></div>')
|
||||
});
|
||||
picker.on('item:click', function(picker, item, record, e) {
|
||||
if (me.api) {
|
||||
if (record) {
|
||||
me.api.asc_setCF([], [], [Asc.c_oAscCFRuleTypeSettings.colorScale, record.get('data').index]);
|
||||
}
|
||||
if (e.type !== 'click')
|
||||
me.toolbar.btnCondFormat.menu.hide();
|
||||
Common.NotificationCenter.trigger('edit:complete', me.toolbar, me.toolbar.btnCondFormat);
|
||||
}
|
||||
});
|
||||
arr = [
|
||||
{ data: {name: 'green-yellow-red', index: 0} },
|
||||
{ data: {name: 'red-yellow-green', index: 1} },
|
||||
{ data: {name: 'green-white-red', index: 2} },
|
||||
{ data: {name: 'red-white-green', index: 3} },
|
||||
{ data: {name: 'blue-white-red', index: 4} },
|
||||
{ data: {name: 'red-white-blue', index: 5} },
|
||||
{ data: {name: 'white-red', index: 6} },
|
||||
{ data: {name: 'red-white', index: 7} },
|
||||
{ data: {name: 'green-white', index: 8} },
|
||||
{ data: {name: 'white-green', index: 9} },
|
||||
{ data: {name: 'green-yellow', index: 10} },
|
||||
{ data: {name: 'yellow-green', index: 11} }
|
||||
];
|
||||
picker.setStore(new Common.UI.DataViewStore(arr));
|
||||
|
||||
menuItem = this.toolbar.mnuIconSets;
|
||||
menuItem.menu.addItem(new Common.UI.MenuItem({
|
||||
template: _.template('<div id="id-toolbar-menu-iconsets" class="menu-iconsets" style="width: 227px;"></div>')
|
||||
}));
|
||||
arr = [];
|
||||
var indexes = [Asc.EIconSetType.Arrows3, Asc.EIconSetType.Arrows3Gray, Asc.EIconSetType.Triangles3, Asc.EIconSetType.Arrows4Gray, Asc.EIconSetType.Arrows4, Asc.EIconSetType.Arrows5Gray, Asc.EIconSetType.Arrows5];
|
||||
for (var i=0; i<indexes.length; i++) {
|
||||
arr.push({group: 'menu-iconset-group-direct', data: {index: indexes[i], iconSet: collectionPresets.at([indexes[i]]).get('icons'), icons: collectionIcons}});
|
||||
}
|
||||
indexes = [Asc.EIconSetType.Traffic3Lights1, Asc.EIconSetType.Traffic3Lights2, Asc.EIconSetType.Signs3, Asc.EIconSetType.Traffic4Lights, Asc.EIconSetType.RedToBlack4];
|
||||
for (var i=0; i<indexes.length; i++) {
|
||||
arr.push({group: 'menu-iconset-group-shape', data: {index: indexes[i], iconSet: collectionPresets.at([indexes[i]]).get('icons'), icons: collectionIcons}});
|
||||
}
|
||||
indexes = [Asc.EIconSetType.Symbols3, Asc.EIconSetType.Symbols3_2, Asc.EIconSetType.Flags3];
|
||||
for (var i=0; i<indexes.length; i++) {
|
||||
arr.push({group: 'menu-iconset-group-indicator', data: {index: indexes[i], iconSet: collectionPresets.at([indexes[i]]).get('icons'), icons: collectionIcons}});
|
||||
}
|
||||
indexes = [Asc.EIconSetType.Stars3, Asc.EIconSetType.Rating4, Asc.EIconSetType.Quarters5, Asc.EIconSetType.Rating5, Asc.EIconSetType.Boxes5];
|
||||
for (var i=0; i<indexes.length; i++) {
|
||||
arr.push({group: 'menu-iconset-group-rating', data: {index: indexes[i], iconSet: collectionPresets.at([indexes[i]]).get('icons'), icons: collectionIcons}});
|
||||
}
|
||||
picker = new Common.UI.DataView({
|
||||
el: $('#id-toolbar-menu-iconsets', menuItem.$el),
|
||||
parentMenu: menuItem.menu,
|
||||
groups: new Common.UI.DataViewGroupStore([
|
||||
{id: 'menu-iconset-group-direct', caption: this.textDirectional},
|
||||
{id: 'menu-iconset-group-shape', caption: this.textShapes},
|
||||
{id: 'menu-iconset-group-indicator', caption: this.textIndicator},
|
||||
{id: 'menu-iconset-group-rating', caption: this.textRating}
|
||||
]),
|
||||
store: new Common.UI.DataViewStore(arr),
|
||||
showLast: false,
|
||||
itemTemplate: _.template('<div class="item-iconset" id="<%= id %>">' +
|
||||
'<% _.each(data.iconSet, function(icon) { %>' +
|
||||
'<img src="<%= data.icons.at(icon-1).get(\'icon\') %>" style="width:16px;height:16px;">' +
|
||||
'<% }) %>' +
|
||||
'</div>')
|
||||
});
|
||||
picker.on('item:click', function(picker, item, record, e) {
|
||||
if (me.api) {
|
||||
if (record) {
|
||||
me.api.asc_setCF([], [], [Asc.c_oAscCFRuleTypeSettings.icons, record.get('data').index]);
|
||||
}
|
||||
if (e.type !== 'click')
|
||||
me.toolbar.btnCondFormat.menu.hide();
|
||||
Common.NotificationCenter.trigger('edit:complete', me.toolbar, me.toolbar.btnCondFormat);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
onCondFormatMenu: function(menu, item) {
|
||||
var me = this;
|
||||
var value = this.api.asc_getLocale();
|
||||
(!value) && (value = ((this.toolbar.mode.lang) ? parseInt(Common.util.LanguageInfo.getLocalLanguageCode(this.toolbar.mode.lang)) : 0x0409));
|
||||
|
||||
if (item.value == 'manage') {
|
||||
(new SSE.Views.FormatRulesManagerDlg({
|
||||
api: me.api,
|
||||
langId: value,
|
||||
locked: !!me._state.cf_locked[this.api.asc_getActiveWorksheetIndex()],
|
||||
handler: function (result, settings) {
|
||||
if (me && me.api && result=='ok') {
|
||||
me.api.asc_setCF(settings.rules, settings.deleted);
|
||||
}
|
||||
}
|
||||
})).show();
|
||||
} else if (item.value == 'clear') {
|
||||
me.api.asc_clearCF(item.options.type);
|
||||
} else {
|
||||
(new SSE.Views.FormatRulesEditDlg({
|
||||
api: me.api,
|
||||
props : null,
|
||||
type : item.options.type,
|
||||
subtype : item.value,
|
||||
isEdit : false,
|
||||
langId : value,
|
||||
handler : function(result, settings) {
|
||||
if (result == 'ok' && settings) {
|
||||
me.api.asc_setCF([settings], []);
|
||||
}
|
||||
}
|
||||
})).show();
|
||||
}
|
||||
},
|
||||
|
||||
createDelayedElements: function() {
|
||||
var me = this;
|
||||
|
||||
|
@ -2870,7 +3049,7 @@ define([
|
|||
el: $('#id-toolbar-menu-shapegroup' + i, menu.items[i].$el),
|
||||
store: shapesStore.at(i).get('groupStore'),
|
||||
parentMenu: menu.items[i].menu,
|
||||
itemTemplate: _.template('<div class="item-shape" id="<%= id %>"><svg width="20" height="20" class=\"icon\"><use xlink:href=\"#svg-icon-<%= data.shapeType %>\"></use></svg></div>')
|
||||
itemTemplate: _.template('<div class="item-shape" id="<%= id %>"><svg width="21" height="21" class=\"icon\"><use xlink:href=\"#svg-icon-<%= data.shapeType %>\"></use></svg></div>')
|
||||
});
|
||||
shapePicker.on('item:click', function(picker, item, record, e) {
|
||||
if (me.api) {
|
||||
|
@ -3361,6 +3540,14 @@ define([
|
|||
this.toolbar.lockToolbar(SSE.enumLock.namedRangeLock, this._state.namedrange_locked, {array: [this.toolbar.btnPrintArea.menu.items[0], this.toolbar.btnPrintArea.menu.items[2]]});
|
||||
},
|
||||
|
||||
onLockCFManager: function(index) {
|
||||
this._state.cf_locked[index] = true;
|
||||
},
|
||||
|
||||
onUnLockCFManager: function(index) {
|
||||
this._state.cf_locked[index] = false;
|
||||
},
|
||||
|
||||
activateControls: function() {
|
||||
this.toolbar.lockToolbar(SSE.enumLock.disableOnStart, false, {array: [this.toolbar.btnPrint]});
|
||||
this._state.activated = true;
|
||||
|
@ -4113,7 +4300,11 @@ define([
|
|||
textInsert: 'Insert',
|
||||
txtInsertCells: 'Insert Cells',
|
||||
txtDeleteCells: 'Delete Cells',
|
||||
errorComboSeries: 'To create a combination chart, select at least two series of data.'
|
||||
errorComboSeries: 'To create a combination chart, select at least two series of data.',
|
||||
textDirectional: 'Directional',
|
||||
textShapes: 'Shapes',
|
||||
textIndicator: 'Indicators',
|
||||
textRating: 'Ratings'
|
||||
|
||||
}, SSE.Controllers.Toolbar || {}));
|
||||
});
|
|
@ -0,0 +1,212 @@
|
|||
<div class="settings-panel active">
|
||||
<div class="inner-content">
|
||||
<table cols="1" style="width: 100%;">
|
||||
<tr>
|
||||
<td class="padding-small">
|
||||
<div style="width:150px; display: inline-block; margin-right: 10px;vertical-align: top;">
|
||||
<label class="header"><%= scope.textRule %></label>
|
||||
<div id="format-rules-edit-combo-category" class="input-group-nr"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="hasformat">
|
||||
<td class="padding-large">
|
||||
<div id="format-rules-edit-combo-rule" class="input-group-nr" style="display: inline-block;vertical-align: top;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-txt-r1" class="input-row" style="display: inline-block;vertical-align: top;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-txt-r2" class="input-row" style="display: inline-block;vertical-align: top;"></div><!--
|
||||
--><div id="format-rules-edit-spin-rank" class="input-row" style="display: inline-block;vertical-align: top;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-percent" class="input-row" style="display: inline-block;vertical-align: top;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="hasformat">
|
||||
<td class="padding-small">
|
||||
<label class="header"><%= scope.textFormat %></label>
|
||||
<div>
|
||||
<div id="format-rules-format-preset" class="input-group-nr" style="display: inline-block;vertical-align: middle;"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="hasformat">
|
||||
<td class="padding-large">
|
||||
<div>
|
||||
<div id="format-rules-bold" style="display: inline-block;"></div><div id="format-rules-italic" style="display: inline-block;margin-left: 3px;"></div>
|
||||
<div id="format-rules-underline" style="display: inline-block;margin-left: 3px;"></div><div id="format-rules-strikeout" style="display: inline-block;margin-left: 3px;"></div>
|
||||
<div id="format-rules-fontcolor" style="display: inline-block;margin-left: 3px;"></div><div id="format-rules-fillcolor" style="display: inline-block;margin-left: 3px;"></div>
|
||||
<div id="format-rules-borders" style="display: inline-block;margin-left: 3px;"></div>
|
||||
<div id="format-rules-edit-combo-num-format" class="input-group-nr" style="display: inline-block;vertical-align: middle;margin-left: 3px;"></div><!--
|
||||
--><button type="button" class="btn btn-text-default auto" id="format-rules-edit-btn-clear" style="display: inline-block;vertical-align: middle;margin-left: 10px;min-width: 80px;"><%= scope.textClear %></button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="hasformat">
|
||||
<td class="padding-small">
|
||||
<label class="header"><%= scope.textPreview %></label>
|
||||
<div style="border: 1px solid #cbcbcb;width: 150px; height: 40px; padding: 3px;">
|
||||
<div id="format-rules-edit-preview-format" style="width: 100%; height: 100%; position: relative; margin: 0 auto;"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="scale">
|
||||
<td class="padding-large" style="padding-top: 8px;">
|
||||
<div style="width:150px; display: inline-block; margin-right: 10px;vertical-align: top;">
|
||||
<label style="display: block;"><%= scope.textMinpoint %></label>
|
||||
<div id="format-rules-edit-combo-scale-1" class="input-group-nr" style="margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-txt-scale-1" class="" style="height: 22px;margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-color-scale-1" style=""></div>
|
||||
</div><!--
|
||||
--><div style="width:150px; display: inline-block; margin-right: 10px;">
|
||||
<label id="format-rules-edit-lbl-scale-2" style="display: block;"><%= scope.textMidpoint %></label>
|
||||
<div id="format-rules-edit-combo-scale-2" class="input-group-nr" style="margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-txt-scale-2" class="" style="height: 22px;margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-color-scale-2" style=""></div>
|
||||
</div><!--
|
||||
--><div style="width:150px; display: inline-block;">
|
||||
<label style="display: block;"><%= scope.textMaxpoint %></label>
|
||||
<div id="format-rules-edit-combo-scale-3" class="input-group-nr" style="margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-txt-scale-3" class="" style="height: 22px;margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-color-scale-3" style=""></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="scale">
|
||||
<td colspan="3" class="padding-small">
|
||||
<label class="header"><%= scope.textPreview %></label>
|
||||
<div style="border: 1px solid #cbcbcb;width: 100%; height: 40px; padding: 3px;">
|
||||
<div id="format-rules-edit-preview-scale" style="width: 100%; height: 100%; position: relative; margin: 0 auto;"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="databar">
|
||||
<td class="padding-large" style="padding-top: 8px;">
|
||||
<div style="width:150px; display: inline-block; margin-right: 10px;vertical-align: top;">
|
||||
<label style="display: block;"><%= scope.textMinimum %></label>
|
||||
<div id="format-rules-edit-combo-bar-1" class="input-group-nr" style="margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-txt-bar-1" class="" style="height: 22px;"></div>
|
||||
</div><!--
|
||||
--><div style="width:150px; display: inline-block;">
|
||||
<label style="display: block;"><%= scope.textMaximum %></label>
|
||||
<div id="format-rules-edit-combo-bar-2" class="input-group-nr" style="margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-txt-bar-2" class="" style="height: 22px;"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="databar">
|
||||
<td class="" style="padding-bottom: 4px;">
|
||||
<label class="header"><%= scope.textAppearance %></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="databar">
|
||||
<td class="padding-large" style="">
|
||||
<div style="width:150px; display: inline-block; margin-right: 10px;vertical-align: top;">
|
||||
<label style="display: block;"><%= scope.textFill %></label>
|
||||
<div id="format-rules-edit-combo-fill" class="input-group-nr" style="margin-bottom: 8px;"></div>
|
||||
<div style="width: 100%;margin-bottom: 4px;height: 23px;">
|
||||
<label style="margin-top: 4px;"><%= scope.textPositive %></label>
|
||||
<div id="format-rules-edit-color-pos-fill" style="float: right;"></div>
|
||||
</div>
|
||||
<div style="width: 100%;margin-bottom: 8px;height: 23px;">
|
||||
<label style="margin-top: 4px;"><%= scope.textNegative %></label>
|
||||
<div id="format-rules-edit-color-neg-fill" style="float: right;"></div>
|
||||
</div>
|
||||
<div id="format-rules-edit-chk-fill" style=""></div>
|
||||
</div><!--
|
||||
--><div style="width:150px; display: inline-block; margin-right: 10px;vertical-align: top;">
|
||||
<label style="display: block;"><%= scope.textBorder %></label>
|
||||
<div id="format-rules-edit-combo-border" class="input-group-nr" style="margin-bottom: 8px;"></div>
|
||||
<div style="width: 100%;margin-bottom: 4px;height: 23px;">
|
||||
<label style="margin-top: 4px;"><%= scope.textPositive %></label>
|
||||
<div id="format-rules-edit-color-pos-border" style="float: right;"></div>
|
||||
</div>
|
||||
<div style="width: 100%;margin-bottom: 8px;height: 23px;">
|
||||
<label style="margin-top: 4px;"><%= scope.textNegative %></label>
|
||||
<div id="format-rules-edit-color-neg-border" style="float: right;"></div>
|
||||
</div>
|
||||
<div id="format-rules-edit-chk-border" style=""></div>
|
||||
</div><!--
|
||||
--><div style="width:150px; display: inline-block;vertical-align: top;">
|
||||
<label style="display: block;"><%= scope.textBarDirection %></label>
|
||||
<div id="format-rules-edit-combo-direction" class="input-group-nr" style="margin-bottom: 8px;"></div>
|
||||
<div id="format-rules-edit-chk-show-bar" style="margin-top: 12px;"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="databar">
|
||||
<td class="padding-small">
|
||||
<div style="float:left;">
|
||||
<label class="header" style="display: block;"><%= scope.textAxis %></label>
|
||||
<label style="margin-right: 10px;margin-top: 1px;vertical-align: middle;"><%= scope.textPosition %></label>
|
||||
<div id="format-rules-edit-combo-axis-pos" class="input-group-nr" style="margin-right: 10px;display: inline-block;vertical-align: middle;"></div>
|
||||
<div id="format-rules-edit-color-axis-color" style="display: inline-block;vertical-align: middle;"></div>
|
||||
</div>
|
||||
<div style="float:right; width: 155px;">
|
||||
<label class="header" style="display: block;"><%= scope.textPreview %></label>
|
||||
<div style="border: 1px solid #cbcbcb;width: 150px; height: 40px; padding: 3px;">
|
||||
<div id="format-rules-edit-preview-databar" style="width: 100%; height: 100%; position: relative; margin: 0 auto;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="iconset">
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="padding-large" style="padding-top: 8px;">
|
||||
<label class="header"><%= scope.textIconStyle %></label>
|
||||
<div>
|
||||
<div id="format-rules-icon-style" class="input-group-nr" style="display: inline-block;vertical-align: middle;"></div>
|
||||
<div id="format-rules-edit-chk-icon-show" style="margin-left: 10px;display: inline-block;vertical-align: middle;"></div>
|
||||
<button type="button" class="btn btn-text-default auto" id="format-rules-edit-btn-icon-reverse" style="float:right; display: inline-block;"><%= scope.textReverse %></button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="icons-5">
|
||||
<td class="padding-small">
|
||||
<div id="format-rules-combo-icon-5" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-txt-icon-5" class="iconset-label" style="display: inline-block;vertical-align: middle;margin-right: 10px;width: 140px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-op-5" class="input-group-nr" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-txt-value-5" class="" style="display: inline-block;height: 22px;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-type-5" class="input-group-nr" style="display: inline-block;vertical-align: middle;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="icons-4">
|
||||
<td class="padding-small">
|
||||
<div id="format-rules-combo-icon-4" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-txt-icon-4" class="iconset-label" style="display: inline-block;vertical-align: middle;margin-right: 10px;width: 140px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-op-4" class="input-group-nr" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-txt-value-4" class="" style="display: inline-block;height: 22px;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-type-4" class="input-group-nr" style="display: inline-block;vertical-align: middle;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="icons-3">
|
||||
<td class="padding-small">
|
||||
<div id="format-rules-combo-icon-3" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-txt-icon-3" class="iconset-label" style="display: inline-block;vertical-align: middle;margin-right: 10px;width: 140px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-op-3" class="input-group-nr" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-txt-value-3" class="" style="display: inline-block;height: 22px;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-type-3" class="input-group-nr" style="display: inline-block;vertical-align: middle;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="icons-2">
|
||||
<td class="padding-small">
|
||||
<div id="format-rules-combo-icon-2" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-txt-icon-2" class="iconset-label" style="display: inline-block;vertical-align: middle;margin-right: 10px;width: 140px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-op-2" class="input-group-nr" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-txt-value-2" class="" style="display: inline-block;height: 22px;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-type-2" class="input-group-nr" style="display: inline-block;vertical-align: middle;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="icons-1">
|
||||
<td class="padding-small">
|
||||
<div id="format-rules-combo-icon-1" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-txt-icon-1" class="iconset-label" style="display: inline-block;vertical-align: middle;margin-right: 10px;width: 140px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-op-1" class="input-group-nr hidden" style="display: inline-block;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-txt-value-1" class=" hidden" style="display: inline-block;height: 22px;vertical-align: middle;margin-right: 10px;"></div><!--
|
||||
--><div id="format-rules-edit-combo-type-1" class="input-group-nr hidden" style="display: inline-block;vertical-align: middle;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,35 @@
|
|||
<div class="settings-panel active">
|
||||
<div class="inner-content">
|
||||
<table cols="2" style="width: 100%;">
|
||||
<tr>
|
||||
<td colspan=2 class="padding-large">
|
||||
<label><%= scope.textScope %></label>
|
||||
<div id="format-manager-combo-scope" class="input-group-nr" style="width:185px;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<label id="format-manager-label-column" class="header" style="width: 186px;"><%= scope.textRules %></label>
|
||||
<label id="format-manager-label-sort" class="header" style="width: 177px;"><%= scope.textApply %></label>
|
||||
<label class="header" style=""><%= scope.textFormat %></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2 class="padding-small">
|
||||
<div id="format-manager-rules-list" class="range-tableview" style="width:100%; height: 151px;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-large">
|
||||
<button type="button" class="btn btn-text-default" id="format-manager-btn-new" style="min-width: 100px;margin-right:5px;"><%= scope.textNew %></button>
|
||||
<button type="button" class="btn btn-text-default" id="format-manager-btn-edit" style="min-width: 100px;margin-right:5px;"><%= scope.textEdit %></button>
|
||||
<div id="format-manager-btn-up" style="display: inline-block;border: 1px solid #cfcfcf;border-radius: 1px;"></div>
|
||||
<div id="format-manager-btn-down" style="display: inline-block;border: 1px solid #cfcfcf;border-radius: 1px;"></div>
|
||||
</td>
|
||||
<td class="padding-large" style="text-align: right;width:90px;">
|
||||
<button type="button" class="btn btn-text-default" id="format-manager-btn-delete" style="min-width: 100px;"><%= scope.textDelete %></button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
|
@ -109,7 +109,7 @@
|
|||
<div class="group">
|
||||
<div class="elset">
|
||||
<span class="btn-slot split" id="slot-btn-clear"></span>
|
||||
<span class="btn-slot split" id="slot-btn-colorschemas"></span>
|
||||
<span class="btn-slot split" id="slot-btn-condformat"></span>
|
||||
</div>
|
||||
<div class="elset">
|
||||
<span class="btn-slot split" id="slot-btn-copystyle"></span>
|
||||
|
@ -167,6 +167,10 @@
|
|||
<span class="btn-slot text x-huge" id="slot-img-movefrwd"></span>
|
||||
<span class="btn-slot text x-huge" id="slot-img-movebkwd"></span>
|
||||
</div>
|
||||
<div class="separator long"></div>
|
||||
<div class="group">
|
||||
<span class="btn-slot text x-huge" id="slot-btn-colorschemas"></span>
|
||||
</div>
|
||||
</section>
|
||||
<section class="panel" data-tab="formula">
|
||||
<div class="group">
|
||||
|
|
|
@ -168,7 +168,7 @@ define([
|
|||
|
||||
this.settings.argvalues[this.settings.argindex] = val;
|
||||
this.api.asc_insertArgumentsInFormula(this.settings.argvalues);
|
||||
} else if (this.settings.type == Asc.c_oAscSelectionDialogType.DataValidation) {
|
||||
} else if (this.settings.type == Asc.c_oAscSelectionDialogType.DataValidation || this.settings.type == Asc.c_oAscSelectionDialogType.ConditionalFormattingRule) {
|
||||
this.inputRange.setValue('=' + name);
|
||||
} else
|
||||
this.inputRange.setValue(name);
|
||||
|
|
|
@ -539,6 +539,10 @@ define([
|
|||
})
|
||||
});
|
||||
|
||||
me.pmiCondFormat = new Common.UI.MenuItem({
|
||||
caption : me.txtCondFormat
|
||||
});
|
||||
|
||||
me.ssMenu = new Common.UI.Menu({
|
||||
cls: 'shifted-right',
|
||||
id : 'id-context-menu-cell',
|
||||
|
@ -564,6 +568,7 @@ define([
|
|||
me.pmiAddComment,
|
||||
me.pmiCellMenuSeparator,
|
||||
me.pmiNumFormat,
|
||||
me.pmiCondFormat,
|
||||
me.pmiEntriesList,
|
||||
me.pmiAddNamedRange,
|
||||
me.pmiInsFunction,
|
||||
|
@ -1214,7 +1219,8 @@ define([
|
|||
textStdDev: 'StdDev',
|
||||
textVar: 'Var',
|
||||
textMore: 'More functions',
|
||||
txtCustomSort: 'Custom sort'
|
||||
txtCustomSort: 'Custom sort',
|
||||
txtCondFormat: 'Conditional Formatting'
|
||||
|
||||
}, SSE.Views.DocumentHolder || {}));
|
||||
});
|
2142
apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js
Normal file
2142
apps/spreadsheeteditor/main/app/view/FormatRulesEditDlg.js
Normal file
File diff suppressed because it is too large
Load diff
874
apps/spreadsheeteditor/main/app/view/FormatRulesManagerDlg.js
Normal file
874
apps/spreadsheeteditor/main/app/view/FormatRulesManagerDlg.js
Normal file
|
@ -0,0 +1,874 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2020
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
/**
|
||||
*
|
||||
* FormatRulesManagerDlg.js
|
||||
*
|
||||
* Created by Julia.Radzhabova on 14.04.2020
|
||||
* Copyright (c) 2020 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
define([ 'text!spreadsheeteditor/main/app/template/FormatRulesManagerDlg.template',
|
||||
'common/main/lib/view/AdvancedSettingsWindow',
|
||||
'common/main/lib/component/ComboBox',
|
||||
'common/main/lib/component/ListView',
|
||||
'common/main/lib/component/InputField',
|
||||
'spreadsheeteditor/main/app/view/FormatRulesEditDlg'
|
||||
], function (contentTemplate) {
|
||||
'use strict';
|
||||
|
||||
SSE.Views = SSE.Views || {};
|
||||
|
||||
var _CustomItem = Common.UI.DataViewItem.extend({
|
||||
initialize : function(options) {
|
||||
Common.UI.BaseView.prototype.initialize.call(this, options);
|
||||
|
||||
var me = this;
|
||||
|
||||
me.template = me.options.template || me.template;
|
||||
|
||||
me.listenTo(me.model, 'change:name', function() {
|
||||
me.render();
|
||||
me.trigger('change', me, me.model);
|
||||
});
|
||||
me.listenTo(me.model, 'change:lock', function() {
|
||||
me.render();
|
||||
me.trigger('change', me, me.model);
|
||||
});
|
||||
me.listenTo(me.model, 'change:tip', function() {
|
||||
var el = me.$el || $(me.el),
|
||||
tip = el.data('bs.tooltip');
|
||||
if (tip) {
|
||||
var zIndex = tip.options.zIndex;
|
||||
el.removeData('bs.tooltip');
|
||||
el.tooltip({
|
||||
title : me.model.get('tip'),
|
||||
placement : 'cursor',
|
||||
zIndex : zIndex
|
||||
});
|
||||
}
|
||||
});
|
||||
me.listenTo(me.model, 'change:selected', function() {
|
||||
var el = me.$el || $(me.el);
|
||||
el.toggleClass('selected', me.model.get('selected') && me.model.get('allowSelected'));
|
||||
me.onSelectChange(me.model, me.model.get('selected') && me.model.get('allowSelected'));
|
||||
});
|
||||
me.listenTo(me.model, 'remove', me.remove);
|
||||
}
|
||||
});
|
||||
|
||||
SSE.Views.FormatRulesManagerDlg = Common.Views.AdvancedSettingsWindow.extend(_.extend({
|
||||
options: {
|
||||
alias: 'FormatRulesManagerDlg',
|
||||
contentWidth: 510,
|
||||
height: 361,
|
||||
buttons: ['ok', 'cancel']
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
var me = this;
|
||||
_.extend(this.options, {
|
||||
title: this.txtTitle,
|
||||
template: [
|
||||
'<div class="box" style="height:' + (this.options.height-85) + 'px;">',
|
||||
'<div class="content-panel" style="padding: 0;">' + _.template(contentTemplate)({scope: this}) + '</div>',
|
||||
'</div>',
|
||||
'<div class="separator horizontal"/>'
|
||||
].join('')
|
||||
}, options);
|
||||
|
||||
this.api = options.api;
|
||||
this.handler = options.handler;
|
||||
this.props = options.props;
|
||||
this.langId = options.langId;
|
||||
this.rules = [];
|
||||
this.rulesStores = {};
|
||||
this.rulesDeleted = [];
|
||||
this.listSettings = {length: 0, min: 0, max: 0};
|
||||
this.locked = options.locked || false;
|
||||
this.userTooltip = true;
|
||||
|
||||
this.wrapEvents = {
|
||||
onLockCFManager: _.bind(this.onLockCFManager, this),
|
||||
onUnLockCFManager: _.bind(this.onUnLockCFManager, this),
|
||||
onLockCFRule: _.bind(this.onLockCFRule, this),
|
||||
onUnLockCFRule: _.bind(this.onUnLockCFRule, this)
|
||||
};
|
||||
|
||||
Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options);
|
||||
},
|
||||
render: function () {
|
||||
Common.Views.AdvancedSettingsWindow.prototype.render.call(this);
|
||||
var me = this;
|
||||
|
||||
this.cmbScope = new Common.UI.ComboBox({
|
||||
el : $('#format-manager-combo-scope'),
|
||||
menuStyle : 'min-width: 100%;max-height: 211px;',
|
||||
editable : false,
|
||||
cls : 'input-group-nr',
|
||||
data : []
|
||||
}).on('selected', function(combo, record) {
|
||||
me.refreshRuleList(record);
|
||||
});
|
||||
|
||||
this.rulesList = new Common.UI.ListView({
|
||||
el: $('#format-manager-rules-list', this.$window),
|
||||
store: new Common.UI.DataViewStore(),
|
||||
emptyText: '',
|
||||
template: _.template(['<div class="listview inner" style=""></div>'].join('')),
|
||||
itemTemplate: _.template([
|
||||
'<div class="list-item" style="width: 100%;display:inline-block;" id="format-manager-item-<%= ruleIndex %>">',
|
||||
'<div style="width:181px;padding-right: 10px;display: inline-block;vertical-align: middle;overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"><%= name %></div>',
|
||||
'<div style="width:181px;padding-right: 10px;display: inline-block;vertical-align: middle;"><div id="format-manager-txt-rule-<%= ruleIndex %>" style=""></div></div>',
|
||||
'<div style="width:112px;display: inline-block;vertical-align: middle;"><div id="format-manager-item-preview-<%= ruleIndex %>" style="height:22px;"></div></div>',
|
||||
'<% if (lock) { %>',
|
||||
'<div class="lock-user"><%=lockuser%></div>',
|
||||
'<% } %>',
|
||||
'</div>'
|
||||
].join(''))
|
||||
});
|
||||
this.rulesList.createNewItem = function(record) {
|
||||
return new _CustomItem({
|
||||
template: this.itemTemplate,
|
||||
model: record
|
||||
});
|
||||
};
|
||||
this.rulesList.on('item:select', _.bind(this.onSelectRule, this))
|
||||
.on('item:keydown', _.bind(this.onKeyDown, this));
|
||||
|
||||
this.btnNew = new Common.UI.Button({
|
||||
el: $('#format-manager-btn-new')
|
||||
});
|
||||
this.btnNew.on('click', _.bind(this.onEditRule, this, false));
|
||||
|
||||
this.btnEdit = new Common.UI.Button({
|
||||
el: $('#format-manager-btn-edit')
|
||||
});
|
||||
this.btnEdit.on('click', _.bind(this.onEditRule, this, true));
|
||||
|
||||
this.btnDelete = new Common.UI.Button({
|
||||
el: $('#format-manager-btn-delete')
|
||||
});
|
||||
this.btnDelete.on('click', _.bind(this.onDeleteRule, this));
|
||||
|
||||
this.btnUp = new Common.UI.Button({
|
||||
parentEl: $('#format-manager-btn-up'),
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: 'caret-up',
|
||||
hint: this.textUp
|
||||
});
|
||||
this.btnUp.on('click', _.bind(this.onMoveClick, this, true));
|
||||
|
||||
this.btnDown = new Common.UI.Button({
|
||||
parentEl: $('#format-manager-btn-down'),
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: 'caret-down',
|
||||
hint: this.textDown
|
||||
});
|
||||
this.btnDown.on('click', _.bind(this.onMoveClick, this, false));
|
||||
|
||||
this.afterRender();
|
||||
},
|
||||
|
||||
afterRender: function() {
|
||||
this._setDefaults(this.props);
|
||||
},
|
||||
|
||||
_setDefaults: function (props) {
|
||||
this.rulesList.on('item:add', _.bind(this.addControls, this));
|
||||
this.rulesList.on('item:change', _.bind(this.addControls, this));
|
||||
this.currentSheet = this.api.asc_getActiveWorksheetIndex();
|
||||
this.refreshScopeList();
|
||||
this.refreshRuleList(this.cmbScope.getSelectedRecord());
|
||||
|
||||
this.api.asc_registerCallback('asc_onLockCFManager', this.wrapEvents.onLockCFManager);
|
||||
this.api.asc_registerCallback('asc_onUnLockCFManager', this.wrapEvents.onUnLockCFManager);
|
||||
this.api.asc_registerCallback('asc_onLockCFRule', this.wrapEvents.onLockCFRule);
|
||||
this.api.asc_registerCallback('asc_onUnLockCFRule', this.wrapEvents.onUnLockCFRule);
|
||||
},
|
||||
|
||||
refreshScopeList: function() {
|
||||
var wc = this.api.asc_getWorksheetsCount(), i = -1;
|
||||
var items = [
|
||||
{ value: Asc.c_oAscSelectionForCFType.selection, displayValue: this.textSelection, sheetIndex: -1 },
|
||||
{ value: Asc.c_oAscSelectionForCFType.worksheet, displayValue: this.textThisSheet, sheetIndex: -1 },
|
||||
{ value: Asc.c_oAscSelectionForCFType.table, displayValue: this.textThisTable, sheetIndex: -1 },
|
||||
{ value: Asc.c_oAscSelectionForCFType.pivot, displayValue: this.textThisPivot, sheetIndex: -1 }
|
||||
];
|
||||
if (wc>1) {
|
||||
while (++i < wc) {
|
||||
if (!this.api.asc_isWorksheetHidden(i) && i!==this.currentSheet) {
|
||||
items.push({
|
||||
displayValue:this.api.asc_getWorksheetName(i),
|
||||
value: Asc.c_oAscSelectionForCFType.worksheet,
|
||||
sheetIndex: i
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
this.cmbScope.setData(items);
|
||||
this.cmbScope.setValue(Asc.c_oAscSelectionForCFType.selection);
|
||||
},
|
||||
|
||||
refreshRuleList: function(scope) {
|
||||
this.rules = [];
|
||||
|
||||
var sheetIndex = (scope.sheetIndex>-1) ? scope.sheetIndex : this.currentSheet;
|
||||
var ruleStore = this.rulesStores[sheetIndex];
|
||||
if (!ruleStore) {
|
||||
ruleStore = new Common.UI.DataViewStore();
|
||||
this.rulesStores[sheetIndex] = ruleStore;
|
||||
|
||||
var obj = this.api.asc_getCF(Asc.c_oAscSelectionForCFType.worksheet, sheetIndex);
|
||||
var rules = obj[0];
|
||||
this.currentRange = obj[1];
|
||||
var arr = [];
|
||||
if (rules) {
|
||||
for (var i=0; i<rules.length; i++) {
|
||||
var rule = rules[i],
|
||||
name = this.getRuleName(rule),
|
||||
location = rule.asc_getLocation(),
|
||||
idlock = rule.asc_getIsLock();
|
||||
arr.push({
|
||||
ruleIndex: i, // connect store and list with controls. is not changed
|
||||
ruleId: rule.asc_getId(),
|
||||
name: name,
|
||||
tip: name,
|
||||
range: location[1],
|
||||
activeSheet: location[0],
|
||||
priority: rule.asc_getPriority(), // priority of the rule, is changed when move or when new rule is added
|
||||
ruleChanged: false, // true if was edited in FormatRulesEditDlg or was created, need to send this rule to sdk if true
|
||||
props: rule,
|
||||
lock: (idlock!==null && idlock!==undefined),
|
||||
lockuser: (idlock) ? this.getUserName(idlock) : this.guestText
|
||||
});
|
||||
}
|
||||
}
|
||||
ruleStore.reset(arr);
|
||||
}
|
||||
if (sheetIndex == this.currentSheet) {
|
||||
ruleStore.each(function(item){
|
||||
var hidden = scope.value!==Asc.c_oAscSelectionForCFType.worksheet && !item.get('props').asc_checkScope(scope.value);
|
||||
item.set('cls', hidden ? 'hidden' : undefined);
|
||||
});
|
||||
}
|
||||
this.rulesList.setStore(ruleStore);
|
||||
this.rulesList.onResetItems();
|
||||
this.rulesList.deselectAll();
|
||||
this.updateRulesCount();
|
||||
if (this.listSettings.length>0) {
|
||||
this.rulesList.selectByIndex(this.listSettings.min);
|
||||
if (this.userTooltip===true && this.rulesList.cmpEl.find('.lock-user').length>0)
|
||||
this.rulesList.cmpEl.on('mouseover', _.bind(this.onMouseOverLock, this)).on('mouseout', _.bind(this.onMouseOutLock, this));
|
||||
}
|
||||
this.updateButtons();
|
||||
},
|
||||
|
||||
onMouseOverLock: function (evt, el, opt) {
|
||||
if (this.userTooltip===true && $(evt.target).hasClass('lock-user')) {
|
||||
var me = this,
|
||||
tipdata = $(evt.target).tooltip({title: this.tipIsLocked,trigger:'manual'}).data('bs.tooltip');
|
||||
|
||||
this.userTooltip = tipdata.tip();
|
||||
this.userTooltip.css('z-index', parseInt(this.$window.css('z-index')) + 10);
|
||||
tipdata.show();
|
||||
|
||||
setTimeout(function() { me.userTipHide(); }, 5000);
|
||||
}
|
||||
},
|
||||
|
||||
userTipHide: function () {
|
||||
if (typeof this.userTooltip == 'object') {
|
||||
this.userTooltip.remove();
|
||||
this.userTooltip = undefined;
|
||||
this.rulesList.cmpEl.off('mouseover').off('mouseout');
|
||||
}
|
||||
},
|
||||
|
||||
onMouseOutLock: function (evt, el, opt) {
|
||||
if (typeof this.userTooltip == 'object') this.userTipHide();
|
||||
},
|
||||
|
||||
getRuleName: function(rule) {
|
||||
var name = '';
|
||||
switch (rule.asc_getType()) {
|
||||
case Asc.c_oAscCFType.aboveAverage:
|
||||
name = this.textAbove;
|
||||
var above = rule.asc_getAboveAverage(),
|
||||
eq = rule.asc_getEqualAverage(),
|
||||
stddev = rule.asc_getStdDev();
|
||||
subtype = (above) ? 0 : 1;
|
||||
if (eq)
|
||||
subtype += 2;
|
||||
else if (stddev) {
|
||||
subtype += (2 + stddev*2);
|
||||
}
|
||||
switch (subtype) {
|
||||
case 0:
|
||||
name = this.textAbove;
|
||||
break;
|
||||
case 1:
|
||||
name = this.textBelow;
|
||||
break;
|
||||
case 2:
|
||||
name = this.textEqAbove;
|
||||
break;
|
||||
case 3:
|
||||
name = this.textEqBelow;
|
||||
break;
|
||||
case 4:
|
||||
name = this.text1Above;
|
||||
break;
|
||||
case 5:
|
||||
name = this.text1Below;
|
||||
break;
|
||||
case 6:
|
||||
name = this.text2Above;
|
||||
break;
|
||||
case 7:
|
||||
name = this.text2Below;
|
||||
break;
|
||||
case 8:
|
||||
name = this.text3Above;
|
||||
break;
|
||||
case 9:
|
||||
name = this.text3Below;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case Asc.c_oAscCFType.beginsWith:
|
||||
name = this.textBeginsWith + ' ' + (rule.asc_getContainsText() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFType.cellIs:
|
||||
name = this.textCellValue;
|
||||
var subtype = rule.asc_getOperator(),
|
||||
op;
|
||||
switch (subtype) {
|
||||
case Asc.c_oAscCFOperator.greaterThan:
|
||||
op = '>';
|
||||
name = name + ' ' + op + ' ' + (rule.asc_getValue1() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFOperator.greaterThanOrEqual:
|
||||
op = '>=';
|
||||
name = name + ' ' + op + ' ' + (rule.asc_getValue1() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFOperator.lessThan:
|
||||
op = '<';
|
||||
name = name + ' ' + op + ' ' + (rule.asc_getValue1() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFOperator.lessThanOrEqual:
|
||||
op = '<=';
|
||||
name = name + ' ' + op + ' ' + (rule.asc_getValue1() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFOperator.equal:
|
||||
op = '=';
|
||||
name = name + ' ' + op + ' ' + (rule.asc_getValue1() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFOperator.notEqual:
|
||||
op = '<>';
|
||||
name = name + ' ' + op + ' ' + (rule.asc_getValue1() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFOperator.between:
|
||||
name = name + ' ' + Common.Utils.String.format(this.textBetween, (rule.asc_getValue1() || ''), (rule.asc_getValue2() || ''));
|
||||
break;
|
||||
case Asc.c_oAscCFOperator.notBetween:
|
||||
name = name + ' ' + Common.Utils.String.format(this.textNotBetween, (rule.asc_getValue1() || ''), (rule.asc_getValue2() || ''));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case Asc.c_oAscCFType.colorScale:
|
||||
name = this.textColorScale;
|
||||
break;
|
||||
case Asc.c_oAscCFType.containsBlanks:
|
||||
name = this.textContainsBlank;
|
||||
break;
|
||||
case Asc.c_oAscCFType.containsErrors:
|
||||
name = this.textContainsError;
|
||||
break;
|
||||
case Asc.c_oAscCFType.containsText:
|
||||
name = this.textContains + ' ' + (rule.asc_getContainsText() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFType.dataBar:
|
||||
name = Common.define.conditionalData.textDataBar;
|
||||
break;
|
||||
case Asc.c_oAscCFType.duplicateValues:
|
||||
name = this.textDuplicate;
|
||||
break;
|
||||
case Asc.c_oAscCFType.expression:
|
||||
name = Common.define.conditionalData.textFormula + ': ' + (rule.asc_getValue1() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFType.iconSet:
|
||||
name = this.textIconSet;
|
||||
break;
|
||||
case Asc.c_oAscCFType.notContainsBlanks:
|
||||
name = this.textNotContainsBlank;
|
||||
break;
|
||||
case Asc.c_oAscCFType.notContainsErrors:
|
||||
name = this.textNotContainsError;
|
||||
break;
|
||||
case Asc.c_oAscCFType.notContainsText:
|
||||
name = this.textNotContains + ' ' + (rule.asc_getContainsText() || '');
|
||||
break;
|
||||
case Asc.c_oAscCFType.timePeriod:
|
||||
var subtype = rule.asc_getTimePeriod();
|
||||
switch (subtype) {
|
||||
case Asc.c_oAscTimePeriod.yesterday:
|
||||
name = Common.define.conditionalData.textYesterday;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.today:
|
||||
name = Common.define.conditionalData.textToday;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.tomorrow:
|
||||
name = Common.define.conditionalData.textTomorrow;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.last7Days:
|
||||
name = Common.define.conditionalData.textLast7days;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.lastWeek:
|
||||
name = Common.define.conditionalData.textLastWeek;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.thisWeek:
|
||||
name = Common.define.conditionalData.textThisWeek;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.nextWeek:
|
||||
name = Common.define.conditionalData.textNextWeek;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.lastMonth:
|
||||
name = Common.define.conditionalData.textLastMonth;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.thisMonth:
|
||||
name = Common.define.conditionalData.textThisMonth;
|
||||
break;
|
||||
case Asc.c_oAscTimePeriod.nextMonth:
|
||||
name = Common.define.conditionalData.textNextMonth;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case Asc.c_oAscCFType.top10:
|
||||
name = rule.asc_getBottom() ? Common.define.conditionalData.textBottom : Common.define.conditionalData.textTop;
|
||||
name = name + ' ' + (rule.asc_getRank()) + (rule.asc_getPercent() ? '%' : '');
|
||||
break;
|
||||
case Asc.c_oAscCFType.uniqueValues:
|
||||
name = this.textUnique;
|
||||
break;
|
||||
case Asc.c_oAscCFType.endsWith:
|
||||
name = this.textEnds + ' ' + (rule.asc_getContainsText() || '');
|
||||
break;
|
||||
}
|
||||
return name;
|
||||
},
|
||||
|
||||
addControls: function(listView, itemView, item) {
|
||||
if (!item) return;
|
||||
|
||||
var me = this,
|
||||
i = item.get('ruleIndex'),
|
||||
cmpEl = this.rulesList.cmpEl.find('#format-manager-item-' + i);
|
||||
if (!this.rules[i])
|
||||
this.rules[i] = {};
|
||||
var rule = this.rules[i];
|
||||
var input = new Common.UI.InputFieldBtn({
|
||||
el : cmpEl.find('#format-manager-txt-rule-' + i),
|
||||
name : 'range',
|
||||
style : 'width: 100%;',
|
||||
btnHint : this.textSelectData,
|
||||
allowBlank : true,
|
||||
disabled : !item.get('activeSheet') || item.get('lock'),
|
||||
validateOnChange: true
|
||||
}).on('changed:after', function(input, newValue, oldValue, e) {
|
||||
if (rule.dataRangeValid !== newValue) {
|
||||
if (me.isRangeValid(newValue)) {
|
||||
rule.dataRangeValid = newValue;
|
||||
item.set('ruleChanged', true);
|
||||
item.get('props').asc_setLocation(rule.dataRangeValid);
|
||||
} else
|
||||
rule.txtDataRange.setValue(rule.dataRangeValid);
|
||||
}
|
||||
|
||||
}).on('button:click', _.bind(this.onSelectData, this, rule, item));
|
||||
|
||||
var val = item.get('range');
|
||||
(val!==null) && input.setValue(val);
|
||||
rule.txtDataRange = input;
|
||||
rule.dataRangeValid = val;
|
||||
rule.previewDiv = 'format-manager-item-preview-' + i;
|
||||
me.drawRulePreview(item);
|
||||
|
||||
cmpEl.on('mousedown', 'input', function(){
|
||||
me.rulesList.selectRecord(item);
|
||||
});
|
||||
},
|
||||
|
||||
drawRulePreview: function(rule) {
|
||||
var props = rule.get('props'),
|
||||
type = props.asc_getType(),
|
||||
text = '';
|
||||
|
||||
if (type == Asc.c_oAscCFType.containsText || type == Asc.c_oAscCFType.notContainsText || type == Asc.c_oAscCFType.beginsWith ||
|
||||
type == Asc.c_oAscCFType.endsWith || type == Asc.c_oAscCFType.containsBlanks || type == Asc.c_oAscCFType.notContainsBlanks ||
|
||||
type == Asc.c_oAscCFType.duplicateValues || type == Asc.c_oAscCFType.uniqueValues ||
|
||||
type == Asc.c_oAscCFType.containsErrors || type == Asc.c_oAscCFType.notContainsErrors ||
|
||||
type == Asc.c_oAscCFType.timePeriod || type == Asc.c_oAscCFType.aboveAverage ||
|
||||
type == Asc.c_oAscCFType.top10 || type == Asc.c_oAscCFType.cellIs || type == Asc.c_oAscCFType.expression) {
|
||||
text = props.asc_getDxf() ? Common.define.conditionalData.exampleText : Common.define.conditionalData.noFormatText;
|
||||
}
|
||||
props.asc_getPreview(this.rules[rule.get('ruleIndex')].previewDiv, text);
|
||||
},
|
||||
|
||||
isRangeValid: function(range) {
|
||||
return (Asc.c_oAscError.ID.No === this.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.ConditionalFormattingRule, range, true));
|
||||
},
|
||||
|
||||
onSelectData: function(rule, item) {
|
||||
var me = this;
|
||||
if (me.api) {
|
||||
var handlerDlg = function(dlg, result) {
|
||||
if (result == 'ok') {
|
||||
if (me.isRangeValid(dlg.getSettings())) {
|
||||
rule.dataRangeValid = dlg.getSettings();
|
||||
item.set('ruleChanged', true);
|
||||
item.get('props').asc_setLocation(rule.dataRangeValid);
|
||||
}
|
||||
rule.txtDataRange.setValue(rule.dataRangeValid);
|
||||
}
|
||||
};
|
||||
|
||||
var win = new SSE.Views.CellRangeDialog({
|
||||
handler: handlerDlg
|
||||
}).on('close', function() {
|
||||
me.show();
|
||||
});
|
||||
|
||||
var xy = me.$window.offset();
|
||||
me.hide();
|
||||
win.show(xy.left + 160, xy.top + 125);
|
||||
win.setSettings({
|
||||
api : me.api,
|
||||
range : !_.isEmpty(rule.txtDataRange.getValue()) ? rule.txtDataRange.getValue() : rule.dataRangeValid,
|
||||
type : Asc.c_oAscSelectionDialogType.ConditionalFormattingRule,
|
||||
validation: function() {return true;}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
onEditRule: function (isEdit) {
|
||||
var me = this,
|
||||
xy = me.$window.offset(),
|
||||
rec = this.rulesList.getSelectedRec(),
|
||||
previewRec;
|
||||
|
||||
var win = new SSE.Views.FormatRulesEditDlg({
|
||||
api: me.api,
|
||||
props : (isEdit && rec) ? rec.get('props') : null,
|
||||
isEdit : isEdit,
|
||||
langId : me.langId,
|
||||
handler : function(result, settings) {
|
||||
if (result == 'ok' && settings) {
|
||||
var name = me.getRuleName(settings);
|
||||
if (isEdit) {
|
||||
rec.set('name', name);
|
||||
rec.set('tip', name);
|
||||
rec.set('ruleChanged', true);
|
||||
rec.set('props', settings);
|
||||
previewRec = rec;
|
||||
} else {
|
||||
settings.asc_setLocation(me.currentRange);
|
||||
var ruleStore = me.rulesStores[me.currentSheet];
|
||||
previewRec = ruleStore.add({
|
||||
ruleIndex: me.rules.length,
|
||||
name: name,
|
||||
tip: name,
|
||||
range: me.currentRange,
|
||||
activeSheet: true,
|
||||
ruleChanged: true,
|
||||
priority: 1,
|
||||
props: settings,
|
||||
lock: false,
|
||||
lockuser: ''
|
||||
}, {at: 0});
|
||||
me.updateRulesPriority(ruleStore);
|
||||
}
|
||||
}
|
||||
}
|
||||
}).on('close', function() {
|
||||
me.show();
|
||||
if (isEdit) {
|
||||
previewRec && me.drawRulePreview(previewRec);
|
||||
} else if (previewRec) {
|
||||
me.cmbScope.setValue(Asc.c_oAscSelectionForCFType.selection);
|
||||
me.refreshRuleList(me.cmbScope.getSelectedRecord());
|
||||
}
|
||||
});
|
||||
|
||||
me.hide();
|
||||
win.show();
|
||||
},
|
||||
|
||||
onDeleteRule: function () {
|
||||
var store = this.rulesList.store,
|
||||
rec = this.rulesList.getSelectedRec();
|
||||
if (rec) {
|
||||
var id = rec.get('ruleId');
|
||||
(id!==undefined) && this.rulesDeleted.push(id);
|
||||
var index = rec.get('ruleIndex');
|
||||
this.rules[index] = undefined;
|
||||
index = store.indexOf(rec);
|
||||
store.remove(rec);
|
||||
this.updateRulesCount();
|
||||
(this.listSettings.length>0) && this.rulesList.selectByIndex(index<=this.listSettings.max ? index : this.listSettings.max);
|
||||
this.rulesList.scrollToRecord(this.rulesList.getSelectedRec());
|
||||
}
|
||||
this.updateButtons();
|
||||
},
|
||||
|
||||
onMoveClick: function(up) {
|
||||
var store = this.rulesList.store,
|
||||
length = store.length,
|
||||
rec = this.rulesList.getSelectedRec();
|
||||
if (rec) {
|
||||
var index = store.indexOf(rec);
|
||||
var newrec = store.at(up ? this.getPrevRuleIndex(index) : this.getNextRuleIndex(index)),
|
||||
prioritynew = newrec.get('priority');
|
||||
newrec.set('priority', rec.get('priority'));
|
||||
rec.set('priority', prioritynew);
|
||||
store.add(store.remove(rec), {at: up ? Math.max(0, index-1) : Math.min(length-1, index+1)});
|
||||
this.rulesList.selectRecord(rec);
|
||||
this.rulesList.scrollToRecord(rec);
|
||||
}
|
||||
this.updateMoveButtons();
|
||||
},
|
||||
|
||||
onSelectRule: function(lisvView, itemView, record) {
|
||||
this.userTipHide();
|
||||
this.updateButtons();
|
||||
},
|
||||
|
||||
updateButtons: function() {
|
||||
var rec = this.rulesList.getSelectedRec(),
|
||||
lock = rec ? rec.get('lock') : false;
|
||||
this.btnNew.setDisabled(this.rulesList.store.length>63 || this.locked);
|
||||
this.btnDelete.setDisabled(this.listSettings.length<1 || lock);
|
||||
this.btnEdit.setDisabled(this.listSettings.length<1 || lock);
|
||||
this.updateMoveButtons();
|
||||
this.rulesList.scroller && this.rulesList.scroller.update();
|
||||
},
|
||||
|
||||
updateMoveButtons: function() {
|
||||
var rec = this.rulesList.getSelectedRec(),
|
||||
index = rec ? this.rulesList.store.indexOf(rec) : -1;
|
||||
this.btnUp.setDisabled(index<=this.listSettings.min || this.locked);
|
||||
this.btnDown.setDisabled(index<0 || index==this.listSettings.max || this.locked);
|
||||
},
|
||||
|
||||
getPrevRuleIndex: function(index) {
|
||||
var store = this.rulesList.store;
|
||||
if (this.cmbScope.getValue() == Asc.c_oAscSelectionForCFType.worksheet) {
|
||||
return Math.max(0, index-1);
|
||||
} else {
|
||||
for (var i=index-1; i>=this.listSettings.min; i--) {
|
||||
if (store.at(i).get('cls')!=='hidden') {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return this.listSettings.min;
|
||||
}
|
||||
},
|
||||
|
||||
getNextRuleIndex: function(index) {
|
||||
var store = this.rulesList.store;
|
||||
if (this.cmbScope.getValue() == Asc.c_oAscSelectionForCFType.worksheet) {
|
||||
return Math.min(store.length-1, index+1);
|
||||
} else {
|
||||
for (var i=index+1; i<=this.listSettings.max; i++) {
|
||||
if (store.at(i).get('cls')!=='hidden') {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return this.listSettings.max;
|
||||
}
|
||||
},
|
||||
|
||||
updateRulesCount: function() {
|
||||
var store = this.rulesList.store;
|
||||
if (this.cmbScope.getValue() == Asc.c_oAscSelectionForCFType.worksheet) {
|
||||
this.listSettings = {length: store.length, min: 0, max: store.length-1};
|
||||
} else {
|
||||
this.listSettings = {length: 0, min: -1, max: 0};
|
||||
for (var i=0; i<store.length; i++) {
|
||||
if (store.at(i).get('cls')!=='hidden') {
|
||||
this.listSettings.length++;
|
||||
this.listSettings.max = i;
|
||||
(this.listSettings.min<0) && (this.listSettings.min=i);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
updateRulesPriority: function(store) {
|
||||
for (var i=1; i<store.length; i++) {
|
||||
var item = store.at(i);
|
||||
item.set('priority', item.get('priority')+1);
|
||||
}
|
||||
},
|
||||
|
||||
getSettings: function() {
|
||||
var sheets = [];
|
||||
for (var sheet in this.rulesStores) {
|
||||
if (this.rulesStores.hasOwnProperty(sheet)) {
|
||||
var store = this.rulesStores[sheet];
|
||||
var arr = [];
|
||||
store && store.each(function(item) {
|
||||
var props = item.get('props');
|
||||
if (item.get('priority')!==props.asc_getPriority()) {
|
||||
props.asc_setPriority(item.get('priority'));
|
||||
item.set('ruleChanged', true);
|
||||
}
|
||||
if (item.get('ruleChanged'))
|
||||
arr.push(props);
|
||||
});
|
||||
(arr.length>0) && (sheets[sheet] = arr);
|
||||
}
|
||||
}
|
||||
return {rules: sheets, deleted: this.rulesDeleted};
|
||||
},
|
||||
|
||||
onKeyDown: function (lisvView, record, e) {
|
||||
if (e.keyCode==Common.UI.Keys.DELETE && !this.btnDelete.isDisabled() && !/form-control/.test(e.target.className))
|
||||
this.onDeleteRule();
|
||||
},
|
||||
|
||||
close: function () {
|
||||
this.userTipHide();
|
||||
this.api.asc_unregisterCallback('asc_onLockCFManager', this.wrapEvents.onLockCFManager);
|
||||
this.api.asc_unregisterCallback('asc_onUnLockCFManager', this.wrapEvents.onUnLockCFManager);
|
||||
this.api.asc_unregisterCallback('asc_onLockCFRule', this.wrapEvents.onLockCFRule);
|
||||
this.api.asc_unregisterCallback('asc_onUnLockCFRule', this.wrapEvents.onUnLockCFRule);
|
||||
|
||||
Common.UI.Window.prototype.close.call(this);
|
||||
},
|
||||
|
||||
onLockCFManager: function(index) {
|
||||
if (this.currentSheet !== index) return;
|
||||
this.locked = true;
|
||||
this.updateButtons();
|
||||
if (this.userTooltip===true && this.rulesList.cmpEl.find('.lock-user').length>0)
|
||||
this.rulesList.cmpEl.on('mouseover', _.bind(this.onMouseOverLock, this)).on('mouseout', _.bind(this.onMouseOutLock, this));
|
||||
},
|
||||
|
||||
onUnLockCFManager: function(index) {
|
||||
if (this.currentSheet !== index) return;
|
||||
this.locked = false;
|
||||
this.updateButtons();
|
||||
},
|
||||
|
||||
onLockCFRule: function(index, ruleId, userId) {
|
||||
if (this.currentSheet !== index) return;
|
||||
var store = this.rulesList.store,
|
||||
rec = store.findWhere({ruleId: ruleId});
|
||||
if (rec) {
|
||||
rec.set('lockuser', (userId) ? this.getUserName(userId) : this.guestText);
|
||||
rec.set('lock', true);
|
||||
this.updateButtons();
|
||||
}
|
||||
if (this.userTooltip===true && this.rulesList.cmpEl.find('.lock-user').length>0)
|
||||
this.rulesList.cmpEl.on('mouseover', _.bind(this.onMouseOverLock, this)).on('mouseout', _.bind(this.onMouseOutLock, this));
|
||||
},
|
||||
|
||||
onUnLockCFRule: function(index, ruleId) {
|
||||
if (this.currentSheet !== index) return;
|
||||
var store = this.rulesList.store,
|
||||
rec = store.findWhere({ruleId: ruleId});
|
||||
if (rec) {
|
||||
rec.set('lockuser', '');
|
||||
rec.set('lock', false);
|
||||
this.updateButtons();
|
||||
}
|
||||
},
|
||||
|
||||
getUserName: function(id){
|
||||
var usersStore = SSE.getCollection('Common.Collections.Users');
|
||||
if (usersStore){
|
||||
var rec = usersStore.findUser(id);
|
||||
if (rec)
|
||||
return Common.Utils.UserInfoParser.getParsedName(rec.get('username'));
|
||||
}
|
||||
return this.guestText;
|
||||
},
|
||||
|
||||
txtTitle: 'Conditional Formatting',
|
||||
textNew: 'New',
|
||||
textEdit: 'Edit',
|
||||
textDelete: 'Delete',
|
||||
textUp: 'Move rule up',
|
||||
textDown: 'Move rule down',
|
||||
textSelection: 'Current selection',
|
||||
textThisSheet: 'This worksheet',
|
||||
textThisTable: 'This table',
|
||||
textThisPivot: 'This pivot',
|
||||
textScope: 'Show formatting rules for',
|
||||
textRules: 'Rules',
|
||||
textApply: 'Apply to',
|
||||
textFormat: 'Format',
|
||||
textSelectData: 'Select data',
|
||||
textAbove: 'Above average',
|
||||
textBelow: 'Below average',
|
||||
textEqAbove: 'Equal to or above average',
|
||||
textEqBelow: 'Equal to or below average',
|
||||
text1Above: '1 std dev above average',
|
||||
text1Below: '1 std dev below average',
|
||||
text2Above: '2 std dev above average',
|
||||
text2Below: '2 std dev below average',
|
||||
text3Above: '3 std dev above average',
|
||||
text3Below: '3 std dev below average',
|
||||
textBeginsWith: 'Cell value begins with',
|
||||
textCellValue: 'Cell value',
|
||||
textBetween: 'is between {0} and {1}',
|
||||
textNotBetween: 'is not between {0} and {1}',
|
||||
textColorScale: 'Graded color scale',
|
||||
textContainsBlank: 'Cell contains a blank value',
|
||||
textContainsError: 'Cell contains an error',
|
||||
textContains: 'Cell value contains',
|
||||
textNotContains: 'Cell value does not contain',
|
||||
textNotContainsError: 'Cell does not contain an error',
|
||||
textNotContainsBlank: 'Cell does not contain a blank value',
|
||||
textEnds: 'Cell value ends with',
|
||||
textIconSet: 'Icon set',
|
||||
textDuplicate: 'Duplicate values',
|
||||
textUnique: 'Unique values',
|
||||
tipIsLocked: 'This element is being edited by another user.',
|
||||
guestText: 'Guest'
|
||||
|
||||
}, SSE.Views.FormatRulesManagerDlg || {}));
|
||||
});
|
|
@ -268,7 +268,7 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template',
|
|||
if (item)
|
||||
color_data.push({
|
||||
value: Common.Utils.ThemeColor.getHexColor(item.get_r(), item.get_g(), item.get_b()).toLocaleUpperCase(),
|
||||
displayValue: Common.Utils.ThemeColor.getHexColor(item.get_r(), item.get_g(), item.get_b()).toLocaleUpperCase(),
|
||||
displayValue: '',
|
||||
color: item
|
||||
});
|
||||
else
|
||||
|
@ -555,8 +555,10 @@ define([ 'text!spreadsheeteditor/main/app/template/SortDialog.template',
|
|||
var value = item ? Common.Utils.ThemeColor.getHexColor(item.get_r(), item.get_g(), item.get_b()).toLocaleUpperCase() : -1,
|
||||
color_data = {
|
||||
value: value,
|
||||
displayValue: item ? value : ((level.cmbSort.getValue()==Asc.c_oAscSortOptions.ByColorFill) ? me.textNone : me.textAuto),
|
||||
color: item
|
||||
displayValue: item ? '' : ((level.cmbSort.getValue()==Asc.c_oAscSortOptions.ByColorFill) ? me.textNone : me.textAuto),
|
||||
color: item,
|
||||
styleObj: {'background-color': item ? '#' + value : 'transparent' },
|
||||
styleStr: item ? 'background-color: #' + value + ';' : 'background-color:transparent;'
|
||||
};
|
||||
item ? level.color_data.push(color_data) : level.color_data.unshift(color_data);
|
||||
if (colorValue == color_data.value)
|
||||
|
|
|
@ -1069,10 +1069,19 @@ define([
|
|||
})
|
||||
});
|
||||
|
||||
me.btnCondFormat = new Common.UI.Button({
|
||||
id : 'id-toolbar-btn-condformat',
|
||||
cls : 'btn-toolbar',
|
||||
iconCls : 'toolbar__icon btn-cond-format',
|
||||
lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth],
|
||||
menu : true
|
||||
});
|
||||
|
||||
me.btnColorSchemas = new Common.UI.Button({
|
||||
id : 'id-toolbar-btn-colorschemas',
|
||||
cls : 'btn-toolbar',
|
||||
iconCls : 'toolbar__icon toolbar__icon btn-colorschemas',
|
||||
cls : 'btn-toolbar x-huge icon-top',
|
||||
iconCls : 'toolbar__icon btn-colorschemas',
|
||||
caption : me.capBtnColorSchemas,
|
||||
lock : [_set.editCell, _set.lostConnect, _set.coAuth],
|
||||
menu : new Common.UI.Menu({
|
||||
cls: 'shifted-left',
|
||||
|
@ -1450,7 +1459,7 @@ define([
|
|||
me.btnAlignMiddle, me.btnAlignBottom, me.btnWrap, me.btnTextOrient, me.btnBackColor, me.btnInsertTable,
|
||||
me.btnMerge, me.btnInsertFormula, me.btnNamedRange, me.btnIncDecimal, me.btnInsertShape, me.btnInsertEquation, me.btnInsertSymbol, me.btnInsertSlicer,
|
||||
me.btnInsertText, me.btnInsertTextArt, me.btnSortUp, me.btnSortDown, me.btnSetAutofilter, me.btnClearAutofilter,
|
||||
me.btnTableTemplate, me.btnPercentStyle, me.btnCurrencyStyle, me.btnDecDecimal, me.btnAddCell, me.btnDeleteCell,
|
||||
me.btnTableTemplate, me.btnPercentStyle, me.btnCurrencyStyle, me.btnDecDecimal, me.btnAddCell, me.btnDeleteCell, me.btnCondFormat,
|
||||
me.cmbNumberFormat, me.btnBorders, me.btnInsertImage, me.btnInsertHyperlink,
|
||||
me.btnInsertChart, me.btnColorSchemas,
|
||||
me.btnCopy, me.btnPaste, me.listStyles, me.btnPrint,
|
||||
|
@ -1666,6 +1675,7 @@ define([
|
|||
_injectComponent('#slot-img-movefrwd', this.btnImgForward);
|
||||
_injectComponent('#slot-img-movebkwd', this.btnImgBackward);
|
||||
_injectComponent('#slot-btn-scale', this.btnScale);
|
||||
_injectComponent('#slot-btn-condformat', this.btnCondFormat);
|
||||
this.btnsEditHeader = Common.Utils.injectButtons($host.find('.slot-editheader'), 'tlbtn-editheader-', 'toolbar__icon btn-editheader', this.capBtnInsHeader,
|
||||
[SSE.enumLock.editCell, SSE.enumLock.selRangeEdit, SSE.enumLock.headerLock, SSE.enumLock.lostConnect, SSE.enumLock.coAuth]);
|
||||
Array.prototype.push.apply(this.lockControls, this.btnsEditHeader);
|
||||
|
@ -1740,6 +1750,7 @@ define([
|
|||
_updateHint(this.btnPrintArea, this.tipPrintArea);
|
||||
_updateHint(this.btnPrintTitles, this.tipPrintTitles);
|
||||
_updateHint(this.btnScale, this.tipScale);
|
||||
_updateHint(this.btnCondFormat, this.tipCondFormat);
|
||||
this.btnsEditHeader.forEach(function (btn) {
|
||||
_updateHint(btn, me.tipEditHeader);
|
||||
});
|
||||
|
@ -1930,6 +1941,134 @@ define([
|
|||
this.btnInsertTextArt.menu.on('show:before', onShowBeforeTextArt);
|
||||
}
|
||||
|
||||
if (this.btnCondFormat && this.btnCondFormat.rendered) {
|
||||
this.btnCondFormat.setMenu( new Common.UI.Menu({
|
||||
items: [
|
||||
{
|
||||
caption : Common.define.conditionalData.textGreater,
|
||||
type : Asc.c_oAscCFType.cellIs,
|
||||
value : Asc.c_oAscCFOperator.greaterThan
|
||||
},
|
||||
{
|
||||
caption : Common.define.conditionalData.textLess,
|
||||
type : Asc.c_oAscCFType.cellIs,
|
||||
value : Asc.c_oAscCFOperator.lessThan
|
||||
},
|
||||
{
|
||||
caption : Common.define.conditionalData.textEqual,
|
||||
type : Asc.c_oAscCFType.cellIs,
|
||||
value : Asc.c_oAscCFOperator.equal
|
||||
},
|
||||
{caption: '--'},
|
||||
{
|
||||
caption : Common.define.conditionalData.textBetween,
|
||||
type : Asc.c_oAscCFType.cellIs,
|
||||
value : Asc.c_oAscCFOperator.between
|
||||
},
|
||||
{
|
||||
caption : this.textTop10,
|
||||
type : Asc.c_oAscCFType.top10,
|
||||
value : 0
|
||||
},
|
||||
{caption: '--'},
|
||||
{
|
||||
caption : Common.define.conditionalData.textText,
|
||||
menu : new Common.UI.Menu({
|
||||
menuAlign : 'tl-tr',
|
||||
items: [
|
||||
{ caption: Common.define.conditionalData.textContains, type: Asc.c_oAscCFType.containsText },
|
||||
{ caption: Common.define.conditionalData.textNotContains, type: Asc.c_oAscCFType.notContainsText },
|
||||
{ caption: Common.define.conditionalData.textBegins, type: Asc.c_oAscCFType.beginsWith },
|
||||
{ caption: Common.define.conditionalData.textEnds, type: Asc.c_oAscCFType.endsWith }
|
||||
]
|
||||
})
|
||||
},
|
||||
{caption: '--'},
|
||||
{
|
||||
caption : Common.define.conditionalData.textDate,
|
||||
menu : new Common.UI.Menu({
|
||||
menuAlign : 'tl-tr',
|
||||
items: [
|
||||
{ caption: Common.define.conditionalData.textYesterday, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.yesterday },
|
||||
{ caption: Common.define.conditionalData.textToday, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.today},
|
||||
{ caption: Common.define.conditionalData.textTomorrow, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.tomorrow},
|
||||
{ caption: Common.define.conditionalData.textLast7days, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.last7Days},
|
||||
{ caption: Common.define.conditionalData.textLastWeek, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.lastWeek},
|
||||
{ caption: Common.define.conditionalData.textThisWeek, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.thisWeek},
|
||||
{ caption: Common.define.conditionalData.textNextWeek, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.nextWeek},
|
||||
{ caption: Common.define.conditionalData.textLastMonth, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.lastMonth},
|
||||
{ caption: Common.define.conditionalData.textThisMonth, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.thisMonth},
|
||||
{ caption: Common.define.conditionalData.textNextMonth, type: Asc.c_oAscCFType.timePeriod, value: Asc.c_oAscTimePeriod.nextMonth}
|
||||
]
|
||||
})
|
||||
},
|
||||
{caption: '--'},
|
||||
{
|
||||
caption : Common.define.conditionalData.textBlank,
|
||||
type : Asc.c_oAscCFType.containsBlanks
|
||||
},
|
||||
{
|
||||
caption : Common.define.conditionalData.textDuplicate,
|
||||
type : Asc.c_oAscCFType.duplicateValues
|
||||
},
|
||||
{caption: '--'},
|
||||
this.mnuDataBars = new Common.UI.MenuItem({
|
||||
caption : this.textDataBars,
|
||||
type : Asc.c_oAscCFType.dataBar,
|
||||
menu : new Common.UI.Menu({
|
||||
menuAlign : 'tl-tr',
|
||||
style: 'min-width: auto;',
|
||||
items: []
|
||||
})
|
||||
}),
|
||||
this.mnuColorScales = new Common.UI.MenuItem({
|
||||
caption : this.textColorScales,
|
||||
type : Asc.c_oAscCFType.colorScale,
|
||||
menu : new Common.UI.Menu({
|
||||
menuAlign : 'tl-tr',
|
||||
style: 'min-width: auto;',
|
||||
items: []
|
||||
})
|
||||
}),
|
||||
this.mnuIconSets = new Common.UI.MenuItem({
|
||||
caption : Common.define.conditionalData.textIconSets,
|
||||
type : Asc.c_oAscCFType.iconSet,
|
||||
menu : new Common.UI.Menu({
|
||||
menuAlign : 'tl-tr',
|
||||
style: 'min-width: auto;',
|
||||
items: []
|
||||
})
|
||||
}),
|
||||
{caption: '--'},
|
||||
{
|
||||
caption : Common.define.conditionalData.textFormula,
|
||||
type : Asc.c_oAscCFType.expression
|
||||
},
|
||||
{caption: '--'},
|
||||
{
|
||||
caption : this.textNewRule,
|
||||
value : 'new'
|
||||
},
|
||||
{
|
||||
caption : this.textClearRule,
|
||||
menu : new Common.UI.Menu({
|
||||
menuAlign : 'tl-tr',
|
||||
items: [
|
||||
{ value: 'clear', type: Asc.c_oAscSelectionForCFType.selection, caption: this.textSelection },
|
||||
{ value: 'clear', type: Asc.c_oAscSelectionForCFType.worksheet, caption: this.textThisSheet },
|
||||
{ value: 'clear', type: Asc.c_oAscSelectionForCFType.table, caption: this.textThisTable },
|
||||
{ value: 'clear', type: Asc.c_oAscSelectionForCFType.pivot, caption: this.textThisPivot }
|
||||
]
|
||||
})
|
||||
},
|
||||
{
|
||||
caption : this.textManageRule,
|
||||
value : 'manage'
|
||||
}
|
||||
]
|
||||
}));
|
||||
}
|
||||
|
||||
if (!this.mode.isEditMailMerge && !this.mode.isEditDiagram)
|
||||
this.updateMetricUnit();
|
||||
},
|
||||
|
@ -2459,6 +2598,18 @@ define([
|
|||
txtAutosumTip: 'Summation',
|
||||
capBtnPrintTitles: 'Print Titles',
|
||||
tipPrintTitles: 'Print titles',
|
||||
capBtnColorSchemas: 'Color Scheme',
|
||||
tipCondFormat: 'Conditional formatting',
|
||||
textTop10: 'Top 10',
|
||||
textDataBars: 'Data Bars',
|
||||
textColorScales: 'Color Scales',
|
||||
textNewRule: 'New Rule',
|
||||
textClearRule: 'Clear Rules',
|
||||
textSelection: 'From current selection',
|
||||
textThisSheet: 'From this worksheet',
|
||||
textThisTable: 'From this table',
|
||||
textThisPivot: 'From this pivot',
|
||||
textManageRule: 'Manage Rules',
|
||||
capBtnInsSlicer: 'Slicer',
|
||||
tipInsertSlicer: 'Insert slicer',
|
||||
textVertical: 'Vertical Text',
|
||||
|
|
|
@ -342,6 +342,7 @@
|
|||
<img class="inline-svg" src="../../common/main/resources/img/toolbar/charttypes.svg">
|
||||
<img class="inline-svg" src="resources/img/recent-file.svg">
|
||||
<img class="inline-svg" src="resources/img/file-template.svg">
|
||||
<img class="inline-svg" src="resources/img/cf-icons.svg">
|
||||
<script>
|
||||
var svgpoints = document.querySelectorAll('img.inline-svg');
|
||||
SVGInjector(svgpoints);
|
||||
|
|
|
@ -372,6 +372,7 @@
|
|||
<inline src="resources/img/toolbar/charttypes.svg" />
|
||||
<inline src="resources/img/recent-file.svg" />
|
||||
<inline src="resources/img/file-template.svg" />
|
||||
<inline src="resources/img/cf-icons.svg" />
|
||||
|
||||
<script src="../../../../../../sdkjs/common/device_scale.js?__inline=true"></script>
|
||||
<script data-main="app" src="../../../vendor/requirejs/require.js"></script>
|
||||
|
|
|
@ -264,6 +264,7 @@
|
|||
<img class="inline-svg" src="../../common/main/resources/img/toolbar/charttypes.svg">
|
||||
<img class="inline-svg" src="resources/img/recent-file.svg">
|
||||
<img class="inline-svg" src="resources/img/file-template.svg">
|
||||
<img class="inline-svg" src="resources/img/cf-icons.svg">
|
||||
<script>
|
||||
var svgpoints = document.querySelectorAll('img.inline-svg');
|
||||
SVGInjector(svgpoints);
|
||||
|
|
|
@ -315,6 +315,7 @@
|
|||
<inline src="resources/img/toolbar/charttypes.svg" />
|
||||
<inline src="resources/img/recent-file.svg" />
|
||||
<inline src="resources/img/file-template.svg" />
|
||||
<inline src="resources/img/cf-icons.svg" />
|
||||
|
||||
<div id="viewport"></div>
|
||||
|
||||
|
|
|
@ -48,6 +48,56 @@
|
|||
"Common.define.chartData.textStock": "Stock",
|
||||
"Common.define.chartData.textSurface": "Surface",
|
||||
"Common.define.chartData.textWinLossSpark": "Win/Loss",
|
||||
"Common.define.conditionalData.textDate": "Date",
|
||||
"Common.define.conditionalData.textYesterday": "Yesterday",
|
||||
"Common.define.conditionalData.textToday": "Today",
|
||||
"Common.define.conditionalData.textTomorrow": "Tomorrow",
|
||||
"Common.define.conditionalData.textLast7days": "In the last 7 days",
|
||||
"Common.define.conditionalData.textLastWeek": "Last week",
|
||||
"Common.define.conditionalData.textThisWeek": "This week",
|
||||
"Common.define.conditionalData.textNextWeek": "Next week",
|
||||
"Common.define.conditionalData.textLastMonth": "Last month",
|
||||
"Common.define.conditionalData.textThisMonth": "This month",
|
||||
"Common.define.conditionalData.textNextMonth": "Next month",
|
||||
"Common.define.conditionalData.textText": "Text",
|
||||
"Common.define.conditionalData.textContains": "Contains",
|
||||
"Common.define.conditionalData.textNotContains": "Does not contain",
|
||||
"Common.define.conditionalData.textBegins": "Begins with",
|
||||
"Common.define.conditionalData.textEnds": "Ends with",
|
||||
"Common.define.conditionalData.textAverage": "Average",
|
||||
"Common.define.conditionalData.textAbove": "Above",
|
||||
"Common.define.conditionalData.textBelow": "Below",
|
||||
"Common.define.conditionalData.textEqAbove": "Equal to or above",
|
||||
"Common.define.conditionalData.textEqBelow": "Equal to or below",
|
||||
"Common.define.conditionalData.text1Above": "1 std dev above",
|
||||
"Common.define.conditionalData.text1Below": "1 std dev below",
|
||||
"Common.define.conditionalData.text2Above": "2 std dev above",
|
||||
"Common.define.conditionalData.text2Below": "2 std dev below",
|
||||
"Common.define.conditionalData.text3Above": "3 std dev above",
|
||||
"Common.define.conditionalData.text3Below": "3 std dev below",
|
||||
"Common.define.conditionalData.textGreater": "Greater than",
|
||||
"Common.define.conditionalData.textGreaterEq": "Greater than or equal to",
|
||||
"Common.define.conditionalData.textLess": "Less than",
|
||||
"Common.define.conditionalData.textLessEq": "Less than or equal to",
|
||||
"Common.define.conditionalData.textEqual": "Equal to",
|
||||
"Common.define.conditionalData.textNotEqual": "Not equal to",
|
||||
"Common.define.conditionalData.textBetween": "Between",
|
||||
"Common.define.conditionalData.textNotBetween": "Not between",
|
||||
"Common.define.conditionalData.textTop": "Top",
|
||||
"Common.define.conditionalData.textBottom": "Bottom",
|
||||
"Common.define.conditionalData.textBlank": "Blank",
|
||||
"Common.define.conditionalData.textError": "Error",
|
||||
"Common.define.conditionalData.textBlanks": "Contains blanks",
|
||||
"Common.define.conditionalData.textNotBlanks": "Does not contain blanks",
|
||||
"Common.define.conditionalData.textErrors": "Contains errors",
|
||||
"Common.define.conditionalData.textNotErrors": "Does not contain errors",
|
||||
"Common.define.conditionalData.textDuplicate": "Duplicate",
|
||||
"Common.define.conditionalData.textUnique": "Unique",
|
||||
"Common.define.conditionalData.textDataBar": "Data bar",
|
||||
"Common.define.conditionalData.textIconSets": "Icon sets",
|
||||
"Common.define.conditionalData.textFormula": "Formula",
|
||||
"Common.define.conditionalData.exampleText": "AaBbCcYyZz",
|
||||
"Common.define.conditionalData.noFormatText": "No format set",
|
||||
"Common.Translation.warnFileLocked": "The file is being edited in another app. You can continue editing and save it as a copy.",
|
||||
"Common.UI.ColorButton.textAutoColor": "Automatic",
|
||||
"Common.UI.ColorButton.textNewColor": "Add New Custom Color",
|
||||
|
@ -1280,6 +1330,10 @@
|
|||
"SSE.Controllers.Toolbar.txtTable_TableStyleMedium": "Table Style Medium",
|
||||
"SSE.Controllers.Toolbar.warnLongOperation": "The operation you are about to perform might take rather much time to complete.<br>Are you sure you want to continue?",
|
||||
"SSE.Controllers.Toolbar.warnMergeLostData": "Only the data from the upper-left cell will remain in the merged cell. <br>Are you sure you want to continue?",
|
||||
"SSE.Controllers.Toolbar.textDirectional": "Directional",
|
||||
"SSE.Controllers.Toolbar.textShapes": "Shapes",
|
||||
"SSE.Controllers.Toolbar.textIndicator": "Indicators",
|
||||
"SSE.Controllers.Toolbar.textRating": "Ratings",
|
||||
"SSE.Controllers.Viewport.textFreezePanes": "Freeze Panes",
|
||||
"SSE.Controllers.Viewport.textFreezePanesShadow": "Show Frozen Panes Shadow",
|
||||
"SSE.Controllers.Viewport.textHideFBar": "Hide Formula Bar",
|
||||
|
@ -1952,6 +2006,149 @@
|
|||
"SSE.Views.FileMenuPanels.Settings.txtGeneral": "General",
|
||||
"SSE.Views.FileMenuPanels.Settings.txtPageSettings": "Page Settings",
|
||||
"SSE.Views.FileMenuPanels.Settings.txtSpellChecking": "Spell checking",
|
||||
"SSE.Views.FormatRulesEditDlg.txtTitleNew": "New Formatting Rule",
|
||||
"SSE.Views.FormatRulesEditDlg.txtTitleEdit": "Edit Formatting Rule",
|
||||
"SSE.Views.FormatRulesEditDlg.textSelectData": "Select Data",
|
||||
"SSE.Views.FormatRulesEditDlg.textApply": "Apply to Range",
|
||||
"SSE.Views.FormatRulesEditDlg.textRule": "Rule",
|
||||
"SSE.Views.FormatRulesEditDlg.txtEmpty": "This field is required",
|
||||
"SSE.Views.FormatRulesEditDlg.textInvalidRange": "ERROR! Invalid cells range",
|
||||
"SSE.Views.FormatRulesEditDlg.notcriticalErrorTitle": "Warning",
|
||||
"SSE.Views.FormatRulesEditDlg.textFormat": "Format",
|
||||
"SSE.Views.FormatRulesEditDlg.textValue": "Value is",
|
||||
"SSE.Views.FormatRulesEditDlg.textRanked": "Ranked",
|
||||
"SSE.Views.FormatRulesEditDlg.textCustom": "Custom",
|
||||
"SSE.Views.FormatRulesEditDlg.textBold": "Bold",
|
||||
"SSE.Views.FormatRulesEditDlg.textItalic": "Italic",
|
||||
"SSE.Views.FormatRulesEditDlg.textUnderline": "Underline",
|
||||
"SSE.Views.FormatRulesEditDlg.textStrikeout": "Strikeout",
|
||||
"SSE.Views.FormatRulesEditDlg.textSuperscript": "Superscript",
|
||||
"SSE.Views.FormatRulesEditDlg.textSubscript": "Subscript",
|
||||
"SSE.Views.FormatRulesEditDlg.textColor": "Text color",
|
||||
"SSE.Views.FormatRulesEditDlg.fillColor": "Background color",
|
||||
"SSE.Views.FormatRulesEditDlg.textMinpoint": "Minpoint",
|
||||
"SSE.Views.FormatRulesEditDlg.textMidpoint": "Midpoint",
|
||||
"SSE.Views.FormatRulesEditDlg.textMaxpoint": "Maxpoint",
|
||||
"SSE.Views.FormatRulesEditDlg.textMinimum": "Minimum",
|
||||
"SSE.Views.FormatRulesEditDlg.textMaximum": "Maximum",
|
||||
"SSE.Views.FormatRulesEditDlg.textAppearance": "Bar Appearance",
|
||||
"SSE.Views.FormatRulesEditDlg.txtNumber": "Number",
|
||||
"SSE.Views.FormatRulesEditDlg.txtGeneral": "General",
|
||||
"SSE.Views.FormatRulesEditDlg.txtCurrency": "Currency",
|
||||
"SSE.Views.FormatRulesEditDlg.txtAccounting": "Accounting",
|
||||
"SSE.Views.FormatRulesEditDlg.txtDate": "Date",
|
||||
"SSE.Views.FormatRulesEditDlg.txtTime": "Time",
|
||||
"SSE.Views.FormatRulesEditDlg.txtPercentage": "Percentage",
|
||||
"SSE.Views.FormatRulesEditDlg.txtFraction": "Fraction",
|
||||
"SSE.Views.FormatRulesEditDlg.txtScientific": "Scientific",
|
||||
"SSE.Views.FormatRulesEditDlg.txtText": "Text",
|
||||
"SSE.Views.FormatRulesEditDlg.tipBorders": "Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textOutBorders": "Outside Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textAllBorders": "All Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textTopBorders": "Top Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textBottomBorders": "Bottom Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textLeftBorders": "Left Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textRightBorders": "Right Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textNoBorders": "No Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textInsideBorders": "Inside Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textMiddleBorders": "Inside Horizontal Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textCenterBorders": "Inside Vertical Borders",
|
||||
"SSE.Views.FormatRulesEditDlg.textDiagDownBorder": "Diagonal Down Border",
|
||||
"SSE.Views.FormatRulesEditDlg.textDiagUpBorder": "Diagonal Up Border",
|
||||
"SSE.Views.FormatRulesEditDlg.textBordersStyle": "Border Style",
|
||||
"SSE.Views.FormatRulesEditDlg.textBordersColor": "Borders Color",
|
||||
"SSE.Views.FormatRulesEditDlg.textNewColor": "Add New Custom Color",
|
||||
"SSE.Views.FormatRulesEditDlg.tipNumFormat": "Number Format",
|
||||
"SSE.Views.FormatRulesEditDlg.textPreview": "Preview",
|
||||
"SSE.Views.FormatRulesEditDlg.text2Scales": "2 Color scale",
|
||||
"SSE.Views.FormatRulesEditDlg.text3Scales": "3 Color scale",
|
||||
"SSE.Views.FormatRulesEditDlg.textPercent": "Percent",
|
||||
"SSE.Views.FormatRulesEditDlg.textFormula": "Formula",
|
||||
"SSE.Views.FormatRulesEditDlg.textPercentile": "Percentile",
|
||||
"SSE.Views.FormatRulesEditDlg.textAutomatic": "Automatic",
|
||||
"SSE.Views.FormatRulesEditDlg.textContext": "Context",
|
||||
"SSE.Views.FormatRulesEditDlg.textLeft2Right": "Left to right",
|
||||
"SSE.Views.FormatRulesEditDlg.textRight2Left": "Right to left",
|
||||
"SSE.Views.FormatRulesEditDlg.textNone": "None",
|
||||
"SSE.Views.FormatRulesEditDlg.textSolid": "Solid",
|
||||
"SSE.Views.FormatRulesEditDlg.textCellMidpoint": "Cell midpoint",
|
||||
"SSE.Views.FormatRulesEditDlg.textGradient": "Gradient",
|
||||
"SSE.Views.FormatRulesEditDlg.textFill": "Fill",
|
||||
"SSE.Views.FormatRulesEditDlg.textPositive": "Positive",
|
||||
"SSE.Views.FormatRulesEditDlg.textNegative": "Negative",
|
||||
"SSE.Views.FormatRulesEditDlg.textBorder": "Border",
|
||||
"SSE.Views.FormatRulesEditDlg.textBarDirection": "Bar Direction",
|
||||
"SSE.Views.FormatRulesEditDlg.textAxis": "Axis",
|
||||
"SSE.Views.FormatRulesEditDlg.textPosition": "Position",
|
||||
"SSE.Views.FormatRulesEditDlg.textShowBar": "Show bar only",
|
||||
"SSE.Views.FormatRulesEditDlg.textSameAs": "Same as positive",
|
||||
"SSE.Views.FormatRulesEditDlg.textIconStyle": "Icon Style",
|
||||
"SSE.Views.FormatRulesEditDlg.textReverse": "Reverse Icons Order",
|
||||
"SSE.Views.FormatRulesEditDlg.textShowIcon": "Show icon only",
|
||||
"SSE.Views.FormatRulesEditDlg.textIconLabelFirst": "when {0} {1}",
|
||||
"SSE.Views.FormatRulesEditDlg.textIconLabel": "when {0} {1} and",
|
||||
"SSE.Views.FormatRulesEditDlg.textIconLabelLast": "when value is",
|
||||
"SSE.Views.FormatRulesEditDlg.textEmptyText": "Enter a value.",
|
||||
"SSE.Views.FormatRulesEditDlg.textEmptyFormula": "Enter a valid formula.",
|
||||
"SSE.Views.FormatRulesEditDlg.textEmptyFormulaExt": "The formula you entered does not evaluate to a number, date, time or string.",
|
||||
"SSE.Views.FormatRulesEditDlg.textEmptyValue": "The value you entered is not a valid number, date, time or string.",
|
||||
"SSE.Views.FormatRulesEditDlg.textErrorTop10Between": "Enter a number between {0} and {1}.",
|
||||
"SSE.Views.FormatRulesEditDlg.textNotValidPercentage": "One or more of the specified values is not a valid percentage.",
|
||||
"SSE.Views.FormatRulesEditDlg.textNotValidPercentile": "One or more of the specified values is not a valid percentile.",
|
||||
"SSE.Views.FormatRulesEditDlg.textNotValidPercentageExt": "The specified {0} value is not a valid percentage.",
|
||||
"SSE.Views.FormatRulesEditDlg.textNotValidPercentileExt": "The specified {0} value is not a valid percentile.",
|
||||
"SSE.Views.FormatRulesEditDlg.textShortBar": "shortest bar",
|
||||
"SSE.Views.FormatRulesEditDlg.textLongBar": "longest bar",
|
||||
"SSE.Views.FormatRulesEditDlg.textCannotAddCF": "Cannot add the conditional formatting.",
|
||||
"SSE.Views.FormatRulesEditDlg.textIconsOverlap": "One or more icon data ranges overlap.<br>Adjust icon data range values so that the ranges do not overlap.",
|
||||
"SSE.Views.FormatRulesEditDlg.textSingleRef": "This type of reference cannot be used in a conditional formatting formula.<br>Change the reference to a single cell, or use the reference with a worksheet function, such as =SUM(A1:B5).",
|
||||
"SSE.Views.FormatRulesEditDlg.textRelativeRef": "You cannot use relative references in conditional formatting criteria for color scales, data bars, and icon sets.",
|
||||
"SSE.Views.FormatRulesEditDlg.textErrorGreater": "The value for the {0} must be greater than the value for the {1}.",
|
||||
"SSE.Views.FormatRulesEditDlg.textInvalid": "Invalid data range.",
|
||||
"SSE.Views.FormatRulesEditDlg.textClear": "Clear",
|
||||
"SSE.Views.FormatRulesEditDlg.textItem": "Item",
|
||||
"SSE.Views.FormatRulesManagerDlg.txtTitle": "Conditional Formatting",
|
||||
"SSE.Views.FormatRulesManagerDlg.textNew": "New",
|
||||
"SSE.Views.FormatRulesManagerDlg.textEdit": "Edit",
|
||||
"SSE.Views.FormatRulesManagerDlg.textDelete": "Delete",
|
||||
"SSE.Views.FormatRulesManagerDlg.textUp": "Move rule up",
|
||||
"SSE.Views.FormatRulesManagerDlg.textDown": "Move rule down",
|
||||
"SSE.Views.FormatRulesManagerDlg.textSelection": "Current selection",
|
||||
"SSE.Views.FormatRulesManagerDlg.textThisSheet": "This worksheet",
|
||||
"SSE.Views.FormatRulesManagerDlg.textThisTable": "This table",
|
||||
"SSE.Views.FormatRulesManagerDlg.textThisPivot": "This pivot",
|
||||
"SSE.Views.FormatRulesManagerDlg.textScope": "Show formatting rules for",
|
||||
"SSE.Views.FormatRulesManagerDlg.textRules": "Rules",
|
||||
"SSE.Views.FormatRulesManagerDlg.textApply": "Apply to",
|
||||
"SSE.Views.FormatRulesManagerDlg.textFormat": "Format",
|
||||
"SSE.Views.FormatRulesManagerDlg.textSelectData": "Select data",
|
||||
"SSE.Views.FormatRulesManagerDlg.textAbove": "Above average",
|
||||
"SSE.Views.FormatRulesManagerDlg.textBelow": "Below average",
|
||||
"SSE.Views.FormatRulesManagerDlg.textEqAbove": "Equal to or above average",
|
||||
"SSE.Views.FormatRulesManagerDlg.textEqBelow": "Equal to or below average",
|
||||
"SSE.Views.FormatRulesManagerDlg.text1Above": "1 std dev above average",
|
||||
"SSE.Views.FormatRulesManagerDlg.text1Below": "1 std dev below average",
|
||||
"SSE.Views.FormatRulesManagerDlg.text2Above": "2 std dev above average",
|
||||
"SSE.Views.FormatRulesManagerDlg.text2Below": "2 std dev below average",
|
||||
"SSE.Views.FormatRulesManagerDlg.text3Above": "3 std dev above average",
|
||||
"SSE.Views.FormatRulesManagerDlg.text3Below": "3 std dev below average",
|
||||
"SSE.Views.FormatRulesManagerDlg.textBeginsWith": "Cell value begins with",
|
||||
"SSE.Views.FormatRulesManagerDlg.textCellValue": "Cell value",
|
||||
"SSE.Views.FormatRulesManagerDlg.textBetween": "is between {0} and {1}",
|
||||
"SSE.Views.FormatRulesManagerDlg.textNotBetween": "is not between {0} and {1}",
|
||||
"SSE.Views.FormatRulesManagerDlg.textColorScale": "Graded color scale",
|
||||
"SSE.Views.FormatRulesManagerDlg.textContainsBlank": "Cell contains a blank value",
|
||||
"SSE.Views.FormatRulesManagerDlg.textContainsError": "Cell contains an error",
|
||||
"SSE.Views.FormatRulesManagerDlg.textContains": "Cell value contains",
|
||||
"SSE.Views.FormatRulesManagerDlg.textNotContains": "Cell value does not contain",
|
||||
"SSE.Views.FormatRulesManagerDlg.textNotContainsError": "Cell does not contain an error",
|
||||
"SSE.Views.FormatRulesManagerDlg.textNotContainsBlank": "Cell does not contain a blank value",
|
||||
"SSE.Views.FormatRulesManagerDlg.textEnds": "Cell value ends with",
|
||||
"SSE.Views.FormatRulesManagerDlg.textIconSet": "Icon set",
|
||||
"SSE.Views.FormatRulesManagerDlg.textDuplicate": "Duplicate values",
|
||||
"SSE.Views.FormatRulesManagerDlg.textUnique": "Unique values",
|
||||
"SSE.Views.FormatRulesManagerDlg.tipIsLocked": "This element is being edited by another user.",
|
||||
"SSE.Views.FormatRulesManagerDlg.guestText": "Guest",
|
||||
"SSE.Views.FormatSettingsDialog.textCategory": "Category",
|
||||
"SSE.Views.FormatSettingsDialog.textDecimal": "Decimal",
|
||||
"SSE.Views.FormatSettingsDialog.textFormat": "Format",
|
||||
|
@ -3036,6 +3233,18 @@
|
|||
"SSE.Views.Toolbar.txtTime": "Time",
|
||||
"SSE.Views.Toolbar.txtUnmerge": "Unmerge Cells",
|
||||
"SSE.Views.Toolbar.txtYen": "¥ Yen",
|
||||
"SSE.Views.Toolbar.tipCondFormat": "Conditional formatting",
|
||||
"SSE.Views.Toolbar.textTop10": "Top 10",
|
||||
"SSE.Views.Toolbar.textDataBars": "Data Bars",
|
||||
"SSE.Views.Toolbar.textColorScales": "Color Scales",
|
||||
"SSE.Views.Toolbar.textNewRule": "New Rule",
|
||||
"SSE.Views.Toolbar.textClearRule": "Clear Rules",
|
||||
"SSE.Views.Toolbar.textSelection": "From current selection",
|
||||
"SSE.Views.Toolbar.textThisSheet": "From this worksheet",
|
||||
"SSE.Views.Toolbar.textThisTable": "From this table",
|
||||
"SSE.Views.Toolbar.textThisPivot": "From this pivot",
|
||||
"SSE.Views.Toolbar.textManageRule": "Manage Rules",
|
||||
"SSE.Views.Toolbar.capBtnColorSchemas": "Color Scheme",
|
||||
"SSE.Views.Top10FilterDialog.textType": "Show",
|
||||
"SSE.Views.Top10FilterDialog.txtBottom": "Bottom",
|
||||
"SSE.Views.Top10FilterDialog.txtBy": "by",
|
||||
|
|
373
apps/spreadsheeteditor/main/resources/img/cf-icons.svg
Normal file
373
apps/spreadsheeteditor/main/resources/img/cf-icons.svg
Normal file
|
@ -0,0 +1,373 @@
|
|||
<svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<symbol id="bar-solid-blue" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="#4D82B8"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="#4D82B8"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="#4D82B8"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#4D82B8"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-solid-green" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="#63C384"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="#63C384"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="#63C384"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#63C384"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-solid-lightblue" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="#008AEF"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="#008AEF"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="#008AEF"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#008AEF"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-solid-purple" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="#D6007B"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="#D6007B"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="#D6007B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#D6007B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-solid-red" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="#FF555A"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="#FF555A"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="#FF555A"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#FF555A"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-solid-yellow" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="#FFB628"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="#FFB628"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="#FFB628"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#FFB628"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-blue-white-red" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#ABC3E3"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="white"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#5A8AC6"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#F8696B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-green-white" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#8ACE9C"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#D6EDDE"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#63BE7B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="white"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-green-white-red" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#B0DDBD"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="white"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#63BE7B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#F8696B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-green-yellow" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#8ACB84"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#D8E394"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#63BE7B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#FFEF9C"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-green-yellow-red" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#FFEB84"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#FBAA77"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#63BE7B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#F8696B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-red-white" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#F98E90"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#FBD8DA"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#F8696B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="white"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-red-white-blue" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="white"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#ABC3E3"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#F8696B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#5A8AC6"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-red-white-green" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="white"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#B0DDBD"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#F8696B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#63BE7B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-red-yellow-green" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#FBAA77"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#FFEB84"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#F8696B"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#63BE7B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-white-green" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#D6EDDE"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#8ACE9C"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="white"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#63BE7B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-white-red" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#FBD8DA"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#F98E90"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="white"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#F8696B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="color-scale-yellow-green" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="19" height="4" fill="#D8E394"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="19" height="4" fill="#8ACB84"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="19" height="4" fill="#FFEF9C"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="#63BE7B"/>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-gradient-blue" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="url(#paint0_linear)"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="url(#paint1_linear)"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="url(#paint2_linear)"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="url(#paint3_linear)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear" x1="3.75" y1="10" x2="7.74999" y2="10.0075" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#4D82B8"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear" x1="4.5" y1="15" x2="12.4999" y2="15.03" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#4D82B8"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear" x1="5.1" y1="5" x2="16.2997" y2="5.05883" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#4D82B8"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear" x1="5.85" y1="20" x2="21.0492" y2="20.1084" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#4D82B8"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-gradient-green" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="url(#paint10_linear)"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="url(#paint11_linear)"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="url(#paint12_linear)"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="url(#paint13_linear)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint10_linear" x1="3.75" y1="10" x2="7.75" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#63C384"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint11_linear" x1="4.5" y1="15" x2="12.5" y2="15" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#63C384"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint12_linear" x1="5.1" y1="5" x2="16.3" y2="5.00008" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#63C384"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint13_linear" x1="5.85" y1="20" x2="21.05" y2="20.0002" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#63C384"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-gradient-lightblue" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="url(#paint20_linear)"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="url(#paint21_linear)"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="url(#paint22_linear)"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="url(#paint23_linear)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint20_linear" x1="3.75" y1="10" x2="7.75" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#008AEF"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint21_linear" x1="4.5" y1="15" x2="12.5" y2="15" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#008AEF"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint22_linear" x1="5.1" y1="5" x2="16.3" y2="5.00009" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#008AEF"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint23_linear" x1="5.85" y1="20" x2="21.05" y2="20.0002" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#008AEF"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-gradient-purple" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="url(#paint30_linear)"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="url(#paint31_linear)"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="url(#paint32_linear)"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="url(#paint33_linear)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint30_linear" x1="3.25" y1="10" x2="7.75" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#D6007B"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint31_linear" x1="3.5" y1="15" x2="12.5" y2="15" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#D6007B"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint32_linear" x1="3.7" y1="5" x2="16.3" y2="5.00009" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#D6007B"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint33_linear" x1="3.95" y1="20" x2="21.05" y2="20.0002" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#D6007B"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-gradient-red" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="url(#paint40_linear)"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="url(#paint41_linear)"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="url(#paint42_linear)"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="url(#paint43_linear)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint40_linear" x1="3.75" y1="10" x2="7.75" y2="10" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF555A"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint41_linear" x1="4.5" y1="15" x2="12.5" y2="15" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF555A"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint42_linear" x1="5.1" y1="5" x2="16.3" y2="5.00006" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF555A"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint43_linear" x1="5.85" y1="20" x2="21.05" y2="20.0001" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FF555A"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</symbol>
|
||||
|
||||
<symbol id="bar-gradient-yellow" viewBox="0 0 25 25">
|
||||
<rect id="Rectangle 874" x="2.5" y="2.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 878" x="2.5" y="7.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 882" x="2.5" y="12.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 879" x="3" y="8" width="5" height="4" fill="url(#paint50_linear)"/>
|
||||
<rect id="Rectangle 883" x="3" y="13" width="10" height="4" fill="url(#paint51_linear)"/>
|
||||
<rect id="Rectangle 880" x="3" y="3" width="14" height="4" fill="url(#paint52_linear)"/>
|
||||
<rect id="Rectangle 882_2" x="2.5" y="17.5" width="20" height="5" fill="white" stroke="#888888"/>
|
||||
<rect id="Rectangle 883_2" x="3" y="18" width="19" height="4" fill="url(#paint53_linear)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint50_linear" x1="3.75" y1="10" x2="7.74999" y2="10.0075" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFB628"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint51_linear" x1="4.5" y1="15" x2="12.4999" y2="15.03" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFB628"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint52_linear" x1="5.1" y1="5" x2="16.2997" y2="5.05885" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFB628"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint53_linear" x1="5.85" y1="20" x2="21.0492" y2="20.1084" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FFB628"/>
|
||||
<stop offset="1" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</symbol>
|
||||
</svg>
|
After Width: | Height: | Size: 26 KiB |
Binary file not shown.
After Width: | Height: | Size: 489 B |
Binary file not shown.
After Width: | Height: | Size: 512 B |
Binary file not shown.
After Width: | Height: | Size: 555 B |
Binary file not shown.
After Width: | Height: | Size: 450 B |
Binary file not shown.
After Width: | Height: | Size: 693 B |
|
@ -240,3 +240,15 @@
|
|||
.box-shadow(none);
|
||||
}
|
||||
}
|
||||
|
||||
.iconset {
|
||||
.iconset-label {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.dataview > .item:not(:hover):not(.selected) {
|
||||
.box-shadow(none);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,7 +74,8 @@
|
|||
display: inline-block;
|
||||
}
|
||||
|
||||
#id-toolbar-mnu-item-border-width {
|
||||
#id-toolbar-mnu-item-border-width,
|
||||
#format-rules-borders-border-width {
|
||||
.border-size-item {
|
||||
background: ~"url(@{app-image-const-path}/toolbar/BorderSize.png) no-repeat scroll 0 0";
|
||||
width: 60px;
|
||||
|
|
Loading…
Reference in a new issue