devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
84 lines (83 loc) • 4.18 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (designer\widgets\styleseditor.js)
* Version: 20.2.13
* Build date: Apr 10, 2023
* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
;
Object.defineProperty(exports, "__esModule", { value: true });
var style_1 = require("../controls/properties/style");
var style_2 = require("../controls/metadata/properties/style");
var analytics_utils_1 = require("@devexpress/analytics-core/analytics-utils");
var ko = require("knockout");
var $ = require("jquery");
var analytics_internal_1 = require("@devexpress/analytics-core/analytics-internal");
var analytics_widgets_1 = require("@devexpress/analytics-core/analytics-widgets");
var StylesEditorHeaderModel = (function () {
function StylesEditorHeaderModel(styleName, styles, disabled, popupContainer) {
var _this = this;
this.displayExpr = 'name';
this.valueExpr = 'name';
this.displayCustomValue = true;
this.placeholder = analytics_internal_1.selectPlaceholder();
this.noDataText = analytics_internal_1.noDataText();
this.value = ko.pureComputed({
read: function () {
return styleName();
},
write: function (newVal) {
if (newVal !== analytics_utils_1.getLocalization(StylesEditorHeaderModel.newItem, StylesEditorHeaderModel.newItemTextId)) {
styleName(newVal);
}
}
});
this.items = ko.pureComputed(function () {
var result = [new style_1.StyleModel({ '@Name': analytics_utils_1.getLocalization(StylesEditorHeaderModel.newItem, StylesEditorHeaderModel.newItemTextId) })];
if (styles && styles()) {
result.push.apply(result, styles());
}
return result;
});
this.onValueChanged = function (e) {
if (e.value === analytics_utils_1.getLocalization(StylesEditorHeaderModel.newItem, StylesEditorHeaderModel.newItemTextId)) {
var newStyleName = analytics_internal_1.getUniqueNameForNamedObjectsArray(styles(), 'xrControlStyle'), newStyle = new style_1.StyleModel({ '@Name': newStyleName });
styles.push(newStyle);
_this.value(newStyleName);
}
};
this.disabled = disabled;
this.dropDownOptions = { container: popupContainer };
}
StylesEditorHeaderModel.newItem = 'Create New Style';
StylesEditorHeaderModel.newItemTextId = 'ASPxReportsStringId.ReportDesigner_StylesEditor_CreateNew';
return StylesEditorHeaderModel;
}());
exports.StylesEditorHeaderModel = StylesEditorHeaderModel;
ko.bindingHandlers['dxStylesEditor'] = {
init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
var _subscriptionNewStyle;
$(element).children().remove();
var templateHtml = analytics_widgets_1.getTemplate('dx-propertieseditor'), $element = $(element).append(templateHtml);
var style = ko.pureComputed(function () {
var value = valueAccessor(), styles = value.styles && value.styles(), filtered = styles && styles.filter(function (item) {
return item.name() === value.styleName();
});
if (filtered && filtered.length > 0) {
var style = filtered[0];
_subscriptionNewStyle = style.name.subscribe(function (newName) {
value.styleName(newName);
_subscriptionNewStyle.dispose();
});
return style;
}
return null;
});
analytics_internal_1.addDisposeCallback(element, function () {
$element = null;
_subscriptionNewStyle && _subscriptionNewStyle.dispose();
});
ko.applyBindings(bindingContext.createChildContext(new analytics_widgets_1.ObjectProperties(style, { editors: style_2.styleSerializationInfo }, 1, viewModel.disabled, undefined, viewModel.textToSearch)), $element.children()[0]);
return { controlsDescendantBindings: true };
}
};