squash commits
This commit is contained in:
commit
0f545c5e4d
611 files changed
+272565
No files matched your search
@@ -0,0 +1,59 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2020 Google LLC. All Rights Reserved.
|
||||
* Licensed under the Apache License, Version 2.0 (the 'License');
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an 'AS IS' BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
import {HotspotConfig} from '../../hotspot_panel/types.js';
|
||||
|
||||
/**
|
||||
* Renders a list of hotspots
|
||||
*/
|
||||
export function renderHotspots(hotspots: HotspotConfig[]) {
|
||||
const existingNames = new Set();
|
||||
for (const hotspot of hotspots) {
|
||||
if (existingNames.has(hotspot.name)) {
|
||||
throw new Error(`Hotspot contains duplicate name: ${hotspot.name}`);
|
||||
}
|
||||
existingNames.add(hotspot.name);
|
||||
}
|
||||
return hotspots.map(hotspot => renderHotspot(hotspot));
|
||||
}
|
||||
|
||||
/**
|
||||
* Render a hotspot
|
||||
*/
|
||||
export function renderHotspot(config: HotspotConfig) {
|
||||
// Note that we have to do this without lit html because rendering slot name
|
||||
// will result in zClosurez
|
||||
const hotspotElement = document.createElement('button');
|
||||
hotspotElement.classList.add('Hotspot');
|
||||
hotspotElement.slot = `hotspot-${config.name}`;
|
||||
if (config.surface != null) {
|
||||
hotspotElement.dataset['surface'] = config.surface;
|
||||
} else {
|
||||
hotspotElement.dataset['position'] = config.position;
|
||||
hotspotElement.dataset['normal'] = config.normal;
|
||||
}
|
||||
hotspotElement.dataset['visibilityAttribute'] = 'visible';
|
||||
|
||||
if (config.annotation) {
|
||||
const annotationElement = document.createElement('div');
|
||||
annotationElement.classList.add('HotspotAnnotation');
|
||||
annotationElement.textContent = config.annotation;
|
||||
hotspotElement.appendChild(annotationElement);
|
||||
}
|
||||
|
||||
return hotspotElement;
|
||||
}
|
||||
Reference in new issue
Block a user