1(function()
2{
3	Sidebar.prototype.addVVDPalette = function()
4	{
5		var s = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#434445;aspect=fixed;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;shape=mxgraph.vvd.';
6		var s2 = 'sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;aspect=fixed;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;outlineConnect=0;shape=mxgraph.vvd.';
7
8		// Space savers
9		var sb = this;
10		var gn = 'mxgraph.vvd';
11		var dt = 'vmware validated design';
12
13		var w = 50;
14		var h = 50;
15		this.setCurrentSearchEntryLibrary('vvd');
16
17		var fns =
18		[
19			this.createVertexTemplateEntry(s + 'administrator;',
20					w * 0.43, h, '', 'Administrator', null, null, this.getTagsForStencil(gn, 'administrator', dt).join(' ')),
21			this.createVertexTemplateEntry(s2 + 'administrator;fillColor=#066A90;',
22					w * 0.43, h, '', 'Infrastructure Role', null, null, this.getTagsForStencil(gn, 'administrator', dt).join(' ')),
23			this.createVertexTemplateEntry(s2 + 'administrator;fillColor=#65B245;',
24					w * 0.43, h, '', 'Tenant Role', null, null, this.getTagsForStencil(gn, 'administrator', dt).join(' ')),
25			this.createVertexTemplateEntry(s + 'app;',
26					w, h, '', 'App', null, null, this.getTagsForStencil(gn, 'app application', dt).join(' ')),
27			this.createVertexTemplateEntry(s + 'volumes_agent;',
28					w * 0.98, h, '', 'Volumes Agent', null, null, this.getTagsForStencil(gn, 'volumes agent', dt).join(' ')),
29			this.createVertexTemplateEntry(s + 'appstack_volume;',
30					w, h * 0.7, '', 'AppStack Volume', null, null, this.getTagsForStencil(gn, 'appstack volume', dt).join(' ')),
31			this.createVertexTemplateEntry(s + 'app_volumes_manager;',
32					w * 0.97, h, '', 'App Volumes Manager', null, null, this.getTagsForStencil(gn, 'app volumes manager', dt).join(' ')),
33			this.createVertexTemplateEntry(s + 'array_manager;',
34					w, h * 0.73, '', 'Array Manager', null, null, this.getTagsForStencil(gn, 'array manager', dt).join(' ')),
35			this.createVertexTemplateEntry(s + 'blueprint;',
36					w, h * 0.95, '', 'Blueprint', null, null, this.getTagsForStencil(gn, 'blueprint', dt).join(' ')),
37			this.createVertexTemplateEntry(s + 'business_continuity_data_protection;',
38					w, h * 0.86, '', 'Business Continuity Data Protection', null, null, this.getTagsForStencil(gn, 'business continuity data protection', dt).join(' ')),
39			this.createVertexTemplateEntry(s + 'cd;',
40					w, h, '', 'CD', null, null, this.getTagsForStencil(gn, 'cd compact disc', dt).join(' ')),
41			this.createVertexTemplateEntry(s2 + 'cloud_computing;fillColor=#066A90;',
42					w, h * 0.64, '', 'Cloud Computing', null, null, this.getTagsForStencil(gn, 'cloud computing', dt).join(' ')),
43			this.createVertexTemplateEntry(s + 'collective_nsx_esg;',
44					w, h * 0.95, '', 'Collective NSX ESG', null, null, this.getTagsForStencil(gn, 'collective nsx esg', dt).join(' ')),
45			this.createVertexTemplateEntry(s + 'consumption_plane;',
46					w, h, '', 'Consumption Plane', null, null, this.getTagsForStencil(gn, 'consumption plane', dt).join(' ')),
47			this.createVertexTemplateEntry(s + 'cpu;',
48					w, h, '', 'CPU', null, null, this.getTagsForStencil(gn, 'cpu central processing unit', dt).join(' ')),
49			this.createVertexTemplateEntry(s + 'datacenter;',
50					w, h * 0.74, '', 'Datacenter', null, null, this.getTagsForStencil(gn, 'datacenter', dt).join(' ')),
51			this.createVertexTemplateEntry(s + 'datastore;',
52					w, h * 0.78, '', 'Datastore', null, null, this.getTagsForStencil(gn, 'datastore', dt).join(' ')),
53			this.createVertexTemplateEntry(s + 'disk;',
54					w * 0.7, h, '', 'Disk', null, null, this.getTagsForStencil(gn, 'disk', dt).join(' ')),
55			this.createVertexTemplateEntry(s + 'document;',
56					w * 0.73, h, '', 'Document', null, null, this.getTagsForStencil(gn, 'document', dt).join(' ')),
57			this.createVertexTemplateEntry(s + 'edge_gateway;',
58					w, h * 0.85, '', 'Edge Gateway', null, null, this.getTagsForStencil(gn, 'edge gateway', dt).join(' ')),
59			this.createVertexTemplateEntry(s2 + 'endpoint;fillColor=#ffffff;',
60					w, h * 0.93, '', 'Endpoint White', null, null, this.getTagsForStencil(gn, 'endpoint', dt).join(' ')),
61			this.createVertexTemplateEntry(s + 'endpoint;',
62					w, h * 0.93, '', 'Endpoint', null, null, this.getTagsForStencil(gn, 'endpoint', dt).join(' ')),
63			this.createVertexTemplateEntry(s + 'ethernet_port;',
64					w, h, '', 'Ethernet Port', null, null, this.getTagsForStencil(gn, 'ethernet port', dt).join(' ')),
65			this.createVertexTemplateEntry(s + 'external_networks;',
66					w, h * 0.7, '', 'External Networks', null, null, this.getTagsForStencil(gn, 'external networks', dt).join(' ')),
67			this.createVertexTemplateEntry(s + 'flash_drive;',
68					w * 0.42, h, '', 'Flash Drive', null, null, this.getTagsForStencil(gn, 'flash drive', dt).join(' ')),
69			this.createVertexTemplateEntry(s + 'folder;',
70					w, h * 0.76, '', 'Folder', null, null, this.getTagsForStencil(gn, 'folder', dt).join(' ')),
71			this.createVertexTemplateEntry(s + 'guest_agent_customization;',
72					w, h * 0.92, '', 'Guest Agent Customization', null, null, this.getTagsForStencil(gn, 'guest agent customization', dt).join(' ')),
73			this.createVertexTemplateEntry(s + 'horizon;',
74					w, h * 0.87, '', 'Horizon', null, null, this.getTagsForStencil(gn, 'horizon', dt).join(' ')),
75			this.createVertexTemplateEntry(s + 'infrastructure;',
76					w, h * 0.97, '', 'Infrastructure', null, null, this.getTagsForStencil(gn, 'infrastructure', dt).join(' ')),
77			this.createVertexTemplateEntry(s + 'key;',
78					w * 0.48, h, '', 'Key', null, null, this.getTagsForStencil(gn, 'key', dt).join(' ')),
79			this.createVertexTemplateEntry(s + 'tenant_key;',
80					w * 0.51, h, '', 'Tenant Key', null, null, this.getTagsForStencil(gn, 'tenant key', dt).join(' ')),
81			this.createVertexTemplateEntry(s + 'keyboard;',
82					w, h * 0.71, '', 'Keyboard', null, null, this.getTagsForStencil(gn, 'keyboard', dt).join(' ')),
83			this.createVertexTemplateEntry(s + 'laptop;',
84					w, h * 0.72, '', 'Laptop', null, null, this.getTagsForStencil(gn, 'laptop', dt).join(' ')),
85			this.createVertexTemplateEntry(s + 'log_files;',
86					w * 0.8, h, '', 'Log Files', null, null, this.getTagsForStencil(gn, 'log files', dt).join(' ')),
87			this.createVertexTemplateEntry(s + 'logical_firewall;',
88					w * 0.97, h, '', 'Logical Firewall', null, null, this.getTagsForStencil(gn, 'logical firewall', dt).join(' ')),
89			this.createVertexTemplateEntry(s + 'logical_distribution;',
90					w, h, '', 'Logical Distribution', null, null, this.getTagsForStencil(gn, 'logical distribution', dt).join(' ')),
91			this.createVertexTemplateEntry(s + 'machine;',
92					w * 0.41, h, '', 'Machine', null, null, this.getTagsForStencil(gn, 'machine', dt).join(' ')),
93			this.createVertexTemplateEntry(s + 'memory;',
94					w, h * 0.38, '', 'Memory', null, null, this.getTagsForStencil(gn, 'memory', dt).join(' ')),
95			this.createVertexTemplateEntry(s + 'monitor;',
96					w, h * 0.93, '', 'Monitor', null, null, this.getTagsForStencil(gn, 'monitor', dt).join(' ')),
97			this.createVertexTemplateEntry(s + 'mouse;',
98					w * 0.49, h, '', 'Mouse', null, null, this.getTagsForStencil(gn, 'mouse', dt).join(' ')),
99			this.createVertexTemplateEntry(s + 'networking;',
100					w, h, '', 'Networking', null, null, this.getTagsForStencil(gn, 'networking', dt).join(' ')),
101			this.createVertexTemplateEntry(s + 'networks;',
102					w, h * 0.61, '', 'Networks', null, null, this.getTagsForStencil(gn, 'networks', dt).join(' ')),
103			this.createVertexTemplateEntry(s + 'nfvo;',
104					w, h, '', 'NFVO', null, null, this.getTagsForStencil(gn, 'nfvo', dt).join(' ')),
105			this.createVertexTemplateEntry(s + 'nsx;',
106					w, h * 0.77, '', 'NSX', null, null, this.getTagsForStencil(gn, 'nsx', dt).join(' ')),
107			this.createVertexTemplateEntry(s + 'nsx_controller;',
108					w, h, '', 'NSX Controller', null, null, this.getTagsForStencil(gn, 'nsx controller', dt).join(' ')),
109			this.createVertexTemplateEntry(s + 'nsx_dashboard;',
110					w, h * 0.93, '', 'NSX Dashboard', null, null, this.getTagsForStencil(gn, 'nsx dashboard', dt).join(' ')),
111			this.createVertexTemplateEntry(s + 'nsx_edge_and_load_balancer;',
112					w, h * 0.81, '', 'NSX Edge and Load Balancer', null, null, this.getTagsForStencil(gn, 'nsx edge and load balancer', dt).join(' ')),
113			this.createVertexTemplateEntry(s + 'nsx_esg;',
114					w, h, '', 'NSX ESG', null, null, this.getTagsForStencil(gn, 'nsx esg', dt).join(' ')),
115			this.createVertexTemplateEntry(s + 'nsx_manager;',
116					w, h, '', 'NSX Manager', null, null, this.getTagsForStencil(gn, 'nsx manager', dt).join(' ')),
117			this.createVertexTemplateEntry(s + 'nsx_public_cloud_gateway;',
118					w, h * 0.95, '', 'NSX Public Cloud Gateway', null, null, this.getTagsForStencil(gn, 'nsx public cloud gateway', dt).join(' ')),
119			this.createVertexTemplateEntry(s + 'on_demand_self_service;',
120					w, h * 0.85, '', 'On-demand self-service', null, null, this.getTagsForStencil(gn, 'on demand self service', dt).join(' ')),
121			this.createVertexTemplateEntry(s + 'ovdc_networks;',
122					w, h * 0.61, '', 'OvDC Networks', null, null, this.getTagsForStencil(gn, 'ovdc networks', dt).join(' ')),
123			this.createVertexTemplateEntry(s + 'pair_sites;',
124					w, h * 0.54, '', 'Pair Sites', null, null, this.getTagsForStencil(gn, 'pair sites', dt).join(' ')),
125			this.createVertexTemplateEntry(s + 'platform_services_controller;',
126					w, h, '', 'Platform Services Controller', null, null, this.getTagsForStencil(gn, 'platform services controller', dt).join(' ')),
127			this.createVertexTemplateEntry(s + 'phone;',
128					w * 0.59, h, '', 'Phone', null, null, this.getTagsForStencil(gn, 'phone', dt).join(' ')),
129			this.createVertexTemplateEntry(s + 'physical_storage;',
130					w, h * 0.71, '', 'Physical Storage', null, null, this.getTagsForStencil(gn, 'physical storage', dt).join(' ')),
131			this.createVertexTemplateEntry(s + 'physical_network_adapter;',
132					w, h * 0.58, '', 'Physical Network Adapter', null, null, this.getTagsForStencil(gn, 'physical network adapter', dt).join(' ')),
133			this.createVertexTemplateEntry(s + 'physical_upstream_router;',
134					w, h, '', 'Physical Upstream Router', null, null, this.getTagsForStencil(gn, 'physical upstream router', dt).join(' ')),
135			this.createVertexTemplateEntry(s + 'protection_group_config;',
136					w * 0.97, h, '', 'Protection Group Config', null, null, this.getTagsForStencil(gn, 'protection group config', dt).join(' ')),
137			this.createVertexTemplateEntry(s + 'protection_group;',
138					w * 0.96, h, '', 'Protection Group', null, null, this.getTagsForStencil(gn, 'protection group', dt).join(' ')),
139			this.createVertexTemplateEntry(s + 'recovery_plan;',
140					w * 0.73, h, '', 'Recovery Plan', null, null, this.getTagsForStencil(gn, 'recovery plan', dt).join(' ')),
141			this.createVertexTemplateEntry(s + 'resource_pool;',
142					w, h, '', 'Resource Pool', null, null, this.getTagsForStencil(gn, 'resource pool', dt).join(' ')),
143			this.createVertexTemplateEntry(s + 'site_container;',
144					w * 0.99, h, '', 'Site Container', null, null, this.getTagsForStencil(gn, 'site container', dt).join(' ')),
145			this.createVertexTemplateEntry(s + 'scsi_controller;',
146					w, h * 0.45, '', 'SCSI Controller', null, null, this.getTagsForStencil(gn, 'scsi controller', dt).join(' ')),
147			this.createVertexTemplateEntry(s + 'security;',
148					w * 0.77, h, '', 'Security', null, null, this.getTagsForStencil(gn, 'security', dt).join(' ')),
149			this.createVertexTemplateEntry(s + 'server;',
150					w, h * 0.26, '', 'Server', null, null, this.getTagsForStencil(gn, 'server', dt).join(' ')),
151			this.createVertexTemplateEntry(s + 'service_provider_cloud_environment;',
152					w, h * 0.88, '', 'Service Provider Cloud Environment', null, null, this.getTagsForStencil(gn, 'service provider cloud environment', dt).join(' ')),
153			this.createVertexTemplateEntry(s + 'site;',
154					w, h * 0.88, '', 'Site', null, null, this.getTagsForStencil(gn, 'site', dt).join(' ')),
155			this.createVertexTemplateEntry(s + 'site_recovery;',
156					w * 0.94, h, '', 'Site Recovery', null, null, this.getTagsForStencil(gn, 'site recovery', dt).join(' ')),
157			this.createVertexTemplateEntry(s + 'site_recovery_functional_icon;',
158					w * 0.81, h, '', 'Site Recovery Functional Icon', null, null, this.getTagsForStencil(gn, 'site recovery functional icon', dt).join(' ')),
159			this.createVertexTemplateEntry(s + 'ssd;',
160					w, h * 0.71, '', 'SSD', null, null, this.getTagsForStencil(gn, 'ssd solid state drive', dt).join(' ')),
161			this.createVertexTemplateEntry(s + 'storage;',
162					w * 0.75, h, '', 'Storage', null, null, this.getTagsForStencil(gn, 'storage', dt).join(' ')),
163			this.createVertexTemplateEntry(s + 'switch;',
164					w, h, '', 'Switch', null, null, this.getTagsForStencil(gn, 'switch', dt).join(' ')),
165			this.createVertexTemplateEntry(s + 'telco_network;',
166					w, h * 0.72, '', 'Telco Network', null, null, this.getTagsForStencil(gn, 'telco network', dt).join(' ')),
167			this.createVertexTemplateEntry(s + 'template;',
168					w * 0.82, h, '', 'Template', null, null, this.getTagsForStencil(gn, 'template', dt).join(' ')),
169			this.createVertexTemplateEntry(s + 'user_group;',
170					w * 0.71, h, '', 'User Group', null, null, this.getTagsForStencil(gn, 'user group', dt).join(' ')),
171			this.createVertexTemplateEntry(s + 'vapp_network;',
172					w, h * 0.85, '', 'vApp Network', null, null, this.getTagsForStencil(gn, 'vapp network', dt).join(' ')),
173			this.createVertexTemplateEntry(s + 'virtual_machine;',
174					w, h, '', 'Virtual Machine', null, null, this.getTagsForStencil(gn, 'virtual machine', dt).join(' ')),
175			this.createVertexTemplateEntry(s + 'virtual_switch;',
176					w, h * 0.53, '', 'Virtual Switch', null, null, this.getTagsForStencil(gn, 'virtual switch', dt).join(' ')),
177			this.createVertexTemplateEntry(s + 'virtual_appliance;',
178					w, h, '', 'Virtual Appliance', null, null, this.getTagsForStencil(gn, 'virtual appliance', dt).join(' ')),
179			this.createVertexTemplateEntry(s + 'vcenter_server;',
180					w * 0.96, h, '', 'vCenter Server', null, null, this.getTagsForStencil(gn, 'vcenter server', dt).join(' ')),
181			this.createVertexTemplateEntry(s + 'vcloud_director;',
182					w, h * 0.43, '', 'vCloud Director', null, null, this.getTagsForStencil(gn, 'vcloud director', dt).join(' ')),
183			this.createVertexTemplateEntry(s + 'vpn;',
184					w, h, '', 'VPN', null, null, this.getTagsForStencil(gn, 'vpn virtual private network', dt).join(' ')),
185			this.createVertexTemplateEntry(s + 'vrealize_automation;',
186					w, h, '', 'vRealize Automation', null, null, this.getTagsForStencil(gn, 'vrealize automation', dt).join(' ')),
187			this.createVertexTemplateEntry(s + 'vrealize_log_insight;',
188					w, h, '', 'vRealize Log Insight', null, null, this.getTagsForStencil(gn, 'vrealize log insight', dt).join(' ')),
189			this.createVertexTemplateEntry(s + 'vrealize_operations;',
190					w * 0.98, h, '', 'vRealize Operations', null, null, this.getTagsForStencil(gn, 'vrealize operations', dt).join(' ')),
191			this.createVertexTemplateEntry(s + 'vrealize_orchestrator;',
192					w, h * 0.92, '', 'vRealize Orchestrator', null, null, this.getTagsForStencil(gn, 'vrealize orchestrator', dt).join(' ')),
193			this.createVertexTemplateEntry(s + 'vrops;',
194					w, h, '', 'vROPs', null, null, this.getTagsForStencil(gn, 'vrops', dt).join(' ')),
195			this.createVertexTemplateEntry(s + 'vsan;',
196					w * 0.87, h, '', 'vSAN', null, null, this.getTagsForStencil(gn, 'vsan', dt).join(' ')),
197			this.createVertexTemplateEntry(s + 'vshield;',
198					w * 0.85, h, '', 'vShield', null, null, this.getTagsForStencil(gn, 'vshield', dt).join(' ')),
199			this.createVertexTemplateEntry(s + 'vm_group;',
200					w * 0.99, h, '', 'VM Group', null, null, this.getTagsForStencil(gn, 'vm group', dt).join(' ')),
201			this.createVertexTemplateEntry(s + 'vnf_m;',
202					w, h * 0.87, '', 'VNF-M', null, null, this.getTagsForStencil(gn, 'vnf', dt).join(' ')),
203			this.createVertexTemplateEntry(s + 'vxlan;',
204					w, h, '', 'VXLAN', null, null, this.getTagsForStencil(gn, 'vxlan', dt).join(' ')),
205			this.createVertexTemplateEntry(s + 'writable_volume;',
206					w, h * 0.81, '', 'Writable Volume', null, null, this.getTagsForStencil(gn, 'writable volume', dt).join(' ')),
207			this.createVertexTemplateEntry(s + 'wavefront;',
208					w * 0.86, h, '', 'Wavefront', null, null, this.getTagsForStencil(gn, 'wavefront', dt).join(' ')),
209			this.createVertexTemplateEntry(s + 'web_browser;',
210					w, h * 0.71, '', 'Web Browser', null, null, this.getTagsForStencil(gn, 'web browser', dt).join(' ')),
211			this.createVertexTemplateEntry(s + 'wi_fi;',
212					w, h, '', 'Wi-Fi', null, null, this.getTagsForStencil(gn, 'wi fi wifi', dt).join(' '))
213		];
214
215		this.addPalette('vvd', 'VMware Validated Design', false, mxUtils.bind(this, function(content)
216				{
217					for (var i = 0; i < fns.length; i++)
218					{
219						content.appendChild(fns[i](content));
220					}
221		}));
222
223		this.setCurrentSearchEntryLibrary();
224	};
225})();
226