var CLASS = c3_chart_internal_fn.CLASS = { target: 'c3-target', chart: 'c3-chart', chartLine: 'c3-chart-line', chartLines: 'c3-chart-lines', chartBar: 'c3-chart-bar', chartBars: 'c3-chart-bars', chartText: 'c3-chart-text', chartTexts: 'c3-chart-texts', chartArc: 'c3-chart-arc', chartArcs: 'c3-chart-arcs', chartArcsTitle: 'c3-chart-arcs-title', chartArcsBackground: 'c3-chart-arcs-background', chartArcsGaugeUnit: 'c3-chart-arcs-gauge-unit', chartArcsGaugeMax: 'c3-chart-arcs-gauge-max', chartArcsGaugeMin: 'c3-chart-arcs-gauge-min', selectedCircle: 'c3-selected-circle', selectedCircles: 'c3-selected-circles', eventRect: 'c3-event-rect', eventRects: 'c3-event-rects', eventRectsSingle: 'c3-event-rects-single', eventRectsMultiple: 'c3-event-rects-multiple', zoomRect: 'c3-zoom-rect', brush: 'c3-brush', focused: 'c3-focused', defocused: 'c3-defocused', region: 'c3-region', regions: 'c3-regions', title: 'c3-title', tooltipContainer: 'c3-tooltip-container', tooltip: 'c3-tooltip', tooltipName: 'c3-tooltip-name', shape: 'c3-shape', shapes: 'c3-shapes', line: 'c3-line', lines: 'c3-lines', bar: 'c3-bar', bars: 'c3-bars', circle: 'c3-circle', circles: 'c3-circles', arc: 'c3-arc', arcs: 'c3-arcs', area: 'c3-area', areas: 'c3-areas', empty: 'c3-empty', text: 'c3-text', texts: 'c3-texts', gaugeValue: 'c3-gauge-value', grid: 'c3-grid', gridLines: 'c3-grid-lines', xgrid: 'c3-xgrid', xgrids: 'c3-xgrids', xgridLine: 'c3-xgrid-line', xgridLines: 'c3-xgrid-lines', xgridFocus: 'c3-xgrid-focus', ygrid: 'c3-ygrid', ygrids: 'c3-ygrids', ygridLine: 'c3-ygrid-line', ygridLines: 'c3-ygrid-lines', axis: 'c3-axis', axisX: 'c3-axis-x', axisXLabel: 'c3-axis-x-label', axisY: 'c3-axis-y', axisYLabel: 'c3-axis-y-label', axisY2: 'c3-axis-y2', axisY2Label: 'c3-axis-y2-label', legendBackground: 'c3-legend-background', legendItem: 'c3-legend-item', legendItemEvent: 'c3-legend-item-event', legendItemTile: 'c3-legend-item-tile', legendItemHidden: 'c3-legend-item-hidden', legendItemFocused: 'c3-legend-item-focused', dragarea: 'c3-dragarea', EXPANDED: '_expanded_', SELECTED: '_selected_', INCLUDED: '_included_' }; c3_chart_internal_fn.generateClass = function (prefix, targetId) { return " " + prefix + " " + prefix + this.getTargetSelectorSuffix(targetId); }; c3_chart_internal_fn.classText = function (d) { return this.generateClass(CLASS.text, d.index); }; c3_chart_internal_fn.classTexts = function (d) { return this.generateClass(CLASS.texts, d.id); }; c3_chart_internal_fn.classShape = function (d) { return this.generateClass(CLASS.shape, d.index); }; c3_chart_internal_fn.classShapes = function (d) { return this.generateClass(CLASS.shapes, d.id); }; c3_chart_internal_fn.classLine = function (d) { return this.classShape(d) + this.generateClass(CLASS.line, d.id); }; c3_chart_internal_fn.classLines = function (d) { return this.classShapes(d) + this.generateClass(CLASS.lines, d.id); }; c3_chart_internal_fn.classCircle = function (d) { return this.classShape(d) + this.generateClass(CLASS.circle, d.index); }; c3_chart_internal_fn.classCircles = function (d) { return this.classShapes(d) + this.generateClass(CLASS.circles, d.id); }; c3_chart_internal_fn.classBar = function (d) { return this.classShape(d) + this.generateClass(CLASS.bar, d.index); }; c3_chart_internal_fn.classBars = function (d) { return this.classShapes(d) + this.generateClass(CLASS.bars, d.id); }; c3_chart_internal_fn.classArc = function (d) { return this.classShape(d.data) + this.generateClass(CLASS.arc, d.data.id); }; c3_chart_internal_fn.classArcs = function (d) { return this.classShapes(d.data) + this.generateClass(CLASS.arcs, d.data.id); }; c3_chart_internal_fn.classArea = function (d) { return this.classShape(d) + this.generateClass(CLASS.area, d.id); }; c3_chart_internal_fn.classAreas = function (d) { return this.classShapes(d) + this.generateClass(CLASS.areas, d.id); }; c3_chart_internal_fn.classRegion = function (d, i) { return this.generateClass(CLASS.region, i) + ' ' + ('class' in d ? d['class'] : ''); }; c3_chart_internal_fn.classEvent = function (d) { return this.generateClass(CLASS.eventRect, d.index); }; c3_chart_internal_fn.classTarget = function (id) { var $$ = this; var additionalClassSuffix = $$.config.data_classes[id], additionalClass = ''; if (additionalClassSuffix) { additionalClass = ' ' + CLASS.target + '-' + additionalClassSuffix; } return $$.generateClass(CLASS.target, id) + additionalClass; }; c3_chart_internal_fn.classFocus = function (d) { return this.classFocused(d) + this.classDefocused(d); }; c3_chart_internal_fn.classFocused = function (d) { return ' ' + (this.focusedTargetIds.indexOf(d.id) >= 0 ? CLASS.focused : ''); }; c3_chart_internal_fn.classDefocused = function (d) { return ' ' + (this.defocusedTargetIds.indexOf(d.id) >= 0 ? CLASS.defocused : ''); }; c3_chart_internal_fn.classChartText = function (d) { return CLASS.chartText + this.classTarget(d.id); }; c3_chart_internal_fn.classChartLine = function (d) { return CLASS.chartLine + this.classTarget(d.id); }; c3_chart_internal_fn.classChartBar = function (d) { return CLASS.chartBar + this.classTarget(d.id); }; c3_chart_internal_fn.classChartArc = function (d) { return CLASS.chartArc + this.classTarget(d.data.id); }; c3_chart_internal_fn.getTargetSelectorSuffix = function (targetId) { return targetId || targetId === 0 ? ('-' + targetId).replace(/[\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g, '-') : ''; }; c3_chart_internal_fn.selectorTarget = function (id, prefix) { return (prefix || '') + '.' + CLASS.target + this.getTargetSelectorSuffix(id); }; c3_chart_internal_fn.selectorTargets = function (ids, prefix) { var $$ = this; ids = ids || []; return ids.length ? ids.map(function (id) { return $$.selectorTarget(id, prefix); }) : null; }; c3_chart_internal_fn.selectorLegend = function (id) { return '.' + CLASS.legendItem + this.getTargetSelectorSuffix(id); }; c3_chart_internal_fn.selectorLegends = function (ids) { var $$ = this; return ids && ids.length ? ids.map(function (id) { return $$.selectorLegend(id); }) : null; };