1(function() 2{ 3 Sidebar.prototype.addGCP2Palette = function() 4 { 5 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Paths'); 6 this.addGCP2PathsPalette(); 7 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Zones'); 8 this.addGCP2ZonesPalette(); 9 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Service Cards'); 10 this.addGCP2ServiceCardsPalette(); 11 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2User Device Cards'); 12 this.addGCP2UserDeviceCardsPalette(); 13 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Compute'); 14 this.addGCP2ComputePalette(); 15 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2API Management'); 16 this.addGCP2APIManagementPalette(); 17 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Security'); 18 this.addGCP2SecurityPalette(); 19 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Data Analytics'); 20 this.addGCP2DataAnalyticsPalette(); 21 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Data Transfer'); 22 this.addGCP2DataTransferPalette(); 23 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Cloud AI'); 24 this.addGCP2CloudAIPalette(); 25 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Internet of Things'); 26 this.addGCP2InternetOfThingsPalette(); 27 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Databases'); 28 this.addGCP2DatabasesPalette(); 29 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Storage'); 30 this.addGCP2StoragePalette(); 31 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Management Tools'); 32 this.addGCP2ManagementToolsPalette(); 33 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Networking'); 34 this.addGCP2NetworkingPalette(); 35 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Developer Tools'); 36 this.addGCP2DeveloperToolsPalette(); 37 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Expanded Product Cards'); 38 this.addGCP2ExpandedProductCardsPalette(); 39 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Product Cards'); 40 this.addGCP2ProductCardsPalette(); 41 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2General Icons'); 42 this.addGCP2GeneralIconsPalette(); 43 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons AI Machine Learning'); 44 this.addGCP2IconsAIMachineLearningPalette(); 45 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Compute'); 46 this.addGCP2IconsComputePalette(); 47 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Data Analytics'); 48 this.addGCP2IconsDataAnalyticsPalette(); 49 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Management Tools'); 50 this.addGCP2IconsManagementToolsPalette(); 51 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Networking'); 52 this.addGCP2IconsNetworkingPalette(); 53 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Developer Tools'); 54 this.addGCP2IconsDeveloperToolsPalette(); 55 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons API Management'); 56 this.addGCP2IconsAPIManagementPalette() 57 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Internet of Things'); 58 this.addGCP2IconsInternetOfThingsPalette(); 59 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Databases'); 60 this.addGCP2IconsDatabasesPalette(); 61 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Storage'); 62 this.addGCP2IconsStoragePalette(); 63 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Security'); 64 this.addGCP2IconsSecurityPalette(); 65 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Migration'); 66 this.addGCP2IconsMigrationPalette(); 67 this.setCurrentSearchEntryLibrary('gcp2', 'gcp2Icons Hybrid and Multi Cloud'); 68 this.addGCP2IconsHybridAndMultiCloudPalette(); 69 this.setCurrentSearchEntryLibrary(); 70 }; 71 72 Sidebar.prototype.addGCP2PathsPalette = function() 73 { 74 var s = 'edgeStyle=orthogonalEdgeStyle;fontSize=12;html=1;endArrow=blockThin;endFill=1;rounded=0;strokeWidth=2;endSize=4;startSize=4;'; 75 var dt = 'gcp google cloud platform path '; 76 var fns = []; 77 78 var fns = [ 79 this.createEdgeTemplateEntry(s + 'dashed=0;strokeColor=#4284F3;', 100, 0, '', 'Primary Path', null, dt + 'primary'), 80 this.createEdgeTemplateEntry(s + 'dashed=1;dashPattern=1 3;strokeColor=#4284F3;', 100, 0, '', 'Optional Primary Path', null, dt + 'optional primary'), 81 this.createEdgeTemplateEntry(s + 'dashed=0;strokeColor=#9E9E9E;', 100, 0, '', 'Secondary Path', null, dt + 'secondary'), 82 this.createEdgeTemplateEntry(s + 'dashed=1;dashPattern=1 3;strokeColor=#9E9E9E;', 100, 0, '', 'Optional Secondary Path', null, dt + 'optional secondary'), 83 this.createEdgeTemplateEntry(s + 'strokeColor=#34A853;dashed=0;', 100, 0, '', 'Success Status', null, dt + 'success status'), 84 this.createEdgeTemplateEntry(s + 'strokeColor=#EA4335;dashed=0;', 100, 0, '', 'Failure Status', null, dt + 'failure status') 85 ]; 86 87 this.addPalette('gcp2Paths', 'GCP / Paths', false, mxUtils.bind(this, function(content) 88 { 89 for (var i = 0; i < fns.length; i++) 90 { 91 content.appendChild(fns[i](content)); 92 } 93 })); 94 }; 95 96 Sidebar.prototype.addGCP2ZonesPalette = function() 97 { 98 var sb = this; 99 var s = 'sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[1,1,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];rounded=1;absoluteArcSize=1;arcSize=2;html=1;strokeColor=none;gradientColor=none;shadow=0;dashed=0;fontSize=12;fontColor=#9E9E9E;align=left;verticalAlign=top;spacing=10;spacingTop=-4;'; 100 var dt = 'gcp google cloud platform zone '; 101 var gn = 'mxgraph.gcp2.zones'; 102 var fns = []; 103 104 var fns = [ 105 this.createVertexTemplateEntry(s + '', 106 120, 70, 'User 1', 'User 1 (Default)', null, null, this.getTagsForStencil(gn, '', dt + 'user').join(' ')), 107 this.createVertexTemplateEntry(s + 'fillColor=#F3E5F5;', 108 120, 150, 'Infrastructure\nSystem', 'Infrastructure System', null, null, this.getTagsForStencil(gn, '', dt + 'infrastructure system').join(' ')), 109 this.createVertexTemplateEntry(s + 'fillColor=#EFEBE9;', 110 120, 200, 'colo / dc /\non-premises', 'colo / dc / on-premises', null, null, this.getTagsForStencil(gn, '', dt + 'colo dc on premises').join(' ')), 111 this.createVertexTemplateEntry(s + 'fillColor=#F1F8E9;', 112 120, 70, 'System 1', 'System 1', null, null, this.getTagsForStencil(gn, '', dt + 'system').join(' ')), 113 this.createVertexTemplateEntry(s + 'fillColor=#FFEBEE;', 114 120, 70, 'External SaaS\nProviders', 'External SaaS Providers', null, null, this.getTagsForStencil(gn, '', dt + 'external saas providers').join(' ')), 115 this.createVertexTemplateEntry(s + 'fillColor=#FFF8E1;', 116 120, 70, 'External Data\nSources', 'External Data Sources', null, null, this.getTagsForStencil(gn, '', dt + 'external data sources').join(' ')), 117 this.createVertexTemplateEntry(s + 'fillColor=#E0F2F1;', 118 120, 75, 'External\nInfrastructure\n3<sup>rd</sup> Party', 'External Infrastructure 3rd party', null, null, this.getTagsForStencil(gn, '', dt + 'external infrastructure 3rd party').join(' ')), 119 this.createVertexTemplateEntry(s + 'fillColor=#E1F5FE;', 120 120, 75, 'External\nInfrastructure\n1<sup>st</sup> Party', 'External Infrastructure 1st party', null, null, this.getTagsForStencil(gn, '', dt + 'external infrastructure 1st party').join(' ')), 121 122 this.addEntry(dt + 'project cloud service provider', function() 123 { 124 var bg = new mxCell('Project Zone / Cloud Service Provider', new mxGeometry(0, 0, 530, 490), s + 'fillColor=#F6F6F6;'); 125 bg.vertex = true; 126 127 var zone1Cell = new mxCell('Logical Grouping of Services / Instances', 128 new mxGeometry(0, 0, 250, 180), s + 'fillColor=#E3F2FD;'); 129 zone1Cell.geometry.relative = true; 130 zone1Cell.geometry.offset = new mxPoint(10, 50); 131 zone1Cell.vertex = true; 132 bg.insert(zone1Cell); 133 134 var zone2Cell = new mxCell('Zone', 135 new mxGeometry(0, 0, 230, 120), s + 'fillColor=#FFF3E0;'); 136 zone2Cell.geometry.relative = true; 137 zone2Cell.geometry.offset = new mxPoint(10, 50); 138 zone2Cell.vertex = true; 139 zone1Cell.insert(zone2Cell); 140 141 var zone3Cell = new mxCell('SubNetwork', 142 new mxGeometry(0, 0, 210, 60), s + 'fillColor=#EDE7F6;'); 143 zone3Cell.geometry.relative = true; 144 zone3Cell.geometry.offset = new mxPoint(10, 50); 145 zone3Cell.vertex = true; 146 zone2Cell.insert(zone3Cell); 147 148 var zone4Cell = new mxCell('Kubernetes cluster', 149 new mxGeometry(0, 0, 250, 120), s + 'fillColor=#FCE4EC;'); 150 zone4Cell.geometry.relative = true; 151 zone4Cell.geometry.offset = new mxPoint(10, 240); 152 zone4Cell.vertex = true; 153 bg.insert(zone4Cell); 154 155 var zone5Cell = new mxCell('pod', 156 new mxGeometry(0, 0, 210, 60), s + 'fillColor=#E8F5E9;'); 157 zone5Cell.geometry.relative = true; 158 zone5Cell.geometry.offset = new mxPoint(10, 50); 159 zone5Cell.vertex = true; 160 zone4Cell.insert(zone5Cell); 161 162 var zone6Cell = new mxCell('Account', 163 new mxGeometry(0, 0, 250, 60), s + 'fillColor=#E8EAF6;'); 164 zone6Cell.geometry.relative = true; 165 zone6Cell.geometry.offset = new mxPoint(10, 370); 166 zone6Cell.vertex = true; 167 bg.insert(zone6Cell); 168 169 var zone7Cell = new mxCell('Region', 170 new mxGeometry(0, 0, 250, 310), s + 'fillColor=#ECEFF1;'); 171 zone7Cell.geometry.relative = true; 172 zone7Cell.geometry.offset = new mxPoint(270, 50); 173 zone7Cell.vertex = true; 174 bg.insert(zone7Cell); 175 176 var zone8Cell = new mxCell('Zone', 177 new mxGeometry(0, 0, 230, 250), s + 'fillColor=#FFF3E0;'); 178 zone8Cell.geometry.relative = true; 179 zone8Cell.geometry.offset = new mxPoint(10, 50); 180 zone8Cell.vertex = true; 181 zone7Cell.insert(zone8Cell); 182 183 var zone9Cell = new mxCell('Firewall', 184 new mxGeometry(0, 0, 210, 190), s + 'fillColor=#FBE9E7;'); 185 zone9Cell.geometry.relative = true; 186 zone9Cell.geometry.offset = new mxPoint(10, 50); 187 zone9Cell.vertex = true; 188 zone8Cell.insert(zone9Cell); 189 190 var zone10Cell = new mxCell('Instance Group', 191 new mxGeometry(0, 0, 190, 60), s + 'fillColor=#F9FBE7;'); 192 zone10Cell.geometry.relative = true; 193 zone10Cell.geometry.offset = new mxPoint(10, 50); 194 zone10Cell.vertex = true; 195 zone9Cell.insert(zone10Cell); 196 197 var zone11Cell = new mxCell('Replica Pool', 198 new mxGeometry(0, 0, 190, 60), s + 'fillColor=#E0F7FA;'); 199 zone11Cell.geometry.relative = true; 200 zone11Cell.geometry.offset = new mxPoint(10, 120); 201 zone11Cell.vertex = true; 202 zone9Cell.insert(zone11Cell); 203 204 var zone12Cell = new mxCell('Optional Component', 205 new mxGeometry(0, 0, 250, 60), 206 'rounded=1;absoluteArcSize=1;arcSize=2;html=1;strokeColor=none;gradientColor=none;shadow=0;dashed=1;strokeColor=#4284F3;fontSize=12;fontColor=#9E9E9E;align=left;verticalAlign=top;spacing=10;spacingTop=-4;fillColor=none;dashPattern=1 2;strokeWidth=2;'); 207 zone12Cell.geometry.relative = true; 208 zone12Cell.geometry.offset = new mxPoint(270, 370); 209 zone12Cell.vertex = true; 210 bg.insert(zone12Cell); 211 212 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Project Zone / Cloud Service Provider'); 213 }), 214 215 this.createVertexTemplateEntry('fillColor=#4DA1F5;strokeColor=none;shadow=1;gradientColor=none;fontSize=14;align=left;spacingLeft=50;fontColor=#ffffff;', 216 1000, 40, 'Architecture: App Engine and Cloud Endpoints', 'Title bar', null, null, this.getTagsForStencil(gn, '', dt + 'title bar').join(' ')), 217 this.createVertexTemplateEntry('strokeColor=none;shadow=0;gradientColor=none;fontSize=11;align=left;spacing=10;fontColor=#;9E9E9E;verticalAlign=top;spacingTop=100;', 218 300, 350, 'Use this note to call out\nor clarify parts of a diagram', 'Note', null, null, this.getTagsForStencil(gn, '', dt + 'note').join(' ')), 219 220 this.addEntry(dt + 'project', function() 221 { 222 var bg = new mxCell('<b>Google </b>Cloud Platform', new mxGeometry(0, 0, 650, 350), 223 'fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;fontSize=14;align=left;spacing=10;fontColor=#717171;9E9E9E;verticalAlign=top;spacingTop=-4;fontStyle=0;spacingLeft=40;html=1;'); 224 bg.vertex = true; 225 226 var zone1Cell = new mxCell('', 227 new mxGeometry(0, 0, 23, 20), 228 'shape=mxgraph.gcp2.google_cloud_platform;fillColor=#F6F6F6;strokeColor=none;shadow=0;gradientColor=none;'); 229 zone1Cell.geometry.relative = true; 230 zone1Cell.geometry.offset = new mxPoint(20, 10); 231 zone1Cell.vertex = true; 232 bg.insert(zone1Cell); 233 234 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Project Zone'); 235 }), 236 237 this.addEntry(dt + 'markers', function() 238 { 239 s = 'shape=ellipse;perimeter=ellipsePerimeter;strokeColor=#BDBDBD;strokeWidth=2;shadow=0;gradientColor=none;fontColor=#757575;align=center;html=1;fontStyle=1;spacingTop=-1;'; 240 241 var icon1 = new mxCell('1', new mxGeometry(0, 0, 20, 20), s); 242 icon1.vertex = true; 243 var icon2 = new mxCell('2', new mxGeometry(40, 0, 20, 20), s); 244 icon2.vertex = true; 245 var icon3 = new mxCell('3', new mxGeometry(80, 0, 20, 20), s); 246 icon3.vertex = true; 247 var icon4 = new mxCell('4', new mxGeometry(120, 0, 20, 20), s); 248 icon4.vertex = true; 249 var icon5 = new mxCell('5', new mxGeometry(160, 0, 20, 20), s); 250 icon5.vertex = true; 251 var icon6 = new mxCell('6', new mxGeometry(200, 0, 20, 20), s); 252 icon6.vertex = true; 253 var icon7 = new mxCell('7', new mxGeometry(240, 0, 20, 20), s); 254 icon7.vertex = true; 255 var label1 = new mxCell('Markers to be used with the legend', new mxGeometry(0, 20, 260, 30), 256 'strokeColor=none;fillColor=none;fontColor=#757575;align=left;html=1;fontStyle=0;fontSize=11;'); 257 label1.vertex = true; 258 259 return sb.createVertexTemplateFromCells([icon1, icon2, icon3, icon4, icon5, icon6, icon7, label1], 260, 50, 'Markers'); 260 }), 261 262 this.addEntry(dt + 'markers', function() 263 { 264 var s = 'strokeColor=none;fillColor=none;fontColor=#757575;align=left;html=1;fontStyle=0;spacingLeft=5;fontSize=11;verticalAlign=top;whiteSpace=wrap;spacingRight=5;'; 265 266 var bg = new mxCell('', new mxGeometry(0, 0, 600, 70), 267 'strokeColor=#BDBDBD;strokeWidth=1;shadow=0;gradientColor=none;'); 268 bg.vertex = true; 269 270 var label1 = new mxCell('1 Commit code', new mxGeometry(0, 0, 200, 30), s); 271 label1.geometry.relative = true; 272 label1.vertex = true; 273 bg.insert(label1); 274 275 var label2 = new mxCell('2 Detect code change', new mxGeometry(0, 0, 200, 30), s); 276 label2.geometry.relative = true; 277 label2.geometry.offset = new mxPoint(0, 30); 278 label2.vertex = true; 279 bg.insert(label2); 280 281 var label3 = new mxCell('3 Build immutable image', new mxGeometry(0, 0, 200, 30), s); 282 label3.geometry.relative = true; 283 label3.geometry.offset = new mxPoint(200, 0); 284 label3.vertex = true; 285 bg.insert(label3); 286 287 var label4 = new mxCell('4 Launch test instance from image', new mxGeometry(0, 0, 200, 30), s); 288 label4.geometry.relative = true; 289 label4.geometry.offset = new mxPoint(200, 30); 290 label4.vertex = true; 291 bg.insert(label4); 292 293 var label5 = new mxCell('5 Run tests', new mxGeometry(0, 0, 200, 30), s); 294 label5.geometry.relative = true; 295 label5.geometry.offset = new mxPoint(400, 0); 296 label5.vertex = true; 297 bg.insert(label5); 298 299 var label6 = new mxCell('6 Perform rolling update of image to autoscaler', new mxGeometry(0, 0, 200, 30), s); 300 label6.geometry.relative = true; 301 label6.geometry.offset = new mxPoint(400, 30); 302 label6.vertex = true; 303 bg.insert(label6); 304 305 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, 'Markers'); 306 }) 307 ]; 308 309 this.addPalette('gcp2Zones', 'GCP / Zones', false, mxUtils.bind(this, function(content) 310 { 311 for (var i = 0; i < fns.length; i++) 312 { 313 content.appendChild(fns[i](content)); 314 } 315 })); 316 }; 317 318 Sidebar.prototype.addGCP2GeneralIconsPalette = function() 319 { 320 var sb = this; 321 var s = 1; 322 var n = 'sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#3B8DF1;shape=mxgraph.gcp2.'; 323 var dt = 'gcp google cloud platform general icons icon '; 324 var gn = 'mxgraph.gcp2'; 325 var fns = []; 326 327 var fns = [ 328 this.createVertexTemplateEntry(n + 'biomedical_trio', 329 s * 100, s * 68, null, 'Biomedical Trio', null, null, this.getTagsForStencil(gn, '', dt + 'biomedical trio').join(' ')), 330 this.createVertexTemplateEntry(n + 'biomedical_beaker', 331 s * 69, s * 100, null, 'Biomedical Beaker', null, null, this.getTagsForStencil(gn, '', dt + 'biomedical beaker').join(' ')), 332 this.createVertexTemplateEntry(n + 'biomedical_test_tube', 333 s * 31, s * 100, null, 'Biomedical Test Tube', null, null, this.getTagsForStencil(gn, '', dt + 'biomedical test tube').join(' ')), 334 this.createVertexTemplateEntry(n + 'check_available', 335 s * 100, s * 87, null, 'Check Available', null, null, this.getTagsForStencil(gn, '', dt + 'check available').join(' ')), 336 this.createVertexTemplateEntry(n + 'cloud_monitoring', 337 s * 90, s * 100, null, 'Cloud Monitoring', null, null, this.getTagsForStencil(gn, '', dt + 'cloud monitoring').join(' ')), 338 this.createVertexTemplateEntry(n + 'repository', 339 s * 60, s * 100, null, 'Repository', null, null, this.getTagsForStencil(gn, '', dt + 'repository').join(' ')), 340 this.createVertexTemplateEntry(n + 'compute_engine_2', 341 s * 54, s * 100, null, 'Compute Engine', null, null, this.getTagsForStencil(gn, '', dt + 'compute engine').join(' ')), 342 this.createVertexTemplateEntry(n + 'capabilities', 343 s * 100, s * 76, null, 'Capabilities', null, null, this.getTagsForStencil(gn, '', dt + 'capabilities thumbs up gear').join(' ')), 344 this.createVertexTemplateEntry(n + 'globe_world', 345 s * 100, s * 95, null, 'World Network', null, null, this.getTagsForStencil(gn, '', dt + 'globe global world network upload anywhere').join(' ')), 346 this.createVertexTemplateEntry(n + 'process', 347 s * 84, s * 100, null, 'Process', null, null, this.getTagsForStencil(gn, '', dt + 'process').join(' ')), 348 this.createVertexTemplateEntry(n + 'arrow_cycle', 349 s * 100, s * 95, null, 'Arrow Cycle', null, null, this.getTagsForStencil(gn, '', dt + 'arrow cycle').join(' ')), 350 this.createVertexTemplateEntry(n + 'arrows_system', 351 s * 100, s * 95, null, 'Arrows System', null, null, this.getTagsForStencil(gn, '', dt + 'arrows system').join(' ')), 352 this.createVertexTemplateEntry(n + 'half_cloud', 353 s * 100, s * 50, null, 'Half Cloud', null, null, this.getTagsForStencil(gn, '', dt + 'half cloud').join(' ')), 354 this.createVertexTemplateEntry(n + 'cloud', 355 s * 100, s * 69, null, 'Cloud', null, null, this.getTagsForStencil(gn, '', dt + 'cloud').join(' ')), 356 this.createVertexTemplateEntry(n + 'speed', 357 s * 100, s * 57, null, 'Speed', null, null, this.getTagsForStencil(gn, '', dt + 'speed').join(' ')), 358 this.createVertexTemplateEntry(n + 'time_clock', 359 s * 86, s * 100, null, 'Overtime', null, null, this.getTagsForStencil(gn, '', dt + 'time clock frozen cold overtime').join(' ')), 360 this.createVertexTemplateEntry(n + 'loading', 361 s * 100, s * 100, null, 'Loading', null, null, this.getTagsForStencil(gn, '', dt + 'loading').join(' ')), 362 this.createVertexTemplateEntry(n + 'clock', 363 s * 100, s * 100, null, 'Clock', null, null, this.getTagsForStencil(gn, '', dt + 'clock').join(' ')), 364 this.createVertexTemplateEntry(n + 'check', 365 s * 100, s * 80, null, 'Check', null, null, this.getTagsForStencil(gn, '', dt + 'check').join(' ')), 366 this.createVertexTemplateEntry('sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#F4AF20;shape=mxgraph.gcp2.check', 367 s * 100, s * 80, null, 'Check (yellow)', null, null, this.getTagsForStencil(gn, '', dt + 'check').join(' ')), 368 this.createVertexTemplateEntry('sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.check', 369 s * 100, s * 80, null, 'Check (green)', null, null, this.getTagsForStencil(gn, '', dt + 'check').join(' ')), 370 this.createVertexTemplateEntry(n + 'lock', 371 s * 78, s * 100, null, 'Lock', null, null, this.getTagsForStencil(gn, '', dt + 'lock').join(' ')), 372 this.createVertexTemplateEntry(n + 'cloud_security', 373 s * 100, s * 70, null, 'Cloud Security', null, null, this.getTagsForStencil(gn, '', dt + 'cloud security').join(' ')), 374 this.createVertexTemplateEntry(n + 'cloud_checkmark', 375 s * 100, s * 67, null, 'Cloud Checkmark', null, null, this.getTagsForStencil(gn, '', dt + 'cloud checkmark').join(' ')), 376 this.createVertexTemplateEntry(n + 'key', 377 s * 100, s * 47, null, 'Key', null, null, this.getTagsForStencil(gn, '', dt + 'key').join(' ')), 378 this.createVertexTemplateEntry(n + 'aspect_ratio', 379 s * 100, s * 92, null, 'Aspect Ratio', null, null, this.getTagsForStencil(gn, '', dt + 'aspect ratio').join(' ')), 380 this.createVertexTemplateEntry(n + 'scale', 381 s * 100, s * 92, null, 'Check', null, null, this.getTagsForStencil(gn, '', dt + 'check scale aspect ratio').join(' ')), 382 this.createVertexTemplateEntry(n + 'big_query', 383 s * 99, s * 100, null, 'Big Query', null, null, this.getTagsForStencil(gn, '', dt + 'big query').join(' ')), 384 this.createVertexTemplateEntry(n + 'search', 385 s * 99, s * 100, null, 'Search', null, null, this.getTagsForStencil(gn, '', dt + 'search').join(' ')), 386 this.createVertexTemplateEntry('sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.search', 387 s * 99, s * 100, null, 'Search (green)', null, null, this.getTagsForStencil(gn, '', dt + 'search').join(' ')), 388 this.createVertexTemplateEntry(n + 'solution', 389 s * 99, s * 100, null, 'Solution', null, null, this.getTagsForStencil(gn, '', dt + 'solution').join(' ')), 390 this.createVertexTemplateEntry(n + 'visibility', 391 s * 100, s * 94, null, 'Visibility', null, null, this.getTagsForStencil(gn, '', dt + 'visibility').join(' ')), 392 this.createVertexTemplateEntry(n + 'anomaly_detection', 393 s * 78, s * 100, null, 'Anomaly Detection', null, null, this.getTagsForStencil(gn, '', dt + 'anomaly detection').join(' ')), 394 this.createVertexTemplateEntry(n + 'view_list', 395 s * 81, s * 100, null, 'View List', null, null, this.getTagsForStencil(gn, '', dt + 'view list').join(' ')), 396 this.createVertexTemplateEntry(n + 'connected', 397 s * 100, s * 72, null, 'Admin', null, null, this.getTagsForStencil(gn, '', dt + 'admin system connected').join(' ')), 398 this.createVertexTemplateEntry(n + 'cloud_server', 399 s * 100, s * 89, null, 'Cloud Server', null, null, this.getTagsForStencil(gn, '', dt + 'cloud server').join(' ')), 400 this.createVertexTemplateEntry(n + 'primary', 401 s * 100, s * 15, null, 'Primary', null, null, this.getTagsForStencil(gn, '', dt + 'primary').join(' ')), 402 this.createVertexTemplateEntry(n + 'monitor', 403 s * 100, s * 85, null, 'Monitor', null, null, this.getTagsForStencil(gn, '', dt + 'monitor save help').join(' ')), 404 this.createVertexTemplateEntry(n + 'monitor_2', 405 s * 100, s * 85, null, 'Monitor', null, null, this.getTagsForStencil(gn, '', dt + 'monitor').join(' ')), 406 this.createVertexTemplateEntry(n + 'website', 407 s * 100, s * 97, null, 'Website', null, null, this.getTagsForStencil(gn, '', dt + 'website').join(' ')), 408 this.createVertexTemplateEntry(n + 'safety', 409 s * 100, s * 96, null, 'Safety', null, null, this.getTagsForStencil(gn, '', dt + 'safety').join(' ')), 410 this.createVertexTemplateEntry(n + 'gear_load', 411 s * 100, s * 92, null, 'Gear Load', null, null, this.getTagsForStencil(gn, '', dt + 'gear load').join(' ')), 412 this.createVertexTemplateEntry(n + 'files', 413 s * 100, s * 97, null, 'Files', null, null, this.getTagsForStencil(gn, '', dt + 'files data sharing').join(' ')), 414 this.createVertexTemplateEntry(n + 'play_gear', 415 s * 100, s * 100, null, 'Play Gear', null, null, this.getTagsForStencil(gn, '', dt + 'play gear').join(' ')), 416 this.createVertexTemplateEntry(n + 'play_start', 417 s * 100, s * 100, null, 'Play Start', null, null, this.getTagsForStencil(gn, '', dt + 'play start').join(' ')), 418 this.createVertexTemplateEntry(n + 'replication_controller', 419 s * 100, s * 91, null, 'Replication Controller', null, null, this.getTagsForStencil(gn, '', dt + 'replication controller').join(' ')), 420 this.createVertexTemplateEntry(n + 'replication_controller_2', 421 s * 100, s * 91, null, 'Replication Controller', null, null, this.getTagsForStencil(gn, '', dt + 'replication controller').join(' ')), 422 this.createVertexTemplateEntry(n + 'replication_controller_3', 423 s * 100, s * 66, null, 'Replication Controller', null, null, this.getTagsForStencil(gn, '', dt + 'replication controller').join(' ')), 424 this.createVertexTemplateEntry(n + 'repository_2', 425 s * 94, s * 100, null, 'Repository', null, null, this.getTagsForStencil(gn, '', dt + 'repository upload swap').join(' ')), 426 this.createVertexTemplateEntry(n + 'repository_3', 427 s * 100, s * 100, null, 'Repository', null, null, this.getTagsForStencil(gn, '', dt + 'repository').join(' ')), 428 this.createVertexTemplateEntry(n + 'repository_primary', 429 s * 100, s * 100, null, 'Repository', null, null, this.getTagsForStencil(gn, '', dt + 'repository primary').join(' ')), 430 this.createVertexTemplateEntry(n + 'database_3', 431 s * 70, s * 100, null, 'Database', null, null, this.getTagsForStencil(gn, '', dt + 'database db files').join(' ')), 432 this.createVertexTemplateEntry(n + 'database_uploading', 433 s * 100, s * 84, null, 'Database Uploading', null, null, this.getTagsForStencil(gn, '', dt + 'database db uploading').join(' ')), 434 this.createVertexTemplateEntry(n + 'servers_stacked', 435 s * 100, s * 100, null, 'Servers Stacked', null, null, this.getTagsForStencil(gn, '', dt + 'servers stacked').join(' ')), 436 this.createVertexTemplateEntry(n + 'segments', 437 s * 100, s * 100, null, 'Segments', null, null, this.getTagsForStencil(gn, '', dt + 'segments').join(' ')), 438 this.createVertexTemplateEntry(n + 'segments_2', 439 s * 100, s * 92, null, 'Segments', null, null, this.getTagsForStencil(gn, '', dt + 'segments').join(' ')), 440 this.createVertexTemplateEntry(n + 'segments_overlap', 441 s * 100, s * 100, null, 'Segments Overlap', null, null, this.getTagsForStencil(gn, '', dt + 'segments overlap').join(' ')), 442 this.createVertexTemplateEntry(n + 'cost_savings', 443 s * 66, s * 100, null, 'Cost Savings', null, null, this.getTagsForStencil(gn, '', dt + 'cost savings').join(' ')), 444 this.createVertexTemplateEntry(n + 'enhance_ui', 445 s * 76, s * 100, null, 'Enhance UI', null, null, this.getTagsForStencil(gn, '', dt + 'enhance ui').join(' ')), 446 this.createVertexTemplateEntry(n + 'phone_android', 447 s * 56, s * 100, null, 'Phone', null, null, this.getTagsForStencil(gn, '', dt + 'phone android').join(' ')), 448 this.createVertexTemplateEntry(n + 'cost_arrows', 449 s * 76, s * 100, null, 'Cost Arrows', null, null, this.getTagsForStencil(gn, '', dt + 'cost arrows').join(' ')), 450 this.createVertexTemplateEntry(n + 'increase_cost_arrows', 451 s * 100, s * 92, null, 'Increase Cost Arrows', null, null, this.getTagsForStencil(gn, '', dt + 'increase cost arrows').join(' ')), 452 this.createVertexTemplateEntry(n + 'cost', 453 s * 85, s * 100, null, 'Cost File', null, null, this.getTagsForStencil(gn, '', dt + 'cost file').join(' ')), 454 this.createVertexTemplateEntry(n + 'database_2', 455 s * 78, s * 100, null, 'Database', null, null, this.getTagsForStencil(gn, '', dt + 'database db').join(' ')), 456 this.createVertexTemplateEntry(n + 'database_speed', 457 s * 69, s * 100, null, 'Database Speed', null, null, this.getTagsForStencil(gn, '', dt + 'database db speed').join(' ')), 458 this.createVertexTemplateEntry(n + 'data_access', 459 s * 93, s * 100, null, 'Data Access', null, null, this.getTagsForStencil(gn, '', dt + 'data access file gear').join(' ')), 460 this.createVertexTemplateEntry(n + 'database_cycle', 461 s * 100, s * 98, null, 'Database Cycle', null, null, this.getTagsForStencil(gn, '', dt + 'database db cycle').join(' ')), 462 this.createVertexTemplateEntry(n + 'data_increase', 463 s * 78, s * 100, null, 'Data Increase', null, null, this.getTagsForStencil(gn, '', dt + 'data increase').join(' ')), 464 this.createVertexTemplateEntry(n + 'data_storage_cost', 465 s * 78, s * 100, null, 'Data Storage Cost', null, null, this.getTagsForStencil(gn, '', dt + 'data storage cost').join(' ')), 466 this.createVertexTemplateEntry(n + 'gear', 467 s * 100, s * 100, null, 'Gear', null, null, this.getTagsForStencil(gn, '', dt + 'gear').join(' ')), 468 this.createVertexTemplateEntry(n + 'gear_chain', 469 s * 100, s * 100, null, 'Gear Chain', null, null, this.getTagsForStencil(gn, '', dt + 'gear chain').join(' ')), 470 this.createVertexTemplateEntry(n + 'bucket_scale', 471 s * 100, s * 81, null, 'Bucket Scale', null, null, this.getTagsForStencil(gn, '', dt + 'bucket scale').join(' ')), 472 this.createVertexTemplateEntry(n + 'a7_power', 473 s * 100, s * 100, null, 'A7 Power', null, null, this.getTagsForStencil(gn, '', dt + 'a7 power').join(' ')), 474 this.createVertexTemplateEntry(n + 'gear_arrow', 475 s * 100, s * 61, null, 'Gear Arrow', null, null, this.getTagsForStencil(gn, '', dt + 'gear arrow').join(' ')), 476 this.createVertexTemplateEntry(n + 'swap', 477 s * 100, s * 51, null, 'Swap', null, null, this.getTagsForStencil(gn, '', dt + 'swap').join(' ')), 478 this.createVertexTemplateEntry(n + 'save', 479 s * 100, s * 84, null, 'Save', null, null, this.getTagsForStencil(gn, '', dt + 'save').join(' ')), 480 this.createVertexTemplateEntry(n + 'social_media_time', 481 s * 97, s * 100, null, 'Social Media Time', null, null, this.getTagsForStencil(gn, '', dt + 'social media time').join(' ')), 482 this.createVertexTemplateEntry(n + 'tape_record', 483 s * 100, s * 71, null, 'Tape Record', null, null, this.getTagsForStencil(gn, '', dt + 'tape record').join(' ')), 484 this.createVertexTemplateEntry(n + 'folders', 485 s * 100, s * 85, null, 'Folders', null, null, this.getTagsForStencil(gn, '', dt + 'folders extensible').join(' ')), 486 this.createVertexTemplateEntry(n + 'maps_api', 487 s * 61, s * 100, null, 'Maps API', null, null, this.getTagsForStencil(gn, '', dt + 'maps api application programming interface').join(' ')), 488 this.createVertexTemplateEntry(n + 'enhance_ui_2', 489 s * 100, s * 91, null, 'Enhance UI', null, null, this.getTagsForStencil(gn, '', dt + 'enhance ui user interface').join(' ')), 490 this.createVertexTemplateEntry(n + 'certified_industry_standard', 491 s * 100, s * 78, null, 'Certified Industry Standard', null, null, this.getTagsForStencil(gn, '', dt + 'certified industry standard').join(' ')), 492 this.createVertexTemplateEntry(n + 'calculator', 493 s * 100, s * 74, null, 'Calculator', null, null, this.getTagsForStencil(gn, '', dt + 'calculator').join(' ')), 494 this.createVertexTemplateEntry(n + 'network', 495 s * 100, s * 100, null, 'Network', null, null, this.getTagsForStencil(gn, '', dt + 'network').join(' ')), 496 this.createVertexTemplateEntry(n + 'cloud_computer', 497 s * 100, s * 88, null, 'Cloud Computer', null, null, this.getTagsForStencil(gn, '', dt + 'cloud computer').join(' ')), 498 this.createVertexTemplateEntry(n + 'cloud_connected_insight', 499 s * 100, s * 91, null, 'Cloud Connected Insight', null, null, this.getTagsForStencil(gn, '', dt + 'cloud connected insight').join(' ')), 500 this.createVertexTemplateEntry(n + 'cloud_information', 501 s * 100, s * 79, null, 'Cloud Information Portable', null, null, this.getTagsForStencil(gn, '', dt + 'cloud information portable').join(' ')), 502 this.createVertexTemplateEntry(n + 'lifecycle', 503 s * 100, s * 100, null, 'Lifecycle', null, null, this.getTagsForStencil(gn, '', dt + 'lifecycle time folder loading').join(' ')), 504 this.createVertexTemplateEntry(n + 'thumbs_up', 505 s * 100, s * 100, null, 'Thumbs Up', null, null, this.getTagsForStencil(gn, '', dt + 'thumbs up').join(' ')), 506 this.createVertexTemplateEntry(n + 'loading_2', 507 s * 93, s * 100, null, 'Loading', null, null, this.getTagsForStencil(gn, '', dt + 'loading').join(' ')), 508 this.createVertexTemplateEntry(n + 'internet_connection', 509 s * 100, s * 83, null, 'Internet Connection', null, null, this.getTagsForStencil(gn, '', dt + 'internet connection').join(' ')), 510 this.createVertexTemplateEntry(n + 'check_scale', 511 s * 100, s * 75, null, 'Check Scale', null, null, this.getTagsForStencil(gn, '', dt + 'check scale').join(' ')), 512 this.createVertexTemplateEntry(n + 'load_balancing', 513 s * 100, s * 26, null, 'Load Balancing', null, null, this.getTagsForStencil(gn, '', dt + 'load balancing').join(' ')), 514 this.createVertexTemplateEntry(n + 'cloud_messaging', 515 s * 100, s * 64, null, 'Cloud Messaging', null, null, this.getTagsForStencil(gn, '', dt + 'cloud messaging').join(' ')), 516 this.createVertexTemplateEntry(n + 'memory_card', 517 s * 93, s * 100, null, 'Memory Card', null, null, this.getTagsForStencil(gn, '', dt + 'memory card').join(' ')), 518 this.createVertexTemplateEntry(n + 'admin_connected', 519 s * 100, s * 100, null, 'Admin Connected', null, null, this.getTagsForStencil(gn, '', dt + 'admin connected').join(' ')), 520 this.createVertexTemplateEntry('sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#3B8DF1;shape=ellipse', 521 s * 100, s * 100, null, 'Images Service', null, null, this.getTagsForStencil(gn, '', dt + 'images service').join(' ')), 522 this.createVertexTemplateEntry(n + 'task_queues_2', 523 s * 100, s * 61, null, 'Task Queues', null, null, this.getTagsForStencil(gn, '', dt + 'task queues').join(' ')), 524 this.createVertexTemplateEntry(n + 'systems_check', 525 s * 99, s * 100, null, 'Systems Check', null, null, this.getTagsForStencil(gn, '', dt + 'systems check').join(' ')), 526 this.createVertexTemplateEntry(n + 'google_network', 527 s * 100, s * 100, null, 'Google Network', null, null, this.getTagsForStencil(gn, '', dt + 'google network').join(' ')), 528 this.createVertexTemplateEntry(n + 'check_2', 529 s * 100, s * 100, null, 'Check', null, null, this.getTagsForStencil(gn, '', dt + 'check').join(' ')), 530 this.createVertexTemplateEntry(n + 'people_security_management', 531 s * 100, s * 100, null, 'People Security Management', null, null, this.getTagsForStencil(gn, '', dt + 'people security management').join(' ')), 532 this.createVertexTemplateEntry(n + 'search_api', 533 s * 100, s * 100, null, 'Search API', null, null, this.getTagsForStencil(gn, '', dt + 'search api application programming interface').join(' ')), 534 this.createVertexTemplateEntry(n + 'management_security', 535 s * 100, s * 100, null, 'Management Security', null, null, this.getTagsForStencil(gn, '', dt + 'management security').join(' ')), 536 this.createVertexTemplateEntry(n + 'loading_3', 537 s * 100, s * 100, null, 'Loading', null, null, this.getTagsForStencil(gn, '', dt + 'loading').join(' ')), 538 this.createVertexTemplateEntry(n + 'stacked_ownership', 539 s * 100, s * 100, null, 'Stacked Ownership', null, null, this.getTagsForStencil(gn, '', dt + 'stacked ownership').join(' ')), 540 this.createVertexTemplateEntry(n + 'vpn', 541 s * 100, s * 50, null, 'VPN', null, null, this.getTagsForStencil(gn, '', dt + 'vpn virtual private network').join(' ')), 542 this.createVertexTemplateEntry(n + 'node', 543 s * 80, s * 100, null, 'Node', null, null, this.getTagsForStencil(gn, '', dt + 'node').join(' ')), 544 this.createVertexTemplateEntry(n + 'service', 545 s * 70, s * 100, null, 'Service', null, null, this.getTagsForStencil(gn, '', dt + 'service').join(' ')), 546 this.createVertexTemplateEntry('sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.external_data_center', 547 s * 77, s * 100, null, 'External Data Center', null, null, this.getTagsForStencil(gn, '', dt + 'external data center').join(' ')), 548 this.createVertexTemplateEntry('sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.external_data_resource', 549 s * 79, s * 100, null, 'External Data Resource', null, null, this.getTagsForStencil(gn, '', dt + 'external data resource').join(' ')), 550 this.createVertexTemplateEntry('sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.legacy_cloud', 551 s * 100, s * 69, null, 'Legacy Cloud', null, null, this.getTagsForStencil(gn, '', dt + 'legacy cloud').join(' ')), 552 this.createVertexTemplateEntry('sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.legacy_cloud_2', 553 s * 100, s * 69, null, 'Legacy Cloud', null, null, this.getTagsForStencil(gn, '', dt + 'legacy cloud').join(' ')), 554 this.createVertexTemplateEntry(n + 'mem_instances', 555 s * 100, s * 87, null, 'Mem Instances', null, null, this.getTagsForStencil(gn, '', dt + 'mem instances').join(' ')) 556 ]; 557 558 this.addPalette('gcp2General Icons', 'GCP / General Icons', false, mxUtils.bind(this, function(content) 559 { 560 for (var i = 0; i < fns.length; i++) 561 { 562 content.appendChild(fns[i](content)); 563 } 564 })); 565 }; 566 567 Sidebar.prototype.addGCP2ServiceCardsPalette = function() 568 { 569 var dt = 'gcp google cloud platform service cards '; 570 var fns = []; 571 572 this.addGCP2ServiceCard('Gateway', 'gateway', 100, 44, dt + 'gateway', fns); 573 this.addGCP2ServiceCard('Memcache', 'memcache', 110, 44, dt + 'memcache', fns); 574 this.addGCP2ServiceCard('Logs API', 'logs_api', 100, 44, dt + 'logs api application programming interface', fns); 575 this.addGCP2ServiceCard('Cluster', 'cluster', 90, 44, dt + 'cluster', fns);//TODO fix parser or source 576 this.addGCP2ServiceCard('NAT', 'nat', 80, 44, dt + 'nat network address translation', fns); 577 this.addGCP2ServiceCard('Squid Proxy', 'squid_proxy', 120, 44, dt + 'squid proxy', fns); 578 this.addGCP2ServiceCard('Bucket', 'bucket', 100, 44, dt + 'bucket', fns); 579 this.addGCP2ServiceCard('Service Discovery', 'service_discovery', 150, 44, dt + 'service discovery', fns); 580 this.addGCP2ServiceCard('Task\nQueues', 'task_queues', 90, 44, dt + 'task queues', fns); 581 this.addGCP2ServiceCard('Image\nServices', 'image_services', 100, 44, dt + 'image services', fns); 582 this.addGCP2ServiceCard('Dedicated\nGame Server', 'dedicated_game_server', 120, 44, dt + 'dedicated game server', fns); 583 this.addGCP2ServiceCard('Frontend\nPlatform Services', 'frontend_platform_services', 150, 44, dt + 'frontend platform services', fns); 584 this.addGCP2ServiceCard('Google\nEdge POP', 'google_network_edge_cache', 110, 56, dt + 'google edge pop point of presence', fns); 585 this.addGCP2ServiceCard('External\nPayment Form', 'external_payment_form', 130, 44, dt + 'external payment form', fns); 586 this.addGCP2ServiceCard('Internal Payment\nAuthorization', 'internal_payment_authorization', 150, 44, dt + 'internal payment authorization', fns); 587 this.addGCP2ServiceCard('VPN Gateway', 'gateway', 130, 44, dt + 'vpn gateway virtual private network', fns); 588 this.addGCP2ServiceCard('Application\nSystem(s)', 'application_system', 110, 44, dt + 'application system systems', fns); 589 this.addGCP2ServiceCard('Virtual\nFile System', 'virtual_file_system', 110, 44, dt + 'virtual file system', fns); 590 this.addGCP2ServiceCard('CDN\nInterconnect', 'google_network_edge_cache', 120, 44, dt + 'cdn content delivery network interconnect', fns); 591 this.addGCP2ServiceCard('Scheduled\nTasks', 'scheduled_tasks', 110, 44, dt + 'scheduled tasks', fns); 592 this.addGCP2ServiceCard('HTTPS\nLoad Balancer', 'network_load_balancer', 130, 44, dt + 'https secure load balancer', fns); 593 this.addGCP2ServiceCard('Persistent\nDisk Snapshot', 'persistent_disk_snapshot', 130, 44, dt + 'persistent disk snapshot', fns); 594 this.addGCP2ServiceCard('Persistent\nDisk', 'persistent_disk_snapshot', 110, 44, dt + 'persistent disk', fns); 595 this.addGCP2ServiceCard('Network\nLoad\nBalancer', 'network_load_balancer', 100, 56, dt + 'network load balancer', fns); 596 this.addGCP2ServiceCard('Google\n Network W/\nEdge Cache', 'google_network_edge_cache', 120, 56, dt + 'google network witch edge cache', fns); 597 this.addGCP2ServiceCard('Push\nNotification\nService', 'push_notification_service', 110, 56, dt + 'push notification service', fns); 598 this.addGCP2ServiceCard('Blank One Line', 'blank', 140, 44, dt + 'blank one line', fns); 599 600 fns.push( 601 this.addEntry(dt + 'blank one line', function() 602 { 603 var bg = new mxCell('Blank One Line', new mxGeometry(0, 0, 100, 44), 'dashed=0;strokeColor=#dddddd;shadow=1;strokeWidth=1;labelPosition=center;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontSize=12;'); 604 bg.vertex = true; 605 606 return sb.createVertexTemplateFromCells([bg], 100, 44, 'Blank One Line'); 607 }) 608 ); 609 610 this.addGCP2ServiceCard('Blank Two\n\& Three Line', 'blank', 120, 44, dt + 'blank two and three line', fns); 611 612 fns.push( 613 this.addEntry(dt + 'blank two and three line', function() 614 { 615 var bg = new mxCell('Blank Two\n\& Three Line', new mxGeometry(0, 0, 90, 44), 'dashed=0;strokeColor=#dddddd;shadow=1;strokeWidth=1;labelPosition=center;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontSize=12;'); 616 bg.vertex = true; 617 618 return sb.createVertexTemplateFromCells([bg], 100, 44, 'Blank One Line'); 619 }) 620 ); 621 622 this.addPalette('gcp2Service Cards', 'GCP / Service Cards', false, mxUtils.bind(this, function(content) 623 { 624 for (var i = 0; i < fns.length; i++) 625 { 626 content.appendChild(fns[i](content)); 627 } 628 })); 629 }; 630 631 Sidebar.prototype.addGCP2ComputePalette = function() 632 { 633 var dt = 'gcp google cloud platform compute '; 634 var fns = []; 635 636 this.addGCP2CardSet('Compute\nEngine', 'compute_engine', 110, 160, dt + 'compute engine', fns); 637 this.addGCP2CardSet('GPU', 'gpu', 90, 100, dt + 'gpu graphics processing unit', fns); 638 this.addGCP2CardSet('App\nEngine', 'app_engine', 100, 130, dt + 'app engine application', fns); 639 this.addGCP2CardSet('Cloud\nFunctions', 'cloud_functions', 120, 150, dt + 'functions', fns); 640 this.addGCP2CardSet('Kubernetes\nEngine', 'container_engine', 130, 170, dt + 'kubernetes engine', fns); 641 this.addGCP2CardSet('Container-\nOptimized OS', 'container_optimized_os', 140, 200, dt + 'container optimized os operating system', fns); 642 this.addGCP2CardSet('Cloud Run', 'cloud_run', 120, 120, dt + 'cloud run', fns); 643 this.addGCP2CardSet('GKE-on-Prem', 'gke_on_prem', 140, 140, dt + 'gke on prem premise', fns); 644 645 this.addPalette('gcp2Compute', 'GCP / Compute', false, mxUtils.bind(this, function(content) 646 { 647 for (var i = 0; i < fns.length; i++) 648 { 649 content.appendChild(fns[i](content)); 650 } 651 })); 652 }; 653 654 Sidebar.prototype.addGCP2APIManagementPalette = function() 655 { 656 var dt = 'gcp google cloud platform api management '; 657 var fns = []; 658 659 this.addGCP2CardSet('API\nAnalytics', 'api_analytics', 110, 140, dt + 'api analytics application programming interface', fns); 660 this.addGCP2CardSet('Apigee\nSense', 'apigee_sense', 100, 140, dt + 'apigee sense', fns); 661 this.addGCP2CardSet('API\nMonetization', 'api_monetization', 130, 160, dt + 'api monetization application programming interface', fns); 662 this.addGCP2CardSet('Cloud\nEndpoints', 'cloud_endpoints', 120, 150, dt + 'cloud endpoints', fns); 663 this.addGCP2CardSet('Apigee API\nPlatform', 'apigee_api_platform', 130, 170, dt + 'apigee api platform application programming interface', fns); 664 this.addGCP2CardSet('Developer\nPortal', 'developer_portal', 120, 160, dt + 'developer portal', fns); 665 666 this.addPalette('gcp2API Management', 'GCP / API Management', false, mxUtils.bind(this, function(content) 667 { 668 for (var i = 0; i < fns.length; i++) 669 { 670 content.appendChild(fns[i](content)); 671 } 672 })); 673 }; 674 675 Sidebar.prototype.addGCP2SecurityPalette = function() 676 { 677 var dt = 'gcp google cloud platform security '; 678 var fns = []; 679 680 this.addGCP2CardSet('Cloud\nIAM', 'cloud_iam', 100, 120, dt + 'cloud iam', fns); 681 this.addGCP2CardSet('BeyondCorp', 'beyondcorp', 130, 130, dt + 'beyondcorp', fns); 682 this.addGCP2CardSet('Cloud Resource\nManager', 'cloud_iam', 150, 200, dt + 'cloud resource manager', fns); 683 this.addGCP2CardSet('Data Loss\nPrevention API', 'data_loss_prevention_api', 140, 200, dt + 'data loss prevention api application programming interface', fns); 684 this.addGCP2CardSet('Cloud Security\nScanner', 'cloud_security_scanner', 140, 190, dt + 'cloud security scanner', fns); 685 this.addGCP2CardSet('Key Management\nService', 'key_management_service', 160, 200, dt + 'key management service', fns); 686 this.addGCP2CardSet('Identity-Aware\nProxy', 'identity_aware_proxy', 140, 180, dt + 'identity aware proxy', fns); 687 this.addGCP2CardSet('Cloud Security\nCommand Center', 'cloud_security_command_center', 160, 240, dt + 'cloud security command center', fns); 688 this.addGCP2CardSet('Security Key\nEnforcement', 'security_key_enforcement', 130, 200, dt + 'security key enforcement', fns); 689 690 this.addPalette('gcp2Security', 'GCP / Security', false, mxUtils.bind(this, function(content) 691 { 692 for (var i = 0; i < fns.length; i++) 693 { 694 content.appendChild(fns[i](content)); 695 } 696 })); 697 }; 698 699 Sidebar.prototype.addGCP2DataAnalyticsPalette = function() 700 { 701 var dt = 'gcp google cloud platform data analytics '; 702 var fns = []; 703 704 this.addGCP2CardSet('BigQuery', 'bigquery', 120, 120, dt + 'bigquery', fns); 705 this.addGCP2CardSet('Cloud\nDatalab', 'cloud_datalab', 110, 140, dt + 'datalab', fns); 706 this.addGCP2CardSet('Cloud\nDataflow', 'cloud_dataflow', 110, 150, dt + 'dataflow', fns); 707 this.addGCP2CardSet('Cloud\nPub/Sub', 'cloud_pubsub', 110, 150, dt + 'pub sub', fns); 708 this.addGCP2CardSet('Cloud\nDataproc', 'cloud_dataproc', 110, 150, dt + 'dataproc', fns); 709 this.addGCP2CardSet('Genomics', 'genomics', 120, 120, dt + 'genomics', fns); 710 this.addGCP2CardSet('Cloud\nDataprep', 'cloud_dataprep', 110, 150, dt + 'dataprep', fns); 711 this.addGCP2CardSet('Cloud\nComposer', 'cloud_composer', 120, 150, dt + 'cloud composer', fns); 712 this.addGCP2CardSet('Cloud Data Catalog', 'cloud_data_catalog', 170, 170, dt + 'cloud data catalog', fns); 713 this.addGCP2CardSet('Cloud Data Fusion', 'cloud_data_fusion', 160, 160, dt + 'cloud data fusion', fns); 714 715 this.addPalette('gcp2Data Analytics', 'GCP / Data Analytics', false, mxUtils.bind(this, function(content) 716 { 717 for (var i = 0; i < fns.length; i++) 718 { 719 content.appendChild(fns[i](content)); 720 } 721 })); 722 }; 723 724 Sidebar.prototype.addGCP2DataTransferPalette = function() 725 { 726 var dt = 'gcp google cloud platform data transfer '; 727 var fns = []; 728 729 this.addGCP2CardSet('Transfer\nAppliance', 'transfer_appliance', 120, 170, dt + 'appliance', fns); 730 731 this.addPalette('gcp2Data Transfer', 'GCP / Data Transfer', false, mxUtils.bind(this, function(content) 732 { 733 for (var i = 0; i < fns.length; i++) 734 { 735 content.appendChild(fns[i](content)); 736 } 737 })); 738 }; 739 740 Sidebar.prototype.addGCP2CloudAIPalette = function() 741 { 742 var dt = 'gcp google cloud platform ai artificial intelligence '; 743 var fns = []; 744 745 this.addGCP2CardSet('Cloud Machine\nLearning', 'cloud_machine_learning', 150, 200, dt + 'cloud machine learning', fns); 746 this.addGCP2CardSet('Natural\nLanguage API', 'cloud_natural_language_api', 140, 180, dt + 'natural language api application programming interface', fns); 747 this.addGCP2CardSet('Vision\nAPI', 'cloud_vision_api', 100, 120, dt + 'vision api application programming interface', fns); 748 this.addGCP2CardSet('Translation\nAPI', 'cloud_translation_api', 120, 150, dt + 'translation api application programming interface', fns); 749 this.addGCP2CardSet('Speech\nAPI', 'cloud_speech_api', 110, 130, dt + 'speech api application programming interface', fns); 750 this.addGCP2CardSet('Jobs\nAPI', 'cloud_jobs_api', 90, 110, dt + 'jobs api application programming interface', fns); 751 this.addGCP2CardSet('Cloud Video\nIntelligence API', 'cloud_video_intelligence_api', 150, 220, dt + 'cloud video intelligence api application programming interface', fns); 752 this.addGCP2CardSet('Advanced\nSolutions Lab', 'advanced_solutions_lab', 140, 200, dt + 'advanced solutions lab', fns); 753 754 this.addPalette('gcp2Cloud AI', 'GCP / Cloud AI', false, mxUtils.bind(this, function(content) 755 { 756 for (var i = 0; i < fns.length; i++) 757 { 758 content.appendChild(fns[i](content)); 759 } 760 })); 761 }; 762 763 Sidebar.prototype.addGCP2InternetOfThingsPalette = function() 764 { 765 var dt = 'gcp google cloud platform iot internet of things '; 766 var fns = []; 767 768 this.addGCP2CardSet('Cloud\nIoT Core', 'cloud_iot_core', 110, 150, dt + 'core', fns); 769 770 this.addPalette('gcp2Internet of Things', 'GCP / Internet of Things', false, mxUtils.bind(this, function(content) 771 { 772 for (var i = 0; i < fns.length; i++) 773 { 774 content.appendChild(fns[i](content)); 775 } 776 })); 777 }; 778 779 Sidebar.prototype.addGCP2DatabasesPalette = function() 780 { 781 var dt = 'gcp google cloud platform databases '; 782 var fns = []; 783 784 this.addGCP2CardSet('Cloud\nSQL', 'cloud_sql', 100, 120, dt + 'sql', fns); 785 this.addGCP2CardSet('Cloud\nBigtable', 'cloud_bigtable', 110, 140, dt + 'bigtable', fns); 786 this.addGCP2CardSet('Cloud\nSpanner', 'cloud_spanner', 110, 150, dt + 'spanner', fns); 787 this.addGCP2CardSet('Cloud\nMemorystore', 'cloud_memorystore', 140, 170, dt + 'memorystore', fns); 788 this.addGCP2CardSet('Cloud\nFirestore', 'cloud_firestore', 110, 150, dt + 'filestore', fns); 789 this.addGCP2CardSet('Cloud\nDatastore', 'cloud_datastore', 120, 150, dt + 'datastore', fns); 790 791 this.addPalette('gcp2Databases', 'GCP / Databases', false, mxUtils.bind(this, function(content) 792 { 793 for (var i = 0; i < fns.length; i++) 794 { 795 content.appendChild(fns[i](content)); 796 } 797 })); 798 }; 799 800 Sidebar.prototype.addGCP2StoragePalette = function() 801 { 802 var dt = 'gcp google cloud platform storage '; 803 var fns = []; 804 805 this.addGCP2CardSet('Cloud\nStorage', 'cloud_storage', 110, 140, dt, fns); 806 this.addGCP2CardSet('Persistent\nDisk', 'persistent_disk', 120, 150, dt + 'persistent disk', fns); 807 this.addGCP2CardSet('Cloud\nFilestore', 'cloud_filestore', 110, 150, dt + 'filestore', fns); 808 809 this.addPalette('gcp2Storage', 'GCP / Storage', false, mxUtils.bind(this, function(content) 810 { 811 for (var i = 0; i < fns.length; i++) 812 { 813 content.appendChild(fns[i](content)); 814 } 815 })); 816 }; 817 818 Sidebar.prototype.addGCP2ManagementToolsPalette = function() 819 { 820 var dt = 'gcp google cloud platform management tools '; 821 var fns = []; 822 823 this.addGCP2CardSet('Stackdriver', 'stackdriver', 130, 130, dt + 'stackdriver', fns); 824 this.addGCP2CardSet('Debugger', 'debugger', 120, 120, dt + 'debugger', fns); 825 this.addGCP2CardSet('Monitoring', 'cloud_deployment_manager', 120, 120, dt + 'monitoring', fns); 826 this.addGCP2CardSet('Deployment\nManager', 'cloud_deployment_manager', 130, 180, dt + 'deployment manager', fns); 827 this.addGCP2CardSet('Logging', 'logging', 110, 110, dt + 'logging', fns); 828 this.addGCP2CardSet('Cloud\nConsole', 'placeholder', 110, 140, dt + 'console', fns); 829 this.addGCP2CardSet('Error\nReporting', 'error_reporting', 120, 150, dt + 'error reporting', fns); 830 this.addGCP2CardSet('Cloud\nShell', 'placeholder', 100, 130, dt + 'shell', fns); 831 this.addGCP2CardSet('Trace', 'trace', 100, 100, dt + 'trace', fns); 832 this.addGCP2CardSet('Cloud\nMobile App', 'placeholder', 130, 160, dt + 'mobile app', fns); 833 this.addGCP2CardSet('Profiler', 'profiler', 110, 110, dt + 'profiler', fns); 834 this.addGCP2CardSet('Billing\nAPI', 'placeholder', 100, 120, dt + 'billing api application programming interface', fns); 835 this.addGCP2CardSet('Cloud\nAPIs', 'cloud_apis', 100, 130, dt + 'api application programming interface', fns); 836 837 this.addPalette('gcp2Management Tools', 'GCP / Management Tools', false, mxUtils.bind(this, function(content) 838 { 839 for (var i = 0; i < fns.length; i++) 840 { 841 content.appendChild(fns[i](content)); 842 } 843 })); 844 }; 845 846 Sidebar.prototype.addGCP2NetworkingPalette = function() 847 { 848 var dt = 'gcp google cloud platform networking '; 849 var fns = []; 850 851 this.addGCP2CardSet('Virtual\nPrivate Cloud', 'virtual_private_cloud', 140, 180, dt + 'virtual private', fns); 852 this.addGCP2CardSet('Dedicated\nInterconnect', 'dedicated_interconnect', 130, 190, dt + 'dedicated interconnect', fns); 853 this.addGCP2CardSet('Cloud Load\nBalancing', 'cloud_load_balancing', 130, 180, dt + 'load balancing', fns); 854 this.addGCP2CardSet('Cloud \nDNS', 'cloud_dns', 100, 130, dt + 'dns domain name server', fns); 855 this.addGCP2CardSet('Cloud \nCDN', 'cloud_cdn', 100, 130, dt + 'cdn content delivery network', fns); 856 this.addGCP2CardSet('Cloud\nNetwork', 'cloud_network', 110, 140, dt + 'network', fns); 857 this.addGCP2CardSet('Cloud External\nIP Addresses', 'cloud_external_ip_addresses', 150, 220, dt + 'external ip addresses internet protocol', fns); 858 this.addGCP2CardSet('Cloud\nRoutes', 'cloud_routes', 100, 140, dt + 'routes', fns); 859 this.addGCP2CardSet('Cloud\nFirewall Rules', 'cloud_firewall_rules', 140, 170, dt + 'firewall rules', fns); 860 this.addGCP2CardSet('Cloud\nVPN', 'cloud_vpn', 100, 120, dt + 'vpn virtual private network', fns); 861 this.addGCP2CardSet('Cloud\nRouter', 'cloud_router', 100, 140, dt + 'router', fns); 862 this.addGCP2CardSet('Cloud\nArmor', 'cloud_armor', 100, 130, dt + 'armor', fns); 863 this.addGCP2CardSet('Standard\nNetwork Tier', 'standard_network_tier', 130, 180, dt + 'standard network tier', fns); 864 this.addGCP2CardSet('Premium\nNetwork Tier', 'premium_network_tier', 130, 180, dt + 'premium network tier', fns); 865 this.addGCP2CardSet('Partner\nInterconnect', 'partner_interconnect', 130, 180, dt + 'partner interconnect', fns); 866 867 this.addPalette('gcp2Networking', 'GCP / Networking', false, mxUtils.bind(this, function(content) 868 { 869 for (var i = 0; i < fns.length; i++) 870 { 871 content.appendChild(fns[i](content)); 872 } 873 })); 874 }; 875 876 Sidebar.prototype.addGCP2DeveloperToolsPalette = function() 877 { 878 var dt = 'gcp google cloud platform dev developer tools '; 879 var fns = []; 880 881 this.addGCP2CardSet('Cloud\nSDK', 'placeholder', 100, 120, dt + 'sdk software development kit', fns); 882 this.addGCP2CardSet('Cloud\nBuild', 'container_builder', 100, 130, dt + 'build', fns); 883 this.addGCP2CardSet('Gradle App\nEnginge Plugin', 'placeholder', 150, 210, dt + 'gradle app engine plugin application', fns); 884 this.addGCP2CardSet('Cloud Tools for\nVisual Studio', 'cloud_tools_for_powershell', 150, 220, dt + 'tools for visual studio', fns); 885 this.addGCP2CardSet('Cloud Source\nRepositories', 'placeholder', 140, 210, dt + 'cloud source repositories', fns); 886 this.addGCP2CardSet('Maven App\nEngine Plugin', 'placeholder', 140, 200, dt + 'maven app engine plugin', fns); 887 this.addGCP2CardSet('Cloud Tools\nfor Eclipse', 'placeholder', 130, 190, dt + 'tools for eclipse', fns); 888 this.addGCP2CardSet('Cloud Tools\nfor IntelliJ', 'placeholder', 130, 180, dt + 'tools for intellij', fns); 889 this.addGCP2CardSet('Cloud\nTest Lab', 'placeholder', 110, 150, dt + 'test lab', fns); 890 this.addGCP2CardSet('Cloud Tools for\nPowerShell', 'cloud_tools_for_powershell', 150, 210, dt + 'tools for powershell', fns); 891 this.addGCP2CardSet('IDE Plugins', 'cloud_tools_for_powershell', 130, 130, dt + 'ide plugins integrated development environment', fns); 892 this.addGCP2CardSet('Container\nRegistry', 'container_registry', 120, 160, dt + 'container registry', fns); 893 894 this.addPalette('gcp2Developer Tools', 'GCP / Developer Tools', false, mxUtils.bind(this, function(content) 895 { 896 for (var i = 0; i < fns.length; i++) 897 { 898 content.appendChild(fns[i](content)); 899 } 900 })); 901 }; 902 903 Sidebar.prototype.addGCP2ExpandedProductCardsPalette = function() 904 { 905 var dt = 'gcp google cloud platform expanded product cards '; 906 var fns = []; 907 908 this.addGCP2ExpandedProductCardSet('Compute Engine', 'compute_engine', 150, dt + 'compute engine', fns); 909 this.addGCP2ExpandedProductCardSet('BigQuery', 'bigquery', 140, dt + 'bigquery', fns); 910 this.addGCP2ExpandedProductCardSet('App Engine', 'app_engine', 140, dt + 'app application engine', fns); 911 this.addGCP2ExpandedProductCardSet('Cloud Dataflow', 'cloud_dataflow', 150, dt + 'cloud dataflow', fns); 912 this.addGCP2ExpandedProductCardSet('Kubernetes Engine', 'container_engine', 170, dt + 'kubernetes engine', fns); 913 this.addGCP2ExpandedProductCardSet('Cloud Storage', 'cloud_storage', 140, dt + 'cloud storage', fns); 914 this.addGCP2ExpandedProductCardSet('Cloud Bigtable', 'cloud_bigtable', 140, dt + 'cloud bigtable', fns); 915 this.addGCP2ExpandedProductCardSet('Cloud Pub/Sub', 'cloud_pubsub', 150, dt + 'cloud pub sub', fns); 916 this.addGCP2ExpandedProductCardSet('Cloud SQL', 'cloud_sql', 140, dt + 'cloud sql', fns); 917 918 this.addGCP2ExpandedMachineCard('App Engine', 'app_engine_icon', 1, 0.84, '10GB PD', '1', 'modifiers_standard_machine', '1', 'modifiers_storage', '1', 'modifiers_autoscaling', 150, dt + 'app engine machine', fns); 919 this.addGCP2ExpandedMachineCard('Cloud Dataflow', 'cloud_dataflow_icon', 0.72, 1, '10GB PD', '1', 'modifiers_standard_machine', '1', 'modifiers_storage', '1', 'modifiers_autoscaling', 150, dt + 'app engine machine', fns); 920 this.addGCP2ExpandedMachineCard('Kubernetes Engine', 'container_engine_icon', 0.88, 1, '10GB PD', '1', 'modifiers_standard_machine', '1', 'modifiers_storage', '1', 'modifiers_autoscaling', 150, dt + 'app engine machine', fns); 921 this.addGCP2ExpandedMachineCard('Cloud Dataproc', 'cloud_dataproc_icon', 1, 0.92, '10GB PD', '1', 'modifiers_standard_machine', '1', 'modifiers_storage', '1', 'modifiers_autoscaling', 150, dt + 'app engine machine', fns); 922 this.addGCP2ExpandedMachineCard('Compute Engine', 'compute_engine_icon', 1, 1, '10GB PD', '1', 'modifiers_standard_machine', '1', 'modifiers_storage', '1', 'modifiers_autoscaling', 150, dt + 'app engine machine', fns); 923 924 this.addPalette('gcp2Expanded Product Cards', 'GCP / Expanded Product Cards', false, mxUtils.bind(this, function(content) 925 { 926 for (var i = 0; i < fns.length; i++) 927 { 928 content.appendChild(fns[i](content)); 929 } 930 })); 931 }; 932 933 Sidebar.prototype.addGCP2UserDeviceCardsPalette = function() 934 { 935 var dt = 'gcp google cloud platform user and device cards '; 936 var fns = []; 937 938 this.addGCP2UserDeviceCard('Application', 'application', 1, 0.8, 0, dt + 'application', fns); 939 this.addGCP2UserDeviceCard('Beacon', 'beacon', 0.73, 1, 0, dt + 'beacon', fns); 940 this.addGCP2UserDeviceCard('Circuit-Board', 'circuit_board', 1, 0.9, 15, dt + 'circuit board', fns); 941 this.addGCP2UserDeviceCard('Database', 'database', 1, 0.9, 0, dt + 'database db', fns); 942 this.addGCP2UserDeviceCard('Desktop', 'desktop', 1, 0.9, 0, dt + 'desktop', fns); 943 this.addGCP2UserDeviceCard('Desktop and Mobile', 'desktop_and_mobile', 1, 0.66, 15, dt + 'desktop and mobile', fns); 944 this.addGCP2UserDeviceCard('Game', 'game', 1, 0.54, 0, dt + 'game', fns); 945 this.addGCP2UserDeviceCard('Gateway', 'gateway_icon', 1, 0.44, 0, dt + 'gateway icon', fns); 946 this.addGCP2UserDeviceCard('Laptop', 'laptop', 1, 0.66, 0, dt + 'laptop', fns); 947 this.addGCP2UserDeviceCard('Lightbulb', 'lightbulb', 0.7, 1, 0, dt + 'lighbulb', fns); 948 this.addGCP2UserDeviceCard('List', 'list', 0.89, 1, 0, dt + 'list', fns); 949 this.addGCP2UserDeviceCard('Live', 'live', 0.74, 1, 0, dt + 'live', fns); 950 this.addGCP2UserDeviceCard('Local-Compute', 'compute_engine_icon', 1, 0.89, 15, dt + 'local compute', fns); 951 this.addGCP2UserDeviceCard('Mobile Devices', 'mobile_devices', 1, 0.73, 15, dt + 'mobile devices', fns); 952 this.addGCP2UserDeviceCard('Payment', 'payment', 1, 0.8, 0, dt + 'payment', fns); 953 this.addGCP2UserDeviceCard('Phone', 'phone', 0.64, 1, 0, dt + 'phone', fns); 954 this.addGCP2UserDeviceCard('Record', 'record', 1, 0.66, 0, dt + 'record', fns); 955 this.addGCP2UserDeviceCard('Report', 'report', 1, 1, 0, dt + 'report', fns); 956 this.addGCP2UserDeviceCard('Retail', 'retail', 1, 0.89, 0, dt + 'retail', fns); 957 this.addGCP2UserDeviceCard('Speaker', 'speaker', 0.7, 1, 0, dt + 'speaker', fns); 958 this.addGCP2UserDeviceCard('Storage', 'storage', 1, 0.8, 0, dt + 'storage', fns); 959 this.addGCP2UserDeviceCard('Stream', 'stream', 1, 0.82, 0, dt + 'stream', fns); 960 this.addGCP2UserDeviceCard('Users', 'users', 1, 0.63, 0, dt + 'users', fns); 961 this.addGCP2UserDeviceCard('Webcam', 'webcam', 0.5, 1, 0, dt + 'webcam', fns); 962 963 this.addPalette('gcp2User Device Cards', 'GCP / User and Device Cards', false, mxUtils.bind(this, function(content) 964 { 965 for (var i = 0; i < fns.length; i++) 966 { 967 content.appendChild(fns[i](content)); 968 } 969 })); 970 }; 971 972 973 Sidebar.prototype.addGCP2ProductCardsPalette = function() 974 { 975 var dt = 'gcp google cloud platform product '; 976 var fns = []; 977 978 this.addGCP2ProductCardSet('Kubernetes', 'kubernetes_logo', 1, 0.97, 130, 130, dt + 'kubernetes', fns); 979 this.addGCP2ProductCardSet('TensorFlow', 'tensorflow_logo', 0.94, 1, 130, 130, dt + 'tensorflow', fns); 980 this.addGCP2ProductCardSet('Forseti\nSecurity', 'forseti_logo', 0.98, 1, 110, 150, dt + 'forseti', fns); 981 this.addGCP2ProductCardSet('Istio', 'istio_logo', 0.67, 1, 80, 90, dt + 'forseti', fns); 982 this.addGCP2ProductCardSet('Firebase', 'firebase', 0.72, 1, 100, 100, dt + 'firebase', fns); 983 this.addGCP2ProductCardSet('Fastly', 'fastly', 1, 0.39, 100, 100, dt + 'fastly', fns); 984 this.addGCP2ProductCardSet('AdMob', 'admob', 1, 1, 110, 110, dt + 'admob', fns); 985 this.addGCP2ProductCardSet('Google Play\nGame Services', 'google_play_game_service', 1, 0.69, 150, 220, dt + 'google play game services', fns); 986 this.addGCP2ProductCardSet('Campaign\nManager', 'campaign_manager', 1, 1, 120, 170, dt + 'campaign manager', fns); 987 this.addGCP2ProductCardSet('Google\nAnalytics', 'google_analytics', 1, 1, 120, 160, dt + 'google analytics', fns); 988 this.addGCP2ProductCardSet('Google\nAds', 'google_ads', 1, 1, 100, 130, dt + 'google ads', fns); 989 this.addGCP2ProductCardSet('Avere Physical\nAppliance', 'avere', 1, 0.33, 150, 200, dt + 'avere physical appliance', fns); 990 this.addGCP2ProductCardSet('Google\nAnalytics 360', 'google_analytics_360', 1, 0.98, 140, 180, dt + 'google analytics 360', fns); 991 this.addGCP2ProductCardSet('Google Ad\nManager', 'google_ad_manager', 1, 1, 120, 170, dt + 'google ad manager', fns); 992 993 this.addPalette('gcp2Product Cards', 'GCP / Product Cards', false, mxUtils.bind(this, function(content) 994 { 995 for (var i = 0; i < fns.length; i++) 996 { 997 content.appendChild(fns[i](content)); 998 } 999 })); 1000 }; 1001 1002 Sidebar.prototype.addGCP2IconsAIMachineLearningPalette = function() 1003 { 1004 var sb = this; 1005 var s = 1.5; 1006 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1007 var dt = 'gcp google cloud platform icons icon ai machine learning '; 1008 var gn = 'mxgraph.gcp2'; 1009 var fns = []; 1010 1011 var fns = [ 1012 this.createVertexTemplateEntry(n + 'cloud_machine_learning', 1013 s * 44, s * 39, 'AI Platform', null, null, null, this.getTagsForStencil(gn, '', dt + 'ai artificial intelligence platform').join(' ')), 1014 this.createVertexTemplateEntry(n + 'cloud_vision_api', 1015 s * 44, s * 39, 'Cloud\nVision API', null, null, null, this.getTagsForStencil(gn, '', dt + 'vision api application programming interface').join(' ')), 1016 this.createVertexTemplateEntry(n + 'cloud_speech_api', 1017 s * 44, s * 39, 'Cloud\nSpeech-to-Text', null, null, null, this.getTagsForStencil(gn, '', dt + 'speech to text').join(' ')), 1018 this.createVertexTemplateEntry(n + 'cloud_video_intelligence_api', 1019 s * 44, s * 39, 'Cloud Video\nIntelligence\nAPI', null, null, null, this.getTagsForStencil(gn, '', dt + 'compute engine').join(' ')), 1020 this.createVertexTemplateEntry(n + 'cloud_automl', 1021 s * 44, s * 39, 'Cloud\nAutoML', null, null, null, this.getTagsForStencil(gn, '', dt + 'automl').join(' ')), 1022 this.createVertexTemplateEntry(n + 'cloud_tpu', 1023 s * 44, s * 39, 'Cloud TPU', null, null, null, this.getTagsForStencil(gn, '', dt + 'tpu').join(' ')), 1024 this.createVertexTemplateEntry(n + 'cloud_natural_language_api', 1025 s * 44, s * 39, 'Cloud Natural\nLanguage API', null, null, null, this.getTagsForStencil(gn, '', dt + 'natural language api application programming interface').join(' ')), 1026 this.createVertexTemplateEntry(n + 'cloud_translation_api', 1027 s * 44, s * 39, 'Cloud\nTranslation\nAPI', null, null, null, this.getTagsForStencil(gn, '', dt + 'translation api application programming interface').join(' ')), 1028 this.createVertexTemplateEntry(n + 'cloud_jobs_api', 1029 s * 44, s * 39, 'Cloud\nJobs API', null, null, null, this.getTagsForStencil(gn, '', dt + 'jobs api application programming interface').join(' ')), 1030 this.createVertexTemplateEntry(n + 'advanced_solutions_lab', 1031 s * 44, s * 39, 'Advanced\nSolutions Lab', null, null, null, this.getTagsForStencil(gn, '', dt + 'advanced solutions lab').join(' ')), 1032 this.createVertexTemplateEntry(n + 'cloud_text_to_speech', 1033 s * 44, s * 39, 'Cloud\nText-to-Speech', null, null, null, this.getTagsForStencil(gn, '', dt + 'text to speech').join(' ')), 1034 this.createVertexTemplateEntry(n + 'dialogflow_enterprise_edition', 1035 s * 44, s * 39, 'Dialogflow\nEnterprise\nEdition', null, null, null, this.getTagsForStencil(gn, '', dt + 'dialogflow enterprise edition').join(' ')), 1036 this.createVertexTemplateEntry(n + 'ai_hub', 1037 s * 44, s * 39, 'AI Hub', null, null, null, this.getTagsForStencil(gn, '', dt + 'ai artificial intelligence hub').join(' ')), 1038 this.createVertexTemplateEntry(n + 'automl_video_intelligence', 1039 s * 44, s * 39, 'AutoML Video\nIntelligence', null, null, null, this.getTagsForStencil(gn, '', dt + 'automl video intelligence').join(' ')), 1040 this.createVertexTemplateEntry(n + 'automl_natural_language', 1041 s * 44, s * 39, 'AutoML Natural\nLanguage', null, null, null, this.getTagsForStencil(gn, '', dt + 'automl natural language').join(' ')), 1042 this.createVertexTemplateEntry(n + 'automl_tables', 1043 s * 44, s * 39, 'AutoML Tables', null, null, null, this.getTagsForStencil(gn, '', dt + 'automl tables').join(' ')), 1044 this.createVertexTemplateEntry(n + 'automl_translation', 1045 s * 44, s * 39, 'AutoML\nTranslation', null, null, null, this.getTagsForStencil(gn, '', dt + 'automl translation').join(' ')), 1046 this.createVertexTemplateEntry(n + 'automl_vision', 1047 s * 44, s * 39, 'AutoML Vision', null, null, null, this.getTagsForStencil(gn, '', dt + 'automl vision').join(' ')), 1048 this.createVertexTemplateEntry(n + 'recommendations_ai', 1049 s * 44, s * 39, 'Recommendations\nAI', null, null, null, this.getTagsForStencil(gn, '', dt + 'recommendations ai artificial intelligence').join(' ')), 1050 this.createVertexTemplateEntry(n + 'cloud_inference_api', 1051 s * 44, s * 39, 'Cloud\nInference API', null, null, null, this.getTagsForStencil(gn, '', dt + 'cloud inference api application programming interface').join(' ')), 1052 this.createVertexTemplateEntry(n + 'placeholder', 1053 s * 44, s * 39, 'AI Platform\nData Labeling\nService', null, null, null, this.getTagsForStencil(gn, '', dt + 'ai artificial intelligence platform data labeling service').join(' ')), 1054 this.createVertexTemplateEntry(n + 'placeholder', 1055 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1056 ]; 1057 1058 this.addPalette('gcp2Icons AI Machine Learning', 'GCP Icons / AI and Machine Learning', false, mxUtils.bind(this, function(content) 1059 { 1060 for (var i = 0; i < fns.length; i++) 1061 { 1062 content.appendChild(fns[i](content)); 1063 } 1064 })); 1065 }; 1066 1067 Sidebar.prototype.addGCP2IconsComputePalette = function() 1068 { 1069 var sb = this; 1070 var s = 1.5; 1071 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1072 var dt = 'gcp google cloud platform icons icon compute '; 1073 var gn = 'mxgraph.gcp2'; 1074 var fns = []; 1075 1076 var fns = [ 1077 this.createVertexTemplateEntry(n + 'compute_engine', 1078 s * 44, s * 39, 'Compute\nEngine', null, null, null, this.getTagsForStencil(gn, '', dt + 'compute engine').join(' ')), 1079 this.createVertexTemplateEntry(n + 'app_engine', 1080 s * 44, s * 39, 'App\nEngine', null, null, null, this.getTagsForStencil(gn, '', dt + 'app engine').join(' ')), 1081 this.createVertexTemplateEntry(n + 'container_engine', 1082 s * 44, s * 39, 'Kubernetes\nEngine', null, null, null, this.getTagsForStencil(gn, '', dt + 'kubernetes engine').join(' ')), 1083 this.createVertexTemplateEntry(n + 'cloud_run', 1084 s * 44, s * 39, 'Cloud Run', null, null, null, this.getTagsForStencil(gn, '', dt + 'cloud run').join(' ')), 1085 this.createVertexTemplateEntry(n + 'gpu', 1086 s * 44, s * 39, 'GPU', null, null, null, this.getTagsForStencil(gn, '', dt + 'gpu graphics processing unit').join(' ')), 1087 this.createVertexTemplateEntry(n + 'cloud_functions', 1088 s * 44, s * 39, 'Cloud\nFunctions', null, null, null, this.getTagsForStencil(gn, '', dt + 'functions').join(' ')), 1089 this.createVertexTemplateEntry(n + 'container_optimized_os', 1090 s * 44, s * 39, 'Container-\nOptimized OS', null, null, null, this.getTagsForStencil(gn, '', dt + 'container optimized os operating system').join(' ')), 1091 this.createVertexTemplateEntry(n + 'gke_on_prem', 1092 s * 44, s * 39, 'Cloud Run', null, null, null, this.getTagsForStencil(gn, '', dt + 'cloud run').join(' ')), 1093 this.createVertexTemplateEntry(n + 'placeholder', 1094 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1095 ]; 1096 1097 this.addPalette('gcp2Icons Compute', 'GCP Icons / Compute', false, mxUtils.bind(this, function(content) 1098 { 1099 for (var i = 0; i < fns.length; i++) 1100 { 1101 content.appendChild(fns[i](content)); 1102 } 1103 })); 1104 }; 1105 1106 Sidebar.prototype.addGCP2IconsDataAnalyticsPalette = function() 1107 { 1108 var sb = this; 1109 var s = 1.5; 1110 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1111 var dt = 'gcp google cloud platform icons icon data analytics '; 1112 var gn = 'mxgraph.gcp2'; 1113 var fns = []; 1114 1115 var fns = [ 1116 this.createVertexTemplateEntry(n + 'bigquery', 1117 s * 44, s * 39, 'BigQuery', null, null, null, this.getTagsForStencil(gn, '', dt + 'bigquery big query').join(' ')), 1118 this.createVertexTemplateEntry(n + 'cloud_dataflow', 1119 s * 44, s * 39, 'Cloud\nDataflow', null, null, null, this.getTagsForStencil(gn, '', dt + 'dataflow').join(' ')), 1120 this.createVertexTemplateEntry(n + 'cloud_dataproc', 1121 s * 44, s * 39, 'Cloud\nDataproc', null, null, null, this.getTagsForStencil(gn, '', dt + 'dataproc').join(' ')), 1122 this.createVertexTemplateEntry(n + 'cloud_dataprep', 1123 s * 44, s * 39, 'Cloud\nDataprep', null, null, null, this.getTagsForStencil(gn, '', dt + 'dataprep').join(' ')), 1124 this.createVertexTemplateEntry(n + 'cloud_data_catalog', 1125 s * 44, s * 39, 'Cloud Data Catalog', null, null, null, this.getTagsForStencil(gn, '', dt + 'cloud data catalog').join(' ')), 1126 this.createVertexTemplateEntry(n + 'cloud_datalab', 1127 s * 44, s * 39, 'Cloud\nDatalab', null, null, null, this.getTagsForStencil(gn, '', dt + 'datalab').join(' ')), 1128 this.createVertexTemplateEntry(n + 'cloud_pubsub', 1129 s * 44, s * 39, 'Cloud\nPub/Sub', null, null, null, this.getTagsForStencil(gn, '', dt + 'pubsub').join(' ')), 1130 this.createVertexTemplateEntry(n + 'genomics', 1131 s * 44, s * 39, 'Genomics', null, null, null, this.getTagsForStencil(gn, '', dt + 'genomics').join(' ')), 1132 this.createVertexTemplateEntry(n + 'cloud_composer', 1133 s * 44, s * 39, 'Cloud\nComposer', null, null, null, this.getTagsForStencil(gn, '', dt + 'composer').join(' ')), 1134 this.createVertexTemplateEntry(n + 'cloud_data_fusion', 1135 s * 44, s * 39, 'Cloud Data\nFusion', null, null, null, this.getTagsForStencil(gn, '', dt + 'cloud data fusion').join(' ')), 1136 this.createVertexTemplateEntry(n + 'placeholder', 1137 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1138 ]; 1139 1140 this.addPalette('gcp2Icons Data Analytics', 'GCP Icons / Data Analytics', false, mxUtils.bind(this, function(content) 1141 { 1142 for (var i = 0; i < fns.length; i++) 1143 { 1144 content.appendChild(fns[i](content)); 1145 } 1146 })); 1147 }; 1148 1149 Sidebar.prototype.addGCP2IconsManagementToolsPalette = function() 1150 { 1151 var sb = this; 1152 var s = 1.5; 1153 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1154 var dt = 'gcp google cloud platform icons icon management tools '; 1155 var gn = 'mxgraph.gcp2'; 1156 var fns = []; 1157 1158 var fns = [ 1159 this.createVertexTemplateEntry(n + 'stackdriver', 1160 s * 44, s * 39, 'Stackdriver', null, null, null, this.getTagsForStencil(gn, '', dt + 'stackdriver').join(' ')), 1161 this.createVertexTemplateEntry(n + 'cloud_deployment_manager', 1162 s * 44, s * 39, 'Monitoring', null, null, null, this.getTagsForStencil(gn, '', dt + 'monitoring').join(' ')), 1163 this.createVertexTemplateEntry(n + 'logging', 1164 s * 44, s * 39, 'Logging', null, null, null, this.getTagsForStencil(gn, '', dt + 'logging').join(' ')), 1165 this.createVertexTemplateEntry(n + 'error_reporting', 1166 s * 44, s * 39, 'Error\nReporting', null, null, null, this.getTagsForStencil(gn, '', dt + 'error reporting').join(' ')), 1167 this.createVertexTemplateEntry(n + 'trace', 1168 s * 44, s * 39, 'Trace', null, null, null, this.getTagsForStencil(gn, '', dt + 'trace').join(' ')), 1169 this.createVertexTemplateEntry(n + 'debugger', 1170 s * 44, s * 39, 'Debugger', null, null, null, this.getTagsForStencil(gn, '', dt + 'debugger').join(' ')), 1171 this.createVertexTemplateEntry(n + 'cloud_deployment_manager', 1172 s * 44, s * 39, 'Cloud\nDeployment\nManager', null, null, null, this.getTagsForStencil(gn, '', dt + 'deployment manager').join(' ')), 1173 this.createVertexTemplateEntry(n + 'cloud_apis', 1174 s * 44, s * 39, 'Cloud\nAPIs', null, null, null, this.getTagsForStencil(gn, '', dt + 'apis api application programming interface interfaces').join(' ')), 1175 this.createVertexTemplateEntry(n + 'placeholder', 1176 s * 44, s * 39, 'Cloud\nConsole', null, null, null, this.getTagsForStencil(gn, '', dt + 'console').join(' ')), 1177 this.createVertexTemplateEntry(n + 'placeholder', 1178 s * 44, s * 39, 'Cloud\nShell', null, null, null, this.getTagsForStencil(gn, '', dt + 'shell').join(' ')), 1179 this.createVertexTemplateEntry(n + 'placeholder', 1180 s * 44, s * 39, 'Cloud Mobile\nApp', null, null, null, this.getTagsForStencil(gn, '', dt + 'mobile app application').join(' ')), 1181 this.createVertexTemplateEntry(n + 'placeholder', 1182 s * 44, s * 39, 'Cloud\nBilling API', null, null, null, this.getTagsForStencil(gn, '', dt + 'billing api application programming interface').join(' ')), 1183 this.createVertexTemplateEntry(n + 'profiler', 1184 s * 44, s * 39, 'Profiler', null, null, null, this.getTagsForStencil(gn, '', dt + 'profiler').join(' ')), 1185 this.createVertexTemplateEntry(n + 'cloud_service_mesh', 1186 s * 44, s * 39, 'Cloud Service Mesh', null, null, null, this.getTagsForStencil(gn, '', dt + 'cloud service mesh').join(' ')), 1187 this.createVertexTemplateEntry(n + 'placeholder', 1188 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1189 ]; 1190 1191 this.addPalette('gcp2Icons Management Tools', 'GCP Icons / Management Tools', false, mxUtils.bind(this, function(content) 1192 { 1193 for (var i = 0; i < fns.length; i++) 1194 { 1195 content.appendChild(fns[i](content)); 1196 } 1197 })); 1198 }; 1199 1200 Sidebar.prototype.addGCP2IconsNetworkingPalette = function() 1201 { 1202 var sb = this; 1203 var s = 1.5; 1204 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1205 var dt = 'gcp google cloud platform icons icon networking '; 1206 var gn = 'mxgraph.gcp2'; 1207 var fns = []; 1208 1209 var fns = [ 1210 this.createVertexTemplateEntry(n + 'virtual_private_cloud', 1211 s * 44, s * 39, 'Virtual\nPrivate Cloud', null, null, null, this.getTagsForStencil(gn, '', dt + 'vpc virtual private').join(' ')), 1212 this.createVertexTemplateEntry(n + 'cloud_load_balancing', 1213 s * 44, s * 39, 'Cloud Load\nBalancing', null, null, null, this.getTagsForStencil(gn, '', dt + 'load balancing').join(' ')), 1214 this.createVertexTemplateEntry(n + 'cloud_cdn', 1215 s * 44, s * 39, 'Cloud\nCDN', null, null, null, this.getTagsForStencil(gn, '', dt + 'cdn').join(' ')), 1216 this.createVertexTemplateEntry(n + 'cloud_external_ip_addresses', 1217 s * 44, s * 39, 'Cloud\nExternal IP\nAddresses', null, null, null, this.getTagsForStencil(gn, '', dt + 'extrernal ip internet protocol address addresses').join(' ')), 1218 this.createVertexTemplateEntry(n + 'cloud_firewall_rules', 1219 s * 44, s * 39, 'Cloud\nFirewall Rules', null, null, null, this.getTagsForStencil(gn, '', dt + 'firewall rules rule').join(' ')), 1220 this.createVertexTemplateEntry(n + 'cloud_router', 1221 s * 44, s * 39, 'Cloud\nRouter', null, null, null, this.getTagsForStencil(gn, '', dt + 'router').join(' ')), 1222 this.createVertexTemplateEntry(n + 'dedicated_interconnect', 1223 s * 44, s * 39, 'Dedicated\nInterconnect', null, null, null, this.getTagsForStencil(gn, '', dt + 'dedicated interconnect').join(' ')), 1224 this.createVertexTemplateEntry(n + 'cloud_dns', 1225 s * 44, s * 39, 'Cloud\nDNS', null, null, null, this.getTagsForStencil(gn, '', dt + 'dns domain name server').join(' ')), 1226 this.createVertexTemplateEntry(n + 'cloud_network', 1227 s * 44, s * 39, 'Cloud\nNetwork', null, null, null, this.getTagsForStencil(gn, '', dt + 'network').join(' ')), 1228 this.createVertexTemplateEntry(n + 'cloud_routes', 1229 s * 44, s * 39, 'Cloud\nRoutes', null, null, null, this.getTagsForStencil(gn, '', dt + 'routes').join(' ')), 1230 this.createVertexTemplateEntry(n + 'cloud_vpn', 1231 s * 44, s * 39, 'Cloud VPN', null, null, null, this.getTagsForStencil(gn, '', dt + 'vpn virtual private network').join(' ')), 1232 this.createVertexTemplateEntry(n + 'partner_interconnect', 1233 s * 44, s * 39, 'Partner\nInterconnect', null, null, null, this.getTagsForStencil(gn, '', dt + 'partner interconnect').join(' ')), 1234 this.createVertexTemplateEntry(n + 'cloud_armor', 1235 s * 44, s * 39, 'Cloud Armor', null, null, null, this.getTagsForStencil(gn, '', dt + 'armor').join(' ')), 1236 this.createVertexTemplateEntry(n + 'standard_network_tier', 1237 s * 44, s * 39, 'Standard\nNetwork Tier', null, null, null, this.getTagsForStencil(gn, '', dt + 'standard network tier').join(' ')), 1238 this.createVertexTemplateEntry(n + 'premium_network_tier', 1239 s * 44, s * 39, 'Premium\nNetwork Tier', null, null, null, this.getTagsForStencil(gn, '', dt + 'premium network tier').join(' ')), 1240 this.createVertexTemplateEntry(n + 'cloud_nat', 1241 s * 44, s * 39, 'Cloud NAT', null, null, null, this.getTagsForStencil(gn, '', dt + 'nat').join(' ')), 1242 this.createVertexTemplateEntry(n + 'traffic_director', 1243 s * 44, s * 39, 'Traffic Director', null, null, null, this.getTagsForStencil(gn, '', dt + 'traffic director').join(' ')), 1244 this.createVertexTemplateEntry(n + 'placeholder', 1245 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1246 ]; 1247 1248 this.addPalette('gcp2Icons Networking', 'GCP Icons / Networking', false, mxUtils.bind(this, function(content) 1249 { 1250 for (var i = 0; i < fns.length; i++) 1251 { 1252 content.appendChild(fns[i](content)); 1253 } 1254 })); 1255 }; 1256 1257 Sidebar.prototype.addGCP2IconsDeveloperToolsPalette = function() 1258 { 1259 var sb = this; 1260 var s = 1.5; 1261 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1262 var dt = 'gcp google cloud platform icons icon developer tools '; 1263 var gn = 'mxgraph.gcp2'; 1264 var fns = []; 1265 1266 var fns = [ 1267 this.createVertexTemplateEntry(n + 'placeholder', 1268 s * 44, s * 39, 'Cloud SDK', null, null, null, this.getTagsForStencil(gn, '', dt + 'sdk software development kit').join(' ')), 1269 this.createVertexTemplateEntry(n + 'cloud_test_lab', 1270 s * 44, s * 39, 'Cloud\nTest Lab', null, null, null, this.getTagsForStencil(gn, '', dt + 'test lab').join(' ')), 1271 this.createVertexTemplateEntry(n + 'placeholder', 1272 s * 44, s * 39, 'Cloud Source\nRepositories', null, null, null, this.getTagsForStencil(gn, '', dt + 'source repositories').join(' ')), 1273 this.createVertexTemplateEntry(n + 'placeholder', 1274 s * 44, s * 39, 'Maven App\nEngine Plugin', null, null, null, this.getTagsForStencil(gn, '', dt + 'maven app engine plugin').join(' ')), 1275 this.createVertexTemplateEntry(n + 'cloud_tools_for_powershell', 1276 s * 44, s * 39, 'Cloud\nTools for\nPowerShell', null, null, null, this.getTagsForStencil(gn, '', dt + 'tools for powershell power shell').join(' ')), 1277 this.createVertexTemplateEntry(n + 'cloud_tools_for_powershell', 1278 s * 44, s * 39, 'Clout\nTools for\nVisual Studio', null, null, null, this.getTagsForStencil(gn, '', dt + 'tools for visual studio').join(' ')), 1279 this.createVertexTemplateEntry(n + 'container_registry', 1280 s * 44, s * 39, 'Container\nRegistry', null, null, null, this.getTagsForStencil(gn, '', dt + 'container registry').join(' ')), 1281 this.createVertexTemplateEntry(n + 'placeholder', 1282 s * 44, s * 39, 'Cloud Tools\nfor Eclipse', null, null, null, this.getTagsForStencil(gn, '', dt + 'tools for eclipse').join(' ')), 1283 this.createVertexTemplateEntry(n + 'cloud_tools_for_powershell', 1284 s * 44, s * 39, 'IDE Plugins', null, null, null, this.getTagsForStencil(gn, '', dt + 'ide integrated development environment plugins').join(' ')), 1285 this.createVertexTemplateEntry(n + 'placeholder', 1286 s * 44, s * 39, 'Gradle App\nEngine Plugin', null, null, null, this.getTagsForStencil(gn, '', dt + 'gradle app application engine plugin').join(' ')), 1287 this.createVertexTemplateEntry(n + 'container_builder', 1288 s * 44, s * 39, 'Cloud Build', null, null, null, this.getTagsForStencil(gn, '', dt + 'build').join(' ')), 1289 this.createVertexTemplateEntry(n + 'placeholder', 1290 s * 44, s * 39, 'Cloud Tools\nfor IntelliJ', null, null, null, this.getTagsForStencil(gn, '', dt + 'tools for intellij').join(' ')), 1291 this.createVertexTemplateEntry(n + 'cloud_code', 1292 s * 44, s * 39, 'Cloud Code', null, null, null, this.getTagsForStencil(gn, '', dt + 'code').join(' ')), 1293 this.createVertexTemplateEntry(n + 'cloud_tasks', 1294 s * 44, s * 39, 'Cloud Tasks', null, null, null, this.getTagsForStencil(gn, '', dt + 'tasks').join(' ')), 1295 this.createVertexTemplateEntry('html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;fontSize=11;fontStyle=1;fontColor=#999999;shape=mxgraph.gcp2.cloud_scheduler', 1296 s * 20, s * 23, 'Cloud Scheduler', null, null, null, this.getTagsForStencil(gn, '', dt + 'scheduler').join(' ')), 1297 this.createVertexTemplateEntry(n + 'placeholder', 1298 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1299 ]; 1300 1301 this.addPalette('gcp2Icons Developer Tools', 'GCP Icons / Developer Tools', false, mxUtils.bind(this, function(content) 1302 { 1303 for (var i = 0; i < fns.length; i++) 1304 { 1305 content.appendChild(fns[i](content)); 1306 } 1307 })); 1308 }; 1309 1310 Sidebar.prototype.addGCP2IconsAPIManagementPalette = function() 1311 { 1312 var sb = this; 1313 var s = 1.5; 1314 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1315 var dt = 'gcp google cloud platform icons icon api application programming interface management'; 1316 var gn = 'mxgraph.gcp2'; 1317 var fns = []; 1318 1319 var fns = [ 1320 this.createVertexTemplateEntry(n + 'api_analytics', 1321 s * 44, s * 39, 'API\nAnalytics', null, null, null, this.getTagsForStencil(gn, '', dt + 'api application programming interface analytics').join(' ')), 1322 this.createVertexTemplateEntry(n + 'api_monetization', 1323 s * 44, s * 39, 'API\nMonetization', null, null, null, this.getTagsForStencil(gn, '', dt + 'api application programming interface monetization').join(' ')), 1324 this.createVertexTemplateEntry(n + 'apigee_api_platform', 1325 s * 44, s * 39, 'Apigee API\nPlatform', null, null, null, this.getTagsForStencil(gn, '', dt + 'apigee api application programming interface platform').join(' ')), 1326 this.createVertexTemplateEntry(n + 'cloud_endpoints', 1327 s * 44, s * 39, 'Cloud\nEndpoints', null, null, null, this.getTagsForStencil(gn, '', dt + 'endpoints').join(' ')), 1328 this.createVertexTemplateEntry(n + 'developer_portal', 1329 s * 44, s * 39, 'Developer\nPortal', null, null, null, this.getTagsForStencil(gn, '', dt + 'developer portal').join(' ')), 1330 this.createVertexTemplateEntry(n + 'apigee_sense', 1331 s * 44, s * 39, 'Apigee\nSense', null, null, null, this.getTagsForStencil(gn, '', dt + 'apigee sense').join(' ')), 1332 this.createVertexTemplateEntry(n + 'placeholder', 1333 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1334 ]; 1335 1336 this.addPalette('gcp2Icons API Management', 'GCP Icons / API Management', false, mxUtils.bind(this, function(content) 1337 { 1338 for (var i = 0; i < fns.length; i++) 1339 { 1340 content.appendChild(fns[i](content)); 1341 } 1342 })); 1343 }; 1344 1345 Sidebar.prototype.addGCP2IconsInternetOfThingsPalette = function() 1346 { 1347 var sb = this; 1348 var s = 1.5; 1349 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1350 var dt = 'gcp google cloud platform icons icon internet of things iot '; 1351 var gn = 'mxgraph.gcp2'; 1352 var fns = []; 1353 1354 var fns = [ 1355 this.createVertexTemplateEntry(n + 'cloud_iot_core', 1356 s * 44, s * 39, 'Cloud IoT\nCore', null, null, null, this.getTagsForStencil(gn, '', dt + 'iot internet of things core').join(' ')), 1357 this.createVertexTemplateEntry(n + 'placeholder', 1358 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1359 ]; 1360 1361 this.addPalette('gcp2Icons Internet of Things', 'GCP Icons / Internet of Things', false, mxUtils.bind(this, function(content) 1362 { 1363 for (var i = 0; i < fns.length; i++) 1364 { 1365 content.appendChild(fns[i](content)); 1366 } 1367 })); 1368 }; 1369 1370 Sidebar.prototype.addGCP2IconsDatabasesPalette = function() 1371 { 1372 var sb = this; 1373 var s = 1.5; 1374 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1375 var dt = 'gcp google cloud platform icons icon databases db '; 1376 var gn = 'mxgraph.gcp2'; 1377 var fns = []; 1378 1379 var fns = [ 1380 this.createVertexTemplateEntry(n + 'cloud_bigtable', 1381 s * 44, s * 39, 'Cloud\nBigtable', null, null, null, this.getTagsForStencil(gn, '', dt + 'bigtable').join(' ')), 1382 this.createVertexTemplateEntry(n + 'cloud_datastore', 1383 s * 44, s * 39, 'Cloud\nDatastore', null, null, null, this.getTagsForStencil(gn, '', dt + 'datastore').join(' ')), 1384 this.createVertexTemplateEntry(n + 'cloud_memorystore', 1385 s * 44, s * 39, 'Cloud\nMemorystore', null, null, null, this.getTagsForStencil(gn, '', dt + 'memorystore').join(' ')), 1386 this.createVertexTemplateEntry(n + 'cloud_sql', 1387 s * 44, s * 39, 'Cloud SQL', null, null, null, this.getTagsForStencil(gn, '', dt + 'sql').join(' ')), 1388 this.createVertexTemplateEntry(n + 'cloud_spanner', 1389 s * 44, s * 39, 'Cloud\nSpanner', null, null, null, this.getTagsForStencil(gn, '', dt + 'spanner').join(' ')), 1390 this.createVertexTemplateEntry(n + 'cloud_firestore', 1391 s * 44, s * 39, 'Cloud\nFirestore', null, null, null, this.getTagsForStencil(gn, '', dt + 'firestore').join(' ')), 1392 this.createVertexTemplateEntry(n + 'placeholder', 1393 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1394 ]; 1395 1396 this.addPalette('gcp2Icons Databases', 'GCP Icons / Databases', false, mxUtils.bind(this, function(content) 1397 { 1398 for (var i = 0; i < fns.length; i++) 1399 { 1400 content.appendChild(fns[i](content)); 1401 } 1402 })); 1403 }; 1404 1405 Sidebar.prototype.addGCP2IconsStoragePalette = function() 1406 { 1407 var sb = this; 1408 var s = 1.5; 1409 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1410 var dt = 'gcp google cloud platform icons icon storage '; 1411 var gn = 'mxgraph.gcp2'; 1412 var fns = []; 1413 1414 var fns = [ 1415 this.createVertexTemplateEntry(n + 'persistent_disk', 1416 s * 44, s * 39, 'Persistent\nDisk', null, null, null, this.getTagsForStencil(gn, '', dt + 'persistent disk').join(' ')), 1417 this.createVertexTemplateEntry(n + 'cloud_filestore', 1418 s * 44, s * 39, 'Cloud\nFilestore', null, null, null, this.getTagsForStencil(gn, '', dt + 'filestore').join(' ')), 1419 this.createVertexTemplateEntry(n + 'cloud_storage', 1420 s * 44, s * 39, 'Cloud\nStorage', null, null, null, this.getTagsForStencil(gn, '', dt + 'storage').join(' ')), 1421 this.createVertexTemplateEntry(n + 'placeholder', 1422 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1423 ]; 1424 1425 this.addPalette('gcp2Icons Storage', 'GCP Icons / Storage', false, mxUtils.bind(this, function(content) 1426 { 1427 for (var i = 0; i < fns.length; i++) 1428 { 1429 content.appendChild(fns[i](content)); 1430 } 1431 })); 1432 }; 1433 1434 Sidebar.prototype.addGCP2IconsSecurityPalette = function() 1435 { 1436 var sb = this; 1437 var s = 1.5; 1438 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1439 var dt = 'gcp google cloud platform icons icon security '; 1440 var gn = 'mxgraph.gcp2'; 1441 var fns = []; 1442 1443 var fns = [ 1444 this.createVertexTemplateEntry(n + 'cloud_iam', 1445 s * 44, s * 39, 'Cloud IAM', null, null, null, this.getTagsForStencil(gn, '', dt + 'iam').join(' ')), 1446 this.createVertexTemplateEntry(n + 'cloud_iam', 1447 s * 44, s * 39, 'Cloud Resource\nManager', null, null, null, this.getTagsForStencil(gn, '', dt + 'resource manager').join(' ')), 1448 this.createVertexTemplateEntry(n + 'cloud_security_scanner', 1449 s * 44, s * 39, 'Cloud Security\nScanner', null, null, null, this.getTagsForStencil(gn, '', dt + 'security scanner').join(' ')), 1450 this.createVertexTemplateEntry(n + 'key_management_service', 1451 s * 44, s * 39, 'Key\nManagement\nService', null, null, null, this.getTagsForStencil(gn, '', dt + 'key management service').join(' ')), 1452 this.createVertexTemplateEntry(n + 'cloud_security_command_center', 1453 s * 44, s * 39, 'Cloud Security\nCommand\nCenter', null, null, null, this.getTagsForStencil(gn, '', dt + 'security command center').join(' ')), 1454 this.createVertexTemplateEntry(n + 'placeholder', 1455 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1456 ]; 1457 1458 this.addPalette('gcp2Icons Security', 'GCP Icons / Security', false, mxUtils.bind(this, function(content) 1459 { 1460 for (var i = 0; i < fns.length; i++) 1461 { 1462 content.appendChild(fns[i](content)); 1463 } 1464 })); 1465 }; 1466 1467 Sidebar.prototype.addGCP2IconsMigrationPalette = function() 1468 { 1469 var sb = this; 1470 var s = 1.5; 1471 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1472 var dt = 'gcp google cloud platform icons icon migration '; 1473 var gn = 'mxgraph.gcp2'; 1474 var fns = []; 1475 1476 var fns = [ 1477 this.createVertexTemplateEntry(n + 'transfer_appliance', 1478 s * 44, s * 39, 'Transfer\nAppliance', null, null, null, this.getTagsForStencil(gn, '', dt + 'transfer appliance').join(' ')), 1479 this.createVertexTemplateEntry(n + 'placeholder', 1480 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1481 ]; 1482 1483 this.addPalette('gcp2Icons Migration', 'GCP Icons / Migration', false, mxUtils.bind(this, function(content) 1484 { 1485 for (var i = 0; i < fns.length; i++) 1486 { 1487 content.appendChild(fns[i](content)); 1488 } 1489 })); 1490 }; 1491 1492 Sidebar.prototype.addGCP2IconsHybridAndMultiCloudPalette = function() 1493 { 1494 var sb = this; 1495 var s = 1.5; 1496 var n = 'sketch=0;html=1;fillColor=#5184F3;strokeColor=none;verticalAlign=top;labelPosition=center;verticalLabelPosition=bottom;align=center;spacingTop=-6;fontSize=11;fontStyle=1;fontColor=#999999;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1497 var dt = 'gcp google cloud platform icons icon migration '; 1498 var gn = 'mxgraph.gcp2'; 1499 var fns = []; 1500 1501 var fns = [ 1502 this.createVertexTemplateEntry(n + 'traffic_director', 1503 s * 44, s * 39, 'Traffic Director', null, null, null, this.getTagsForStencil(gn, '', dt + 'traffic director').join(' ')), 1504 this.createVertexTemplateEntry(n + 'stackdriver', 1505 s * 44, s * 39, 'Stackdriver', null, null, null, this.getTagsForStencil(gn, '', dt + 'stackdriver').join(' ')), 1506 this.createVertexTemplateEntry(n + 'placeholder', 1507 s * 44, s * 39, 'Generic GCP\nProduct', null, null, null, this.getTagsForStencil(gn, '', dt + 'generic placeholder product').join(' ')) 1508 ]; 1509 1510 this.addPalette('gcp2Icons Hybrid and Multi Cloud', 'GCP Icons / Hybrid and Multi Cloud', false, mxUtils.bind(this, function(content) 1511 { 1512 for (var i = 0; i < fns.length; i++) 1513 { 1514 content.appendChild(fns[i](content)); 1515 } 1516 })); 1517 }; 1518 1519 Sidebar.prototype.addGCP2CardSet = function(label, icon, w1, w2, dt, fns) 1520 { 1521 var sb = this; 1522 var s = 'sketch=0;dashed=0;connectable=0;html=1;fillColor=#5184F3;strokeColor=none;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.hexIcon;prIcon='; 1523 var label1 = label.replace('\n', ' '); 1524 var label1 = label1.replace('- ', '-'); 1525 1526 fns.push( 1527 this.addEntry(dt, function() 1528 { 1529 var bg = new mxCell('', new mxGeometry(0, 0, w1, 60), 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;'); 1530 bg.vertex = true; 1531 var icon1 = new mxCell(label, new mxGeometry(0, 0.5, 44, 39), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontColor=#999999;fontSize=12;'); 1532 icon1.geometry.relative = true; 1533 icon1.geometry.offset = new mxPoint(5, -19.5); 1534 icon1.vertex = true; 1535 bg.insert(icon1); 1536 1537 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1538 }) 1539 ); 1540 1541 fns.push( 1542 this.addEntry(dt, function() 1543 { 1544 var bg = new mxCell('', new mxGeometry(0, 0, w2, 60), 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;'); 1545 bg.vertex = true; 1546 var icon1 = new mxCell('<font color="#000000">Name</font><br>' + label1, new mxGeometry(0, 0.5, 44, 39), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontColor=#999999;fontSize=12;'); 1547 icon1.geometry.relative = true; 1548 icon1.geometry.offset = new mxPoint(5, -19.5); 1549 icon1.vertex = true; 1550 bg.insert(icon1); 1551 1552 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1553 }) 1554 ); 1555 1556 fns.push( 1557 this.addEntry(dt, function() 1558 { 1559 var bg = new mxCell('', new mxGeometry(0, 0, w2 + 8, 68), 'shape=mxgraph.gcp2.doubleRect;strokeColor=#dddddd;shadow=1;strokeWidth=1;'); 1560 bg.vertex = true; 1561 var icon1 = new mxCell('<font color="#000000">Name</font><br>' + label1, new mxGeometry(0, 0.5, 44, 39), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontColor=#999999;fontSize=12;'); 1562 icon1.geometry.relative = true; 1563 icon1.geometry.offset = new mxPoint(5, -19.5); 1564 icon1.vertex = true; 1565 bg.insert(icon1); 1566 1567 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1568 }) 1569 ); 1570 }; 1571 1572 Sidebar.prototype.addGCP2ProductCardSet = function(label, icon, scaleX, scaleY, w1, w2, dt, fns) 1573 { 1574 var sb = this; 1575 var s = 'sketch=0;dashed=0;connectable=0;html=1;fillColor=#5184F3;strokeColor=none;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.'; 1576 var label1 = label.replace('\n', ' '); 1577 var label1 = label1.replace('- ', '-'); 1578 1579 fns.push( 1580 this.addEntry(dt, function() 1581 { 1582 var bg = new mxCell('', new mxGeometry(0, 0, w1, 60), 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;'); 1583 bg.vertex = true; 1584 var icon1 = new mxCell(label, new mxGeometry(0, 0, 45 * scaleX, 45 * scaleY), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontColor=#999999;fontSize=12;'); 1585 icon1.geometry.relative = true; 1586 icon1.geometry.offset = new mxPoint(5, 7 + (1 - scaleY) * 22.5); 1587 icon1.vertex = true; 1588 1589 bg.insert(icon1); 1590 1591 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1592 }) 1593 ); 1594 1595 fns.push( 1596 this.addEntry(dt, function() 1597 { 1598 var bg = new mxCell('', new mxGeometry(0, 0, w2, 60), 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;'); 1599 bg.vertex = true; 1600 var icon1 = new mxCell('<font color="#000000">Name</font><br>' + label1, new mxGeometry(0, 0, 45 * scaleX, 45 * scaleY), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontColor=#999999;fontSize=12;'); 1601 icon1.geometry.relative = true; 1602 icon1.geometry.offset = new mxPoint(5, 7 + (1 - scaleY) * 22.5); 1603 icon1.vertex = true; 1604 bg.insert(icon1); 1605 1606 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1607 }) 1608 ); 1609 1610 fns.push( 1611 this.addEntry(dt, function() 1612 { 1613 var bg = new mxCell('', new mxGeometry(0, 0, w2 + 8, 68), 'shape=mxgraph.gcp2.doubleRect;strokeColor=#dddddd;shadow=1;strokeWidth=1;'); 1614 bg.vertex = true; 1615 var icon1 = new mxCell('<font color="#000000">Name</font><br>' + label1, new mxGeometry(0, 0, 45 * scaleX, 45 * scaleY), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontColor=#999999;fontSize=12;'); 1616 icon1.geometry.relative = true; 1617 icon1.geometry.offset = new mxPoint(5, 7 + (1 - scaleY) * 22.5); 1618 icon1.vertex = true; 1619 bg.insert(icon1); 1620 1621 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1622 }) 1623 ); 1624 }; 1625 1626 Sidebar.prototype.addGCP2ServiceCard = function(label, icon, w, h, dt, fns) 1627 { 1628 var sb = this; 1629 var s = 'sketch=0;dashed=0;connectable=0;html=1;fillColor=#757575;strokeColor=none;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.'; 1630 var label1 = label.replace('\n', ' '); 1631 var label1 = label1.replace('- ', '-'); 1632 1633 fns.push( 1634 this.addEntry(dt, function() 1635 { 1636 var bg = new mxCell('', new mxGeometry(0, 0, w, h), 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;'); 1637 bg.vertex = true; 1638 var icon1 = new mxCell(label, new mxGeometry(0, 0.5, 32, 32), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=5;fontSize=12;'); 1639 icon1.geometry.relative = true; 1640 icon1.geometry.offset = new mxPoint(5, -16); 1641 icon1.vertex = true; 1642 bg.insert(icon1); 1643 1644 return sb.createVertexTemplateFromCells([bg], w, h, label1); 1645 }) 1646 ); 1647 }; 1648 1649 Sidebar.prototype.addGCP2ExpandedProductCardSet = function(label, icon, w, dt, fns) 1650 { 1651 var sb = this; 1652 var s = 'sketch=0;dashed=0;connectable=0;html=1;fillColor=#5184F3;strokeColor=none;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.'; 1653 var label1 = label.replace('\n', ' '); 1654 var label1 = label1.replace('- ', '-'); 1655 1656 fns.push( 1657 this.addEntry(dt, function() 1658 { 1659 var bg = new mxCell('', new mxGeometry(0, 0, w, 70), 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;'); 1660 bg.vertex = true; 1661 var icon1 = new mxCell('<font color="#000000">Name</font><br>' + label1 + '<hr><font style="font-size: 11px">Attribute Name</font>', 1662 new mxGeometry(0, 0, 44, 39), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=top;spacingLeft=5;fontColor=#999999;fontSize=12;spacingTop=-8;'); 1663 icon1.geometry.relative = true; 1664 icon1.geometry.offset = new mxPoint(5, 7); 1665 icon1.vertex = true; 1666 bg.insert(icon1); 1667 1668 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1669 }) 1670 ); 1671 1672 fns.push( 1673 this.addEntry(dt, function() 1674 { 1675 var bg = new mxCell('', new mxGeometry(0, 0, w + 8, 78), 'shape=mxgraph.gcp2.doubleRect;strokeColor=#dddddd;shadow=1;strokeWidth=1;'); 1676 bg.vertex = true; 1677 var icon1 = new mxCell('<font color="#000000">Name</font><br>' + label1 + '<hr><font style="font-size: 11px">Attribute Name</font>', 1678 new mxGeometry(0, 0, 44, 39), s + icon + ';part=1;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=top;spacingLeft=5;fontColor=#999999;fontSize=12;spacingTop=-8;'); 1679 icon1.geometry.relative = true; 1680 icon1.geometry.offset = new mxPoint(5, 7); 1681 icon1.vertex = true; 1682 bg.insert(icon1); 1683 1684 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1685 }) 1686 ); 1687 }; 1688 1689 Sidebar.prototype.addGCP2ExpandedMachineCard = function(label, mainIcon, aspectX, aspectY, capacityLabel, machineNum1, machineIcon, machineNum2, storageIcon, storageNum, additionalModifierIcon, w, dt, fns) 1690 { 1691 var sb = this; 1692 var s = 'sketch=0;dashed=0;connectable=0;html=1;fillColor=#757575;strokeColor=none;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.'; 1693 var label1 = label.replace('\n', ' '); 1694 var label1 = label1.replace('- ', '-'); 1695 1696 fns.push( 1697 this.addEntry(dt, function() 1698 { 1699 var bg = new mxCell('', new mxGeometry(0, 0, w, 95), 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;'); 1700 bg.vertex = true; 1701 1702 var mainTitleCell = new mxCell('<font color="#000000">' + label1 + '</font><hr>' + capacityLabel, 1703 new mxGeometry(0, 0, w, 50), 'text;part=1;html=1;align=left;verticalAlign=top;spacingLeft=35;fontColor=#999999;fontSize=11;resizeWidth=1;'); 1704 mainTitleCell.geometry.relative = true; 1705 mainTitleCell.vertex = true; 1706 bg.insert(mainTitleCell); 1707 1708 var mainIconCell = new mxCell('', 1709 new mxGeometry(0, 0, 25 * aspectX, 25 * aspectY), s + mainIcon + ';part=1;'); 1710 mainIconCell.geometry.relative = true; 1711 mainIconCell.geometry.offset = new mxPoint(4 + 12.5 * (1 - aspectX), 6 + 12.5 * (1 - aspectY)); 1712 mainIconCell.vertex = true; 1713 bg.insert(mainIconCell); 1714 1715 var machineCell = new mxCell('', 1716 new mxGeometry(0, 0, 20, 20), s + machineIcon + ';part=1;'); 1717 machineCell.geometry.relative = true; 1718 machineCell.geometry.offset = new mxPoint(35, 55); 1719 machineCell.vertex = true; 1720 bg.insert(machineCell); 1721 1722 var machineNum1Cell = new mxCell(machineNum1, 1723 new mxGeometry(0, 0, 18, 18), 'sketch=0;rounded=1;arcSize=50;part=1;fillColor=#3B8CF0;strokeColor=none;html=1;fontColor=#ffffff;spacingTop=-2;'); 1724 machineNum1Cell.geometry.relative = true; 1725 machineNum1Cell.geometry.offset = new mxPoint(24, 69); 1726 machineNum1Cell.vertex = true; 1727 bg.insert(machineNum1Cell); 1728 1729 var machineNum2Cell = new mxCell(machineNum2, 1730 new mxGeometry(0, 0, 18, 18), 'sketch=0;rounded=1;arcSize=50;part=1;fillColor=#3B8CF0;strokeColor=none;html=1;fontColor=#ffffff;spacingTop=-2;'); 1731 machineNum2Cell.geometry.relative = true; 1732 machineNum2Cell.geometry.offset = new mxPoint(50, 69); 1733 machineNum2Cell.vertex = true; 1734 bg.insert(machineNum2Cell); 1735 1736 var storageCell = new mxCell('', 1737 new mxGeometry(0, 0, 20, 18), s + storageIcon + ';part=1;'); 1738 storageCell.geometry.relative = true; 1739 storageCell.geometry.offset = new mxPoint(75, 56); 1740 storageCell.vertex = true; 1741 bg.insert(storageCell); 1742 1743 var storageNumCell = new mxCell(storageNum, 1744 new mxGeometry(0, 0, 18, 18), 'sketch=0;rounded=1;arcSize=50;part=1;fillColor=#3B8CF0;strokeColor=none;html=1;fontColor=#ffffff;spacingTop=-2;'); 1745 storageNumCell.geometry.relative = true; 1746 storageNumCell.geometry.offset = new mxPoint(88, 69); 1747 storageNumCell.vertex = true; 1748 bg.insert(storageNumCell); 1749 1750 var additionalModifierCell = new mxCell('', 1751 new mxGeometry(0, 0, 20, 20), s + additionalModifierIcon + ';part=1;'); 1752 additionalModifierCell.geometry.relative = true; 1753 additionalModifierCell.geometry.offset = new mxPoint(115, 55); 1754 additionalModifierCell.vertex = true; 1755 bg.insert(additionalModifierCell); 1756 1757 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1758 }) 1759 ); 1760 1761 fns.push( 1762 this.addEntry(dt, function() 1763 { 1764 var bg = new mxCell('', new mxGeometry(0, 0, w, 95), 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;'); 1765 bg.vertex = true; 1766 1767 var mainTitleCell = new mxCell('<font color="#000000">' + label1 + '</font><hr>' + capacityLabel, 1768 new mxGeometry(0, 0, w, 50), 'text;connectable=0;part=1;html=1;align=left;verticalAlign=top;spacingLeft=35;fontColor=#999999;fontSize=11;resizeWidth=1;'); 1769 mainTitleCell.geometry.relative = true; 1770 mainTitleCell.vertex = true; 1771 bg.insert(mainTitleCell); 1772 1773 var mainIconCell = new mxCell('', 1774 new mxGeometry(0, 0, 25 * aspectX, 25 * aspectY), s + mainIcon + ';part=1;'); 1775 mainIconCell.geometry.relative = true; 1776 mainIconCell.geometry.offset = new mxPoint(4 + 12.5 * (1 - aspectX), 6 + 12.5 * (1 - aspectY)); 1777 mainIconCell.vertex = true; 1778 bg.insert(mainIconCell); 1779 1780 var machineCell = new mxCell('', 1781 new mxGeometry(0, 0, 20, 20), s + machineIcon + ';part=1;'); 1782 machineCell.geometry.relative = true; 1783 machineCell.geometry.offset = new mxPoint(35, 55); 1784 machineCell.vertex = true; 1785 bg.insert(machineCell); 1786 1787 var machineNum1Cell = new mxCell(machineNum1, 1788 new mxGeometry(0, 0, 18, 18), 'sketch=0;connectable=0;rounded=1;arcSize=50;part=1;fillColor=#3B8CF0;strokeColor=none;html=1;fontColor=#ffffff;spacingTop=-2;'); 1789 machineNum1Cell.geometry.relative = true; 1790 machineNum1Cell.geometry.offset = new mxPoint(24, 69); 1791 machineNum1Cell.vertex = true; 1792 bg.insert(machineNum1Cell); 1793 1794 var machineNum2Cell = new mxCell(machineNum2, 1795 new mxGeometry(0, 0, 18, 18), 'sketch=0;connectable=0;rounded=1;arcSize=50;part=1;fillColor=#3B8CF0;strokeColor=none;html=1;fontColor=#ffffff;spacingTop=-2;'); 1796 machineNum2Cell.geometry.relative = true; 1797 machineNum2Cell.geometry.offset = new mxPoint(50, 69); 1798 machineNum2Cell.vertex = true; 1799 bg.insert(machineNum2Cell); 1800 1801 var storageCell = new mxCell('', 1802 new mxGeometry(0, 0, 20, 18), s + storageIcon + ';part=1;'); 1803 storageCell.geometry.relative = true; 1804 storageCell.geometry.offset = new mxPoint(75, 56); 1805 storageCell.vertex = true; 1806 bg.insert(storageCell); 1807 1808 var storageNumCell = new mxCell('123', 1809 new mxGeometry(0, 0, 25, 18), 'sketch=0;connectable=0;rounded=1;arcSize=50;part=1;fillColor=#3B8CF0;strokeColor=none;html=1;fontColor=#ffffff;spacingTop=-2;'); 1810 storageNumCell.geometry.relative = true; 1811 storageNumCell.geometry.offset = new mxPoint(81, 69); 1812 storageNumCell.vertex = true; 1813 bg.insert(storageNumCell); 1814 1815 var additionalModifierCell = new mxCell('', 1816 new mxGeometry(0, 0, 20, 20), s + additionalModifierIcon + ';part=1;'); 1817 additionalModifierCell.geometry.relative = true; 1818 additionalModifierCell.geometry.offset = new mxPoint(115, 55); 1819 additionalModifierCell.vertex = true; 1820 bg.insert(additionalModifierCell); 1821 1822 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1823 }) 1824 ); 1825 }; 1826 1827 Sidebar.prototype.addGCP2UserDeviceCard = function(label, icon, scaleX, scaleY, h1, dt, fns) 1828 { 1829 var sb = this; 1830 var s = 'sketch=0;dashed=0;connectable=0;html=1;fillColor=#757575;strokeColor=none;' + mxConstants.STYLE_SHAPE + '=mxgraph.gcp2.'; 1831 var label1 = label.replace('\n', ' '); 1832 var label1 = label1.replace('- ', '-'); 1833 1834 fns.push( 1835 this.addEntry(dt, function() 1836 { 1837 var bg = new mxCell(label, new mxGeometry(0, 0, 70, 85 + h1), 1838 'strokeColor=#dddddd;shadow=1;strokeWidth=1;rounded=1;absoluteArcSize=1;arcSize=2;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=bottom;spacingLeft=0;fontColor=#999999;fontSize=12;whiteSpace=wrap;spacingBottom=2;'); 1839 bg.vertex = true; 1840 var icon1 = new mxCell('', new mxGeometry(0.5, 0, 50 * scaleX, 50 * scaleY), s + icon + ';part=1;'); 1841 icon1.geometry.relative = true; 1842 icon1.geometry.offset = new mxPoint(- scaleX * 25, 10 + (1 - scaleY) * 25); 1843 icon1.vertex = true; 1844 bg.insert(icon1); 1845 1846 return sb.createVertexTemplateFromCells([bg], bg.geometry.width, bg.geometry.height, label1); 1847 }) 1848 ); 1849 }; 1850})(); 1851