123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import angular from 'angular';
- const directiveModule = angular.module('grafana.directives');
- const directiveCache: any = {};
- /** @ngInject */
- function panelEditorTab(dynamicDirectiveSrv: any) {
- return dynamicDirectiveSrv.create({
- scope: {
- ctrl: '=',
- editorTab: '=',
- },
- directive: (scope: any) => {
- const pluginId = scope.ctrl.pluginId;
- const tabName = scope.editorTab.title
- .toLowerCase()
- .replace(' ', '-')
- .replace('&', '')
- .replace(' ', '')
- .replace(' ', '-');
- if (directiveCache[pluginId]) {
- if (directiveCache[pluginId][tabName]) {
- return directiveCache[pluginId][tabName];
- }
- } else {
- directiveCache[pluginId] = [];
- }
- const result = {
- fn: () => scope.editorTab.directiveFn(),
- name: `panel-editor-tab-${pluginId}${tabName}`,
- };
- directiveCache[pluginId][tabName] = result;
- return result;
- },
- });
- }
- directiveModule.directive('panelEditorTab', panelEditorTab);
|