UNPKG

411 kBSource Map (JSON)View Raw
1{"version":3,"sources":["typedefs/typedefs.ts","DOMConstants.ts","serviceError.ts","services/build.ts","services/geoTaggingAnalyzerService.ts","typedefs/buildConstants.ts","clientError.ts","arrayExtensions.ts","Controls/DomFactory.ts","Double.ts","color.ts","CssConstants.ts","debug.ts","Errors.ts","JQueryExtensions.ts","Lazy.ts","Prototype.ts","ScriptErrorInfo.ts","shapes.ts","Formatting.ts","services/requires.ts","services/jqueryPromiseFactory.ts","services/localStorageService.ts","Utility/wordBreaker.ts","services/textMeasurementService.ts","Utility/keyUtils.ts","Utility/ThrottleUtility.ts","Utility/TimerPromiseFactory.ts","Utility/Utility.ts","tracing/traceItem.ts","Utility/urlUtils.ts","Utility/browserUtils.ts","Utility/StandaloneUtility.ts","Utility/styleUtils.ts","tracing/trace.ts","tracing/traceType.ts","services/dependencies.ts","TraceType.ts"],"names":[],"mappings":"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I,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC5kB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;YAC1rB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;YAC1rB,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,sBAAe,GAAG;YAC3B,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;YAC/qB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAC9xB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,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","file":"VisualsCommon.js","sourcesContent":["/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\n///<reference path=\"../../Typedefs/jquery/jquery.d.ts\"/>\r\n///<reference path=\"../../Typedefs/d3/d3.d.ts\"/>\r\n///<reference path=\"../../Typedefs/lodash/lodash.d.ts\"/>","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n /**\r\n * DOM constants.\r\n */\r\n export module DOMConstants {\r\n\r\n /** \r\n * Integer codes corresponding to individual keys on the keyboard.\r\n */\r\n export const escKeyCode = 27;\r\n export const enterKeyCode = 13;\r\n export const tabKeyCode = 9;\r\n export const upArrowKeyCode = 38;\r\n export const downArrowKeyCode = 40;\r\n export const leftArrowKeyCode = 37;\r\n export const rightArrowKeyCode = 39;\r\n export const homeKeyCode = 36;\r\n export const endKeyCode = 35;\r\n export const backSpaceKeyCode = 8;\r\n export const deleteKeyCode = 46;\r\n export const spaceKeyCode = 32;\r\n export const shiftKeyCode = 16;\r\n export const ctrlKeyCode = 17;\r\n export const altKeyCode = 18;\r\n\r\n export const aKeyCode = 65;\r\n export const cKeyCode = 67;\r\n export const sKeyCode = 83;\r\n export const vKeyCode = 86;\r\n export const wKeyCode = 87;\r\n export const xKeyCode = 88;\r\n export const yKeyCode = 89;\r\n export const zKeyCode = 90;\r\n\r\n /** \r\n * DOM Elements.\r\n */\r\n export const DocumentBody = 'body';\r\n export const Anchor = 'a';\r\n export const EditableTextElements = ':text, textarea';\r\n export const EditableNumericElements = '[type=\"number\"]';\r\n\r\n /** \r\n * DOM Attributes and values.\r\n */\r\n export const disabledAttributeOrValue = 'disabled';\r\n export const readonlyAttributeOrValue = 'readonly';\r\n export const idAttribute = 'id';\r\n export const styleAttribute = 'style';\r\n export const hrefAttribute = 'href';\r\n export const targetAttribute = 'target';\r\n export const blankValue = '_blank';\r\n export const selfValue = '_self';\r\n export const classAttribute = 'class';\r\n export const titleAttribute = 'title';\r\n export const srcAttribute = 'src';\r\n\r\n /**\r\n * DOM event names.\r\n */\r\n export const contextmenuEventName = 'contextmenu';\r\n export const blurEventName = 'blur';\r\n export const keyUpEventName = 'keyup';\r\n export const inputEventName = 'input';\r\n export const changeEventName = 'change';\r\n export const cutEventName = 'cut';\r\n export const keyDownEventName = 'keydown';\r\n export const mouseMoveEventName = 'mousemove';\r\n export const mouseDownEventName = 'mousedown';\r\n export const mouseEnterEventName = 'mouseenter';\r\n export const mouseLeaveEventName = 'mouseleave';\r\n export const mouseOverEventName = 'mouseover';\r\n export const mouseOutEventName = 'mouseout';\r\n export const mouseClickEventName = 'click';\r\n export const pasteEventName = 'paste';\r\n export const scrollEventName = 'scroll';\r\n export const dropEventName = 'drop';\r\n export const focusEventName = 'focus';\r\n export const focusInEventName = 'focusin';\r\n export const focusOutEventName = 'focusout';\r\n export const selectEventName = 'select';\r\n export const messageEventName = 'message';\r\n export const loadEventName = 'load';\r\n export const beforeUnload = 'beforeunload';\r\n \r\n /**\r\n * Common DOM event combination names.\r\n */\r\n export const inputAndSelectEventNames = 'input, select';\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n import IStringResourceProvider = jsCommon.IStringResourceProvider;\r\n\r\n export interface ServiceError {\r\n statusCode: number;\r\n\r\n /**\r\n * This error code corresponds with a PowerBIServiceException that happened on the server.\r\n */\r\n errorCode?: string;\r\n \r\n /**\r\n * Message and stack trace should only be sent in non-production environments.\r\n */\r\n message?: string;\r\n stackTrace?: string;\r\n errorDetails?: PowerBIErrorDetail[];\r\n parameters?: ErrorParameter[];\r\n }\r\n\r\n export interface PowerBIErrorDetail {\r\n code: string;\r\n detail: PowerBIErrorDetailValue;\r\n }\r\n\r\n export interface ErrorParameter {\r\n Key: string;\r\n Value: string;\r\n }\r\n\r\n export interface PowerBIErrorDetailValue {\r\n type: PowerBIErrorResourceType;\r\n value: string;\r\n }\r\n\r\n export enum PowerBIErrorResourceType {\r\n ResourceCodeReference = 0,\r\n EmbeddedString = 1,\r\n }\r\n\r\n export const enum ServiceErrorStatusCode {\r\n GeneralError = 0,\r\n CsdlFetching = 1,\r\n CsdlConvertXmlToConceptualSchema = 2,\r\n CsdlCreateClientSchema = 3,\r\n ExecuteSemanticQueryError = 4,\r\n ExecuteSemanticQueryInvalidStreamFormat = 5,\r\n ExecuteSemanticQueryTransformError = 6,\r\n }\r\n\r\n export class ServiceErrorToClientError implements IClientError {\r\n private m_serviceError: ServiceError;\r\n private httpRequestId: string;\r\n private static codeName = 'ServiceErrorToClientError';\r\n\r\n public get code(): string {\r\n return ServiceErrorToClientError.codeName;\r\n }\r\n\r\n public get ignorable(): boolean {\r\n return false;\r\n }\r\n\r\n public get requestId(): string {\r\n return this.httpRequestId;\r\n }\r\n\r\n public set requestId(value: string) {\r\n this.httpRequestId = value;\r\n }\r\n\r\n constructor(serviceError: ServiceError) {\r\n this.m_serviceError = serviceError;\r\n }\r\n\r\n public getDetails(resourceProvider: IStringResourceProvider): ErrorDetails {\r\n let errorDetails: ErrorDetails;\r\n if (this.m_serviceError.statusCode === ServiceErrorStatusCode.ExecuteSemanticQueryTransformError) {\r\n errorDetails = PowerBIErrorDetailHelper.GetDetailsFromTransformError(resourceProvider, this.m_serviceError);\r\n }\r\n else {\r\n errorDetails = PowerBIErrorDetailHelper.GetDetailsFromServerErrorStatusCode(resourceProvider, this.m_serviceError.statusCode);\r\n }\r\n\r\n PowerBIErrorDetailHelper.addAdditionalInfo(errorDetails, this.m_serviceError.errorDetails, resourceProvider);\r\n PowerBIErrorDetailHelper.addMessageAndStackTrace(errorDetails, this.m_serviceError.message || null, this.m_serviceError.stackTrace || null, resourceProvider);\r\n\r\n return errorDetails;\r\n }\r\n }\r\n\r\n export class PowerBIErrorDetailHelper {\r\n private static serverErrorPrefix = \"ServerError_\";\r\n public static addAdditionalInfo(errorDetails: ErrorDetails, pbiErrorDetails: PowerBIErrorDetail[], localize: IStringResourceProvider): ErrorDetails {\r\n if (pbiErrorDetails) {\r\n for (let i = 0; i < pbiErrorDetails.length; i++) {\r\n let element = pbiErrorDetails[i];\r\n let localizedCode = localize.getOptional(PowerBIErrorDetailHelper.serverErrorPrefix + element.code);\r\n let additionErrorInfoKeyValuePair = {\r\n errorInfoKey: localizedCode ? localizedCode : element.code,\r\n errorInfoValue: element.detail.type === PowerBIErrorResourceType.ResourceCodeReference ? localize.get(PowerBIErrorDetailHelper.serverErrorPrefix + element.detail.value) : element.detail.value\r\n };\r\n\r\n errorDetails.additionalErrorInfo.push(additionErrorInfoKeyValuePair);\r\n }\r\n }\r\n return errorDetails;\r\n }\r\n\r\n public static addMessageAndStackTrace(errorDetails: ErrorDetails, message: string, stackTrace: string, localize: IStringResourceProvider): ErrorDetails {\r\n if (message) {\r\n let additionErrorInfoKeyValuePair = {\r\n errorInfoKey: localize.get(\"AdditionalErrorInfo_ErrorDetailsText\"),\r\n errorInfoValue: message\r\n };\r\n errorDetails.additionalErrorInfo.push(additionErrorInfoKeyValuePair);\r\n }\r\n if (stackTrace) {\r\n let additionErrorInfoKeyValuePair = {\r\n errorInfoKey: localize.get(\"AdditionalErrorInfo_StackTraceText\"),\r\n errorInfoValue: stackTrace\r\n };\r\n errorDetails.additionalErrorInfo.push(additionErrorInfoKeyValuePair);\r\n }\r\n return errorDetails;\r\n }\r\n\r\n public static GetDetailsFromTransformError(localize: IStringResourceProvider, serviceError: ServiceError): ErrorDetails {\r\n let message = localize.get('ServiceError_CannotLoadVisual');\r\n let key = localize.get('ServiceError_CannotLoadVisual');\r\n let val = serviceError.message;\r\n\r\n let additionalInfo: ErrorInfoKeyValuePair[] = [];\r\n additionalInfo.push({ errorInfoKey: key, errorInfoValue: val, });\r\n\r\n let errorDetails: ErrorDetails = {\r\n message: message,\r\n additionalErrorInfo: additionalInfo,\r\n };\r\n\r\n return errorDetails;\r\n }\r\n\r\n public static GetDetailsFromServerErrorStatusCode(localize: IStringResourceProvider, statusCode: number): ErrorDetails {\r\n // TODO: Localize\r\n let message: string = \"\";\r\n let key: string = \"\";\r\n let val: string = \"\";\r\n\r\n switch (statusCode) {\r\n case ServiceErrorStatusCode.CsdlConvertXmlToConceptualSchema:\r\n message = localize.get('ServiceError_ModelCannotLoad');\r\n key = localize.get('ServiceError_ModelConvertFailureKey');\r\n val = localize.get('ServiceError_ModelConvertFailureValue');\r\n break;\r\n case ServiceErrorStatusCode.CsdlCreateClientSchema:\r\n message = localize.get('ServiceError_ModelCannotLoad');\r\n key = localize.get('ServiceError_ModelCreationFailureKey');\r\n val = localize.get('ServiceError_ModelCreationFailureValue');\r\n break;\r\n case ServiceErrorStatusCode.CsdlFetching:\r\n message = localize.get('ServiceError_ModelCannotLoad');\r\n key = localize.get('ServiceError_ModelFetchingFailureKey');\r\n val = localize.get('ServiceError_ModelFetchingFailureValue');\r\n break;\r\n case ServiceErrorStatusCode.ExecuteSemanticQueryError:\r\n message = localize.get('ServiceError_CannotLoadVisual');\r\n key = localize.get('ServiceError_ExecuteSemanticQueryErrorKey');\r\n val = localize.get('ServiceError_ExecuteSemanticQueryErrorValue');\r\n break;\r\n case ServiceErrorStatusCode.ExecuteSemanticQueryInvalidStreamFormat:\r\n message = localize.get('ServiceError_CannotLoadVisual');\r\n key = localize.get('ServiceError_ExecuteSemanticQueryInvalidStreamFormatKey');\r\n val = localize.get('ServiceError_ExecuteSemanticQueryInvalidStreamFormatValue');\r\n break;\r\n case ServiceErrorStatusCode.GeneralError:\r\n default:\r\n message = localize.get('ServiceError_GeneralError');\r\n key = localize.get('ServiceError_GeneralErrorKey');\r\n val = localize.get('ServiceError_GeneralErrorValue');\r\n break;\r\n }\r\n\r\n let additionalInfo: ErrorInfoKeyValuePair[] = [];\r\n additionalInfo.push({ errorInfoKey: key, errorInfoValue: val, });\r\n\r\n let errorDetails: ErrorDetails = {\r\n message: message,\r\n additionalErrorInfo: additionalInfo,\r\n };\r\n\r\n return errorDetails;\r\n }\r\n }\r\n} ","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n export declare let build;\r\n} ","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n export const CategoryTypes = {\r\n Address: \"Address\",\r\n City: \"City\",\r\n Continent: \"Continent\",\r\n CountryRegion: \"Country\", // The text has to stay \"Country\" because it is used as a key in the geocoding caching dictionary\r\n County: \"County\",\r\n Longitude: \"Longitude\",\r\n Latitude: \"Latitude\",\r\n Place: \"Place\",\r\n PostalCode: \"PostalCode\",\r\n StateOrProvince: \"StateOrProvince\"\r\n };\r\n\r\n export interface IGeoTaggingAnalyzerService {\r\n isLongitudeOrLatitude(fieldRefName: string): boolean;\r\n isGeographic(fieldRefName: string): boolean;\r\n isGeocodable(fieldRefName: string): boolean;\r\n getFieldType(fieldName: string): string;\r\n isGeoshapable(fieldRefName: string): boolean;\r\n }\r\n\r\n export function createGeoTaggingAnalyzerService(getLocalized: (string) => string): IGeoTaggingAnalyzerService {\r\n return new GeoTaggingAnalyzerService(getLocalized);\r\n }\r\n\r\n const EnglishBackup = {\r\n GeotaggingString_Continent: \"continent\",\r\n GeotaggingString_Continents: \"continents\",\r\n GeotaggingString_Country: \"country\",\r\n GeotaggingString_Countries: \"countries\",\r\n GeotaggingString_State: \"state\",\r\n GeotaggingString_States: \"states\",\r\n GeotaggingString_City: \"city\",\r\n GeotaggingString_Cities: \"cities\",\r\n GeotaggingString_Town: \"town\",\r\n GeotaggingString_Towns: \"towns\",\r\n GeotaggingString_Province: \"province\",\r\n GeotaggingString_Provinces: \"provinces\",\r\n GeotaggingString_County: \"county\",\r\n GeotaggingString_Counties: \"counties\",\r\n GeotaggingString_Village: \"village\",\r\n GeotaggingString_Villages: \"villages\",\r\n GeotaggingString_Post: \"post\",\r\n GeotaggingString_Zip: \"zip\",\r\n GeotaggingString_Code: \"code\",\r\n GeotaggingString_Place: \"place\",\r\n GeotaggingString_Places: \"places\",\r\n GeotaggingString_Address: \"address\",\r\n GeotaggingString_Addresses: \"addresses\",\r\n GeotaggingString_Street: \"street\",\r\n GeotaggingString_Streets: \"streets\",\r\n GeotaggingString_Longitude: \"longitude\",\r\n GeotaggingString_Longitude_Short: \"lon\",\r\n GeotaggingString_Latitude: \"latitude\",\r\n GeotaggingString_Latitude_Short: \"lat\",\r\n GeotaggingString_PostalCode: \"postal code\",\r\n GeotaggingString_PostalCodes: \"postal codes\",\r\n GeotaggingString_ZipCode: \"zip code\",\r\n GeotaggingString_ZipCodes: \"zip codes\",\r\n GeotaggingString_Territory: \"territory\",\r\n GeotaggingString_Territories: \"territories\",\r\n GeotaggingString_VRMBackCompat_CountryRegion: \"CountryRegion\",\r\n GeotaggingString_VRMBackCompat_StateOrProvince: \"StateOrProvince\",\r\n };\r\n\r\n export class GeoTaggingAnalyzerService implements IGeoTaggingAnalyzerService {\r\n private GeotaggingString_Continent;\r\n private GeotaggingString_Continents;\r\n private GeotaggingString_Country;\r\n private GeotaggingString_Countries;\r\n private GeotaggingString_State;\r\n private GeotaggingString_States;\r\n private GeotaggingString_City;\r\n private GeotaggingString_Cities;\r\n private GeotaggingString_Town;\r\n private GeotaggingString_Towns;\r\n private GeotaggingString_Province;\r\n private GeotaggingString_Provinces;\r\n private GeotaggingString_County;\r\n private GeotaggingString_Counties;\r\n private GeotaggingString_Village;\r\n private GeotaggingString_Villages;\r\n private GeotaggingString_Post;\r\n private GeotaggingString_Zip;\r\n private GeotaggingString_Code;\r\n private GeotaggingString_Place;\r\n private GeotaggingString_Places;\r\n private GeotaggingString_Address;\r\n private GeotaggingString_Addresses;\r\n private GeotaggingString_Street;\r\n private GeotaggingString_Streets;\r\n private GeotaggingString_Longitude;\r\n private GeotaggingString_Longitude_Short;\r\n private GeotaggingString_Latitude;\r\n private GeotaggingString_Latitude_Short;\r\n private GeotaggingString_PostalCode;\r\n private GeotaggingString_PostalCodes;\r\n private GeotaggingString_ZipCode;\r\n private GeotaggingString_ZipCodes;\r\n private GeotaggingString_Territory;\r\n private GeotaggingString_Territories;\r\n private GeotaggingString_VRMBackCompat_CountryRegion = \"CountryRegion\";\r\n private GeotaggingString_VRMBackCompat_StateOrProvince = \"StateOrProvince\";\r\n\r\n constructor(getLocalized: (string) => string) {\r\n this.GeotaggingString_Continent = getLocalized(\"GeotaggingString_Continent\").toLowerCase();\r\n this.GeotaggingString_Continents = getLocalized(\"GeotaggingString_Continents\").toLowerCase();\r\n this.GeotaggingString_Country = getLocalized(\"GeotaggingString_Country\").toLowerCase();\r\n this.GeotaggingString_Countries = getLocalized(\"GeotaggingString_Countries\").toLowerCase();\r\n this.GeotaggingString_State = getLocalized(\"GeotaggingString_State\").toLowerCase();\r\n this.GeotaggingString_States = getLocalized(\"GeotaggingString_States\").toLowerCase();\r\n this.GeotaggingString_City = getLocalized(\"GeotaggingString_City\").toLowerCase();\r\n this.GeotaggingString_Cities = getLocalized(\"GeotaggingString_Cities\").toLowerCase();\r\n this.GeotaggingString_Town = getLocalized(\"GeotaggingString_Town\").toLowerCase();\r\n this.GeotaggingString_Towns = getLocalized(\"GeotaggingString_Towns\").toLowerCase();\r\n this.GeotaggingString_Province = getLocalized(\"GeotaggingString_Province\").toLowerCase();\r\n this.GeotaggingString_Provinces = getLocalized(\"GeotaggingString_Provinces\").toLowerCase();\r\n this.GeotaggingString_County = getLocalized(\"GeotaggingString_County\").toLowerCase();\r\n this.GeotaggingString_Counties = getLocalized(\"GeotaggingString_Counties\").toLowerCase();\r\n this.GeotaggingString_Village = getLocalized(\"GeotaggingString_Village\").toLowerCase();\r\n this.GeotaggingString_Villages = getLocalized(\"GeotaggingString_Villages\").toLowerCase();\r\n this.GeotaggingString_Post = getLocalized(\"GeotaggingString_Post\").toLowerCase();\r\n this.GeotaggingString_Zip = getLocalized(\"GeotaggingString_Zip\").toLowerCase();\r\n this.GeotaggingString_Code = getLocalized(\"GeotaggingString_Code\").toLowerCase();\r\n this.GeotaggingString_Place = getLocalized(\"GeotaggingString_Place\").toLowerCase();\r\n this.GeotaggingString_Places = getLocalized(\"GeotaggingString_Places\").toLowerCase();\r\n this.GeotaggingString_Address = getLocalized(\"GeotaggingString_Address\").toLowerCase();\r\n this.GeotaggingString_Addresses = getLocalized(\"GeotaggingString_Addresses\").toLowerCase();\r\n this.GeotaggingString_Street = getLocalized(\"GeotaggingString_Street\").toLowerCase();\r\n this.GeotaggingString_Streets = getLocalized(\"GeotaggingString_Streets\").toLowerCase();\r\n this.GeotaggingString_Longitude = getLocalized(\"GeotaggingString_Longitude\").toLowerCase();\r\n this.GeotaggingString_Longitude_Short = getLocalized(\"GeotaggingString_Longitude_Short\").toLowerCase();\r\n this.GeotaggingString_Latitude = getLocalized(\"GeotaggingString_Latitude\").toLowerCase();\r\n this.GeotaggingString_Latitude_Short = getLocalized(\"GeotaggingString_Latitude_Short\").toLowerCase();\r\n this.GeotaggingString_PostalCode = getLocalized(\"GeotaggingString_PostalCode\").toLowerCase();\r\n this.GeotaggingString_PostalCodes = getLocalized(\"GeotaggingString_PostalCodes\").toLowerCase();\r\n this.GeotaggingString_ZipCode = getLocalized(\"GeotaggingString_ZipCode\").toLowerCase();\r\n this.GeotaggingString_ZipCodes = getLocalized(\"GeotaggingString_ZipCodes\").toLowerCase();\r\n this.GeotaggingString_Territory = getLocalized(\"GeotaggingString_Territory\").toLowerCase();\r\n this.GeotaggingString_Territories = getLocalized(\"GeotaggingString_Territories\").toLowerCase();\r\n }\r\n\r\n public isLongitudeOrLatitude(fieldRefName: string): boolean {\r\n return this.isLongitude(fieldRefName) ||\r\n this.isLatitude(fieldRefName);\r\n }\r\n\r\n public isGeographic(fieldRefName: string): boolean {\r\n return this.isLongitudeOrLatitude(fieldRefName) ||\r\n this.isGeocodable(fieldRefName);\r\n }\r\n\r\n public isGeocodable(fieldRefName: string): boolean {\r\n return this.isAddress(fieldRefName) ||\r\n this.isCity(fieldRefName) ||\r\n this.isContinent(fieldRefName) ||\r\n this.isCountry(fieldRefName) ||\r\n this.isCounty(fieldRefName) ||\r\n this.isStateOrProvince(fieldRefName) ||\r\n this.isPlace(fieldRefName) ||\r\n this.isPostalCode(fieldRefName) ||\r\n this.isTerritory(fieldRefName);\r\n }\r\n\r\n public isGeoshapable(fieldRefName: string): boolean {\r\n return this.isCity(fieldRefName) ||\r\n this.isCountry(fieldRefName) ||\r\n this.isCounty(fieldRefName) ||\r\n this.isStateOrProvince(fieldRefName) ||\r\n this.isPostalCode(fieldRefName) ||\r\n this.isTerritory(fieldRefName) ||\r\n this.isGeoshapableEnglish(fieldRefName);\r\n }\r\n\r\n private isGeoshapableEnglish(fieldRefName: string): boolean {\r\n return this.isEnglishCity(fieldRefName) ||\r\n this.isEnglishCountry(fieldRefName) ||\r\n this.isEnglishCounty(fieldRefName) ||\r\n this.isEnglishStateOrProvince(fieldRefName) ||\r\n this.isEnglishPostalCode(fieldRefName) ||\r\n this.isEnglishTerritory(fieldRefName);\r\n }\r\n\r\n private isAddress(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_Address,\r\n this.GeotaggingString_Addresses,\r\n this.GeotaggingString_Street,\r\n this.GeotaggingString_Streets\r\n ]);\r\n }\r\n\r\n private isPlace(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_Place,\r\n this.GeotaggingString_Places\r\n ]);\r\n }\r\n\r\n private isCity(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_City,\r\n this.GeotaggingString_Cities,\r\n this.GeotaggingString_Town,\r\n this.GeotaggingString_Towns,\r\n this.GeotaggingString_Village,\r\n this.GeotaggingString_Villages\r\n ]);\r\n }\r\n\r\n private isStateOrProvince(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_State,\r\n this.GeotaggingString_States,\r\n this.GeotaggingString_Province,\r\n this.GeotaggingString_Provinces,\r\n this.GeotaggingString_VRMBackCompat_StateOrProvince,\r\n ]);\r\n }\r\n\r\n private isCountry(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_Country,\r\n this.GeotaggingString_Countries,\r\n this.GeotaggingString_VRMBackCompat_CountryRegion\r\n ]);\r\n }\r\n\r\n private isCounty(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_County,\r\n this.GeotaggingString_Counties\r\n ]);\r\n }\r\n\r\n private isContinent(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_Continent,\r\n this.GeotaggingString_Continents\r\n ]);\r\n }\r\n\r\n private isPostalCode(fieldRefName: string): boolean {\r\n let result =\r\n (GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_Post,\r\n this.GeotaggingString_Zip])\r\n && GeoTaggingAnalyzerService.hasMatches(fieldRefName, [this.GeotaggingString_Code])) ||\r\n GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_PostalCode,\r\n this.GeotaggingString_PostalCodes,\r\n this.GeotaggingString_ZipCode,\r\n this.GeotaggingString_ZipCodes\r\n ]);\r\n\r\n //Check again for strings without whitespace\r\n if (!result) {\r\n let whiteSpaceRegex = /\\s+/;\r\n let fieldNameWithoutWhitespace = fieldRefName.replace(whiteSpaceRegex, \"\");\r\n result = GeoTaggingAnalyzerService.hasMatches(fieldNameWithoutWhitespace, [\r\n this.GeotaggingString_PostalCode.replace(whiteSpaceRegex, ''),\r\n this.GeotaggingString_PostalCodes.replace(whiteSpaceRegex, ''),\r\n this.GeotaggingString_ZipCode.replace(whiteSpaceRegex, ''),\r\n this.GeotaggingString_ZipCodes.replace(whiteSpaceRegex, '')\r\n ]);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private isLongitude(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [this.GeotaggingString_Longitude])\r\n || GeoTaggingAnalyzerService.hasMatches(fieldRefName, [this.GeotaggingString_Longitude_Short], true /* useStrict */);\r\n }\r\n\r\n private isLatitude(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [this.GeotaggingString_Latitude])\r\n || GeoTaggingAnalyzerService.hasMatches(fieldRefName, [this.GeotaggingString_Latitude_Short], true /* useStrict */);\r\n }\r\n\r\n private isTerritory(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n this.GeotaggingString_Territory,\r\n this.GeotaggingString_Territories\r\n ]);\r\n }\r\n\r\n private static hasMatches(fieldName: string, possibleMatches: string[], useStrict?: boolean): boolean {\r\n let nonWordRegex = /\\W/;\r\n let value = fieldName.toLowerCase();\r\n for (let i = 0, len = possibleMatches.length; i < len; i++) {\r\n let possibleMatch = possibleMatches[i].toLowerCase();\r\n if (!useStrict) {\r\n if (value.indexOf(possibleMatch) > -1)\r\n return true;\r\n }\r\n else {\r\n let indexofpossibleMatch = value.indexOf(possibleMatch);\r\n if (indexofpossibleMatch > -1) {\r\n let wordEndFlag, wordBeginFlag: boolean;\r\n wordEndFlag = wordBeginFlag = true;\r\n if (indexofpossibleMatch - 1 > 0)\r\n wordBeginFlag = nonWordRegex.test(value[indexofpossibleMatch - 1]);\r\n if (indexofpossibleMatch + possibleMatch.length < value.length)\r\n wordEndFlag = nonWordRegex.test(value[indexofpossibleMatch + possibleMatch.length]);\r\n if (wordBeginFlag && wordEndFlag)\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public getFieldType(fieldName: string): string {\r\n if (fieldName == null)\r\n return undefined;\r\n if (this.isLatitude(fieldName))\r\n return CategoryTypes.Latitude;\r\n if (this.isLongitude(fieldName))\r\n return CategoryTypes.Longitude;\r\n if (this.isPostalCode(fieldName))\r\n return CategoryTypes.PostalCode;\r\n if (this.isAddress(fieldName))\r\n return CategoryTypes.Address;\r\n if (this.isPlace(fieldName))\r\n return CategoryTypes.Place;\r\n if (this.isCity(fieldName))\r\n return CategoryTypes.City;\r\n if (this.isCountry(fieldName))\r\n return CategoryTypes.CountryRegion;\r\n if (this.isCounty(fieldName))\r\n return CategoryTypes.County;\r\n if (this.isStateOrProvince(fieldName))\r\n return CategoryTypes.StateOrProvince;\r\n if (this.isContinent(fieldName))\r\n return CategoryTypes.Continent;\r\n return this.getEnglishFieldType(fieldName);\r\n }\r\n\r\n private isEnglishAddress(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_Address,\r\n EnglishBackup.GeotaggingString_Addresses,\r\n EnglishBackup.GeotaggingString_Street,\r\n EnglishBackup.GeotaggingString_Streets\r\n ]);\r\n }\r\n\r\n private isEnglishPlace(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_Place,\r\n EnglishBackup.GeotaggingString_Places\r\n ]);\r\n }\r\n\r\n private isEnglishCity(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_City,\r\n EnglishBackup.GeotaggingString_Cities,\r\n EnglishBackup.GeotaggingString_Town,\r\n EnglishBackup.GeotaggingString_Towns,\r\n EnglishBackup.GeotaggingString_Village,\r\n EnglishBackup.GeotaggingString_Villages\r\n ]);\r\n }\r\n\r\n private isEnglishStateOrProvince(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_State,\r\n EnglishBackup.GeotaggingString_States,\r\n EnglishBackup.GeotaggingString_Province,\r\n EnglishBackup.GeotaggingString_Provinces,\r\n EnglishBackup.GeotaggingString_VRMBackCompat_StateOrProvince,\r\n ]);\r\n }\r\n\r\n private isEnglishCountry(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_Country,\r\n EnglishBackup.GeotaggingString_Countries,\r\n EnglishBackup.GeotaggingString_VRMBackCompat_CountryRegion\r\n ]);\r\n }\r\n\r\n private isEnglishCounty(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_County,\r\n EnglishBackup.GeotaggingString_Counties\r\n ]);\r\n }\r\n\r\n private isEnglishContinent(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_Continent,\r\n EnglishBackup.GeotaggingString_Continents\r\n ]);\r\n }\r\n\r\n private isEnglishPostalCode(fieldRefName: string): boolean {\r\n let result =\r\n (GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_Post,\r\n EnglishBackup.GeotaggingString_Zip])\r\n && GeoTaggingAnalyzerService.hasMatches(fieldRefName, [this.GeotaggingString_Code])) ||\r\n GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_PostalCode,\r\n EnglishBackup.GeotaggingString_PostalCodes,\r\n EnglishBackup.GeotaggingString_ZipCode,\r\n EnglishBackup.GeotaggingString_ZipCodes\r\n ]);\r\n\r\n //Check again for strings without whitespace\r\n if (!result) {\r\n let whiteSpaceRegexPattern = new RegExp('\\s');\r\n result = GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_PostalCode.replace(whiteSpaceRegexPattern, ''),\r\n EnglishBackup.GeotaggingString_PostalCodes.replace(whiteSpaceRegexPattern, ''),\r\n EnglishBackup.GeotaggingString_ZipCode.replace(whiteSpaceRegexPattern, ''),\r\n EnglishBackup.GeotaggingString_ZipCodes.replace(whiteSpaceRegexPattern, '')\r\n ]);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private isEnglishLongitude(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [EnglishBackup.GeotaggingString_Longitude])\r\n || GeoTaggingAnalyzerService.hasMatches(fieldRefName, [EnglishBackup.GeotaggingString_Longitude_Short], true /* useStrict */);\r\n }\r\n\r\n private isEnglishLatitude(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [EnglishBackup.GeotaggingString_Latitude])\r\n || GeoTaggingAnalyzerService.hasMatches(fieldRefName, [EnglishBackup.GeotaggingString_Latitude_Short], true /* useStrict */);\r\n }\r\n\r\n protected isEnglishTerritory(fieldRefName: string): boolean {\r\n return GeoTaggingAnalyzerService.hasMatches(fieldRefName, [\r\n EnglishBackup.GeotaggingString_Territory,\r\n EnglishBackup.GeotaggingString_Territories\r\n ]);\r\n }\r\n\r\n private getEnglishFieldType(fieldName: string): string {\r\n if (fieldName == null)\r\n return undefined;\r\n if (this.isEnglishLatitude(fieldName))\r\n return CategoryTypes.Latitude;\r\n if (this.isEnglishLongitude(fieldName))\r\n return CategoryTypes.Longitude;\r\n if (this.isEnglishPostalCode(fieldName))\r\n return CategoryTypes.PostalCode;\r\n if (this.isEnglishAddress(fieldName))\r\n return CategoryTypes.Address;\r\n if (this.isEnglishPlace(fieldName))\r\n return CategoryTypes.Place;\r\n if (this.isEnglishCity(fieldName))\r\n return CategoryTypes.City;\r\n if (this.isEnglishCountry(fieldName))\r\n return CategoryTypes.CountryRegion;\r\n if (this.isEnglishCounty(fieldName))\r\n return CategoryTypes.County;\r\n if (this.isEnglishStateOrProvince(fieldName))\r\n return CategoryTypes.StateOrProvince;\r\n if (this.isEnglishContinent(fieldName))\r\n return CategoryTypes.Continent;\r\n return undefined;\r\n }\r\n }\r\n} ","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\ndeclare var DEBUG: boolean;\r\n\r\nif (typeof DEBUG === 'undefined') var DEBUG = true;","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n import IStringResourceProvider = jsCommon.IStringResourceProvider;\r\n\r\n export interface ILocalizableError {\r\n getDetails(resourceProvider: IStringResourceProvider): ErrorDetails;\r\n }\r\n\r\n export interface IClientError extends ILocalizableError {\r\n code: string;\r\n debugInfo?: string;\r\n ignorable?: boolean;\r\n requestId?: string;\r\n }\r\n\r\n export interface IClientWarning extends ILocalizableError {\r\n code: string;\r\n columnNameFromIndex: (index: number) => string;\r\n }\r\n\r\n /**\r\n this base class should be derived to give a generic error message but with a unique error code.\r\n */\r\n export abstract class UnknownClientError implements IClientError {\r\n private errorCode: string;\r\n\r\n public get code(): string {\r\n return this.errorCode;\r\n }\r\n public get ignorable(): boolean {\r\n return false;\r\n }\r\n\r\n constructor(code: string) {\r\n debug.assertValue(code, 'code');\r\n\r\n this.errorCode = code;\r\n }\r\n\r\n public getDetails(resourceProvider: IStringResourceProvider): ErrorDetails {\r\n let details: ErrorDetails = {\r\n message: resourceProvider.get('ClientError_UnknownClientErrorValue'),\r\n additionalErrorInfo: [{ errorInfoKey: resourceProvider.get('ClientError_UnknownClientErrorKey'), errorInfoValue: resourceProvider.get('ClientError_UnknownClientErrorValue'), }],\r\n };\r\n\r\n return details;\r\n }\r\n }\r\n\r\n export class HttpClientError implements IClientError {\r\n private httpRequestId: string;\r\n private httpStatusCode: number;\r\n \r\n constructor(httpStatusCode: number, requestId: string) {\r\n debug.assertValue(httpStatusCode, 'httpStatusCode');\r\n debug.assertValue(requestId, 'requestId');\r\n this.httpStatusCode = httpStatusCode;\r\n this.httpRequestId = requestId;\r\n }\r\n\r\n public get code(): string {\r\n return 'HttpClientError';\r\n }\r\n\r\n public get ignorable(): boolean {\r\n return false;\r\n }\r\n\r\n public get requestId(): string {\r\n return this.httpRequestId;\r\n }\r\n\r\n public getDetails(resourceProvider: IStringResourceProvider): ErrorDetails {\r\n // Use a general error message for a HTTP request failure, since we currently do not know of any specifc error cases at this point in time.\r\n let details: ErrorDetails = {\r\n message: null,\r\n additionalErrorInfo: [\r\n { errorInfoKey: resourceProvider.get('DsrError_Key'), errorInfoValue: resourceProvider.get('DsrError_UnknownErrorValue')},\r\n { errorInfoKey: resourceProvider.get('ClientError_HttpResponseStatusCodeKey'), errorInfoValue: this.httpStatusCode.toString() }],\r\n };\r\n\r\n return details;\r\n }\r\n }\r\n\r\n export class IgnorableClientError implements IClientError {\r\n public get code(): string {\r\n return 'IgnorableClientError';\r\n }\r\n public get ignorable(): boolean {\r\n return true;\r\n }\r\n\r\n public getDetails(resourceProvider: IStringResourceProvider): ErrorDetails {\r\n let details: ErrorDetails = {\r\n message: '',\r\n additionalErrorInfo: [],\r\n };\r\n\r\n return details;\r\n }\r\n }\r\n} ","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n export interface ArrayIdItems<T> extends Array<T> {\r\n withId(id: number): T;\r\n }\r\n\r\n export interface ArrayNamedItems<T> extends Array<T> {\r\n withName(name: string): T;\r\n }\r\n\r\n export module ArrayExtensions {\r\n /**\r\n * Returns items that exist in target and other.\r\n */\r\n export function intersect<T>(target: T[], other: T[]): T[] {\r\n let result: T[] = [];\r\n for (let i = target.length - 1; i >= 0; --i) {\r\n if (other.indexOf(target[i]) !== -1) {\r\n result.push(target[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Return elements exists in target but not exists in other.\r\n */\r\n export function diff<T>(target: T[], other: T[]): T[] {\r\n let result: T[] = [];\r\n for (let i = target.length - 1; i >= 0; --i) {\r\n let value: T = target[i];\r\n if (other.indexOf(value) === -1) {\r\n result.push(value);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /** \r\n * Return an array with only the distinct items in the source. \r\n */\r\n export function distinct<T>(source: T[]): T[] {\r\n let result: T[] = [];\r\n for (let i = 0, len = source.length; i < len; i++) {\r\n let value: T = source[i];\r\n if (result.indexOf(value) === -1) {\r\n result.push(value);\r\n }\r\n }\r\n return result;\r\n }\r\n \r\n /**\r\n * Pushes content of source onto target,\r\n * for parts of course that do not already exist in target.\r\n */\r\n export function union<T>(target: T[], source: T[]): void {\r\n for (let i = 0, len = source.length; i < len; ++i) {\r\n unionSingle(target, source[i]);\r\n }\r\n }\r\n\r\n /**\r\n * Pushes value onto target, if value does not already exist in target.\r\n */\r\n export function unionSingle<T>(target: T[], value: T): void {\r\n if (target.indexOf(value) < 0) {\r\n target.push(value);\r\n }\r\n }\r\n \r\n /**\r\n * Returns an array with a range of items from source,\r\n * including the startIndex & endIndex.\r\n */\r\n export function range<T>(source: T[], startIndex: number, endIndex: number): T[] {\r\n debug.assert(startIndex >= 0 && startIndex < source.length, 'startIndex is out of range.');\r\n debug.assert(endIndex >= 0 && endIndex < source.length, 'endIndex is out of range.');\r\n\r\n let result: T[] = [];\r\n for (let i = startIndex; i <= endIndex; ++i) {\r\n result.push(source[i]);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Returns an array that includes items from source, up to the specified count.\r\n */\r\n export function take<T>(source: T[], count: number): T[] {\r\n debug.assert(count >= 0, 'Count is negative.');\r\n debug.assert(count <= source.length, 'Count is too large.');\r\n\r\n let result: T[] = [];\r\n for (let i = 0; i < count; ++i) {\r\n result.push(source[i]);\r\n }\r\n return result;\r\n }\r\n\r\n export function copy<T>(source: T[]): T[] {\r\n debug.assertValue(source, 'source');\r\n\r\n return take(source, source.length);\r\n }\r\n\r\n /**\r\n * Returns a value indicating whether the arrays have the same values in the same sequence.\r\n */\r\n export function sequenceEqual<T>(left: T[], right: T[], comparison: (x: T, y: T) => boolean): boolean {\r\n debug.assertValue(comparison, 'comparison');\r\n\r\n if (left === right) {\r\n return true;\r\n }\r\n\r\n if (!!left !== !!right) {\r\n return false;\r\n }\r\n\r\n let len = left.length;\r\n if (len !== right.length) {\r\n return false;\r\n }\r\n\r\n let i = 0;\r\n while (i < len && comparison(left[i], right[i])) {\r\n ++i;\r\n }\r\n\r\n return i === len;\r\n }\r\n\r\n /**\r\n * Returns null if the specified array is empty. \r\n * Otherwise returns the specified array.\r\n */\r\n export function emptyToNull<T>(array: T[]): T[] {\r\n if (array && array.length === 0) {\r\n return null;\r\n }\r\n return array;\r\n }\r\n\r\n export function indexOf<T>(array: T[], predicate: (T) => boolean): number {\r\n debug.assertValue(array, 'array');\r\n debug.assertValue(predicate, 'predicate');\r\n\r\n for (let i = 0, len = array.length; i < len; ++i) {\r\n if (predicate(array[i])) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n /**\r\n * Returns a copy of the array rotated by the specified offset.\r\n */\r\n export function rotate<T>(array: T[], offset: number): T[] {\r\n if (offset === 0)\r\n return array.slice();\r\n\r\n let rotated = array.slice(offset);\r\n Array.prototype.push.apply(rotated, array.slice(0, offset));\r\n\r\n return rotated;\r\n }\r\n\r\n export function createWithId<T>(): ArrayIdItems<T> {\r\n return extendWithId<T>([]);\r\n }\r\n\r\n export function extendWithId<T>(array: { id: number }[]): ArrayIdItems<T> {\r\n debug.assertValue(array, 'array');\r\n\r\n let extended: ArrayIdItems<T> = <any>array;\r\n extended.withId = withId;\r\n\r\n return extended;\r\n }\r\n\r\n /**\r\n * Finds and returns the first item with a matching ID.\r\n */\r\n export function findWithId<T>(array: T[], id: number): T {\r\n for (let i = 0, len = array.length; i < len; i++) {\r\n let item = array[i];\r\n if ((<any>item).id === id)\r\n return item;\r\n }\r\n }\r\n\r\n function withId<T>(id: number): T {\r\n return ArrayExtensions.findWithId<T>(this, id);\r\n }\r\n\r\n export function createWithName<T>(): ArrayNamedItems<T> {\r\n return extendWithName<T>([]);\r\n }\r\n\r\n export function extendWithName<T>(array: { name: string }[]): ArrayNamedItems<T> {\r\n debug.assertValue(array, 'array');\r\n\r\n let extended: ArrayNamedItems<T> = <any>array;\r\n extended.withName = withName;\r\n\r\n return extended;\r\n }\r\n\r\n export function findItemWithName<T>(array: T[], name: string): T {\r\n let index = indexWithName(array, name);\r\n if (index >= 0)\r\n return array[index];\r\n }\r\n\r\n export function indexWithName<T>(array: T[], name: string): number {\r\n for (let i = 0, len = array.length; i < len; i++) {\r\n let item = array[i];\r\n if ((<any>item).name === name)\r\n return i;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n /**\r\n * Inserts a number in sorted order into a list of numbers already in sorted order.\r\n * @returns True if the item was added, false if it already existed.\r\n */\r\n export function insertSorted(list: number[], value: number): boolean {\r\n debug.assertValue(list, 'list');\r\n debug.assertValue(value, 'value');\r\n\r\n let len = list.length;\r\n\r\n // NOTE: iterate backwards because incoming values tend to be sorted already.\r\n for (let i = len - 1; i >= 0; i--) {\r\n let diff = list[i] - value;\r\n\r\n if (diff === 0)\r\n return false;\r\n\r\n if (diff > 0)\r\n continue;\r\n\r\n // diff < 0\r\n list.splice(i + 1, 0, value);\r\n return true;\r\n }\r\n\r\n list.unshift(value);\r\n return true;\r\n }\r\n\r\n /**\r\n * Removes the first occurrence of a value from a list if it exists.\r\n * @returns True if the value was removed, false if it did not exist in the list.\r\n */\r\n export function removeFirst<T>(list: T[], value: T): boolean {\r\n let index = list.indexOf(value);\r\n if (index < 0)\r\n return false;\r\n\r\n list.splice(index, 1);\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Finds and returns the first item with a matching name.\r\n */\r\n function withName<T>(name: string): T {\r\n let array: T[] = this;\r\n return findItemWithName(array, name);\r\n }\r\n\r\n /**\r\n * Deletes all items from the array.\r\n */\r\n export function clear(array: any[]): void {\r\n if (!array)\r\n return;\r\n\r\n while (array.length > 0)\r\n array.pop();\r\n }\r\n\r\n export function isUndefinedOrEmpty(array: any[]): boolean {\r\n if (!array || array.length === 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n export function swap<T>(array: T[], firstIndex: number, secondIndex: number): void {\r\n let temp = array[firstIndex];\r\n array[firstIndex] = array[secondIndex];\r\n array[secondIndex] = temp;\r\n }\r\n\r\n export function isInArray<T>(array: T[], lookupItem: T, compareCallback: (item1: T, item2: T) => boolean): boolean {\r\n return _.any(array, item => compareCallback(item, lookupItem));\r\n }\r\n\r\n /** Checks if the given object is an Array, and looking all the way up the prototype chain. */\r\n export function isArrayOrInheritedArray(obj: {}): obj is Array<any> {\r\n debug.assertValue(obj, 'obj');\r\n\r\n let nextPrototype = obj;\r\n while (nextPrototype != null) {\r\n if (_.isArray(nextPrototype))\r\n return true;\r\n\r\n nextPrototype = Object.getPrototypeOf(nextPrototype);\r\n }\r\n\r\n return false;\r\n }\r\n }\r\n} ","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule InJs {\r\n export module DomFactory {\r\n\r\n export function div(): JQuery {\r\n return $('<div/>');\r\n }\r\n\r\n export function span(): JQuery {\r\n return $('<span/>');\r\n }\r\n\r\n export function checkbox(): JQuery {\r\n return $('<input type=\"checkbox\"/>');\r\n }\r\n\r\n export function ul(): JQuery {\r\n return $('<ul/>');\r\n }\r\n\r\n export function li(): JQuery {\r\n return $('<li/>');\r\n }\r\n\r\n export function button(): JQuery {\r\n return $('<input type=\"button\"/>');\r\n }\r\n\r\n export function select(): JQuery {\r\n return $('<select/>');\r\n }\r\n\r\n export function textBox(): JQuery {\r\n return $('<input type=\"text\"/>');\r\n }\r\n\r\n export function img(): JQuery {\r\n return $('<img/>');\r\n }\r\n\r\n export function iframe(): JQuery {\r\n return $('<iframe/>');\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n\r\n /**\r\n * Module Double contains a set of constants and precision based utility methods \r\n * for dealing with doubles and their decimal garbage in the javascript.\r\n */\r\n export module Double {\r\n\r\n // Constants.\r\n export const MIN_VALUE = -Number.MAX_VALUE;\r\n export const MAX_VALUE = Number.MAX_VALUE;\r\n export const MIN_EXP = -308;\r\n export const MAX_EXP = 308;\r\n export const EPSILON = 1E-323;\r\n export const DEFAULT_PRECISION = 0.0001;\r\n export const DEFAULT_PRECISION_IN_DECIMAL_DIGITS = 12;\r\n export const LOG_E_10 = Math.log(10);\r\n export const POSITIVE_POWERS = [\r\n 1E0, 1E1, 1E2, 1E3, 1E4, 1E5, 1E6, 1E7, 1E8, 1E9, 1E10, 1E11, 1E12, 1E13, 1E14, 1E15, 1E16, 1E17, 1E18, 1E19, 1E20, 1E21, 1E22, 1E23, 1E24, 1E25, 1E26, 1E27, 1E28, 1E29, 1E30, 1E31, 1E32, 1E33, 1E34, 1E35, 1E36, 1E37, 1E38, 1E39, 1E40, 1E41, 1E42, 1E43, 1E44, 1E45, 1E46, 1E47, 1E48, 1E49, 1E50, 1E51, 1E52, 1E53, 1E54, 1E55, 1E56, 1E57, 1E58, 1E59, 1E60, 1E61, 1E62, 1E63, 1E64, 1E65, 1E66, 1E67, 1E68, 1E69, 1E70, 1E71, 1E72, 1E73, 1E74, 1E75, 1E76, 1E77, 1E78, 1E79, 1E80, 1E81, 1E82, 1E83, 1E84, 1E85, 1E86, 1E87, 1E88, 1E89, 1E90, 1E91, 1E92, 1E93, 1E94, 1E95, 1E96, 1E97, 1E98, 1E99,\r\n 1E100, 1E101, 1E102, 1E103, 1E104, 1E105, 1E106, 1E107, 1E108, 1E109, 1E110, 1E111, 1E112, 1E113, 1E114, 1E115, 1E116, 1E117, 1E118, 1E119, 1E120, 1E121, 1E122, 1E123, 1E124, 1E125, 1E126, 1E127, 1E128, 1E129, 1E130, 1E131, 1E132, 1E133, 1E134, 1E135, 1E136, 1E137, 1E138, 1E139, 1E140, 1E141, 1E142, 1E143, 1E144, 1E145, 1E146, 1E147, 1E148, 1E149, 1E150, 1E151, 1E152, 1E153, 1E154, 1E155, 1E156, 1E157, 1E158, 1E159, 1E160, 1E161, 1E162, 1E163, 1E164, 1E165, 1E166, 1E167, 1E168, 1E169, 1E170, 1E171, 1E172, 1E173, 1E174, 1E175, 1E176, 1E177, 1E178, 1E179, 1E180, 1E181, 1E182, 1E183, 1E184, 1E185, 1E186, 1E187, 1E188, 1E189, 1E190, 1E191, 1E192, 1E193, 1E194, 1E195, 1E196, 1E197, 1E198, 1E199,\r\n 1E200, 1E201, 1E202, 1E203, 1E204, 1E205, 1E206, 1E207, 1E208, 1E209, 1E210, 1E211, 1E212, 1E213, 1E214, 1E215, 1E216, 1E217, 1E218, 1E219, 1E220, 1E221, 1E222, 1E223, 1E224, 1E225, 1E226, 1E227, 1E228, 1E229, 1E230, 1E231, 1E232, 1E233, 1E234, 1E235, 1E236, 1E237, 1E238, 1E239, 1E240, 1E241, 1E242, 1E243, 1E244, 1E245, 1E246, 1E247, 1E248, 1E249, 1E250, 1E251, 1E252, 1E253, 1E254, 1E255, 1E256, 1E257, 1E258, 1E259, 1E260, 1E261, 1E262, 1E263, 1E264, 1E265, 1E266, 1E267, 1E268, 1E269, 1E270, 1E271, 1E272, 1E273, 1E274, 1E275, 1E276, 1E277, 1E278, 1E279, 1E280, 1E281, 1E282, 1E283, 1E284, 1E285, 1E286, 1E287, 1E288, 1E289, 1E290, 1E291, 1E292, 1E293, 1E294, 1E295, 1E296, 1E297, 1E298, 1E299,\r\n 1E300, 1E301, 1E302, 1E303, 1E304, 1E305, 1E306, 1E307, 1E308];\r\n export const NEGATIVE_POWERS = [\r\n 1E0, 1E-1, 1E-2, 1E-3, 1E-4, 1E-5, 1E-6, 1E-7, 1E-8, 1E-9, 1E-10, 1E-11, 1E-12, 1E-13, 1E-14, 1E-15, 1E-16, 1E-17, 1E-18, 1E-19, 1E-20, 1E-21, 1E-22, 1E-23, 1E-24, 1E-25, 1E-26, 1E-27, 1E-28, 1E-29, 1E-30, 1E-31, 1E-32, 1E-33, 1E-34, 1E-35, 1E-36, 1E-37, 1E-38, 1E-39, 1E-40, 1E-41, 1E-42, 1E-43, 1E-44, 1E-45, 1E-46, 1E-47, 1E-48, 1E-49, 1E-50, 1E-51, 1E-52, 1E-53, 1E-54, 1E-55, 1E-56, 1E-57, 1E-58, 1E-59, 1E-60, 1E-61, 1E-62, 1E-63, 1E-64, 1E-65, 1E-66, 1E-67, 1E-68, 1E-69, 1E-70, 1E-71, 1E-72, 1E-73, 1E-74, 1E-75, 1E-76, 1E-77, 1E-78, 1E-79, 1E-80, 1E-81, 1E-82, 1E-83, 1E-84, 1E-85, 1E-86, 1E-87, 1E-88, 1E-89, 1E-90, 1E-91, 1E-92, 1E-93, 1E-94, 1E-95, 1E-96, 1E-97, 1E-98, 1E-99,\r\n 1E-100, 1E-101, 1E-102, 1E-103, 1E-104, 1E-105, 1E-106, 1E-107, 1E-108, 1E-109, 1E-110, 1E-111, 1E-112, 1E-113, 1E-114, 1E-115, 1E-116, 1E-117, 1E-118, 1E-119, 1E-120, 1E-121, 1E-122, 1E-123, 1E-124, 1E-125, 1E-126, 1E-127, 1E-128, 1E-129, 1E-130, 1E-131, 1E-132, 1E-133, 1E-134, 1E-135, 1E-136, 1E-137, 1E-138, 1E-139, 1E-140, 1E-141, 1E-142, 1E-143, 1E-144, 1E-145, 1E-146, 1E-147, 1E-148, 1E-149, 1E-150, 1E-151, 1E-152, 1E-153, 1E-154, 1E-155, 1E-156, 1E-157, 1E-158, 1E-159, 1E-160, 1E-161, 1E-162, 1E-163, 1E-164, 1E-165, 1E-166, 1E-167, 1E-168, 1E-169, 1E-170, 1E-171, 1E-172, 1E-173, 1E-174, 1E-175, 1E-176, 1E-177, 1E-178, 1E-179, 1E-180, 1E-181, 1E-182, 1E-183, 1E-184, 1E-185, 1E-186, 1E-187, 1E-188, 1E-189, 1E-190, 1E-191, 1E-192, 1E-193, 1E-194, 1E-195, 1E-196, 1E-197, 1E-198, 1E-199,\r\n 1E-200, 1E-201, 1E-202, 1E-203, 1E-204, 1E-205, 1E-206, 1E-207, 1E-208, 1E-209, 1E-210, 1E-211, 1E-212, 1E-213, 1E-214, 1E-215, 1E-216, 1E-217, 1E-218, 1E-219, 1E-220, 1E-221, 1E-222, 1E-223, 1E-224, 1E-225, 1E-226, 1E-227, 1E-228, 1E-229, 1E-230, 1E-231, 1E-232, 1E-233, 1E-234, 1E-235, 1E-236, 1E-237, 1E-238, 1E-239, 1E-240, 1E-241, 1E-242, 1E-243, 1E-244, 1E-245, 1E-246, 1E-247, 1E-248, 1E-249, 1E-250, 1E-251, 1E-252, 1E-253, 1E-254, 1E-255, 1E-256, 1E-257, 1E-258, 1E-259, 1E-260, 1E-261, 1E-262, 1E-263, 1E-264, 1E-265, 1E-266, 1E-267, 1E-268, 1E-269, 1E-270, 1E-271, 1E-272, 1E-273, 1E-274, 1E-275, 1E-276, 1E-277, 1E-278, 1E-279, 1E-280, 1E-281, 1E-282, 1E-283, 1E-284, 1E-285, 1E-286, 1E-287, 1E-288, 1E-289, 1E-290, 1E-291, 1E-292, 1E-293, 1E-294, 1E-295, 1E-296, 1E-297, 1E-298, 1E-299,\r\n 1E-300, 1E-301, 1E-302, 1E-303, 1E-304, 1E-305, 1E-306, 1E-307, 1E-308, 1E-309, 1E-310, 1E-311, 1E-312, 1E-313, 1E-314, 1E-315, 1E-316, 1E-317, 1E-318, 1E-319, 1E-320, 1E-321, 1E-322, 1E-323, 1E-324];\r\n\r\n /**\r\n * Returns powers of 10. \r\n * Unlike the Math.pow this function produces no decimal garbage.\r\n * @param exp Exponent.\r\n */\r\n export function pow10(exp: number): number {\r\n debug.assertValue(exp, \"exp\");\r\n\r\n // Positive & zero\r\n if (exp >= 0) {\r\n if (exp < Double.POSITIVE_POWERS.length) {\r\n return Double.POSITIVE_POWERS[exp];\r\n } else {\r\n return Infinity;\r\n }\r\n }\r\n // Negative\r\n exp = -exp;\r\n if (exp > 0 && exp < Double.NEGATIVE_POWERS.length) { // if exp==int.MIN_VALUE then changing the sign will overflow and keep the number negative - we need to check for exp > 0 to filter out this corner case\r\n return Double.NEGATIVE_POWERS[exp];\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n /** \r\n * Returns the 10 base logarithm of the number.\r\n * Unlike Math.log function this produces integer results with no decimal garbage.\r\n * @param val Positive value or zero.\r\n */\r\n export function log10(val: number): number {\r\n debug.assert(val >= 0, \"val\");\r\n\r\n // Fast Log10() algorithm \r\n if (val > 1 && val < 1E16) {\r\n if (val < 1E8) {\r\n if (val < 1E4) {\r\n if (val < 1E2) {\r\n if (val < 1E1) {\r\n return 0;\r\n } else {\r\n return 1;\r\n }\r\n } else {\r\n if (val < 1E3) {\r\n return 2;\r\n } else {\r\n return 3;\r\n }\r\n }\r\n } else {\r\n if (val < 1E6) {\r\n if (val < 1E5) {\r\n return 4;\r\n } else {\r\n return 5;\r\n }\r\n } else {\r\n if (val < 1E7) {\r\n return 6;\r\n } else {\r\n return 7;\r\n }\r\n }\r\n }\r\n } else {\r\n if (val < 1E12) {\r\n if (val < 1E10) {\r\n if (val < 1E9) {\r\n return 8;\r\n } else {\r\n return 9;\r\n }\r\n } else {\r\n if (val < 1E11) {\r\n return 10;\r\n } else {\r\n return 11;\r\n }\r\n }\r\n } else {\r\n if (val < 1E14) {\r\n if (val < 1E13) {\r\n return 12;\r\n } else {\r\n return 13;\r\n }\r\n } else {\r\n if (val < 1E15) {\r\n return 14;\r\n } else {\r\n return 15;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (val > 1E-16 && val < 1) {\r\n if (val < 1E-8) {\r\n if (val < 1E-12) {\r\n if (val < 1E-14) {\r\n if (val < 1E-15) {\r\n return -16;\r\n } else {\r\n return -15;\r\n }\r\n } else {\r\n if (val < 1E-13) {\r\n return -14;\r\n } else {\r\n return -13;\r\n }\r\n }\r\n } else {\r\n if (val < 1E-10) {\r\n if (val < 1E-11) {\r\n return -12;\r\n } else {\r\n return -11;\r\n }\r\n } else {\r\n if (val < 1E-9) {\r\n return -10;\r\n } else {\r\n return -9;\r\n }\r\n }\r\n }\r\n } else {\r\n if (val < 1E-4) {\r\n if (val < 1E-6) {\r\n if (val < 1E-7) {\r\n return -8;\r\n } else {\r\n return -7;\r\n }\r\n } else {\r\n if (val < 1E-5) {\r\n return -6;\r\n } else {\r\n return -5;\r\n }\r\n }\r\n } else {\r\n if (val < 1E-2) {\r\n if (val < 1E-3) {\r\n return -4;\r\n } else {\r\n return -3;\r\n }\r\n } else {\r\n if (val < 1E-1) {\r\n return -2;\r\n } else {\r\n return -1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // JS Math provides only natural log function so we need to calc the 10 base logarithm:\r\n // logb(x) = logk(x)/logk(b); \r\n let log10 = Math.log(val) / Double.LOG_E_10;\r\n return Double.floorWithPrecision(log10);\r\n }\r\n\r\n /**\r\n * Returns a power of 10 representing precision of the number based on the number of meaningful decimal digits. \r\n * For example the precision of 56,263.3767 with the 6 meaningful decimal digit is 0.1.\r\n * @param x Value.\r\n * @param decimalDigits How many decimal digits are meaningfull.\r\n */\r\n export function getPrecision(x: number, decimalDigits?: number): number {\r\n if (decimalDigits === undefined) {\r\n decimalDigits = Double.DEFAULT_PRECISION_IN_DECIMAL_DIGITS;\r\n } else {\r\n debug.assert(decimalDigits >= 0, \"decimalDigits\");\r\n }\r\n if (!x) {\r\n return undefined;\r\n }\r\n\r\n let exp = Double.log10(Math.abs(x));\r\n\r\n if (exp < Double.MIN_EXP) {\r\n return 0;\r\n }\r\n let precisionExp = Math.max(exp - decimalDigits, -Double.NEGATIVE_POWERS.length + 1);\r\n return Double.pow10(precisionExp);\r\n }\r\n\r\n /** \r\n * Checks if a delta between 2 numbers is less than provided precision.\r\n * @param x One value.\r\n * @param y Another value.\r\n * @param precision Precision value.\r\n */\r\n export function equalWithPrecision(x: number, y: number, precision?: number): boolean {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n\r\n return x === y || Math.abs(x - y) < precision;\r\n }\r\n\r\n /** \r\n * Checks if a first value is less than another taking \r\n * into account the loose precision based equality.\r\n * @param x One value.\r\n * @param y Another value.\r\n * @param precision Precision value.\r\n */\r\n export function lessWithPrecision(x: number, y: number, precision?: number): boolean {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n\r\n return x < y && Math.abs(x - y) > precision;\r\n }\r\n\r\n /** \r\n * Checks if a first value is less or equal than another taking \r\n * into account the loose precision based equality.\r\n * @param x One value.\r\n * @param y Another value.\r\n * @param precision Precision value.\r\n */\r\n export function lessOrEqualWithPrecision(x: number, y: number, precision?: number): boolean {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n\r\n return x < y || Math.abs(x - y) < precision;\r\n }\r\n\r\n /** \r\n * Checks if a first value is greater than another taking \r\n * into account the loose precision based equality.\r\n * @param x One value.\r\n * @param y Another value.\r\n * @param precision Precision value.\r\n */\r\n export function greaterWithPrecision(x: number, y: number, precision?: number): boolean {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n\r\n return x > y && Math.abs(x - y) > precision;\r\n }\r\n\r\n /** \r\n * Checks if a first value is greater or equal to another taking \r\n * into account the loose precision based equality.\r\n * @param x One value.\r\n * @param y Another value.\r\n * @param precision Precision value.\r\n */\r\n export function greaterOrEqualWithPrecision(x: number, y: number, precision?: number): boolean {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n\r\n return x > y || Math.abs(x - y) < precision;\r\n }\r\n\r\n /** \r\n * Floors the number unless it's withing the precision distance from the higher int.\r\n * @param x One value.\r\n * @param precision Precision value.\r\n */\r\n export function floorWithPrecision(x: number, precision?: number): number {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n\r\n let roundX = Math.round(x);\r\n if (Math.abs(x - roundX) < precision) {\r\n return roundX;\r\n } else {\r\n return Math.floor(x);\r\n }\r\n }\r\n\r\n /** \r\n * Ceils the number unless it's withing the precision distance from the lower int.\r\n * @param x One value.\r\n * @param precision Precision value.\r\n */\r\n export function ceilWithPrecision(x: number, precision?: number): number {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n\r\n let roundX = Math.round(x);\r\n if (Math.abs(x - roundX) < precision) {\r\n return roundX;\r\n } else {\r\n return Math.ceil(x);\r\n }\r\n }\r\n\r\n /** \r\n * Floors the number to the provided precision.\r\n * For example 234,578 floored to 1,000 precision is 234,000.\r\n * @param x One value.\r\n * @param precision Precision value.\r\n */\r\n export function floorToPrecision(x: number, precision?: number): number {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n if (precision === 0 || x === 0) {\r\n return x;\r\n }\r\n //Precision must be a Power of 10\r\n return Math.floor(x / precision) * precision;\r\n }\r\n\r\n /** \r\n * Ceils the number to the provided precision.\r\n * For example 234,578 floored to 1,000 precision is 235,000.\r\n * @param x One value.\r\n * @param precision Precision value.\r\n */\r\n export function ceilToPrecision(x: number, precision?: number): number {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n if (precision === 0 || x === 0) {\r\n return x;\r\n }\r\n //Precision must be a Power of 10\r\n return Math.ceil(x / precision) * precision;\r\n }\r\n\r\n /** \r\n * Rounds the number to the provided precision. \r\n * For example 234,578 floored to 1,000 precision is 235,000.\r\n * @param x One value.\r\n * @param precision Precision value.\r\n */\r\n export function roundToPrecision(x: number, precision?: number): number {\r\n precision = applyDefault(precision, Double.DEFAULT_PRECISION);\r\n debug.assert(precision >= 0, \"precision\");\r\n if (precision === 0 || x === 0) {\r\n return x;\r\n } \r\n //Precision must be a Power of 10\r\n let result = Math.round(x / precision) * precision;\r\n let decimalDigits = Math.round(Double.log10(Math.abs(x)) - Double.log10(precision)) + 1;\r\n if (decimalDigits > 0 && decimalDigits < 16) {\r\n result = parseFloat(result.toPrecision(decimalDigits));\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /** \r\n * Returns the value making sure that it's restricted to the provided range.\r\n * @param x One value.\r\n * @param min Range min boundary.\r\n * @param max Range max boundary.\r\n */\r\n export function ensureInRange(x: number, min: number, max: number): number {\r\n debug.assert(min <= max, \"min must be less or equal to max\");\r\n if (x === undefined || x === null) {\r\n return x;\r\n }\r\n if (x < min) {\r\n return min;\r\n }\r\n if (x > max) {\r\n return max;\r\n }\r\n return x;\r\n }\r\n\r\n /** \r\n * Rounds the value - this method is actually faster than Math.round - used in the graphics utils.\r\n * @param x Value to round.\r\n */\r\n export function round(x: number): number {\r\n debug.assert(x >= 0, \"x must be greater or equal to 0\");\r\n\r\n return (0.5 + x) << 0;\r\n }\r\n\r\n /** \r\n * Projects the value from the source range into the target range.\r\n * @param value Value to project.\r\n * @param fromMin Minimum of the source range.\r\n * @param toMin Minimum of the target range.\r\n * @param toMax Maximum of the target range.\r\n */\r\n export function project(value: number, fromMin: number, fromSize: number, toMin: number, toSize: number): number {\r\n if (fromSize === 0 || toSize === 0) {\r\n if (fromMin <= value && value <= fromMin + fromSize) {\r\n return toMin;\r\n } else {\r\n return NaN;\r\n }\r\n }\r\n let relativeX = (value - fromMin) / fromSize;\r\n let projectedX = toMin + relativeX * toSize;\r\n return projectedX;\r\n }\r\n\r\n /** \r\n * Removes decimal noise.\r\n * @param value Value to be processed.\r\n */\r\n export function removeDecimalNoise(value: number): number {\r\n return roundToPrecision(value, getPrecision(value));\r\n }\r\n\r\n /** \r\n * Checks whether the number is integer.\r\n * @param value Value to be checked.\r\n */\r\n export function isInteger(value: number): boolean {\r\n return value !== null && value % 1 === 0;\r\n }\r\n\r\n /**\r\n * Dividing by increment will give us count of increments\r\n * Round out the rough edges into even integer\r\n * Multiply back by increment to get rounded value\r\n * e.g. Rounder.toIncrement(0.647291, 0.05) => 0.65\r\n * @param value - value to round to nearest increment\r\n * @param increment - smallest increment to round toward\r\n */\r\n export function toIncrement(value: number, increment: number): number {\r\n return Math.round(value / increment) * increment;\r\n }\r\n }\r\n\r\n function applyDefault(value: number, defaultValue: number): number {\r\n return value !== undefined ? value : defaultValue;\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n import Double = powerbi.Double;\r\n\r\n export module Color {\r\n export function rotate(rgbString: string, rotateFactor: number): string {\r\n if (rotateFactor === 0)\r\n return rgbString;\r\n\r\n let originalRgb = parseColorString(rgbString);\r\n let originalHsv = rgbToHsv(originalRgb);\r\n let rotatedHsv = rotateHsv(originalHsv, rotateFactor);\r\n let rotatedRgb = hsvToRgb(rotatedHsv);\r\n return hexString(rotatedRgb);\r\n }\r\n\r\n export function normalizeToHexString(color: string): string {\r\n let rgb = parseColorString(color);\r\n return hexString(rgb);\r\n }\r\n\r\n export function parseColorString(color: string): RgbColor {\r\n debug.assertValue(color, 'color');\r\n\r\n if (color.indexOf('#') >= 0) {\r\n if (color.length === 7) {\r\n // #RRGGBB\r\n let result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(color);\r\n if (result == null || result.length < 4)\r\n return;\r\n\r\n return {\r\n R: parseInt(result[1], 16),\r\n G: parseInt(result[2], 16),\r\n B: parseInt(result[3], 16),\r\n };\r\n } else if (color.length === 4) {\r\n // #RGB\r\n let result = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i.exec(color);\r\n if (result == null || result.length < 4)\r\n return;\r\n\r\n return {\r\n R: parseInt(result[1] + result[1], 16),\r\n G: parseInt(result[2] + result[2], 16),\r\n B: parseInt(result[3] + result[3], 16),\r\n };\r\n }\r\n }\r\n else if (color.indexOf('rgb(') >= 0) {\r\n // rgb(R, G, B)\r\n let result = /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/.exec(color);\r\n if (result == null || result.length < 4)\r\n return;\r\n\r\n return {\r\n R: parseInt(result[1], 10),\r\n G: parseInt(result[2], 10),\r\n B: parseInt(result[3], 10),\r\n };\r\n }\r\n else if (color.indexOf('rgba(') >= 0) {\r\n // rgba(R, G, B, A)\r\n let result = /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d*(?:\\.\\d+)?)\\)$/.exec(color);\r\n if (result == null || result.length < 5)\r\n return;\r\n\r\n return {\r\n R: parseInt(result[1], 10),\r\n G: parseInt(result[2], 10),\r\n B: parseInt(result[3], 10),\r\n A: parseFloat(result[4]),\r\n };\r\n }\r\n }\r\n\r\n function rgbToHsv(rgbColor: RgbColor): HsvColor {\r\n let s, h;\r\n let r = rgbColor.R / 255,\r\n g = rgbColor.G / 255,\r\n b = rgbColor.B / 255;\r\n\r\n let min = Math.min(r, Math.min(g, b));\r\n let max = Math.max(r, Math.max(g, b));\r\n\r\n let v = max;\r\n let delta = max - min;\r\n if (max === 0 || delta === 0) {\r\n // R, G, and B must be 0.0, or all the same.\r\n // In this case, S is 0.0, and H is undefined.\r\n // Using H = 0.0 is as good as any...\r\n s = 0;\r\n h = 0;\r\n }\r\n else {\r\n s = delta / max;\r\n if (r === max) {\r\n // Between Yellow and Magenta\r\n h = (g - b) / delta;\r\n }\r\n else if (g === max) {\r\n // Between Cyan and Yellow\r\n h = 2 + (b - r) / delta;\r\n }\r\n else {\r\n // Between Magenta and Cyan\r\n h = 4 + (r - g) / delta;\r\n }\r\n }\r\n\r\n // Scale h to be between 0.0 and 1.\r\n // This may require adding 1, if the value\r\n // is negative.\r\n h /= 6;\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n\r\n return {\r\n H: h,\r\n S: s,\r\n V: v,\r\n };\r\n }\r\n\r\n function hsvToRgb(hsvColor: HsvColor): RgbColor {\r\n let r, g, b;\r\n let h = hsvColor.H,\r\n s = hsvColor.S,\r\n v = hsvColor.V;\r\n\r\n if (s === 0) {\r\n // If s is 0, all colors are the same.\r\n // This is some flavor of gray.\r\n r = v;\r\n g = v;\r\n b = v;\r\n }\r\n else {\r\n let p, q, t, fractionalSector, sectorNumber, sectorPos;\r\n\r\n // The color wheel consists of 6 sectors.\r\n // Figure out which sector you//re in.\r\n sectorPos = h * 6;\r\n sectorNumber = Math.floor(sectorPos);\r\n\r\n // get the fractional part of the sector.\r\n // That is, how many degrees into the sector\r\n // are you?\r\n fractionalSector = sectorPos - sectorNumber;\r\n\r\n // Calculate values for the three axes\r\n // of the color.\r\n p = v * (1.0 - s);\r\n q = v * (1.0 - (s * fractionalSector));\r\n t = v * (1.0 - (s * (1 - fractionalSector)));\r\n\r\n // Assign the fractional colors to r, g, and b\r\n // based on the sector the angle is in.\r\n switch (sectorNumber) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n R: Math.floor(r * 255),\r\n G: Math.floor(g * 255),\r\n B: Math.floor(b * 255),\r\n };\r\n }\r\n\r\n function rotateHsv(hsvColor: HsvColor, rotateFactor: number): HsvColor {\r\n let newH = hsvColor.H + rotateFactor;\r\n\r\n return {\r\n H: newH > 1 ? newH - 1 : newH,\r\n S: hsvColor.S,\r\n V: hsvColor.V,\r\n };\r\n }\r\n\r\n export function darken(color: RgbColor, diff: number): RgbColor {\r\n let flooredNumber = Math.floor(diff);\r\n return {\r\n R: Math.max(0, color.R - flooredNumber),\r\n G: Math.max(0, color.G - flooredNumber),\r\n B: Math.max(0, color.B - flooredNumber),\r\n };\r\n }\r\n\r\n export function rgbString(color: RgbColor): string {\r\n if (color.A == null)\r\n return \"rgb(\" + color.R + \",\" + color.G + \",\" + color.B + \")\";\r\n return \"rgba(\" + color.R + \",\" + color.G + \",\" + color.B + \",\" + color.A + \")\";\r\n }\r\n\r\n export function hexString(color: RgbColor): string {\r\n return \"#\" + componentToHex(color.R) + componentToHex(color.G) + componentToHex(color.B);\r\n }\r\n\r\n function componentToHex(hexComponent: number): string {\r\n let clamped = Double.ensureInRange(hexComponent, 0, 255);\r\n let hex = clamped.toString(16).toUpperCase();\r\n return hex.length === 1 ? \"0\" + hex : hex;\r\n }\r\n\r\n export interface RgbColor {\r\n R: number;\r\n G: number;\r\n B: number;\r\n A?: number;\r\n }\r\n\r\n interface HsvColor {\r\n H: number;\r\n S: number;\r\n V: number;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n /**\r\n * CSS constants.\r\n */\r\n export module CssConstants {\r\n export interface ClassAndSelector {\r\n class: string;\r\n selector: string;\r\n }\r\n\r\n export function createClassAndSelector(className: string): ClassAndSelector {\r\n return {\r\n class: className,\r\n selector: '.' + className,\r\n };\r\n }\r\n\r\n export const styleAttribute = 'style';\r\n export const pixelUnits = 'px';\r\n\r\n export const heightProperty = 'height';\r\n export const widthProperty = 'width';\r\n export const topProperty = 'top';\r\n export const bottomProperty = 'bottom';\r\n export const leftProperty = 'left';\r\n export const rightProperty = 'right';\r\n export const marginTopProperty = 'margin-top';\r\n export const marginLeftProperty = 'margin-left';\r\n export const displayProperty = 'display';\r\n export const backgroundProperty = 'background';\r\n export const backgroundColorProperty = 'background-color';\r\n export const backgroundRepeatProperty = 'background-repeat';\r\n export const backgroundSizeProperty = 'background-size';\r\n export const backgroundImageProperty = 'background-image';\r\n export const textShadowProperty = 'text-shadow';\r\n export const textAlignProperty = 'text-align';\r\n export const borderTopWidthProperty = 'border-top-width';\r\n export const borderBottomWidthProperty = 'border-bottom-width';\r\n export const borderLeftWidthProperty = 'border-left-width';\r\n export const borderRightWidthProperty = 'border-right-width';\r\n export const fontSizeProperty = 'font-size';\r\n export const fontWeightProperty = 'font-weight';\r\n export const colorProperty = 'color';\r\n export const opacityProperty = 'opacity';\r\n export const paddingLeftProperty = 'padding-left';\r\n export const paddingRightProperty = 'padding-right';\r\n export const positionProperty = 'position';\r\n export const maxWidthProperty = 'max-width';\r\n export const minWidthProperty = 'min-width';\r\n export const overflowProperty = 'overflow';\r\n export const overflowXProperty = 'overflow-x';\r\n export const overflowYProperty = 'overflow-y';\r\n export const transformProperty = 'transform';\r\n export const webkitTransformProperty = '-webkit-transform';\r\n export const cursorProperty = 'cursor';\r\n export const visibilityProperty = 'visibility';\r\n\r\n export const absoluteValue = 'absolute';\r\n export const zeroPixelValue = '0px';\r\n export const autoValue = 'auto';\r\n export const hiddenValue = 'hidden';\r\n export const noneValue = 'none';\r\n export const blockValue = 'block';\r\n export const inlineBlockValue = 'inline-block';\r\n export const transparentValue = 'transparent';\r\n export const boldValue = 'bold';\r\n export const visibleValue = 'visible';\r\n export const tableRowValue = 'table-row';\r\n export const coverValue = 'cover';\r\n export const pointerValue = 'pointer';\r\n export const scrollValue = 'scroll';\r\n }\r\n\r\n export interface ExtendedCSSProperties extends CSSStyleDeclaration {\r\n scrollbarShadowColor: string;\r\n scrollbarHighlightColor: string;\r\n layoutGridChar: string;\r\n layoutGridType: string;\r\n textAutospace: string;\r\n textKashidaSpace: string;\r\n writingMode: string;\r\n scrollbarFaceColor: string;\r\n backgroundPositionY: string;\r\n lineBreak: string;\r\n imeMode: string;\r\n msBlockProgression: string;\r\n layoutGridLine: string;\r\n scrollbarBaseColor: string;\r\n layoutGrid: string;\r\n layoutFlow: string;\r\n textKashida: string;\r\n filter: string;\r\n zoom: string;\r\n scrollbarArrowColor: string;\r\n behavior: string;\r\n backgroundPositionX: string;\r\n accelerator: string;\r\n layoutGridMode: string;\r\n textJustifyTrim: string;\r\n scrollbar3dLightColor: string;\r\n msInterpolationMode: string;\r\n scrollbarTrackColor: string;\r\n scrollbarDarkShadowColor: string;\r\n styleFloat: string;\r\n getAttribute(attributeName: string, flags?: number): any;\r\n setAttribute(attributeName: string, AttributeValue: any, flags?: number): void;\r\n removeAttribute(attributeName: string, flags?: number): boolean;\r\n\r\n pixelWidth: number;\r\n posHeight: number;\r\n posLeft: number;\r\n pixelTop: number;\r\n pixelBottom: number;\r\n textDecorationNone: boolean;\r\n pixelLeft: number;\r\n posTop: number;\r\n posBottom: number;\r\n textDecorationOverline: boolean;\r\n posWidth: number;\r\n textDecorationLineThrough: boolean;\r\n pixelHeight: number;\r\n textDecorationBlink: boolean;\r\n posRight: number;\r\n pixelRight: number;\r\n textDecorationUnderline: boolean;\r\n\r\n webkitTransform: string;\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\n/**\r\n * Defines a Debug object. Calls to any functions in this object removed by the minifier.\r\n * The functions within this class are not minified away, so we use the preprocessor-style\r\n * comments to have the minifier remove those as well.\r\n */\r\n \r\n///#DEBUG\r\n\r\nmodule debug {\r\n\r\n export let assertFailFunction: {\r\n (message: string): void;\r\n };\r\n\r\n /** \r\n * Asserts that the condition is true, fails otherwise.\r\n */\r\n export function assert(condition: boolean, message: string): void {\r\n if (condition !== true) {\r\n assertFail(message || ('condition: ' + condition));\r\n }\r\n }\r\n\r\n /**\r\n * Asserts that the value is neither null nor undefined, fails otherwise. \r\n */\r\n export function assertValue<T>(value: T, message: string): void {\r\n if (value === null || value === undefined) {\r\n assertFail(message || ('condition: ' + value));\r\n }\r\n }\r\n\r\n /**\r\n * Asserts that the value is neither null nor undefined, and has a length property that returns greater than zero, fails otherwise. \r\n */\r\n export function assertNonEmpty<T>(value: T[], message: string): void {\r\n if (!(value != null && value.length > 0)) {\r\n assertFail(message || ('condition: ' + value));\r\n }\r\n }\r\n\r\n /**\r\n * Makes no assertion on the given value.\r\n * This is documentation/placeholder that a value is possibly null or undefined (unlike assertValue).\r\n */\r\n export function assertAnyValue<T>(value: T, message: string): void {\r\n }\r\n\r\n export function assertFail(message: string): void {\r\n (assertFailFunction || alert)('Debug Assert failed: ' + message);\r\n }\r\n}\r\n\r\n///#ENDDEBUG","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n export interface IError extends Error {\r\n stack?: string;\r\n argument?: string;\r\n }\r\n\r\n export module Errors {\r\n export function infoNavAppAlreadyPresent(): IError {\r\n return {\r\n name: 'infoNavAppAlreadyPresent',\r\n message: 'Cannot initialize embedded scenario when the InfoNav App is already present in this context',\r\n stack: getExceptionStackTrace()\r\n };\r\n }\r\n\r\n export function invalidOperation(message: string): IError {\r\n return {\r\n name: 'invalidOperation',\r\n message: message,\r\n stack: getExceptionStackTrace()\r\n };\r\n }\r\n\r\n export function argument(argumentName: string, message: string): IError {\r\n return {\r\n name: 'invalidArgumentError',\r\n argument: argumentName,\r\n message: message,\r\n stack: getExceptionStackTrace()\r\n };\r\n }\r\n\r\n export function argumentNull(argumentName: string): IError {\r\n return {\r\n name: 'argumentNull',\r\n argument: argumentName,\r\n message: 'Argument was null',\r\n stack: getExceptionStackTrace()\r\n };\r\n }\r\n\r\n export function argumentUndefined(argumentName: string): IError {\r\n return {\r\n name: 'argumentUndefined',\r\n argument: argumentName,\r\n message: 'Argument was undefined',\r\n stack: getExceptionStackTrace()\r\n };\r\n }\r\n\r\n export function argumentOutOfRange(argumentName: string): IError {\r\n return {\r\n name: 'argumentOutOfRange',\r\n argument: argumentName,\r\n message: 'Argument was out of range',\r\n stack: getExceptionStackTrace()\r\n };\r\n }\r\n\r\n export function pureVirtualMethodException(className: string, methodName: string): IError {\r\n return {\r\n name: 'pureVirtualMethodException',\r\n message: 'This method must be overriden by the derived class:' + className + '.' + methodName,\r\n stack: getExceptionStackTrace()\r\n };\r\n }\r\n\r\n export function notImplementedException(message: string): IError {\r\n return {\r\n name: 'notImplementedException',\r\n message: message,\r\n stack: getExceptionStackTrace()\r\n };\r\n }\r\n\r\n function getExceptionStackTrace(): string {\r\n return getStackTrace(/*leadingFramesToRemove*/2);\r\n }\r\n }\r\n\r\n /**\r\n * Captures the stack trace, if available.\r\n * It optionally takes the number of frames to remove from the stack trace.\r\n * By default, it removes the last frame to consider the calling type's\r\n * constructor and the temporary error used to capture the stack trace (below).\r\n * More levels can be requested as needed e..g. when an error is created\r\n * from a helper method. <Min requirement: IE10, Chrome, Firefox, Opera>.\r\n */\r\n export function getStackTrace(leadingFramesToRemove = 1): string {\r\n let stackTrace: string,\r\n stackSegments: string[];\r\n\r\n try {\r\n // needs to throw for stack trace to work in IE\r\n throw new Error();\r\n } catch (error) {\r\n stackTrace = error.stack;\r\n if (stackTrace != null) {\r\n stackSegments = stackTrace.split('\\n');\r\n stackSegments.splice(1, leadingFramesToRemove);\r\n // Finally\r\n stackTrace = stackSegments.join('\\n');\r\n }\r\n }\r\n\r\n return stackTrace;\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\n$.fn.multiline = function (text) {\r\n this.text(text);\r\n this.html(this.html().replace(/\\n/g, '<br/>'));\r\n return this;\r\n};\r\n\r\n$.fn.togglePanelControl = function () {\r\n return this.each(function () {\r\n $(this).addClass(\"ui-accordion ui-accordion-icons ui-widget ui-helper-reset\")\r\n .find(\".accordionHeader\")\r\n .addClass(\"ui-accordion-header ui-helper-reset ui-state-default ui-corner-top ui-corner-bottom\")\r\n .hover(function() {\r\n $(this).toggleClass(\"ui-state-hover\");\r\n })\r\n .prepend('<span class=\"ui-icon ui-icon-triangle-1-e\"></span>')\r\n .click(function() {\r\n $(this)\r\n .toggleClass(\"ui-accordion-header-active ui-state-active ui-state-default ui-corner-bottom\")\r\n .find(\"> .ui-icon\").toggleClass(\"ui-icon-triangle-1-e ui-icon-triangle-1-s\").end()\r\n .next().slideToggle();\r\n return false;\r\n })\r\n .next()\r\n .addClass(\"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom\")\r\n .hide();\r\n });\r\n};\r\n\r\nmodule jsCommon {\r\n /** \r\n * Represents a promise that may be rejected by its consumer.\r\n */ \r\n export interface IRejectablePromise extends JQueryPromise<void> {\r\n reject(...args: any[]): void;\r\n }\r\n\r\n export module JQueryConstants {\r\n export const VisibleSelector: string = ':visible';\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n\r\n /** \r\n * Represents a lazily instantiated value.\r\n */\r\n export class Lazy<T> {\r\n private value: T;\r\n private factoryMethod: () => T;\r\n\r\n constructor(factoryMethod: () => T) {\r\n Utility.throwIfNullOrUndefined(factoryMethod, this, 'constructor', 'factoryMethod');\r\n\r\n this.factoryMethod = factoryMethod;\r\n }\r\n\r\n public getValue(): T {\r\n if (this.factoryMethod !== null) {\r\n this.value = this.factoryMethod();\r\n\r\n // Optimization: Release the factoryMethod, as it could be holding a large object graph.\r\n this.factoryMethod = null;\r\n }\r\n\r\n return this.value;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved.\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n export module Prototype {\r\n /**\r\n * Returns a new object with the provided obj as its prototype.\r\n */\r\n export function inherit<T>(obj: T, extension?: (inherited: T) => void): T {\r\n debug.assertValue(obj, 'obj');\r\n\r\n function wrapCtor(): void { };\r\n wrapCtor.prototype = obj;\r\n\r\n let inherited = new wrapCtor();\r\n\r\n if (extension)\r\n extension(inherited);\r\n\r\n return inherited;\r\n }\r\n\r\n /**\r\n * Returns a new object with the provided obj as its prototype\r\n * if, and only if, the prototype has not been previously set\r\n */\r\n export function inheritSingle<T>(obj: T): T {\r\n debug.assertValue(obj, 'obj');\r\n\r\n let proto = Object.getPrototypeOf(obj);\r\n if (proto === Object.prototype || proto === Array.prototype)\r\n obj = inherit(obj);\r\n\r\n return obj;\r\n }\r\n\r\n /**\r\n * Uses the provided callback function to selectively replace contents in the provided array.\r\n * @return A new array with those values overriden\r\n * or undefined if no overrides are necessary.\r\n */\r\n export function overrideArray<T, TArray>(prototype: TArray, override: (T) => T): TArray {\r\n if (!prototype)\r\n return;\r\n\r\n let overwritten: TArray;\r\n\r\n for (let i = 0, len = (<T[]><any>prototype).length; i < len; i++) {\r\n let value = override(prototype[i]);\r\n if (value) {\r\n if (!overwritten)\r\n overwritten = inherit(prototype);\r\n\r\n overwritten[i] = value;\r\n }\r\n }\r\n\r\n return overwritten;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\ninterface ScriptErrorInfo {\r\n message: string;\r\n sourceUrl: string;\r\n lineNumber: number;\r\n columnNumber: number;\r\n stack: string;\r\n}\r\n\r\ninterface ErrorInfoKeyValuePair {\r\n errorInfoKey: string;\r\n errorInfoValue: string;\r\n}\r\n\r\nconst enum ErrorType {\r\n VisualNotSupported = 1,\r\n}\r\n\r\ninterface ErrorDetails {\r\n message: string;\r\n additionalErrorInfo: ErrorInfoKeyValuePair[];\r\n helpLink?: string;\r\n errorType?: ErrorType;\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi.visuals {\r\n export module shapes {\r\n export interface IPolygon {\r\n absoluteCentroid: IPoint;\r\n polygonPoints: IPoint[];\r\n }\r\n\r\n export interface IPoint {\r\n x: number;\r\n y: number;\r\n }\r\n\r\n export interface ISize {\r\n width: number;\r\n height: number;\r\n }\r\n\r\n export interface IVector {\r\n x: number;\r\n y: number;\r\n }\r\n\r\n export interface IThickness {\r\n top: number;\r\n left: number;\r\n right: number;\r\n bottom: number;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n\r\n export module Formatting {\r\n\r\n interface IRegexInt {\r\n // Regex for replace.\r\n r: RegExp;\r\n // The string to replace.\r\n s: string;\r\n }\r\n\r\n let regexCache: IRegexInt[];\r\n\r\n /** \r\n * Translate .NET format into something supported by jQuery.Globalize.\r\n */\r\n export function findDateFormat(value: Date, format: string, cultureName: string)\r\n {\r\n switch (format) {\r\n case \"m\":\r\n // Month + day\r\n format = \"M\";\r\n break;\r\n case \"O\":\r\n case \"o\":\r\n // Roundtrip\r\n format = \"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'0000'\";\r\n break;\r\n case \"R\":\r\n case \"r\":\r\n // RFC1123 pattern - - time must be converted to UTC before formatting \r\n value = new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(), value.getUTCHours(), value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds());\r\n format = \"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'\";\r\n break;\r\n case \"s\":\r\n // Sortable - should use invariant culture\r\n format = \"S\";\r\n break;\r\n case \"u\":\r\n // Universal sortable - should convert to UTC before applying the \"yyyy'-'MM'-'dd HH':'mm':'ss'Z' format.\r\n value = new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(), value.getUTCHours(), value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds());\r\n format = \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\";\r\n break;\r\n case \"U\":\r\n // Universal full - the pattern is same as F but the time must be converted to UTC before formatting\r\n value = new Date(value.getUTCFullYear(), value.getUTCMonth(), value.getUTCDate(), value.getUTCHours(), value.getUTCMinutes(), value.getUTCSeconds(), value.getUTCMilliseconds());\r\n format = \"F\";\r\n break;\r\n case \"y\":\r\n case \"Y\":\r\n // Year and month\r\n switch (cultureName) {\r\n case \"default\":\r\n case \"en\":\r\n case \"en-US\":\r\n format = \"MMMM, yyyy\"; // Fix the default year-month pattern for english\r\n break;\r\n default:\r\n format = \"Y\"; // For other cultures - use the localized pattern\r\n }\r\n break;\r\n }\r\n return { value: value, format: format };\r\n }\r\n \r\n /** \r\n * Translates unsupported .NET custom format expressions to the custom expressions supported by JQuery.Globalize.\r\n */\r\n export function fixDateTimeFormat(format: string): string {\r\n // Fix for the \"K\" format (timezone): \r\n //The js dates don't have a kind property so we'll support only local kind which is equavalent to zzz format.\r\n format = format.replace(/%K/g, \"zzz\"); \r\n format = format.replace(/K/g, \"zzz\");\r\n format = format.replace(/fffffff/g, \"fff0000\");\r\n format = format.replace(/ffffff/g, \"fff000\");\r\n format = format.replace(/fffff/g, \"fff00\");\r\n format = format.replace(/ffff/g, \"fff0\");\r\n // Fix for the 5 digit year: \"yyyyy\" format. \r\n //The Globalize doesn't support dates greater than 9999 so we replace the \"yyyyy\" with \"0yyyy\".\r\n format = format.replace(/yyyyy/g, \"0yyyy\"); \r\n // Fix for the 3 digit year: \"yyy\" format. \r\n //The Globalize doesn't support this formatting so we need to replace it with the 4 digit year \"yyyy\" format.\r\n format = format.replace(/(^y|^)yyy(^y|$)/g, \"yyyy\"); \r\n\r\n if (!regexCache) {\r\n // Creating Regexes for cases \"Using single format specifier\" \r\n //- http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#UsingSingleSpecifiers\r\n // This is not supported from The Globalize.\r\n // The case covers all single \"%\" lead specifier (like \"%d\" but not %dd) \r\n // The cases as single \"%d\" are filtered in if the bellow.\r\n // (?!S) where S is the specifier make sure that we only one symbol for specifier.\r\n regexCache = [\"d\", \"f\", \"F\", \"g\", \"h\", \"H\", \"K\", \"m\", \"M\", \"s\", \"t\", \"y\", \"z\", \":\", \"/\"].map((s) => {\r\n return { r: new RegExp(\"\\%\" + s + \"(?!\" + s + \")\", \"g\"), s: s };\r\n });\r\n }\r\n\r\n if (format.indexOf(\"%\") !== -1 && format.length > 2) {\r\n for (let i = 0; i < regexCache.length; i++) {\r\n format = format.replace(regexCache[i].r, regexCache[i].s);\r\n }\r\n }\r\n return format;\r\n }\r\n\r\n }\r\n\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n\r\n let doc: HTMLDocument = document,\r\n headElement: HTMLElement = doc.head,\r\n firstScriptInHeadElement: HTMLElement = headElement.getElementsByTagName('script')[0],\r\n linkElement: HTMLElement = doc.createElement('link'),\r\n scriptElement: HTMLElement = doc.createElement('script'),\r\n styleSheetLoaded: string[] = [],\r\n javaScriptFilesLoaded: string[] = [],\r\n javaScriptFilesLoading: any[] = [];\r\n\r\n linkElement.setAttribute('rel', 'stylesheet');\r\n\r\n /**\r\n * Public API.\r\n */\r\n\texport interface IJavaScriptDependency {\r\n\t\tjavascriptFile: string;\r\n\r\n // Callback that indicates when the script is loaded, after writing a <script> tag\r\n\t\tonLoadCallback?: () => JQueryPromise<void>;\r\n\t}\r\n\r\n export interface IDependency {\r\n javaScriptFiles?: string[];\r\n cssFiles?: string[];\r\n\t\tjavaScriptFilesWithCallback?: IJavaScriptDependency[];\r\n }\r\n\r\n export function requires(dependency: IDependency, to: () => void = $.noop): void {\r\n loadStyleSheets(dependency.cssFiles || []);\r\n\r\n\t\tlet scriptsToRun = dependency.javaScriptFilesWithCallback || [];\r\n\r\n\t\tif (dependency.javaScriptFiles) {\r\n\t\t\tfor(let i=0, len=dependency.javaScriptFiles.length; i<len; ++i) {\r\n\t\t\t\tscriptsToRun.push({javascriptFile:dependency.javaScriptFiles[i]});\r\n\t\t\t}\r\n\t\t}\r\n loadJavaScriptFiles(scriptsToRun, to);\r\n }\r\n\r\n /**\r\n * Private Helpers.\r\n */\r\n function loadStyleSheets(hrefList: string[]): void {\r\n hrefList.forEach(href => {\r\n if (styleSheetLoaded.indexOf(href) === -1) {\r\n styleSheetLoaded.push(href);\r\n loadStyleSheet(href);\r\n }\r\n });\r\n }\r\n\r\n function loadJavaScriptFiles(scripts: IJavaScriptDependency[], callback: () => void): void {\r\n let loadingCount = scripts.length,\r\n parsingCount = loadingCount,\r\n sourceCodeList: IJavaScriptDependency[] = [];\r\n\r\n function parseIfLoadingComplete(): void {\r\n if (!--loadingCount) {\r\n parseJavaScriptSourceCodes(scripts, sourceCodeList);\r\n }\r\n }\r\n\r\n function makeCallbackIfParsingComplete(): void {\r\n if (!--parsingCount) {\r\n callback();\r\n }\r\n }\r\n\r\n scripts.forEach((script: IJavaScriptDependency, index: number) => {\r\n let file = script.javascriptFile;\r\n if (javaScriptFilesLoaded.indexOf(file) === -1) { // not loaded\r\n\r\n if (file in javaScriptFilesLoading) { // loading\r\n javaScriptFilesLoading[file].push(() => {\r\n parseIfLoadingComplete();\r\n makeCallbackIfParsingComplete();\r\n });\r\n\r\n } else { // not loading\r\n javaScriptFilesLoading[file] = [() => {\r\n makeCallbackIfParsingComplete();\r\n }];\r\n\r\n if (isExternalUrl(file)) { // external JS file\r\n sourceCodeList[index] = script;\r\n parseIfLoadingComplete();\r\n\r\n } else { // internal JS file\r\n loadJavaScriptSourceCode(file, (sourceCode: string) => {\r\n sourceCodeList[index] = {javascriptFile: sourceCode};\r\n parseIfLoadingComplete();\r\n });\r\n }\r\n }\r\n\r\n } else { // loaded\r\n parseIfLoadingComplete();\r\n makeCallbackIfParsingComplete();\r\n }\r\n });\r\n }\r\n\r\n function loadStyleSheet(href: string): void {\r\n let link = <any>linkElement.cloneNode();\r\n link.href = href;\r\n if (firstScriptInHeadElement) {\r\n headElement.insertBefore(link, firstScriptInHeadElement);\r\n } else {\r\n headElement.appendChild(link);\r\n }\r\n }\r\n\r\n function loadJavaScriptSourceCode(src: string, onload: (code: string) => void): void {\r\n webGet(src, function (): void {\r\n onload(this.responseText);\r\n });\r\n }\r\n\r\n function parseJavaScript(script: IJavaScriptDependency, onComplete: () => void = $.noop): void {\r\n if (!script) {\r\n onComplete();\r\n return;\r\n }\r\n\r\n\t\tlet sourceCodeOrFileName = script.javascriptFile;\r\n\r\n\t\tlet targetCallback = onComplete;\r\n\t\tif (script.onLoadCallback) {\r\n\t\t\tlet promiseAsCallback = () => {\r\n\t\t\t\tscript.onLoadCallback().then(onComplete);\r\n\t\t\t};\r\n\t\t\ttargetCallback = promiseAsCallback;\r\n\t\t}\r\n\r\n isExternalUrl(sourceCodeOrFileName)\r\n ? loadExternalJavaScriptFile(sourceCodeOrFileName, targetCallback)\r\n : parseInternalJavaScriptCode(sourceCodeOrFileName, targetCallback);\r\n }\r\n\r\n function parseInternalJavaScriptCode(sourceCode: string, onComplete: () => void = $.noop): void {\r\n let script: HTMLElement;\r\n if (sourceCode) {\r\n script = <any>scriptElement.cloneNode();\r\n script.setAttribute('type', 'text/javascript');\r\n script.innerHTML = sourceCode;\r\n headElement.appendChild(script);\r\n }\r\n setTimeout(onComplete, 0);\r\n }\r\n\r\n function loadExternalJavaScriptFile(src, onload: () => void): void {\r\n let script: HTMLElement;\r\n if (src) {\r\n script = <any>scriptElement.cloneNode();\r\n script.setAttribute('src', src);\r\n script.setAttribute('charset', 'utf-8');\r\n script.onload = onload;\r\n headElement.appendChild(script);\r\n }\r\n }\r\n\r\n function parseJavaScriptSourceCodes(scripts: IJavaScriptDependency[], sourceCodeList: IJavaScriptDependency[]): void {\r\n asyncLoop(sourceCodeList, parseJavaScript, /*on all files parsed*/() => {\r\n scripts.forEach((script: IJavaScriptDependency) => {\r\n let file = script.javascriptFile;\r\n let listeners = javaScriptFilesLoading[file];\r\n if (listeners) {\r\n listeners.forEach((listener) => {\r\n listener();\r\n });\r\n }\r\n\r\n delete javaScriptFilesLoading[file];\r\n if (javaScriptFilesLoaded.indexOf(file) === -1) {\r\n javaScriptFilesLoaded.push(file);\r\n }\r\n });\r\n });\r\n }\r\n\r\n function webGet(src: string, onload: () => void, onerror?: (error: any) => void): void {\r\n let xhr = new XMLHttpRequest();\r\n\r\n try {\r\n xhr.open('GET', src, true);\r\n xhr.onload = onload;\r\n xhr.onerror = onerror;\r\n xhr.send(null);\r\n }\r\n catch (e) {\r\n // handle it\r\n }\r\n }\r\n\r\n function isExternalUrl(url: string): boolean {\r\n let origin = location.protocol + '//' + location.host + '/';\r\n return /^http[s]?:\\/\\/.+/i.test(url) && url.indexOf(origin) !== 0;\r\n }\r\n\r\n function _(...args: any[]): any { }\r\n\r\n function asyncSteps(...args: Function[]): void {\r\n if (args.length === 0) {\r\n return;\r\n }\r\n\r\n let steps = [],\r\n i = args.length;\r\n\r\n while (i--) {\r\n (function (j) {\r\n steps[j] = function () {\r\n args[j](steps[j + 1] || _);\r\n };\r\n })(i);\r\n }\r\n steps[0]();\r\n }\r\n\r\n function asyncLoop(enumerable: any[], func: (item, next) => void, callback: () => void): void {\r\n let steps = [],\r\n i = 0,\r\n len = enumerable.length;\r\n\r\n for (; i < len - 1; i++) {\r\n (function (i) {\r\n steps[i] = (next) => {\r\n func(enumerable[i], next);\r\n };\r\n } (i));\r\n }\r\n\r\n steps[len - 1] = (next) => {\r\n func(enumerable[len - 1], callback);\r\n };\r\n\r\n asyncSteps.apply(null, steps);\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n export function createJQueryPromiseFactory(): IPromiseFactory {\r\n return new JQueryPromiseFactory();\r\n }\r\n\r\n /**\r\n * jQuery-based implementation of IPromiseFactory.\r\n * This is useful for cases when Angular is not present, or when immediate promise resolving (not tied to Angular digest cycle) is desired.\r\n */\r\n class JQueryPromiseFactory implements IPromiseFactory {\r\n public defer<TSuccess, TError>(): IDeferred2<TSuccess, TError> {\r\n return new JQueryDeferredWrapper($.Deferred());\r\n }\r\n\r\n public reject<TError>(reason?: TError): IPromise2<any, TError> {\r\n let deferred = this.defer();\r\n deferred.reject(reason);\r\n return deferred.promise;\r\n }\r\n\r\n public resolve<TSuccess>(value: TSuccess): IPromise2<TSuccess, any> {\r\n let deferred = this.defer();\r\n deferred.resolve(value);\r\n return deferred.promise;\r\n }\r\n\r\n public all(promises: IPromise2<any, any>[]): IPromise<any[]>;\r\n\r\n public all(promises: any): IPromise<any[]> {\r\n let unwrappedPromises = jQuery.map(promises, (value) => {\r\n return value && value.promise ? value.promise : value;\r\n });\r\n\r\n return new JQueryPromiseWrapper($.when.apply($, unwrappedPromises));\r\n }\r\n\r\n public when<T>(value: T | IPromise<T>): IPromise<T>;\r\n\r\n public when<T>(value: any): IPromise<T> {\r\n let unwrappedPromise = value && value.promise ? value.promise : value;\r\n return new JQueryPromiseWrapper($.when(unwrappedPromise));\r\n }\r\n }\r\n\r\n /** \r\n * Implements IDeferred via a wrapped a jQuery Deferred.\r\n */\r\n class JQueryDeferredWrapper<TSuccess, TError> implements IDeferred2<TSuccess, TError> {\r\n public promise: IPromise2<TSuccess, TError>;\r\n private deferred: JQueryDeferred<any>;\r\n\r\n constructor(deferred: JQueryDeferred<any>) {\r\n debug.assertValue(deferred, 'deferred');\r\n\r\n this.deferred = deferred;\r\n this.promise = new JQueryPromiseWrapper(deferred.promise());\r\n }\r\n\r\n public resolve(value: TSuccess | IPromise<any>): void {\r\n this.deferred.resolve(value);\r\n }\r\n\r\n public reject(reason?: TError): void {\r\n this.deferred.reject(reason);\r\n }\r\n }\r\n\r\n /** \r\n * Implements IDeferred via a wrapped a jQuery Promise.\r\n */\r\n class JQueryPromiseWrapper<TSuccess, TError> implements IPromise2<TSuccess, TError> {\r\n private promise: JQueryPromise<any>;\r\n\r\n constructor(promise: JQueryPromise<any>) {\r\n debug.assertValue(promise, 'promise');\r\n\r\n this.promise = promise;\r\n }\r\n\r\n public then(a: (arg: any) => any, b: (arg: any) => any): IPromise2<any, any> {\r\n return new JQueryPromiseWrapper(\r\n this.promise.then(\r\n JQueryPromiseWrapper.wrapCallback(a),\r\n JQueryPromiseWrapper.wrapCallback(b)));\r\n }\r\n\r\n public catch(callback): IPromise2<any, any> {\r\n return this.then(null, callback);\r\n }\r\n\r\n public finally(callback): IPromise2<any, any> {\r\n this.promise.always(\r\n JQueryPromiseWrapper.wrapCallback(callback));\r\n return this;\r\n }\r\n\r\n /** \r\n * Wraps a callback, which may return a IPromise. \r\n */\r\n private static wrapCallback(callback: (arg: any) => any): (arg: any) => any {\r\n if (callback)\r\n return arg => {\r\n let value = callback(arg);\r\n\r\n // If the callback returns a Promise, unwrap that to allow jQuery to chain.\r\n if (value instanceof JQueryPromiseWrapper)\r\n return (<JQueryPromiseWrapper<any, any>>value).promise;\r\n\r\n return value;\r\n };\r\n\r\n return callback;\r\n }\r\n }\r\n}\r\n ","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n\r\n export interface IStorageService {\r\n getData(key: string): any;\r\n setData(key: string, data: any): void;\r\n }\r\n\r\n class LocalStorageService implements IStorageService {\r\n public getData(key: string): any {\r\n try {\r\n if (localStorage) {\r\n let value = localStorage[key];\r\n if (value) {\r\n return JSON.parse(value);\r\n }\r\n }\r\n }\r\n catch (exception) {}\r\n\r\n return null;\r\n }\r\n\r\n public setData(key: string, data: any) {\r\n try {\r\n if (localStorage) {\r\n localStorage[key] = JSON.stringify(data);\r\n }\r\n }\r\n catch (e) {}\r\n }\r\n }\r\n\r\n export class EphemeralStorageService implements IStorageService {\r\n private cache: { [key: string]: any } = {};\r\n private clearCacheTimerId: number;\r\n private clearCacheInterval: number;\r\n public static defaultClearCacheInterval: number = (1000 * 60 * 60 * 24); // 1 day\r\n\r\n constructor(clearCacheInterval?: number) {\r\n this.clearCacheInterval = (clearCacheInterval != null)\r\n ? clearCacheInterval\r\n : EphemeralStorageService.defaultClearCacheInterval;\r\n\r\n this.clearCache();\r\n }\r\n\r\n public getData(key: string): any {\r\n return this.cache[key];\r\n }\r\n\r\n public setData(key: string, data: any) {\r\n this.cache[key] = data;\r\n\r\n if (this.clearCacheTimerId == null) {\r\n this.clearCacheTimerId = setTimeout(() => this.clearCache(), this.clearCacheInterval);\r\n }\r\n }\r\n\r\n private clearCache(): void {\r\n this.cache = {};\r\n this.clearCacheTimerId = undefined;\r\n }\r\n }\r\n\r\n export var localStorageService: IStorageService = new LocalStorageService();\r\n export const ephemeralStorageService: IStorageService = new EphemeralStorageService();\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n export module WordBreaker {\r\n import TextProperties = powerbi.TextProperties;\r\n import ITextAsSVGMeasurer = powerbi.ITextAsSVGMeasurer;\r\n import ITextTruncator = powerbi.ITextTruncator;\r\n \r\n export interface WordBreakerResult {\r\n start: number;\r\n end: number;\r\n }\r\n\r\n const SPACE = ' ';\r\n const BREAKERS_REGEX = /[\\s\\n]+/g;\r\n\r\n function search(index: number, content: string, backward: boolean): number {\r\n if (backward) {\r\n for (let i = index - 1; i > -1; i--) {\r\n if (hasBreakers(content[i]))\r\n return i + 1;\r\n }\r\n } else {\r\n for (let i = index, ilen = content.length; i < ilen; i++) {\r\n if (hasBreakers(content[i]))\r\n return i;\r\n }\r\n }\r\n\r\n return backward ? 0 : content.length;\r\n }\r\n\r\n /**\r\n * Find the word nearest the cursor specified within content\r\n * @param index - point within content to search forward/backward from\r\n * @param content - string to search\r\n */\r\n export function find(index: number, content: string): WordBreakerResult {\r\n debug.assert(index >= 0 && index <= content.length, 'index within content string bounds');\r\n\r\n let result = { start: 0, end: 0 };\r\n if (content.length === 0)\r\n return result;\r\n\r\n result.start = search(index, content, true);\r\n result.end = search(index, content, false);\r\n return result;\r\n }\r\n\r\n /**\r\n * Test for presence of breakers within content\r\n * @param content - string to test\r\n */\r\n export function hasBreakers(content: string): boolean {\r\n BREAKERS_REGEX.lastIndex = 0;\r\n return BREAKERS_REGEX.test(content);\r\n }\r\n\r\n /**\r\n * Count the number of pieces when broken by BREAKERS_REGEX\r\n * ~2.7x faster than WordBreaker.split(content).length\r\n * @param content - string to break and count\r\n */\r\n export function wordCount(content: string): number {\r\n let count = 1;\r\n BREAKERS_REGEX.lastIndex = 0;\r\n BREAKERS_REGEX.exec(content);\r\n while (BREAKERS_REGEX.lastIndex !== 0) {\r\n count++;\r\n BREAKERS_REGEX.exec(content);\r\n }\r\n\r\n return count;\r\n }\r\n\r\n export function getMaxWordWidth(content: string, textWidthMeasurer: ITextAsSVGMeasurer, properties: TextProperties): number {\r\n let words = split(content);\r\n let maxWidth = 0;\r\n for (let w of words) {\r\n properties.text = w;\r\n maxWidth = Math.max(maxWidth, textWidthMeasurer(properties));\r\n }\r\n return maxWidth;\r\n }\r\n\r\n function split(content: string): string[] {\r\n return content.split(BREAKERS_REGEX);\r\n }\r\n\r\n function getWidth(content: string, properties: TextProperties, textWidthMeasurer: ITextAsSVGMeasurer): number {\r\n properties.text = content;\r\n return textWidthMeasurer(properties);\r\n }\r\n\r\n function truncate(content: string, properties: TextProperties, truncator: ITextTruncator, maxWidth: number): string {\r\n properties.text = content;\r\n return truncator(properties, maxWidth);\r\n }\r\n\r\n /**\r\n * Split content by breakers (words) and greedy fit as many words\r\n * into each index in the result based on max width and number of lines\r\n * e.g. Each index in result corresponds to a line of content\r\n * when used by AxisHelper.LabelLayoutStrategy.wordBreak\r\n * @param content - string to split\r\n * @param properties - text properties to be used by @param:textWidthMeasurer\r\n * @param textWidthMeasurer - function to calculate width of given text content\r\n * @param maxWidth - maximum allowed width of text content in each result\r\n * @param maxNumLines - maximum number of results we will allow, valid values must be greater than 0\r\n * @param truncator - (optional) if specified, used as a function to truncate content to a given width\r\n */\r\n export function splitByWidth(\r\n content: string,\r\n properties: TextProperties,\r\n textWidthMeasurer: ITextAsSVGMeasurer,\r\n maxWidth: number,\r\n maxNumLines: number,\r\n truncator?: ITextTruncator): string[] {\r\n // Default truncator returns string as-is\r\n truncator = truncator ? truncator : (properties: TextProperties, maxWidth: number) => properties.text;\r\n\r\n let result: string[] = [];\r\n let words = split(content);\r\n\r\n let usedWidth = 0;\r\n let wordsInLine: string[] = [];\r\n\r\n for (let word of words) {\r\n // Last line? Just add whatever is left\r\n if ((maxNumLines > 0) && (result.length >= maxNumLines - 1)) {\r\n wordsInLine.push(word);\r\n continue;\r\n }\r\n\r\n // Determine width if we add this word\r\n // Account for SPACE we will add when joining...\r\n let wordWidth = wordsInLine.length === 0\r\n ? getWidth(word, properties, textWidthMeasurer)\r\n : getWidth(SPACE + word, properties, textWidthMeasurer);\r\n\r\n // If width would exceed max width,\r\n // then push used words and start new split result\r\n if (usedWidth + wordWidth > maxWidth) {\r\n // Word alone exceeds max width, just add it.\r\n if (wordsInLine.length === 0) {\r\n result.push(truncate(word, properties, truncator, maxWidth));\r\n\r\n usedWidth = 0;\r\n wordsInLine = [];\r\n continue;\r\n }\r\n \r\n result.push(truncate(wordsInLine.join(SPACE), properties, truncator, maxWidth));\r\n\r\n usedWidth = 0;\r\n wordsInLine = [];\r\n }\r\n\r\n // ...otherwise, add word and continue\r\n wordsInLine.push(word);\r\n usedWidth += wordWidth;\r\n }\r\n\r\n // Push remaining words onto result\r\n result.push(truncate(wordsInLine.join(SPACE), properties, truncator, maxWidth));\r\n\r\n return result;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi {\r\n export interface ITextMeasurer {\r\n (textElement: SVGTextElement): number;\r\n }\r\n\r\n export interface ITextAsSVGMeasurer {\r\n (textProperties: TextProperties): number;\r\n }\r\n\r\n export interface ITextTruncator {\r\n (properties: TextProperties, maxWidth: number): string;\r\n }\r\n\r\n export interface TextProperties {\r\n text?: string;\r\n fontFamily: string;\r\n fontSize: string;\r\n fontWeight?: string;\r\n fontStyle?: string;\r\n fontVariant?: string;\r\n whiteSpace?: string;\r\n }\r\n\r\n interface CanvasContext {\r\n font: string;\r\n measureText(text: string): { width: number };\r\n }\r\n\r\n interface CanvasElement extends HTMLElement {\r\n getContext(name: string);\r\n }\r\n\r\n export module TextMeasurementService {\r\n const ellipsis = '…';\r\n const OverflowingText = jsCommon.CssConstants.createClassAndSelector('overflowingText');\r\n\r\n let spanElement: JQuery;\r\n let svgTextElement: D3.Selection;\r\n let canvasCtx: CanvasContext;\r\n let fallbackFontFamily: string;\r\n\r\n /**\r\n * Idempotent function for adding the elements to the DOM. \r\n */\r\n function ensureDOM(): void {\r\n if (spanElement)\r\n return;\r\n\r\n spanElement = $('<span/>');\r\n $('body').append(spanElement);\r\n //The style hides the svg element from the canvas, preventing canvas from scrolling down to show svg black square.\r\n svgTextElement = d3.select($('body').get(0))\r\n .append('svg')\r\n .style({\r\n 'height': '0px',\r\n 'width': '0px',\r\n 'position': 'absolute'\r\n })\r\n .append('text');\r\n canvasCtx = (<CanvasElement>$('<canvas/>').get(0)).getContext(\"2d\");\r\n fallbackFontFamily = window.getComputedStyle(svgTextElement.node()).fontFamily;\r\n }\r\n\r\n /**\r\n * Removes spanElement from DOM.\r\n */\r\n export function removeSpanElement() {\r\n if (spanElement && spanElement.remove) {\r\n spanElement.remove();\r\n }\r\n\r\n spanElement = null;\r\n }\r\n\r\n /**\r\n * This method measures the width of the text with the given SVG text properties.\r\n * @param textProperties The text properties to use for text measurement.\r\n */\r\n export function measureSvgTextWidth(textProperties: TextProperties): number {\r\n debug.assertValue(textProperties, 'textProperties');\r\n debug.assert(_.isEmpty(textProperties.fontSize) || textProperties.fontSize.indexOf(\"px\") !== -1, \"TextProperties' text size should be in px.\");\r\n\r\n ensureDOM();\r\n\r\n canvasCtx.font =\r\n (textProperties.fontStyle || \"\") + \" \" +\r\n (textProperties.fontVariant || \"\") + \" \" +\r\n (textProperties.fontWeight || \"\") + \" \" +\r\n textProperties.fontSize + \" \" +\r\n (textProperties.fontFamily || fallbackFontFamily);\r\n\r\n return canvasCtx.measureText(textProperties.text).width;\r\n }\r\n\r\n /**\r\n * This method return the rect with the given SVG text properties.\r\n * @param textProperties The text properties to use for text measurement.\r\n */\r\n export function measureSvgTextRect(textProperties: TextProperties): SVGRect {\r\n debug.assertValue(textProperties, 'textProperties');\r\n debug.assert(_.isEmpty(textProperties.fontSize) || textProperties.fontSize.indexOf(\"px\") !== -1, \"TextProperties' text size should be in px.\");\r\n\r\n ensureDOM();\r\n\r\n svgTextElement.style(null);\r\n svgTextElement\r\n .text(textProperties.text)\r\n .attr({\r\n 'visibility': 'hidden',\r\n 'font-family': textProperties.fontFamily || fallbackFontFamily,\r\n 'font-variant': textProperties.fontVariant,\r\n 'font-size': textProperties.fontSize,\r\n 'font-weight': textProperties.fontWeight,\r\n 'font-style': textProperties.fontStyle,\r\n 'white-space': textProperties.whiteSpace || 'nowrap'\r\n });\r\n\r\n // We're expecting the browser to give a synchronous measurement here\r\n // We're using SVGTextElement because it works across all browsers \r\n return svgTextElement.node<SVGTextElement>().getBBox();\r\n }\r\n\r\n /**\r\n * This method measures the height of the text with the given SVG text properties.\r\n * @param textProperties The text properties to use for text measurement.\r\n */\r\n export function measureSvgTextHeight(textProperties: TextProperties): number {\r\n return measureSvgTextRect(textProperties).height;\r\n }\r\n\r\n /**\r\n * This method returns the text Rect with the given SVG text properties.\r\n * Does NOT return text width; obliterates text value\r\n * @param {TextProperties} textProperties - The text properties to use for text measurement\r\n */\r\n function estimateSvgTextRect(textProperties: TextProperties): SVGRect {\r\n debug.assertValue(textProperties, 'textProperties');\r\n debug.assert(_.isEmpty(textProperties.fontSize) || textProperties.fontSize.indexOf(\"px\") !== -1, \"TextProperties' text size should be in px.\");\r\n\r\n let propertiesKey = textProperties.fontFamily + textProperties.fontSize;\r\n let rect: SVGRect = ephemeralStorageService.getData(propertiesKey);\r\n\r\n if (rect == null) {\r\n // To estimate we check the height of a particular character, once it is cached, subsequent\r\n // calls should always get the height from the cache (regardless of the text).\r\n let estimatedTextProperties: TextProperties = {\r\n fontFamily: textProperties.fontFamily,\r\n fontSize: textProperties.fontSize,\r\n text: \"M\",\r\n };\r\n\r\n rect = TextMeasurementService.measureSvgTextRect(estimatedTextProperties);\r\n\r\n // NOTE: In some cases (disconnected/hidden DOM) we may provide incorrect measurement results (zero sized bounding-box), so\r\n // we only store values in the cache if we are confident they are correct.\r\n if (rect.height > 0)\r\n ephemeralStorageService.setData(propertiesKey, rect);\r\n }\r\n\r\n return rect;\r\n }\r\n\r\n /**\r\n * This method returns the text Rect with the given SVG text properties.\r\n * @param {TextProperties} textProperties - The text properties to use for text measurement\r\n */\r\n export function estimateSvgTextBaselineDelta(textProperties: TextProperties): number {\r\n let rect = estimateSvgTextRect(textProperties);\r\n return rect.y + rect.height;\r\n }\r\n\r\n /**\r\n * This method estimates the height of the text with the given SVG text properties.\r\n * @param {TextProperties} textProperties - The text properties to use for text measurement\r\n */\r\n export function estimateSvgTextHeight(textProperties: TextProperties, tightFightForNumeric: boolean = false): number {\r\n let height = estimateSvgTextRect(textProperties).height;\r\n\r\n //TODO: replace it with new baseline calculation\r\n if (tightFightForNumeric)\r\n height *= 0.7;\r\n\r\n return height;\r\n }\r\n\r\n /**\r\n * This method measures the width of the svgElement.\r\n * @param svgElement The SVGTextElement to be measured.\r\n */\r\n export function measureSvgTextElementWidth(svgElement: SVGTextElement): number {\r\n debug.assertValue(svgElement, 'svgElement');\r\n return measureSvgTextWidth(getSvgMeasurementProperties(svgElement));\r\n }\r\n\r\n /**\r\n * This method fetches the text measurement properties of the given DOM element.\r\n * @param element The selector for the DOM Element.\r\n */\r\n export function getMeasurementProperties(element: JQuery): TextProperties {\r\n debug.assertValue(element, 'element');\r\n\r\n return {\r\n text: element.val() || element.text(),\r\n fontFamily: element.css('font-family'),\r\n fontSize: element.css('font-size'),\r\n fontWeight: element.css('font-weight'),\r\n fontStyle: element.css('font-style'),\r\n fontVariant: element.css('font-variant'),\r\n whiteSpace: element.css('white-space')\r\n };\r\n }\r\n\r\n /**\r\n * This method fetches the text measurement properties of the given SVG text element.\r\n * @param svgElement The SVGTextElement to be measured.\r\n */\r\n export function getSvgMeasurementProperties(svgElement: SVGTextElement): TextProperties {\r\n debug.assertValue(svgElement, 'svgElement');\r\n\r\n let style = window.getComputedStyle(svgElement, null);\r\n return {\r\n text: svgElement.textContent,\r\n fontFamily: style.fontFamily,\r\n fontSize: style.fontSize,\r\n fontWeight: style.fontWeight,\r\n fontStyle: style.fontStyle,\r\n fontVariant: style.fontVariant,\r\n whiteSpace: style.whiteSpace\r\n };\r\n }\r\n\r\n /**\r\n * This method returns the width of a div element.\r\n * @param element The div element.\r\n */\r\n export function getDivElementWidth(element: JQuery): string {\r\n debug.assert(element.is('div'), 'Given element is not a div type. Cannot get width');\r\n return getComputedStyle(element[0]).width;\r\n }\r\n\r\n /**\r\n * Compares labels text size to the available size and renders ellipses when the available size is smaller.\r\n * @param textProperties The text properties (including text content) to use for text measurement.\r\n * @param maxWidth The maximum width available for rendering the text.\r\n */\r\n export function getTailoredTextOrDefault(textProperties: TextProperties, maxWidth: number): string {\r\n debug.assertValue(textProperties, 'properties');\r\n debug.assertValue(textProperties.text, 'properties.text');\r\n debug.assert(_.isEmpty(textProperties.fontSize) || textProperties.fontSize.indexOf(\"px\") !== -1, \"TextProperties' text size should be in px.\");\r\n\r\n ensureDOM();\r\n\r\n let strLength = textProperties.text.length;\r\n\r\n if (strLength === 0)\r\n return textProperties.text;\r\n\r\n let width = measureSvgTextWidth(textProperties);\r\n\r\n if (width < maxWidth)\r\n return textProperties.text;\r\n\r\n // Create a copy of the textProperties so we don't modify the one that's passed in.\r\n let copiedTextProperties = Prototype.inherit(textProperties);\r\n\r\n // Take the properties and apply them to svgTextElement\r\n // Then, do the binary search to figure out the substring we want\r\n // Set the substring on textElement argument\r\n let text = copiedTextProperties.text = ellipsis + copiedTextProperties.text;\r\n\r\n let min = 1;\r\n let max = text.length;\r\n let i = ellipsis.length;\r\n\r\n while (min <= max) {\r\n // num | 0 prefered to Math.floor(num) for performance benefits\r\n i = (min + max) / 2 | 0;\r\n\r\n copiedTextProperties.text = text.substr(0, i);\r\n width = measureSvgTextWidth(copiedTextProperties);\r\n\r\n if (maxWidth > width)\r\n min = i + 1;\r\n else if (maxWidth < width)\r\n max = i - 1;\r\n else\r\n break;\r\n }\r\n\r\n // Since the search algorithm almost never finds an exact match,\r\n // it will pick one of the closest two, which could result in a\r\n // value bigger with than 'maxWidth' thus we need to go back by \r\n // one to guarantee a smaller width than 'maxWidth'.\r\n copiedTextProperties.text = text.substr(0, i);\r\n width = measureSvgTextWidth(copiedTextProperties);\r\n if (width > maxWidth)\r\n i--;\r\n\r\n return text.substr(ellipsis.length, i - ellipsis.length) + ellipsis;\r\n }\r\n\r\n /**\r\n * Compares labels text size to the available size and renders ellipses when the available size is smaller.\r\n * @param textElement The SVGTextElement containing the text to render.\r\n * @param maxWidth The maximum width available for rendering the text.\r\n */\r\n export function svgEllipsis(textElement: SVGTextElement, maxWidth: number): void {\r\n debug.assertValue(textElement, 'textElement');\r\n\r\n let properties = getSvgMeasurementProperties(textElement);\r\n let originalText = properties.text;\r\n let tailoredText = getTailoredTextOrDefault(properties, maxWidth);\r\n\r\n if (originalText !== tailoredText) {\r\n textElement.textContent = tailoredText;\r\n }\r\n }\r\n\r\n /**\r\n * Word break textContent of <text> SVG element into <tspan>s\r\n * Each tspan will be the height of a single line of text\r\n * @param textElement - the SVGTextElement containing the text to wrap\r\n * @param maxWidth - the maximum width available\r\n * @param maxHeight - the maximum height available (defaults to single line)\r\n * @param linePadding - (optional) padding to add to line height\r\n */\r\n export function wordBreak(textElement: SVGTextElement, maxWidth: number, maxHeight: number, linePadding: number = 0): void {\r\n debug.assertValue(textElement, 'textElement');\r\n\r\n let properties = getSvgMeasurementProperties(textElement);\r\n let height = estimateSvgTextHeight(properties) + linePadding;\r\n let maxNumLines = Math.max(1, Math.floor(maxHeight / height));\r\n let node = d3.select(textElement);\r\n\r\n // Save y of parent textElement to apply as first tspan dy\r\n let firstDY = node.attr('y');\r\n\r\n // Store and clear text content\r\n let labelText = textElement.textContent;\r\n textElement.textContent = null;\r\n\r\n // Append a tspan for each word broken section\r\n let words = jsCommon.WordBreaker.splitByWidth(labelText, properties, measureSvgTextWidth, maxWidth, maxNumLines);\r\n for (let i = 0, ilen = words.length; i < ilen; i++) {\r\n properties.text = words[i];\r\n node\r\n .append('tspan')\r\n .attr({\r\n 'x': 0,\r\n 'dy': i === 0 ? firstDY : height,\r\n })\r\n // Truncate\r\n .text(getTailoredTextOrDefault(properties, maxWidth));\r\n }\r\n }\r\n\r\n /**\r\n * Word break textContent of span element into <span>s\r\n * Each span will be the height of a single line of text\r\n * @param textElement - the element containing the text to wrap\r\n * @param maxWidth - the maximum width available\r\n * @param maxHeight - the maximum height available (defaults to single line)\r\n * @param linePadding - (optional) padding to add to line height\r\n */\r\n export function wordBreakOverflowingText(textElement: any, maxWidth: number, maxHeight: number, linePadding: number = 0): void {\r\n debug.assertValue(textElement, 'textElement');\r\n\r\n let properties = getSvgMeasurementProperties(<SVGTextElement>textElement);\r\n let height = estimateSvgTextHeight(properties) + linePadding;\r\n let maxNumLines = Math.max(1, Math.floor(maxHeight / height));\r\n\r\n // Store and clear text content\r\n let labelText = textElement.textContent;\r\n textElement.textContent = null;\r\n\r\n // Append a span for each word broken section\r\n let words = jsCommon.WordBreaker.splitByWidth(labelText, properties, measureSvgTextWidth, maxWidth, maxNumLines);\r\n\r\n // splitByWidth() occasionally returns unnecessary empty strings, so get rid of them.\r\n // TODO: Fix splitByWidth.\r\n words = _.compact(words);\r\n\r\n let spanItem = d3.select(textElement)\r\n .selectAll(OverflowingText.selector)\r\n .data(words, (d: String) => $.inArray(d, words));\r\n\r\n spanItem\r\n .enter()\r\n .append(\"span\")\r\n .classed(OverflowingText.class, true)\r\n .text((d: string) => d)\r\n .style(\"width\", jsCommon.PixelConverter.toString(maxWidth));\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n import DOMConstants = jsCommon.DOMConstants;\r\n\r\n export module KeyUtils {\r\n export function isArrowKey(keyCode: number): boolean {\r\n return keyCode === DOMConstants.downArrowKeyCode\r\n || keyCode === DOMConstants.upArrowKeyCode\r\n || keyCode === DOMConstants.leftArrowKeyCode\r\n || keyCode === DOMConstants.rightArrowKeyCode;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n /**\r\n * Responsible for throttling input function.\r\n */\r\n export class ThrottleUtility {\r\n private fn: () => void;\r\n private timerFactory: ITimerPromiseFactory;\r\n private delay: number;\r\n\r\n constructor(delay?: number) {\r\n this.timerFactory = TimerPromiseFactory.instance;\r\n this.delay = 0;\r\n if (delay) {\r\n this.delay = delay;\r\n }\r\n }\r\n\r\n public run(fn: () => void): void {\r\n if (!this.fn) {\r\n this.fn = fn;\r\n this.timerFactory.create(this.delay).done(() => this.timerComplete(this.fn));\r\n } else {\r\n this.fn = fn;\r\n }\r\n }\r\n\r\n /**\r\n * Note: Public for testing purpose.\r\n */\r\n public timerComplete(fn: () => void) {\r\n // run fn\r\n fn();\r\n \r\n // clear fn\r\n this.fn = null;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n\r\n export interface ITimerPromiseFactory {\r\n /** \r\n * Creates a promise that will be resolved after the specified delayInMs.\r\n * @return Promise.\r\n */\r\n create(delayInMs: number): IRejectablePromise;\r\n }\r\n\r\n /** \r\n * Responsible for creating timer promises.\r\n */\r\n export class TimerPromiseFactory implements ITimerPromiseFactory {\r\n public static instance = new TimerPromiseFactory();\r\n\r\n /**\r\n * {@inheritDoc}\r\n */\r\n public create(delayInMs: number): IRejectablePromise {\r\n debug.assertValue(delayInMs, 'delayInMs');\r\n debug.assert(delayInMs >= 0, 'delayInMs must be a positive value.');\r\n\r\n let deferred = $.Deferred<void>();\r\n\r\n window.setTimeout(\r\n () => deferred.resolve(),\r\n delayInMs);\r\n\r\n return deferred;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\n/**\r\n * Defined in host.\r\n */\r\ndeclare var clusterUri: string;\r\n\r\nmodule jsCommon {\r\n\r\n /**\r\n * Http Status code we are interested.\r\n */\r\n export enum HttpStatusCode {\r\n OK = 200,\r\n BadRequest = 400,\r\n Unauthorized = 401,\r\n Forbidden = 403,\r\n RequestEntityTooLarge = 413,\r\n }\r\n\r\n /**\r\n * Other HTTP Constants.\r\n */\r\n export module HttpConstants {\r\n export const ApplicationOctetStream = 'application/octet-stream';\r\n export const MultiPartFormData = 'multipart/form-data';\r\n }\r\n\r\n /**\r\n * Extensions to String class.\r\n */\r\n export module StringExtensions {\r\n const HtmlTagRegex = new RegExp('[<>]', 'g');\r\n\r\n export function format(...args: string[]) {\r\n let s = args[0];\r\n\r\n if (isNullOrUndefinedOrWhiteSpaceString(s))\r\n return s;\r\n\r\n for (let i = 0; i < args.length - 1; i++) {\r\n let reg = new RegExp(\"\\\\{\" + i + \"\\\\}\", \"gm\");\r\n s = s.replace(reg, args[i + 1]);\r\n }\r\n return s;\r\n }\r\n\r\n /**\r\n * Compares two strings for equality, ignoring case.\r\n */\r\n export function equalIgnoreCase(a: string, b: string): boolean {\r\n return StringExtensions.normalizeCase(a) === StringExtensions.normalizeCase(b);\r\n }\r\n\r\n export function startsWithIgnoreCase(a: string, b: string): boolean {\r\n let normalizedSearchString = StringExtensions.normalizeCase(b);\r\n return StringExtensions.normalizeCase(a).indexOf(normalizedSearchString) === 0;\r\n }\r\n\r\n export function startsWith(a: string, b: string): boolean {\r\n return a.indexOf(b) === 0;\r\n }\r\n\r\n /** Determines whether a string contains a specified substring (while ignoring case). */\r\n export function containsIgnoreCase(source: string, substring: string): boolean {\r\n if (source == null)\r\n return false;\r\n\r\n return source.toLowerCase().indexOf(substring.toLowerCase().toString()) !== -1;\r\n }\r\n\r\n /** \r\n * Normalizes case for a string.\r\n * Used by equalIgnoreCase method. \r\n */\r\n export function normalizeCase(value: string): string {\r\n Utility.throwIfNullOrUndefined(value, StringExtensions, 'normalizeCase', 'value');\r\n\r\n return value.toUpperCase();\r\n }\r\n\r\n /** \r\n * Is string null or empty or undefined?\r\n * @return True if the value is null or undefined or empty string,\r\n * otherwise false.\r\n */\r\n export function isNullOrEmpty(value: string): boolean {\r\n return (value == null) || (value.length === 0);\r\n }\r\n\r\n /** \r\n * Returns true if the string is null, undefined, empty, or only includes white spaces.\r\n * @return True if the str is null, undefined, empty, or only includes white spaces,\r\n * otherwise false.\r\n */\r\n export function isNullOrUndefinedOrWhiteSpaceString(str: string): boolean {\r\n return StringExtensions.isNullOrEmpty(str) || StringExtensions.isNullOrEmpty(str.trim());\r\n }\r\n\r\n /**\r\n * Returns a value indicating whether the str contains any whitespace.\r\n */\r\n export function containsWhitespace(str: string): boolean {\r\n Utility.throwIfNullOrUndefined(str, this, 'containsWhitespace', 'str');\r\n\r\n let expr: RegExp = /\\s/;\r\n return expr.test(str);\r\n }\r\n\r\n /**\r\n * Returns a value indicating whether the str is a whitespace string.\r\n */\r\n export function isWhitespace(str: string): boolean {\r\n Utility.throwIfNullOrUndefined(str, this, 'isWhitespace', 'str');\r\n\r\n return str.trim() === '';\r\n }\r\n\r\n /** \r\n * Returns the string with any trailing whitespace from str removed.\r\n */\r\n export function trimTrailingWhitespace(str: string): string {\r\n Utility.throwIfNullOrUndefined(str, this, 'trimTrailingWhitespace', 'str');\r\n return str.replace(/\\s+$/, '');\r\n }\r\n\r\n /**\r\n * Returns the string with any leading and trailing whitespace from str removed.\r\n */\r\n export function trimWhitespace(str: string): string {\r\n Utility.throwIfNullOrUndefined(str, this, 'trimWhitespace', 'str');\r\n return str.replace(/^\\s+/, '').replace(/\\s+$/, '');\r\n }\r\n\r\n /** \r\n * Returns length difference between the two provided strings.\r\n */\r\n export function getLengthDifference(left: string, right: string) {\r\n Utility.throwIfNullOrUndefined(left, this, 'getLengthDifference', 'left');\r\n Utility.throwIfNullOrUndefined(right, this, 'getLengthDifference', 'right');\r\n\r\n return Math.abs(left.length - right.length);\r\n }\r\n\r\n /**\r\n * Repeat char or string several times.\r\n * @param char The string to repeat.\r\n * @param count How many times to repeat the string.\r\n */\r\n export function repeat(char: string, count: number): string {\r\n let result = \"\";\r\n for (let i = 0; i < count; i++) {\r\n result += char;\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Replace all the occurrences of the textToFind in the text with the textToReplace.\r\n * @param text The original string.\r\n * @param textToFind Text to find in the original string.\r\n * @param textToReplace New text replacing the textToFind.\r\n */\r\n export function replaceAll(text: string, textToFind: string, textToReplace: string): string {\r\n if (!textToFind)\r\n return text;\r\n\r\n let pattern = escapeStringForRegex(textToFind);\r\n return text.replace(new RegExp(pattern, 'gi'), textToReplace);\r\n }\r\n\r\n export function ensureUniqueNames(names: string[]): string[] {\r\n debug.assertValue(names, 'names');\r\n\r\n let usedNames: { [name: string]: boolean } = {};\r\n\r\n // Make sure we are giving fair chance for all columns to stay with their original name\r\n // First we fill the used names map to contain all the original unique names from the list.\r\n for (let name of names) {\r\n usedNames[name] = false;\r\n }\r\n\r\n let uniqueNames: string[] = [];\r\n\r\n // Now we go over all names and find a unique name for each\r\n for (let name of names) {\r\n let uniqueName = name;\r\n\r\n // If the (original) column name is already taken lets try to find another name\r\n if (usedNames[uniqueName]) {\r\n let counter = 0;\r\n // Find a name that is not already in the map\r\n while (usedNames[uniqueName] !== undefined) {\r\n uniqueName = name + \".\" + (++counter);\r\n }\r\n }\r\n\r\n uniqueNames.push(uniqueName);\r\n usedNames[uniqueName] = true;\r\n }\r\n\r\n return uniqueNames;\r\n }\r\n\r\n /**\r\n * Returns a name that is not specified in the values.\r\n */\r\n export function findUniqueName(\r\n usedNames: { [name: string]: boolean },\r\n baseName: string): string {\r\n debug.assertValue(usedNames, 'usedNames');\r\n debug.assertValue(baseName, 'baseName');\r\n\r\n // Find a unique name\r\n let i = 0,\r\n uniqueName: string = baseName;\r\n while (usedNames[uniqueName]) {\r\n uniqueName = baseName + (++i);\r\n }\r\n\r\n return uniqueName;\r\n }\r\n\r\n export function constructCommaSeparatedList(list: string[], resourceProvider: IStringResourceProvider, maxValue?: number): string {\r\n if (!list || list.length === 0)\r\n return '';\r\n\r\n if (maxValue === null || maxValue === undefined)\r\n maxValue = Number.MAX_VALUE;\r\n\r\n let length = Math.min(maxValue, list.length);\r\n\r\n let replacedList = [];\r\n // Only need to replace user entries of {0} and {1} since we build the list in pairs.\r\n for (let j = 0; j < 2; j++) {\r\n let targetValue = '{' + j + '}';\r\n let replaceValue = '_|_<' + j + '>_|_';\r\n for (let i = 0; i < length; i++) {\r\n if (list[i].indexOf(targetValue) > -1) {\r\n list[i] = list[i].replace(targetValue, replaceValue);\r\n replacedList.push({ targetValue: targetValue, replaceValue: replaceValue });\r\n }\r\n }\r\n }\r\n\r\n let commaSeparatedList: string = '';\r\n for (let i = 0; i < length; i++) {\r\n if (i === 0)\r\n commaSeparatedList = list[i];\r\n else\r\n commaSeparatedList = StringExtensions.format(resourceProvider.get('FilterRestatement_Comma'), commaSeparatedList, list[i]);\r\n }\r\n\r\n for (let i = 0; i < replacedList.length; i++) {\r\n commaSeparatedList = commaSeparatedList.replace(replacedList[i].replaceValue, replacedList[i].targetValue);\r\n }\r\n\r\n return commaSeparatedList;\r\n }\r\n\r\n export function escapeStringForRegex(s: string): string {\r\n return s.replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g, '\\\\$1');\r\n }\r\n\r\n /**\r\n * Remove file name reserved characters <>:\"/\\|?* from input string.\r\n */\r\n export function normalizeFileName(fileName: string): string { \r\n debug.assertValue(fileName, 'fileName'); \r\n return fileName.replace(/[\\<\\>\\:\"\\/\\\\\\|\\?*]/g, '');\r\n }\r\n\r\n /**\r\n * Similar to JSON.stringify, but strips away escape sequences so that the resulting\r\n * string is human-readable (and parsable by JSON formatting/validating tools).\r\n */\r\n export function stringifyAsPrettyJSON(object: any): string {\r\n //let specialCharacterRemover = (key: string, value: string) => value.replace(/[^\\w\\s]/gi, '');\r\n return JSON.stringify(object /*, specialCharacterRemover*/);\r\n }\r\n\r\n /**\r\n * Derive a CLS-compliant name from a specified string. If no allowed characters are present, return a fallback string instead.\r\n * TODO (6708134): this should have a fully Unicode-aware implementation\r\n */\r\n export function deriveClsCompliantName(input: string, fallback: string): string {\r\n debug.assertValue(input, 'input');\r\n\r\n let result = input.replace(/^[^A-Za-z]*/g, '').replace(/[ :\\.\\/\\\\\\-\\u00a0\\u1680\\u180e\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]/g, '_').replace(/[\\W]/g, '');\r\n\r\n return result.length > 0 ? result : fallback;\r\n }\r\n\r\n /** Performs cheap sanitization by stripping away HTML tag (<>) characters. */\r\n export function stripTagDelimiters(s: string): string {\r\n return s.replace(HtmlTagRegex, '');\r\n }\r\n }\r\n\r\n /**\r\n * Interface used for interacting with WCF typed objects.\r\n */\r\n export interface TypedObject {\r\n __type: string;\r\n }\r\n\r\n export interface TextMatch {\r\n start: number;\r\n end: number;\r\n text: string;\r\n }\r\n\r\n /** \r\n * The general utility class.\r\n */\r\n export class Utility {\r\n private static TypeNamespace = 'http://schemas.microsoft.com/sqlbi/2013/01/NLRuntimeService';\r\n\r\n public static JsonContentType = 'application/json';\r\n public static JpegContentType = 'image/jpeg';\r\n public static XJavascriptContentType = 'application/x-javascript';\r\n public static JsonDataType = 'json';\r\n public static BlobDataType = 'blob';\r\n public static HttpGetMethod = 'GET';\r\n public static HttpPostMethod = 'POST';\r\n public static HttpPutMethod = 'PUT';\r\n public static HttpDeleteMethod = 'DELETE';\r\n public static HttpContentTypeHeader = 'Content-Type';\r\n public static HttpAcceptHeader = 'Accept';\r\n public static Undefined = 'undefined';\r\n\r\n private static staticContentLocation: string = window.location.protocol + '//' + window.location.host;\r\n \r\n /**\r\n * Ensures the specified value is not null or undefined. Throws a relevent exception if it is.\r\n * @param value The value to check.\r\n * @param context The context from which the check originated.\r\n * @param methodName The name of the method that initiated the check.\r\n * @param parameterName The parameter name of the value to check.\r\n */\r\n public static throwIfNullOrUndefined(value, context, methodName, parameterName) {\r\n if (value === null) {\r\n Utility.throwException(Errors.argumentNull(Utility.getComponentName(context) + methodName + '.' + parameterName));\r\n }\r\n else if (typeof (value) === Utility.Undefined) {\r\n Utility.throwException(Errors.argumentUndefined(Utility.getComponentName(context) + methodName + '.' + parameterName));\r\n }\r\n }\r\n\r\n /**\r\n * Ensures the specified value is not null, undefined or empty. Throws a relevent exception if it is.\r\n * @param value The value to check.\r\n * @param context The context from which the check originated.\r\n * @param methodName The name of the method that initiated the check.\r\n * @param parameterName The parameter name of the value to check.\r\n */\r\n public static throwIfNullOrEmpty(value: any, context: any, methodName: string, parameterName: string) {\r\n Utility.throwIfNullOrUndefined(value, context, methodName, parameterName);\r\n if (!value.length) {\r\n Utility.throwException(Errors.argumentOutOfRange(Utility.getComponentName(context) + methodName + '.' + parameterName));\r\n }\r\n }\r\n\r\n /**\r\n * Ensures the specified string is not null, undefined or empty. Throws a relevent exception if it is.\r\n * @param value The value to check.\r\n * @param context The context from which the check originated.\r\n * @param methodName The name of the method that initiated the check.\r\n * @param parameterName The parameter name of the value to check.\r\n */\r\n public static throwIfNullOrEmptyString(value: string, context: any, methodName: string, parameterName: string) {\r\n Utility.throwIfNullOrUndefined(value, context, methodName, parameterName);\r\n if (value.length < 1) {\r\n Utility.throwException(Errors.argumentOutOfRange(Utility.getComponentName(context) + methodName + '.' + parameterName));\r\n }\r\n }\r\n\r\n /**\r\n * Ensures the specified value is not null, undefined, whitespace or empty. Throws a relevent exception if it is.\r\n * @param value The value to check.\r\n * @param context The context from which the check originated.\r\n * @param methodName The name of the method that initiated the check.\r\n * @param parameterName The parameter name of the value to check.\r\n */\r\n public static throwIfNullEmptyOrWhitespaceString(value: string, context: any, methodName: string, parameterName: string) {\r\n Utility.throwIfNullOrUndefined(value, context, methodName, parameterName);\r\n if (StringExtensions.isNullOrUndefinedOrWhiteSpaceString(value)) {\r\n Utility.throwException(Errors.argumentOutOfRange(Utility.getComponentName(context) + methodName + '.' + parameterName));\r\n }\r\n }\r\n\r\n /**\r\n * Ensures the specified condition is true. Throws relevant exception if it isn't.\r\n * @param condition The condition to check.\r\n * @param context The context from which the check originated.\r\n * @param methodName The name of the method that initiated the check.\r\n * @param parameterName The parameter name against which the condition is checked.\r\n */\r\n public static throwIfNotTrue(condition: boolean, context: any, methodName: string, parameterName: string) {\r\n if (!condition) {\r\n Utility.throwException(Errors.argument(parameterName, Utility.getComponentName(context) + methodName + '.' + parameterName));\r\n }\r\n }\r\n\r\n /**\r\n * Checks whether the provided value is a 'string'.\r\n * @param value The value to test.\r\n */\r\n public static isString(value: any): boolean {\r\n return ((typeof value) === 'string');\r\n }\r\n\r\n /**\r\n * Checks whether the provided value is a 'boolean'.\r\n * @param value The value to test.\r\n */\r\n public static isBoolean(value: any): boolean {\r\n return ((typeof value) === 'boolean');\r\n }\r\n\r\n /**\r\n * Checks whether the provided value is a 'number'.\r\n * @param value The value to test.\r\n */\r\n public static isNumber(value: any): boolean {\r\n return ((typeof value) === 'number');\r\n }\r\n\r\n /**\r\n * Checks whether the provided value is a Date instance.\r\n * @param value The value to test.\r\n */\r\n public static isDate(value: any): boolean {\r\n return Utility.isObject(value) && (value instanceof Date);\r\n }\r\n\r\n /**\r\n * Checks whether the provided value is an 'object'.\r\n * @param value The value to test.\r\n */\r\n public static isObject(value: any): boolean {\r\n return (value != null) && ((typeof value) === 'object');\r\n }\r\n\r\n /**\r\n * Checks whether the provided value is null or undefined.\r\n * @param value The value to test.\r\n */\r\n public static isNullOrUndefined(value: any): boolean {\r\n return (value === null) || (typeof (value) === Utility.Undefined);\r\n }\r\n\r\n /**\r\n * Combine a base url and a path.\r\n * @param baseUrl The base url.\r\n * @param path The path to add on to the base url.\r\n * @returns The combined url.\r\n */\r\n public static urlCombine(baseUrl: string, path: string) {\r\n Utility.throwIfNullOrUndefined(baseUrl, null, \"urlCombine\", \"baseUrl\");\r\n Utility.throwIfNullOrUndefined(path, null, \"urlCombine\", \"path\");\r\n\r\n // should any of the components be empty, fail gracefuly - this is important when using the test page\r\n if (StringExtensions.isNullOrUndefinedOrWhiteSpaceString(path)) {\r\n return baseUrl;\r\n }\r\n\r\n if (StringExtensions.isNullOrUndefinedOrWhiteSpaceString(baseUrl)) {\r\n return path;\r\n }\r\n\r\n let finalUrl = baseUrl;\r\n\r\n if (finalUrl.charAt(finalUrl.length - 1) === '/') {\r\n if (path.charAt(0) === '/')\r\n path = path.slice(1);\r\n } else {\r\n if (path.charAt(0) !== '/')\r\n path = '/' + path;\r\n }\r\n\r\n return finalUrl + path;\r\n }\r\n\r\n public static getAbsoluteUri(path: string): string {\r\n Utility.throwIfNullOrUndefined(path, null, \"getAbsoluteUri\", \"path\");\r\n\r\n let url = path;\r\n // Make absolute\r\n if (url && url.indexOf('http') === - 1) {\r\n url = Utility.urlCombine(clusterUri, url);\r\n }\r\n return url;\r\n }\r\n\r\n public static getStaticResourceUri(path: string) {\r\n Utility.throwIfNullOrUndefined(path, null, \"getStaticResourceUri\", \"path\");\r\n\r\n let url = path;\r\n // Make absolute\r\n if (url && url.indexOf('http') === - 1) {\r\n url = jsCommon.Utility.urlCombine(Utility.staticContentLocation, url);\r\n }\r\n return url;\r\n }\r\n\r\n public static getComponentName(context) {\r\n return !context ? '' : (typeof context).toString() + '.';\r\n }\r\n\r\n public static throwException(e) {\r\n Trace.error(\r\n StringExtensions.format(\"Throwing exception: {0}\", JSON.stringify(e)), \r\n /*includeStackTrace*/ e.stack != null ? false : true);\r\n throw e;\r\n }\r\n\r\n public static createClassSelector(className: string): string {\r\n Utility.throwIfNullOrEmptyString(className, null, 'CreateClassSelector', 'className');\r\n return '.' + className;\r\n }\r\n\r\n public static createIdSelector(id: string): string {\r\n Utility.throwIfNullOrEmptyString(id, null, 'CreateIdSelector', 'id');\r\n return '#' + id;\r\n }\r\n\r\n /**\r\n * Creates a client-side Guid string.\r\n * @returns A string representation of a Guid.\r\n */\r\n public static generateGuid(): string {\r\n let guid = \"\",\r\n idx = 0;\r\n\r\n for (idx = 0; idx < 32; idx += 1) {\r\n let guidDigitsItem = Math.random() * 16 | 0;\r\n switch (idx) {\r\n case 8:\r\n case 12:\r\n case 16:\r\n case 20:\r\n guid += \"-\";\r\n break;\r\n }\r\n guid += guidDigitsItem.toString(16);\r\n }\r\n\r\n return guid;\r\n }\r\n\r\n /**\r\n * Try extract a cookie from {@link document.cookie} identified by key.\r\n */\r\n public static getCookieValue(key: string): string {\r\n // the cookie is of the format <key1=value1>; <key2=value2>. Split by ';', then by '=' \r\n // to search for the key\r\n let keyValuePairs = document.cookie.split(';');\r\n for (let i = 0; i < keyValuePairs.length; i++) {\r\n let keyValue = keyValuePairs[i];\r\n let split = keyValue.split('=');\r\n if (split.length > 0 && split[0].trim() === key) {\r\n return keyValue.substr(keyValue.indexOf('=') + 1);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Extracts the protocol://hostname section of a url.\r\n * @param url The URL from which to extract the section.\r\n * @returns The protocol://hostname portion of the given URL.\r\n */\r\n public static getDomainForUrl(url: string): string {\r\n let hrefObject = Utility.getHrefObjectFromUrl(url);\r\n return hrefObject.prop('protocol') + '//' + hrefObject.prop('hostname');\r\n }\r\n\r\n /**\r\n * Extracts the hostname and absolute path sections of a url.\r\n * @param url The URL from which to extract the section.\r\n * @returns The hostname and absolute path portion of the given URL.\r\n */\r\n public static getHostNameForUrl(url: string): string {\r\n let hrefObject = Utility.getHrefObjectFromUrl(url);\r\n return Utility.urlCombine(hrefObject.prop('hostname'), hrefObject.prop('pathname'));\r\n }\r\n\r\n /**\r\n * Return the original url with query string stripped.\r\n * @param url The URL from which to extract the section.\r\n * @returns the original url with query string stripped.\r\n */\r\n public static getUrlWithoutQueryString(url: string): string {\r\n let hrefObject = Utility.getHrefObjectFromUrl(url);\r\n return hrefObject.prop('protocol') + '//' + Utility.urlCombine(hrefObject.prop('host'), hrefObject.prop('pathname'));\r\n }\r\n\r\n /**\r\n * Extracts the protocol section of a url.\r\n * @param url The URL from which to extract the section.\r\n * @returns The protocol for the current URL.\r\n */\r\n public static getProtocolFromUrl(url: string): string {\r\n return Utility.getHrefObjectFromUrl(url).prop('protocol').replace(':', '');\r\n }\r\n\r\n /**\r\n * Returns a formatted href object from a URL.\r\n * @param url The URL used to generate the object.\r\n * @returns A jQuery object with the url.\r\n */\r\n public static getHrefObjectFromUrl(url: string): JQuery {\r\n let aObject = $('<a>');\r\n aObject = aObject.prop('href', url);\r\n return aObject;\r\n }\r\n\r\n /**\r\n * Converts a WCF representation of a dictionary to a JavaScript dictionary.\r\n * @param wcfDictionary The WCF dictionary to convert.\r\n * @returns The native JavaScript representation of this dictionary.\r\n */\r\n public static convertWcfToJsDictionary(wcfDictionary: any[]): { [index: string]: any; } {\r\n // convert the WCF JSON representation of a dictionary\r\n // to JS dictionary.\r\n // WCF representation: [{\"Key\": Key, \"Value\": Value}..]\r\n // JS representation: [Key: Value ..]\r\n\r\n let result: { [index: string]: any; } = {};\r\n\r\n for (let i = 0; i < wcfDictionary.length; i++) {\r\n let keyValuePair = wcfDictionary[i];\r\n result[keyValuePair['Key']] = keyValuePair['Value'];\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public static getDateFromWcfJsonString(jsonDate: string, fromUtcMilliseconds: boolean): Date {\r\n if (StringExtensions.isNullOrEmpty(jsonDate)) {\r\n return null;\r\n }\r\n let begIndex = jsonDate.indexOf('(');\r\n let endIndex = jsonDate.indexOf(')');\r\n if (begIndex !== -1 && endIndex !== -1) {\r\n let milliseconds = parseInt(jsonDate.substring(begIndex + 1, endIndex), 10);\r\n\r\n if (fromUtcMilliseconds) {\r\n return new Date(milliseconds);\r\n }\r\n else {\r\n let retValue = new Date(0);\r\n retValue.setUTCMilliseconds(milliseconds);\r\n return retValue;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Get the outer html of the given jquery object.\r\n * @param content The jquery object.\r\n * @returns The entire html representation of the object.\r\n */\r\n public static getOuterHtml(content: JQuery): string {\r\n return $('<div>').append(content).html();\r\n }\r\n\r\n /**\r\n * Comparison Method: Compares two integer numbers.\r\n * @param a An integer value.\r\n * @param b An integer value.\r\n * @returns The comparison result.\r\n */\r\n public static compareInt(a: number, b: number): number {\r\n return a - b;\r\n }\r\n \r\n /**\r\n * Return the index of the smallest value in a numerical array.\r\n * @param a A numeric array.\r\n * @returns The index of the smallest value in the array.\r\n */\r\n public static getIndexOfMinValue(a: number[]) {\r\n let retValue = 0;\r\n let currentMinValue = a[0];\r\n\r\n for (let i = 0; i < a.length; i++) {\r\n if (a[i] < currentMinValue) {\r\n currentMinValue = a[i];\r\n retValue = i;\r\n }\r\n }\r\n\r\n return retValue;\r\n }\r\n \r\n /**\r\n * Extracts a url from a background image attribute in the format of: url('www.foobar.com/image.png').\r\n * @param input The value of the background-image attribute.\r\n * @returns The extracted url.\r\n */\r\n public static extractUrlFromCssBackgroundImage(input: string) {\r\n return input.replace(/\"/g, \"\").replace(/url\\(|\\)$/ig, \"\");\r\n }\r\n \r\n /**\r\n * Verifies image data url of images.\r\n */\r\n public static isValidImageDataUrl(url: string): boolean {\r\n let regex: RegExp = new RegExp('data:(image\\/(png|jpg|jpeg|gif|svg))');\r\n return regex.test(url);\r\n }\r\n \r\n public static isLocalUrl(url: string): boolean {\r\n return _.startsWith(url, \"data:\") || _.startsWith(url, \"blob:\");\r\n }\r\n\r\n /**\r\n * Downloads a content string as a file.\r\n * @param content Content stream.\r\n * @param fileName File name to use.\r\n */\r\n public static saveAsFile(content: any, fileName: string): void {\r\n let contentBlob = new Blob([content], { type: HttpConstants.ApplicationOctetStream });\r\n let url = window['webkitURL'] || URL;\r\n let urlLink = url.createObjectURL(contentBlob);\r\n let fileNameLink = fileName || urlLink;\r\n\r\n // IE support, use msSaveOrOpenBlob API\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(contentBlob, fileNameLink);\r\n return;\r\n }\r\n\r\n // WebKit-based browser support requires generating an anchor tag with\r\n // download attribute set to blob store and triggering a click event to invoke \r\n // a download to file action\r\n let hyperlink = document.createElement('a');\r\n hyperlink.href = urlLink;\r\n hyperlink.target = '_blank';\r\n hyperlink['download'] = fileNameLink;\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n\r\n document.body.removeChild(hyperlink);\r\n }\r\n\r\n /**\r\n * Helper method to get the simple type name from a typed object.\r\n * @param obj The typed object.\r\n * @returns The simple type name for the object.\r\n */\r\n public static getType(obj: TypedObject) {\r\n Utility.throwIfNullEmptyOrWhitespaceString(obj.__type, this, 'getType', 'obj');\r\n\r\n let parts = obj.__type.split(\":\");\r\n\r\n if (parts.length !== 2) {\r\n Errors.argument(\"obj.__type\", \"Type String not in expected format [Type]#[Namespace]: \" + obj.__type);\r\n }\r\n\r\n if (parts[1] !== Utility.TypeNamespace) {\r\n Errors.argument(\"obj.__type\", \"Type Namespace not expected: \" + parts[1]);\r\n }\r\n\r\n return parts[0];\r\n }\r\n\r\n /** \r\n * Check if an element supports a specific event type.\r\n * @param eventName The name of the event.\r\n * @param element The element to test for event support.\r\n * @returns Whether the even is supported on the provided element.\r\n */\r\n public static isEventSupported(eventName: string, element: Element): boolean {\r\n eventName = 'on' + eventName;\r\n let isSupported = (eventName in element);\r\n\r\n if (!isSupported) {\r\n // if we can't use setAttribute try a generic element\r\n if (!element.setAttribute) {\r\n element = document.createElement('div');\r\n }\r\n if (element.setAttribute && element.removeAttribute) {\r\n element.setAttribute(eventName, '');\r\n isSupported = typeof element[eventName] === 'function';\r\n\r\n // if the property was created - remove it\r\n if (typeof element[eventName] !== 'undefined') {\r\n element[eventName] = null;\r\n }\r\n\r\n element.removeAttribute(eventName);\r\n }\r\n }\r\n\r\n element = null;\r\n return isSupported;\r\n }\r\n\r\n public static toPixel(pixelAmount: number): string {\r\n Utility.throwIfNullOrUndefined(pixelAmount, this, \"toPixel\", \"pixelAmount\");\r\n\r\n return pixelAmount.toString() + CssConstants.pixelUnits;\r\n }\r\n\r\n public static getPropertyCount(object: any) {\r\n Utility.throwIfNullOrUndefined(object, this, \"getPropertyCount\", \"object\");\r\n return Object.getOwnPropertyNames(object).length;\r\n }\r\n\r\n /** \r\n * Check if an element supports a specific event type.\r\n * @param filePath File path.\r\n * @returns File extension.\r\n */\r\n public static getFileExtension(filePath: string): string {\r\n if (filePath) {\r\n let index = filePath.lastIndexOf('.');\r\n if (index >= 0)\r\n return filePath.substr(index + 1);\r\n }\r\n return '';\r\n }\r\n\r\n /** \r\n * Extract the filename out of a full path delimited by '\\' or '/'.\r\n * @param filePath File path.\r\n * @returns filename File name.\r\n */\r\n public static extractFileNameFromPath(filePath: string): string {\r\n return filePath.replace(/^.*[\\\\\\/]/, '');\r\n }\r\n\r\n /**\r\n * This method indicates whether window.clipboardData is supported.\r\n * For example, clipboard support for Windows Store apps is currently disabled \r\n * since window.clipboardData is unsupported (it raises access denied error)\r\n * since clipboard in Windows Store is being \r\n * achieved through Windows.ApplicationModel.DataTransfer.Clipboard class.\r\n */\r\n public static canUseClipboard(): boolean {\r\n return (typeof MSApp === \"undefined\");\r\n }\r\n\r\n public static is64BitOperatingSystem(): boolean {\r\n return navigator.userAgent.indexOf(\"WOW64\") !== -1 ||\r\n navigator.userAgent.indexOf(\"Win64\") !== -1;\r\n }\r\n\r\n public static parseNumber(value: any, defaultValue?: number): number {\r\n if (value === null)\r\n return null;\r\n if (value === undefined)\r\n return defaultValue;\r\n \r\n let result = Number(value);\r\n if (isFinite(result))\r\n return result;\r\n if (isNaN(result) && !(typeof value === \"number\" || value === \"NaN\"))\r\n return defaultValue;\r\n return result;\r\n }\r\n\r\n public static getURLParamValue(name:string) {\r\n let results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);\r\n if (results == null) {\r\n return null;\r\n }\r\n else {\r\n return results[1] || 0;\r\n }\r\n }\r\n\r\n /**\r\n * Return local timezone.\r\n * This function uses summer and winter offset to determine local time zone.\r\n * The result localTimeZoneString must be a subset of the strings used by server, \r\n * as documented here: https://msdn.microsoft.com/en-us/library/gg154758.aspx (Dynamic Daylight Savings Time (Compact 2013)).\r\n * @return Local timezone string or UTC if timezone cannot be found.\r\n */\r\n public static getLocalTimeZoneString(): string {\r\n let timeSummer = new Date(Date.UTC(2005, 6, 30, 0, 0, 0, 0));\r\n let summerOffset = -1 * timeSummer.getTimezoneOffset();\r\n let timeWinter = new Date(Date.UTC(2005, 12, 30, 0, 0, 0, 0));\r\n let winterOffset = -1 * timeWinter.getTimezoneOffset();\r\n let localTimeZoneString;\r\n\r\n if (-720 === summerOffset && -720 === winterOffset) { localTimeZoneString = 'Dateline Standard Time'; }\r\n else if (-660 === summerOffset && -660 === winterOffset) { localTimeZoneString = 'UTC-11'; }\r\n else if (-660 === summerOffset && -660 === winterOffset) { localTimeZoneString = 'Samoa Standard Time'; }\r\n else if (-600 === summerOffset && -600 === winterOffset) { localTimeZoneString = 'Hawaiian Standard Time'; }\r\n else if (-480 === summerOffset && -540 === winterOffset) { localTimeZoneString = 'Alaskan Standard Time'; }\r\n else if (-420 === summerOffset && -480 === winterOffset) { localTimeZoneString = 'Pacific Standard Time'; }\r\n else if (-420 === summerOffset && -420 === winterOffset) { localTimeZoneString = 'US Mountain Standard Time'; }\r\n else if (-360 === summerOffset && -420 === winterOffset) { localTimeZoneString = 'Mountain Standard Time'; }\r\n else if (-360 === summerOffset && -360 === winterOffset) { localTimeZoneString = 'Central America Standard Time'; }\r\n else if (-300 === summerOffset && -360 === winterOffset) { localTimeZoneString = 'Central Standard Time'; }\r\n else if (-300 === summerOffset && -300 === winterOffset) { localTimeZoneString = 'SA Pacific Standard Time'; }\r\n else if (-240 === summerOffset && -300 === winterOffset) { localTimeZoneString = 'Eastern Standard Time'; }\r\n else if (-270 === summerOffset && -270 === winterOffset) { localTimeZoneString = 'Venezuela Standard Time'; }\r\n else if (-240 === summerOffset && -240 === winterOffset) { localTimeZoneString = 'SA Western Standard Time'; }\r\n else if (-240 === summerOffset && -180 === winterOffset) { localTimeZoneString = 'Central Brazilian Standard Time'; }\r\n else if (-180 === summerOffset && -240 === winterOffset) { localTimeZoneString = 'Atlantic Standard Time'; }\r\n else if (-180 === summerOffset && -180 === winterOffset) { localTimeZoneString = 'Montevideo Standard Time'; }\r\n else if (-180 === summerOffset && -120 === winterOffset) { localTimeZoneString = 'E. South America Standard Time'; }\r\n else if (-150 === summerOffset && -210 === winterOffset) { localTimeZoneString = 'Mid-Atlantic Standard Time'; }\r\n else if (-120 === summerOffset && -120 === winterOffset) { localTimeZoneString = 'SA Eastern Standard Time'; }\r\n else if (0 === summerOffset && 0 === winterOffset) { localTimeZoneString = 'UTC'; }\r\n else if (60 === summerOffset && 0 === winterOffset) { localTimeZoneString = 'GMT Standard Time'; }\r\n else if (60 === summerOffset && 120 === winterOffset) { localTimeZoneString = 'Namibia Standard Time'; }\r\n else if (120 === summerOffset && 60 === winterOffset) { localTimeZoneString = 'Romance Standard Time'; }\r\n else if (120 === summerOffset && 120 === winterOffset) { localTimeZoneString = 'South Africa Standard Time'; }\r\n else if (180 === summerOffset && 120 === winterOffset) { localTimeZoneString = 'GTB Standard Time'; }\r\n else if (180 === summerOffset && 180 === winterOffset) { localTimeZoneString = 'E. Africa Standard Time'; }\r\n else if (240 === summerOffset && 180 === winterOffset) { localTimeZoneString = 'Russian Standard Time'; }\r\n else if (240 === summerOffset && 240 === winterOffset) { localTimeZoneString = 'Arabian Standard Time'; }\r\n else if (270 === summerOffset && 210 === winterOffset) { localTimeZoneString = 'Iran Standard Time'; }\r\n else if (270 === summerOffset && 270 === winterOffset) { localTimeZoneString = 'Afghanistan Standard Time'; }\r\n else if (300 === summerOffset && 240 === winterOffset) { localTimeZoneString = 'Pakistan Standard Time'; }\r\n else if (300 === summerOffset && 300 === winterOffset) { localTimeZoneString = 'West Asia Standard Time'; }\r\n else if (330 === summerOffset && 330 === winterOffset) { localTimeZoneString = 'India Standard Time'; }\r\n else if (345 === summerOffset && 345 === winterOffset) { localTimeZoneString = 'Nepal Standard Time'; }\r\n else if (360 === summerOffset && 300 === winterOffset) { localTimeZoneString = 'N. Central Asia Standard Time'; }\r\n else if (360 === summerOffset && 360 === winterOffset) { localTimeZoneString = 'Central Asia Standard Time'; }\r\n else if (390 === summerOffset && 390 === winterOffset) { localTimeZoneString = 'Myanmar Standard Time'; }\r\n else if (420 === summerOffset && 360 === winterOffset) { localTimeZoneString = 'North Asia Standard Time'; }\r\n else if (420 === summerOffset && 420 === winterOffset) { localTimeZoneString = 'SE Asia Standard Time'; }\r\n else if (480 === summerOffset && 420 === winterOffset) { localTimeZoneString = 'North Asia East Standard Time'; }\r\n else if (480 === summerOffset && 480 === winterOffset) { localTimeZoneString = 'China Standard Time'; }\r\n else if (540 === summerOffset && 480 === winterOffset) { localTimeZoneString = 'Yakutsk Standard Time'; }\r\n else if (540 === summerOffset && 540 === winterOffset) { localTimeZoneString = 'Tokyo Standard Time'; }\r\n else if (570 === summerOffset && 570 === winterOffset) { localTimeZoneString = 'Cen. Australia Standard Time'; }\r\n else if (600 === summerOffset && 600 === winterOffset) { localTimeZoneString = 'E. Australia Standard Time'; }\r\n else if (600 === summerOffset && 660 === winterOffset) { localTimeZoneString = 'AUS Eastern Standard Time'; }\r\n else if (660 === summerOffset && 600 === winterOffset) { localTimeZoneString = 'Tasmania Standard Time'; }\r\n else if (660 === summerOffset && 660 === winterOffset) { localTimeZoneString = 'West Pacific Standard Time'; }\r\n else if (690 === summerOffset && 690 === winterOffset) { localTimeZoneString = 'Central Pacific Standard Time'; }\r\n else if (720 === summerOffset && 660 === winterOffset) { localTimeZoneString = 'Magadan Standard Time'; }\r\n else if (720 === summerOffset && 720 === winterOffset) { localTimeZoneString = 'Fiji Standard Time'; }\r\n else if (720 === summerOffset && 780 === winterOffset) { localTimeZoneString = 'New Zealand Standard Time'; }\r\n else if (780 === summerOffset && 780 === winterOffset) { localTimeZoneString = 'Tonga Standard Time'; }\r\n else { localTimeZoneString = 'UTC'; }\r\n return localTimeZoneString;\r\n }\r\n }\r\n\r\n export class VersionUtility {\r\n /**\r\n * Compares 2 version strings.\r\n * @param versionA The first version string.\r\n * @param versionB The second version string.\r\n * @returns A result for the comparison.\r\n */\r\n static compareVersions(versionA: string, versionB: string): number {\r\n let a = versionA.split('.').map(parseFloat);\r\n let b = versionB.split('.').map(parseFloat);\r\n\r\n let versionParts = Math.max(a.length, b.length);\r\n\r\n for (let i = 0; i < versionParts; i++) {\r\n let partA = a[i] || 0;\r\n let partB = b[i] || 0;\r\n\r\n if (partA > partB)\r\n return 1;\r\n\r\n if (partA < partB)\r\n return -1;\r\n }\r\n\r\n return 0;\r\n }\r\n }\r\n\r\n export module PerformanceUtil {\r\n export class PerfMarker {\r\n private _name: string;\r\n private _start: string;\r\n\r\n constructor(name: string) {\r\n this._name = name;\r\n this._start = PerfMarker.begin(name);\r\n }\r\n\r\n private static begin(name: string) {\r\n if (window.performance === undefined || performance.mark === undefined) return;\r\n if (console.time) {\r\n console.time(name);\r\n }\r\n name = 'Begin ' + name;\r\n performance.mark(name);\r\n return name;\r\n }\r\n\r\n public end() {\r\n if (window.performance === undefined || performance.mark === undefined || performance.measure === undefined) return;\r\n let name = this._name;\r\n let end = 'End ' + name;\r\n performance.mark(end);\r\n performance.measure(name, this._start, end);\r\n if (console.timeEnd) {\r\n console.timeEnd(name);\r\n }\r\n }\r\n }\r\n\r\n export function create(name: string): PerfMarker {\r\n return new PerfMarker(name);\r\n }\r\n }\r\n\r\n export module DeferUtility {\r\n /**\r\n * Wraps a callback and returns a new function.\r\n * The function can be called many times but the callback\r\n * will only be executed once on the next frame.\r\n * Use this to throttle big UI updates and access to DOM.\r\n */\r\n export function deferUntilNextFrame(callback: Function): Function {\r\n let isWaiting, args, context;\r\n\r\n if (!window.requestAnimationFrame) {\r\n window.requestAnimationFrame = (func) => setTimeout(func, 1000 / 50);\r\n }\r\n\r\n return function() {\r\n if (!isWaiting) {\r\n isWaiting = true;\r\n args = arguments;\r\n context = this;\r\n window.requestAnimationFrame(() => {\r\n isWaiting = false;\r\n callback.apply(context, args);\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n export class TraceItem {\r\n public type: TraceType;\r\n public sessionId: string;\r\n public requestId: string;\r\n public text: string;\r\n public timeStamp: Date;\r\n\r\n /** \r\n * Note: DO NOT USE for backward compability only.\r\n */\r\n public _activityId: string;\r\n\r\n private static traceTypeStrings: string[] = [\r\n 'INFORMATION',\r\n 'VERBOSE',\r\n 'WARNING',\r\n 'ERROR',\r\n 'EXPECTEDERROR',\r\n 'UNEXPECTEDERROR',\r\n 'FATAL',\r\n ];\r\n\r\n constructor(text: string, type: TraceType, sessionId: string, requestId?: string) {\r\n this.text = text;\r\n this.type = type;\r\n this.sessionId = sessionId;\r\n this.requestId = requestId;\r\n this.timeStamp = new Date();\r\n }\r\n\r\n public toString(): string {\r\n let resultString: string = '';\r\n\r\n resultString += (StringExtensions.format(\r\n '{0} ({1}): {2}',\r\n TraceItem.traceTypeStrings[this.type],\r\n this.timeStamp.toUTCString(),\r\n this.text));\r\n\r\n if (this.requestId)\r\n resultString += ('\\n(Request id: ' + this.requestId + ')');\r\n\r\n return resultString;\r\n }\r\n }\r\n} ","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n\r\n export module UrlUtils {\r\n const urlRegex = /http[s]?:\\/\\/(\\S)+/gi;\r\n\r\n export function isValidUrl(value: string): boolean {\r\n if (StringExtensions.isNullOrEmpty(value))\r\n return false;\r\n\r\n let match = RegExpExtensions.run(urlRegex, value);\r\n if (!!match && match.index === 0)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /* Tests whether a URL is valid.\r\n * @param url The url to be tested.\r\n * @returns Whether the provided url is valid.\r\n **/\r\n export function isValidImageUrl(url: string): boolean {\r\n // VSTS: 7252099 / 7112236\r\n // For now, passes for any valid Url\r\n\r\n return isValidUrl(url);\r\n }\r\n\r\n export function findAllValidUrls(text: string): TextMatch[] {\r\n if (StringExtensions.isNullOrEmpty(text))\r\n return [];\r\n\r\n // Find all urls in the text.\r\n // TODO: This could potentially be expensive, maybe include a cap here for text with many urls?\r\n let urlRanges: TextMatch[] = [];\r\n let matches: RegExpExecArray;\r\n let start = 0;\r\n while ((matches = RegExpExtensions.run(urlRegex, text, start)) !== null) {\r\n let url = matches[0];\r\n let end = matches.index + url.length;\r\n urlRanges.push({\r\n start: matches.index,\r\n end: end,\r\n text: url,\r\n });\r\n start = end;\r\n }\r\n\r\n return urlRanges;\r\n }\r\n\r\n export function getBase64ContentFromDataUri(uri: string): string {\r\n if (uri.indexOf('data:') !== 0)\r\n throw new Error(\"Expected data uri\");\r\n\r\n // Locate the base 64 content from the URL (e.g. \"data:image/png;base64,xxxxx=\")\r\n const base64Token = \";base64,\";\r\n let indexBase64TokenStart = uri.indexOf(base64Token);\r\n if (indexBase64TokenStart < 0)\r\n throw new Error(\"Expected base 64 content in data url\");\r\n\r\n let indexBase64Start = indexBase64TokenStart + base64Token.length;\r\n return uri.substr(indexBase64Start, uri.length - indexBase64Start);\r\n }\r\n\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n export module BrowserUtils {\r\n export function isChrome(): boolean {\r\n let vendorName = window.navigator.vendor || \"\";\r\n let userAgent = window.navigator.userAgent.toLowerCase();\r\n\r\n return vendorName.toLowerCase().indexOf('google') > -1 &&\r\n userAgent.indexOf('chrome') > -1 &&\r\n userAgent.indexOf('edge') === -1 &&\r\n userAgent.indexOf('opr') === -1;\r\n }\r\n\r\n export function isInternetExplorerOrEdge(): boolean {\r\n let userAgent = window.navigator.userAgent.toLowerCase();\r\n return userAgent.indexOf('msie') > -1\r\n || userAgent.indexOf('trident') > -1\r\n || userAgent.indexOf('edge') > -1;\r\n }\r\n \r\n /**\r\n * Get the current version of IE\r\n * @returns The version of Internet Explorer or a 0 (indicating the use of another browser).\r\n */\r\n export function getInternetExplorerVersion(): number {\r\n var retValue = 0;\r\n if (navigator.appName === 'Microsoft Internet Explorer' || window.navigator.userAgent.indexOf('MSIE') >= 0) {\r\n var re = new RegExp('MSIE ([0-9]{1,}[\\\\.0-9]{0,})');\r\n var result = re.exec(window.navigator.userAgent);\r\n if (result) {\r\n retValue = parseFloat(result[1]);\r\n }\r\n }\r\n\r\n return retValue;\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n // NOTE: this file includes standalone utilities that should have no dependencies on external libraries, including jQuery.\r\n\r\n /**\r\n * Interface to help define objects indexed by number to a particular type.\r\n */\r\n export interface INumberDictionary<T> {\r\n [key: number]: T;\r\n }\r\n\r\n /**\r\n * Interface to help define objects indexed by name to a particular type.\r\n */\r\n export interface IStringDictionary<T> {\r\n [key: string]: T;\r\n }\r\n\r\n /**\r\n * Extensions for Enumerations.\r\n */\r\n export module EnumExtensions {\r\n /**\r\n * Gets a value indicating whether the value has the bit flags set.\r\n */\r\n export function hasFlag(value: number, flag: number): boolean {\r\n debug.assert(!!flag, 'flag must be specified and nonzero.');\r\n\r\n return (value & flag) === flag;\r\n }\r\n\r\n /**\r\n * Sets a value of a flag without modifying any other flags.\r\n */ \r\n export function setFlag(value: number, flag: number): number {\r\n debug.assert(!!flag, \"flag must be specified and nonzero.\");\r\n return value |= flag;\r\n }\r\n\r\n /**\r\n * Resets a value of a flag without modifying any other flags.\r\n */ \r\n export function resetFlag(value: number, flag: number): number {\r\n debug.assert(!!flag, \"flag must be specified and nonzero.\");\r\n return value &= ~flag;\r\n }\r\n\r\n /**\r\n * According to the TypeScript Handbook, this is safe to do.\r\n */\r\n export function toString(enumType: any, value: number): string {\r\n return enumType[value];\r\n }\r\n }\r\n\r\n /**\r\n * Extensions to String class.\r\n */\r\n export module StringExtensions {\r\n /**\r\n * Checks if a string ends with a sub-string.\r\n */\r\n export function endsWith(str: string, suffix: string): boolean {\r\n debug.assertValue(str, 'str');\r\n debug.assertValue(suffix, 'suffix');\r\n\r\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n }\r\n }\r\n\r\n export module LogicExtensions {\r\n export function XOR(a: boolean, b: boolean): boolean {\r\n return (a || b) && !(a && b);\r\n }\r\n }\r\n\r\n export module JsonComparer {\r\n /**\r\n * Performs JSON-style comparison of two objects.\r\n */\r\n export function equals<T>(x: T, y: T): boolean {\r\n if (x === y)\r\n return true;\r\n\r\n return JSON.stringify(x) === JSON.stringify(y);\r\n }\r\n }\r\n\r\n /**\r\n * Values are in terms of 'pt'\r\n * Convert to pixels using PixelConverter.fromPoint\r\n */\r\n export module TextSizeDefaults {\r\n /**\r\n * Stored in terms of 'pt'\r\n * Convert to pixels using PixelConverter.fromPoint\r\n */\r\n export const TextSizeMin: number = 8;\r\n\r\n /**\r\n * Stored in terms of 'pt'\r\n * Convert to pixels using PixelConverter.fromPoint\r\n */\r\n export const TextSizeMax: number = 40;\r\n\r\n const TextSizeRange: number = TextSizeMax - TextSizeMin;\r\n\r\n /**\r\n * Returns the percentage of this value relative to the TextSizeMax\r\n * @param textSize - should be given in terms of 'pt'\r\n */\r\n export function getScale(textSize: number) {\r\n return (textSize - TextSizeMin) / TextSizeRange;\r\n }\r\n\r\n }\r\n\r\n export module PixelConverter {\r\n const PxPtRatio: number = 4 / 3;\r\n const PixelString: string = 'px';\r\n\r\n /**\r\n * Appends 'px' to the end of number value for use as pixel string in styles\r\n */\r\n export function toString(px: number): string {\r\n return px + PixelString;\r\n }\r\n\r\n /**\r\n * Converts point value (pt) to pixels\r\n * Returns a string for font-size property\r\n * e.g. fromPoint(8) => '24px'\r\n */\r\n export function fromPoint(pt: number): string {\r\n return toString(fromPointToPixel(pt));\r\n }\r\n\r\n /**\r\n * Converts point value (pt) to pixels\r\n * Returns a number for font-size property\r\n * e.g. fromPoint(8) => 24px\r\n */\r\n export function fromPointToPixel(pt: number): number {\r\n return (PxPtRatio * pt);\r\n }\r\n\r\n /**\r\n * Converts pixel value (px) to pt\r\n * e.g. toPoint(24) => 8\r\n */\r\n export function toPoint(px: number): number {\r\n return px / PxPtRatio;\r\n }\r\n }\r\n\r\n export module RegExpExtensions {\r\n /**\r\n * Runs exec on regex starting from 0 index\r\n * This is the expected behavior but RegExp actually remember\r\n * the last index they stopped at (found match at) and will\r\n * return unexpected results when run in sequence.\r\n * @param regex - regular expression object\r\n * @param value - string to search wiht regex\r\n * @param start - index within value to start regex\r\n */\r\n export function run(regex: RegExp, value: string, start?: number): RegExpExecArray {\r\n debug.assertValue(regex, 'regex');\r\n\r\n regex.lastIndex = start || 0;\r\n return regex.exec(value);\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule powerbi.visuals.utility {\r\n import ExtendedCSSProperties = jsCommon.ExtendedCSSProperties;\r\n import IThickness = powerbi.visuals.shapes.IThickness;\r\n\r\n export module StyleUtils {\r\n export function getRotateAngleFromElement(element: JQuery): number {\r\n let rawElemStyle = <ExtendedCSSProperties>element.get(0).style;\r\n\r\n let transformString = rawElemStyle.transform || rawElemStyle.webkitTransform;\r\n if (transformString) {\r\n let transform = transformString.match(/rotate\\((-?\\d+(?:\\.\\d*)?)deg\\)/);\r\n if (transform) {\r\n return parseFloat(transform[1]);\r\n }\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n export function getTranslateTransformFromElement(element: JQuery): IPoint {\r\n let rawElemStyle = <ExtendedCSSProperties>element.get(0).style;\r\n \r\n // IE will recognize \"webkitTransform\" as \"WebkitTransform\" and set that as style property. \r\n // This means transform property is not read.\r\n // We put the \"transform\" before the \"webkitTransform\" to counteract the weirdness of IE. \r\n let transformString = rawElemStyle.transform || rawElemStyle.webkitTransform;\r\n\r\n let retValue: IPoint = { x: 0, y: 0 };\r\n\r\n if (transformString && transformString.length > 0) {\r\n let transform = transformString.match(/translate\\((-?\\d+(?:\\.\\d*)?)px, (-?\\d+(?:\\.\\d*)?)px\\)/);\r\n if (transform) {\r\n retValue.x = parseFloat(transform[1]);\r\n retValue.y = parseFloat(transform[2]);\r\n }\r\n }\r\n\r\n return retValue;\r\n }\r\n\r\n export function getPadding(element: JQuery): IThickness {\r\n if (!element)\r\n return;\r\n\r\n return {\r\n left: parseFloat(element.css('padding-left')) || 0,\r\n right: parseFloat(element.css('padding-right')) || 0,\r\n top: parseFloat(element.css('padding-top')) || 0,\r\n bottom: parseFloat(element.css('padding-bottom')) || 0,\r\n };\r\n }\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n export interface ITraceListener {\r\n logTrace(trace: TraceItem): void;\r\n }\r\n\r\n export class ConsoleTracer implements ITraceListener {\r\n public logTrace(trace: TraceItem): void {\r\n if (DEBUG) {\r\n switch (trace.type) {\r\n case TraceType.Information:\r\n console.info(trace.toString());\r\n break;\r\n case TraceType.UnexpectedError:\r\n case TraceType.Error:\r\n case TraceType.Fatal:\r\n console.error(trace.toString());\r\n break;\r\n case TraceType.ExpectedError:\r\n case TraceType.Warning:\r\n console.warn(trace.toString());\r\n break;\r\n case TraceType.Verbose:\r\n console.log(trace.toString());\r\n break;\r\n default:\r\n console.log(trace.toString());\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n export module Trace {\r\n const traceMaxCount = 1000;\r\n let traces = new Array<TraceItem>(traceMaxCount);\r\n let lastTraceIndex: number = -1;\r\n let defaultListener = new ConsoleTracer();\r\n let listeners = new Array<ITraceListener>(defaultListener);\r\n\r\n /**\r\n * Trace a warning. Please ensure that no PII is being logged.\r\n */\r\n export function warning(text: string, requestId?: string): void {\r\n debug.assertValue(text, 'text');\r\n logTraceInternal(new TraceItem(text, TraceType.Warning, requestId));\r\n }\r\n\r\n /** \r\n * Trace an error. Please ensure that no PII is being logged.\r\n */\r\n export function error(text: string, includeStackTrace?: boolean, requestId?: string): void {\r\n debug.assertValue(text, 'text');\r\n if (includeStackTrace)\r\n text = StringExtensions.format(\"{0}.\\nStack:\\n{1}\", text, getStackTrace());\r\n logTraceInternal(new TraceItem(text, TraceType.Error, requestId));\r\n }\r\n\r\n /** \r\n * Trace an information. Please ensure that no PII is being logged.\r\n */\r\n export function verbose(text: string, requestId?: string): void {\r\n debug.assertValue(text, 'text');\r\n logTraceInternal(new TraceItem(text, TraceType.Verbose, requestId));\r\n }\r\n\r\n export function addListener(listener: ITraceListener): void {\r\n debug.assertValue(listener, 'listener');\r\n listeners.push(listener);\r\n }\r\n\r\n export function removeListener(listener: ITraceListener): void {\r\n debug.assertValue(listener, 'listener');\r\n\r\n let index = listeners.indexOf(listener);\r\n if (index >= 0)\r\n listeners.splice(index, 1);\r\n }\r\n\r\n export function resetListeners(): void {\r\n listeners = new Array<ITraceListener>(defaultListener);\r\n }\r\n\r\n export function reset(): void {\r\n lastTraceIndex = -1;\r\n }\r\n\r\n export function getTraces(): Array<TraceItem> {\r\n if (lastTraceIndex < 0)\r\n return;\r\n\r\n let result = new Array<TraceItem>(lastTraceIndex+1);\r\n for (let i = 0; i <= lastTraceIndex; i++)\r\n result[i] = traces[i];\r\n\r\n return result;\r\n }\r\n\r\n /** \r\n * Note: Used for unit-test only. \r\n */\r\n export function disableDefaultListener(): void {\r\n removeListener(defaultListener);\r\n }\r\n\r\n export function enableDefaultListener(): void {\r\n addListener(defaultListener);\r\n }\r\n\r\n function logTraceInternal(trace: TraceItem): void {\r\n if ((lastTraceIndex + 1) >= traceMaxCount)\r\n reset();\r\n\r\n traces[++lastTraceIndex] = trace;\r\n\r\n for (let i = 0, len = listeners.length; i < len; i++)\r\n listeners[i].logTrace(trace);\r\n }\r\n }\r\n} ","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n /** \r\n * The types of possible traces within the system, this aligns to the traces available in Cloud Platform.\r\n */\r\n export enum TraceType {\r\n Information = 0,\r\n Verbose = 1,\r\n Warning = 2,\r\n Error = 3,\r\n ExpectedError = 4,\r\n UnexpectedError = 5,\r\n Fatal = 6,\r\n }\r\n}","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule jsCommon {\r\n /**\r\n * JavaScript files.\r\n */ \r\n const MSMapcontrol = 'https://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&s=1&onscriptload=globalMapControlLoaded';\r\n\r\n /**\r\n * Map loading logic.\r\n */\r\n let MSMapcontrolLoaded = false;\r\n let WaitForMSMapLoad: JQueryDeferred<void> = null;\r\n\r\n const PowerViewPackage: IDependency = {\r\n javaScriptFiles: [\r\n powerbi.build + '/externals/pv/webclient.js'\r\n ],\r\n cssFiles: [\r\n powerbi.build +'/externals/pv/Styles/_all.css'\r\n ],\r\n\t\tjavaScriptFilesWithCallback: [\r\n { javascriptFile: MSMapcontrol, onLoadCallback: waitForMapControlLoaded }\r\n ]\r\n };\r\n\r\n export function ensurePowerView(action: () => void = _.noop): void {\r\n requires(PowerViewPackage, action);\r\n }\r\n\r\n const MapPackage: IDependency = {\r\n\t\tjavaScriptFilesWithCallback: [\r\n { javascriptFile: MSMapcontrol, onLoadCallback: waitForMapControlLoaded }\r\n ]\r\n };\r\n\r\n export function ensureMap(locale: string, action: () => void): void {\r\n let mapPackageWithLocale = powerbi.Prototype.inherit(MapPackage);\r\n if (!_.isEmpty(locale)) {\r\n mapPackageWithLocale.javaScriptFilesWithCallback[0].javascriptFile = MSMapcontrol.concat('&mkt=' + locale);\r\n }\r\n requires(mapPackageWithLocale, action);\r\n }\r\n\r\n\texport function mapControlLoaded(): void {\r\n\t\tMSMapcontrolLoaded = true;\r\n\t\tif (WaitForMSMapLoad) {\r\n\t\t\tWaitForMSMapLoad.resolve();\r\n WaitForMSMapLoad = undefined;\r\n\t\t}\r\n\t}\r\n\r\n\texport function waitForMapControlLoaded(): JQueryPromise<void> {\r\n\t\tlet task: JQueryDeferred<void>;\r\n\t\tif (!MSMapcontrolLoaded) {\r\n\t\t\ttask = WaitForMSMapLoad = $.Deferred<void>();\r\n\t\t} else {\r\n\t\t\ttask = $.Deferred<void>();\r\n\t\t\ttask.resolve();\r\n\t\t}\r\n\r\n\t\treturn task.promise();\r\n\t}\r\n}\r\n\r\n/* tslint:disable:no-unused-variable */\r\nlet globalMapControlLoaded = function() {\r\n\t// Map requires a function in the global namespace to callback once loaded\r\n\tjsCommon.mapControlLoaded();\r\n};\r\n/* tslint:enable:no-unused-variable */","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. \r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in \r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n\r\nmodule InJs\r\n{\r\n /** \r\n * The types of possible traces within the system, this aligns to the traces available in Cloud Platform.\r\n */\r\n export enum TraceType {\r\n information = 0,\r\n verbose = 1,\r\n warning = 2,\r\n error = 3,\r\n expectedError = 4,\r\n unexpectedError = 5,\r\n fatal = 6,\r\n }\r\n}"],"sourceRoot":"../ts/visualsCommon"}
\No newline at end of file