UNPKG

igniteui-webcomponents-charts

Version:

Ignite UI Web Components charting components for building rich data visualizations using TypeScript APIs.

415 lines (412 loc) 17.7 kB
import { toPoint, initializePropertiesFromCss, NamePatcher, toSpinal, fromSpinal, getAllPropertyNames } from "igniteui-webcomponents-core"; import { IgcLegendMouseButtonEventArgs } from "./igc-legend-mouse-button-event-args"; import { IgcLegendMouseEventArgs } from "./igc-legend-mouse-event-args"; import { IgcLegendTextContentChangedEventArgs } from "./igc-legend-text-content-changed-event-args"; import { delegateCombine, delegateRemove } from "igniteui-webcomponents-core"; import { IgcHTMLElement } from "igniteui-webcomponents-core"; import { FontDefaults } from "igniteui-webcomponents-core"; export const LegendBaseStyles = [` :host { display: block; } .ig-legend { border: none; border: var(--legend-border, none); overflow: auto; overflow: var(--legend-item-overflow, auto); } .ig-chart-legend-item-text { vertical-align: middle; vertical-align: var(--legend-item-vertical-align, middle); } .ig-chart-legend-items-list { padding: 5px; padding: var(--legend-item-padding, 5px); margin: 0px; margin: var(--legend-item-margin, 0px); background-color: transparent; background-color: var(--legend-list-background-color, transparent); font: ${FontDefaults.legendLabelsFontSize}px ${FontDefaults.legendLabelsFontFamily}; font: var(--legend-item-font, ${FontDefaults.legendLabelsFontSize}px ${FontDefaults.legendLabelsFontFamily}); color: ${FontDefaults.legendLabelsBrush.fill}; color: var(--text-color, ${FontDefaults.legendLabelsBrush.fill}); } .ig-chart-legend-item-badge, .ui-chart-legend-item-badge, canvas { vertical-align: middle; vertical-align: var(--legend-item-badge-vertical-align, middle); } .ig-chart-legend-item { background-color: transparent; background-color: var(--legend-item-background-color, transparent); } `]; let IgcLegendBaseComponent = /*@__PURE__*/ (() => { class IgcLegendBaseComponent extends IgcHTMLElement { get i() { return this._implementation; } onImplementationCreated() { } constructor() { super(); this._settingAttributes = false; this._attached = false; this._queuedSetAttributes = []; this._updatingFromAttribute = false; this.__p = null; this._hasUserValues = new Set(); this._stylingContainer = null; this._stylingParent = null; this._inStyling = false; this._legendItemMouseLeftButtonDown = null; this._legendItemMouseLeftButtonDown_wrapped = null; this._legendItemMouseLeftButtonUp = null; this._legendItemMouseLeftButtonUp_wrapped = null; this._legendItemMouseEnter = null; this._legendItemMouseEnter_wrapped = null; this._legendItemMouseLeave = null; this._legendItemMouseLeave_wrapped = null; this._legendItemMouseMove = null; this._legendItemMouseMove_wrapped = null; this._legendTextContentChanged = null; this._legendTextContentChanged_wrapped = null; IgcLegendBaseComponent.ensureCss(); if (this._styling) { NamePatcher.ensureStylablePatched(Object.getPrototypeOf(this)); } this._implementation = this.createImplementation(); this._implementation.externalObject = this; this.onImplementationCreated(); if (document) { //introduce styles globally for now. } } static ensureCss() { if (!document) { return; } if (IgcLegendBaseComponent._checked.has(document)) { return; } for (let i = 0; i < document.head.children.length; i++) { let child = document.head.children[i]; if (child.tagName && child.tagName.toLowerCase() == "style" && child.hasAttribute("data-ig-legend-style")) { return; } } let style = document.createElement("style"); style.textContent = LegendBaseStyles[0]; style.setAttribute('data-ig-legend-style', 'true'); document.head.appendChild(style); IgcLegendBaseComponent._checked.set(document, true); } _enqueueSetAttribute(attrName, attrValue) { this._queuedSetAttributes.push({ attrName: attrName, attrValue: attrValue }); } _flushQueuedAttributes() { this._settingAttributes = true; for (let i = 0; i < this._queuedSetAttributes.length; i++) { this.setAttribute(this._queuedSetAttributes[i].attrName, this._queuedSetAttributes[i].attrValue); } this._settingAttributes = false; this._queuedSetAttributes.length = 0; } _a(attrName, attrValue) { if (this._updatingFromAttribute) { return; } if (attrValue) { attrValue = attrValue.toString(); } this._settingAttributes = true; attrName = toSpinal(attrName); if (this._attached) { this.setAttribute(attrName, attrValue); } else { this._enqueueSetAttribute(attrName, attrValue); } this._settingAttributes = false; } static get observedAttributes() { if (IgcLegendBaseComponent._observedAttributesIgcLegendBaseComponent == null) { let names = getAllPropertyNames(IgcLegendBaseComponent); for (let i = 0; i < names.length; i++) { names[i] = toSpinal(names[i]); } IgcLegendBaseComponent._observedAttributesIgcLegendBaseComponent = names; } return IgcLegendBaseComponent._observedAttributesIgcLegendBaseComponent; } attributeChangedCallback(name, oldValue, newValue) { if (this._settingAttributes) { return; } let setName = fromSpinal(name); this._updatingFromAttribute = true; this[setName] = newValue; this._updatingFromAttribute = false; } /** * Gets if the legend is item-wise. */ get isItemwise() { return this.i.isItemwise; } /** * Gets if the legend is a financial legend. */ get isFinancial() { return this.i.isFinancial; } findByName(name) { if (this.findEphemera) { if (name && name.indexOf("@@e:") == 0) { return this.findEphemera(name); } } return null; } get hasUserValues() { return this._hasUserValues; } __m(propertyName) { if (!this._inStyling) { this._hasUserValues.add(propertyName); } } _styling(container, component, parent) { if (this._inStyling) { return; } this._inStyling = true; this._stylingContainer = container; this._stylingParent = component; let genericPrefix = ""; let typeName = this.i.$type.name; if (typeName.indexOf("Xam") === 0) { typeName = typeName.substring(3); } genericPrefix = toSpinal("LegendBaseComponent"); let additionalPrefixes = []; let prefix = toSpinal(typeName); additionalPrefixes.push(prefix + "-"); let b = this.i.$type.baseType; while (b && b.name != "Object" && b.name != "Base" && b.name != "Control" && b.Name != "DependencyObject" && b.Name != "FrameworkElement") { typeName = b.name; if (typeName.indexOf("Xam") === 0) { typeName = typeName.substring(3); } let basePrefix = toSpinal(typeName); additionalPrefixes.push(basePrefix + "-"); b = b.baseType; } if (parent) { let parentTypeName = parent.i.$type.name; if (parentTypeName.indexOf("Xam") === 0) { parentTypeName = parentTypeName.substring(3); } let parentPrefix = toSpinal(parentTypeName); additionalPrefixes.push(parentPrefix + "-" + genericPrefix + "-"); additionalPrefixes.push(parentPrefix + "-" + prefix + "-"); } initializePropertiesFromCss(container, this, genericPrefix + "-", this.hasUserValues, false, additionalPrefixes); if (this._otherStyling) { this._otherStyling(container, component, parent); } this._inStyling = false; } /** * Use to force the Legend to check for differences in text content. */ flushTextContentChangedCheck() { this.i.flushTextContentChangedCheck(); } /** * Returns the legend visuals expressed as a serialized string. */ exportSerializedVisualData() { let iv = this.i.exportSerializedVisualData(); return (iv); } simulateHover(point) { this.i.bh(toPoint(point)); } simulateClick(point) { this.i.bg(toPoint(point)); } simulateMouseLeave() { this.i.bi(); } /** * Event raised when the left mouse button is pressed while the mouse pointer is over a legend item * in this Legend. */ get legendItemMouseLeftButtonDown() { return this._legendItemMouseLeftButtonDown; } set legendItemMouseLeftButtonDown(ev) { if (this._legendItemMouseLeftButtonDown_wrapped !== null) { this.i.legendItemMouseLeftButtonDown = delegateRemove(this.i.legendItemMouseLeftButtonDown, this._legendItemMouseLeftButtonDown_wrapped); this._legendItemMouseLeftButtonDown_wrapped = null; this._legendItemMouseLeftButtonDown = null; } this._legendItemMouseLeftButtonDown = ev; this._legendItemMouseLeftButtonDown_wrapped = (o, e) => { let outerArgs = new IgcLegendMouseButtonEventArgs(); outerArgs._provideImplementation(e); if (this.beforeLegendItemMouseLeftButtonDown) { this.beforeLegendItemMouseLeftButtonDown(this, outerArgs); } if (this._legendItemMouseLeftButtonDown) { this._legendItemMouseLeftButtonDown(this, outerArgs); } }; this.i.legendItemMouseLeftButtonDown = delegateCombine(this.i.legendItemMouseLeftButtonDown, this._legendItemMouseLeftButtonDown_wrapped); ; } /** * Event raised when the left mouse button is released while the mouse pointer is over a legend item * in this Legend. */ get legendItemMouseLeftButtonUp() { return this._legendItemMouseLeftButtonUp; } set legendItemMouseLeftButtonUp(ev) { if (this._legendItemMouseLeftButtonUp_wrapped !== null) { this.i.legendItemMouseLeftButtonUp = delegateRemove(this.i.legendItemMouseLeftButtonUp, this._legendItemMouseLeftButtonUp_wrapped); this._legendItemMouseLeftButtonUp_wrapped = null; this._legendItemMouseLeftButtonUp = null; } this._legendItemMouseLeftButtonUp = ev; this._legendItemMouseLeftButtonUp_wrapped = (o, e) => { let outerArgs = new IgcLegendMouseButtonEventArgs(); outerArgs._provideImplementation(e); if (this.beforeLegendItemMouseLeftButtonUp) { this.beforeLegendItemMouseLeftButtonUp(this, outerArgs); } if (this._legendItemMouseLeftButtonUp) { this._legendItemMouseLeftButtonUp(this, outerArgs); } }; this.i.legendItemMouseLeftButtonUp = delegateCombine(this.i.legendItemMouseLeftButtonUp, this._legendItemMouseLeftButtonUp_wrapped); ; } /** * Event raised when the mouse pointer enters a legend item of this legend. */ get legendItemMouseEnter() { return this._legendItemMouseEnter; } set legendItemMouseEnter(ev) { if (this._legendItemMouseEnter_wrapped !== null) { this.i.legendItemMouseEnter = delegateRemove(this.i.legendItemMouseEnter, this._legendItemMouseEnter_wrapped); this._legendItemMouseEnter_wrapped = null; this._legendItemMouseEnter = null; } this._legendItemMouseEnter = ev; this._legendItemMouseEnter_wrapped = (o, e) => { let outerArgs = new IgcLegendMouseEventArgs(); outerArgs._provideImplementation(e); if (this.beforeLegendItemMouseEnter) { this.beforeLegendItemMouseEnter(this, outerArgs); } if (this._legendItemMouseEnter) { this._legendItemMouseEnter(this, outerArgs); } }; this.i.legendItemMouseEnter = delegateCombine(this.i.legendItemMouseEnter, this._legendItemMouseEnter_wrapped); ; } /** * Event raised when the mouse pointer leaves a legend item of this legend. */ get legendItemMouseLeave() { return this._legendItemMouseLeave; } set legendItemMouseLeave(ev) { if (this._legendItemMouseLeave_wrapped !== null) { this.i.legendItemMouseLeave = delegateRemove(this.i.legendItemMouseLeave, this._legendItemMouseLeave_wrapped); this._legendItemMouseLeave_wrapped = null; this._legendItemMouseLeave = null; } this._legendItemMouseLeave = ev; this._legendItemMouseLeave_wrapped = (o, e) => { let outerArgs = new IgcLegendMouseEventArgs(); outerArgs._provideImplementation(e); if (this.beforeLegendItemMouseLeave) { this.beforeLegendItemMouseLeave(this, outerArgs); } if (this._legendItemMouseLeave) { this._legendItemMouseLeave(this, outerArgs); } }; this.i.legendItemMouseLeave = delegateCombine(this.i.legendItemMouseLeave, this._legendItemMouseLeave_wrapped); ; } /** * Event raised when the mouse pointer moves over a legend item of this legend. */ get legendItemMouseMove() { return this._legendItemMouseMove; } set legendItemMouseMove(ev) { if (this._legendItemMouseMove_wrapped !== null) { this.i.legendItemMouseMove = delegateRemove(this.i.legendItemMouseMove, this._legendItemMouseMove_wrapped); this._legendItemMouseMove_wrapped = null; this._legendItemMouseMove = null; } this._legendItemMouseMove = ev; this._legendItemMouseMove_wrapped = (o, e) => { let outerArgs = new IgcLegendMouseEventArgs(); outerArgs._provideImplementation(e); if (this.beforeLegendItemMouseMove) { this.beforeLegendItemMouseMove(this, outerArgs); } if (this._legendItemMouseMove) { this._legendItemMouseMove(this, outerArgs); } }; this.i.legendItemMouseMove = delegateCombine(this.i.legendItemMouseMove, this._legendItemMouseMove_wrapped); ; } /** * Event raised when this legend's required size changes. */ get legendTextContentChanged() { return this._legendTextContentChanged; } set legendTextContentChanged(ev) { if (this._legendTextContentChanged_wrapped !== null) { this.i.legendTextContentChanged = delegateRemove(this.i.legendTextContentChanged, this._legendTextContentChanged_wrapped); this._legendTextContentChanged_wrapped = null; this._legendTextContentChanged = null; } this._legendTextContentChanged = ev; this._legendTextContentChanged_wrapped = (o, e) => { let outerArgs = new IgcLegendTextContentChangedEventArgs(); outerArgs._provideImplementation(e); if (this.beforeLegendTextContentChanged) { this.beforeLegendTextContentChanged(this, outerArgs); } if (this._legendTextContentChanged) { this._legendTextContentChanged(this, outerArgs); } }; this.i.legendTextContentChanged = delegateCombine(this.i.legendTextContentChanged, this._legendTextContentChanged_wrapped); ; } } IgcLegendBaseComponent._checked = /*@__PURE__*/ new WeakMap(); IgcLegendBaseComponent._observedAttributesIgcLegendBaseComponent = null; return IgcLegendBaseComponent; })(); export { IgcLegendBaseComponent };