GE Lua Documentation

Press F to search!

add

Definition


-- @/lua/ge/extensions/ui/vehicleSelector/general.lua:477
    add = function() end,

Callers

@/inspector/Debug/DebugContentView.js

        this.element.classList.add("debug");
        this.element.textContent = string;
@/inspector/Views/DefaultDashboardView.js

        container.classList.add("pulsing");
    }
            item.container.title = item.tooltip;
            item.container.classList.add(WI.DefaultDashboardView.EnabledItemStyleClassName);
        } else {
@/inspector/Views/HoverMenu.js
        this._drawOutline(rects);
        this._element.classList.add(WI.HoverMenu.VisibleClassName);
@/inspector/Models/DOMNode.js

            foundClasses.add(className);
            return `${selector}.${CSS.escape(className)}`;
@/inspector/Base/Main.js
    // Add platform style classes so the UI can be tweaked per-platform.
    document.body.classList.add(WI.Platform.name + "-platform");
    if (WI.Platform.isNightlyBuild)
    if (WI.Platform.isNightlyBuild)
        document.body.classList.add("nightly-build");
    if (WI.Platform.name === "mac")
        document.body.classList.add(WI.Platform.version.name);

    document.body.classList.add(WI.sharedApp.debuggableType);
    document.body.setAttribute("dir", WI.resolvedLayoutDirection());
    WI._undockToolbarButton = new WI.ButtonToolbarItem("undock", WI.UIString("Detach into separate window"), "Images/Undock.svg");
    WI._undockToolbarButton.element.classList.add(WI.Popover.IgnoreAutoDismissClassName);
    WI._undockToolbarButton.addEventListener(WI.ButtonNavigationItem.Event.Clicked, WI._undock);
    WI._dockToSideToolbarButton = new WI.ButtonToolbarItem("dock-right", WI.UIString("Dock to side of window"), dockImage);
    WI._dockToSideToolbarButton.element.classList.add(WI.Popover.IgnoreAutoDismissClassName);
    WI._dockBottomToolbarButton = new WI.ButtonToolbarItem("dock-bottom", WI.UIString("Dock to bottom of window"), "Images/DockBottom.svg");
    WI._dockBottomToolbarButton.element.classList.add(WI.Popover.IgnoreAutoDismissClassName);
    WI._dockBottomToolbarButton.addEventListener(WI.ButtonNavigationItem.Event.Clicked, WI._dockBottom);
    let dockedResizerElement = document.getElementById("docked-resizer");
    dockedResizerElement.classList.add(WI.Popover.IgnoreAutoDismissClassName);
    dockedResizerElement.addEventListener("mousedown", WI._dockedResizerMouseDown);
            continue;
        seenTabTypes.add(tabType);
        openTabs.push(tabContentView.type);
        seenTabTypes.add(tabContentView.type);
    }
        openTabs.insertAtIndex(tabType, index);
        seenTabTypes.add(tabType);
    }
    if (side === WI.DockConfiguration.Bottom) {
        document.body.classList.add("docked", WI.DockConfiguration.Bottom);
        document.body.classList.remove("window-inactive", WI.DockConfiguration.Right, WI.DockConfiguration.Left);
    } else if (side === WI.DockConfiguration.Right) {
        document.body.classList.add("docked", WI.DockConfiguration.Right);
        document.body.classList.remove("window-inactive", WI.DockConfiguration.Bottom, WI.DockConfiguration.Left);
    } else if (side === WI.DockConfiguration.Left) {
        document.body.classList.add("docked", WI.DockConfiguration.Left);
        document.body.classList.remove("window-inactive", WI.DockConfiguration.Bottom, WI.DockConfiguration.Right);
    // FIXME: We should use the :window-inactive pseudo class once https://webkit.org/b/38927 is fixed.
    document.body.classList.add(WI.docked ? "window-docked-inactive" : "window-inactive");
};
    let contentElement = document.createElement("table");
    contentElement.classList.add("device-settings-content");
    let userAgentValue = userAgentRow.appendChild(document.createElement("td"));
    userAgentValue.classList.add("user-agent");
        let settingsGroupItemContainer = settingsGroupValue.appendChild(document.createElement("div"));
        settingsGroupItemContainer.classList.add("container");
            let columnElement = settingsGroupItemContainer.appendChild(document.createElement("div"));
            columnElement.classList.add("column");
    if (isError)
        messageElement.classList.add("error");
    if (options.dontFloat)
        linkElement.classList.add("dont-float");
    if (options.className)
        linkElement.classList.add(options.className);
    let linkNode = document.createElement("a");
    linkNode.classList.add("resource-link", className);
    linkNode.title = resource.url;
@/inspector/Views/TextNavigationItem.js

        this._element.classList.add("text");
        this._element.textContent = label || "";
@/inspector/Views/ResourceHeadersContentView.js

        this.element.classList.add("resource-details", "resource-headers");
        this.element.tabIndex = 0;
            let pair = this._summarySection.appendKeyValuePair(WI.UIString("Initiator"), fragment);
            pair.classList.add("initiator");
@/inspector/Controllers/DOMDebuggerManager.js

        this._domBreakpointURLMap.add(breakpoint.url, breakpoint);

        domBreakpointNodeIdentifierMap.add(nodeIdentifier, breakpoint);
@/ui/modules/apps/Odometer/app.js
        var streamsList = []
        StreamsManager.add(streamsList)
        scope.$on("$destroy", function () {
@/ui/modules/apps/TurboActivityGraph/app.js
      var streamsList = ['forcedInductionInfo']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Views/CPUUsageView.js

        this.element.classList.add("cpu-usage-view");
        this._detailsElement = this.element.appendChild(document.createElement("div"));
        this._detailsElement.classList.add("details");
            let detailsNameElement = this._detailsElement.appendChild(document.createElement("span"));
            detailsNameElement.classList.add("name");
            detailsNameElement.textContent = displayName;
        this._graphElement = this.element.appendChild(document.createElement("div"));
        this._graphElement.classList.add("graph");
@/inspector/Views/ProbeSetDataGrid.js

        node.element.classList.add("data-updated");
        window.setTimeout(function() {
        for (var node of this._nodesSinceLastNavigation)
            node.element.classList.add("past-value");
@/ui/modules/apps/ClutchThermalDebug/app.js
      var streamsList = ['clutchThermalData']
      StreamsManager.add(streamsList)
      $scope.$on('$destroy', function () {
@/inspector/Views/ProfileDataGridNode.js
                        if (child.equals(source)) {
                            this._childrenToChargeToSelf.add(child);
                            this._extraSelfTimeFromChargedChildren += child.filteredTimestampsAndDuration(this._tree.startTime, this._tree.endTime).duration;
        let timeElement = fragment.appendChild(document.createElement("span"));
        timeElement.classList.add("time");
        timeElement.textContent = Number.secondsToMillisecondsString(totalTime);
        let percentElement = fragment.appendChild(document.createElement("span"));
        percentElement.classList.add("percentage");
        percentElement.textContent = Number.percentageString(fraction);
        let iconElement = fragment.appendChild(document.createElement("img"));
        iconElement.classList.add("icon", iconClassName);
        let titleElement = fragment.appendChild(document.createElement("span"));
            let locationElement = fragment.appendChild(document.createElement("span"));
            locationElement.classList.add("location");
            sourceCodeLocation.populateLiveDisplayLocationString(locationElement, "textContent", WI.SourceCodeLocation.ColumnStyle.Hidden, WI.SourceCodeLocation.NameStyle.Short);
@/lua/ge/extensions/editor/createObjectTool.lua
    grp:setName("PlayerDropPoints")
    scenetree.MissionGroup:add(grp)
  end
    grp:setName("ObserverDropPoints")
    scenetree.MissionGroup:add(grp)
  end
@/inspector/Views/ConsolePrompt.js

        this.element.classList.add("console-prompt", WI.SyntaxHighlightedStyleClassName);
@/inspector/Views/ObjectTreeBaseTreeElement.js
        if (!interactive) {
            getterElement.classList.add("disabled");
            getterElement.title = WI.UIString("Getter");
        if (!interactive)
            setterElement.classList.add("disabled");
@/inspector/Views/HierarchicalPathComponent.js

        this._element.classList.add(...styleClassNames);
        } else
            this._element.classList.add("text-only");
@/inspector/Views/InlineSwatch.js

        this._swatchElement.classList.add("inline-swatch", this._type.split("-").lastValue);
        if (readOnly)
            this._swatchElement.classList.add("read-only");
        else {
            this._valueEditor.element = document.createElement("div");
            this._valueEditor.element.classList.add("inline-swatch-variable-popover");
            this._valueEditor.element.src = this._value.src;
            this._valueEditor.element.classList.add("show-grid");
            this._valueEditor.element.style.setProperty("max-width", "50vw");
@/ui/modules/apps/AdvancedWheelDebug/app.js
      var streamsList = ['advancedWheelDebugData']
      StreamsManager.add(streamsList)
@/lua/ge/extensions/gameplay/drift/scoring.lua
  if gameplay_drift_general.getGeneralDebug() then
    profiler:add("Drift scoring")
    gc = profiler.sections[1].garbage
@/inspector/Views/TimelineRecordingContentView.js

        this.element.classList.add("timeline-recording");
@/inspector/Views/BreakpointActionView.js
            option.value = type;
            picker.add(option);
        }
        let buttonContainerElement = header.appendChild(document.createElement("div"));
        buttonContainerElement.classList.add("breakpoint-action-button-container");
            var descriptionElement = this._bodyElement.appendChild(document.createElement("div"));
            descriptionElement.classList.add("description");
            descriptionElement.setAttribute("dir", "ltr");
            var editorElement = this._bodyElement.appendChild(document.createElement("div"));
            editorElement.classList.add("breakpoint-action-eval-editor");
            editorElement.classList.add(WI.SyntaxHighlightedStyleClassName);
            editorElement.classList.add("breakpoint-action-eval-editor");
            editorElement.classList.add(WI.SyntaxHighlightedStyleClassName);
@/inspector/Views/TypeTreeElement.js
        var nameElement = document.createElement("span");
        nameElement.classList.add("type-name");
        nameElement.textContent = displayName;
@/lua/ge/extensions/ui/apps/minimap/roads.lua
  else
    --if p then p:add("Start Roads") end
    local roadBgTransparentBlack = ui_apps_minimap_utils.colors.roadBgTransparentBlack

    if p then p:add("Roads") end

    --if p then p:add("Draw Link") end
    if not hasRoads and not debugSettings.drawGrid then
@/inspector/Views/StyleDetailsPanel.js

        this.element.classList.add(className);
@/inspector/Views/NavigationBar.js

        this.element.classList.add(this.constructor.StyleClassName || "navigation-bar");
        this.element.tabIndex = 0;
        if (totalItemWidth > barWidth)
            this.element.classList.add(WI.NavigationBar.CollapsedStyleClassName);
        if (!wasCollapsed)
            this.element.classList.add(WI.NavigationBar.CollapsedStyleClassName);
@/inspector/Views/MemoryTimelineOverviewGraph.js

        this.element.classList.add("memory");
        this._legendElement = this.element.appendChild(document.createElement("div"));
        this._legendElement.classList.add("legend");
        this._memoryPressureMarkersContainerElement = this.element.appendChild(document.createElement("div"));
        this._memoryPressureMarkersContainerElement.classList.add("memory-pressure-markers-container");
        this._memoryPressureMarkerElements = [];
                markerElement = this._memoryPressureMarkersContainerElement.appendChild(document.createElement("div"));
                markerElement.classList.add("memory-pressure-event");
                this._memoryPressureMarkerElements[i] = markerElement;
@/inspector/Views/SoftContextMenu.js
        if (!item.enabled)
            menuItemElement.classList.add("disabled");
        if (this._highlightedMenuItemElement) {
            this._highlightedMenuItemElement.classList.add("highlighted");
            this._contextMenuElement.focus();
@/inspector/Views/ErrorObjectView.js
        this._element = document.createElement("div");
        this._element.classList.add("error-object");
        var previewElement = WI.FormattedValue.createElementForError(this._object);
        var span = document.createElement("span");
        span.classList.add("error-object-link-container");
        span.textContent = ` ${emDash} `;
        let a = WI.linkifyLocation(sourceURL, new WI.SourceCodePosition(parseInt(lineNumber) - 1, parseInt(columnNumber)), options);
        a.classList.add("error-object-link");
        span.appendChild(a);
        this._expanded = true;
        this._element.classList.add("expanded");
@/inspector/Views/ColorPicker.js
        this._brightnessSlider.delegate = this;
        this._brightnessSlider.element.classList.add("brightness");
        this._opacitySlider.delegate = this;
        this._opacitySlider.element.classList.add("opacity");
        let colorInputsContainerElement = document.createElement("div");
        colorInputsContainerElement.classList.add("color-inputs");
        this._element = document.createElement("div");
        this._element.classList.add("color-picker");
@/lua/ge/extensions/editor/barriersEditor.lua
      dirInLevel = dirInLevel..filename
      --scenetree.MissionGroup:add(scenetreeObject)
      local objects = {}
                if scenetree and scenetreeObject and scenetree.MissionGroup then
                  scenetree.MissionGroup:add(scenetreeObject)
                end
@/inspector/Views/CompletionSuggestionsView.js
        this._element.setAttribute("dir", "ltr");
        this._element.classList.add("completion-suggestions", WI.Popover.IgnoreAutoDismissClassName);
        this._containerElement = document.createElement("div");
        this._containerElement.classList.add("completion-suggestions-container");
        this._containerElement.addEventListener("mousedown", this._mouseDown.bind(this));

        selectedItemElement.classList.add("selected");
        selectedItemElement.scrollIntoViewIfNeeded(false);
            var itemElement = document.createElement("div");
            itemElement.classList.add("item");
            itemElement.classList.toggle("selected", i === this._selectedIndex);
@/inspector/Views/BoxModelDetailsSectionRow.js

        this.element.classList.add("box-model");
            if (nodeId && (mode === "all" || element._name === mode))
                element.classList.add("active");
            else
@/inspector/Views/SpreadsheetRulesStyleDetailsPanel.js
        if (this._filterText)
            this.element.classList.add("filter-non-matching");
        for (let header of this._headerMap.values())
            header.classList.add(WI.GeneralStyleDetailsSidebarPanel.NoFilterMatchInSectionClassName);
            currentHeader = this.element.appendChild(document.createElement("h2"));
            currentHeader.classList.add("section-header");
            currentHeader.append(text);
@/ui/modules/apps/PowertrainLossDebug/app.js
      var streamsList = ['engineInfo']
      StreamsManager.add(streamsList)
      $scope.$on('$destroy', function () {
@/ui/ui-vue/src/common/directives/BngFocusIf.js
    targetEl.addEventListener("blur", blur)
    targetEl.classList.add("focus-visible")
  })
@/lua/common/guihooks.lua
    end
    csvfile:add(unpack(row))
  end
@/ui/ui-vue/src/services/paint-previews.js
    data.bitmap?.close?.()
    if (data.blobUrl) pendingBlobCleanup.add(data.blobUrl)
  }
  function onCacheClear(callback) {
    cacheListeners.add(callback)
    return () => cacheListeners.delete(callback)
    // finalise
    if (oldBlobUrl) pendingBlobCleanup.add(oldBlobUrl)
    if (!previews.value.has(key)) {
    if (!previews.value.has(key)) {
      pendingBlobCleanup.add(blobUrl)
      blobCleanup()
@/inspector/Views/DashboardContainerView.js
    {
        this._advanceForwardArrowElement.classList.add(WI.DashboardContainerView.InactiveStyleClassName);
        this._advanceBackwardArrowElement.classList.add(WI.DashboardContainerView.InactiveStyleClassName);
        this._advanceForwardArrowElement.classList.add(WI.DashboardContainerView.InactiveStyleClassName);
        this._advanceBackwardArrowElement.classList.add(WI.DashboardContainerView.InactiveStyleClassName);
    }
        var container = this;
        dashboardView.element.classList.add(WI.DashboardContainerView.VisibleDashboardStyleClassName);
        if (animationClass) {
            dashboardView.element.classList.add(animationClass);
            dashboardView.element.addEventListener("animationend", animationEnded);
        if (animationClass) {
            dashboardView.element.classList.add(animationClass);
            dashboardView.element.addEventListener("animationend", animationEnded);
@/inspector/Views/MultipleScopeBarItem.js
        this._element = document.createElement("li");
        this._element.classList.add("multiple");
@/lua/vehicle/controller/loggerTemplate.lua
  -- add all the relevant info from this logging step
  csvData:add(time, throttle, brake, batteryCapacity, motorPower)
end
@/ui/modules/apps/DrivingStrategy/app.js
      link: function (scope, element, attrs) {
        StreamsManager.add(['drivingStrategy'])
@/inspector/Views/CallFrameView.js
        var callFrameElement = document.createElement("div");
        callFrameElement.classList.add("call-frame", WI.CallFrameView.iconClassNameForCallFrame(callFrame));
        var subtitleElement = document.createElement("span");
        subtitleElement.classList.add("subtitle");
            var linkElement = document.createElement("a");
            linkElement.classList.add("source-link");
            linkElement.href = sourceCodeLocation.sourceCode.url;
                var separatorElement = document.createElement("span");
                separatorElement.classList.add("separator");
                separatorElement.textContent = ` ${emDash} `;
        var titleElement = document.createElement("span");
        titleElement.classList.add("title");
            var imgElement = document.createElement("img");
            imgElement.classList.add("icon");
@/lua/vehicle/ai.lua
  end
  dataLogger.csvFile:add(
    dataLogger.time,
@/inspector/Views/Toolbar.js
        if (WI.sharedApp.debuggableType !== WI.DebuggableType.Web) {
            this.element.classList.add(WI.NavigationBar.CollapsedStyleClassName);
            return;

        this.element.classList.add(WI.NavigationBar.CollapsedStyleClassName);
    }
@/inspector/Views/ScriptDetailsTimelineView.js

        this.element.classList.add("script");
        this.addSubview(this._dataGrid);
@/inspector/Views/GradientSlider.js
    {
        knob.element.classList.add(WI.GradientSlider.DetachingClassName);
            this._shadowKnob = new WI.GradientSliderKnob(this);
            this._shadowKnob.element.classList.add(WI.GradientSlider.ShadowClassName);
            this.element.appendChild(this._shadowKnob.element);
            this.element.addEventListener("transitionend", this);
            this.element.classList.add(WI.GradientSliderKnob.FadeOutClassName);
            this.selected = false;
@/lua/ge/extensions/util/procTrack.lua

        MissionGroup.add(new SimGroup("GymkhanaArena") {
          position = "]] .. params.rootX .. [[ ]] .. params.rootY .. [[ 0";
        local roadTS = [[
              GymkhanaArena.add(new DecalRoad() {
              Material = "line_white_transparent";
    local roadTS = [[
          GymkhanaArena.add(new DecalRoad() {
          Material = "]]..m..[[";
  TorqueScript.eval([[
   GymkhanaArena.add(new TSStatic() {
         shapeName = "levels/driver_training/art/shapes/race/barriersegment]]..skin..[[.dae";
  TorqueScript.eval([[
   GymkhanaArena.add(new TSStatic() {
         shapeName = "levels/driver_training/art/shapes/race/gate.dae";
  TorqueScript.eval([[
   GymkhanaArena.add(new TSStatic() {
         shapeName = "levels/driver_training/art/shapes/race/ring_2m.dae";
  TorqueScript.eval([[
   GymkhanaArena.add(new TSStatic() {
         shapeName = "levels/driver_training/art/shapes/race/barrelmarker_]]..skin..[[.dae";
@/inspector/Views/ProgressView.js

        this.element.classList.add("progress-view");
@/inspector/Views/DOMTreeUpdater.js
            this._recentlyModifiedAttributes.set(attribute, new Set);
        this._recentlyModifiedAttributes.get(attribute).add(node);
        this._recentlyModifiedNodes.add(node);
        this._recentlyModifiedAttributes.get(attribute).add(node);
        this._recentlyModifiedNodes.add(node);
            if (parentTreeElement)
                parentElementsToUpdate.add(parentTreeElement);
        };
@/lua/common/libs/StackTracePlus/StackTracePlus.lua
-- helpers for collecting strings to be used when assembling the final trace
function Dumper:add (text)
  self.lines[#self.lines + 1] = text
function Dumper:add_f (fmt, ...)
  self:add(fmt:format(...))
end
  if type(message) == "table" then
    dumper:add("an error object {\n")
    local first = true
      if first then
        dumper:add("  ")
        first = false
      else
        dumper:add(",\n  ")
      end
      end
      dumper:add(safe_tostring(k))
      dumper:add(": ")
      dumper:add(safe_tostring(k))
      dumper:add(": ")
      dumper:add(safe_tostring(v))
      dumper:add(": ")
      dumper:add(safe_tostring(v))
    end
    end
    dumper:add("\n}")
    original_error = dumper:concat_lines()
  elseif type(message) == "string" then
    dumper:add(message)
    original_error = message
  if level == nil or level_limit == nil then
    dumper:add('Simple Stack Trace:')
  end
  if type(message) == "table" then
    dumper:add("an error object {\n")
    local first = true
      if first then
        dumper:add("  ")
        first = false
      else
        dumper:add(",\n  ")
      end
      end
      dumper:add(safe_tostring(k))
      dumper:add(": ")
      dumper:add(safe_tostring(k))
      dumper:add(": ")
      dumper:add(safe_tostring(v))
      dumper:add(": ")
      dumper:add(safe_tostring(v))
    end
    end
    dumper:add("\n}")
    original_error = dumper:concat_lines()
  elseif type(message) == "string" then
    dumper:add(message)
    original_error = message

  dumper:add('\n=============== Stack Traceback >> START >>\n')
  --print(error_message)

  dumper:add('--------------- << END <<\n')
@/lua/common/libs/luamqtt/mqtt/init.lua
		local cl = select(i, ...)
		loop:add(cl)
		if type(cl) ~= "function" then
@/inspector/Views/HeapAllocationsTimelineOverviewGraph.js

        this.element.classList.add("heap-allocations");
                imageElement = record[WI.HeapAllocationsTimelineOverviewGraph.RecordElementAssociationSymbol] = document.createElement("img");
                imageElement.classList.add("snapshot");
                imageElement.addEventListener("click", (event) => {
            if (record.heapSnapshot.invalid)
                imageElement.classList.add("invalid");

        imageElement.classList.add("selected");
@/inspector/Views/TreeElementStatusButton.js
        this._element = element;
        this._element.classList.add("status-button");
        this._element.addEventListener("click", this._clicked.bind(this));
        else
            this._element.classList.add(WI.TreeElementStatusButton.DisabledStyleClassName);
    }
@/inspector/Views/TimelineRecordFrame.js
        this._element = document.createElement("div");
        this._element.classList.add("timeline-record-frame");
        var frameElement = document.createElement("div");
        frameElement.classList.add("frame");
        this._element.appendChild(frameElement);
        if (frameHeight >= 0.95)
            this._element.classList.add("tall");
        else
            this._updateElementPosition(element, segment.duration / this._record.__displayData.frameDuration, "height");
            element.classList.add("duration", segment.taskType);
            frameElement.insertBefore(element, frameElement.firstChild);
@/ui/modules/apps/SimpleBrakeThermals/app.js
        var streamsList = ['wheelThermalData', 'wheelInfo'];  // loading required streams
        StreamsManager.add(streamsList);  // adding streams
        var svg = element[0]
@/ui/modules/apps/ShiftPointDebug/app.js
        var streamsList = ['shiftPointDebugData', 'engineInfo', 'electrics']
        StreamsManager.add(streamsList)
        scope.$on('$destroy', function () {
@/lua/ge/client/postFx/maskedScreenBlur.lua
  screenBlurFX_YShader:registerObject()
  screenBlurFX:add(screenBlurFX_YShader)
  screenBlurFX_XShader:registerObject()
  screenBlurFX:add(screenBlurFX_XShader)
  simpleBlendShader:registerObject()
  screenBlurFX:add(simpleBlendShader)
end
@/inspector/Views/NetworkDetailView.js

        this.element.classList.add("network-detail");
@/inspector/Views/DetailsSectionDataGridRow.js

        this.element.classList.add("data-grid");
@/ui/ui-vue/src/bridge/libs/Hooks.js
}
add("streamMain", streamUpdateHandler, "stream")

add("hooksMain", mainHookHandler)

function add(id, func, type = "hook") {
  if (!handlers[type]) handlers[type] = {}
@/inspector/Views/InputPopover.js
        let contentElement = document.createElement("div");
        contentElement.classList.add("input-popover-content");
            let label = document.createElement("div");
            label.classList.add("label");
            label.textContent = this._message;
@/lua/ge/extensions/util/trackBuilder/proceduralPrimitives.lua
  splineObject:createMesh({{mesh}})
  scenetree.MissionGroup:add(splineObject.obj)
  be:reloadCollision()
@/inspector/Views/ResourceCookiesContentView.js

        this.element.classList.add("resource-details", "resource-cookies");
    }
            this.addSubview(this._requestCookiesTable);
            detailsElement.classList.add("has-table");
            detailsElement.appendChild(this._requestCookiesTable.element);
            this.addSubview(this._responseCookiesTable);
            detailsElement.classList.add("has-table");
            detailsElement.appendChild(this._responseCookiesTable.element);
@/lua/ge/extensions/editor/gen/test.lua
				om:registerObject(nm) --'tmp_'..tostring(os.clock()))
				groupBat:add(om.obj)
			end
@/ui/modules/apps/ShiftDecisionDebug/app.js
      var streamsList = ['shiftDecisionData']
      StreamsManager.add(streamsList)
      $scope.$on('$destroy', function () {
@/inspector/Models/Frame.js
    {
        var changedPageContext = this._executionContextList.add(context);

        this._childFrameCollection.add(frame);
        this._childFrameIdentifierMap.set(frame._id, frame);
        if (this._isProvisionalResource(resource)) {
            this._provisionalResourceCollection.add(resource);
            this.dispatchEventToListeners(WI.Frame.Event.ProvisionalResourceWasAdded, {resource});
        } else {
            this._resourceCollection.add(resource);
            this.dispatchEventToListeners(WI.Frame.Event.ResourceWasAdded, {resource});
    {
        this._extraScriptCollection.add(script);
@/lua/ge/serverConnection.lua
  be:physicsStopSimulation()
  if p then p:add("disconnectActual.physicsStopSimulation") end
  local canvas = scenetree.findObject("Canvas")
  local canvas = scenetree.findObject("Canvas")
  if p then p:add("disconnectActual.findCanvas") end
  if not canvas then
    log('E', logTag, 'canvas not found')
    if p then p:add("disconnectActual.canvasError") end
  else
    canvas:enableCursorHideIfMouseInactive(false);
    if p then p:add("disconnectActual.hideMouse") end
  end
  TorqueScriptLua.setVar("$sceneLighting::terminateLighting", "true")
  if p then p:add("disconnectActual.setVars") end
  server.destroy(p)
  if p then p:add("disconnectActual.server") end
  setMissionFilename("")
  setMissionFilename("")
  if p then p:add("disconnectActual.filename") end
  if loadingScreen then core_gamestate.requestExitLoadingScreen(logTag) end
  if loadingScreen then core_gamestate.requestExitLoadingScreen(logTag) end
  if p then p:add("disconnectActual.requestExitLoadingScreen") end
  local ret
  end
  if p then p:add("disconnectActual.callback") end
  return ret
  if loadingScreen == nil then loadingScreen = true end
  if p then p:add("disconnectWrapper.bool") end
  local function help (p)
    core_gamestate.requestEnterLoadingScreen(logTag, help)
    if p then p:add("disconnectWrapper.requestEnterLoadingScreen") end
  else
    help(p)
    if p then p:add("disconnectWrapper.help") end
  end
@/inspector/Controllers/SelectionController.js
        let newItems = new Set(extendSelection ? this._selectedItems : null);
        newItems.add(item);
        if (item)
            newItems.add(item);
        while (current) {
            items.add(current);
            if (current === lastItem)
@/inspector/Views/ResourceDetailsSection.js
        if (className)
            p.classList.add(className);
@/ui/modules/apps/PneumaticsDebug/app.js
      var streamsList = ['pneumaticsData']
      StreamsManager.add(streamsList)
      $scope.$on('$destroy', function () {
@/inspector/Views/TimelineRecordingProgressView.js

        this.element.classList.add("recording-progress");
        let statusElement = document.createElement("div");
        statusElement.classList.add("status");
        statusElement.textContent = WI.UIString("Recording Timeline Data");
@/lua/ge/extensions/editor/sceneTree.lua
      if oldGroup then
        oldGroup:add(object)
        if actionData.placeholderObjects[i] then
      if object then
        newGroup:add(object)
        if destObject then
      if object and newGroup.add and newGroup.bringToFront then
        newGroup:add(object)
        newGroup:bringToFront(object)
@/inspector/Models/ExecutionContextList.js

    add(context)
    {
@/inspector/Views/LayoutTimelineOverviewGraph.js

        this.element.classList.add("layout-overview");
@/inspector/Views/DatabaseUserQueryErrorView.js

        this.resultElement.classList.add("error");
        this.resultElement.textContent = message;
@/inspector/Views/HeapAllocationsTimelineView.js

        this.element.classList.add("heap-allocations");
@/ui/ui-vue/src/services/uiNavFocus.js
  if (enable) {
    elm.classList.add(focusClass)
    if (elm === document.activeElement) return
      // set focus-visible class
      if (isController.value) target.classList.add(focusClass)
      curFocused = target
@/inspector/Views/RecordingTraceDetailsSidebarPanel.js
            let noTraceDataElement = this.contentView.element.appendChild(document.createElement("div"));
            noTraceDataElement.classList.add("no-trace-data");
            let noTraceDataMessageElement = noTraceDataElement.appendChild(document.createElement("div"));
            noTraceDataMessageElement.classList.add("message");
            noTraceDataMessageElement.textContent = WI.UIString("Call Stack Unavailable");
@/ui/uidevtools/src/stores/messageStore.js
          })
          filtersStore.add({ id: 1, type: null, keywords: [] })
        }

      const request = objectStore.add(message) // Store the message directly
@/ui/ui-vue/src/common/modules/wizard/wizard.js
    const step = currentStep.value
    if (step) completedSteps.value.add(currentStepIndex.value)
    if (isLastStep.value) return true
@/inspector/Views/CPUTimelineOverviewGraph.js

        this.element.classList.add("cpu");
        this._legendElement = this.element.appendChild(document.createElement("div"));
        this._legendElement.classList.add("legend");
@/inspector/Views/RecordingContentView.js

        this.element.classList.add("recording", this.representedObject.type);
                    let pathCanvas = document.createElement("canvas");
                    pathCanvas.classList.add("path");
                    this._pathContext = pathCanvas.getContext("2d");
@/inspector/Views/DataGridNode.js
        if (this.hasChildren)
            this._element.classList.add("parent");
        if (this.expanded)
        if (this.expanded)
            this._element.classList.add("expanded");
        if (this.selected)
        if (this.selected)
            this._element.classList.add("selected");
        if (this.revealed)
        if (this.revealed)
            this._element.classList.add("revealed");
        if (this._hidden)
        if (this._hidden)
            this._element.classList.add("hidden");
        this._element.classList.add(...this._classNames);
            this._element.classList.add("hidden");
        this._element.classList.add(...this._classNames);
        if (this._hasChildren) {
            this._element.classList.add("parent");
            if (this.expanded)
            if (this.expanded)
                this._element.classList.add("expanded");
        } else
            if (this._revealed)
                this._element.classList.add("revealed");
            else
            if (column["aligned"])
                cellElement.classList.add(column["aligned"]);
            if (column["group"])
                cellElement.classList.add("column-group-" + column["group"]);
                let iconElement = document.createElement("div");
                iconElement.classList.add("icon");
                div.insertBefore(iconElement, div.firstChild);
        if (columnIdentifier === this.dataGrid.disclosureColumnIdentifier) {
            cellElement.classList.add("disclosure");
            if (this.indentPadding) {
        if (this._element)
            this._element.classList.add("expanded");
        if (this._element)
            this._element.classList.add("selected");
@/lua/ge/extensions/util/dependencyTree.lua

local function add(type, category, value)
  if value then
  for k, _ in pairs(rootNode.instances) do
    add(entity.deps, 'simobject', k)
  end
    -- if it has a name, it can be referenced by
    add(entity.provides, 'simobject', n.name)
  end
  if n.class == "BeamNGVehicle" then
    add(entity.deps, 'file', n.JBeam)
    add(entity.deps, 'file', n.partConfig)
    add(entity.deps, 'file', n.JBeam)
    add(entity.deps, 'file', n.partConfig)
  elseif n.class == "BasicClouds" then
    add(entity.deps, 'tex', n.texture)
  elseif n.class == "CloudLayer" then
    add(entity.deps, 'tex', n.texture)
  elseif n.class == "DecalRoad" then
    add(entity.deps, 'material', n.material)
  elseif n.class == "MeshRoad" then
    add(entity.deps, 'material', n.topMaterial)
    add(entity.deps, 'material', n.bottomMaterial)
    add(entity.deps, 'material', n.topMaterial)
    add(entity.deps, 'material', n.bottomMaterial)
    add(entity.deps, 'material', n.sideMaterial)
    add(entity.deps, 'material', n.bottomMaterial)
    add(entity.deps, 'material', n.sideMaterial)
  elseif n.class == "River" then
    add(entity.deps, 'material', n.topMaterial)
    add(entity.deps, 'tex', n.rippleTex)
    add(entity.deps, 'material', n.topMaterial)
    add(entity.deps, 'tex', n.rippleTex)
    add(entity.deps, 'tex', n.foamTex)
    add(entity.deps, 'tex', n.rippleTex)
    add(entity.deps, 'tex', n.foamTex)
    add(entity.deps, 'tex', n.depthGradientTex)
    add(entity.deps, 'tex', n.foamTex)
    add(entity.deps, 'tex', n.depthGradientTex)
    add(entity.deps, 'simobject', n.soundAmbience)
    add(entity.deps, 'tex', n.depthGradientTex)
    add(entity.deps, 'simobject', n.soundAmbience)
  elseif n.class == "WaterPlane" then
    add(entity.deps, 'tex', n.rippleTex)
    add(entity.deps, 'tex', n.foamTex)
    add(entity.deps, 'tex', n.rippleTex)
    add(entity.deps, 'tex', n.foamTex)
    add(entity.deps, 'tex', n.depthGradientTex)
    add(entity.deps, 'tex', n.foamTex)
    add(entity.deps, 'tex', n.depthGradientTex)
    add(entity.deps, 'simobject', n.soundAmbience)
    add(entity.deps, 'tex', n.depthGradientTex)
    add(entity.deps, 'simobject', n.soundAmbience)
  elseif n.class == "ScatterSky" then
    add(entity.deps, 'tex', n.colorizeGradientFile)
    add(entity.deps, 'tex', n.sunScalegradientFile)
    add(entity.deps, 'tex', n.colorizeGradientFile)
    add(entity.deps, 'tex', n.sunScalegradientFile)
    add(entity.deps, 'tex', n.ambientScaleGradientFile)
    add(entity.deps, 'tex', n.sunScalegradientFile)
    add(entity.deps, 'tex', n.ambientScaleGradientFile)
    add(entity.deps, 'tex', n.fogScaleGradientFile)
    add(entity.deps, 'tex', n.ambientScaleGradientFile)
    add(entity.deps, 'tex', n.fogScaleGradientFile)
    add(entity.deps, 'material', n.moonMat)
    add(entity.deps, 'tex', n.fogScaleGradientFile)
    add(entity.deps, 'material', n.moonMat)
    add(entity.deps, 'simobject', n.nightCubemap)
    add(entity.deps, 'material', n.moonMat)
    add(entity.deps, 'simobject', n.nightCubemap)
  elseif n.class == "SkyBox" then
    add(entity.deps, 'material', n.material)
  elseif n.class == "Sun" then
    add(entity.deps, 'material', n.coronaMaterial)
  elseif n.class == "ForestBrush" then
    add(entity.deps, 'simobject', n.forestItemData)
  elseif n.class == "ForestItemData" then
    add(entity.deps, 'shape', n.shapeFile)
  elseif n.class == "Material" then
    add(entity.provides, 'material', n.mapTo)
    for i = 1, 4 do
    for i = 1, 4 do
      add(entity.deps, 'tex', n.Stages[i].diffuseMap)
      add(entity.deps, 'tex', n.Stages[i].colorMap)
      add(entity.deps, 'tex', n.Stages[i].diffuseMap)
      add(entity.deps, 'tex', n.Stages[i].colorMap)
      add(entity.deps, 'tex', n.Stages[i].overlayMap)
      add(entity.deps, 'tex', n.Stages[i].colorMap)
      add(entity.deps, 'tex', n.Stages[i].overlayMap)
      add(entity.deps, 'tex', n.Stages[i].opacityMap)
      add(entity.deps, 'tex', n.Stages[i].overlayMap)
      add(entity.deps, 'tex', n.Stages[i].opacityMap)
      add(entity.deps, 'tex', n.Stages[i].colorPaletteMap)
      add(entity.deps, 'tex', n.Stages[i].opacityMap)
      add(entity.deps, 'tex', n.Stages[i].colorPaletteMap)
      add(entity.deps, 'tex', n.Stages[i].lightMap)
      add(entity.deps, 'tex', n.Stages[i].colorPaletteMap)
      add(entity.deps, 'tex', n.Stages[i].lightMap)
      add(entity.deps, 'tex', n.Stages[i].toneMap)
      add(entity.deps, 'tex', n.Stages[i].lightMap)
      add(entity.deps, 'tex', n.Stages[i].toneMap)
      add(entity.deps, 'tex', n.Stages[i].detailMap)
      add(entity.deps, 'tex', n.Stages[i].toneMap)
      add(entity.deps, 'tex', n.Stages[i].detailMap)
      add(entity.deps, 'tex', n.Stages[i].normalMap)
      add(entity.deps, 'tex', n.Stages[i].detailMap)
      add(entity.deps, 'tex', n.Stages[i].normalMap)
      add(entity.deps, 'tex', n.Stages[i].detailNormalMap)
      add(entity.deps, 'tex', n.Stages[i].normalMap)
      add(entity.deps, 'tex', n.Stages[i].detailNormalMap)
      add(entity.deps, 'tex', n.Stages[i].specularMap)
      add(entity.deps, 'tex', n.Stages[i].detailNormalMap)
      add(entity.deps, 'tex', n.Stages[i].specularMap)
      add(entity.deps, 'tex', n.Stages[i].annotationMap)
      add(entity.deps, 'tex', n.Stages[i].specularMap)
      add(entity.deps, 'tex', n.Stages[i].annotationMap)
      add(entity.deps, 'tex', n.Stages[i].envMap)
      add(entity.deps, 'tex', n.Stages[i].annotationMap)
      add(entity.deps, 'tex', n.Stages[i].envMap)
      -- old stuff
      -- old stuff
      add(entity.deps, 'tex', n.Stages[i].baseTex)
      add(entity.deps, 'tex', n.Stages[i].detailTex)
      add(entity.deps, 'tex', n.Stages[i].baseTex)
      add(entity.deps, 'tex', n.Stages[i].detailTex)
      add(entity.deps, 'tex', n.Stages[i].overlayTex)
      add(entity.deps, 'tex', n.Stages[i].detailTex)
      add(entity.deps, 'tex', n.Stages[i].overlayTex)
      add(entity.deps, 'tex', n.Stages[i].bumpTex)
      add(entity.deps, 'tex', n.Stages[i].overlayTex)
      add(entity.deps, 'tex', n.Stages[i].bumpTex)
      add(entity.deps, 'tex', n.Stages[i].envTex)
      add(entity.deps, 'tex', n.Stages[i].bumpTex)
      add(entity.deps, 'tex', n.Stages[i].envTex)
    end
    end
    add(entity.deps, 'simobject', n.cubemap)
  elseif n.class == "SFXAmbience" then
    add(entity.deps, 'simobject', n.environment)
    add(entity.deps, 'simobject', n.soundTrack)
    add(entity.deps, 'simobject', n.environment)
    add(entity.deps, 'simobject', n.soundTrack)
  elseif n.class == "SFXDescription" then
    add(entity.deps, 'simobject', n.environment)
  elseif n.class == "DecalData" then
    add(entity.deps, 'material', n.material)
  elseif n.class == "GroundCover" then
    add(entity.deps, 'material', n.material)
    add(entity.deps, 'shape', n.shapeFilename)
    add(entity.deps, 'material', n.material)
    add(entity.deps, 'shape', n.shapeFilename)
    add(entity.deps, 'SimObject', n.layer)
    add(entity.deps, 'shape', n.shapeFilename)
    add(entity.deps, 'SimObject', n.layer)
  elseif n.class == "ParticleData" then
    add(entity.deps, 'tex', n.animTexFrames)
    add(entity.deps, 'tex', n.textureName)
    add(entity.deps, 'tex', n.animTexFrames)
    add(entity.deps, 'tex', n.textureName)
    add(entity.deps, 'tex', n.animTexName)
    add(entity.deps, 'tex', n.textureName)
    add(entity.deps, 'tex', n.animTexName)
  elseif n.class == "ParticleEmitterData" then
    add(entity.deps, 'simobject', n.particles)
    add(entity.deps, 'tex', n.textureName)
    add(entity.deps, 'simobject', n.particles)
    add(entity.deps, 'tex', n.textureName)
  elseif n.class == "PrecipitationData" then
    add(entity.deps, 'simobject', n.soundProfile)
    add(entity.deps, 'tex', n.dropTexture)
    add(entity.deps, 'simobject', n.soundProfile)
    add(entity.deps, 'tex', n.dropTexture)
    add(entity.deps, 'tex', n.dropShader)
    add(entity.deps, 'tex', n.dropTexture)
    add(entity.deps, 'tex', n.dropShader)
    add(entity.deps, 'tex', n.splashTexture)
    add(entity.deps, 'tex', n.dropShader)
    add(entity.deps, 'tex', n.splashTexture)
    add(entity.deps, 'tex', n.splashShader)
    add(entity.deps, 'tex', n.splashTexture)
    add(entity.deps, 'tex', n.splashShader)
  elseif n.class == "ConvexShape" then
    add(entity.deps, 'material', n.material)
  elseif n.class == "GroundPlane" then
    add(entity.deps, 'material', n.material)
  elseif n.class == "LevelInfo" then
    add(entity.deps, 'simobject', n.globalEnviromentMap)
    -- soundAmbience
  elseif n.class == "TSStatic" then
    add(entity.deps, 'shape', n.shapeName)
  end
@/lua/ge/extensions/flowgraph/nodes/environment/planet.lua
  proc.canSave = false
  scenetree.MissionGroup:add(proc.obj)
  proc:createMesh({{mesh}})
@/inspector/Views/SidebarNavigationBar.js

        this.element.classList.add("sidebar-navigation-bar");
        this._holderElement = this.element.appendChild(document.createElement("div"));
@/inspector/Views/DetailsSectionTextRow.js

        this.element.classList.add("text");
@/inspector/Views/DOMEventsBreakdownView.js

        this.element.classList.add("dom-events-breakdown");
    }
        let timeHeadCell = headRowElement.appendChild(document.createElement("th"));
        timeHeadCell.classList.add("time");
        timeHeadCell.textContent = WI.UIString("Time");
        let originatorHeadCell = headRowElement.appendChild(document.createElement("th"));
        originatorHeadCell.classList.add("originator");
        originatorHeadCell.textContent = WI.UIString("Originator");
            let nameCell = rowElement.appendChild(document.createElement("td"));
            nameCell.classList.add("name");
            nameCell.textContent = domEvent.eventName;
                let graphCell = rowElement.appendChild(document.createElement("td"));
                graphCell.classList.add("graph");
                    let fullscreenArea = graphCell.appendChild(document.createElement("div"));
                    fullscreenArea.classList.add("area", "fullscreen");
                    fullscreenArea.style.setProperty(styleAttribute, percentOfTotalTime(fullscreenRange.startTimestamp - startTimestamp) + "%");
                    let powerEfficientPlaybackArea = graphCell.appendChild(document.createElement("div"));
                    powerEfficientPlaybackArea.classList.add("area", "power-efficient-playback");
                    powerEfficientPlaybackArea.title = WI.UIString("Power Efficient Playback");
            let timeCell = rowElement.appendChild(document.createElement("td"));
            timeCell.classList.add("time");
            let originatorCell = rowElement.appendChild(document.createElement("td"));
            originatorCell.classList.add("originator");
            if (domEvent.originator) {

                rowElement.classList.add("inherited");
                this.element.classList.add("has-inherited");
                rowElement.classList.add("inherited");
                this.element.classList.add("has-inherited");
            }
@/lua/ge/ge_utils.lua
    p:registerObject(objName)
    --MissionCleanup.add(%p)
    return p
@/ui/modules/apps/GenericGraphAdvanced/app.js
      let streamsList = ['genericGraphAdvanced']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/lua/ge/extensions/editor/gen/world.lua
	om:setName('o_'..nm..'_'..id)
	group:add(om.obj)
	om:createMesh({data})
				if oid then
					groupEdit:add(om.obj)
					aid[#aid+1] = oid
				end
--                groupEdit:add(om.obj)
			end
			if newid then
				scenetree.MissionGroup:add(om.obj)
				id = newid
						if oid then
							groupEdit:add(om.obj)
							aid[#aid+1] = oid
					lo('?? for_DAE:'..tostring(om.obj)..':'..nm..':'..id) --..':'..om.__parent)
				groupBat:add(om.obj)
				local x = center.x + math.random(2*R) - R
				om:registerObject(nm) --'tmp_'..tostring(os.clock()))
				groupEdit:add(om.obj)
]]
					om:registerObject(nm) --'tmp_'..tostring(os.clock()))
					groupBat:add(om.obj)
				end
@/inspector/Views/DOMNodeEventsContentView.js

        this.element.classList.add("dom-node-details", "dom-events");
@/inspector/Views/WebSocketResourceTreeElement.js
            var connectionIndicatorElement = document.createElement("div");
            connectionIndicatorElement.classList.add("ready-state", "connecting");
            connectionIndicatorElement.title = WI.UIString("Connecting");
            var connectionIndicatorElement = document.createElement("div");
            connectionIndicatorElement.classList.add("ready-state", "open");
            connectionIndicatorElement.title = WI.UIString("Open");
@/ui/modules/apps/DamageAppVehicleSimple/app.js
        var streamsList = ['wheelThermalData', 'engineInfo']
        StreamsManager.add(streamsList)
@/inspector/Views/HeapSnapshotInstanceFetchMoreDataGridNode.js
            let buttonElement = fragment.appendChild(document.createElement("span"));
            buttonElement.classList.add("more");
            buttonElement.textContent = WI.UIString("Show %d More").format(this._batchCount);
        let buttonElement = fragment.appendChild(document.createElement("span"));
        buttonElement.classList.add("more");
        buttonElement.textContent = WI.UIString("Show Remaining (%d)").format(this._remainingCount);
@/ui/modules/apps/BrakeTorqueGraph/app.js
      var streamsList = ['wheelInfo', 'electrics']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/ui/ui-vue/src/services/events.js
      // StreamManager has a built-in system to track multiple consumers, so we don't need to track anything here
      bridge.streams.add(names)
      bridge.events.on("onStreamsUpdate", callback)
@/inspector/Views/CanvasDetailsSidebarPanel.js

        this.element.classList.add("canvas");
@/inspector/Views/OpenResourceDialog.js

        this.element.classList.add("open-resource-dialog");
        let fieldElement = this.element.appendChild(document.createElement("div"));
        fieldElement.classList.add("field");
                let highlightSpan = document.createElement("span");
                highlightSpan.classList.add("highlighted");
                highlightSpan.append(title.substring(textRange.startColumn, textRange.endColumn));
@/inspector/Views/ResourceSidebarPanel.js

        this._anonymousScriptsFolderTreeElement.representedObject.add(representedObject);
        if (parentFolderTreeElement)
            parentFolderTreeElement.representedObject.add(script);
@/inspector/Views/LayerTreeDataGridNode.js
        if (layer.isReflection)
            element.classList.add("reflection");
        else if (layer.pseudoElement)
        else if (layer.pseudoElement)
            element.classList.add("pseudo-element");
    }
@/lua/ge/extensions/gameplay/drift/drift.lua
  if gameplay_drift_general.getGeneralDebug() then
    profiler:add("Drift detection")
    gc = profiler.sections[1].garbage
@/inspector/Models/TimelineRecording.js
            for (let instrument of this._instruments)
                this._firstRecordOfTypeAfterDiscontinuity.add(instrument.timelineRecordType);
        }
@/inspector/Views/MediaTimelineDataGridNode.js
        case "name":
            cell.classList.add(...this.iconClassNames());
            return value;
@/lua/ge/extensions/util/trackBuilder/segmentToProceduralMesh.lua

    scenetree.MissionGroup:add(splineObject.obj)
    splineObject:createMesh(segment.meshes)
@/inspector/Views/SpreadsheetCSSStyleDeclarationEditor.js

        this.element.classList.add(WI.SpreadsheetCSSStyleDeclarationEditor.StyleClassName);
@/inspector/Views/NetworkTimelineView.js

        this.element.classList.add("network");
        this.addSubview(this._dataGrid);
@/inspector/Views/DetailsSectionSimpleRow.js

        this.element.classList.add("simple");
            else
                this.element.classList.add(WI.DetailsSectionSimpleRow.DataStyleClassName);
        } else {
        } else {
            this.element.classList.add(WI.DetailsSectionSimpleRow.EmptyStyleClassName);
            this.element.classList.remove(WI.DetailsSectionSimpleRow.DataStyleClassName);
@/inspector/Views/RadioButtonNavigationItem.js
        if (flag) {
            this.element.classList.add(WI.RadioButtonNavigationItem.SelectedStyleClassName);
            this.element.setAttribute("aria-selected", "true");
        if (!isSelected) {
            this.element.classList.add(WI.RadioButtonNavigationItem.SelectedStyleClassName);
            this.element.setAttribute("aria-selected", "true");
@/lua/ge/client/init.lua
    maincef:registerObject("maincef")
    onlyGui:add(maincef)
  end
@/ui/lib/ext/vue3/vue.global.js
      if (!dep.has(activeEffect)) {
          dep.add(activeEffect);
          activeEffect.deps.push(dep);
                  if (effect !== activeEffect || effect.allowRecurse) {
                      effects.add(effect);
                  }
              if (key === 'length' || key >= newValue) {
                  add(dep);
              }
          if (key !== void 0) {
              add(depsMap.get(key));
          }
                  if (!isArray(target)) {
                      add(depsMap.get(ITERATE_KEY));
                      if (isMap(target)) {
                      if (isMap(target)) {
                          add(depsMap.get(MAP_KEY_ITERATE_KEY));
                      }
                      // new index added to array -> length changes
                      add(depsMap.get('length'));
                  }
                  if (!isArray(target)) {
                      add(depsMap.get(ITERATE_KEY));
                      if (isMap(target)) {
                      if (isMap(target)) {
                          add(depsMap.get(MAP_KEY_ITERATE_KEY));
                      }
                  if (isMap(target)) {
                      add(depsMap.get(ITERATE_KEY));
                  }
  }
  function add(value) {
      value = toRaw(value);
      if (!hadKey) {
          target.add(value);
          trigger(target, "add" /* ADD */, value, value);
      }
      record.instances.add(instance);
  }
          // on patch.
          hmrDirtyComponents.add(component);
          // 3. Make sure to unmark the component after the reload.
      }
      seen.add(value);
      if (isRef(value)) {
                  keys.delete(key);
                  keys.add(key);
              }
              else {
                  keys.add(key);
                  // prune oldest entry
                  else if (plugin && isFunction(plugin.install)) {
                      installedPlugins.add(plugin);
                      plugin.install(app, ...options);
                  else if (isFunction(plugin)) {
                      installedPlugins.add(plugin);
                      plugin(app, ...options);
  function addTransitionClass(el, cls) {
      cls.split(/\s+/).forEach(c => c && el.classList.add(c));
      (el._vtc ||
      (el._vtc ||
          (el._vtc = new Set())).add(cls);
  }
      }
      moveClass.split(/\s+/).forEach(c => c && clone.classList.add(c));
      clone.style.display = 'none';
                  if (checked) {
                      cloned.add(elementValue);
                  }
      }
      nameSet.add(name);
      if (name[0] === '=') {
                  }
                  seenSlotNames.add(staticSlotName);
                  if (staticSlotName === 'default') {
      context.helper(RESOLVE_COMPONENT);
      context.components.add(tag);
      return toValidAssetId(tag, `component`);
              context.helper(RESOLVE_DIRECTIVE);
              context.directives.add(dir.name);
              dirArgs.push(toValidAssetId(dir.name, `directive`));
          }
          seen.add(node);
          context.helper(SET_BLOCK_TRACKING);
@/ui/modules/apps/CompassPrecise/app.js
      var streamsList = ['sensors']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Base/ListMultimap.js

    add(key, value)
    {
@/inspector/Views/ColumnChart.js

        this.element.classList.add("column-chart");
@/inspector/Protocol/RemoteObject.js

            seenPropertyNames.add(propertyName);
            requestedValues.push(this.getProperty(propertyName));
@/inspector/Views/AuditTestGroupContentView.js

        this.element.classList.add("audit-test-group");
        this.element.classList.toggle("contains-test-case", this._subobjects().some((test) => test instanceof WI.AuditTestCase || test instanceof WI.AuditTestCaseResult));
        let informationContainer = this.headerView.element.appendChild(document.createElement("div"));
        informationContainer.classList.add("information");
        this._percentageContainer = this.headerView.element.appendChild(document.createElement("div"));
        this._percentageContainer.classList.add("percentage-pass");
        this._percentageContainer.hidden = true;
@/inspector/Views/SearchSidebarPanel.js
        var searchElement = document.createElement("div");
        searchElement.classList.add("search-bar");
        this.element.appendChild(searchElement);
                    continue;
                preventDuplicates.add(key);
    {
        this.element.classList.add("changed");
            this._changedBanner = document.createElement("div");
            this._changedBanner.classList.add("banner");
            this._changedBanner.append(WI.UIString("The page's content has changed"), document.createElement("br"));
@/ui/modules/apps/GenericGraphSimple/app.js
      let streamsList = ['genericGraphSimple']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Views/SpreadsheetTextField.js
            this._suggestionHintElement.contentEditable = false;
            this._suggestionHintElement.classList.add("completion-hint");
            this._suggestionsView = new WI.CompletionSuggestionsView(this, {preventBlur: true});

        this._element.classList.add("spreadsheet-text-field");

        this._element.classList.add("editing");
        this._element.contentEditable = "plaintext-only";
@/lua/ge/extensions/editor/gen/exp_meshexplorer.lua
            om:registerObject(val) --'tmp_'..tostring(os.clock()))
            scenetree.findObject('edit'):add(om.obj)
--            local box = om:getWorldBox()
@/inspector/Controllers/CanvasManager.js

        this._savedRecordings.add(recording);

        canvas.shaderProgramCollection.add(program);
    }
            recording.createDisplayName(recording.displayName);
            this._savedRecordings.add(recording);
            this.dispatchEventToListeners(WI.CanvasManager.Event.RecordingSaved, {recording});
@/lua/ge/server/server.lua
    TorqueScriptLua.setVar("$instantGroup", 0)
    if p then p:add("endMission.vars") end
    clientEndMission(missionFilename)
    clientEndMission(missionFilename)
    if p then p:add("endMission.clientEndMission") end
    end
    if p then p:add("endMission.editorGui") end
    end
    if p then p:add("endMission.audio") end
    decalManagerClear()
    if p then p:add("endMission.decals") end
    scenetree.MissionGroup:deleteAllObjects()
    if p then p:add("endMission.deleteObjects") end
    scenetree.MissionGroup:delete()
    scenetree.MissionGroup:delete()
    if p then p:add("endMission.delete") end
  end
    scenetree.MissionCleanup:delete()
    if p then p:add("endMission.cleanup") end
  end
    scenetree.LevelLoadingGroup:delete()
    if p then p:add("endMission.levelLoading") end
  end
    clearLevelLogs()
    if p then p:add("endMission.clearLogs") end
  end
  setMissionPath("")
    if p then p:add("endMission.finalSet") end
end
  TorqueScriptLua.setVar("$missionRunning", "false")
  if p then p:add("server.destroy.setvar") end
  endMission(p)
  if p then p:add("server.destroy.endMission") end
  be:physicsDestroyWorld()
  if p then p:add("server.destroy.physics") end
  TorqueScriptLua.setVar("$Server::GuidList", "")
  if p then p:add("server.destroy.setvar") end
  be:deleteDataBlocks()
  if p then p:add("server.destroy.datablocks") end
  TorqueScriptLua.setVar("$Server::Session", sessionCnt)
  if p then p:add("server.destroy.sessioncount") end
  rawset(_G, 'gameConnection', nil) -- backward compatibility
  if p then p:add("server.destroy.rawsets") end
end
@/lua/ge/extensions/editor/dynamicDecals/textures.lua
  if #missingSidecarFiles > 0 then
    notification.add("Textures", "Missing texture meta files",
      function()
  if #missingSidecarFiles > 0 then
    notification.add("Textures", "Missing texture meta files",
      function()
@/inspector/Views/SpreadsheetCSSStyleDeclarationSection.js
        let element = document.createElement("section");
        element.classList.add("spreadsheet-css-declaration");
        this._headerElement = document.createElement("div");
        this._headerElement.classList.add("header");
        this._selectorElement = document.createElement("span");
        this._selectorElement.classList.add("selector");
        this._selectorElement.addEventListener("mouseenter", this._highlightNodesWithSelector.bind(this));
        this._openBrace = document.createElement("span");
        this._openBrace.classList.add("open-brace");
        this._openBrace.textContent = " {";
            this._selectorTextField.addEventListener(WI.SpreadsheetSelectorField.Event.StartedEditing, (event) => {
                this._headerElement.classList.add("editing-selector");
            });
        this._propertiesEditor = new WI.SpreadsheetCSSStyleDeclarationEditor(this, this._style);
        this._propertiesEditor.element.classList.add("properties");
        this._propertiesEditor.addEventListener(WI.SpreadsheetCSSStyleDeclarationEditor.Event.FilterApplied, this._handleEditorFilterApplied, this);
        this._closeBrace = document.createElement("span");
        this._closeBrace.classList.add("close-brace");
        this._closeBrace.textContent = "}";
        if (!this._style.editable)
            this._element.classList.add("locked");
        else if (!this._style.ownerRule)
        else if (!this._style.ownerRule)
            this._element.classList.add("selector-locked");
            if (matched)
                selectorElement.classList.add(WI.SpreadsheetCSSStyleDeclarationSection.MatchedSelectorElementStyleClassName);
            selectorElement.textContent = selectorText;
            selectorElement.classList.add(WI.SpreadsheetCSSStyleDeclarationSection.MatchedSelectorElementStyleClassName);
        };
            this._selectorElement.textContent = WI.UIString("Style Attribute", "CSS properties defined via HTML style attribute");
            this._selectorElement.classList.add("style-attribute");
            break;
        let mediaElement = document.createElement("div");
        mediaElement.classList.add("header-media");
            this._mouseDownIndex = propertyIndex;
            this._element.classList.add("selecting");
        } else
            if (mediaElement.textContent.includes(this._filterText)) {
                mediaElement.classList.add(WI.GeneralStyleDetailsSidebarPanel.FilterMatchSectionClassName);
                matchesMedia = true;
            if (selectorElement.textContent.includes(this._filterText)) {
                selectorElement.classList.add(WI.GeneralStyleDetailsSidebarPanel.FilterMatchSectionClassName);
                matchesSelector = true;
        if (!matches)
            this._element.classList.add(WI.GeneralStyleDetailsSidebarPanel.NoFilterMatchInSectionClassName);
@/inspector/Views/DatabaseContentView.js

        this.element.classList.add("storage-view", "query", "monospace");
@/lua/vehicle/scriptai.lua
    csvLog = require('csvlib').newCSV("fileName", "externalForce", "speedDiffSmootherOutRate")
    csvLog:add(fileName, externalForce, speedDiffSmoother[true])
    csvLog:write("settings_"..fileName)
  local timeDiff = scriptTime - time -- negative value indicates vehicle is lagging script
  if csvLog then csvLog:add(time, aiPos.x, aiPos.y, aiPos.z, timeDiff, speedDiffSmoother[true]) end
@/ui/modules/apps/ForcedInductionDebug/app.js
      var streamsList = ['forcedInductionInfo']
      StreamsManager.add(streamsList)
      $scope.$on('$destroy', function () {
@/lua/ge/extensions/flowgraph/nodes/scene/spawnPrefab.lua
    if scenetree.MissionGroup then
      scenetree.MissionGroup:add(scenetreeObject)
    else
@/inspector/Views/DOMTreeOutline.js

        this.element.classList.add("dom", WI.SyntaxHighlightedStyleClassName);
        if (showLastSelected)
            this.element.classList.add("show-last-selected");
                continue;
            removedDOMNodes.add(treeElement.representedObject);
            treeElement.remove();
        this.dragOverTreeElement = treeElement;
        treeElement.listItemElement.classList.add("elements-drag-over");
        treeElement.updateSelectionArea();
@/inspector/Views/SearchBar.js

        this._element.classList.add("search-bar");
@/inspector/Views/DebuggerSidebarPanel.js
        this._timelineRecordingWarningElement = document.createElement("div");
        this._timelineRecordingWarningElement.classList.add("warning-banner");
        this._timelineRecordingWarningElement.append(WI.UIString("Debugger disabled during Timeline recording"), document.createElement("br"));
        this._auditTestWarningElement = document.createElement("div");
        this._auditTestWarningElement.classList.add("warning-banner");
        this._auditTestWarningElement.append(WI.UIString("Debugger disabled during Audit"), document.createElement("br"));
        this._breakpointsDisabledWarningElement = document.createElement("div");
        this._breakpointsDisabledWarningElement.classList.add("warning-banner");
        this._breakpointsDisabledWarningElement.append(WI.UIString("Breakpoints disabled"), document.createElement("br"));

        this.element.classList.add(WI.DebuggerSidebarPanel.DebuggerPausedStyleClassName);
    }
                    let targetDescriptionRow = new WI.DetailsSectionSimpleRow(WI.UIString("Details"), fragment);
                    targetDescriptionRow.element.classList.add("target-description");
@/inspector/Views/PinnedTabBarItem.js

        this.element.classList.add("pinned");
@/ui/modules/apps/SimpleDash/app.js

      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Views/TextContentView.js

        this.element.classList.add("text");
@/lua/ge/extensions/gameplay/drift/bounds.lua
  if gameplay_drift_general.getGeneralDebug() then
    profiler:add("Drift bounds")
    gc = profiler.sections[1].garbage
@/inspector/Views/AreaChart.js

        this.element.classList.add("area-chart");
@/lua/ge/main.lua
  map.updateGFX(dtReal, dtSim)
  if geluaProfiler then geluaProfiler:add("luaPreRender map update") end
  extensions.hook('onPreRender', dtReal, dtSim, dtRaw)
  extensions.hook('onPreRender', dtReal, dtSim, dtRaw)
  if geluaProfiler then geluaProfiler:add("luaPreRender extensions") end

  if geluaProfiler then geluaProfiler:add("luaPreRender drawdebug") end

  if geluaProfiler then geluaProfiler:add("luaPreRender ending") end
end
  simTimeAuthority.update(dtReal)
  if geluaProfiler then geluaProfiler:add("update beginning") end
  extensions.hook('onUpdate', dtReal, dtSim, dtRaw)
  if geluaProfiler then geluaProfiler:add("update extensions") end
  if be:getUpdateUIflag() then
    extensions.hook('onGuiUpdate', dtReal, dtSim, dtRaw)
    if geluaProfiler then geluaProfiler:add("update onGuiUpdate") end

  if geluaProfiler then geluaProfiler:add("update ending") end
  if geluaProfiler then
  extensions.hook('onPreExit')
  p:add("extensions.onPreExit")
  p:finish(true)
  extensions.hook('onExit')
  p:add("extensions.onExit")
  serverConnection.noLoadingScreenDisconnect(p)
  p:add("noLoadingScreenDisconnect")
  PhysicsPlugin.destroy()
  p:add("PhysicsPlugin")
  -- Parent::onExit();
  p:add("ParentOnExit")
  local mainEventManager = scenetree.findObject("MainEventManager")
  p:add("MainEventManager.find")
  if mainEventManager then
    mainEventManager:postEvent("onExit", 0)
    p:add("MainEventManager.onExit")
  else
    log("E","", "Couldn't find event manager 'MainEventManager'")
    p:add("MainEventManager.onError")
  end
  postFxModule.savePresetFile('settings/postfxSettings.postfx')
  p:add("savePostFx")
  settings.exit()
  settings.exit()
  p:add("settings")
  p:finish(true)
  --   -- fb:registerObject(fb:getName())
  --   -- forestBrushGroup:add(fb)
  -- end
@/ui/modules/apps/IndicatedAirspeed/app.js
      var streamsList = ['electrics']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Views/ChangesDetailsSidebarPanel.js

        this.element.classList.add("changes-panel");
    }
            let resourceSection = this.element.appendChild(document.createElement("section"));
            resourceSection.classList.add("resource-section");
            let resourceHeader = resourceSection.appendChild(document.createElement("div"));
            resourceHeader.classList.add("header");
            resourceHeader.append(styleSheet.isInlineStyleAttributeStyleSheet() ? styles[0].selectorText : this._createLocationLink(styleSheet));
        let ruleElement = document.createElement("div");
        ruleElement.classList.add("css-rule");
            selectorElement.textContent = WI.UIString("Style Attribute");
            selectorElement.classList.add("style-attribute");
        } else
            let propertyLineElement = ruleElement.appendChild(document.createElement("div"));
            propertyLineElement.classList.add("css-property-line", className);
@/inspector/Views/GeneralTreeElement.js
        if (this._listItemNode)
            this._listItemNode.classList.add(...this._classNames);
    }
        if (this._listItemNode)
            this._listItemNode.classList.add(className);
    }

        this._listItemNode.classList.add("item");
        if (this._classNames)
            this._listItemNode.classList.add(...this._classNames);
                this._subtitleElement.textContent = "";
            this._titlesElement.classList.add(WI.GeneralTreeElement.NoSubtitleStyleClassName);
        }
@/inspector/Views/CanvasOverviewContentView.js

        this.element.classList.add("canvas-overview");
            this._savedRecordingsContentView = new WI.ContentView;
            this._savedRecordingsContentView.element.classList.add("canvas", "saved-recordings");
            this.addSubview(this._savedRecordingsContentView);
@/inspector/Views/CanvasTabContentView.js
        this._overviewTreeElement.appendChild(new WI.CanvasTreeElement(canvas));
        this._canvasCollection.add(canvas);
@/ui/ui-vue/src/modules/liveryEditor/stores/actionHoldService.js
    if (data.value[id]) remove(id)
    add(id, actionFn, immediateStart, options)
  }
@/ui/modules/apps/Compass/app.js
      var streamsList = ['sensors']
      StreamsManager.add(streamsList)
@/ui/modules/apps/ForceFeedbackGraph/app.js
      var streamsList = ['sensors', 'electrics']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/lua/ge/extensions/ui/apps/minimap/minimap.lua
  im.Dummy(imVec01)
  if p then p:add("setup") end
    ui_apps_minimap_utils.drawGrid()
    if p then p:add("Grid") end
  end
    firstPass = false
    if p then p:add("Roads BG") end
  end
    firstPass = false
    if p then p:add("Roads FG") end
  end
    ui_apps_minimap_route.drawNavigationRoute(td, dpi)
    if p then p:add("Navigation") end
    ui_apps_minimap_route.drawRoutePointer(td)
    ui_apps_minimap_route.drawRoutePointer(td)
    if p then p:add("Route Pointer") end
  end
    td:circle(width/2 + offsetX,height/2 + offsetY, 100/scale-w, w, 0, 0, color(255,255,255,0),color(255,255,255,250), 0, layers.GAMEPLAY_MARKERS)
    if p then p:add("100mRadius") end
  end
    drawPlaymodeMarkers()
    if p then p:add("Playmode Markers") end
  end
    ui_apps_minimap_vehicles.drawOtherVehicles(dtReal, dtSim)
    if p then p:add("Other Vehicles") end
    scaleInverse = 1/scale
    if p then p:add("Player") end
  end
  M.drawOcclusion(offsetX, offsetY)
  if p then p:add("Occlusion") end
    drawCompass(offsetX, offsetY)
    if p then p:add("Compass") end
  end
    M.drawDebugOverlay()
    if p then p:add("Debug Overlay") end
  end
  im.PushStyleVar2(im.StyleVar_WindowPadding, padding)
  if p then p:add("Canvas and window setup") end
  if im.Begin("SDF Minimap",nil, bit.bor(im.WindowFlags_NoScrollbar, im.WindowFlags_NoScrollWithMouse, im.WindowFlags_NoTitleBar, im.WindowFlags_NoResize, im.WindowFlags_NoMove, im.WindowFlags_NoInputs, im.WindowFlags_Modal)) then
  if debugSettingsOpen then
    if p then p:add("debugSettings window") end
    if im.Begin("SDF Minimap debugSettings") then
@/lua/vehicle/extensions/tech/ACC.lua
            local time = math.floor(timer * 1000) / 1000 -- Make sure time doesn't have dozen of digits
            csvData:add(time, velocityy, targetSpeed, u)
            timer = timer + dtSim
@/lua/ge/extensions/ui/gridSelectorUtils/tilesModule.lua
    end)
    p:add("sort groups")
    local data = getDataFunction()
    p:add("getUiData")
    local pathType = path.keys[1]
    p:add("setupValidFilters")

      p:add("lua function finished, sending groups to UI...")
      p:finish(true)
@/inspector/Views/FilterBar.js
        this._element = element || document.createElement("div");
        this._element.classList.add("filter-bar");
@/inspector/Models/ResourceCollection.js
            let resourcesCollectionForType = this.resourceCollectionForType(resource.type);
            resourcesCollectionForType.add(resource);
        }
        let resourcesWithNewType = this.resourceCollectionForType(resource.type);
        resourcesWithNewType.add(resource);
@/inspector/Views/SidebarPanel.js

        this.element.classList.add("panel", identifier);
        this._contentView = new WI.View;
        this._contentView.element.classList.add("content");
        this.addSubview(this._contentView);
@/lua/ge/extensions/ui/vehicleSelector/general.lua
  local modelList, configList, modelAndConfigList = {}, {}, {}
  p:add("displayData")
  for modelName, _ in pairs(core_vehicles.getModelsData()) do
  end
  p:add("vehicle and config list")
  filterInstance.initializeFilters(modelAndConfigList)
  uiData.activeFilters, uiData.onlyCommonFilters = filterInstance.calculateActiveFilters()
  p:add("filterList")
  -- Update uiData
  uiData.displayInfo = core_vehicles.displayInfo
  p:add("uiData finished")
  p:finish(true)
  if tag and tag ~= "" and tag ~= "undefined" then
    M.p:add(tag)
  else
  else
    M.p:add("profilerFinish (no tag, UI is now ready)")
    M.p:finish(true)
@/inspector/Models/CSSKeywordCompletions.js
        if (property.inherited)
            WI.CSSKeywordCompletions.InheritedProperties.add(property.name);
    for (var value of existingValues)
        union.add(value);
    for (var value of newValues)
    for (var value of newValues)
        union.add(value);
@/ui/lib/ext/angular-material/angular-material.js
     */
    function add(item, index) {
      if ( !item ) return -1;
    if (angular.isUndefined(result)) {
      result = add(validated);
    }

  function add(query) {
    var result = mqls[query] = $window.matchMedia(query);

    rgCtrl.add(render);
    attr.$observe('value', render);
      if (isScrollable) {
        selectNode.classList.add('md-overflow');
      }

      var deregister = $$sticky.add(element, stickyClone || element.clone());
      scope.$on('$destroy', deregister);
    // Add an element and its sticky clone to this content's sticky collection
    function add(element, stickyClone) {
      stickyClone.addClass('md-sticky-clone');
@/inspector/Views/LayoutTimelineDataGridNode.js
        case "name":
            cell.classList.add(...this.iconClassNames());
            return value;
@/inspector/Views/ScopeBar.js

        this._element.classList.add("scope-bar");
@/inspector/Controllers/CodeMirrorCompletionController.js
        var container = document.createElement("span");
        container.classList.add(WI.CodeMirrorCompletionController.CompletionHintStyleClassName);
        container.textContent = text;
@/inspector/Views/ScriptProfileTimelineView.js

        this.element.classList.add("script");
@/inspector/Views/ButtonNavigationItem.js
        this.element.classList.remove(...Object.values(WI.ButtonNavigationItem.Style));
        this.element.classList.add(newButtonStyle);
@/ui/modules/apps/app.js
      $scope.$on('editApps', (_, mode) => {
        if (mode) $element[0].classList.add('editable')
        else      $element[0].classList.remove('editable')

        $element[0].classList.add('active')
        $document.on('mousemove', translate)
@/lua/common/libs/luamqtt/mqtt/ioloop.lua
-- @return true on success or false and error message on failure
function ioloop_mt:add(client)
	local clients = self.clients
@/inspector/Views/TabBarItem.js
        this._element = document.createElement("div");
        this._element.classList.add(WI.TabBarItem.StyleClassName);
        this._element.setAttribute("role", "tab");
        this._iconElement = document.createElement("img");
        this._iconElement.classList.add("icon");
        this._element.appendChild(this._iconElement);
@/ui/modules/apps/SimpleTacho/app.js
        var streamsList = ['engineInfo']
        StreamsManager.add(streamsList)
@/inspector/Models/Collection.js
        for (let item of items)
            this.add(item);
    }

    add(item)
    {
        console.assert(!this._items.has(item));
        this._items.add(item);
@/inspector/Views/SpreadsheetSelectorField.js
        this._element = element;
        this._element.classList.add("spreadsheet-selector-field");
        let element = this._element;
        element.classList.add("editing");
        element.contentEditable = "plaintext-only";
@/inspector/Views/DOMStorageContentView.js

        this.element.classList.add("dom-storage");
            else
                editingNode.element.classList.add(WI.DOMStorageContentView.MissingKeyStyleClassName);
        } else if (isEditingValue) {
            else
                editingNode.element.classList.add(WI.DOMStorageContentView.MissingValueStyleClassName);
        }
            if (domStorage.entries.has(key))
                editingNode.element.classList.add(WI.DOMStorageContentView.DuplicateKeyStyleClassName);
            else
@/inspector/Views/TextEditor.js

        this.element.classList.add("text-editor", WI.SyntaxHighlightedStyleClassName);
@/inspector/Views/SettingsView.js

        this.element.classList.add("settings-view", identifier);
    }
        let separatorElement = this.element.appendChild(document.createElement("div"));
        separatorElement.classList.add("separator");
    }
        containerElement.append(...nodes);
        containerElement.classList.add("container", "container-centered");
        this.element.append(containerElement);
@/lua/ge/map.lua

        lines:add(svg.Polyline({p1.x - minX, maxY - p1.y, p2.x - minX, maxY - p2.y}, {
          fill = 'none',
    end
    svgDoc:add(lines)
  end
      local p = n.pos - terrainPosition
      nodes:add(svg.Circle(p.x - minX, maxY - p.y, n.radius, {
        fill = 'black',
    end
    svgDoc:add(nodes)
  end
  if dataToCSV then
    dataToCSV:add(0, trajectory.energy)
  end
    if dataToCSV then
      dataToCSV:add(i, trajectory.energy)
    end
    for i = 1, #trajectory do
      trajectoryToCSV2:add(trajectory[i].pos.x, trajectory[i].pos.y, trajectory[i].pos.z, trajectory[i].halfWidth)
    end
@/inspector/Views/NetworkTimelineOverviewGraph.js

        this.element.classList.add("network");
            rowRecords.__element = document.createElement("div");
            rowRecords.__element.classList.add("graph-row");
            this.element.appendChild(rowRecords.__element);
@/inspector/Views/ExpandableView.js
            let disclosureButton = document.createElement("button");
            disclosureButton.classList.add("disclosure-button");
            disclosureButton.addEventListener("click", this._onDisclosureButtonClick.bind(this));
@/lua/ge/client/postFx/lightRay.lua
  rayShaderPFX:registerObject()
  lightRayPostFX:add(rayShaderPFX)
end
@/lua/common/extensions.lua
        func(...)
        profiler:add(extCallName)
      end
@/lua/ge/extensions/gameplay/missions/locationsDetector.lua
  accessible = true -- keeping this for later, when we have bg activities again
  if p then p:add("getMissionsAtLocation") end
  for _, cluster in ipairs(gameplay_missions_clustering.getAllClusters(freeroam_bigMapMode.bigMapActive() and freeroam_bigMapMode.clusterMergeRadius)) do
  ]]
  if p then p:add("Missions complete") end
  return changed
@/inspector/External/CodeMirror/codemirror.js

  function add(left, top, width, bottom) {
    if (top < 0) { top = 0 }
      if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part
        add(left, leftPos.top, null, leftPos.bottom)
        left = leftSide
        left = leftSide
        if (leftPos.bottom < rightPos.top) { add(left, leftPos.bottom, null, rightPos.top) }
      }
      if (left < leftSide + 1) { left = leftSide }
      add(left, rightPos.top, right - left, rightPos.bottom)
    })
      if (leftEnd.top < rightStart.top - 2) {
        add(leftEnd.right, leftEnd.top, null, leftEnd.bottom)
        add(leftSide, rightStart.top, rightStart.left, rightStart.bottom)
        add(leftEnd.right, leftEnd.top, null, leftEnd.bottom)
        add(leftSide, rightStart.top, rightStart.left, rightStart.bottom)
      } else {
      } else {
        add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom)
      }
    if (leftEnd.bottom < rightStart.top)
      { add(leftSide, leftEnd.bottom, null, rightStart.top) }
  }
@/inspector/Views/ProfileView.js

        this.element.classList.add("profile");
        element[key] = guidanceElement;
        guidanceElement.classList.add("guidance", type);
        guidanceElement.classList.toggle("base", node === baseElement);
@/inspector/Views/OverviewTimelineView.js

        this.element.classList.add("overview");
        this.addSubview(this._dataGrid);
@/inspector/Views/DOMTreeElement.js
    {
        this._highlightedAttributes.add(name);
    }
        if (this.hovered)
            this.listItemElement.classList.add("hovered");
        listItemElement.addEventListener("animationend", this._boundHighlightAnimationEnd);
        listItemElement.classList.add(WI.DOMTreeElement.HighlightStyleClassName);
    }
        if (this._highlightedAttributes.has(name))
            attrSpanElement.classList.add("highlight");
    }
                    fragmentElement.textContent = WI.UIString("Shadow Content (%s)").format(WI.DOMTreeElement.shadowRootTypeDisplayName(node.shadowRootType()));
                    this.listItemElement.classList.add("shadow");
                } else if (node.parentNode && node.parentNode.templateContent() === node) {
                    fragmentElement.textContent = WI.UIString("Template Content");
                    this.listItemElement.classList.add("template");
                } else {
                    fragmentElement.textContent = WI.UIString("Document Fragment");
                    this.listItemElement.classList.add("fragment");
                }
        element.addEventListener("animationend", existing.listener, {once: true});
        element.classList.add("node-state-changed");
    }
                this._pseudoClassIndicatorElement = document.createElement("div");
                this._pseudoClassIndicatorElement.classList.add("pseudo-class-indicator");
            }
                this._subtreeBreakpointTreeElements = new Set;
            this._subtreeBreakpointTreeElements.add(treeElement);
        } else {
            this._statusImageElement = WI.ImageUtilities.useSVGSymbol("Images/DOMBreakpoint.svg", "status-image");
            this._statusImageElement.classList.add("breakpoint");
            this._statusImageElement.addEventListener("click", this._statusImageClicked.bind(this));
@/ui/lib/int/vueService_mod.js
    if (this.streams) {
      window.bridge.streams.add(this.streams)
    }
@/lua/ge/extensions/tech/techCore.lua
  proc.canSave = false
  scenetree.MissionGroup:add(proc.obj)
  proc:createMesh({{mesh}})
@/ui/lib/int/vueService.js
    if (this.streams) {
      window.bridge.streams.add(this.streams)
    }
@/lua/ge/extensions/editor/dynamicDecals/fonts.lua
    editor.logWarn(string.format("%s - Not able to create font atlas for '%s'", logTag, path))
    notification.add("Fonts", "Font Atlas creation failed", "Font Atlas creation failed. Check logs for more info.", notification.levels.error)
  end
@/inspector/Views/TypeTokenView.js
        var span = document.createElement("span");
        span.classList.add("type-token");
        if (shouldHaveRightMargin)
        if (shouldHaveRightMargin)
            span.classList.add("type-token-right-spacing");
        if (shouldHaveLeftMargin)
        if (shouldHaveLeftMargin)
            span.classList.add("type-token-left-spacing");
        this._colorClass = WI.TypeTokenView.ColorClassForType[hashString] || "type-token-default";
        this.element.classList.add(this._colorClass);
    }
@/lua/common/event.lua

function Event.add(self, fun)
  check_function(fun)
@/inspector/Models/Canvas.js

        this._extensions.add(extension);

            this._recordingCollection.add(recording);
        }
@/inspector/Views/Table.js

        this.element.classList.add("table", identifier);
        this.element.tabIndex = 0;
        let cell = document.createElement("span");
        cell.classList.add("cell", column.identifier);
        cell.textContent = column.name;
        if (column.align)
            cell.classList.add("align-" + column.align);
        if (column.sortable) {
        if (column.sortable) {
            cell.classList.add("sortable");
            cell.addEventListener("click", this._handleHeaderCellClicked.bind(this, column));
        let cell = document.createElement("span");
        cell.classList.add("cell", column.identifier);
        return cell;
        let cell = document.createElement("span");
        cell.classList.add("cell", column.identifier);
        if (column.align)
        if (column.align)
            cell.classList.add("align-" + column.align);
        if (this._columnWidths)
        if (this.isRowSelected(rowIndex))
            row.classList.add("selected");

        this._scrollContainerElement.classList.add("not-scrollable");
@/ui/modules/apps/EngineHeatDebugGraph/app.js
      var streamsList = ['engineThermalData']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/ui/modules/apps/TorqueCurve-v2/app.js
      var streamsList = ['engineInfo']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Views/TimelineView.js

        this.element.classList.add("timeline-view");
@/ui/modules/apps/EngineDebug/app.js
      var streamsList = ['engineInfo']
      StreamsManager.add(streamsList)
      $scope.$on('$destroy', function () {
@/lua/common/libs/LuaIRC/set.lua

function set:add(connection)
    local socket = connection.socket
@/inspector/Views/StackTraceView.js
        var element = this._element = document.createElement("div");
        element.classList.add("stack-trace");
@/inspector/Views/ContentBrowser.js

        this.element.classList.add("content-browser");
@/inspector/Views/RangeChart.js

        this.element.classList.add("range-chart");
            rect.setAttribute("x", x);
            rect.classList.add(className);
        }
@/lua/ge/extensions/editor/crawlEditor/waypoints.lua
  if im.Button("New String") then
    fields:add(ffi.string(self.addFieldText),'string',"value")
    self.addFieldText = im.ArrayChar(256,"")
  if im.Button("New Number") then
    fields:add(ffi.string(self.addFieldText),'number',0)
    self.addFieldText = im.ArrayChar(256,"")
@/ui/ui-vue/src/common/directives/BngOnUiNav.js

  // data.uiNavHandler = UINavHandlers.add(
  //   _getHandlerElement(element),

  data.uiNavHandler = UINavHandlers.add(
    element,
@/inspector/Views/ScopeBarItem.js
        if (className)
            this._element.classList.add(className);
        this._element.textContent = label;
@/inspector/Views/ConsoleSession.js
        let header = document.createElement("div");
        header.classList.add("console-session-header");
        var messageElement = messageView.element;
        messageElement.classList.add(WI.LogContentView.ItemWrapperStyleClassName);
        this.append(messageElement);
@/inspector/Views/CanvasContentView.js

        this.element.classList.add("canvas");
            this._viewRelatedItemsContainer = footer.appendChild(document.createElement("div"));
            this._viewRelatedItemsContainer.classList.add("view-related-items");
            this._viewShaderButton = document.createElement("img");
            this._viewShaderButton.classList.add("view-shader");
            this._viewShaderButton.title = WI.UIString("View Shader");
            this._viewRecordingButton = document.createElement("img");
            this._viewRecordingButton.classList.add("view-recording");
            this._viewRecordingButton.title = WI.UIString("View Recording");
@/inspector/Views/TypeTreeView.js
        this._outline.customIndent = true;
        this._outline.element.classList.add("type");
        this._element.appendChild(this._outline.element);
@/inspector/Views/ResourceSecurityContentView.js

        this.element.classList.add("resource-details", "resource-security");
    }
            let pairElement = this._certificateSection.appendKeyValuePair(button);
            pairElement.classList.add("show-certificate");
        }
            let showMoreElement = document.createElement("a");
            showMoreElement.classList.add("show-more");
            showMoreElement.textContent = WI.UIString("Show %d More").format(remaining);
@/ui/modules/apps/SimplePitch/app.js
      let streamsList = ['sensors']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/ui/modules/apps/SimpleGears/app.js
      link: function (scope, element, attrs) {
        StreamsManager.add(['electrics', 'engineInfo'])
@/ui/modules/apps/EngineThermalDebug/app.js
      var streamsList = ['engineThermalData']
      StreamsManager.add(streamsList)
      $scope.$on('$destroy', function () {
@/ui/modules/apps/SimplePedals/app.js
    link: function (scope, element, attrs) {
      StreamsManager.add(['electrics'])
@/ui/modules/apps/SimpleSteering/app.js
      var streamsList = ['sensors', 'electrics']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Controllers/TimelineManager.js
                case WI.TimelineRecord.Type.Script:
                    instrumentSet.add(target.TimelineAgent.Instrument.ScriptProfiler);
                    break;
                case WI.TimelineRecord.Type.HeapAllocations:
                    instrumentSet.add(target.TimelineAgent.Instrument.Heap);
                    break;
                case WI.TimelineRecord.Type.Media:
                    instrumentSet.add(target.TimelineAgent.Instrument.Timeline);
                    break;
                case WI.TimelineRecord.Type.CPU:
                    instrumentSet.add(target.TimelineAgent.Instrument.CPU);
                    break;
                case WI.TimelineRecord.Type.Memory:
                    instrumentSet.add(target.TimelineAgent.Instrument.Memory);
                    break;
@/ui/modules/bigmap/bigmap.js
            for(const poiId of gr.elements) {
              shownIdSet.add(poiId)
            }
@/inspector/Models/Recording.js

        recordingNameSet.add(name);
        this._displayName = name;
@/inspector/Views/URLBreakpointPopover.js
        let contentElement = document.createElement("div");
        contentElement.classList.add("url-breakpoint-content");
        let label = document.createElement("div");
        label.classList.add("label");
        label.textContent = WI.UIString("Break on request with URL:");
        let editorWrapper = document.createElement("div");
        editorWrapper.classList.add("editor-wrapper");
        let editorElement = document.createElement("div");
        editorElement.classList.add("editor");
@/lua/ge/extensions/editor/sitesEditor/sortedListDisplay.lua
    for _, id in ipairs(self.selections) do
      self.objects[id].customFields:add(ffi.string(self.addFieldText), 'string', "value")
    end
    for _, id in ipairs(self.selections) do
      self.objects[id].customFields:add(ffi.string(self.addFieldText), 'number', 0)
    end
@/ui/ui-vue/src/services/navigator-class.js
    if (this.displayed) {
      this.elm.classList.add("fadein");
      this.elm.classList.remove("fadeout");
      this.elm.classList.remove("fadein");
      this.elm.classList.add("fadeout");
    }
@/inspector/Views/SpanningDataGridNode.js
        let cellElement = this.createCell(WI.SpanningDataGridNode.ColumnIdentifier);
        cellElement.classList.add("spanning");
        cellElement.setAttribute("colspan", this.dataGrid.columns.size);
@/inspector/Views/LayerTreeDetailsSidebarPanel.js

        this.element.classList.add("layer-tree");
    }
@/inspector/Views/ApplicationCacheFrameContentView.js

        this.element.classList.add("application-cache-frame");
        this._emptyView = WI.createMessageTextView(WI.UIString("No Application Cache information available"), false);
        this._emptyView.classList.add("hidden");
        this.element.appendChild(this._emptyView);
            if (this._dataGrid)
                this._dataGrid.element.classList.add("hidden");
            return;

        this._emptyView.classList.add("hidden");
    }
@/inspector/Views/ResourceCollectionContentView.js
        for (let resource of this.representedObject)
            extensions.add(WI.fileExtensionForMIMEType(resource.mimeType));
@/lua/ge/extensions/editor/dynamicDecals/loadSave.lua
        dump(res)
        notification.add("Load/Save", "Baking Issues", "Issues occured when baking decals.\nCheck the layer stack in order to identify the issues.", notification.levels.warning)
      end
@/inspector/Views/GoToLineDialog.js

        this.element.classList.add("go-to-line-dialog");
@/lua/ge/extensions/editor/forestEditor.lua
  fb:registerObject(fb:getName())
  var.forestBrushGroup:add(fb)
      table.insert(group.elements, element)
      obj:add(fbe)
      element.parentBrush = group
    table.insert(var.forestBrushes, element)
    var.forestBrushGroup:add(fbe)
    table.sort(var.forestBrushes, forestBrushElemSortByNameFunc)
@/ui/lib/ext/angular/angular.js
        if (seen.has(obj)) return '[Circular]';
        seen.add(obj);
@/ui/uidevtools/server/public/devtools.js
      // console.log("WS connected")
      window.bridge.hooks.add("devtools-hook", (name, args) => {
        const data = {
@/lua/ge/client/lighting/basic/shadowFilter.lua
  bl_ShadowFilterPostFx:setField("target", 0, "$outTex")
  bl_ShadowFilterPostFx:add(bl_ShadowFilterShaderH)
  bl_ShadowFilterPostFx:registerObject("BL_ShadowFilterPostFx")
@/inspector/Views/BezierEditor.js
        this._element = document.createElement("div");
        this._element.classList.add("bezier-editor");
        this._bezierContainer.setAttribute("height", editorHeight);
        this._bezierContainer.classList.add("bezier-container");
        let linearCurve = svgGroup.appendChild(createSVGElement("line"));
        linearCurve.classList.add("linear-curve");
        linearCurve.setAttribute("x1", this._controlHandleRadius);
        this._bezierCurve = svgGroup.appendChild(createSVGElement("path"));
        this._bezierCurve.classList.add("bezier-curve");
            let line = svgGroup.appendChild(createSVGElement("line"));
            line.classList.add("control-line");
            line.setAttribute("x1", x1);
            let handle = svgGroup.appendChild(createSVGElement("circle"));
            handle.classList.add("control-handle");
        this._selectedControl.point = point;
        this._selectedControl.handle.classList.add("selected");
        this._updateValue();
        this._bezierPreview.style.animationTimingFunction = this._bezier.toString();
        this._bezierPreviewContainer.classList.add("animate");
        this._bezierPreviewTiming.classList.add("animate");
        this._bezierPreviewContainer.classList.add("animate");
        this._bezierPreviewTiming.classList.add("animate");
    }
@/flowgraphEditor/Tower/customNodes/towerNode.lua
    if scenetree.MissionGroup then
      scenetree.MissionGroup:add(scenetreeObject)
    else
@/ui/modules/apps/TaskList/app.js
          if (chg.new.done === true || chg.new.fail === true) {
            goalElement && goalElement.classList.add('animated')
            bngApi.engineLua(`Engine.Audio.playOnce('AudioGui', 'event:>UI>Main>Click_Tonal_02')`)
@/ui/modules/apps/BrakeThermalDebug/app.js
      let streamsList = ['wheelThermalData']
      StreamsManager.add(streamsList)
      $scope.$on('$destroy', function () {
@/lua/ge/extensions/editor/dynamicDecals/notification.lua

local function add(section, title, msg, level)
  if not notifications[section] then notifications[section] = {} end
@/lua/ge/extensions/editor/gen/network.lua
    local road = scenetree.findObjectById(newRoadID)
    groupEdit:add(road)
--    road:delete()
        road:setField('distanceFade', 0, string.format("%f %f", 0, 200))
        groupEdit:add(road)
]]
            road:setField('distanceFade', 0, string.format("%f %f", 0, 200))
            groupEdit:add(road)
            ani[newRoadID] = {}
        rdm:registerObjectWithIdSuffix(nm)
--        scenetree.MissionGroup:add(rdm.obj)
        groupEdit:add(rdm.obj)
--        scenetree.MissionGroup:add(rdm.obj)
        groupEdit:add(rdm.obj)
        rdm:createMesh({{{
    --    aidMesh[#aidMesh+1] = id
    groupEdit:add(rdm.obj)
--    scenetree.MissionGroup:add(rdm.obj)
    groupEdit:add(rdm.obj)
--    scenetree.MissionGroup:add(rdm.obj)
    rdm:createMesh({{{
@/inspector/Views/CPUUsageCombinedView.js

        this.element.classList.add("cpu-usage-combined-view");
        this._detailsElement = this.element.appendChild(document.createElement("div"));
        this._detailsElement.classList.add("details");
        let detailsNameElement = this._detailsElement.appendChild(document.createElement("span"));
        detailsNameElement.classList.add("name");
        detailsNameElement.textContent = displayName;
        this._graphElement = this.element.appendChild(document.createElement("div"));
        this._graphElement.classList.add("graph");
            let rowElement = legendElement.appendChild(document.createElement("div"));
            rowElement.classList.add("row");
            let swatchElement = rowElement.appendChild(document.createElement("div"));
            swatchElement.classList.add("swatch", className);
            let labelElement = rowElement.appendChild(document.createElement("div"));
            labelElement.classList.add("label");
        this._legendElement = this._detailsElement.appendChild(document.createElement("div"));
        this._legendElement.classList.add("legend-container");
@/ui/modules/apps/SimpleSpeedo/app.js
        var streamsList = ['electrics']
        StreamsManager.add(streamsList)
        scope.$on('$destroy', function () {
@/inspector/Base/Utilities.js
            if (!other.has(item))
                result.add(item);
        }
@/inspector/Views/IndexedDatabaseContentView.js

        this._element.classList.add("indexed-database");
@/inspector/Views/DetailsSection.js
        this._element = document.createElement("div");
        this._element.classList.add(identifier, "details-section");
            this._optionsElement = optionsElement;
            this._optionsElement.classList.add("options");
            this._optionsElement.addEventListener("mousedown", this._optionsElementMouseDown.bind(this));
        if (flag)
            this._element.classList.add(WI.DetailsSection.CollapsedStyleClassName);
        else
    {
        this._headerElement.classList.add(WI.DetailsSection.MouseOverOptionsElementStyleClassName);
    }
@/lua/ge/extensions/gameplay/discover/discover_038.lua
        scenetreeObject.canSave = false
        scenetree.MissionGroup:add(scenetreeObject)
        local vehiclesByInternalName = {}
        scenetreeObject.canSave = false
        scenetree.MissionGroup:add(scenetreeObject)
        local vehiclesByInternalName = {}
        scenetreeObject.canSave = false
        scenetree.MissionGroup:add(scenetreeObject)
        local spawningOptions = sanitizeVehicleSpawnOptions("unicycle", {config = "vehicles/unicycle/with_mesh.pc"})
@/inspector/Views/ScopeChainDetailsSidebarPanel.js
        this._watchExpressionOptionsElement = document.createElement("div");
        this._watchExpressionOptionsElement.classList.add("options");
        let content = document.createElement("div");
        content.classList.add("watch-expression");
        content.appendChild(document.createElement("div")).textContent = WI.UIString("Add New Watch Expression");
        let editorElement = content.appendChild(document.createElement("div"));
        editorElement.classList.add("watch-expression-editor", WI.SyntaxHighlightedStyleClassName);
        if (treeElement.expanded)
            WI.ScopeChainDetailsSidebarPanel._autoExpandProperties.add(propertyPathIdentifier);
        else
@/lua/ge/extensions/gameplay/sites/customFields.lua
    if data.types[name] == 'string' then
      self:add(name,'string',tostring(data.values[name]))
    elseif data.types[name] == 'number' then
    elseif data.types[name] == 'number' then
      self:add(name,'number',tonumber(data.values[name]))
    elseif data.types[name] == 'vec3' then
    elseif data.types[name] == 'vec3' then
      self:add(name,'vec3',vec3(data.values[name]))
    end

function C:add(name, type, value)
  if self.values[name] then
@/inspector/Controllers/ConsoleManager.js
            this._remoteObjectsToRelease = new Set;
        this._remoteObjectsToRelease.add(remoteObject);
    }
@/inspector/Views/Sidebar.js

        this.element.classList.add("sidebar", this._side, WI.Sidebar.CollapsedStyleClassName);
        if (hasNavigationBar) {
            this.element.classList.add("has-navigation-bar");
@/inspector/Views/CollectionContentView.js

        this.element.classList.add("collection");
            console.assert(selectedContentView, "Missing ContentView for selected item.", this._selectedItem);
            selectedContentView.element.classList.add("selected");
        }
@/inspector/Base/ObjectStore.js

                existingNames.add(objectStore._name);
            }
@/lua/vehicle/extensions/test/csvMetrics.lua

  csvData:add(unpack(dataRow))
end
@/inspector/Views/NavigationItem.js

        this._element.classList.add(...this._classNames);
        this._element.navigationItem = this;
@/inspector/Views/TimelineDataGrid.js

        this.element.classList.add("timeline");
            this._dirtyDataGridNodes = new Set;
        this._dirtyDataGridNodes.add(dataGridNode);
            this._popoverCallStackTreeOutline.disclosureButtons = false;
            this._popoverCallStackTreeOutline.element.classList.add("timeline-data-grid");
            this._popoverCallStackTreeOutline.addEventListener(WI.TreeOutline.Event.SelectionDidChange, this._popoverCallStackTreeSelectionDidChange, this);
@/inspector/Views/HeapAllocationsTimelineDataGridNode.js
        case "name":
            cell.classList.add(...this.iconClassNames());
    {
        this.element.classList.add("baseline");
    }
        if (this.heapSnapshot.invalid)
            this.element.classList.add("invalid");
    }
@/inspector/Views/ScriptTimelineDataGridNode.js
        case "name":
            cell.classList.add(...this.iconClassNames());
            return this._createNameCellDocumentFragment();
            let subtitleElement = document.createElement("span");
            subtitleElement.classList.add("subtitle");
            subtitleElement.textContent = this.subtitle;
@/inspector/Views/HeapSnapshotContentView.js

        this.element.classList.add("heap-snapshot");
@/inspector/Views/GradientEditor.js
        this._element = document.createElement("div");
        this._element.classList.add("gradient-editor");
        this._gradientTypePicker = this._element.appendChild(document.createElement("select"));
        this._gradientTypePicker.classList.add("gradient-type-select");
        for (let type in this._gradientTypes) {
        let angleContainerElement = this._element.appendChild(document.createElement("div"));
        angleContainerElement.classList.add("gradient-angle");
        angleContainerElement.append(WI.UIString("Angle"));
            this._element.appendChild(this._colorPicker.element);
            this._element.classList.add("editing-color");
            this._colorPicker.color = selectedStop.color;
@/inspector/Views/LayerDetailsSidebarPanel.js

        this.element.classList.add("layer");
@/inspector/Views/StackedColumnChart.js

        this.element.classList.add("stacked-column-chart");
                let rect = this._svgElement.appendChild(createSVGElement("rect"));
                rect.classList.add(this._sections[i]);
                if (additionalClass)
                if (additionalClass)
                    rect.classList.add(additionalClass);
                rect.setAttribute("width", width);
@/lua/ge/extensions/editor/buildingEditor.lua
]]
	scenetree.MissionGroup:add(rdm.obj)
	rdm:createMesh({{{
		rdm:registerObject(nm..'_'..id)
		scenetree.MissionGroup:add(rdm.obj)
		rdm:createMesh({{{
		rdm:registerObject(nm..'_'..id)
		scenetree.MissionGroup:add(rdm.obj)
		rdm:createMesh({{{
	--    aidMesh[#aidMesh+1] = id
	scenetree.MissionGroup:add(rdm.obj)
	rdm:createMesh({{{
		--    aidMesh[#aidMesh+1] = id
		scenetree.MissionGroup:add(rdm2.obj)
		rdm2:createMesh({{{
@/inspector/Views/NetworkTableContentView.js
                if (uniqueValues.size > 1) {
                    cell.classList.add("multiple");
                    cell.textContent = WI.UIString("(multiple)");
        if (domNode) {
            this._table.element.classList.add("grouped");

            cell.classList.add("parent");
            let disclosureElement = cell.appendChild(document.createElement("img"));
            disclosureElement.classList.add("disclosure");
            disclosureElement.classList.toggle("expanded", !!entry.expanded);

            cell.classList.add("dom-node");
            cell.appendChild(WI.linkifyNodeReference(domNode));

        cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
            if (nodeEntry.initiatedResourceEntries.length > 1 || nodeEntry.domNode.domEvents.length)
                cell.classList.add("child");
        }
            let rangeElement = nameElement.appendChild(document.createElement("span"));
            rangeElement.classList.add("range");
            rangeElement.textContent = WI.UIString("Byte Range %s\u2013%s").format(range.start, range.end);
        cell.title = resource.url;
        cell.classList.add(WI.Resource.classNameForResource(resource));
    }
            if (uniqueSchemeValues.size > 1 || uniqueDomainValues.size > 1) {
                cell.classList.add("multiple");
                cell.textContent = WI.UIString("(multiple)");
            if (resourceEntries.every((resourceEntry) => resourceEntry.resource.responseSource === WI.Resource.ResponseSource.MemoryCache)) {
                cell.classList.add("cache-type");
                cell.textContent = WI.UIString("(memory)");
            if (resourceEntries.every((resourceEntry) => resourceEntry.resource.responseSource === WI.Resource.ResponseSource.DiskCache)) {
                cell.classList.add("cache-type");
                cell.textContent = WI.UIString("(disk)");
            if (resourceEntries.every((resourceEntry) => resourceEntry.resource.responseSource === WI.Resource.ResponseSource.ServiceWorker)) {
                cell.classList.add("cache-type");
                cell.textContent = WI.UIString("(service worker)");
        if (responseSource === WI.Resource.ResponseSource.MemoryCache) {
            cell.classList.add("cache-type");
            cell.textContent = WI.UIString("(memory)");
        if (responseSource === WI.Resource.ResponseSource.DiskCache) {
            cell.classList.add("cache-type");
            cell.textContent = WI.UIString("(disk)");
        if (responseSource === WI.Resource.ResponseSource.ServiceWorker) {
            cell.classList.add("cache-type");
            cell.textContent = WI.UIString("(service worker)");
                    let fullscreenElement = container.appendChild(document.createElement("div"));
                    fullscreenElement.classList.add("area", "dom-fullscreen");
                    positionByStartOffset(fullscreenElement, fullscreenDOMEvents[i].timestamp);
                let powerEfficientPlaybackRangeElement = container.appendChild(document.createElement("div"));
                powerEfficientPlaybackRangeElement.classList.add("area", "power-efficient-playback");
                powerEfficientPlaybackRangeElement.title = WI.UIString("Power Efficient Playback");
                let lineElement = container.appendChild(document.createElement("div"));
                lineElement.classList.add("dom-activity");
                lineElement.classList.toggle("playing", playing);
                let eventElement = container.appendChild(document.createElement("div"));
                eventElement.classList.add("dom-event");
                positionByStartOffset(eventElement, startTimestamp - paddingForCentering);
            let block = container.appendChild(document.createElement("div"));
            block.classList.add("block", className);
            positionByStartOffset(block, startTimestamp);
        if (this._urlFilterSearchRegex.test(resource.url)) {
            this._activeURLFilterResources.add(resource);
            return;
            if (this._urlFilterSearchRegex.test(redirect.url)) {
                this._activeURLFilterResources.add(resource);
                return;

        this.element.classList.add("showing-detail");
        this._table.scrollContainer.style.width = this._nameColumn.width + "px";
            if (value || typeof value === "number")
                accumulator.add(value);
            return accumulator;
        let contentElement = document.createElement("div");
        contentElement.classList.add("waterfall-popover-content");
        return contentElement;
            this._waterfallPopover = new WI.Popover;
            this._waterfallPopover.element.classList.add("waterfall-popover");
        }
@/lua/vehicle/controller/tech/cosimulationCoupling.lua
  lastTimeOfSend = os.clockhp()
  csvSendData:add(os.clockhp(), unpack(msgOut))
end
        if enableVSL then
        csvReceiveData:add(os.clockhp(), unpack(msgIn))
        end
        if enableVSL then
        csvReceiveData:add(os.clockhp(), unpack(msgIn))
        end
    -- Add to CSV for logging
    csvSendData:add(os.clockhp(), unpack(msgOut))
    -- log('I', logTag, 'VSL only from controller, logging data.')
@/lua/ge/extensions/util/trackBuilder/multiTrackMerger.lua
  meshes[3] = meshes[1]
  scenetree.MissionGroup:add(splineObject.obj)
  --globObj = splineObject
@/inspector/External/three.js/OrbitControls.js
            // move target to panned location
            scope.target.add( panOffset );

            position.copy( scope.target ).add( offset );

            panOffset.add( v );

            panOffset.add( v );
@/inspector/Views/Popover.js

        this._element.classList.add(WI.Popover.FadeOutClassName);

            this._element.classList.add(this._cssClassNameForEdge());
            if (this._preferredSize.width < WI.Popover.MinWidth || this._preferredSize.height < WI.Popover.MinHeight)
                this._container.classList.add("center");
            else
@/ui/modules/apps/SimpleEngineDebug/app.js
      var streamsList = ['engineInfo', 'electrics']
      StreamsManager.add(streamsList)
@/inspector/Protocol/Target.js
    {
        this._resourceCollection.add(resource);
    {
        this._extraScriptCollection.add(script);
@/ui/modules/apps/WeightDistribution/app.js
      var streamsList = ['wheelInfo', 'sensors']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Views/RenderingFrameTimelineView.js

        this.element.classList.add("rendering-frame");
        this.addSubview(this._dataGrid);
@/inspector/Views/HierarchicalPathNavigationItem.js
        if (flag)
            this.element.classList.add(WI.HierarchicalPathNavigationItem.AlwaysShowLastPathComponentSeparatorStyleClassName);
        else
@/inspector/Views/ObjectTreeArrayIndexTreeElement.js

        valueElement.classList.add("value");
        if (this.hadError())
        if (this.hadError())
            valueElement.classList.add("error");
@/inspector/Views/EditableDataGridNode.js
        if (element)
            element.classList.add("editable");
@/lua/common/csvlib.lua
-- local csvfile = require('csvlib').newCSV("c1", "c2", "c3")  -- or .newTSV("c1", "c2", "c3") for Tab Separated Values
-- csvfile:add(1,2,3)
-- csvfile:add(5,6,7)
-- csvfile:add(1,2,3)
-- csvfile:add(5,6,7)
-- ...
  if headercount ~= 0 then
    self:add(...)
    local header = {...}

function csvWriter:add(...)
  local delim, rundelim, buf = self.delim, self.linedelim, self.buf
@/inspector/Base/Multimap.js
        for (let [key, value] of items)
            this.add(key, value);
    }

    add(key, value)
    {
        }
        valueSet.add(value);
@/inspector/Controllers/CodeMirrorEditingController.js
        this._hoverMenu = new WI.HoverMenu(this);
        this._hoverMenu.element.classList.add(this.cssClassName);
        this._rects = this._marker.rects;
@/inspector/Views/SourceCodeTimelineTimelineDataGridNode.js
        if (columnIdentifier === "name" && this.records.length) {
            cell.classList.add(...this.iconClassNames());
            return this._createNameCellContent(cell);
            let subtitleElement = document.createElement("span");
            subtitleElement.classList.add("subtitle");
            sourceCodeLocation.populateLiveDisplayLocationString(subtitleElement, "textContent", null, WI.SourceCodeLocation.NameStyle.None, WI.UIString("line "));
@/ui/modules/apps/Forcedinduction/app.js

        StreamsManager.add(svg.getStreams())
        scope.$on('$destroy', function () {
@/inspector/Views/TimelineRuler.js

        this.element.classList.add("timeline-ruler");
        this._headerElement = document.createElement("div");
        this._headerElement.classList.add("header");
        this.element.appendChild(this._headerElement);
        this._markersElement = document.createElement("div");
        this._markersElement.classList.add("markers");
        this.element.appendChild(this._markersElement);
            this._leftShadedAreaElement = document.createElement("div");
            this._leftShadedAreaElement.classList.add("shaded-area");
            this._leftShadedAreaElement.classList.add("left");
            this._leftShadedAreaElement.classList.add("shaded-area");
            this._leftShadedAreaElement.classList.add("left");
            this._rightShadedAreaElement = document.createElement("div");
            this._rightShadedAreaElement.classList.add("shaded-area");
            this._rightShadedAreaElement.classList.add("right");
            this._rightShadedAreaElement.classList.add("shaded-area");
            this._rightShadedAreaElement.classList.add("right");
            this._leftSelectionHandleElement = document.createElement("div");
            this._leftSelectionHandleElement.classList.add("selection-handle");
            this._leftSelectionHandleElement.classList.add("left");
            this._leftSelectionHandleElement.classList.add("selection-handle");
            this._leftSelectionHandleElement.classList.add("left");
            this._leftSelectionHandleElement.addEventListener("mousedown", this._handleSelectionHandleMouseDown.bind(this));
            this._rightSelectionHandleElement = document.createElement("div");
            this._rightSelectionHandleElement.classList.add("selection-handle");
            this._rightSelectionHandleElement.classList.add("right");
            this._rightSelectionHandleElement.classList.add("selection-handle");
            this._rightSelectionHandleElement.classList.add("right");
            this._rightSelectionHandleElement.addEventListener("mousedown", this._handleSelectionHandleMouseDown.bind(this));
            this._selectionDragElement = document.createElement("div");
            this._selectionDragElement.classList.add("selection-drag");
        let markerElement = document.createElement("div");
        markerElement.classList.add(marker.type, "marker");
            // Turn on col-resize cursor style once dragging begins, rather than on the initial mouse down.
            this.element.classList.add(WI.TimelineRuler.ResizingSelectionStyleClassName);
        }

        this.element.classList.add(WI.TimelineRuler.ResizingSelectionStyleClassName);
@/inspector/Views/ContentViewContainer.js

        this.element.classList.add("content-view-container");
@/inspector/Views/DetailsSectionRow.js
    {
        this.element.classList.add(WI.DetailsSectionRow.EmptyStyleClassName);
@/lua/ge/client/postFx/smaa.lua

  smaaPostEffect1:add(smaaPostEffect2)
  smaaPostEffect1:registerObject("SMAA_PostEffect1")

  smaaPostEffect:add(smaaPostEffect1)
  smaaPostEffect:registerObject("SMAA_PostEffect")
@/lua/ge/extensions/gameplay/drift/freeroam/cruising.lua
  if gameplay_drift_general.getGeneralDebug() then
    profiler:add("Drift cruising")
    gc = profiler.sections[1].garbage
@/lua/common/libs/ezSVG/EzSVG.lua
})
svg:add(line)
svg:writeTo('test.svg')
    stop["stop-opacity"] = opacity
    tbl:add(stop)
    return tbl
  local defs = createDefs()
  tbl:add(defs)
  tbl["addDef"] = function(tbl, def)
    defs:add(def)
  end
  if bgcolor then
    ret:add(EzSVG.Rect(0, 0, width, height, 0, 0, {
      stroke=nil,
@/lua/ge/client/postFx/dof.lua
  dofBlurY:registerObject("DOFBlurY")
  dofPostEffect:add(dofBlurY)
  dofBlurX:registerObject("DOFBlurX")
  dofPostEffect:add(dofBlurX)
  dofCalcCoC:registerObject("DOFCalcCoC")
  dofPostEffect:add(dofCalcCoC)
  dofSmallBlur:registerObject("DOFSmallBlur")
  dofPostEffect:add(dofSmallBlur)
  dofFinalPFX:registerObject("DOFFinalPFX")
  dofPostEffect:add(dofFinalPFX)
end
@/inspector/Views/ObjectTreePropertyTreeElement.js
            if (!this.property.enumerable)
                nameElement.classList.add("not-enumerable");
        }

        valueOrGetterElement.classList.add("value");
        if (this.hadError())
        if (this.hadError())
            valueOrGetterElement.classList.add("error");
@/inspector/Views/DebuggerDashboardView.js
        var message = this._messageElement = document.createElement("div");
        message.classList.add("message");
        message.title = message.textContent = WI.UIString("Debugger Paused");
        var dividerElement = document.createElement("div");
        dividerElement.classList.add("divider");
        this.element.appendChild(dividerElement);
        var locationElement = this._locationElement = document.createElement("div");
        locationElement.classList.add("location");
        this.element.appendChild(locationElement);
        var iconElement = document.createElement("div");
        iconElement.classList.add(iconClassName);
        this._locationElement.appendChild(iconElement);
        nameElement.append(functionName);
        nameElement.classList.add("function-name");
        this._locationElement.appendChild(nameElement);
@/inspector/Views/ConsoleMessageView.js
        this._element = document.createElement("div");
        this._element.classList.add("console-message");
        if (this._message.type === WI.ConsoleMessage.MessageType.Result) {
            this._element.classList.add("console-user-command-result");
            this._element.setAttribute("data-labelprefix", WI.UIString("Output: "));
        } else if (this._message.type === WI.ConsoleMessage.MessageType.StartGroup || this._message.type === WI.ConsoleMessage.MessageType.StartGroupCollapsed)
            this._element.classList.add("console-group-title");
        case WI.ConsoleMessage.MessageLevel.Log:
            this._element.classList.add("console-log-level");
            this._element.setAttribute("data-labelprefix", WI.UIString("Log: "));
        case WI.ConsoleMessage.MessageLevel.Info:
            this._element.classList.add("console-info-level");
            this._element.setAttribute("data-labelprefix", WI.UIString("Info: "));
        case WI.ConsoleMessage.MessageLevel.Debug:
            this._element.classList.add("console-debug-level");
            this._element.setAttribute("data-labelprefix", WI.UIString("Debug: "));
        case WI.ConsoleMessage.MessageLevel.Warning:
            this._element.classList.add("console-warning-level");
            this._element.setAttribute("data-labelprefix", WI.UIString("Warning: "));
        case WI.ConsoleMessage.MessageLevel.Error:
            this._element.classList.add("console-error-level");
            this._element.setAttribute("data-labelprefix", WI.UIString("Error: "));
        this._messageBodyElement = this._element.appendChild(document.createElement("span"));
        this._messageBodyElement.classList.add("console-top-level-message", "console-message-body");
        this._appendMessageTextAndArguments(this._messageBodyElement);
        if (this._message.type === WI.ConsoleMessage.MessageType.Image) {
            this._element.classList.add("console-image-container");
            this._element.addEventListener("contextmenu", this._handleContextMenu.bind(this));
            this._repeatCountElement = document.createElement("span");
            this._repeatCountElement.classList.add("repeat-count");
            this._element.insertBefore(this._repeatCountElement, this._element.firstChild);
        if (this._expandable)
            this._element.classList.add("expanded");
                let img = element.appendChild(document.createElement("img"));
                img.classList.add("console-image", "show-grid");
                img.src = this._message.messageText;
        var savedVariableElement = document.createElement("span");
        savedVariableElement.classList.add("console-saved-variable");
        savedVariableElement.textContent = " = $" + this._message.savedResultIndex;
                var anchor = WI.linkifyURLAsNode(this._message.url, this._message.url, "console-message-url");
                anchor.classList.add("console-message-location");
                this._element.appendChild(anchor);
            var locationElement = new WI.CallFrameView(callFrame, showFunctionName);
            locationElement.classList.add("console-message-location");
            this._element.appendChild(locationElement);
                });
                link.classList.add("console-message-location");
        this._extraElementsList = this._element.appendChild(document.createElement("ol"));
        this._extraElementsList.classList.add("console-message-extra-parameters-container");
            const forceObjectFormat = parameter.type === "object" && (parameter.subtype !== "null" && parameter.subtype !== "regexp" && parameter.subtype !== "node" && parameter.subtype !== "error");
            listItemElement.classList.add("console-message-extra-parameter");
            listItemElement.appendChild(this._formatParameter(parameter, forceObjectFormat));
        this._stackTraceElement = this._element.appendChild(document.createElement("div"));
        this._stackTraceElement.classList.add("console-message-body", "console-message-stack-trace-container");
            let element = builderElement.appendChild(document.createElement("span"));
            element.classList.add("console-message-preview-divider");
            element.textContent = ` ${enDash} `;
                    if (dividerElement)
                        dividerElement.classList.add("inline-lossless");
                    let previewContainer = builderElement.appendChild(document.createElement("span"));
                    previewContainer.classList.add("inline-lossless");
                let previewContainer = builderElement.appendChild(document.createElement("span"));
                previewContainer.classList.add("console-message-preview");
                    if (dividerElement)
                        dividerElement.classList.add("inline-lossless");
                    previewContainer.classList.add("inline-lossless");
                        dividerElement.classList.add("inline-lossless");
                    previewContainer.classList.add("inline-lossless");
                }
                builderElement.append(" ", enclosedElement);
                enclosedElement.classList.add("console-message-enclosed");
                enclosedElement.textContent = "(" + parameters.length + ")";

        this._element.classList.add("expandable");
@/inspector/Views/FindBanner.js

        this.element.classList.add("find-banner");
        if (className)
            this.element.classList.add(className);
        this._previousResultButton = document.createElement("button");
        this._previousResultButton.classList.add("segmented", "previous-result");
        this._previousResultButton.disabled = true;
        let previousResultButtonGlyphElement = document.createElement("div");
        previousResultButtonGlyphElement.classList.add(WI.FindBanner.SegmentGlyphStyleClassName);
        this._previousResultButton.appendChild(previousResultButtonGlyphElement);
        this._nextResultButton = document.createElement("button");
        this._nextResultButton.classList.add("segmented", "next-result");
        this._nextResultButton.disabled = true;
        let nextResultButtonGlyphElement = document.createElement("div");
        nextResultButtonGlyphElement.classList.add(WI.FindBanner.SegmentGlyphStyleClassName);
        this._nextResultButton.appendChild(nextResultButtonGlyphElement);

            this._targetElement.classList.add(WI.FindBanner.NoTransitionStyleClassName);
            this._targetElement.classList.remove(WI.FindBanner.SupportsFindBannerStyleClassName);

            this.element.classList.add(WI.FindBanner.NoTransitionStyleClassName);
            this.element.classList.remove(WI.FindBanner.ShowingStyleClassName);
        if (this._targetElement)
            this._targetElement.classList.add(WI.FindBanner.SupportsFindBannerStyleClassName);
    }
        {
            this._targetElement.classList.add(WI.FindBanner.ShowingFindBannerStyleClassName);
            this.element.classList.add(WI.FindBanner.ShowingStyleClassName);
            this._targetElement.classList.add(WI.FindBanner.ShowingFindBannerStyleClassName);
            this.element.classList.add(WI.FindBanner.ShowingStyleClassName);
@/inspector/Views/GeneralTabBarItem.js
        if (this._isEphemeral) {
            this.element.classList.add("ephemeral");
            let closeButtonElement = document.createElement("div");
            closeButtonElement.classList.add(WI.TabBarItem.CloseButtonStyleClassName);
            closeButtonElement.title = WI.UIString("Click to close this tab");
            this._titleElement = document.createElement("span");
            this._titleElement.classList.add("title");
            let titleContentElement = document.createElement("span");
            titleContentElement.classList.add("content");
            titleContentElement.textContent = title;
@/inspector/Views/TabBrowser.js

        this.element.classList.add("tab-browser");
        if (!tabContentView.constructor.tabInfo().isEphemeral)
            this._closedTabClasses.add(tabContentView.constructor);
@/ui/uidevtools/public/scripts/devtools.js
      // console.log("WS connected")
      window.bridge.hooks.add("devtools-hook", (name, args) => {
        const data = {
@/inspector/External/three.js/three.js

                console.warn( 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );
                return this.addVectors( v, w );

            return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 );

                console.warn( 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );
                return this.addVectors( v, w );

            return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 );

                console.warn( 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );
                return this.addVectors( v, w );

            return this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 );
                this.min.copy( center ).sub( halfSize );
                this.max.copy( center ).add( halfSize );
            this.min.sub( vector );
            this.max.add( vector );

            this.min.add( offset );
            this.max.add( offset );
            this.min.add( offset );
            this.max.add( offset );
                target.sub( this.center ).normalize();
                target.multiplyScalar( this.radius ).add( this.center );

            this.center.add( offset );

            return target.copy( this.normal ).multiplyScalar( - this.distanceToPoint( point ) ).add( point );

                return target.copy( direction ).multiplyScalar( t ).add( line.start );

                this.position.add( v1.multiplyScalar( distance ) );

                    this.add( arguments[ i ] );
                    var child = source.children[ i ];
                    this.add( child.clone() );

                    vertices[ face.a ].add( cb );
                    vertices[ face.b ].add( cb );
                    vertices[ face.a ].add( cb );
                    vertices[ face.b ].add( cb );
                    vertices[ face.c ].add( cb );
                    vertices[ face.b ].add( cb );
                    vertices[ face.c ].add( cb );

                    vertices[ face.a ].add( face.normal );
                    vertices[ face.b ].add( face.normal );
                    vertices[ face.a ].add( face.normal );
                    vertices[ face.b ].add( face.normal );
                    vertices[ face.c ].add( face.normal );
                    vertices[ face.b ].add( face.normal );
                    vertices[ face.c ].add( face.normal );

            return target.copy( this.direction ).multiplyScalar( t ).add( this.origin );

            return target.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );

                v1.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );

                segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );
                segDir.copy( v1 ).sub( v0 ).normalize();

                    optionalPointOnRay.copy( this.direction ).multiplyScalar( s0 ).add( this.origin );

                    optionalPointOnSegment.copy( segDir ).multiplyScalar( s1 ).add( segCenter );

            return this.delta( target ).multiplyScalar( t ).add( this.start );

            return this.delta( target ).multiplyScalar( t ).add( this.start );

            return target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );

                uv1.add( uv2 ).add( uv3 );

                uv1.add( uv2 ).add( uv3 );

                            vA.add( fvA );
                            vB.add( fvB );
                            vA.add( fvA );
                            vB.add( fvB );
                            vC.add( fvC );
                            vB.add( fvB );
                            vC.add( fvC );
                        _lookTarget.copy( shadowCamera.position );
                        _lookTarget.add( cubeDirections[ face ] );
                        shadowCamera.up.copy( cubeUps[ face ] );
                tempPosition.applyQuaternion( tempQuaternion );
                poseObject.position.add( tempPosition );

            this.add( object );

                        bones[ gbone.parent ].add( bones[ i ] );

                        this.add( bones[ i ] );

                centroid.copy( a ).add( b ).add( c ).divideScalar( 3 );

                centroid.copy( a ).add( b ).add( c ).divideScalar( 3 );

                return vec.clone().multiplyScalar( size ).add( pt );

                    position2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal );

                    position2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal );

                        position2.copy( extrudePts[ s ] ).add( normal ).add( binormal );

                        position2.copy( extrudePts[ s ] ).add( normal ).add( binormal );

                    Cache.add( url, response );

                Cache.add( url, this );
            // extrapolate first point
            tmp.subVectors( points[ 0 ], points[ 1 ] ).add( points[ 0 ] );
            p0 = tmp;
            // extrapolate last point
            tmp.subVectors( points[ l - 1 ], points[ l - 2 ] ).add( points[ l - 1 ] );
            p3 = tmp;
            point.copy( this.v2 ).sub( this.v1 );
            point.multiplyScalar( t ).add( this.v1 );
            point.copy( this.v2 ).sub( this.v1 );
            point.multiplyScalar( t ).add( this.v1 );

                    object.add( this.parseObject( children[ i ], geometries, materials ) );

                Cache.add( url, imageBitmap );
        cameraPX.lookAt( new Vector3( 1, 0, 0 ) );
        this.add( cameraPX );
        cameraNX.lookAt( new Vector3( - 1, 0, 0 ) );
        this.add( cameraNX );
        cameraPY.lookAt( new Vector3( 0, 1, 0 ) );
        this.add( cameraPY );
        cameraNY.lookAt( new Vector3( 0, - 1, 0 ) );
        this.add( cameraNY );
        cameraPZ.lookAt( new Vector3( 0, 0, 1 ) );
        this.add( cameraPZ );
        cameraNZ.lookAt( new Vector3( 0, 0, - 1 ) );
        this.add( cameraNZ );
                this.min.copy( center ).sub( halfSize );
                this.max.copy( center ).add( halfSize );
            this.min.sub( vector );
            this.max.add( vector );

            this.min.add( offset );
            this.max.add( offset );
            this.min.add( offset );
            this.max.add( offset );

                        v2.copy( normal ).applyMatrix3( normalMatrix ).normalize().multiplyScalar( this.size ).add( v1 );

                    v2.applyMatrix3( normalMatrix ).normalize().multiplyScalar( this.size ).add( v1 );
        this.cone = new LineSegments( geometry, material );
        this.add( this.cone );

        this.add( this.lightDistance );
        */
        this.line = new Line( geometry, material );
        this.add( this.line );

        this.add( new Mesh( geometry, this.material ) );
                v1.copy( vertices[ face.a ] )
                    .add( vertices[ face.b ] )
                    .add( vertices[ face.c ] )
                    .add( vertices[ face.b ] )
                    .add( vertices[ face.c ] )
                    .divideScalar( 3 )

                v2.copy( normal ).applyMatrix3( normalMatrix ).normalize().multiplyScalar( this.size ).add( v1 );
        this.lightPlane = new Line( geometry, material );
        this.add( this.lightPlane );
        this.targetLine = new Line( geometry, material );
        this.add( this.targetLine );

        this.add( new Mesh( geometry2, new MeshBasicMaterial( { color: color, opacity: 0.2, transparent: true, depthWrite: false } ) ) );
        this.line.matrixAutoUpdate = false;
        this.add( this.line );
        this.cone.matrixAutoUpdate = false;
        this.add( this.cone );
@/lua/vehicle/controller/tech/vehicleSystemsCoupling.lua
  if debugFile then
    csvSendData:add(os.clockhp(), unpack(messageToSimulink))
  end
  if debugFile then
    csvReceiveData:add(os.clockhp(), unpack(decodedMessageFromSimulink))
  end
  if debugFile then
    csvPhysicsSteps:add(os.clockhp())
  end
@/inspector/Views/FormattedValue.js
        if (!treeOutline.children[0].hasChildren)
            treeOutline.element.classList.add("single-node");
        span.appendChild(treeOutline.element);
    var span = document.createElement("span");
    span.classList.add("formatted-error");
    span.textContent = object.description;
    var span = document.createElement("span");
    span.classList.add("formatted-function");
    span.textContent = description.substring(0, description.indexOf("("));
    var span = document.createElement("span");
    span.classList.add(WI.FormattedValue.classNameForTypes(type, subtype));
@/inspector/Controllers/BreakpointPopoverController.js
        let conditionEditorElement = conditionData.appendChild(document.createElement("div"));
        conditionEditorElement.classList.add("edit-breakpoint-popover-condition", WI.SyntaxHighlightedStyleClassName);
        else {
            this._popoverContentElement.classList.add(WI.BreakpointPopoverController.WidePopoverClassName);
            for (let i = 0; i < this._breakpoint.actions.length; ++i) {
        if (!this._breakpoint.actions.length)
            optionsRow.classList.add(WI.BreakpointPopoverController.HiddenStyleClassName);
        let optionsHeader = optionsRow.appendChild(document.createElement("th"));
    {
        this._popoverContentElement.classList.add(WI.BreakpointPopoverController.WidePopoverClassName);
        this._actionsContainer.removeChildren();
            this._popoverActionsCreateAddActionButton();
            this._popoverOptionsRowElement.classList.add(WI.BreakpointPopoverController.HiddenStyleClassName);
            this._popoverOptionsCheckboxElement.checked = false;
@/inspector/Controllers/NetworkManager.js
    {
        this._downloadingSourceMaps.add(sourceMapURL);
@/inspector/Views/ChartDetailsSectionRow.js

        this.element.classList.add("chart");
        this._svgFiltersElement = document.createElement("svg");
        this._svgFiltersElement.classList.add("defs-only");
        this.element.append(this._svgFiltersElement);
        this._emptyChartPath.setAttribute("d", createEmptyChartPathData(this._chartSize / 2, this._radius, this._innerRadius));
        this._emptyChartPath.classList.add("empty-chart");
        this._chartElement.appendChild(this._emptyChartPath);
                keyElement.type = "checkbox";
                keyElement.classList.add(className);
                keyElement.checked = item.checked;
                keyElement = document.createElement("div");
                keyElement.classList.add("color-key");
                keyElement.style.backgroundColor = item.color;
            let valueElement = document.createElement("div");
            valueElement.classList.add("value");
            valueElement.textContent = formatItemValue.call(this, item);
            let legendItemElement = document.createElement("div");
            legendItemElement.classList.add("legend-item");
            legendItemElement.append(labelElement, valueElement);
                path = createSVGElement("path");
                path.classList.add("chart-segment");
                path.setAttribute("fill", item.color);
            if (!item.value) {
                path.classList.add("hidden");
                continue;
@/inspector/Views/DataGrid.js
        this._headerWrapperElement = document.createElement("div");
        this._headerWrapperElement.classList.add("header-wrapper");
        if (column["aligned"])
            headerCellElement.classList.add(column["aligned"]);
        this._headerTableCellElements.set(columnIdentifier, headerCellElement);
            listeners.register(headerCellElement, "click", this._headerCellClicked);
            headerCellElement.classList.add(WI.DataGrid.SortableColumnStyleClassName);
        }
        if (column["group"])
            headerCellElement.classList.add("column-group-" + column["group"]);
            headerCellElement.collapsesGroup = column["collapsesGroup"];
            headerCellElement.classList.add("collapser");
        }
        if (column["group"])
            fillerCellElement.classList.add("column-group-" + column["group"]);
        var referenceElement = this._fillerRowElement.children[insertionIndex];

        cell.classList.add("mouse-over-collapser");
    }
@/inspector/Views/CanvasSidebarPanel.js
        this._canvasTreeOutline = this.createContentTreeOutline({suppressFiltering: true});
        this._canvasTreeOutline.element.classList.add("canvas");
        this._recordingNavigationBar = new WI.NavigationBar;
        this._recordingNavigationBar.element.classList.add("hidden");
        this.contentView.addSubview(this._recordingNavigationBar);
        if (!this._canvas) {
            this._recordingNavigationBar.element.classList.add("hidden");
            return;
                this._recordingProcessingOptionsContainer = this._recordingContentContainer.appendChild(document.createElement("div"));
                this._recordingProcessingOptionsContainer.classList.add("recording-processing-options");
@/inspector/Views/AuditTestCaseContentView.js

        this.element.classList.add("audit-test-case");
        let informationContainer = this.headerView.element.appendChild(document.createElement("div"));
        informationContainer.classList.add("information");
        this._metadataElement = this.headerView.element.appendChild(document.createElement("div"));
        this._metadataElement.classList.add("metadata");
    }
            let sourceContainer = this._metadataElement.appendChild(document.createElement("div"));
            sourceContainer.classList.add("source");
                    let durationElement = this._metadataElement.appendChild(document.createElement("span"));
                    durationElement.classList.add("duration");
                    durationElement.textContent = totalDuration;

                        durationElement.classList.add("async");
                        durationElement.title = WI.UIString("%s eval\n%s async").format(evalDuration, asyncDuration);
            this._resultDataDOMNodesContainer = document.createElement("div");
            this._resultDataDOMNodesContainer.classList.add("dom-nodes");
                    if (!rootTreeElement.hasChildren)
                        treeOutline.element.classList.add("single-node");
            this._resultDataErrorsContainer = document.createElement("div");
            this._resultDataErrorsContainer.classList.add("errors");
                let errorElement = dataElement.appendChild(document.createElement("div"));
                errorElement.classList.add("error");
                errorElement.textContent = error;
@/inspector/Views/EditingSupport.js

    element.classList.add("editing");
    element.contentEditable = "plaintext-only";
    if (config.multiline)
        element.classList.add("multiline");
@/ui/modules/apps/WheelsDebug/app.js
      var streamsList = ['wheelInfo']
      StreamsManager.add(streamsList)
      scope.$on('$destroy', function () {
@/inspector/Views/CircleChart.js

        this.element.classList.add("circle-chart");
        backgroundPath.setAttribute("d", this._createCompleteCirclePathData(this._size / 2, this._radius, this._innerRadius));
        backgroundPath.classList.add("background");
    }
            this._centerElement = this.element.appendChild(document.createElement("div"));
            this._centerElement.classList.add("center");
            this._centerElement.style.width = this._centerElement.style.height = this._radius + "px";
            let pathElement = this._chartElement.appendChild(createSVGElement("path"));
            pathElement.classList.add("segment", className);
            this._pathElements.push(pathElement);
@/ui/modules/apps/SimplePowertrainControl/app.js
      var streamsList = ['electrics', 'powertrainDeviceData']
      StreamsManager.add(streamsList)
@/inspector/Views/DetailsSidebarPanel.js

        this.element.classList.add("details");
@/lua/ge/extensions/editor/missionEditor.lua
      local starType = instance.careerSetup._activeStarCache.defaultStarKeysByKey[key] and "default" or "bonus"
      csvdata:add(mission.id, translatedName, missionType, firstBranch, leagueNames, instance.unlocks.maxBranchlevel, key, translatedStarLabel, starType, rewards.money or 0,rewards.vouchers or 0,unpack(branchRewards))
    end
    local gamemode = instance.careerSetup.showInCareer and "Career" or "Freeroam"
    csvdata:add(mission.id, translatedName, missionType, level, gamemode)
  end
    local folder = mission.missionFolder or "None"
    csvdata:add(folder, translatedName, dateStr, origin, mission.startTrigger and mission.startTrigger.level or "None", mission.missionType, mission.careerSetup.showInFreeroam and "Freeroam" or "Career")
  end
    if not scenario.isMissionAsScenario then
      csvdata:add(scenario.sourceFile, translateLanguage(scenario.name, scenario.name, true), dateStr, origin, string.lower(scenario.levelName), type2)
    end
--  for _, qr in ipairs(scenario_quickRaceLoader.getQuickraceList()) do
--    csvdata:add(translateLanguage(qr.scenarioName, qr.scenarioName, true), tonumber(qr.date), "Time Trial")
--  end
@/inspector/Views/ResourceDetailsSidebarPanel.js

        this.element.classList.add("resource");
@/inspector/Views/RecordingStateDetailsSidebarPanel.js
                        let textElement = document.createElement("span");
                        textElement.classList.add("unavailable");
                        let sourceElement = section.titleElement.appendChild(document.createElement("span"));
                        sourceElement.classList.add("source");
                        sourceElement.textContent = WI.UIString("(Action %s)").format(sourceIndex);
@/inspector/Views/MemoryTimelineView.js

        this.element.classList.add("memory");
        let contentElement = this.element.appendChild(document.createElement("div"));
        contentElement.classList.add("content");
        let overviewElement = contentElement.appendChild(document.createElement("div"));
        overviewElement.classList.add("overview");
            let chartElement = parentElement.appendChild(document.createElement("div"));
            chartElement.classList.add("chart");
            let chartSubtitleElement = chartElement.appendChild(document.createElement("div"));
            chartSubtitleElement.classList.add("subtitle");
            chartSubtitleElement.textContent = subtitle;
            let chartFlexContainerElement = chartElement.appendChild(document.createElement("div"));
            chartFlexContainerElement.classList.add("container");
            return chartFlexContainerElement;
        this._usageLegendElement = usageChartContainerElement.appendChild(document.createElement("div"));
        this._usageLegendElement.classList.add("legend", "usage");
        let dividerElement = overviewElement.appendChild(document.createElement("div"));
        dividerElement.classList.add("divider");
        this._maxComparisonLegendElement = maxComparisonChartContainerElement.appendChild(document.createElement("div"));
        this._maxComparisonLegendElement.classList.add("legend", "maximum");
        let detailsContainerElement = this._detailsContainerElement = contentElement.appendChild(document.createElement("div"));
        detailsContainerElement.classList.add("details");
        let detailsSubtitleElement = detailsContainerElement.appendChild(document.createElement("div"));
        detailsSubtitleElement.classList.add("subtitle");
        detailsSubtitleElement.textContent = WI.UIString("Categories");
            totalElement = centerElement.appendChild(document.createElement("div"));
            totalElement.classList.add("total-usage");
            totalElement.appendChild(document.createElement("span")); // firstChild
            totalElement = centerElement.appendChild(document.createElement("div"));
            totalElement.classList.add("max-percentage");
        }
            let rowElement = legendElement.appendChild(document.createElement("div"));
            rowElement.classList.add("row");
            let swatchElement = rowElement.appendChild(document.createElement("div"));
            swatchElement.classList.add("swatch", swatchClass);
            let valueContainer = rowElement.appendChild(document.createElement("div"));
            valueContainer.classList.add("value");
            let labelElement = valueContainer.appendChild(document.createElement("div"));
            labelElement.classList.add("label");
            labelElement.textContent = label;
            let sizeElement = valueContainer.appendChild(document.createElement("div"));
            sizeElement.classList.add("size");
@/ui/ui-vue/src/services/uiNavTracker.js
      }
      eventElements[eventName].add(element)
    }
@/inspector/Views/TimelineDataGridNode.js
            if (value.sourceCode instanceof WI.Resource) {
                cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
                cell.classList.add(value.sourceCode.type);
                cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
                cell.classList.add(value.sourceCode.type);
            } else if (value.sourceCode instanceof WI.Script) {
                if (value.sourceCode.url) {
                    cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
                    cell.classList.add(WI.Resource.Type.Script);
                    cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
                    cell.classList.add(WI.Resource.Type.Script);
                } else
                } else
                    cell.classList.add(WI.ScriptTreeElement.AnonymousScriptIconStyleClassName);
            } else

            cell.classList.add(WI.CallFrameView.FunctionIconStyleClassName);
                    if (callFrame.sourceCodeLocation.sourceCode instanceof WI.Resource) {
                        cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
                        cell.classList.add(callFrame.sourceCodeLocation.sourceCode.type);
                        cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
                        cell.classList.add(callFrame.sourceCodeLocation.sourceCode.type);
                    } else if (callFrame.sourceCodeLocation.sourceCode instanceof WI.Script) {
                        if (callFrame.sourceCodeLocation.sourceCode.url) {
                            cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
                            cell.classList.add(WI.Resource.Type.Script);
                            cell.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName);
                            cell.classList.add(WI.Resource.Type.Script);
                        } else
                        } else
                            cell.classList.add(WI.ScriptTreeElement.AnonymousScriptIconStyleClassName);
                    } else
                    // Show the function name and icon.
                    cell.classList.add(WI.CallFrameView.FunctionIconStyleClassName);
                    var subtitleElement = document.createElement("span");
                    subtitleElement.classList.add("subtitle");
                    callFrame.sourceCodeLocation.populateLiveDisplayLocationString(subtitleElement, "textContent");
            var icon = document.createElement("div");
            icon.classList.add("icon");
@/ui/ui-vue/src/services/stateReporter.js

function add(stateName) {
  rem(stateName) // in angular menus, it doesn't always calls to remove the state but continues to add new ones

  if (opened) add(stateName)
  else rem(stateName)
@/inspector/Views/TimelineOverviewGraph.js

        this.element.classList.add("timeline-overview-graph");
@/inspector/Controllers/LayerTreeManager.js
        for (let layer of previousLayers)
            previousLayerIds.add(layer.layerId);
        for (let layer of newLayers) {
            newLayerIds.add(layer.layerId);
@/lua/ge/extensions/editor/dynamicDecals/debugSection.lua
  if im.Button(string.format("%s##%s", "notification.add", guiId)) then
    notification.add("Debug", "test", "this is a test")
  end
@/lua/ge/extensions/editor/api/object.lua
-- *editor.SelectMode_New* - the old selection is discarded
-- *editor.SelectMode_Add* - add (uniquely) the object ids to the current selection
-- *editor.SelectMode_Remove* - remove the ids from the current selection (if present)
@/inspector/Views/TreeOutline.js
        this.element = document.createElement("ol");
        this.element.classList.add(WI.TreeOutline.ElementStyleClassName);
        this.element.addEventListener("contextmenu", this._handleContextmenu.bind(this));
        if (!this._selectable)
            this.element.classList.add("non-selectable");
    }
            if (treeElement.listItemElement)
                treeElement.listItemElement.classList.add("selected");
            if (this._previousSelectedTreeElement && this._previousSelectedTreeElement.listItemElement)
                this._previousSelectedTreeElement.listItemElement.classList.add("last-selected");
        }
            if (count >= firstItem && count <= lastItem) {
                treeElementsToAttach.add(treeElement);
                if (count >= firstItem + extraRows && count <= lastItem - extraRows)
                if (count >= firstItem + extraRows && count <= lastItem - extraRows)
                    visibleTreeElements.add(treeElement);
            } else if (treeElement._listItemNode.parentNode)
            } else if (treeElement._listItemNode.parentNode)
                treeElementsToDetach.add(treeElement);
@/inspector/Views/ResourceTimingContentView.js

        this.element.classList.add("resource-details", "resource-timing");
@/inspector/Views/Resizer.js
        this._element = document.createElement("div");
        this._element.classList.add("resizer");
        if (this._orientation === WI.Resizer.RuleOrientation.Horizontal)
            this._element.classList.add("horizontal-rule");
        else if (this._orientation === WI.Resizer.RuleOrientation.Vertical)
        else if (this._orientation === WI.Resizer.RuleOrientation.Vertical)
            this._element.classList.add("vertical-rule");
@/inspector/Views/SettingsTabContentView.js
        let reloadInspectorContainerElement = experimentalSettingsView.addCenteredContainer(reloadInspectorButton, WI.UIString("for changes to take effect"));
        reloadInspectorContainerElement.classList.add("hidden");

        this._navigationBar.element.classList.add("invisible");
    }
@/lua/ge/extensions/flowgraph/modules/vehicleModule.lua
      end
      scenetree.MissionGroup:add(veh)
    end
@/ui/lib/ext/angular-material/angular-material.min.js
A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff",contrastDefaultColor:"light",contrastDarkColors:"100 200 300 400 A100",contrastStrongLightColors:"500 600 700 A200 A400 A700"},"light-blue":{50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900 A700",contrastStrongLightColors:"500 600 700 800 A700"},cyan:{50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700 800"},teal:{50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},green:{50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},"light-green":{50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},lime:{50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00",contrastDefaultColor:"dark",contrastLightColors:"900",contrastStrongLightColors:"900"},yellow:{50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600",contrastDefaultColor:"dark"},amber:{50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00",contrastDefaultColor:"dark"},orange:{50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},"deep-orange":{50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 400 A100 A200",contrastStrongLightColors:"500 600 700 800 900 A400 A700"},brown:{50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037",contrastDefaultColor:"light",contrastDarkColors:"50 100 200",contrastStrongLightColors:"300 400"},grey:{50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",1000:"#000000",A100:"#ffffff",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900"},"blue-grey":{50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300",contrastStrongLightColors:"400 500"}})}(),function(){function e(e){function o(e,t){return t=t||{},m[e]=a(e,t),g}function r(e,n){return a(e,t.extend({},m[e]||{},n))}function a(e,t){var n=C.filter(function(e){return!t[e]});if(n.length)throw new Error("Missing colors %1 in palette %2!".replace("%1",n.join(", ")).replace("%2",e));return t}function d(e,n){if(s[e])return s[e];n=n||"default";var o="string"==typeof n?s[n]:n,r=new c(e);return o&&t.forEach(o.colors,function(e,n){r.colors[n]={name:e.name,hues:t.extend({},e.hues)}}),s[e]=r,r}function c(e){function n(e){if(e=0===arguments.length?!0:!!e,e!==o.isDark){o.isDark=e,o.foregroundPalette=o.isDark?f:p,o.foregroundShadow=o.isDark?h:b;var n=o.isDark?T:A,r=o.isDark?A:T;return t.forEach(n,function(e,t){var n=o.colors[t],i=r[t];if(n)for(var a in n.hues)n.hues[a]===i[a]&&(n.hues[a]=e[a])}),o}}var o=this;o.name=e,o.colors={},o.dark=n,n(!1),M.forEach(function(e){var n=(o.isDark?T:A)[e];o[e+"Palette"]=function(r,i){var a=o.colors[e]={name:r,hues:t.extend({},n,i)};return Object.keys(a.hues).forEach(function(e){if(!n[e])throw new Error("Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4".replace("%1",e).replace("%2",o.name).replace("%3",r).replace("%4",Object.keys(n).join(", ")))}),Object.keys(a.hues).map(function(e){return a.hues[e]}).forEach(function(t){if(-1==C.indexOf(t))throw new Error("Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5".replace("%1",t).replace("%2",o.name).replace("%3",e).replace("%4",r).replace("%5",C.join(", ")))}),o},o[e+"Color"]=function(){var t=Array.prototype.slice.call(arguments);return console.warn("$mdThemingProviderTheme."+e+"Color() has been deprecated. Use $mdThemingProviderTheme."+e+"Palette() instead."),o[e+"Palette"].apply(o,t)}})}function u(e,o){function r(e){return e===n||""===e?!0:i.THEMES[e]!==n}function i(t,o){o===n&&(o=t,t=n),t===n&&(t=e),i.inherit(o,o)}return i.inherit=function(n,i){function a(e){r(e)||o.warn("Attempted to use unregistered theme '"+e+"'. Register it with $mdThemingProvider.theme().");var t=n.data("$mdThemeName");t&&n.removeClass("md-"+t+"-theme"),n.addClass("md-"+e+"-theme"),n.data("$mdThemeName",e),d&&n.data("$mdThemeController",d)}var d=i.controller("mdTheme"),c=n.attr("md-theme-watch");if((v||t.isDefined(c))&&"false"!=c){var l=e.$watch(function(){return d&&d.$mdTheme||E},a);n.on("$destroy",l)}else{var m=d&&d.$mdTheme||E;a(m)}},i.THEMES=t.extend({},s),i.defaultTheme=function(){return E},i.registered=r,i}m={},s={};var g,E="default",v=!1;return t.extend(m,e),u.$inject=["$rootScope","$log"],g={definePalette:o,extendPalette:r,theme:d,setDefaultTheme:function(e){E=e},alwaysWatchTheme:function(e){v=e},$get:u,_LIGHT_DEFAULT_HUES:A,_DARK_DEFAULT_HUES:T,_PALETTES:m,_THEMES:s,_parseRules:i,_rgba:l}}function o(e,t,n){return{priority:100,link:{pre:function(o,r,i){var a={$setTheme:function(t){e.registered(t)||n.warn("attempted to use unregistered theme '"+t+"'"),a.$mdTheme=t}};r.data("$mdThemeController",a),a.$setTheme(t(i.mdTheme)(o)),i.$observe("mdTheme",a.$setTheme)}}}}function r(e){return e}function i(e,n,o){d(e,n),o=o.replace(/THEME_NAME/g,e.name);var r=[],i=e.colors[n],a=new RegExp(".md-"+e.name+"-theme","g"),c=new RegExp("('|\")?{{\\s*("+n+")-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?","g"),s=/'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue\-[0-3]|shadow)-?(\d\.?\d*)?\s*\}\}'?"?/g,u=m[i.name];return o=o.replace(s,function(t,n,o,r){return"foreground"===n?"shadow"==o?e.foregroundShadow:e.foregroundPalette[o]||e.foregroundPalette[1]:(0===o.indexOf("hue")&&(o=e.colors[n].hues[o]),l((m[e.colors[n].name][o]||"").value,r))}),t.forEach(i.hues,function(t,n){var i=o.replace(c,function(e,n,o,r,i){return l(u[t]["color"===r?"value":"contrast"],i)});"default"!==n&&(i=i.replace(a,".md-"+e.name+"-theme.md-"+n)),"default"==e.name&&(i=i.replace(/\.md-default-theme/g,"")),r.push(i)}),r}function a(e){function n(e){var n=e.contrastDefaultColor,o=e.contrastLightColors||[],r=e.contrastStrongLightColors||[],i=e.contrastDarkColors||[];"string"==typeof o&&(o=o.split(" ")),"string"==typeof r&&(r=r.split(" ")),"string"==typeof i&&(i=i.split(" ")),delete e.contrastDefaultColor,delete e.contrastLightColors,delete e.contrastStrongLightColors,delete e.contrastDarkColors,t.forEach(e,function(a,d){function l(){return"light"===n?i.indexOf(d)>-1?g:r.indexOf(d)>-1?v:E:o.indexOf(d)>-1?r.indexOf(d)>-1?v:E:g}if(!t.isObject(a)){var m=c(a);if(!m)throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1",a).replace("%2",e.name).replace("%3",d));e[d]={value:m,contrast:l()}}})}var o=document.getElementsByTagName("head")[0],r=o?o.firstElementChild:null,a=e.has("$MD_THEME_CSS")?e.get("$MD_THEME_CSS"):"";if(r&&0!==a.length){t.forEach(m,n);var d={},l=a.split(/\}(?!(\}|'|"|;))/).filter(function(e){return e&&e.length}).map(function(e){return e.trim()+"}"}),p=new RegExp("md-("+M.join("|")+")","g");M.forEach(function(e){d[e]=""}),l.forEach(function(e){for(var t,n=(e.match(p),0);t=M[n];n++)if(e.indexOf(".md-"+t)>-1)return d[t]+=e;for(n=0;t=M[n];n++)if(e.indexOf(t)>-1)return d[t]+=e;return d[$]+=e}),t.forEach(s,function(e){u[e.name]||(M.forEach(function(t){for(var n=i(e,t,d[t]);n.length;){var a=document.createElement("style");a.setAttribute("type","text/css"),a.appendChild(document.createTextNode(n.shift())),o.insertBefore(a,r)}}),e.colors.primary.name==e.colors.accent.name&&console.warn("$mdThemingProvider: Using the same palette for primary and accent. This violates the material design spec."),u[e.name]=!0)})}}function d(e,t){if(!m[(e.colors[t]||{}).name])throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1",e.name).replace("%2",t).replace("%3",Object.keys(m).join(", ")))}function c(e){if(t.isArray(e)&&3==e.length)return e;if(/^rgb/.test(e))return e.replace(/(^\s*rgba?\(|\)\s*$)/g,"").split(",").map(function(e,t){return 3==t?parseFloat(e,10):parseInt(e,10)});if("#"==e.charAt(0)&&(e=e.substring(1)),/^([a-fA-F0-9]{3}){1,2}$/g.test(e)){var n=e.length/3,o=e.substr(0,n),r=e.substr(n,n),i=e.substr(2*n);return 1===n&&(o+=o,r+=r,i+=i),[parseInt(o,16),parseInt(r,16),parseInt(i,16)]}}function l(e,n){return e?(4==e.length&&(e=t.copy(e),n?e.pop():n=e.pop()),n&&("number"==typeof n||"string"==typeof n&&n.length)?"rgba("+e.join(",")+","+n+")":"rgb("+e.join(",")+")"):"rgb('0,0,0')"}t.module("material.core.theming",["material.core.theming.palette"]).directive("mdTheme",o).directive("mdThemable",r).provider("$mdTheming",e).run(a);var m,s,u={},p={name:"dark",1:"rgba(0,0,0,0.87)",2:"rgba(0,0,0,0.54)",3:"rgba(0,0,0,0.26)",4:"rgba(0,0,0,0.12)"},f={name:"light",1:"rgba(255,255,255,1.0)",2:"rgba(255,255,255,0.7)",3:"rgba(255,255,255,0.3)",4:"rgba(255,255,255,0.12)"},h="1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)",b="",g=c("rgba(0,0,0,0.87)"),E=c("rgba(255,255,255,0.87"),v=c("rgb(255,255,255)"),M=["primary","accent","warn","background"],$="primary",A={accent:{"default":"A200","hue-1":"A100","hue-2":"A400","hue-3":"A700"},background:{"default":"A100","hue-1":"300","hue-2":"800","hue-3":"900"}},T={background:{"default":"800","hue-1":"300","hue-2":"600","hue-3":"900"}};M.forEach(function(e){var t={"default":"500","hue-1":"300","hue-2":"800","hue-3":"A100"};A[e]||(A[e]=t),T[e]||(T[e]=t)});var C=["50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700"];e.$inject=["$mdColorPalette"],o.$inject=["$mdTheming","$interpolate","$log"],r.$inject=["$mdTheming"],a.$inject=["$injector"]}(),function(){t.module("material.components.autocomplete",["material.core","material.components.icon"])}(),function(){function e(){return{restrict:"E"}}function n(e){function n(e,n,i,a,d,c,l){function m(o,r,l){r=i.extractElementByName(r,"md-bottom-sheet"),p=i.createBackdrop(o,"md-bottom-sheet-backdrop md-opaque"),p.on("click",function(){i.nextTick(d.cancel,!0)}),a.inherit(p,l.parent),e.enter(p,l.parent,null);var m=new u(r,l.parent);return l.bottomSheet=m,l.targetEvent&&t.element(l.targetEvent.target).blur(),a.inherit(m.element,l.parent),l.disableParentScroll&&(l.lastOverflow=l.parent.css("overflow"),l.parent.css("overflow","hidden")),e.enter(m.element,l.parent).then(function(){var e=t.element(r[0].querySelector("button")||r[0].querySelector("a")||r[0].querySelector("[ng-click]"));e.focus(),l.escapeToClose&&(l.rootElementKeyupCallback=function(e){e.keyCode===n.KEY_CODE.ESCAPE&&i.nextTick(d.cancel,!0)},c.on("keyup",l.rootElementKeyupCallback))})}function s(n,o,r){var i=r.bottomSheet;return e.leave(p),e.leave(i.element).then(function(){r.disableParentScroll&&(r.parent.css("overflow",r.lastOverflow),delete r.lastOverflow),i.cleanup(),r.targetEvent&&t.element(r.targetEvent.target).focus()})}function u(e,t){function a(t){e.css(n.CSS.TRANSITION_DURATION,"0ms")}function c(t){var o=t.pointer.distanceY;5>o&&(o=Math.max(-r,o/2)),e.css(n.CSS.TRANSFORM,"translate3d(0,"+(r+o)+"px,0)")}function m(t){if(t.pointer.distanceY>0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>o)){var r=e.prop("offsetHeight")-t.pointer.distanceY,a=Math.min(r/t.pointer.velocityY*.75,500);e.css(n.CSS.TRANSITION_DURATION,a+"ms"),i.nextTick(d.cancel,!0)}else e.css(n.CSS.TRANSITION_DURATION,""),e.css(n.CSS.TRANSFORM,"")}var s=l.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",a).on("$md.drag",c).on("$md.dragend",m),{element:e,cleanup:function(){s(),t.off("$md.dragstart",a).off("$md.drag",c).off("$md.dragend",m)}}}var p;return{themable:!0,targetEvent:null,onShow:m,onRemove:s,escapeToClose:!0,disableParentScroll:!0}}var o=.5,r=80;return n.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture"],e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","targetEvent"],options:n})}t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",e).provider("$mdBottomSheet",n),n.$inject=["$$interimElementProvider"]}(),function(){t.module("material.components.backdrop",["material.core"]).directive("mdBackdrop",["$mdTheming","$animate","$rootElement","$window","$log","$$rAF","$document",function(e,t,n,o,r,i,a){function d(d,l,m){var s=o.getComputedStyle(a[0].body);if("fixed"==s.position){var u=parseInt(s.height,10)+Math.abs(parseInt(s.top,10));l.css({height:u+"px"})}t.pin&&t.pin(l,n),i(function(){var t=l.parent()[0];if(t){var n=o.getComputedStyle(t);"static"==n.position&&r.warn(c)}e.inherit(l,l.parent())})}var c=" may not work properly in a scrolled, static-positioned parent container.";return{restrict:"E",link:d}}])}(),function(){function e(e){return{restrict:"E",link:function(t,n,o){e(n)}}}t.module("material.components.card",["material.core"]).directive("mdCard",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r,i,a,d){function c(n,c){return c.type="checkbox",c.tabindex=c.tabindex||"0",n.attr("role",c.type),function(n,c,m,s){function u(e,t,o){m[e]&&n.$watch(m[e],function(e){o[e]&&c.attr(t,o[e])})}function p(e){var t=e.which||e.keyCode;(t===r.KEY_CODE.SPACE||t===r.KEY_CODE.ENTER)&&(e.preventDefault(),c.hasClass("md-focused")||c.addClass("md-focused"),f(e))}function f(e){c[0].hasAttribute("disabled")||n.$apply(function(){var t=m.ngChecked?m.checked:!s.$viewValue;s.$setViewValue(t,e&&e.type),s.$render()})}function h(){s.$viewValue?c.addClass(l):c.removeClass(l)}s=s||a.fakeNgModel(),i(c),m.ngChecked&&n.$watch(n.$eval.bind(n,m.ngChecked),s.$setViewValue.bind(s)),u("ngDisabled","tabindex",{"true":"-1","false":m.tabindex}),o.expectWithText(c,"aria-label"),e.link.pre(n,{on:t.noop,0:{}},m,[s]),n.mouseActive=!1,c.on("click",f).on("keypress",p).on("mousedown",function(){n.mouseActive=!0,d(function(){n.mouseActive=!1},100)}).on("focus",function(){n.mouseActive===!1&&c.addClass("md-focused")}).on("blur",function(){c.removeClass("md-focused")}),s.$render=h}}e=e[0];var l="md-checked";return{restrict:"E",transclude:!0,require:"?ngModel",priority:210,template:'
',compile:c}}t.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",e),e.$inject=["inputDirective","$mdInkRipple","$mdAria","$mdConstant","$mdTheming","$mdUtil","$timeout"]}(),function(){function e(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,o,r){o[0];e(o),t.$broadcast("$mdContentLoaded",o),n(o[0])}}}function n(e){t.element(e).on("$md.pressdown",function(t){"t"===t.pointer.type&&(t.$materialScrollFixed||(t.$materialScrollFixed=!0,0===e.scrollTop?e.scrollTop=1:e.scrollHeight===e.scrollTop+e.offsetHeight&&(e.scrollTop-=1)))})}t.module("material.components.content",["material.core"]).directive("mdContent",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r){function i(e){return t.isDefined(e.href)||t.isDefined(e.ngHref)||t.isDefined(e.ngLink)||t.isDefined(e.uiSref)}function a(e,t){return i(t)?'':''}function d(a,d,c){var l=d[0];n(d),e.attach(a,d);var m=l.textContent.trim();m||o.expect(d,"aria-label"),i(c)&&t.isDefined(c.ngDisabled)&&a.$watch(c.ngDisabled,function(e){d.attr("tabindex",e?-1:0)}),d.on("click",function(e){c.disabled===!0&&(e.preventDefault(),e.stopImmediatePropagation())}),a.mouseActive=!1,d.on("mousedown",function(){a.mouseActive=!0,r(function(){a.mouseActive=!1},100)}).on("focus",function(){a.mouseActive===!1&&d.addClass("md-focused")}).on("blur",function(){d.removeClass("md-focused")})}return{restrict:"EA",replace:!0,transclude:!0,template:a,link:d}}t.module("material.components.button",["material.core"]).directive("mdButton",e),e.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$timeout"]}(),function(){function e(e){return{restrict:"E",link:e}}t.module("material.components.divider",["material.core"]).directive("mdDivider",e),e.$inject=["$mdTheming"]}(),function(){t.module("material.components.chips",["material.core","material.components.autocomplete"])}(),function(){function e(e,n){return{restrict:"E",link:function(o,r,i){n(r),e(function(){function e(){r.toggleClass("md-content-overflow",o.scrollHeight>o.clientHeight)}var n,o=r[0].querySelector("md-dialog-content");o&&(n=o.getElementsByTagName("img"),e(),t.element(n).on("load",e))})}}}function n(e){function n(e,t){return{template:['',' ','

{{ dialog.title }}

',"

{{ dialog.content }}

","
",'
',' '," {{ dialog.cancel }}"," ",' '," {{ dialog.ok }}"," ","
","
"].join("").replace(/\s\s+/g,""),controller:function(){this.hide=function(){e.hide(!0)},this.abort=function(){e.cancel()}},controllerAs:"dialog",bindToController:!0,theme:t.defaultTheme()}}function o(e,n,o,r,i,a,d,c){function l(e,n,r){function i(){function e(){var e=n[0].querySelector(".dialog-close");if(!e){var o=n[0].querySelectorAll(".md-actions button");e=o[o.length-1]}return t.element(e)}if(r.focusOnOpen){var o="alert"===r.$type?n.find("md-dialog-content"):e();o.focus()}}return n=o.extractElementByName(n,"md-dialog"),t.element(a[0].body).addClass("md-dialog-is-showing"),s(n,r),f(n.find("md-dialog"),r),p(e,n,r),g(n,r).then(function(){u(n,r),h(n,r),i()})}function m(e,n,o){return o.deactivateListeners(),o.unlockScreenReader(),o.hideBackdrop(),E(n,o)["finally"](function(){t.element(a[0].body).removeClass("md-dialog-is-showing"),n.remove(),o.origin.focus()})}function s(e,n){var r={element:null,bounds:null,focus:t.noop};n.origin=t.extend({},r,n.origin||{});var i=t.element((n.targetEvent||{}).target);i&&i.length&&(n.origin.element=i,n.origin.bounds=i[0].getBoundingClientRect(),n.origin.focus=function(){i.focus()}),n.parent=t.element(n.parent||c),n.disableParentScroll&&(n.restoreScroll=o.disableScrollAround(e,n.parent))}function u(t,n){var i=[],a=function(){var t="alert"==n.$type?e.hide:e.cancel;o.nextTick(t,!0)};if(n.escapeToClose){var d=n.parent,c=function(e){e.keyCode===r.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),a())};t.on("keyup",c),d.on("keyup",c),i.push(function(){t.off("keyup",c),d.off("keyup",c)})}if(n.clickOutsideToClose){var d=t,l=function(e){e.target===d[0]&&(e.stopPropagation(),e.preventDefault(),a())};d.on("click",l),i.push(function(){d.off("click",l)})}n.deactivateListeners=function(){i.forEach(function(e){e()}),n.deactivateListeners=null}}function p(e,t,n){n.hasBackdrop&&(n.backdrop=o.createBackdrop(e,"md-dialog-backdrop md-opaque"),i.enter(n.backdrop,n.parent)),n.hideBackdrop=function(){n.backdrop&&i.leave(n.backdrop),n.disableParentScroll&&n.restoreScroll(),n.hideBackdrop=null}}function f(e,t){var r="alert"===t.$type?"alertdialog":"dialog",i=e.find("md-dialog-content"),a=e.attr("id")||"dialog_"+o.nextUid();e.attr({role:r,tabIndex:"-1"}),0===i.length&&(i=e),i.attr("id",a),e.attr("aria-describedby",a),t.ariaLabel?n.expect(e,"aria-label",t.ariaLabel):n.expectAsync(e,"aria-label",function(){var e=i.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")})}function h(e,t){function n(e){for(;e.parentNode;){if(e===document.body)return;for(var t=e.parentNode.children,r=0;r'+e+"
"}}}return n.$inject=["$mdDialog","$mdTheming"],o.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement"],e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","parent"],options:o}).addPreset("alert",{methods:["title","content","ariaLabel","ok","theme"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme"],options:n})}t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",n),e.$inject=["$$rAF","$mdTheming"],n.$inject=["$$interimElementProvider"]}(),function(){!function(){function e(){function e(e,t){t.prepend('
')}function t(e,t,n,o){function r(){d.direction=d.direction||"down",d.isOpen=d.isOpen||!1}function i(){t.on("mouseenter",d.mouseenter),t.on("mouseleave",d.mouseleave)}function a(){e.$watch("vm.direction",function(e,o){n.removeClass(t,"md-"+o),n.addClass(t,"md-"+e)}),e.$watch("vm.isOpen",function(e){var o=e?"md-is-open":"",r=e?"":"md-is-open";n.setClass(t,o,r)})}var d=this;d.open=function(){e.$evalAsync("vm.isOpen = true")},d.close=function(){!d.moused&&e.$evalAsync("vm.isOpen = false")},d.mouseenter=function(){d.moused=!0,d.open()},d.mouseleave=function(){d.moused=!1,d.close()},r(),i(),a(),o.nextTick(function(){n.addClass(t,"md-noop")})}return t.$inject=["$scope","$element","$animate","$mdUtil"],{restrict:"E",scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:t,controllerAs:"vm",link:e}}function n(){function e(e){var n=e[0],o=e.controller("mdFabSpeedDial"),r=n.querySelectorAll(".md-fab-action-item"),i=n.querySelector(".md-css-variables"),a=i.style.zIndex;t.forEach(r,function(e,t){var n=e.style;n.transform=n.webkitTransform="",n.transitionDelay="",n.opacity=1,n.zIndex=r.length-t+a}),o.isOpen||t.forEach(r,function(e,t){var n,r,i=e.style;switch(o.direction){case"up":n=e.scrollHeight*(t+1),r="Y";break;case"down":n=-e.scrollHeight*(t+1),r="Y";break;case"left":n=e.scrollWidth*(t+1),r="X";break;case"right":n=-e.scrollWidth*(t+1),r="X"}var a="translate"+r+"("+n+"px)";i.transform=i.webkitTransform=a})}return{addClass:function(t,n,o){t.hasClass("md-fling")&&(e(t),o())},removeClass:function(t,n,o){e(t),o()}}}function o(){function e(e){var o=e[0],r=e.controller("mdFabSpeedDial"),i=o.querySelectorAll(".md-fab-action-item");t.forEach(i,function(e,t){var o=e.style,a=t*n;o.opacity=r.isOpen?1:0,o.transform=o.webkitTransform=r.isOpen?"scale(1)":"scale(0)",o.transitionDelay=(r.isOpen?a:i.length-a)+"ms"})}var n=65;return{addClass:function(t,n,o){e(t),o()},removeClass:function(t,n,o){e(t),o()}}}t.module("material.components.fabSpeedDial",["material.core","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabSpeedDial",e).animation(".md-fling",n).animation(".md-scale",o).service("mdFabSpeedDialFlingAnimation",n).service("mdFabSpeedDialScaleAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(e,n){var o=e.children();return o.attr("ng-repeat")?o.addClass("md-fab-action-item"):o.wrap('
'),function(e,n,o,r){var i=r[0]||r[1];i&&t.forEach(n.children(),function(e){e=t.element(e).children()[0],t.element(e).on("focus",i.open),t.element(e).on("blur",i.close)})}}}}t.module("material.components.fabActions",["material.core"]).directive("mdFabActions",e)}()}(),function(){!function(){function n(){function e(e,t,n){var o=this;o.isOpen=o.isOpen||!1,o.open=function(){o.isOpen=!0,e.$apply()},o.close=function(){o.isOpen=!1,e.$apply()},t.addClass("md-fab-toolbar"),t.on("mouseenter",o.open),t.on("mouseleave",o.close),e.$watch("vm.isOpen",function(e){var o=e?"md-is-open":"",r=e?"":"md-is-open";n.setClass(t,o,r)})}function t(e,t,n){t.find("md-fab-trigger").find("button").attr("tabindex","-1"),t.find("md-fab-trigger").find("button").prepend('
')}return e.$inject=["$scope","$element","$animate"],{restrict:"E",transclude:!0,template:'
',scope:{isOpen:"=?mdOpen"},bindToController:!0,controller:e,controllerAs:"vm",link:t}}function o(){function n(n,o,r){var i=n[0],a=n.controller("mdFabToolbar"),d=i.querySelector(".md-fab-toolbar-background"),c=i.querySelector("md-fab-trigger button"),l=i.querySelector("md-fab-trigger button md-icon"),m=n.find("md-fab-actions").children();if(c&&d){var s=e.getComputedStyle(c).getPropertyValue("background-color"),u=i.offsetWidth,p=(i.offsetHeight,2*u);d.style.backgroundColor=s,d.style.borderRadius=u+"px",a.isOpen?(d.style.width=p+"px",d.style.height=p+"px",d.style.top=-(p/2)+"px",n.hasClass("md-left")&&(d.style.left=-(p/2)+"px",d.style.right=null),n.hasClass("md-right")&&(d.style.right=-(p/2)+"px",d.style.left=null),d.style.transitionDelay="0ms",l&&(l.style.transitionDelay=".3s"),t.forEach(m,function(e,t){e.style.transitionDelay=25*(m.length-t)+"ms"})):(d.style.width=c.offsetWidth+"px",d.style.height=c.offsetHeight+"px",d.style.top="0px",n.hasClass("md-left")&&(d.style.left="0px",d.style.right=null),n.hasClass("md-right")&&(d.style.right="0px",d.style.left=null),d.style.transitionDelay="200ms",l&&(l.style.transitionDelay="0ms"),t.forEach(m,function(e,t){e.style.transitionDelay=25*t+"ms"}))}}return{addClass:function(e,t,o){n(e,t,o),o()},removeClass:function(e,t,o){n(e,t,o),o()}}}t.module("material.components.fabToolbar",["material.core","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabToolbar",n).animation(".md-fab-toolbar",o).service("mdFabToolbarAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],link:function(e,n,o,r){var i=r[0]||r[1];i&&t.forEach(n.children(),function(e){t.element(e).on("focus",i.open),t.element(e).on("blur",i.close)})}}}t.module("material.components.fabTrigger",["material.core"]).directive("mdFabTrigger",e)}()}(),function(){function e(e,o,r,i){function a(n,a,d,c){function l(){for(var e in o.MEDIA)i(e),i.getQuery(o.MEDIA[e]).addListener(T);return i.watchResponsiveAttributes(["md-cols","md-row-height"],d,s)}function m(){c.layoutDelegate=t.noop,C();for(var e in o.MEDIA)i.getQuery(o.MEDIA[e]).removeListener(T)}function s(e){null==e?c.invalidateLayout():i(e)&&c.invalidateLayout()}function u(e){var o=b(),i={tileSpans:g(o),colCount:E(),rowMode:$(),rowHeight:M(),gutter:v()};if(e||!t.equals(i,y)){var d=r(i.colCount,i.tileSpans,o).map(function(e,n){return{grid:{element:a,style:h(i.colCount,n,i.gutter,i.rowMode,i.rowHeight)},tiles:e.map(function(e,n){return{element:t.element(o[n]),style:f(e.position,e.spans,i.colCount,i.rowCount,i.gutter,i.rowMode,i.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{performance:d}}),y=i}}function p(e){return w+e+k}function f(e,t,n,o,r,i,a){var d=1/n*100,c=(n-1)/n,l=x({share:d,gutterShare:c,gutter:r}),m={left:N({unit:l,offset:e.col,gutter:r}),width:_({unit:l,span:t.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""};switch(i){case"fixed":m.top=N({unit:a,offset:e.row,gutter:r}),m.height=_({unit:a,span:t.row,gutter:r});break;case"ratio":var s=d/a,u=x({share:s,gutterShare:c,gutter:r});m.paddingTop=_({unit:u,span:t.row,gutter:r}),m.marginTop=N({unit:u,offset:e.row,gutter:r});break;case"fit":var p=(o-1)/o,s=1/o*100,u=x({share:s,gutterShare:p,gutter:r});m.top=N({unit:u,offset:e.row,gutter:r}),m.height=_({unit:u,span:t.row,gutter:r})}return m}function h(e,t,n,o,r){var i={height:"",paddingBottom:""};switch(o){case"fixed":i.height=_({unit:r,span:t,gutter:n});break;case"ratio":var a=1===e?0:(e-1)/e,d=1/e*100,c=d*(1/r),l=x({share:c,gutterShare:a,gutter:n});i.paddingBottom=_({unit:l,span:t,gutter:n});break;case"fit":}return i}function b(){return[].filter.call(a.children(),function(e){return"MD-GRID-TILE"==e.tagName})}function g(e){return[].map.call(e,function(e){var n=t.element(e).controller("mdGridTile");return{row:parseInt(i.getResponsiveAttribute(n.$attrs,"md-rowspan"),10)||1,col:parseInt(i.getResponsiveAttribute(n.$attrs,"md-colspan"),10)||1}})}function E(){var e=parseInt(i.getResponsiveAttribute(d,"md-cols"),10);if(isNaN(e))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return e}function v(){return A(i.getResponsiveAttribute(d,"md-gutter")||1)}function M(){var e=i.getResponsiveAttribute(d,"md-row-height");switch($()){case"fixed":return A(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}function $(){var e=i.getResponsiveAttribute(d,"md-row-height");return"fit"==e?"fit":-1!==e.indexOf(":")?"ratio":"fixed"}function A(e){return/\D$/.test(e)?e:e+"px"}a.attr("role","list"),c.layoutDelegate=u;var T=t.bind(c,c.invalidateLayout),C=l();n.$on("$destroy",m);var y,w=e.startSymbol(),k=e.endSymbol(),x=e(p("share")+"% - ("+p("gutter")+" * "+p("gutterShare")+")"),N=e("calc(("+p("unit")+" + "+p("gutter")+") * "+p("offset")+")"),_=e("calc(("+p("unit")+") * "+p("span")+" + ("+p("span")+" - 1) * "+p("gutter")+")")}return{restrict:"E",controller:n, scope:{mdOnLayout:"&"},link:a}}function n(e){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=e.nextTick,this.layoutDelegate=t.noop}function o(e){function n(t,n){var o,a,d,c,l,m;return c=e.time(function(){a=r(t,n)}),o={layoutInfo:function(){return a},map:function(t){return l=e.time(function(){var e=o.layoutInfo();d=t(e.positioning,e.rowCount)}),o},reflow:function(t){return m=e.time(function(){var e=t||i;e(d.grid,d.tiles)}),o},performance:function(){return{tileCount:n.length,layoutTime:c,mapTime:l,reflowTime:m,totalTime:c+l+m}}}}function o(e,t){e.element.css(e.style),t.forEach(function(e){e.element.css(e.style)})}function r(e,t){function n(t,n){if(t.col>e)throw"md-grid-list: Tile at position "+n+" has a colspan ("+t.col+") that exceeds the column count ("+e+")";for(var a=0,m=0;m-a=e?o():(a=l.indexOf(0,d),-1!==a&&-1!==(m=i(a+1))?d=m+1:(a=m=0,o()));return r(a,t.col,t.row),d=a+t.col,{col:a,row:c}}function o(){d=0,c++,r(0,e,-1)}function r(e,t,n){for(var o=e;e+t>o;o++)l[o]=Math.max(l[o]+n,0)}function i(e){var t;for(t=e;tn;n++)t.push(0);return t}var d=0,c=0,l=a();return{positioning:t.map(function(e,t){return{spans:e,position:n(e,t)}}),rowCount:c+Math.max.apply(Math,l)}}var i=o;return n.animateWith=function(e){i=t.isFunction(e)?e:o},n}function r(e){function n(n,o,r,i){o.attr("role","listitem");var a=e.watchResponsiveAttributes(["md-colspan","md-rowspan"],r,t.bind(i,i.invalidateLayout));i.invalidateTiles(),n.$on("$destroy",function(){a(),i.invalidateLayout()}),t.isDefined(n.$parent.$index)&&n.$watch(function(){return n.$parent.$index},function(e,t){e!==t&&i.invalidateTiles()})}return{restrict:"E",require:"^mdGridList",template:"
",transclude:!0,scope:{},controller:["$attrs",function(e){this.$attrs=e}],link:n}}function i(){return{template:"
",transclude:!0}}t.module("material.components.gridList",["material.core"]).directive("mdGridList",e).directive("mdGridTile",r).directive("mdGridTileFooter",i).directive("mdGridTileHeader",i).factory("$mdGridLayout",o),e.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],n.$inject=["$mdUtil"],n.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(t.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}},o.$inject=["$mdUtil"],r.$inject=["$mdMedia"]}(),function(){function e(e,t,n){function o(o,r,i){function a(){var e=r.parent();return e.attr("aria-label")||e.text()?!0:e.parent().attr("aria-label")||e.parent().text()?!0:!1}function d(){function t(){return!o.fontIcon&&!o.fontSet&&!i.hasOwnProperty("class")}o.svgIcon||o.svgSrc||(o.fontIcon&&r.addClass("md-font "+o.fontIcon),o.fontSet&&r.addClass(e.fontSet(o.fontSet)),t()&&r.addClass(e.fontSet()))}t(r),d();var c=i.alt||o.fontIcon||o.svgIcon||r.text(),l=i.$normalize(i.$attr.mdSvgIcon||i.$attr.mdSvgSrc||"");i["aria-label"]||(""==c||a()?r.text()||n.expect(r,"aria-hidden","true"):(n.expect(r,"aria-label",c),n.expect(r,"role","img"))),l&&i.$observe(l,function(t){r.empty(),t&&e(t).then(function(e){r.append(e)})})}return{scope:{fontSet:"@mdFontSet",fontIcon:"@mdFontIcon",svgIcon:"@mdSvgIcon",svgSrc:"@mdSvgSrc"},restrict:"E",link:o}}t.module("material.components.icon",["material.core"]).directive("mdIcon",e),e.$inject=["$mdIcon","$mdTheming","$mdAria"]}(),function(){function e(){}function n(e,t){this.url=e,this.viewBoxSize=t||r.defaultViewBoxSize}function o(e,n,o,r,i){function a(e){return e=e||"",E[e]?o.when(E[e].clone()):v.test(e)?s(e).then(c(e)):(-1==e.indexOf(":")&&(e="$default:"+e),l(e)["catch"](m)["catch"](u)["catch"](p).then(c(e)))}function d(n){var o=t.isUndefined(n)||!(n&&n.length);if(o)return e.defaultFontSet;var r=n;return t.forEach(e.fontSets,function(e){e.alias==n&&(r=e.fontSet||r)}),r}function c(t){return function(n){return E[t]=f(n)?n:new h(n,e[t]),E[t].clone()}}function l(t){var n=e[t];return n?s(n.url).then(function(e){return new h(e,n)}):o.reject(t)}function m(t){function n(e){var n=t.slice(t.lastIndexOf(":")+1),r=e.querySelector("#"+n);return r?new h(r,i):o.reject(t)}var r=t.substring(0,t.lastIndexOf(":"))||"$default",i=e[r];return i?s(i.url).then(n):o.reject(t)}function s(e){return n.get(e,{cache:i}).then(function(e){return t.element("
").append(e.data).find("svg")[0]})}function u(e){var n;return t.isString(e)&&(n="icon "+e+" not found",r.warn(n)),o.reject(n||e)}function p(e){var n=t.isString(e)?e:e.message||e.data||e.statusText;return r.warn(n),o.reject(n)}function f(e){return t.isDefined(e.element)&&t.isDefined(e.config)}function h(e,n){"svg"!=e.tagName&&(e=t.element('').append(e)[0]),e.getAttribute("xmlns")||e.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.element=e,this.config=n,this.prepare()}function b(){var n=this.config?this.config.viewBoxSize:e.defaultViewBoxSize;t.forEach({fit:"",height:"100%",width:"100%",preserveAspectRatio:"xMidYMid meet",viewBox:this.element.getAttribute("viewBox")||"0 0 "+n+" "+n},function(e,t){this.element.setAttribute(t,e)},this),t.forEach({"pointer-events":"none",display:"block"},function(e,t){this.element.style[t]=e},this)}function g(){return this.element.cloneNode(!0)}var E={},v=/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i;return h.prototype={clone:g,prepare:b},a.fontSet=d,a}t.module("material.components.icon").provider("$mdIcon",e);var r={defaultViewBoxSize:24,defaultFontSet:"material-icons",fontSets:[]};e.prototype={icon:function(e,t,o){return-1==e.indexOf(":")&&(e="$default:"+e),r[e]=new n(t,o),this},iconSet:function(e,t,o){return r[e]=new n(t,o),this},defaultIconSet:function(e,t){var o="$default";return r[o]||(r[o]=new n(e,t)),r[o].viewBoxSize=t||r.defaultViewBoxSize,this},defaultViewBoxSize:function(e){return r.defaultViewBoxSize=e,this},fontSet:function(e,t){return r.fontSets.push({alias:e,fontSet:t||e}),this},defaultFontSet:function(e){return r.defaultFontSet=e?e:"",this},defaultIconSize:function(e){return r.defaultIconSize=e,this},preloadIcons:function(e){var t=this,n=[{id:"md-tabs-arrow",url:"md-tabs-arrow.svg",svg:''},{id:"md-close",url:"md-close.svg",svg:''},{id:"md-cancel",url:"md-cancel.svg",svg:''},{id:"md-menu",url:"md-menu.svg",svg:''},{id:"md-toggle-arrow",url:"md-toggle-arrow-svg",svg:''}];n.forEach(function(n){t.icon(n.id,n.url),e.put(n.url,n.svg)})},$get:["$http","$q","$log","$templateCache",function(e,t,n,i){return this.preloadIcons(i),o(r,e,t,n,i)}]}}(),function(){function e(e,t){function n(t,n,o){e(n)}function o(e,n,o){var r=this;r.isErrorGetter=o.mdIsError&&t(o.mdIsError),r.delegateClick=function(){r.input.focus()},r.element=n,r.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},r.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},r.setInvalid=function(e){n.toggleClass("md-input-invalid",!!e)},e.$watch(function(){return r.label&&r.input},function(e){e&&!r.label.attr("for")&&r.label.attr("for",r.input.attr("id"))})}return o.$inject=["$scope","$element","$attrs"],{restrict:"E",link:n,controller:o}}function n(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,o){o&&!n.mdNoFloat&&(o.label=t,e.$on("$destroy",function(){o.label=null}))}}}function o(e,n,o){function r(r,i,a,d){function c(e){return s.setHasValue(!u.$isEmpty(e)),e}function l(){s.setHasValue(i.val().length>0||(i[0].validity||{}).badInput)}function m(){function o(e){return h(),e}function a(){if(m.style.height=m.offsetHeight+"px",i.addClass("md-no-flex"),isNaN(p)){l.style.height="auto",l.scrollTop=0;var e=d();e&&(l.style.height=e+"px")}else{l.setAttribute("rows",1),f||(l.style.minHeight="0",f=i.prop("clientHeight"),l.style.minHeight=null);var t=Math.max(p,Math.round(l.scrollHeight/f));l.setAttribute("rows",t)}i.removeClass("md-no-flex"),m.style.height="auto"}function d(){var e=l.scrollHeight-l.offsetHeight;return l.offsetHeight+(e>0?e:0)}function c(e){l.scrollTop=0;var t=l.scrollHeight-l.offsetHeight,n=l.offsetHeight+t;l.style.height=n+"px"}if(!t.isDefined(i.attr("md-no-autogrow"))){var l=i[0],m=s.element[0],p=0/0,f=null;l.hasAttribute("rows")&&(p=parseInt(l.getAttribute("rows")));var h=e.debounce(a,1);u?(u.$formatters.push(o),u.$viewChangeListeners.push(o)):h(),i.on("keydown input",h),isNaN(p)&&(i.attr("rows","1"),i.on("scroll",c)),t.element(n).on("resize",h),r.$on("$destroy",function(){t.element(n).off("resize",h)})}}var s=d[0],u=d[1]||e.fakeNgModel(),p=t.isDefined(a.readonly);if(s){if(s.input)throw new Error(" can only have *one*
');r.$set("ngTrim","false"),l.element.append(m),c.$formatters.push(a),c.$viewChangeListeners.push(a),o.on("input keydown",function(){a()}),n.$watch(r.mdMaxlength,function(n){d=n,t.isNumber(n)&&n>0?(m.parent().length||e.enter(m,l.element,t.element(l.element[0].lastElementChild)),a()):e.leave(m)}),c.$validators["md-maxlength"]=function(e,n){return!t.isNumber(d)||0>d?!0:(e||o.val()||n||"").length<=d}}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:n}}function i(e){function n(n,o,r,i){if(i&&!t.isDefined(i.element.attr("md-no-float"))){var a=r.placeholder;if(o.removeAttr("placeholder"),0==i.element.find("label").length){if(i.input&&"MD-SELECT"!=i.input[0].nodeName){var d='";i.element.addClass("md-icon-float"),i.element.prepend(d)}}else"MD-SELECT"!=o[0].nodeName&&e.warn("The placeholder='"+a+"' will be ignored since this md-input-container has a child label element.")}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:n}}t.module("material.components.input",["material.core"]).directive("mdInputContainer",e).directive("label",n).directive("input",o).directive("textarea",o).directive("mdMaxlength",r).directive("placeholder",i),e.$inject=["$mdTheming","$parse"],o.$inject=["$mdUtil","$window","$mdAria"],r.$inject=["$animate"],i.$inject=["$log"]}(),function(){function e(e){return{restrict:"E",compile:function(t){return t[0].setAttribute("role","list"),e}}}function n(e,n,o){var r=["md-checkbox","md-switch"];return{restrict:"E",controller:"MdListController",compile:function(i,a){function d(){for(var e,t,n=["md-switch","md-checkbox"],o=0;t=n[o];++o)if((e=i.find(t)[0])&&!e.hasAttribute("aria-label")){var r=i.find("p")[0];if(!r)return;e.setAttribute("aria-label","Toggle "+r.textContent)}}function c(n){var o;if("div"==n)o=t.element('
'),o.append(i.contents()),i.addClass("md-proxy-focus");else{o=t.element('
');var r=["ng-click","aria-label","ng-disabled"];t.forEach(r,function(e){i[0].hasAttribute(e)&&(o[0].setAttribute(e,i[0].getAttribute(e)),i[0].removeAttribute(e))}),o.children().eq(0).append(i.contents())}if(i[0].setAttribute("tabindex","-1"),i.append(o),p&&p.hasAttribute("ng-click")){e.expect(p,"aria-label");var d=t.element('');d.attr("ng-click",p.getAttribute("ng-click")),p.removeAttribute("ng-click"),p.setAttribute("tabindex","-1"),p.classList.remove("md-secondary"),d.append(p),p=d[0]}p&&(p.hasAttribute("ng-click")||a.ngClick&&l(p))&&(i.addClass("md-with-secondary"),i.append(p))}function l(e){return-1!=r.indexOf(e.nodeName.toLowerCase())}function m(e,i,a,d){function c(){var e=i.children();e.length&&!e[0].hasAttribute("ng-click")&&t.forEach(r,function(e){t.forEach(s.querySelectorAll(e),function(e){m.push(e)})})}function l(){(m.length||u)&&(i.addClass("md-clickable"),d.attachRipple(e,t.element(i[0].querySelector(".md-no-style"))))}var m=[],s=i[0].firstElementChild,u=s&&s.hasAttribute("ng-click");c(),l(),i.hasClass("md-proxy-focus")&&m.length&&t.forEach(m,function(n){n=t.element(n),e.mouseActive=!1,n.on("mousedown",function(){e.mouseActive=!0,o(function(){e.mouseActive=!1},100)}).on("focus",function(){e.mouseActive===!1&&i.addClass("md-focused"),n.on("blur",function t(){i.removeClass("md-focused"),n.off("blur",t)})})}),u||m.length||s&&s.addEventListener("keypress",function(e){if("INPUT"!=e.target.nodeName&&"TEXTAREA"!=e.target.nodeName){var t=e.which||e.keyCode;t==n.KEY_CODE.SPACE&&s&&(s.click(),e.preventDefault(),e.stopPropagation())}}),i.off("click"),i.off("keypress"),m.length&&s&&i.children().eq(0).on("click",function(e){s.contains(e.target)&&t.forEach(m,function(n){e.target===n||n.contains(e.target)||t.element(n).triggerHandler("click")})})}var s,u,p=i[0].querySelector(".md-secondary");if(i[0].setAttribute("role","listitem"),a.ngClick)c("button");else{for(var f,h=0;f=r[h];++h)if(u=i[0].querySelector(f)){s=!0;break}s?c("div"):i[0].querySelector("md-button")||i.addClass("md-no-proxy")}return d(),m}}}function o(e,t,n){function o(e,t){var o={};n.attach(e,t,o)}var r=this;r.attachRipple=o}t.module("material.components.list",["material.core"]).controller("MdListController",o).directive("mdList",e).directive("mdListItem",n),e.$inject=["$mdTheming"],n.$inject=["$mdAria","$mdConstant","$timeout"],o.$inject=["$scope","$element","$mdListInkRipple"]}(),function(){function e(e){function n(e){e.addClass("md-menu");var t=e.children()[0];if(t.hasAttribute("ng-click")||(t=t.querySelector("[ng-click]")),t&&t.setAttribute("aria-haspopup","true"),2!=e.children().length)throw Error("Invalid HTML for md-menu. Expected two children elements.");return o}function o(e,n,o,r){var i=t.element('
'),a=n.children()[1];i.append(a),r.init(i),e.$on("$destroy",function(){i.remove(),r.close()})}return{restrict:"E",require:"mdMenu",controller:"mdMenuCtrl",scope:!0,compile:n}}function n(e,t,n,o){var r,i,a=this;this.init=function(e){r=e,i=n[0].querySelector("[ng-click]")},this.open=function(t){t&&t.stopPropagation(),a.isOpen=!0,i.setAttribute("aria-expanded","true"),e.show({scope:o,mdMenuCtrl:a,element:r,target:n[0]})},o.$mdOpenMenu=this.open,this.close=function(t){a.isOpen&&(a.isOpen=!1,i.setAttribute("aria-expanded","false"),e.hide(),t||n.children()[0].focus())},this.positionMode=function(){var e=(t.mdPositionMode||"target").split(" ");return 1==e.length&&e.push(e[0]),{left:e[0],top:e[1]}},this.offsets=function(){var e=(t.mdOffset||"0 0").split(" ").map(parseFloat);if(2==e.length)return{left:e[0],top:e[1]};if(1==e.length)return{top:e[0],left:e[0]};throw Error("Invalid offsets specified. Please follow format or ")}}t.module("material.components.menu",["material.core","material.components.backdrop"]).directive("mdMenu",e).controller("mdMenuCtrl",n),e.$inject=["$mdMenu"],n.$inject=["$mdMenu","$attrs","$element","$scope"]}(),function(){function o(o){function r(o,r,a,d,c,l){function m(e,n,i){function l(){if(!i.target)throw Error("$mdMenu.show() expected a target to animate from in options.target");t.extend(i,{alreadyOpen:!1,isRemoved:!1,target:t.element(i.target),parent:t.element(i.parent),menuContentEl:t.element(n[0].querySelector("md-menu-content")),backdrop:i.hasBackdrop&&a.createBackdrop(e,"md-menu-backdrop md-click-catcher")})}function m(){i.resizeFn=function(){f(n,i)},t.element(r).on("resize",i.resizeFn),t.element(r).on("orientationchange",i.resizeFn)}function u(){i.parent.append(n),n.removeClass("md-leave"),o(function(){o(function(){f(n,i),o(function(){n.addClass("md-active"),i.alreadyOpen=!0,n[0].style[c.CSS.TRANSFORM]=""})})})}function p(){n.addClass("md-clickable"),i.backdrop&&i.backdrop.on("click",function(t){t.preventDefault(),t.stopPropagation(),e.$apply(function(){i.mdMenuCtrl.close(!0)})}),i.menuContentEl.on("keydown",function(t){e.$apply(function(){switch(t.keyCode){case c.KEY_CODE.ESCAPE:i.mdMenuCtrl.close();break;case c.KEY_CODE.UP_ARROW:s(t,i.menuContentEl,i,-1);break;case c.KEY_CODE.DOWN_ARROW:s(t,i.menuContentEl,i,1)}})});var t=function(t){function n(){e.$apply(function(){i.mdMenuCtrl.close()})}function o(e,t){if(!e)return!1;for(var n,o=0;n=t[o];++o)for(var r,i=[n,"data-"+n,"x-"+n],a=0;r=i[a];++a)if(e.hasAttribute(r))return!0;return!1}var r=t.target;do{if(r==i.menuContentEl[0])return;if(o(r,["ng-click","ng-href","ui-sref"])){r.hasAttribute("disabled")||n();break}}while(r=r.parentNode)};i.menuContentEl[0].addEventListener("click",t,!0);var o=i.menuContentEl[0].querySelector("[md-menu-focus-target]");return o||(o=i.menuContentEl[0].firstElementChild.firstElementChild),o.focus(),function(){n.removeClass("md-clickable"),i.backdrop.off("click"),i.menuContentEl.off("keydown"),i.menuContentEl[0].removeEventListener("click",t,!0)}}return l(i),d.inherit(i.menuContentEl,i.target),m(),i.disableParentScroll&&(i.restoreScroll=a.disableScrollAround(i.element)),i.backdrop&&(d.inherit(i.backdrop,i.parent),i.parent.append(i.backdrop)),u(),h.waitTransitionEnd(n,{timeout:370})["finally"](function(e){return i.cleanupInteraction=p(),e})}function s(e,t,n,o){for(var r=a.getClosest(e.target,"MD-MENU-ITEM"),i=a.nodesToArray(t[0].children),d=i.indexOf(r),c=d+o;c>=0&&c
',compile:n}}t.module("material.components.progressCircular",["material.core"]).directive("mdProgressCircular",e),e.$inject=["$mdConstant","$mdTheming"]}(),function(){function e(e,o,r){function i(e,t,n){return e.attr("aria-valuemin",0),e.attr("aria-valuemax",100),e.attr("role","progressbar"),a}function a(i,a,c){r(a);var l=a[0].querySelector(".md-bar1").style,m=a[0].querySelector(".md-bar2").style,s=t.element(a[0].querySelector(".md-container"));c.$observe("value",function(e){if("query"!=c.mdMode){var t=d(e);a.attr("aria-valuenow",t),m[o.CSS.TRANSFORM]=n[t]}}),c.$observe("mdBufferValue",function(e){l[o.CSS.TRANSFORM]=n[d(e)]}),e(function(){s.addClass("md-ready")})}function d(e){return e>100?100:0>e?0:Math.ceil(e||0)}return{restrict:"E",template:'
',compile:i}}t.module("material.components.progressLinear",["material.core"]).directive("mdProgressLinear",e),e.$inject=["$$rAF","$mdConstant","$mdTheming"];var n=function(){function e(e){var t=e/100,n=(e-100)/2;return"translateX("+n.toString()+"%) scale("+t.toString()+", 1)"}for(var t=new Array(101),n=0;101>n;n++)t[n]=e(n);return t}()}(),function(){function e(e,n,o,r){function i(i,a,d,c){function l(){a.hasClass("md-focused")||a.addClass("md-focused")}function m(o){var r=o.which||o.keyCode;switch(r){case n.KEY_CODE.LEFT_ARROW:case n.KEY_CODE.UP_ARROW:o.preventDefault(),s.selectPrevious(),l();break;case n.KEY_CODE.RIGHT_ARROW:case n.KEY_CODE.DOWN_ARROW:o.preventDefault(),s.selectNext(),l();break;case n.KEY_CODE.ENTER:var i=t.element(e.getClosest(a[0],"form"));i.length>0&&i.triggerHandler("submit")}}o(a);var s=c[0],u=c[1]||e.fakeNgModel();s.init(u),i.mouseActive=!1,a.attr({role:"radiogroup",tabIndex:a.attr("tabindex")||"0"}).on("keydown",m).on("mousedown",function(e){i.mouseActive=!0,r(function(){i.mouseActive=!1},100)}).on("focus",function(){i.mouseActive===!1&&s.$element.addClass("md-focused")}).on("blur",function(){s.$element.removeClass("md-focused")})}function a(e){this._radioButtonRenderFns=[],this.$element=e}function d(){return{init:function(e){this._ngModelCtrl=e,this._ngModelCtrl.$render=t.bind(this,this.render)},add:function(e){this._radioButtonRenderFns.push(e)},remove:function(e){var t=this._radioButtonRenderFns.indexOf(e);-1!==t&&this._radioButtonRenderFns.splice(t,1)},render:function(){this._radioButtonRenderFns.forEach(function(e){e()})},setViewValue:function(e,t){this._ngModelCtrl.$setViewValue(e,t),this.render()},getViewValue:function(){return this._ngModelCtrl.$viewValue},selectNext:function(){return c(this.$element,1)},selectPrevious:function(){return c(this.$element,-1)},setActiveDescendant:function(e){this.$element.attr("aria-activedescendant",e)}}}function c(n,o){var r=e.iterator(n[0].querySelectorAll("md-radio-button"),!0);if(r.count()){var i=function(e){return!t.element(e).attr("disabled")},a=n[0].querySelector("md-radio-button.md-checked"),d=r[0>o?"previous":"next"](a,i)||r.first();t.element(d).triggerHandler("click")}}return a.prototype=d(),{restrict:"E",controller:["$element",a],require:["mdRadioGroup","?ngModel"],link:{pre:i}}}function n(e,t,n){function o(o,i,a,d){function c(e){i[0].hasAttribute("disabled")||o.$apply(function(){d.setViewValue(a.value,e&&e.type)})}function l(){var e=d.getViewValue()==a.value;e!==s&&(s=e,i.attr("aria-checked",e),e?(i.addClass(r),d.setActiveDescendant(i.attr("id"))):i.removeClass(r))}function m(n,o){function r(){return a.id||"radio_"+t.nextUid()}o.ariaId=r(),n.attr({id:o.ariaId,role:"radio","aria-checked":"false"}),e.expectWithText(n,"aria-label")}var s;n(i),m(i,o),d.add(l),a.$observe("value",l),i.on("click",c).on("$destroy",function(){d.remove(l)})}var r="md-checked";return{restrict:"E",require:"^mdRadioGroup",transclude:!0,template:'
',link:o}}t.module("material.components.radioButton",["material.core"]).directive("mdRadioGroup",e).directive("mdRadioButton",n),e.$inject=["$mdUtil","$mdConstant","$mdTheming","$timeout"],n.$inject=["$mdAria","$mdUtil","$mdTheming"]}(),function(){function e(e,o,r,i,a,d,c){function l(a,l){var m=t.element("");if(m.append(''),m.addClass("md-select-value"),m[0].hasAttribute("id")||m.attr("id","select_value_label_"+o.nextUid()),a.find("md-content").length||a.append(t.element("").append(a.contents())),l.mdOnOpen&&a.find("md-content").prepend(t.element("").attr("md-mode","indeterminate").attr("ng-hide","$$loadingAsyncDone").wrap("
").parent()),l.name){var s=t.element(',