module.exports = function()

in templates/plugin-template.js [3:48]


module.exports = function (pluginOptions) {
	return `import { ${pluginOptions.visualClass} } from "${
		pluginOptions.visualSourceLocation
	}";
import powerbiVisualsApi from "powerbi-visuals-api";
import IVisualPlugin = powerbiVisualsApi.visuals.plugins.IVisualPlugin;
import VisualConstructorOptions = powerbiVisualsApi.extensibility.visual.VisualConstructorOptions;
${
	compareVersions.compare(pluginOptions.apiVersion, "3.8.0", ">=")
		? "import DialogConstructorOptions = powerbiVisualsApi.extensibility.visual.DialogConstructorOptions;"
		: ""
}
var powerbiKey: any = "powerbi";
var powerbi: any = window[powerbiKey];
var ${pluginOptions.pluginName}: IVisualPlugin = {
    name: '${pluginOptions.pluginName}',
    displayName: '${pluginOptions.visualDisplayName}',
    class: '${pluginOptions.visualClass}',
    apiVersion: '${pluginOptions.apiVersion}',
    create: (options: VisualConstructorOptions) => {
        if (${pluginOptions.visualClass}) {
            return new ${pluginOptions.visualClass}(options);
        }
        throw 'Visual instance not found';
    },
    ${
		compareVersions.compare(pluginOptions.apiVersion, "3.8.0", ">=")
			? `createModalDialog: (dialogId: string, options: DialogConstructorOptions, initialState: object) => {
        const dialogRegistry = globalThis.dialogRegistry;
        if (dialogId in dialogRegistry) {
            new dialogRegistry[dialogId](options, initialState);
        }
    },`
			: ""
	}
    custom: true
};
if (typeof powerbi !== "undefined") {
    powerbi.visuals = powerbi.visuals || {};
    powerbi.visuals.plugins = powerbi.visuals.plugins || {};
    powerbi.visuals.plugins["${pluginOptions.pluginName}"] = ${
		pluginOptions.pluginName
	};
}
export default ${pluginOptions.pluginName};`;
};