Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolved #340 - Rename VisualizationManager API #356

Merged
merged 2 commits into from
Jun 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/alternativeVizualizersWrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,6 @@ export class AlternativeVisualizersWrapper
}
}

VisualizationManager.registerAlternativesVisualizer(
VisualizationManager.registerAltVisualizerSelector(
AlternativeVisualizersWrapper
);
37 changes: 19 additions & 18 deletions src/visualizationManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,26 +40,27 @@ export class VisualizationManager {
* @param questionType A question [type](https://surveyjs.io/form-library/documentation/api-reference/question#getType).
* @param constructor A function that returns a visualizer constructor to unregister.
*/
public static unregisterVisualizer(
questionType: string,
constructor: VisualizerConstructor
) {
let visualizers = VisualizationManager.vizualizers[questionType];
if (!!visualizers) {
let index = visualizers.indexOf(constructor);
if (index !== -1) {
visualizers.splice(index, 1);
}
public static unregisterVisualizer(questionType: string | undefined, constructor: VisualizerConstructor): void {
let questionTypes = [questionType];
if(!questionType) {
questionTypes = Object.keys(VisualizationManager.vizualizers);
}
questionTypes.forEach(qType => {
let visualizers = VisualizationManager.vizualizers[qType];
if (!!visualizers) {
let index = visualizers.indexOf(constructor);
if (index !== -1) {
visualizers.splice(index, 1);
}
}
});
}
/**
* Unregisters a visualizer for all question types.
* Obsolete. Pass `undefined` to the [`unregisterVisualizer`](https://surveyjs.io/dashboard/documentation/api-reference/visualizationmanager#unregisterVisualizer) method instead.
* @param constructor A function that returns a visualizer constructor to unregister.
*/
public static unregisterVisualizerForAll(constructor: VisualizerConstructor) {
Object.keys(VisualizationManager.vizualizers).forEach((key) =>
VisualizationManager.unregisterVisualizer(key, constructor)
);
public static unregisterVisualizerForAll(constructor: VisualizerConstructor): void {
VisualizationManager.unregisterVisualizer(undefined, constructor);
}
/**
* Returns all visualizer constructors for a specified question type.
Expand All @@ -76,16 +77,16 @@ export class VisualizationManager {
}
/**
* Returns a constructor for an alternative visualizer selector.
* @see registerAlternativesVisualizer
* @see registerAltVisualizerSelector
*/
public static getAlternativesVisualizer() {
public static getAltVisualizerSelector() {
return VisualizationManager.alternativesVisualizer || VisualizerBase;
}
/**
* Registers an alternative visualizer selector.
* @param constructor A function that returns a constructor for an alternative visualizer selector.
*/
public static registerAlternativesVisualizer(constructor: any) {
public static registerAltVisualizerSelector(constructor: any) {
VisualizationManager.alternativesVisualizer = constructor;
}
}
2 changes: 1 addition & 1 deletion src/visualizerFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export class VisualizerFactory {
(creator) => new creator(question, data, options)
);
if (visualizers.length > 1) {
const alternativesVisualizerConstructor = VisualizationManager.getAlternativesVisualizer();
const alternativesVisualizerConstructor = VisualizationManager.getAltVisualizerSelector();
let visualizer = new alternativesVisualizerConstructor(
visualizers,
question,
Expand Down
2 changes: 1 addition & 1 deletion tests/visualizationManager.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ test("unregister visualizer for all question types", () => {
expect(multipletextVizualizers[0]).toBe(Text);
expect(multipletextVizualizers[1]).toBe(WordCloud);

VisualizationManager.unregisterVisualizerForAll(WordCloud);
VisualizationManager.unregisterVisualizer(undefined, WordCloud);

textVizualizers = VisualizationManager.getVisualizersByType("text");
commentVizualizers = VisualizationManager.getVisualizersByType("comment");
Expand Down
2 changes: 1 addition & 1 deletion tests/visualizationPanel.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ VisualizationManager.registerVisualizer("comment", Text);
VisualizationManager.registerVisualizer("comment", WordCloud);
VisualizationManager.registerVisualizer("checkbox", SelectBase);
VisualizationManager.registerVisualizer("radiogroup", SelectBase);
VisualizationManager.registerAlternativesVisualizer(AlternativeVisualizersWrapper);
VisualizationManager.registerAltVisualizerSelector(AlternativeVisualizersWrapper);

test("allowDynamicLayout option", () => {
const json = {
Expand Down