<commit_before>/* JSON metadata describing components for viewer and viewer-admin webapps
 * 
 * Parameters:
 * 
 * className: The component's classname
 * 
 * name: The name as used in the layoutmanager
 * 
 * shortName: A short name which is used by the layoutmanager when adding the component to the topmenu
 * 
 * restrictions: Array with region-ids to which the component can be dragged
 *   Possible restrictions: header,leftmargin_top,leftmargin_bottom,left_menu,top_menu,content,content_bottom
 *   popupwindow,rightmargin_top,rightmargin_bottom,footer
 * 
 * singleton: Boolean whether the component can be added multiple times (false) or just once (true)
 * 
 * notInCombinationWith: Array with the classNames of other components. If a component from that array has
 *                   already been added to a region, this component cannot be added to that region
 * 
 * showHelp: boolean value to show help configuration tab for component (default false)
 * group: string, indicates to which group this component belongs: used to indicate in which closable panel it should be rendered. 
 * Possible values: Map, Tools, Functionality. Defaults to "Rest"
 *
 * extPropertyGridConfigs: Some extra properties can be given here to configure extra things
 *   
 * extPropertyGridConfigs.source: Set the object that must be configurable with defaults 
 * For example:
 *   {name: "a name", tooltip: "a tool tip", happy: true}
 *   
 * extPropertyGridConfigs.propertyNames: here you can set the labels for the object configured
 * in extPropertyGridConfigs.source *   l
 * For example: 
 *   {name: "The name", tooltip: "Tool tip", happy: "Are you happy"}
 *
 */
[
    {
        className: "viewer.mapcomponents.FlamingoMap",
        name: "Flamingo Map",
        shortName: "Fm",
        restrictions: ["content"],
        group: "Map",
        singleton: true,
        notInCombinationWith: ["viewer.mapcomponents.OpenLayersMap"],
        extPropertyGridConfigs: {
            propertyNames: {resolutions: "Resoluties", movetime: "Move time", movesteps: "Move Steps" },
            source: {resolutions: "", movetime: "", movesteps: ""}
        }
    },
    {
        className: "viewer.mapcomponents.OpenLayersMap",
        name: "OpenLayers Map",
        shortName: "Om",
        group: "Map",
        singleton: true,
        restrictions: ["content"],
        notInCombinationWith: ["viewer.mapcomponents.FlamingoMap"],
        extPropertyGridConfigs: {
            propertyNames: {
                resolutions: "Resoluties",
                theme: "Theme ('flamingo' or 'default')"
            },
            source: {
                resolutions: "",
                theme: "flamingo"
            }
        }
    },

    {
        className: "viewer.components.tools.StreetView",
        name: "Streetview",
        group: "Tools",
        shortName: "Sv",
        sources: ["StreetView.js"],
        singleton: true,
        restrictions: ["top_menu"],
        configSource: ["ConfigObject.js","StreetView-config.js"]   
    },
    
    {
        className: "viewer.components.CurrentLocation",
        name: "Current Location",
        shortName: "LOC",
        sources: ["CurrentLocation.js"],
        group: "Tools",
        singleton: true,
        restrictions: ["top_menu"],
        extPropertyGridConfigs: {
            propertyNames: { 
                tooltip: 'Tooltip',
                interval: 'Interval(ms)' 
            },
            source: { 
                tooltip: 'Huidge locatie',
                interval: 0 
            }
        }
    },

    {
        className: "viewer.components.tools.ZoomIn",
        name: "ZoomIn",
        group: "Tools",
        shortName: "ZI",
        sources: ["tools/Tool.js","tools/ZoomIn.js"],
        closureCompilerSafe: true,
        singleton: true, 
        restrictions: ["top_menu"],
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "Zoom In"}
        }
    },
    {
        className: "viewer.components.tools.ZoomOut",
        name: "ZoomOut",
        group: "Tools",
        shortName: "ZO",
        sources: ["tools/Tool.js","tools/ZoomOut.js"],
        closureCompilerSafe: true,
        singleton: true,
        restrictions: ["top_menu"],
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip", zoomBox: "Trek rechthoek voor uitzoomen"},
            source: {tooltip: "Zoom out", zoomBox : false}
        }
    },
    {        
        className: "viewer.components.Maptip",
        name: "Maptip",
        shortName: "Mt",
        sources: ["Maptip.js"],
        restrictions: ["content"],
        type : "popup",
        singleton: true,
        group: "Map",
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Maptip-config.js"]                   
    },
    {
        className: "viewer.components.FeatureInfo",
        name: "Feature info",
        shortName: "Fi",
        sources: ["Maptip.js","FeatureInfo.js"],
        closureCompilerSafe: true,
        type : "popup",
        group: "Map",
        singleton: true,
        restrictions: ["content"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","FeatureInfo-config.js"]   
    },
    {
        className: "viewer.components.tools.Identify",
        name: "Identify",
        shortName: "Id",
        group: "Tools",
        sources: ["tools/Tool.js","tools/Identify.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "Identify"}
        }
    },
    {
        className: "viewer.components.tools.Pan",
        name: "Pan",
        shortName: "pa",
        group: "Tools",
        sources: ["tools/Tool.js","tools/Pan.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "Pan"}
        }
    },
    {
        className: "viewer.components.tools.SuperPan",
        name: "SuperPan",
        shortName: "Sp",
        group: "Tools",
        sources: ["tools/Tool.js","tools/SuperPan.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "SuperPan"}
        }
    },  
    {
        className: "viewer.components.tools.Measure.Line",
        name: "Measure line",
        shortName: "ML",
        group: "Tools",
        sources: ["tools/Tool.js","tools/Measure.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {
                tooltip: "Tooltip",
                units: "Eenheden",
                magicnumber: "Delen door",
                decimals: "Decimalen",
                nonSticky: "Ga na gebruik naar de eerste tool"
            },
            source: {
                tooltip: "Measure",
                units: "",
                decimals: 2,
                magicnumber: "",
                nonSticky: false
            }
        }
    },  
    {
        className: "viewer.components.tools.Measure.Area",
        name: "Measure area",
        shortName: "MA",
        group: "Tools",
        sources: ["tools/Tool.js","tools/Measure.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {
                tooltip: "Tooltip",
                units: "Eenheden",
                magicnumber: "Delen door",
                decimals: "Decimalen",
                nonSticky: "Ga na gebruik naar de eerste tool"
            },
            source: {
                tooltip: "Measure",
                units: "",
                decimals: 2,
                magicnumber: "",
                nonSticky: false
            }
        }
    }, 
    {
        className: "viewer.components.tools.FullExtent",
        name: "Full Extent",
        shortName: "fext",
        group: "Tools",
        sources: ["tools/Tool.js","tools/FullExtent.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "Full extent"}
        },                
        notInCombinationWith: ["OpenLayersMap"]
    }, 
    {
        className: "viewer.components.tools.PreviousExtent",
        name: "Previous Extent",
        shortName: "pExt",
        group: "Tools",
        sources: ["tools/Tool.js","tools/PreviousExtent.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "PreviousExtent"},
            source: {tooltip: "Previous Extent"}
        },      
        notInCombinationWith: ["OpenLayersMap"]
    }, 
    {
        className: "viewer.components.tools.NextExtent",
        name: "Next Extent",
        group: "Tools",
        shortName: "nExt",
        sources: ["tools/Tool.js","tools/NextExtent.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "NextExtent"},
            source: {tooltip: "Next Extent"}
        },                
        notInCombinationWith: ["OpenLayersMap"]
    }, 

    {
        className: "viewer.components.BorderNavigation",
        name: "Border Navigation",
        group: "Tools",
        shortName: "bn",
        sources: ["BorderNavigation.js"],
        closureCompilerSafe: true,        
        singleton: true,
        restrictions: ["content"],
        extPropertyGridConfigs:{
            propertyNames:{
                tooltip_pan_right: "Tooltip pan rechts",
                tooltip_pan_left: "Tooltip pan links",
                tooltip_pan_up: "Tooltip pan omhoog",
                tooltip_pan_down: "Tooltip pan omlaag"
            },
            source:{
                tooltip_pan_right: "Pan naar rechts",
                tooltip_pan_left: "Pan naar links",
                tooltip_pan_up: "Pan omhoog",
                tooltip_pan_down: "Pan omlaag"}
        }
    },
    {
        className: "viewer.components.ScaleBar",
        name: "ScaleBar",
        shortName: "sb",
        sources: ["ScaleBar.js"],
        group: "Map",
        closureCompilerSafe: true,
        extPropertyGridConfigs: {
            propertyNames: {               
                units: "Units"
            },
            source: {
                units: "m"
            }
        },
        singleton: true,
        restrictions: ["content_bottom"]        
    },
    {
        className: "viewer.components.Coordinates",
        name: "Coordinates",
        shortName: "Coörd",
        sources: ["Coordinates.js"],
        group: "Map",
        closureCompilerSafe: true,   
        extPropertyGridConfigs: {
            propertyNames: {               
                decimals: "Decimalen"
            },
            source: {
                decimals: 2
            }
        },
        singleton: true,
        restrictions: ["content_bottom"]        
    }, 
    {
        className: "viewer.components.FlamingoComponent",
        name: "Flamingo Component",
        shortName: "fmc",
        sources: ["FlamingoComponent.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["content"],        
        notInCombinationWith: ["OpenLayersMap"],

        extPropertyGridConfigs: {
            propertyNames: {xml: "Xml Configuratie"},
            source: {xml: ""}
        }
    }, 
    {
        className: "viewer.components.TOC",
        name: "TOC",
        group: "Component",
        sources: ["TOC.js"],
        configSource: ["ConfigObject.js","TOC-config.js"],
        singleton: true,
        restrictions: ["rightmargin_top", "leftmargin_top","leftmargin_bottom","rightmargin_bottom","popupwindow"],
        showHelp: true
    },
    {
        className: "viewer.components.tools.GoogleNavigation",
        name: "Google Navigation",
        shortName: "Gn",
        group: "Tools",
        sources: ["tools/Tool.js","tools/GoogleNavigation.js","NavigationPanel.js"],
        closureCompilerSafe: true,
        extPropertyGridConfigs: {            
            propertyNames: {            
                navigationPanel: "Navigatiepaneel",
                tooltip: "Tooltip tool",
                //for navigation panel
                width: "Width",
                height: "Height",
                tooltip_pan_right: "Tooltip pan rechts",
                tooltip_pan_left: "Tooltip pan links",
                tooltip_pan_up: "Tooltip pan omhoog",
                tooltip_pan_down: "Tooltip pan omlaag",
                tooltip_slider: "Tooltip slider",
                show_zoom_buttons: "Show zoom buttons",
                left: "Positie vanaf links",
                top: "Positie vanaf boven",
                zoomToFullIsStart: "Zoom naar maximale extent zoomt naar startextent"
            },
            source: {          
                navigationPanel: true,
                tooltip: "Pan(slepen), zoom(dubbel klikken) en identify(enkele klik)",
                //for navigation panel
                width: "",
                height: "",
                tooltip_pan_right: "Pan naar rechts",
                tooltip_pan_left: "Pan naar links",
                tooltip_pan_up: "Pan omhoog",
                tooltip_pan_down: "Pan omlaag",
                tooltip_slider: "Sleep om te zoomen",
                show_zoom_buttons: false,
                left: "0",
                top: "20",
                zoomToFullIsStart: false
            }
        },
        singleton: true,
        restrictions: ["top_menu"]        
    },{
        className: "viewer.components.NavigationPanel",
        name: "Navigation Panel",
        group: "Tools",
        shortName: "np",
        sources: ["NavigationPanel.js"],
        closureCompilerSafe: true,        
        singleton: true,
        restrictions: ["content"],
        notInCombinationWith: ["Google Navigation"],
        extPropertyGridConfigs: {
            propertyNames: {               
                width: "Width",
                height: "Height",
                tooltip_pan_right: "Tooltip pan rechts",
                tooltip_pan_left: "Tooltip pan links",
                tooltip_pan_up: "Tooltip pan omhoog",
                tooltip_pan_down: "Tooltip pan omlaag",
                tooltip_slider: "Tooltip slider",
                show_zoom_buttons: "Show zoom buttons",
                left: "Positie vanaf links",
                top: "Positie vanaf boven"
            },
            source: {             
                width: "",
                height: "",
                tooltip_pan_right: "Pan naar rechts",
                tooltip_pan_left: "Pan naar links",
                tooltip_pan_up: "Pan omhoog",
                tooltip_pan_down: "Pan omlaag",
                tooltip_slider: "Sleep om te zoomen",
                show_zoom_buttons: false,
                left: "0",
                top: "20"
            }
        }
    },
    {
        className: "viewer.components.Legend",
        name: "Legend",
        shortName: "Ln",
        sources: ["Legend.js"],
        group: "Component",
        closureCompilerSafe: true,
        extPropertyGridConfigs: {
            propertyNames: {               
                title: "Titel",
                showBackground: "Toon achtergrond kaarten",
                margin: "Marge rond legenda (bijv. \"3px\")"
            },
            source: {
                title: "Legenda",
                showBackground: false,
                margin: "0px"
            }
        },
        singleton: true,
        restrictions: ["leftmargin_top", "rightmargin_top","leftmargin_bottom", "rightmargin_bottom","popupwindow"],
        showHelp: true
    },
    {
        className: "viewer.components.RelatedDocuments",
        name: "Gerelateerde documenten",
        shortName: "Rd",
        group: "Component",
        sources: ["RelatedDocuments.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","RelatedDocuments-config.js"],
        singleton: true,
        type: "popup",
        restrictions: ["left_menu"],
        showHelp: true
    },
    {
        className: "viewer.components.SelectionModule",
        name: "Selectie Module",
        shortName: "Sm",
        group: "Component",
        sources: ["SelectionModule.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","SelectionModule-config.js"],
        singleton: true,
        restrictions: ["left_menu"],
        type: "popup",
        showHelp: true
    }    ,
    {
        className: "viewer.components.Bookmark",
        name: "Bookmark",
        group: "Component",
        shortName: "Bm",
        sources: ["Bookmark.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Bookmark-config.js"],
        singleton: true,
        type: "popup",
        restrictions: ["left_menu"],
        showHelp: true
    },
    {
        className: "viewer.components.HTML",
        name: "HTML",
        group: "Component",
        shortName: "HTML",
        sources: ["HTML.js"],
        configSource: ["ConfigObject.js","HTML-config.js"],
        restrictions: ["rightmargin_top", "leftmargin_top","rightmargin_bottom", "leftmargin_bottom","header","footer"]
    },

    {
        className: "viewer.components.TransparencySlider",
        name: "Transparantie",
        group: "Component",
        singleton: true,
        sources: ["Slider.js","NonInitLayerSlider.js","TransparencySlider.js","TransparencySliderLayerIds.js"],
        configSource: ["ConfigObject.js","TransparencySlider-config.js","TransparencySliderLayerIds.js"],
        restrictions: ["rightmargin_top", "leftmargin_top","rightmargin_bottom", "leftmargin_bottom"],
        showHelp: true
        
    },
    /*{
        className: "viewer.components.BufferLayer",
        name: "BufferLayer",
        shortName: "BL",
        sources: ["BufferLayer.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","BufferLayer-config.js"],
        restrictions: ["left_menu"],            
        type: "popup"
    },
    {
        className: "viewer.components.BufferObject",
        name: "BufferObject",
        shortName: "BO",
        sources: ["BufferObject.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","BufferObject-config.js"],
        restrictions: ["left_menu"],            
        type: "popup"
    },*/
    {
        className: "viewer.components.Buffer",
        name: "Buffer",
        shortName: "Bu",
        group: "Component",
        singleton: true,
        sources: ["../common/ColorField.js","Buffer.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Buffer-config.js"],
        restrictions: ["left_menu"],            
        type: "popup",
        showHelp: true
    },
    {
        className: "viewer.components.LoadMonitor",
        name: "Load Monitor",
        shortName: "Mon",
        singleton: true,
        group: "Tools",
        sources: ["LoadMonitor.js"],
        restrictions: ["content"],
        extPropertyGridConfigs: {
            propertyNames: {
                loadingText: "Laad tekst",
                left: "Positie vanaf links",
                top: "Positie vanaf boven",
                timeout: "Timeout in milliseconden (alleen OpenLayers)"
            },
            source: {
                loadingText: "Bezig met laden...[percentage]%",
                left: "5",
                top: "50",
                timeout: "60000"
            }
        }             
    },
    {
        className: "viewer.components.AttributeList",
        name: "Attributen Lijst",
        group: "Component",
        shortName: "AL",
        sources: ["../common/plugins/RowExpander.js","AttributeList.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","AttributeList-config.js"],
        restrictions: ["left_menu"] , 
        singleton: true,       
        type: "popup",
        showHelp: true
    },
    {
        className: "viewer.components.Edit",
        name: "Edit",
        shortName: "Ed",
        group: "Component",
        sources: ["Edit.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Edit-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        singleton: true,
        showHelp: true
    },
    {
        className: "viewer.components.Drawing",
        name: "Tekenen",
        group: "Component",
        shortName: "Te",
        sources: ["../common/ColorField.js","Drawing.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Drawing-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        singleton: true,
        showHelp: true
    },
    {
        className: "viewer.components.DataSelection",
        name: "Data Selectie",
        shortName: "DS",
        group: "Component",
        singleton: true,
        sources: ["AttributeFilter.js","Filter.js","DataSelection.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","DataSelection-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        showHelp: true
    },
     {
        className: "viewer.components.Search",
        name: "Search",
        singleton: true,
        shortName: "Se",
        group: "Component",
        sources: ["Search.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Search-config.js"],
        restrictions: ["rightmargin_top", "leftmargin_top","leftmargin_bottom","rightmargin_bottom","left_menu"],        
        type: "popup",
        showHelp: true        
     },
   /*  {
        className: "viewer.components.fmc.Window",
        name: "FMC-Window 3rd Party",
        shortName: "Wi",
        sources: ["FlamingoComponent.js"],
        configXML: "<fmc:Window id=\"[id]\" left=\"[left]\" top=\"[top]\" width=\"[width]\" height=\"[height]\"/>",
        restrictions: ["content"]
    },
    {
        className: "viewer.components.Influence",
        name: "Invloedsgebied met geometry",
        shortName: "Igg",
        sources: ["Search.js","Influence.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Influence-config.js"],
        restrictions: ["left_menu"],        
        type: "popup"         
    },*/
    {
        className: "viewer.components.InfluenceImage",
        name: "Invloedsgebied plaatje",
        group: "Component",
        singleton: true,
        shortName: "Igi",
        sources: ["Search.js","Influence.js","InfluenceImage.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Influence-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        showHelp: true
    },
    {
        className: "viewer.components.Overview",
        name: "Overzichtskaart",
        shortName: "Oz",
        sources: ["Overview.js"],
        group: "Component",
        configSource: ["ConfigObject.js","Overview-config.js"],
        restrictions: ["content"],
        singleton: true,
        showHelp: true
     },
    {
        className: "viewer.components.Print",
        name: "Print",
        shortName: "Pr",
        singleton: true,
        group: "Component",
        sources: ["Print.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Print-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        showHelp: true
    },
    {
        className: "viewer.components.LayerContext",
        name: "LayerContext",
        shortName: "LC",
        singleton: true,
        group: "Component",
        sources: ["LayerContext.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","LayerContext-config.js"],
        restrictions: ["content"],        
        type: "popup",
        showHelp: true        
    },
    {
        className: "viewer.components.Help",
        name: "Help",
        shortName: "LC",
        singleton: true,
        group: "Component",
        sources: ["Help.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Help-config.js"],
        restrictions: ["rightmargin_top", "leftmargin_top","leftmargin_bottom","rightmargin_bottom","content"],        
        type: "popup"
    },
    {
        className: "viewer.components.LayerSwitch",
        name: "LayerSwitch",
        shortName: "LS",
        group: "Component",
        sources: ["LayerSwitch.js"],
        configSource: ["ConfigObject.js","LayerSwitch-config.js"],
        restrictions: ["content"],
        singleton: true
    },
    {
        className: "viewer.components.PopupButton",
        name: "Popup Button",
        shortName: "PB",
        sources: ["PopupButton.js"],
        closureCompilerSafe: true,
        singleton: true,
        restrictions: ["left_menu"],
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip",
                            iconUrl_up: "Icoon up",
                            iconUrl_over: "Icoon over",
                            iconUrl_sel: "Icoon selected",
                            iconUrl_dis: "Icoon disabled"},
            source: {tooltip: "Zoom out",
                     iconUrl_up: "http://localhost:8084/viewer/resources/images/buffer.png",
                     iconUrl_over: "http://localhost:8084/viewer/resources/images/buffer_over.png",
                     iconUrl_sel: "http://localhost:8084/viewer/resources/images/buffer_down.png",
                     iconUrl_dis: "http://localhost:8084/viewer/resources/images/buffer.png"}
        }
    },
    {
        className: "viewer.components.Twitter",
        name: "Twitter",
        group: "Component",
        shortName: "Tw",
        sources: ["Twitter.js"],
        closureCompilerSafe: true,
        singleton: true,
        restrictions: ["header","leftmargin_top","leftmargin_bottom","rightmargin_top","rightmargin_bottom","footer"],
        extPropertyGridConfigs: {
            propertyNames: {search: "Zoekterm"},
            source: {search: "B3Partners"}
        }
    },
    /**
    Needs more work... Not reusable
    {
        className: "viewer.components.Presentation",
        name: "Presentation",
        shortName: "Pres",
        singleton: true,
        sources: ["Presentation.js"],
        configSource: ["ConfigObject.js","Presentation_config.js"],
        restrictions: ["footer"],            
        type: "popup"
    },*/
    {
        className: "viewer.components.Divider",
        name: "Divider",
        shortName: "Dv",
        group: "Component",
        sources: ["Divider.js"],
        configSource: ["ConfigObject.js","Divider-config.js"],
        closureCompilerSafe: true,
        singleton: false,
        restrictions: ["left_menu"]
    },
    {
        className: "viewer.components.tools.DownloadMap",
        name: "Download Map",
        shortName: "DM",
        restrictions: ["top_menu", "left_menu"],
        group: "Component",
        sources: [ "Print.js","DownloadMap.js"],
        singleton: false,
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: ""}
        }
    },
    {
        className: "viewer.components.BrowserCheck",
        name: "Browser check",
        shortName: "BC",
        restrictions: ["content"],
        group: "Component",
        sources: ["BrowserCheck.js"],
        singleton: true,
        extPropertyGridConfigs: {
            propertyNames: {
                showPopup: "Toon popup-melding",
                title: "Titel popup-melding",
                test: "Testmodus (altijd melding tonen)",
                message: "Melding"
            },
            source: {
                showPopup: true,
                test: false,
                message: "De browser (of de versie ervan) die u gebruikt wordt mogelijk niet ondersteund. Deze website werkt het best met een recente, moderne browser.",
                title: "Browser controle"
            }
        }
    },
    {
        className: "viewer.components.Graph",
        name: "Graph",
        shortName: "Gr",
        group: "Component",
        singleton: true,
        sources: ["Graph.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Graph-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        showHelp: true
    }
]
<commit_msg>Made it more clear that resolutions must be comma serparated. Closes #22<commit_after>/* JSON metadata describing components for viewer and viewer-admin webapps
 * 
 * Parameters:
 * 
 * className: The component's classname
 * 
 * name: The name as used in the layoutmanager
 * 
 * shortName: A short name which is used by the layoutmanager when adding the component to the topmenu
 * 
 * restrictions: Array with region-ids to which the component can be dragged
 *   Possible restrictions: header,leftmargin_top,leftmargin_bottom,left_menu,top_menu,content,content_bottom
 *   popupwindow,rightmargin_top,rightmargin_bottom,footer
 * 
 * singleton: Boolean whether the component can be added multiple times (false) or just once (true)
 * 
 * notInCombinationWith: Array with the classNames of other components. If a component from that array has
 *                   already been added to a region, this component cannot be added to that region
 * 
 * showHelp: boolean value to show help configuration tab for component (default false)
 * group: string, indicates to which group this component belongs: used to indicate in which closable panel it should be rendered. 
 * Possible values: Map, Tools, Functionality. Defaults to "Rest"
 *
 * extPropertyGridConfigs: Some extra properties can be given here to configure extra things
 *   
 * extPropertyGridConfigs.source: Set the object that must be configurable with defaults 
 * For example:
 *   {name: "a name", tooltip: "a tool tip", happy: true}
 *   
 * extPropertyGridConfigs.propertyNames: here you can set the labels for the object configured
 * in extPropertyGridConfigs.source *   l
 * For example: 
 *   {name: "The name", tooltip: "Tool tip", happy: "Are you happy"}
 *
 */
[
    {
        className: "viewer.mapcomponents.FlamingoMap",
        name: "Flamingo Map",
        shortName: "Fm",
        restrictions: ["content"],
        group: "Map",
        singleton: true,
        notInCombinationWith: ["viewer.mapcomponents.OpenLayersMap"],
        extPropertyGridConfigs: {
            propertyNames: {resolutions: "Resoluties", movetime: "Move time", movesteps: "Move Steps" },
            source: {resolutions: "", movetime: "", movesteps: ""}
        }
    },
    {
        className: "viewer.mapcomponents.OpenLayersMap",
        name: "OpenLayers Map",
        shortName: "Om",
        group: "Map",
        singleton: true,
        restrictions: ["content"],
        notInCombinationWith: ["viewer.mapcomponents.FlamingoMap"],
        extPropertyGridConfigs: {
            propertyNames: {
                resolutions: "Resoluties (komma gescheiden)",
                theme: "Theme ('flamingo' or 'default')"
            },
            source: {
                resolutions: "",
                theme: "flamingo"
            }
        }
    },

    {
        className: "viewer.components.tools.StreetView",
        name: "Streetview",
        group: "Tools",
        shortName: "Sv",
        sources: ["StreetView.js"],
        singleton: true,
        restrictions: ["top_menu"],
        configSource: ["ConfigObject.js","StreetView-config.js"]   
    },
    
    {
        className: "viewer.components.CurrentLocation",
        name: "Current Location",
        shortName: "LOC",
        sources: ["CurrentLocation.js"],
        group: "Tools",
        singleton: true,
        restrictions: ["top_menu"],
        extPropertyGridConfigs: {
            propertyNames: { 
                tooltip: 'Tooltip',
                interval: 'Interval(ms)' 
            },
            source: { 
                tooltip: 'Huidge locatie',
                interval: 0 
            }
        }
    },

    {
        className: "viewer.components.tools.ZoomIn",
        name: "ZoomIn",
        group: "Tools",
        shortName: "ZI",
        sources: ["tools/Tool.js","tools/ZoomIn.js"],
        closureCompilerSafe: true,
        singleton: true, 
        restrictions: ["top_menu"],
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "Zoom In"}
        }
    },
    {
        className: "viewer.components.tools.ZoomOut",
        name: "ZoomOut",
        group: "Tools",
        shortName: "ZO",
        sources: ["tools/Tool.js","tools/ZoomOut.js"],
        closureCompilerSafe: true,
        singleton: true,
        restrictions: ["top_menu"],
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip", zoomBox: "Trek rechthoek voor uitzoomen"},
            source: {tooltip: "Zoom out", zoomBox : false}
        }
    },
    {        
        className: "viewer.components.Maptip",
        name: "Maptip",
        shortName: "Mt",
        sources: ["Maptip.js"],
        restrictions: ["content"],
        type : "popup",
        singleton: true,
        group: "Map",
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Maptip-config.js"]                   
    },
    {
        className: "viewer.components.FeatureInfo",
        name: "Feature info",
        shortName: "Fi",
        sources: ["Maptip.js","FeatureInfo.js"],
        closureCompilerSafe: true,
        type : "popup",
        group: "Map",
        singleton: true,
        restrictions: ["content"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","FeatureInfo-config.js"]   
    },
    {
        className: "viewer.components.tools.Identify",
        name: "Identify",
        shortName: "Id",
        group: "Tools",
        sources: ["tools/Tool.js","tools/Identify.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "Identify"}
        }
    },
    {
        className: "viewer.components.tools.Pan",
        name: "Pan",
        shortName: "pa",
        group: "Tools",
        sources: ["tools/Tool.js","tools/Pan.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "Pan"}
        }
    },
    {
        className: "viewer.components.tools.SuperPan",
        name: "SuperPan",
        shortName: "Sp",
        group: "Tools",
        sources: ["tools/Tool.js","tools/SuperPan.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "SuperPan"}
        }
    },  
    {
        className: "viewer.components.tools.Measure.Line",
        name: "Measure line",
        shortName: "ML",
        group: "Tools",
        sources: ["tools/Tool.js","tools/Measure.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {
                tooltip: "Tooltip",
                units: "Eenheden",
                magicnumber: "Delen door",
                decimals: "Decimalen",
                nonSticky: "Ga na gebruik naar de eerste tool"
            },
            source: {
                tooltip: "Measure",
                units: "",
                decimals: 2,
                magicnumber: "",
                nonSticky: false
            }
        }
    },  
    {
        className: "viewer.components.tools.Measure.Area",
        name: "Measure area",
        shortName: "MA",
        group: "Tools",
        sources: ["tools/Tool.js","tools/Measure.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {
                tooltip: "Tooltip",
                units: "Eenheden",
                magicnumber: "Delen door",
                decimals: "Decimalen",
                nonSticky: "Ga na gebruik naar de eerste tool"
            },
            source: {
                tooltip: "Measure",
                units: "",
                decimals: 2,
                magicnumber: "",
                nonSticky: false
            }
        }
    }, 
    {
        className: "viewer.components.tools.FullExtent",
        name: "Full Extent",
        shortName: "fext",
        group: "Tools",
        sources: ["tools/Tool.js","tools/FullExtent.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: "Full extent"}
        },                
        notInCombinationWith: ["OpenLayersMap"]
    }, 
    {
        className: "viewer.components.tools.PreviousExtent",
        name: "Previous Extent",
        shortName: "pExt",
        group: "Tools",
        sources: ["tools/Tool.js","tools/PreviousExtent.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "PreviousExtent"},
            source: {tooltip: "Previous Extent"}
        },      
        notInCombinationWith: ["OpenLayersMap"]
    }, 
    {
        className: "viewer.components.tools.NextExtent",
        name: "Next Extent",
        group: "Tools",
        shortName: "nExt",
        sources: ["tools/Tool.js","tools/NextExtent.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["top_menu"],

        extPropertyGridConfigs: {
            propertyNames: {tooltip: "NextExtent"},
            source: {tooltip: "Next Extent"}
        },                
        notInCombinationWith: ["OpenLayersMap"]
    }, 

    {
        className: "viewer.components.BorderNavigation",
        name: "Border Navigation",
        group: "Tools",
        shortName: "bn",
        sources: ["BorderNavigation.js"],
        closureCompilerSafe: true,        
        singleton: true,
        restrictions: ["content"],
        extPropertyGridConfigs:{
            propertyNames:{
                tooltip_pan_right: "Tooltip pan rechts",
                tooltip_pan_left: "Tooltip pan links",
                tooltip_pan_up: "Tooltip pan omhoog",
                tooltip_pan_down: "Tooltip pan omlaag"
            },
            source:{
                tooltip_pan_right: "Pan naar rechts",
                tooltip_pan_left: "Pan naar links",
                tooltip_pan_up: "Pan omhoog",
                tooltip_pan_down: "Pan omlaag"}
        }
    },
    {
        className: "viewer.components.ScaleBar",
        name: "ScaleBar",
        shortName: "sb",
        sources: ["ScaleBar.js"],
        group: "Map",
        closureCompilerSafe: true,
        extPropertyGridConfigs: {
            propertyNames: {               
                units: "Units"
            },
            source: {
                units: "m"
            }
        },
        singleton: true,
        restrictions: ["content_bottom"]        
    },
    {
        className: "viewer.components.Coordinates",
        name: "Coordinates",
        shortName: "Coörd",
        sources: ["Coordinates.js"],
        group: "Map",
        closureCompilerSafe: true,   
        extPropertyGridConfigs: {
            propertyNames: {               
                decimals: "Decimalen"
            },
            source: {
                decimals: 2
            }
        },
        singleton: true,
        restrictions: ["content_bottom"]        
    }, 
    {
        className: "viewer.components.FlamingoComponent",
        name: "Flamingo Component",
        shortName: "fmc",
        sources: ["FlamingoComponent.js"],
        closureCompilerSafe: true,

        singleton: true,
        restrictions: ["content"],        
        notInCombinationWith: ["OpenLayersMap"],

        extPropertyGridConfigs: {
            propertyNames: {xml: "Xml Configuratie"},
            source: {xml: ""}
        }
    }, 
    {
        className: "viewer.components.TOC",
        name: "TOC",
        group: "Component",
        sources: ["TOC.js"],
        configSource: ["ConfigObject.js","TOC-config.js"],
        singleton: true,
        restrictions: ["rightmargin_top", "leftmargin_top","leftmargin_bottom","rightmargin_bottom","popupwindow"],
        showHelp: true
    },
    {
        className: "viewer.components.tools.GoogleNavigation",
        name: "Google Navigation",
        shortName: "Gn",
        group: "Tools",
        sources: ["tools/Tool.js","tools/GoogleNavigation.js","NavigationPanel.js"],
        closureCompilerSafe: true,
        extPropertyGridConfigs: {            
            propertyNames: {            
                navigationPanel: "Navigatiepaneel",
                tooltip: "Tooltip tool",
                //for navigation panel
                width: "Width",
                height: "Height",
                tooltip_pan_right: "Tooltip pan rechts",
                tooltip_pan_left: "Tooltip pan links",
                tooltip_pan_up: "Tooltip pan omhoog",
                tooltip_pan_down: "Tooltip pan omlaag",
                tooltip_slider: "Tooltip slider",
                show_zoom_buttons: "Show zoom buttons",
                left: "Positie vanaf links",
                top: "Positie vanaf boven",
                zoomToFullIsStart: "Zoom naar maximale extent zoomt naar startextent"
            },
            source: {          
                navigationPanel: true,
                tooltip: "Pan(slepen), zoom(dubbel klikken) en identify(enkele klik)",
                //for navigation panel
                width: "",
                height: "",
                tooltip_pan_right: "Pan naar rechts",
                tooltip_pan_left: "Pan naar links",
                tooltip_pan_up: "Pan omhoog",
                tooltip_pan_down: "Pan omlaag",
                tooltip_slider: "Sleep om te zoomen",
                show_zoom_buttons: false,
                left: "0",
                top: "20",
                zoomToFullIsStart: false
            }
        },
        singleton: true,
        restrictions: ["top_menu"]        
    },{
        className: "viewer.components.NavigationPanel",
        name: "Navigation Panel",
        group: "Tools",
        shortName: "np",
        sources: ["NavigationPanel.js"],
        closureCompilerSafe: true,        
        singleton: true,
        restrictions: ["content"],
        notInCombinationWith: ["Google Navigation"],
        extPropertyGridConfigs: {
            propertyNames: {               
                width: "Width",
                height: "Height",
                tooltip_pan_right: "Tooltip pan rechts",
                tooltip_pan_left: "Tooltip pan links",
                tooltip_pan_up: "Tooltip pan omhoog",
                tooltip_pan_down: "Tooltip pan omlaag",
                tooltip_slider: "Tooltip slider",
                show_zoom_buttons: "Show zoom buttons",
                left: "Positie vanaf links",
                top: "Positie vanaf boven"
            },
            source: {             
                width: "",
                height: "",
                tooltip_pan_right: "Pan naar rechts",
                tooltip_pan_left: "Pan naar links",
                tooltip_pan_up: "Pan omhoog",
                tooltip_pan_down: "Pan omlaag",
                tooltip_slider: "Sleep om te zoomen",
                show_zoom_buttons: false,
                left: "0",
                top: "20"
            }
        }
    },
    {
        className: "viewer.components.Legend",
        name: "Legend",
        shortName: "Ln",
        sources: ["Legend.js"],
        group: "Component",
        closureCompilerSafe: true,
        extPropertyGridConfigs: {
            propertyNames: {               
                title: "Titel",
                showBackground: "Toon achtergrond kaarten",
                margin: "Marge rond legenda (bijv. \"3px\")"
            },
            source: {
                title: "Legenda",
                showBackground: false,
                margin: "0px"
            }
        },
        singleton: true,
        restrictions: ["leftmargin_top", "rightmargin_top","leftmargin_bottom", "rightmargin_bottom","popupwindow"],
        showHelp: true
    },
    {
        className: "viewer.components.RelatedDocuments",
        name: "Gerelateerde documenten",
        shortName: "Rd",
        group: "Component",
        sources: ["RelatedDocuments.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","RelatedDocuments-config.js"],
        singleton: true,
        type: "popup",
        restrictions: ["left_menu"],
        showHelp: true
    },
    {
        className: "viewer.components.SelectionModule",
        name: "Selectie Module",
        shortName: "Sm",
        group: "Component",
        sources: ["SelectionModule.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","SelectionModule-config.js"],
        singleton: true,
        restrictions: ["left_menu"],
        type: "popup",
        showHelp: true
    }    ,
    {
        className: "viewer.components.Bookmark",
        name: "Bookmark",
        group: "Component",
        shortName: "Bm",
        sources: ["Bookmark.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Bookmark-config.js"],
        singleton: true,
        type: "popup",
        restrictions: ["left_menu"],
        showHelp: true
    },
    {
        className: "viewer.components.HTML",
        name: "HTML",
        group: "Component",
        shortName: "HTML",
        sources: ["HTML.js"],
        configSource: ["ConfigObject.js","HTML-config.js"],
        restrictions: ["rightmargin_top", "leftmargin_top","rightmargin_bottom", "leftmargin_bottom","header","footer"]
    },

    {
        className: "viewer.components.TransparencySlider",
        name: "Transparantie",
        group: "Component",
        singleton: true,
        sources: ["Slider.js","NonInitLayerSlider.js","TransparencySlider.js","TransparencySliderLayerIds.js"],
        configSource: ["ConfigObject.js","TransparencySlider-config.js","TransparencySliderLayerIds.js"],
        restrictions: ["rightmargin_top", "leftmargin_top","rightmargin_bottom", "leftmargin_bottom"],
        showHelp: true
        
    },
    /*{
        className: "viewer.components.BufferLayer",
        name: "BufferLayer",
        shortName: "BL",
        sources: ["BufferLayer.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","BufferLayer-config.js"],
        restrictions: ["left_menu"],            
        type: "popup"
    },
    {
        className: "viewer.components.BufferObject",
        name: "BufferObject",
        shortName: "BO",
        sources: ["BufferObject.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","BufferObject-config.js"],
        restrictions: ["left_menu"],            
        type: "popup"
    },*/
    {
        className: "viewer.components.Buffer",
        name: "Buffer",
        shortName: "Bu",
        group: "Component",
        singleton: true,
        sources: ["../common/ColorField.js","Buffer.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Buffer-config.js"],
        restrictions: ["left_menu"],            
        type: "popup",
        showHelp: true
    },
    {
        className: "viewer.components.LoadMonitor",
        name: "Load Monitor",
        shortName: "Mon",
        singleton: true,
        group: "Tools",
        sources: ["LoadMonitor.js"],
        restrictions: ["content"],
        extPropertyGridConfigs: {
            propertyNames: {
                loadingText: "Laad tekst",
                left: "Positie vanaf links",
                top: "Positie vanaf boven",
                timeout: "Timeout in milliseconden (alleen OpenLayers)"
            },
            source: {
                loadingText: "Bezig met laden...[percentage]%",
                left: "5",
                top: "50",
                timeout: "60000"
            }
        }             
    },
    {
        className: "viewer.components.AttributeList",
        name: "Attributen Lijst",
        group: "Component",
        shortName: "AL",
        sources: ["../common/plugins/RowExpander.js","AttributeList.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","AttributeList-config.js"],
        restrictions: ["left_menu"] , 
        singleton: true,       
        type: "popup",
        showHelp: true
    },
    {
        className: "viewer.components.Edit",
        name: "Edit",
        shortName: "Ed",
        group: "Component",
        sources: ["Edit.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Edit-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        singleton: true,
        showHelp: true
    },
    {
        className: "viewer.components.Drawing",
        name: "Tekenen",
        group: "Component",
        shortName: "Te",
        sources: ["../common/ColorField.js","Drawing.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Drawing-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        singleton: true,
        showHelp: true
    },
    {
        className: "viewer.components.DataSelection",
        name: "Data Selectie",
        shortName: "DS",
        group: "Component",
        singleton: true,
        sources: ["AttributeFilter.js","Filter.js","DataSelection.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","DataSelection-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        showHelp: true
    },
     {
        className: "viewer.components.Search",
        name: "Search",
        singleton: true,
        shortName: "Se",
        group: "Component",
        sources: ["Search.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Search-config.js"],
        restrictions: ["rightmargin_top", "leftmargin_top","leftmargin_bottom","rightmargin_bottom","left_menu"],        
        type: "popup",
        showHelp: true        
     },
   /*  {
        className: "viewer.components.fmc.Window",
        name: "FMC-Window 3rd Party",
        shortName: "Wi",
        sources: ["FlamingoComponent.js"],
        configXML: "<fmc:Window id=\"[id]\" left=\"[left]\" top=\"[top]\" width=\"[width]\" height=\"[height]\"/>",
        restrictions: ["content"]
    },
    {
        className: "viewer.components.Influence",
        name: "Invloedsgebied met geometry",
        shortName: "Igg",
        sources: ["Search.js","Influence.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Influence-config.js"],
        restrictions: ["left_menu"],        
        type: "popup"         
    },*/
    {
        className: "viewer.components.InfluenceImage",
        name: "Invloedsgebied plaatje",
        group: "Component",
        singleton: true,
        shortName: "Igi",
        sources: ["Search.js","Influence.js","InfluenceImage.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Influence-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        showHelp: true
    },
    {
        className: "viewer.components.Overview",
        name: "Overzichtskaart",
        shortName: "Oz",
        sources: ["Overview.js"],
        group: "Component",
        configSource: ["ConfigObject.js","Overview-config.js"],
        restrictions: ["content"],
        singleton: true,
        showHelp: true
     },
    {
        className: "viewer.components.Print",
        name: "Print",
        shortName: "Pr",
        singleton: true,
        group: "Component",
        sources: ["Print.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Print-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        showHelp: true
    },
    {
        className: "viewer.components.LayerContext",
        name: "LayerContext",
        shortName: "LC",
        singleton: true,
        group: "Component",
        sources: ["LayerContext.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","LayerContext-config.js"],
        restrictions: ["content"],        
        type: "popup",
        showHelp: true        
    },
    {
        className: "viewer.components.Help",
        name: "Help",
        shortName: "LC",
        singleton: true,
        group: "Component",
        sources: ["Help.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Help-config.js"],
        restrictions: ["rightmargin_top", "leftmargin_top","leftmargin_bottom","rightmargin_bottom","content"],        
        type: "popup"
    },
    {
        className: "viewer.components.LayerSwitch",
        name: "LayerSwitch",
        shortName: "LS",
        group: "Component",
        sources: ["LayerSwitch.js"],
        configSource: ["ConfigObject.js","LayerSwitch-config.js"],
        restrictions: ["content"],
        singleton: true
    },
    {
        className: "viewer.components.PopupButton",
        name: "Popup Button",
        shortName: "PB",
        sources: ["PopupButton.js"],
        closureCompilerSafe: true,
        singleton: true,
        restrictions: ["left_menu"],
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip",
                            iconUrl_up: "Icoon up",
                            iconUrl_over: "Icoon over",
                            iconUrl_sel: "Icoon selected",
                            iconUrl_dis: "Icoon disabled"},
            source: {tooltip: "Zoom out",
                     iconUrl_up: "http://localhost:8084/viewer/resources/images/buffer.png",
                     iconUrl_over: "http://localhost:8084/viewer/resources/images/buffer_over.png",
                     iconUrl_sel: "http://localhost:8084/viewer/resources/images/buffer_down.png",
                     iconUrl_dis: "http://localhost:8084/viewer/resources/images/buffer.png"}
        }
    },
    {
        className: "viewer.components.Twitter",
        name: "Twitter",
        group: "Component",
        shortName: "Tw",
        sources: ["Twitter.js"],
        closureCompilerSafe: true,
        singleton: true,
        restrictions: ["header","leftmargin_top","leftmargin_bottom","rightmargin_top","rightmargin_bottom","footer"],
        extPropertyGridConfigs: {
            propertyNames: {search: "Zoekterm"},
            source: {search: "B3Partners"}
        }
    },
    /**
    Needs more work... Not reusable
    {
        className: "viewer.components.Presentation",
        name: "Presentation",
        shortName: "Pres",
        singleton: true,
        sources: ["Presentation.js"],
        configSource: ["ConfigObject.js","Presentation_config.js"],
        restrictions: ["footer"],            
        type: "popup"
    },*/
    {
        className: "viewer.components.Divider",
        name: "Divider",
        shortName: "Dv",
        group: "Component",
        sources: ["Divider.js"],
        configSource: ["ConfigObject.js","Divider-config.js"],
        closureCompilerSafe: true,
        singleton: false,
        restrictions: ["left_menu"]
    },
    {
        className: "viewer.components.tools.DownloadMap",
        name: "Download Map",
        shortName: "DM",
        restrictions: ["top_menu", "left_menu"],
        group: "Component",
        sources: [ "Print.js","DownloadMap.js"],
        singleton: false,
        extPropertyGridConfigs: {
            propertyNames: {tooltip: "Tooltip"},
            source: {tooltip: ""}
        }
    },
    {
        className: "viewer.components.BrowserCheck",
        name: "Browser check",
        shortName: "BC",
        restrictions: ["content"],
        group: "Component",
        sources: ["BrowserCheck.js"],
        singleton: true,
        extPropertyGridConfigs: {
            propertyNames: {
                showPopup: "Toon popup-melding",
                title: "Titel popup-melding",
                test: "Testmodus (altijd melding tonen)",
                message: "Melding"
            },
            source: {
                showPopup: true,
                test: false,
                message: "De browser (of de versie ervan) die u gebruikt wordt mogelijk niet ondersteund. Deze website werkt het best met een recente, moderne browser.",
                title: "Browser controle"
            }
        }
    },
    {
        className: "viewer.components.Graph",
        name: "Graph",
        shortName: "Gr",
        group: "Component",
        singleton: true,
        sources: ["Graph.js"],
        configSource: ["ConfigObject.js","SelectionWindowConfig.js","Graph-config.js"],
        restrictions: ["left_menu"],        
        type: "popup",
        showHelp: true
    }
]

{'fraction_non_alphanumeric': 0.12700382666252974, 'fraction_numerical': 0.0013445030509876927, 'mean_word_length': 1.867628886362513, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6201235', 'n_tokens_mistral': 16007, 'n_tokens_neox': 15752, 'n_words': 3329}