-- @/lua/ge/extensions/ui/vehicleSelector/general.lua:477
add = function() end,
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
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;
obj:setName(name)
scenetree.MissionGroup:add(obj.obj)
this.element.classList.add("network");
this.addSubview(this._dataGrid);
addObserver(observer) {
this.observers.add(observer)
return () => this.observers.delete(observer)
if (flag)
this.element.classList.add(WI.HierarchicalPathNavigationItem.AlwaysShowLastPathComponentSeparatorStyleClassName);
else
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");
}
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);
this.element.classList.add("script");
this.addSubview(this._dataGrid);
-- @return true on success or false and error message on failure
function ioloop_mt:add(client)
local clients = self.clients
var streamsList = ['engineThermalData']
StreamsManager.add(streamsList)
scope.$on('$destroy', function () {
var element = this._element = document.createElement("div");
element.classList.add("stack-trace");
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
this.element.classList.add("layer");
this.element.classList.add("script");
scenetree.MissionGroup:add(splineObject.obj)
splineObject:createMesh(segment.meshes)
this.element.classList.add("sidebar-navigation-bar");
this._holderElement = this.element.appendChild(document.createElement("div"));
editor.updateRoadVertices(decalRoad)
scenetree.MissionGroup:add(decalRoad)
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,"")
StreamsManager.add(streamsList)
scope.$on('$destroy', function () {
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");
if extensions.core_vehicle_partmgmt.hasAvailablePart(playerVehicle.JBeam .. "_skin_dynamicTextures") == false then
deps.notification.add("Main", "Current vehicle is not supported", "The current vehicle is not supported yet. The necessary files are missing.", deps.notification.levels.warning)
end
// data.uiNavHandler = UINavHandlers.add(
// _getHandlerElement(element),
data.uiNavHandler = UINavHandlers.add(
element,
this._element = element || document.createElement("div");
this._element.classList.add("filter-bar");
let contentPlaceholder = WI.createMessageTextView(WI.UIString("Editing audits"));
contentPlaceholder.classList.add("finish-editing-audits-placeholder");
contentView.element.appendChild(contentPlaceholder);
let versionContainer = contentView.element.appendChild(document.createElement("div"));
versionContainer.classList.add("audit-version");
{
this.element.classList.add("has-results");
let contentPlaceholder = this.showEmptyContentPlaceholder(WI.UIString("No Enabled Audits"));
contentPlaceholder.classList.add("no-enabled-audits");
this._remoteObjectsToRelease = new Set;
this._remoteObjectsToRelease.add(remoteObject);
}
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);
this.element.classList.add("layout-overview");
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;
this._domBreakpointURLMap.add(breakpoint.url, breakpoint);
domBreakpointNodeIdentifierMap.add(nodeIdentifier, breakpoint);
link: function (scope, element, attrs) {
StreamsManager.add(['drivingStrategy'])
alternateSubtitle = document.createElement("span");
alternateSubtitle.classList.add("alternate-subtitle");
if (timelineRecord.details.repeating)
this.element.classList.add("quick-console");
this.element.addEventListener("mousedown", this._handleMouseDown.bind(this));
if (className)
p.classList.add(className);
this.element.classList.add("memory-category-view", category);
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");
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.')
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";
listenersTable.add(thisObject, listener);
return listener;
if (thisObject instanceof proto)
results.add(thisObject);
});
function Event.add(self, fun)
check_function(fun)
this.element.classList.add(styleClassName, "resource");
var streamsList = ['engineInfo']
StreamsManager.add(streamsList)
scope.$on('$destroy', function () {
let streamsList = ['genericGraphAdvanced']
StreamsManager.add(streamsList)
scope.$on('$destroy', function () {
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");
var streamsList = ['engineInfo']
StreamsManager.add(streamsList)
scope.$on('$destroy', function () {
container.classList.add("pulsing");
}
item.container.title = item.tooltip;
item.container.classList.add(WI.DefaultDashboardView.EnabledItemStyleClassName);
} else {
// those classes might help make css exclusions
element.classList.add("bng-pos-observed")
trackDiv.className = "bng-pos-observer"
-- set of tasks is executing.
local function add(self, task, ...)
local carg = pack(...)
if gameplay_drift_general.getGeneralDebug() then
profiler:add("Drift detection")
gc = profiler.sections[1].garbage
if (!interactive) {
getterElement.classList.add("disabled");
getterElement.title = WI.UIString("Getter");
if (!interactive)
setterElement.classList.add("disabled");
this.element.classList.add("text");
this.element.classList.add("navigation");
this._topOverflowShadowElement = this.element.appendChild(document.createElement("div"));
this._topOverflowShadowElement.classList.add(WI.NavigationSidebarPanel.OverflowShadowElementStyleClassName, "top");
}
contentTreeOutline.allowsRepeatSelection = true;
contentTreeOutline.element.classList.add(WI.NavigationSidebarPanel.ContentTreeOutlineElementStyleClassName);
this._contentTreeOutlineGroup.add(contentTreeOutline);
this.showEmptyContentPlaceholder(message, treeOutline);
this._emptyFilterResults.add(treeOutline);
}
this.element.classList.add("source-code");
let widgetElement = widget.widgetElement;
widgetElement.classList.add("line-indicator-widget", "thread-widget", "inline");
widgetElement.addEventListener("click", this._handleThreadIndicatorWidgetClick.bind(this, widget, lineNumber));
if (issue.level === WI.IssueMessage.Level.Error)
widget.widgetElement.classList.add(WI.SourceCodeTextEditor.LineErrorStyleClassName);
else if (issue.level === WI.IssueMessage.Level.Warning)
else if (issue.level === WI.IssueMessage.Level.Warning)
widget.widgetElement.classList.add(WI.SourceCodeTextEditor.LineWarningStyleClassName);
var widgetElement = widget.widgetElement;
widgetElement.classList.add("line-indicator-widget", "issue-widget", "inline");
widgetElement.addEventListener("click", this._handleWidgetClick.bind(this, widget, lineNumber));
if (issues.length === 1) {
iconElement.classList.add(this._iconClassNameForIssueLevel(issues[0].level));
textElement.textContent = issues[0].text;
if (warningsCount && errorsCount) {
iconElement.classList.add(this._iconClassNameForIssueLevel(issue.level));
textElement.textContent = WI.UIString("%d Errors, %d Warnings").format(errorsCount, warningsCount);
} else if (errorsCount) {
iconElement.classList.add(this._iconClassNameForIssueLevel(issue.level));
textElement.textContent = WI.UIString("%d Errors").format(errorsCount);
} else if (warningsCount) {
iconElement.classList.add(this._iconClassNameForIssueLevel(issue.level));
textElement.textContent = WI.UIString("%d Warnings").format(warningsCount);
iconElement.className = "icon";
iconElement.classList.add(this._iconClassNameForIssueLevel(issue.level));
content.classList.add(WI.SourceCodeTextEditor.PopoverDebuggerContentStyleClassName);
let content = document.createElement("div");
content.classList.add("function");
let title = document.createElement("div");
title.classList.add("title");
title.textContent = response.name || response.displayName || WI.UIString("(anonymous function)");
let wrapper = document.createElement("div");
wrapper.classList.add("body");
content.appendChild(wrapper);
this.element.classList.add("resource-details", "resource-sizes");
let resourceComponents = createSizeComponents(resourceSection, WI.UIString("Resource Size"), null, WI.UIString("Compression:"), WI.UIString("MIME Type:"));
resourceComponents.container.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName, this._resource.type);
resourceComponents.imageElement.classList.add("icon");
resourceComponents.container.classList.add(WI.ResourceTreeElement.ResourceIconStyleClassName, this._resource.type);
resourceComponents.imageElement.classList.add("icon");
this._resourceBytesElement = resourceComponents.bytesElement;
if im.Button(string.format("%s##%s", "notification.add", guiId)) then
notification.add("Debug", "test", "this is a test")
end
this.element.classList.add("data-grid");
let newItems = new Set(extendSelection ? this._selectedItems : null);
newItems.add(item);
if (item)
newItems.add(item);
while (current) {
items.add(current);
if (current === lastItem)
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)
proc.canSave = false
scenetree.MissionGroup:add(proc.obj)
proc:createMesh({{mesh}})
this._element = document.createElement("div");
this._element.classList.add("container");
let titleElement = this._element.appendChild(document.createElement("div"));
titleElement.classList.add("title");
titleElement.textContent = title;
this._editorGroupElement = this._element.appendChild(document.createElement("div"));
this._editorGroupElement.classList.add("editor-group");
}
var container = document.createElement("span");
container.classList.add(WI.CodeMirrorCompletionController.CompletionHintStyleClassName);
container.textContent = text;
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()
this.element.classList.add("console-drawer");
this.element.classList.add("hidden");
}
let parameterElement = document.createElement("span");
parameterElement.classList.add("parameter");
if (constantNameForParameter) {
parameterElement.classList.add("constant");
parameterElement.textContent = "context." + constantNameForParameter;
case WI.Recording.Swizzle.Array:
parameterElement.classList.add("swizzled");
parameterElement.textContent = JSON.stringify(parameter);
case WI.Recording.Swizzle.WebGLVertexArrayObject:
parameterElement.classList.add("swizzled");
parameterElement.textContent = WI.Recording.displayNameForSwizzleType(swizzleType);
if (!parameterElement.textContent) {
parameterElement.classList.add("invalid");
parameterElement.textContent = swizzleType === WI.Recording.Swizzle.None ? parameter : WI.Recording.displayNameForSwizzleType(swizzleType);
let contextReplacerContainer = titleFragment.appendChild(document.createElement("span"));
contextReplacerContainer.classList.add("context-replacer");
contextReplacerContainer.textContent = contextReplacer;
let nameContainer = titleFragment.appendChild(document.createElement("span"));
nameContainer.classList.add("name");
nameContainer.textContent = recordingAction.name;
let parametersContainer = titleFragment.appendChild(document.createElement("span"));
parametersContainer.classList.add("parameters");
om:registerObject(nm) --'tmp_'..tostring(os.clock()))
groupBat:add(om.obj)
end
this.element.classList.add("text-editor", WI.SyntaxHighlightedStyleClassName);
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);
-- 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')
{
this.element.classList.add(WI.DetailsSectionRow.EmptyStyleClassName);
if (sourceCodeLocation.hasFormattedLocation())
this.subtitleElement.classList.add(WI.BreakpointTreeElement.FormattedLocationStyleClassName);
else
this.element.classList.add(WI.BreakpointTreeElement.ProbeDataUpdatedStyleClassName);
this._removeIconAnimationTimeoutIdentifier = setTimeout(() => {
this._savedRecordings.add(recording);
canvas.shaderProgramCollection.add(program);
}
recording.createDisplayName(recording.displayName);
this._savedRecordings.add(recording);
this.dispatchEventToListeners(WI.CanvasManager.Event.RecordingSaved, {recording});
if (!item.enabled)
menuItemElement.classList.add("disabled");
if (this._highlightedMenuItemElement) {
this._highlightedMenuItemElement.classList.add("highlighted");
this._contextMenuElement.focus();
this.element.classList.add("network");
rowRecords.__element = document.createElement("div");
rowRecords.__element.classList.add("graph-row");
this.element.appendChild(rowRecords.__element);
if #missingSidecarFiles > 0 then
notification.add("Textures", "Missing texture meta files",
function()
if #missingSidecarFiles > 0 then
notification.add("Textures", "Missing texture meta files",
function()
const scheduleQueueCheck = (queueName, scheduleFunction) => {
pendingQueues.add(queueName)
scheduleFunction(() => {
const scheduleQueueCheck = (queueName, scheduleFunction) => {
pendingQueues.add(queueName)
scheduleFunction(() => {
link: function (scope, element, attrs) {
StreamsManager.add(['electrics'])
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
end
if (data.value[id]) remove(id)
add(id, actionFn, immediateStart, options)
}
var streamsList = ['electrics']
StreamsManager.add(streamsList)
scope.$on('$destroy', function () {
foundClasses.add(className);
return `${selector}.${CSS.escape(className)}`;
var streamsList = ['sensors']
StreamsManager.add(streamsList)
element.classList.add("editing");
element.contentEditable = "plaintext-only";
if (config.multiline)
element.classList.add("multiline");
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+"