{"version":3,"sources":["webpack://vrextension/webpack/universalModuleDefinition","webpack://vrextension/webpack/bootstrap","webpack://vrextension/./src/vrshared.ts","webpack://vrextension/./src/deviceManagerFile.ts","webpack://vrextension/./src/loaderManagerFile.ts","webpack://vrextension/./src/extensions.ts","webpack://vrextension/./src/cookieManagerFile.ts","webpack://vrextension/./src/notificationManagerFile.ts","webpack://vrextension/./src/utilityManagerFile.ts","webpack://vrextension/./src/webApiFile.ts","webpack://vrextension/./src/notifierManager.ts"],"names":[],"mappings":"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","file":"extensions.all.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"vrextension\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vrextension\"] = factory();\n\telse\n\t\troot[\"vrextension\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","import { CookieManagerFile } from \"./cookieManagerFile\";\r\nimport { DeviceManagerFile } from \"./deviceManagerFile\";\r\nimport { LoaderManagerFile } from \"./loaderManagerFile\";\r\nimport { NotificationManagerFile } from \"./notificationManagerFile\";\r\nimport { UtilityManagerFile } from \"./utilityManagerFile\";\r\nimport { WebApiRequestBaseFile, WebApiResponseBaseFile } from \"./webApiFile\";\r\n\r\n//#region Utility\r\nexport function UtilityManager()\r\n{\r\n\treturn UtilityManagerFile;\r\n}\r\n\r\nexport enum FileTypeEnum\r\n{\r\n\tPdf = \"application/pdf\",\r\n\tTxt = \"text/plain\",\r\n\tImage = \"image/png\",\r\n\tZip = \"application/octet-stream\",\r\n\tGeneral = \"application/octet-stream\"\r\n}\r\n//#endregion\r\n\r\n//#region Cookie\r\nexport function CookieManager()\r\n{\r\n\treturn CookieManagerFile;\r\n}\r\n\r\nexport class CookieOptions\r\n{\r\n\tsecured?: boolean;\r\n\tsameSite?: CookieSameSiteEnum;\r\n\thttpOnly?: boolean;\r\n}\r\n\r\nexport enum CookieSameSiteEnum\r\n{\r\n\tLax = \"Lax\",\r\n\tStrict = \"Strict\",\r\n\tNone = \"None\"\r\n}\r\n//#endregion\r\n\r\nexport function DeviceManager()\r\n{\r\n\treturn DeviceManagerFile;\r\n}\r\n\r\nexport function LoaderManager()\r\n{\r\n\treturn LoaderManagerFile;\r\n}\r\n\r\nexport function NotificationManager()\r\n{\r\n\treturn NotificationManagerFile;\r\n}\r\n\r\n//#region WebApi\r\nexport function WebApiRequest()\r\n{\r\n\treturn WebApiRequestBaseFile;\r\n}\r\n\r\nexport function WebApiResponse()\r\n{\r\n\treturn WebApiResponseBaseFile;\r\n}\r\n\r\nexport enum WebApiModeEnum\r\n{\r\n\tAsync,\r\n\tSync\r\n}\r\n\r\nexport class WebApiSettings\r\n{\r\n\tloader?: HTMLElement | JQuery | string | boolean;\r\n\tloaderDelay?: number;\r\n\tmode?: WebApiModeEnum;\r\n\theaderParameters?: any;\r\n\tfile?: string | Blob | File;\r\n\tshowError?: boolean;\r\n\r\n\tsuccess?: (response: any) => void;\r\n\terror?: (e: WebApiError) => void;\r\n}\r\n\r\nexport class WebApiError\r\n{\r\n\tmessage: string;\r\n\tstackTrace?: string;\r\n\tshowErrorPopup?: boolean;\r\n\tstatusCode: number;\r\n}\r\n//#endregion\r\n\r\n//#region Notifier\r\nexport enum NotifierTypeEnum\r\n{\r\n\tDefault,\r\n\tSuccess,\r\n\tInfo,\r\n\tWarning,\r\n\tError\r\n}\r\n\r\nexport enum NotifierPositionEnum\r\n{\r\n\tTopLeft = \"TopLeft\",\r\n\tTopCenter = \"TopCenter\",\r\n\tTopRight = \"TopRight\",\r\n\tBottomLeft = \"BottomLeft\",\r\n\tBottomCenter = \"BottomCenter\",\r\n\tBottomRight = \"BottomRight\",\r\n\tRightMiddle = \"RightMiddle\",\r\n\tRightTop = \"RightTop\",\r\n\tRightBottom = \"RightBottom\",\r\n\tLeftBottom = \"LeftBottom\",\r\n\tLeftTop = \"LeftTop\",\r\n\tLeftMiddle = \"LeftMiddle\",\r\n\tMiddleScreen = \"MiddleScreen\"\r\n}\r\n\r\nexport enum AnimationShowEnum\r\n{\r\n\tNone,\r\n\tDefault,\r\n\tFadeIn,\r\n\tSlideDown\r\n}\r\n\r\nexport enum AnimationHideEnum\r\n{\r\n\tNone,\r\n\tDefault,\r\n\tFadeOut,\r\n\tSlideUp\r\n}\r\n//#endregion\r\n\r\n//#region HtmlElement\r\nexport function div(container?: string | HTMLElement | JQuery, settings?: DivSettings, prepend = false): HTMLElement\r\n{\r\n\tlet classAttribute = \"\";\r\n\tlet idAttribute = \"\";\r\n\tlet css = \"\";\r\n\tlet content = \"\";\r\n\tlet title = \"\";\r\n\r\n\tif (settings != null)\r\n\t{\r\n\t\tif (settings.class != null)\r\n\t\t\tclassAttribute = \"class = '\" + settings.class + \"'\";\r\n\r\n\t\tif (settings.id != null)\r\n\t\t\tidAttribute = \"id = '\" + settings.id + \"'\";\r\n\r\n\t\tif (settings.css != null)\r\n\t\t\tcss = \"style='\" + settings.css + \"'\";\r\n\r\n\t\tif (settings.content != null)\r\n\t\t\tcontent = settings.content;\r\n\r\n\t\tif (settings.tooltip != null)\r\n\t\t\ttitle = \"title='\" + settings.tooltip + \"'\";\r\n\t}\r\n\r\n\tlet div = puma(\"
\" + content + \"
\")[0];\r\n\tif (container != null)\r\n\t{\r\n\t\tif (typeof (container) == \"string\" && !container.startsWith(\"#\") && !container.startsWith(\".\"))\r\n\t\t\tcontainer = \"#\" + container;\r\n\r\n\t\tif (!prepend)\r\n\t\t\tpuma(div).appendToPuma(container);\r\n\t\telse\r\n\t\t\tpuma(div).prependToPuma(container);\r\n\t}\r\n\r\n\tif (settings != null && settings.attributes != null)\r\n\t{\r\n\t\tfor (let attribute of settings.attributes)\r\n\t\t\tpuma(div).attr(attribute.name, attribute.value);\r\n\t}\r\n\r\n\treturn div;\r\n}\r\nclass DivSettings\r\n{\r\n\tclass?: string;\r\n\tid?: string;\r\n\tcontent?: string;\r\n\tcss?: string;\r\n\ttooltip?: string;\r\n\tattributes?: AttributeSettings[];\r\n}\r\n\r\nexport class AttributeSettings\r\n{\r\n\tname: string;\r\n\tvalue: any;\r\n\tcontainer?: boolean;\r\n}\r\n\r\nexport function icon(iconClass: IconClass, container?: string | HTMLElement | JQuery | null, settings?: IconSettings | null, prepend = false): HTMLElement\r\n{\r\n\tif (container != null && typeof (container) == \"string\" && !container.startsWith(\"#\") && !container.startsWith(\".\"))\r\n\t\tcontainer = \"#\" + container;\r\n\r\n\tlet classAttribute = \"\";\r\n\tlet idAttribute = \"\";\r\n\tlet css = \"\";\r\n\r\n\t//#region Settings\r\n\tif (settings != null)\r\n\t{\r\n\t\tif (settings.id != null)\r\n\t\t\tidAttribute = \"id = '\" + settings.id + \"'\";\r\n\r\n\t\tif (settings.css != null)\r\n\t\t\tcss += settings.css + \";\";\r\n\r\n\t\tif (settings.fontSize != null)\r\n\t\t{\r\n\t\t\tif (typeof (settings.fontSize) == \"number\")\r\n\t\t\t\tsettings.fontSize = settings.fontSize + \"px\";\r\n\r\n\t\t\tcss += \"font-size: \" + settings.fontSize + \";\";\r\n\t\t}\r\n\r\n\t\tif (settings.color != null)\r\n\t\t\tcss += \"color: \" + settings.color + \";\";\r\n\r\n\t\tif (settings.class != null)\r\n\t\t\tclassAttribute += settings.class;\r\n\t}\r\n\t//#endregion\r\n\r\n\tlet icon = puma(\"\")[0];\r\n\r\n\tif (container != null)\r\n\t{\r\n\t\tif (!prepend)\r\n\t\t\tpuma(icon).appendToPuma(container);\r\n\t\telse\r\n\t\t\tpuma(icon).prependToPuma(container);\r\n\t}\r\n\r\n\treturn icon;\r\n}\r\nclass IconSettings\r\n{\r\n\tfontSize?: string | number;\r\n\tcss?: string;\r\n\tid?: string;\r\n\tcolor?: string;\r\n\tclass?: string;\r\n}\r\n//#endregion\r\n\r\nexport enum BrowserTypeEnum\r\n{\r\n\tInternetExplorer = \"InternetExplorer\",\r\n\tSafari = \"Safari\",\r\n\tChrome = \"Chrome\",\r\n\tFirefox = \"Firefox\",\r\n\tEdge = \"Edge\",\r\n\tOpera = \"Opera\",\r\n\tVivaldi = \"Vivaldi\",\r\n\tSeamonkey = \"Seamonkey\"\r\n}\r\n\r\nexport enum IconClass\r\n{\r\n\tAdd = \"plus\",\r\n\tAlert = \"exclamation-triangle\",\r\n\tAlignCenter = \"align-center\",\r\n\tAlignJustify = \"align-justify\",\r\n\tAlignLeft = \"align-left\",\r\n\tAlignRight = \"align-right\",\r\n\tAmazon = \"amazon\",\r\n\tAnchor = \"anchor\",\r\n\tAndroid = \"android\",\r\n\tAngleDown = \"angle-down\",\r\n\tAngleLeft = \"angle-left\",\r\n\tAngleRight = \"angle-right\",\r\n\tAngleUp = \"angle-up\",\r\n\tApple = \"apple\",\r\n\tArchive = \"archive\",\r\n\tArrowDown = \"arrow-down\",\r\n\tArrowLeft = \"arrow-left\",\r\n\tArrowRight = \"arrow-right\",\r\n\tArrowUp = \"arrow-up\",\r\n\tAsterisk = \"asterisk\",\r\n\tAttachment = \"paperclip\",\r\n\tPumo = \"font-awesome\",\r\n\r\n\tBack = \"mail-reply\",\r\n\tBackward = \"backward\",\r\n\tBackwardFast = \"fast-backward\",\r\n\tBackwardStep = \"step-backward\",\r\n\tBan = \"ban\",\r\n\tBell = \"bell\",\r\n\tBellOut = \"bell-o\",\r\n\tBellSlash = \"bell-slash\",\r\n\tBellSlashOut = \"bell-slash-o\",\r\n\tBluetooth = \"bluetooth\",\r\n\tBold = \"bold\",\r\n\tBook = \"book\",\r\n\tBug = \"bug\",\r\n\tBurger = \"bars\",\r\n\r\n\tCalendar = \"calendar\",\r\n\tCalendarCheckOut = \"calendar-check-o\",\r\n\tCamera = \"camera\",\r\n\tCaretDown = \"caret-down\",\r\n\tCaretLeft = \"caret-left\",\r\n\tCaretRight = \"caret-right\",\r\n\tCaretUp = \"caret-up\",\r\n\tChartArea = \"area-chart\",\r\n\tChartBar = \"bar-chart\",\r\n\tChartLine = \"line-chart\",\r\n\tChartPie = \"pie-chart\",\r\n\tChat = \"comments\",\r\n\tCheck = \"check\",\r\n\tCheckCircle = \"check-circle\",\r\n\tCheckCircleOut = \"check-circle-o\",\r\n\tCheckSquare = \"check-square\",\r\n\tCheckSquareOut = \"check-square-o\",\r\n\tChevronDown = \"chevron-down\",\r\n\tChevronLeft = \"chevron-left\",\r\n\tChevronRight = \"chevron-right\",\r\n\tChevronUp = \"chevron-up\",\r\n\tChrome = \"chrome\",\r\n\tCircle = \"circle\",\r\n\tClock = \"clock-o\",\r\n\tClose = \"close\",\r\n\tCloud = \"cloud\",\r\n\tCode = \"code\",\r\n\tCollapse = \"compress\",\r\n\tComment = \"comment\",\r\n\tCommenting = \"commenting\",\r\n\tCommentingOut = \"commenting-o\",\r\n\tCommentOut = \"comment-o\",\r\n\tComments = \"comments\",\r\n\tCommentsOut = \"comments-o\",\r\n\tCompress = \"compress\",\r\n\tCopy = \"copy\",\r\n\tCopyright = \"copyright\",\r\n\tCreditCard = \"credit-card\",\r\n\tCut = \"cut\",\r\n\r\n\tDatabase = \"database\",\r\n\tDelete = \"remove\",\r\n\tDesktop = \"desktop\",\r\n\tDoctor = \"user-md\",\r\n\tDollar = \"dollar\",\r\n\tDownload = \"download\",\r\n\tDropbox = \"dropbox\",\r\n\r\n\tEdge = \"edge\",\r\n\tEdit = \"pencil\",\r\n\tEject = \"eject\",\r\n\tEllipsisHorizontal = \"ellipsis-h\",\r\n\tEllipsisVertical = \"ellipsis-v\",\r\n\tEraser = \"eraser\",\r\n\tEur = \"eur\",\r\n\tExclamationMark = \"exclamation\",\r\n\tExclamationTriangle = \"exclamation-triangle\",\r\n\tExpand = \"expand\",\r\n\tEye = \"eye\",\r\n\tEyeDropper = \"eyedropper\",\r\n\tEyeSlash = \"eye-slash\",\r\n\r\n\tFacebook = \"facebook\",\r\n\tFacebookSquare = \"facebook-official\",\r\n\tFeed = \"feed\",\r\n\tFemale = \"female\",\r\n\tFile = \"file\",\r\n\tFileAudio = \"file-audio-o\",\r\n\tFileExcel = \"file-excel-o\",\r\n\tFileImage = \"file-image-o\",\r\n\tFileOut = \"file-o\",\r\n\tFileVideo = \"file-movie-o\",\r\n\tFilePdf = \"file-pdf-o\",\r\n\tFilesOut = \"files-o\",\r\n\tFileText = \"file-text\",\r\n\tFileTextOut = \"file-text-o\",\r\n\tFileWord = \"file-word-o\",\r\n\tFileZip = \"file-zip-o\",\r\n\tFilter = \"filter\",\r\n\tFirefox = \"firefox\",\r\n\tFlag = \"flag\",\r\n\tFlash = \"flash\",\r\n\tFolder = \"folder\",\r\n\tFolderOpen = \"folder-open\",\r\n\tFont = \"font\",\r\n\tFootball = \"futbol-o\",\r\n\tForward = \"forward\",\r\n\tForwardFast = \"fast-forward\",\r\n\tForwardStep = \"step-forward\",\r\n\tFutbolOut = \"futbol-o\",\r\n\r\n\tGift = \"gift\",\r\n\tGoogle = \"google\",\r\n\tGoogleWallet = \"google-wallet\",\r\n\tGroupPeople = \"group\",\r\n\r\n\tHeadPhones = \"headphones\",\r\n\tHistory = \"history\",\r\n\tHome = \"home\",\r\n\tHospitalOut = \"hospital-o\",\r\n\tHourGlass = \"hourglass-half\",\r\n\r\n\tImage = \"image\",\r\n\tInbox = \"inbox\",\r\n\tIndent = \"indent\",\r\n\tInfo = \"info-circle\",\r\n\tInstagram = \"instagram\",\r\n\tItalic = \"italic\",\r\n\r\n\tKey = \"key\",\r\n\r\n\tLaptop = \"laptop\",\r\n\tLevelDown = \"level-down\",\r\n\tLevelUp = \"level-up\",\r\n\tLink = \"link\",\r\n\tLinkExternal = \"external-link\",\r\n\tList = \"list\",\r\n\tListUl = \"list-ul\",\r\n\tLock = \"lock\",\r\n\tLocation = \"location-arrow\",\r\n\tLogIn = \"sign-in\",\r\n\tLogOut = \"sign-out\",\r\n\r\n\tMail = \"envelope\",\r\n\tMailForward = \"mail-forward\",\r\n\tMailOpen = \"envelope-open\",\r\n\tMailReply = \"mail-reply\",\r\n\tMailReplyAll = \"mail-reply-all\",\r\n\tMale = \"male\",\r\n\tMap = \"map\",\r\n\tMapMarker = \"map-marker\",\r\n\tMapOut = \"map-o\",\r\n\tMapPin = \"map-pin\",\r\n\tMasterCard = \"cc-mastercard\",\r\n\tMaximize = \"window-maximize\",\r\n\tMessage = \"comment\",\r\n\tMessageSend = \"send\",\r\n\tMessaging = \"commenting\",\r\n\tMicrophone = \"microphone\",\r\n\tMinimize = \"window-minimize\",\r\n\tMinusSquare = \"minus-square-o\",\r\n\tMobile = \"mobile\",\r\n\tMoney = \"money\",\r\n\tMouse = \"mouse-pointer\",\r\n\tMusic = \"music\",\r\n\r\n\tNewsPaper = \"newspaper-o\",\r\n\tNoBell = \"bell-slash\",\r\n\tNoVisible = \"eye-slash\",\r\n\tNoMicrophone = \"microphone-slash\",\r\n\r\n\tOpera = \"opera\",\r\n\tOutdent = \"outdent\",\r\n\r\n\tPaperClip = \"paperclip\",\r\n\tPaste = \"paste\",\r\n\tPause = \"pause\",\r\n\tPayPal = \"paypal\",\r\n\tPencil = \"pencil\",\r\n\tPencilSquare = \"pencil-square\",\r\n\tPencileSquareOut = \"pencil-square-o\",\r\n\tPhone = \"phone\",\r\n\tPlay = \"play\",\r\n\tPlus = \"plus\",\r\n\tPowerOff = \"power-off\",\r\n\tPrint = \"print\",\r\n\r\n\tQuestionMark = \"question\",\r\n\tQuoteLeft = \"quote-left\",\r\n\tQuoteRight = \"quote-right\",\r\n\r\n\tRandom = \"random\",\r\n\tRefresh = \"refresh\",\r\n\tReplyAll = \"reply-all\",\r\n\tRewind = \"backward\",\r\n\tRoom = \"archive\",\r\n\tRss = \"rss\",\r\n\r\n\tSafari = \"safari\",\r\n\tSave = \"save\",\r\n\tSearch = \"search\",\r\n\tSearchMinus = \"search-minus\",\r\n\tSearchPlus = \"search-plus\",\r\n\tSettings = \"cog\",\r\n\tShare = \"share\",\r\n\tShareAlt = \"share-alt\",\r\n\tShareAltSquare = \"share-alt-square\",\r\n\tShareSquare = \"share-square\",\r\n\tShareSquareOut = \"share-square-o\",\r\n\tShield = \"shield\",\r\n\tShip = \"ship\",\r\n\tShoppingBag = \"shopping-bag\",\r\n\tSignIn = \"sign-in\",\r\n\tSignOut = \"sign-out\",\r\n\tSite = \"globe\",\r\n\tSkype = \"skype\",\r\n\tSlack = \"slack\",\r\n\tSms = \"comment\",\r\n\tSort = \"sort\",\r\n\tSpinner = \"spinner\",\r\n\tSpinnerMoving = \"spinner fa-spin\",\r\n\tSquare = \"square\",\r\n\tStar = \"star\",\r\n\tStarHalf = \"star-half\",\r\n\tStethoscope = \"stethoscope\",\r\n\tStop = \"stop\",\r\n\tStripe = \"cc-stripe\",\r\n\r\n\tTable = \"table\",\r\n\tTablet = \"tablet\",\r\n\tTag = \"tag\",\r\n\tTags = \"tags\",\r\n\tThumbsUp = \"thumbs-up\",\r\n\tThumbsDown = \"thumbs-down\",\r\n\tTicket = \"ticket\",\r\n\tTimes = \"times\",\r\n\tTimesCircle = \"times-circle\",\r\n\tTimesCircleOut = \"times-circle-o\",\r\n\tTrash = \"trash\",\r\n\tTruck = \"truck\",\r\n\tTwitter = \"twitter\",\r\n\r\n\tUnderline = \"underline\",\r\n\tUndo = \"undo\",\r\n\tUnlink = \"unlink\",\r\n\tUnlock = \"unlock\",\r\n\tUpload = \"upload\",\r\n\tUser = \"user\",\r\n\tUserMd = \"user-md\",\r\n\tUserOut = \"user-o\",\r\n\tUsers = \"users\",\r\n\tUserTimes = \"user-times\",\r\n\r\n\tVideoCamera = \"video-camera\",\r\n\tVimeo = \"vimeo\",\r\n\tVisa = \"cc-visa\",\r\n\tVisible = \"eye\",\r\n\tVolumeDown = \"volume-down\",\r\n\tVolumeOff = \"volume-off\",\r\n\tVolumeUp = \"volume-up\",\r\n\r\n\tWhatsApp = \"whatsapp\",\r\n\tWiFi = \"wifi\",\r\n\tWikipedia = \"wikipedia-w\",\r\n\tWindows = \"windows\",\r\n\tWordpress = \"wordpress\",\r\n\r\n\tYahoo = \"yahoo\",\r\n\tYouTube = \"youtube\",\r\n\tYouTubePlay = \"youtube-play\"\r\n}\r\n\r\nexport class ColorSettings\r\n{\r\n\ttextColor?: string;\r\n\tbackground?: string;\r\n\tborder?: string;\r\n}\r\n\r\nexport function puma(element: any)\r\n{\r\n\treturn (shadowRoot() != null && jqueryVariable()(element).length == 0) ? jqueryVariable()(shadowRoot()).find(element) : jqueryVariable()(element);\r\n}\r\n\r\njQuery.prototype.appendToPuma = function (element: any)\r\n{\r\n\tlet container = puma(element);\r\n\treturn this.appendTo(container);\r\n}\r\n\r\njQuery.prototype.prependToPuma = function (element: any)\r\n{\r\n\tlet container = puma(element);\r\n\treturn this.prependTo(container);\r\n}\r\n\r\njQuery.prototype.appendPuma = function (element: any)\r\n{\r\n\tlet toCreate = puma(element);\r\n\treturn this.append(toCreate);\r\n}\r\n\r\njQuery.prototype.beforePuma = function (element: any)\r\n{\r\n\tlet elementJq = puma(element);\r\n\treturn this.before(elementJq);\r\n}\r\n\r\njQuery.prototype.afterPuma = function (element: any)\r\n{\r\n\tlet elementJq = puma(element);\r\n\treturn this.after(elementJq);\r\n}\r\n\r\njQuery.prototype.insertBeforePuma = function (element: any)\r\n{\r\n\tlet elementJq = puma(element);\r\n\treturn this.insertBefore(elementJq);\r\n}\r\n\r\njQuery.prototype.insertAfterPuma = function (element: any)\r\n{\r\n\tlet elementJq = puma(element);\r\n\treturn this.insertAfter(elementJq);\r\n}\r\n\r\nexport function shadowRoot(shadowRoot?: ShadowRoot)\r\n{\r\n\tif (shadowRoot != null)\r\n\t\t_shadowRootShared = shadowRoot;\r\n\r\n\treturn _shadowRootShared;\r\n}\r\n\r\nexport function jqueryVariable(jqueryVariable?: any)\r\n{\r\n\tif (jqueryVariable != null)\r\n\t\t_jqueryVariableShared = jqueryVariable;\r\n\r\n\treturn _jqueryVariableShared;\r\n}\r\n\r\nvar _shadowRootShared: ShadowRoot | null | undefined = null;\r\nvar _jqueryVariableShared: any = $;","import { BrowserTypeEnum } from \"./vrshared\";\r\n\r\nexport class DeviceManagerFile\r\n{\r\n\tstatic getScreenResolution()\r\n\t{\r\n\t\tlet screenResolution = new ScreenResolution();\r\n\t\tscreenResolution.width = window.screen.width;// * window.devicePixelRatio;\r\n\t\tscreenResolution.height = window.screen.height;// * window.devicePixelRatio;\r\n\t\treturn screenResolution;\r\n\t}\r\n\r\n\tstatic isSmartphone()\r\n\t{\r\n\t\treturn (this.getScreenResolution().width < 768);\r\n\t}\r\n\r\n\tstatic isTablet()\r\n\t{\r\n\t\tlet screenResolution = this.getScreenResolution();\r\n\t\treturn (screenResolution.width < 1200 && screenResolution.width >= 768);\r\n\t}\r\n\r\n\tstatic isDesktop()\r\n\t{\r\n\t\treturn (this.getScreenResolution().width >= 1200);\r\n\t}\r\n\r\n\tstatic isMobile()\r\n\t{\r\n\t\treturn this.isSmartphone() || this.isTablet();\r\n\t}\r\n\r\n\tstatic isIphoneX()\r\n\t{\r\n\t\tif (this.isIphone())\r\n\t\t{\r\n\t\t\tlet height = window.screen.height;\r\n\t\t\tlet width = window.screen.width;\r\n\t\t\tif (height > 800 && width > 370)\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic isIphone()\r\n\t{\r\n\t\treturn navigator.userAgent.match(/iPhone/i);\r\n\t}\r\n\r\n\tstatic isIpad()\r\n\t{\r\n\t\treturn navigator.userAgent.match(/iPad/i);\r\n\t}\r\n\r\n\tstatic isAndroid()\r\n\t{\r\n\t\treturn navigator.userAgent.match(/Android/i);\r\n\t}\r\n\r\n\tstatic browser()\r\n\t{\r\n\t\tif (this.isFirefox()) return BrowserTypeEnum.Firefox;\r\n\t\telse if (this.isEdge()) return BrowserTypeEnum.Edge;\r\n\t\telse if (this.isInternetExplorer()) return BrowserTypeEnum.InternetExplorer;\r\n\t\telse if (this.isOpera()) return BrowserTypeEnum.Opera;\r\n\t\telse if (this.isVivaldi()) return BrowserTypeEnum.Vivaldi;\r\n\t\telse if (this.isChrome()) return BrowserTypeEnum.Chrome;\r\n\t\telse if (this.isSafari()) return BrowserTypeEnum.Safari;\r\n\t\telse if (this.isSeamonkey()) return BrowserTypeEnum.Seamonkey;\r\n\t\telse\r\n\t\t\treturn \"Unknown\";\r\n\t}\r\n\r\n\tprivate static agentHas(keyword: string)\r\n\t{\r\n\t\treturn navigator.userAgent.toLowerCase().search(keyword.toLowerCase()) > -1;\r\n\t}\r\n\r\n\tstatic isInternetExplorer()\r\n\t{\r\n\t\treturn !!(document as any).documentMode || this.agentHas(\"MSIE\") || this.agentHas(\"Trident\");\r\n\t}\r\n\r\n\tstatic isSafari()\r\n\t{\r\n\t\treturn (!!(window as any).ApplePaySetupFeature || !!(window as any).safari)\r\n\t\t\t&& this.agentHas(\"Safari\") && !this.agentHas(\"Chrome\") && !this.agentHas(\"CriOS\") && !this.agentHas(\"Chromium\");\r\n\t}\r\n\r\n\tstatic isChrome()\r\n\t{\r\n\t\treturn (this.agentHas(\"CriOS\") || this.agentHas(\"Chrome\") || !!(window as any).chrome)\r\n\t\t\t&& !this.agentHas(\"Chromium\") && !this.agentHas(\"Edg\");\r\n\t}\r\n\r\n\tstatic isFirefox()\r\n\t{\r\n\t\treturn (this.agentHas(\"Firefox\") || this.agentHas(\"FxiOS\") || this.agentHas(\"Focus\")) && !this.agentHas(\"Seamonkey\");\r\n\t}\r\n\r\n\tstatic isEdge()\r\n\t{\r\n\t\treturn this.agentHas(\"Edg\");\r\n\t}\r\n\r\n\tstatic isOpera()\r\n\t{\r\n\t\treturn this.agentHas(\"OPR\") || this.agentHas(\"Opera\");\r\n\t}\r\n\r\n\tstatic isVivaldi()\r\n\t{\r\n\t\treturn this.agentHas(\"Vivaldi\");\r\n\t}\r\n\r\n\tstatic isSeamonkey()\r\n\t{\r\n\t\treturn this.agentHas(\"Seamonkey\");\r\n\t}\r\n}\r\n\r\nclass ScreenResolution\r\n{\r\n\twidth: number;\r\n\theight: number;\r\n}","import { puma } from \"./vrshared\";\r\n\r\nexport class LoaderManagerFile\r\n{\r\n\tstatic show(element?: string | HTMLElement | JQuery, transparency = true, tag?: any)\r\n\t{\r\n\t\tthis.addCss();\r\n\t\tif (tag == null)\r\n\t\t\ttag = \"vrLoadingTemp\";\r\n\r\n\t\t//#region\tLoader\telement\r\n\t\tlet loaderElement: HTMLElement | null = null;\r\n\t\tif (element == null)\r\n\t\t\tloaderElement = document.body;\r\n\t\telse if (typeof (element) == \"string\")\r\n\t\t{\r\n\t\t\tif (!element.startsWith(\"#\"))\r\n\t\t\t\telement = \"#\" + element;\r\n\t\t\tloaderElement = puma(element)[0];\r\n\t\t}\r\n\t\telse\r\n\t\t\tloaderElement = puma(element)[0];\r\n\r\n\t\tif (puma(loaderElement).css(\"position\") != \"absolute\")\r\n\t\t\tpuma(loaderElement).css(\"position\", \"relative\");\r\n\t\t//#endregion\r\n\r\n\t\t//#region\tTransparency\r\n\t\tlet opacity = \"0.5\";\r\n\t\tif (!transparency)\r\n\t\t\topacity = \"1\";\r\n\t\t//#endregion\r\n\r\n\t\t//#region\tWidth/Height\r\n\t\tlet elementWidth = puma(loaderElement).outerWidth();\r\n\t\tlet elementHeight = puma(loaderElement).outerHeight();\r\n\r\n\t\tlet loaderWidthNumber = elementHeight;\r\n\t\tif (loaderWidthNumber > 80)\r\n\t\t\tloaderWidthNumber = 80;\r\n\t\tlet loaderHeightNumber = elementHeight;\r\n\t\tif (loaderHeightNumber > 80)\r\n\t\t\tloaderHeightNumber = 80;\r\n\t\t//#endregion\r\n\r\n\t\t//#region\tBackground\r\n\t\tlet zIndex: number = 2500000;\r\n\t\tzIndex = String((puma(loaderElement).css(\"z-index\"))).getNumericPart() + 1;\r\n\t\tif (loaderElement == document.body)\r\n\t\t\tzIndex = 999999999;\r\n\r\n\t\tlet backgroundWidth = elementWidth + \"px\";\r\n\t\tlet backgroundHeight = elementHeight + \"px\";\r\n\r\n\t\tlet background: HTMLDivElement = document.createElement(\"div\");\r\n\t\tbackground.setAttribute(\"id\", \"loaderManager_background\");\r\n\t\tbackground.setAttribute(\"class\", \"loaderManager_background\");\r\n\t\tbackground.setAttribute(\"style\", \"position:\tabsolute; left: \" + loaderElement!.scrollLeft\r\n\t\t\t+ \"px; top: \" + loaderElement!.scrollTop + \"px;\tz-index: \" + zIndex.toString()\r\n\t\t\t+ \"; background-color: #FFF; opacity: \" + opacity + \"; width: \" + backgroundWidth + \"; height: \" + backgroundHeight + \";\");\r\n\t\tbackground.setAttribute(\"tag\", tag);\r\n\t\tpuma(background).vrAppendToPuma(loaderElement);\r\n\t\t//#endregion\r\n\r\n\t\t//#region\tLoader\r\n\t\tlet loaderLeftPosition = \"Calc(50% - \" + (loaderWidthNumber / 2 - loaderElement!.scrollLeft) + \"px)\";\r\n\t\tlet loaderTopPosition = \"Calc(50% - \" + (loaderWidthNumber / 2 - loaderElement!.scrollTop) + \"px)\";\r\n\t\tlet loaderWidth = loaderWidthNumber + \"px\";\r\n\t\tlet loaderHeight = loaderHeightNumber + \"px\";\r\n\r\n\t\tpuma(`\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t`).appendToPuma(loaderElement);\r\n\t\t//#endregion\r\n\t}\r\n\r\n\tstatic hide(tag?: any)\r\n\t{\r\n\t\tif (tag == null)\r\n\t\t{\r\n\t\t\tpuma(\"#loaderManager_background\").remove();\r\n\t\t\tpuma(\".loaderManager_loader\").remove();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tpuma(\".loaderManager_background[tag='\" + tag + \"']\").remove();\r\n\t\t\tpuma(\".loaderManager_loader[tag='\" + tag + \"']\").remove();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate static addCss()\r\n\t{\r\n\t\tif (puma(\"head\").find(\"style[id='vr_loader']\")[0] == null)\r\n\t\t{\r\n\t\t\tthis.addCssBase(`\r\n @keyframes loaderManager_loader1 {\r\n 0% {\r\n transform: scale(0);\r\n }\r\n 100% {\r\n transform: scale(1);\r\n }\r\n }\r\n\r\n @keyframes loaderManager_loader3 {\r\n 0% {\r\n transform: scale(1);\r\n }\r\n 100% {\r\n transform: scale(0);\r\n }\r\n }\r\n\r\n @keyframes loaderManager_loader2 {\r\n 0% {\r\n transform: translate(0, 0);\r\n }\r\n 100% {\r\n transform: translate(24px, 0);\r\n }\r\n }\r\n\r\n\t\t\t\t.loaderManager_step {\r\n\t\t\t\t\tbackground: #51B3E1;\r\n\t\t\t\t\tposition: absolute; \r\n\t\t\t\t\ttop: Calc(50% - 6.5px); \r\n\t\t\t\t\twidth: 13px; \r\n\t\t\t\t\theight: 13px; \r\n\t\t\t\t\tborder-radius: 50%; \r\n\t\t\t\t\tanimation-timing-function: cubic-bezier(0, 1, 1, 0);\r\n\t\t\t\t\tz-index: 999999999;\r\n\t\t\t\t}\r\n `);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate static addCssBase(cssRules: string)\r\n\t{\r\n\t\tpuma(\"\").appendToPuma(\"head\");\r\n\t}\r\n}","import { puma } from \"./vrshared\";\r\n\r\nexport { };\r\n\r\ndeclare global\r\n{\r\n\tinterface Number\r\n\t{\r\n\t\tgetIntegerPart(): number;\r\n\r\n\t\tgetDecimalPart(): number;\r\n\r\n\t\ttoCurrencyString(): string;\r\n\r\n\t\ttoDecimalString(decimals: number): string;\r\n\r\n\t\tround(decimals: number): number;\r\n\t}\r\n\r\n\tinterface ArrayConstructor\r\n\t{\r\n\t\t/** Returns if two array are equals */\r\n\t\tequals(array1: any[], array2: any[]): boolean;\r\n\r\n\t\t/** Returns intersected items */\r\n\t\tintersect(array1: any[], array2: any[]): any[];\r\n\t}\r\n\r\n\tinterface Array\r\n\t{\r\n\t\t/** This method return first element of array */\r\n\t\tfirst(): T;\r\n\r\n\t\t/** This method return last element of array */\r\n\t\tlast(): T;\r\n\r\n\t\t/** This method returns an array distincted */\r\n\t\tdistinct(): T[];\r\n\r\n\t\t/** This method returns an array of object distincted by specified property (Example: array.DistinctByProperty(k => k.Name)) */\r\n\t\tdistinctByProperty(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): T[];\r\n\r\n\t\t/** This method returns an array of specified property (Example: array.Select(k => k.Name) returns string[] array) */\r\n\t\tselect(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\r\n\r\n\t\t/** This method returns an array of specified property, but distincted (Example: array.DistinctSelect(k => k.Name)) */\r\n\t\tdistinctSelect(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\r\n\r\n\t\t/** This method groups an array group by specified property (Example: array.GroupBy(k => k.Name)) */\r\n\t\tgroupBy(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): any[];\r\n\r\n\t\t/** This method sorts an array (ascendent) by specified condition (Example: array.GroupBy(k => k.Name == \"Pumo\")) */\r\n\t\tsortAsc(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): T[];\r\n\r\n\t\t/** This method sorts an array (discendent) by specified condition (Example: array.GroupBy(k => k.Name == \"Pumo\")) */\r\n\t\tsortDesc(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): T[];\r\n\r\n\t\t/** This method sorts an array with QuickSort algorithm */\r\n\t\tquickSort(): void;\r\n\r\n\t\t/** This method sorts an array by multiple properties */\r\n\t\tsortBy(properties: string[]): void;\r\n\r\n\t\t/** This method turns a string array into number array */\r\n\t\ttoNumberArrayList(): number[];\r\n\r\n\t\t/** This method turns a any array into string array */\r\n\t\ttoStringArrayList(): string[];\r\n\r\n\t\t/** This method determines whether all elements of a sequence satisfy a condition */\r\n\t\tall(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): boolean;\r\n\r\n\t\t/** This method determines whether any element of a sequence exists or satisfies a condition */\r\n\t\tany(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): boolean;\r\n\r\n\t\t/** This method returns the max element of an array */\r\n\t\tmaxElement(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): T;\r\n\r\n\t\t/** This method returns the min element of an array */\r\n\t\tminElement(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): T;\r\n\r\n\t\t/** This method returns the max value of an array */\r\n\t\tmax(callbackfn?: (value: T, index: number, array: T[]) => U, thisArg?: any): number;\r\n\r\n\t\t/** This method returns the min value of an array */\r\n\t\tmin(callbackfn?: (value: T, index: number, array: T[]) => U, thisArg?: any): number;\r\n\r\n\t\t/** This method returns the average value of an array */\r\n\t\tavg(callbackfn?: (value: T, index: number, array: T[]) => U, thisArg?: any): number;\r\n\r\n\t\t/** This method bypasses a specified number of elements in a sequence and then returns the remaining elements */\r\n\t\tskip(index: number): T[];\r\n\r\n\t\t/** This method returns the sum of an array of numbers */\r\n\t\tsum(): number;\r\n\r\n\t\t/** This method returns the sum of a specified property */\r\n\t\tsum(callbackfn?: (value: T, index: number, array: T[]) => U, thisArg?: any): number;\r\n\r\n\t\t/** This method turns only 'number' elements */\r\n\t\ttake(number: number): T[];\r\n\r\n\t\t/** This method removes an element from an array */\r\n\t\tdelete(value: any): void;\r\n\r\n\t\t/** This method removes an element from an array */\r\n\t\tdeleteItem(item: any, key: string): void;\r\n\r\n\t\t/** This method removes an element from an array by condition */\r\n\t\tdeleteBy(callbackfn?: (value: T, index: number, array: T[]) => U, thisArg?: any): void;\r\n\r\n\t\t/** This method draws an array into a comma separated list. Ex: item1, item2 */\r\n\t\ttoCommaSeparatedList(): string;\r\n\r\n\t\t/** This method adds an array to another array */\r\n\t\tpushRange(arrayToAdd: any[]): void;\r\n\t}\r\n\r\n\tinterface DateConstructor\r\n\t{\r\n\t\t/** This method returns today date */\r\n\t\ttoday(): Date;\r\n\r\n\t\t/** This method correctly convert a Date to avoid time errors.\r\n\t\t * @param dateFromServer date passed from server to client.\r\n\t\t * @returns Returns a date. */\r\n\t\tconvertDateFromServer(dateFromServer?: Date | null): Date | null | undefined;\r\n\r\n\t\t/** This method correctly convert a Date to avoid time errors.\r\n\t\t * @param dateFromClient date passed from client to server.\r\n\t\t * @returns Returns a date. */\r\n\t\tconvertDateFromClient(dateFromClient?: Date | null): Date | null | undefined;\r\n\r\n\t\t/**\r\n\t\t * This method fixes dates that might be strings, always producing an actual date.\r\n\t\t * @param dateString The date to fix.\r\n\t\t */\r\n\t\tfixDateString(dateString: Date | string): Date;\r\n\r\n\t\t/** This method returns the difference (in seconds) between two dates. */\r\n\t\tdifferenceBetweenDatesInSeconds(firstDate: Date, secondDate: Date): number;\r\n\r\n\t\t/** This method returns the difference (in minutes) between two dates. */\r\n\t\tdifferenceBetweenDatesInMinutes(firstDate: Date, secondDate: Date): number;\r\n\r\n\t\t/** This method returns the difference (in days) between two dates. */\r\n\t\tdifferenceBetweenDatesInDays(firstDate: Date, secondDate: Date): number;\r\n\r\n\t\t/** This method returns the first day of week by date. */\r\n\t\tgetFirstDayOfWeekByDate(dateToCheck: Date): Date;\r\n\r\n\t\t/** This method returns the first day of month by date. */\r\n\t\tgetFirstDayOfMonthByDate(dateToCheck: Date): Date;\r\n\r\n\t\t/** This method returns the last day of month by date. */\r\n\t\tgetLastDayOfMonthByDate(dateToCheck: Date): Date;\r\n\r\n\t\t/** This method returns the first day of the year. */\r\n\t\tgetFirstDayOfYear(): Date;\r\n\r\n\t\t/** This method returns the last day of the year. */\r\n\t\tgetLastDayOfYear(): Date;\r\n\r\n\t\t/** This method returns true if two dates are equal */\r\n\t\tequals(firstDate: Date, secondDate: Date): boolean;\r\n\r\n\t\t/** This method returns the sundays of the month */\r\n\t\tgetSundaysOfMonthByDate(dateToCheck: Date): Date[];\r\n\r\n\t\t/** This method returns the name of the month */\r\n\t\tgetMonthNameByDate(date: Date): string;\r\n\r\n\t\t/** This method returns the days in a month */\r\n\t\tgetDaysInMonth(date: Date): number;\r\n\r\n\t\t/** Know if a period of dates are overlapped (A = firstPeriod, B = secondPeriod)\r\n\t\t * @param startA = start of the first period\r\n\t\t * @param endA = end of the first period\r\n\t\t * @param startB = start of the second period\r\n\t\t * @param endB = end of the second period*/\r\n\t\tarePeriodsOverlapped(startA: Date, endA: Date, startB: Date, endB: Date): boolean;\r\n\r\n\t\t/** Return if object is a valid date. */\r\n\t\tisValidDate(object: any): boolean;\r\n\r\n\t\ttoWebApiDateTime(date?: Date | null): any;\r\n\t}\r\n\r\n\tinterface JQuery\r\n\t{\r\n\t\tvrDrag(element?: HTMLElement | string | JQuery): void;\r\n\t}\r\n\r\n\tinterface Date\r\n\t{\r\n\t\t/** This method turns date into a string in this format: dd/mm/yyyy.\r\n\t\t* @returns Returns a string in this format: dd/mm/yyyy. */\r\n\t\ttoItalyShortString(): string;\r\n\r\n\t\t/** This method turns date into a string in this format: dd/mm/yyyy.\r\n\t\t* @returns Returns a string in this format: dd/mm/yyyy. */\r\n\t\ttoItalyLongString(): string;\r\n\r\n\t\t/** This method turns date into a string in this format: hh:MM.\r\n\t\t* @returns Returns a string in this format: hh:MM. */\r\n\t\ttoTimeString(seconds?: boolean): string;\r\n\r\n\t\t/** This method add years to a Date.\r\n\t\t* @returns Returns a Date */\r\n\t\taddYears(years: number): Date;\r\n\r\n\t\t/** This method add months to a Date.\r\n\t\t* @returns Returns a Date */\r\n\t\taddMonths(months: number): Date;\r\n\r\n\t\t/** This method add days to a Date.\r\n\t\t* @returns Returns a Date */\r\n\t\taddDays(days: number): Date;\r\n\r\n\t\t/** This method add hours (negative too) to a Date.\r\n\t\t* @returns Returns a Date */\r\n\t\taddHours(hours: number): Date;\r\n\r\n\t\t/** This method add minutes (negative too) to a Date.\r\n\t\t* @returns Returns a Date */\r\n\t\taddMinutes(minutes: number): Date;\r\n\r\n\t\t/** This method add seconds (negative too) to a Date.\r\n\t\t* @returns Returns a Date */\r\n\t\taddSeconds(seconds: number): Date;\r\n\r\n\t\t/** This method says if a date is between two dates. */\r\n\t\tisBetween(firstDate: Date, secondDate: Date): boolean;\r\n\r\n\t\t/** Gets the first day of the date's month. */\r\n\t\tgetMonthBegin(): Date;\r\n\r\n\t\t/** This method says if a date is less than other. */\r\n\t\tisLessThan(date: Date, equals?: boolean): boolean;\r\n\r\n\t\t/** This method says if a date is greater than other. */\r\n\t\tisGreaterThan(date: Date, equals?: boolean): boolean;\r\n\r\n\t\t/** This method says if a date is equal than other. */\r\n\t\tisEqualsTo(date: Date): boolean;\r\n\t}\r\n\r\n\tinterface String\r\n\t{\r\n\t\t/** Converts the first character of a string to upper case */\r\n\t\tcapitalize(): string;\r\n\r\n\t\t/** Each word or abbreviation in the middle of the phrase begins with a capital letter, with no intervening spaces or punctuation (ex: phoneNumber) */\r\n\t\tcamelCase(exceptFirst?: boolean): string;\r\n\r\n\t\t/** Punctuation is removed and spaces are replaced by single hyphen */\r\n\t\tkebabCase(): string;\r\n\r\n\t\t/** Punctuation is removed and spaces are replaced by single underscore */\r\n\t\tsnakeCase(): string;\r\n\r\n\t\t/** Converts the uppercase characters of a string to lowercase and lowercase characters to uppercase. */\r\n\t\tswapCase(): string;\r\n\r\n\t\t/** Only using capital letters for the principal words */\r\n\t\ttitleCase(): string;\r\n\r\n\t\t/** This method truncates a string at specified index and added three dots ... */\r\n\t\ttrunc(index: number, useWordBoundary?: boolean): string;\r\n\r\n\t\t/** This method returns only the numeric part of the string */\r\n\t\tgetNumericPart(): number;\r\n\r\n\t\t/** This method returns a new string with HTML tag */\r\n\t\ttoHTML(): string;\r\n\r\n\t\t/** This method returns a string into a float number */\r\n\t\ttoFloat(): number;\r\n\r\n\t\t/** This method returns a string into a integer number */\r\n\t\ttoInt(): number;\r\n\r\n\t\t/** This method returns a string replaced with RegExp */\r\n\t\treplaceOccurrence(regex: RegExp, replace: string, nthChild?: number): string;\r\n\r\n\t\t/** This method returns a string with lineBreak replaced with
*/\r\n\t\treplaceLineBreakWithHtml(): string;\r\n\r\n\t\t/** This method returns a string without spaces */\r\n\t\tremoveSpaces(): string;\r\n\r\n\t\tisNotNullOrEmpty(): boolean;\r\n\t\tisNullOrEmpty(): boolean;\r\n\t}\r\n\r\n\tinterface StringConstructor\r\n\t{\r\n\t\t/** Returns an empty string */\r\n\t\tempty: string;\r\n\r\n\t\t/** This method returns true if a string is not null and not empty\r\n\t\t * @param stringToCheck The string to check */\r\n\t\tisNotNullOrEmpty(stringToCheck?: string): boolean;\r\n\r\n\t\t/** This method returns true if a string is null or empty\r\n\t\t * @param stringToCheck The string to check */\r\n\t\tisNullOrEmpty(stringToCheck?: string): boolean;\r\n\t}\r\n}\r\n\r\n//#region String\r\nString.empty = \"\";\r\n\r\nString.isNotNullOrEmpty = function (stringToCheck: string): boolean\r\n{\r\n\treturn (stringToCheck != null && stringToCheck.length > 0);\r\n}\r\n\r\nString.isNullOrEmpty = function (stringToCheck: string): boolean\r\n{\r\n\treturn (stringToCheck == null || stringToCheck.length == 0);\r\n}\r\n\r\nString.prototype.capitalize = function ()\r\n{\r\n\treturn this.charAt(0).toUpperCase() + this.slice(1).toLowerCase();\r\n}\r\n\r\nString.prototype.camelCase = function (exceptFirst?: boolean)\r\n{\r\n\tif (exceptFirst == null) exceptFirst = false;\r\n\r\n\tlet words = this.split(\" \");\r\n\tfor (let word of words)\r\n\t\tword.capitalize();\r\n\r\n\tlet stringToReturn = words.toString().replace(\",\", \"\");\r\n\tif (exceptFirst)\r\n\t\tstringToReturn = stringToReturn[0].toLowerCase() + stringToReturn.substr(1);\r\n\r\n\treturn stringToReturn;\r\n}\r\n\r\nString.prototype.kebabCase = function (this)\r\n{\r\n\tif (this.length == 0)\r\n\t\treturn \"\";\r\n\r\n\treturn this\r\n\t\t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)!\r\n\t\t.map(x => x.toLowerCase())\r\n\t\t.join('-');\r\n}\r\n\r\nString.prototype.snakeCase = function (this)\r\n{\r\n\tif (this.length == 0)\r\n\t\treturn \"\";\r\n\r\n\treturn this\r\n\t\t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)!\r\n\t\t.map(x => x.toLowerCase())\r\n\t\t.join('_');\r\n}\r\n\r\nString.prototype.swapCase = function (this)\r\n{\r\n\tvar swapped = [];\r\n\tfor (let i = 0; i < this.length; i++)\r\n\t{\r\n\t\tif (this != \" \")\r\n\t\t{\r\n\t\t\tif (this[i] == this[i].toUpperCase())\r\n\t\t\t\tswapped.push(this[i].toLowerCase());\r\n\t\t\telse\r\n\t\t\t\tswapped.push(this[i].toUpperCase());\r\n\t\t}\r\n\t}\r\n\treturn swapped.join(\"\");\r\n}\r\n\r\nString.prototype.titleCase = function (this)\r\n{\r\n\treturn this.replace(/\\w\\S*/g, (txt) => { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase() });\r\n}\r\n\r\nString.prototype.trunc = function (index: number, useWordBoundary?: boolean)\r\n{\r\n\tif (useWordBoundary == null) useWordBoundary = true;\r\n\r\n\tif (this.length <= index) { return this.valueOf(); }\r\n\tvar subString = this.substr(0, index - 1);\r\n\treturn (useWordBoundary\r\n\t\t? subString.substr(0, subString.lastIndexOf(' '))\r\n\t\t: subString) + \"…\";\r\n};\r\n\r\nString.prototype.getNumericPart = function (this)\r\n{\r\n\tlet number = 0;\r\n\tif (this.length > 0)\r\n\t{\r\n\t\tvar valueNumber: RegExpMatchArray | null = this.match(/\\d/g);\r\n\t\tif (valueNumber != null)\r\n\t\t\tnumber = parseFloat(valueNumber.join(\"\"));\r\n\t}\r\n\r\n\treturn number;\r\n}\r\n\r\nString.prototype.toHTML = function (this)\r\n{\r\n\tlet resultString = this.replace(/\\n/g, \"
\");\r\n\treturn resultString;\r\n}\r\n\r\nString.prototype.toFloat = function (this)\r\n{\r\n\tif (this.valueOf() == \"\")\r\n\t\treturn 0;\r\n\telse\r\n\t\treturn parseFloat(this.valueOf());\r\n}\r\n\r\nString.prototype.toInt = function (this)\r\n{\r\n\tif (this.valueOf() == \"\")\r\n\t\treturn 0;\r\n\telse\r\n\t\treturn parseInt(this.valueOf());\r\n}\r\n\r\nString.prototype.replaceOccurrence = function (regex: RegExp, replace: string, nthChild?: number)\r\n{\r\n\tif (nthChild == null) nthChild = 1;\r\n\tlet i = 0;\r\n\treturn this.replace(regex, function (match)\r\n\t{\r\n\t\ti += 1;\r\n\t\treturn (nthChild != null && i === nthChild) ? replace : match;\r\n\t});\r\n}\r\n\r\nString.prototype.replaceLineBreakWithHtml = function ()\r\n{\r\n\treturn this.replace(/(?:\\r\\n|\\r|\\n)/g, '
');\r\n}\r\n\r\nString.prototype.removeSpaces = function ()\r\n{\r\n\treturn this.replace(/ +?/g, '');\r\n}\r\n\r\nString.prototype.isNotNullOrEmpty = function (this)\r\n{\r\n\treturn this != null && this != \"\";\r\n}\r\n\r\nString.prototype.isNullOrEmpty = function (this)\r\n{\r\n\treturn this == null || this == \"\";\r\n}\r\n//#endregion\r\n\r\n//#region Number\r\nNumber.prototype.getIntegerPart = function (): number\r\n{\r\n\treturn Math.trunc(this as number);\r\n}\r\n\r\nNumber.prototype.getDecimalPart = function (): number\r\n{\r\n\treturn Math.abs(this as number - this.getIntegerPart());\r\n}\r\n\r\nNumber.prototype.toCurrencyString = function (): string\r\n{\r\n\treturn \"€ \" + this.toDecimalString(2);\r\n}\r\n\r\nNumber.prototype.toDecimalString = function (decimals: number): string\r\n{\r\n\tlet rounded = this.round(decimals);\r\n\r\n\tlet intPart = rounded.getIntegerPart().toString();\r\n\tlet intPartWithPoints = \"\";\r\n\r\n\tlet points = Math.trunc((intPart.length - 1) / 3);\r\n\tlet pointsUsed = 0;\r\n\tfor (let i = 0; i < intPart.length + points; i++)\r\n\t{\r\n\t\tif (i % 4 == 3)\r\n\t\t{\r\n\t\t\tintPartWithPoints = \".\" + intPartWithPoints;\r\n\t\t\tpointsUsed++;\r\n\t\t} else\r\n\t\t{\r\n\t\t\tintPartWithPoints = intPart[intPart.length - i + pointsUsed - 1] + intPartWithPoints;\r\n\t\t}\r\n\t}\r\n\r\n\tlet decNum = Math.round(rounded.getDecimalPart() * 100) / 100;\r\n\tlet decPart = decNum.toString();\r\n\tdecPart = decPart.substr(2, decimals);\r\n\twhile (decPart.length < 2)\r\n\t\tdecPart += \"0\";\r\n\r\n\treturn intPartWithPoints + \",\" + decPart;\r\n}\r\n\r\nNumber.prototype.round = function (decimals: number): number\r\n{\r\n\tlet pow = Math.pow(10, decimals);\r\n\treturn Math.round((this as number) * pow) / pow;\r\n}\r\n//#endregion\r\n\r\n//#region Array\r\nArray.prototype.first = function ()\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this[0];\r\n\r\n\treturn null;\r\n}\r\n\r\nArray.prototype.last = function ()\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this[this.length - 1];\r\n\r\n\treturn null;\r\n}\r\n\r\nArray.prototype.distinct = function (this)\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn [...new Set(this)];\r\n\r\n\treturn [];\r\n}\r\n\r\nArray.prototype.distinctSelect = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn [...new Set(this.map(callbackfn))];\r\n\r\n\treturn [];\r\n}\r\n\r\nArray.prototype.distinctByProperty = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet arrayResult: any[] = [];\r\n\t\tlet arrayMap = new Map();\r\n\t\tlet property = callbackfn.toString().split(\".\")[1];\r\n\r\n\t\tfor (let item of this)\r\n\t\t{\r\n\t\t\tlet value: any;\r\n\t\t\tfor (let key in item)\r\n\t\t\t{\r\n\t\t\t\tif (key == property)\r\n\t\t\t\t\tvalue = item[key];\r\n\t\t\t}\r\n\r\n\t\t\tif (!arrayMap.has(value))\r\n\t\t\t{\r\n\t\t\t\tarrayMap.set(value, true);\r\n\t\t\t\tarrayResult.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arrayResult;\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nArray.prototype.select = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this.map(callbackfn);\r\n\r\n\treturn [];\r\n}\r\n\r\nArray.prototype.groupBy = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet property = callbackfn.toString().split(\".\")[1];\r\n\t\treturn this.reduce(function (groups, item)\r\n\t\t{\r\n\t\t\tconst val = item[property];\r\n\t\t\tgroups[val] = groups[val] || [];\r\n\t\t\tgroups[val].push(item);\r\n\t\t\treturn groups;\r\n\t\t}, {});\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nArray.prototype.all = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this.every(callbackfn);\r\n\r\n\treturn false;\r\n}\r\n\r\nArray.prototype.any = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this.some(callbackfn);\r\n\r\n\treturn false;\r\n}\r\n\r\nArray.prototype.maxElement = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet property = callbackfn.toString().split(\".\")[1];\r\n\t\tlet maxValue = this.reduce((oa, u) => Math.max(oa, u[property]), 0);\r\n\t\treturn this.filter(k => k[property] == maxValue)[0];\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nArray.prototype.minElement = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet property = callbackfn.toString().split(\".\")[1];\r\n\t\tlet minValue = this.reduce((oa, u) => Math.min(oa, u[property]), Number.MAX_VALUE);\r\n\t\treturn this.filter(k => k[property] == minValue)[0];\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nArray.prototype.max = function (callbackfn?: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tif (callbackfn != null)\r\n\t\t{\r\n\t\t\tlet property = callbackfn.toString().split(\".\")[1];\r\n\t\t\treturn this.reduce((oa, u) => Math.max(oa, u[property]), 0);\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn Math.max.apply(null, this);\r\n\t}\r\n\r\n\treturn 0;\r\n};\r\n\r\nArray.prototype.min = function (callbackfn?: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tif (callbackfn != null)\r\n\t\t{\r\n\t\t\tlet property = callbackfn.toString().split(\".\")[1];\r\n\t\t\treturn this.reduce((oa, u) => Math.min(oa, u[property]), Number.MAX_VALUE);\r\n\t\t}\r\n\t\telse\r\n\t\t\treturn Math.min.apply(null, this);\r\n\t}\r\n\r\n\treturn 0;\r\n};\r\n\r\nArray.prototype.skip = function (index: number)\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this.filter((u, i) => i >= index);\r\n\r\n\treturn this;\r\n}\r\n\r\nArray.prototype.sum = function (callbackfn?: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tif (callbackfn == null)\r\n\t\t\treturn this.reduce((ty, u) => ty + u, 0);\r\n\t\telse\r\n\t\t{\r\n\t\t\tlet property = callbackfn.toString().split(\"=>\")[1];\r\n\t\t\tlet sum: number = 0;\r\n\t\t\tthis.forEach(k => sum += eval(property));\r\n\t\t\treturn sum;\r\n\t\t}\r\n\t}\r\n\r\n\treturn 0;\r\n}\r\n\r\nArray.prototype.avg = function (callbackfn?: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tif (callbackfn == null)\r\n\t\t\treturn this.sum() / this.length;\r\n\t\telse\r\n\t\t{\r\n\t\t\tlet sum = this.sum(callbackfn);\r\n\t\t\treturn sum / this.length;\r\n\t\t}\r\n\t}\r\n\r\n\treturn 0;\r\n}\r\n\r\nArray.prototype.take = function (number: number)\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this.filter((u, i) => i < number);\r\n\r\n\treturn this;\r\n}\r\n\r\nArray.prototype.sortAsc = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet property = callbackfn.toString().split(\".\")[1];\r\n\t\tlet result = this.sort((a: any, b: any) => \r\n\t\t{\r\n\t\t\tif (a == null || b == null || a[property] == null || b[property] == null)\r\n\t\t\t\treturn 0;\r\n\r\n\t\t\tif (typeof (a[property]) == \"number\")\r\n\t\t\t{\r\n\t\t\t\tconst diff = a[property] - b[property];\r\n\t\t\t\tif (diff)\r\n\t\t\t\t\treturn diff;\r\n\t\t\t}\r\n\t\t\telse if (typeof (a[property]) == \"string\")\r\n\t\t\t{\r\n\t\t\t\t// Try to catch date\r\n\t\t\t\tlet tryDate = new Date(a[property]);\r\n\t\t\t\tif (!isNaN(tryDate.getTime()))\r\n\t\t\t\t\treturn new Date(a[property]).getTime() - new Date(b[property]).getTime();\r\n\t\t\t\telse\r\n\t\t\t\t\treturn a[property].localeCompare(b[property]);\r\n\t\t\t}\r\n\t\t\telse if (Object.prototype.toString.call(a[property]) === '[object Date]')\r\n\t\t\t\treturn new Date(a[property]).getTime() - new Date(b[property]).getTime();\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\treturn [];\r\n}\r\n\r\nArray.prototype.sortDesc = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet property = callbackfn.toString().split(\".\")[1];\r\n\t\tlet result = this.sort((a: any, b: any) =>\r\n\t\t{\r\n\t\t\tif (a == null || b == null || a[property] == null || b[property] == null)\r\n\t\t\t\treturn 0;\r\n\r\n\t\t\tif (typeof (b[property]) == \"number\")\r\n\t\t\t{\r\n\t\t\t\tconst diff = b[property] - a[property];\r\n\t\t\t\tif (diff)\r\n\t\t\t\t\treturn diff;\r\n\t\t\t}\r\n\t\t\telse if (typeof (b[property]) == \"string\")\r\n\t\t\t{\r\n\t\t\t\t// Try to catch date\r\n\t\t\t\tlet tryDate = new Date(b[property]);\r\n\t\t\t\tif (!isNaN(tryDate.getTime()))\r\n\t\t\t\t\treturn new Date(b[property]).getTime() - new Date(a[property]).getTime();\r\n\t\t\t\telse\r\n\t\t\t\t\treturn b[property].localeCompare(a[property]);\r\n\t\t\t}\r\n\t\t\telse if (Object.prototype.toString.call(b[property]) === '[object Date]')\r\n\t\t\t\treturn new Date(b[property]).getTime() - new Date(a[property]).getTime();\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\treturn [];\r\n}\r\n\r\n//#region Quick sort\r\nfunction swap(items: any[], leftIndex: number, rightIndex: number)\r\n{\r\n\tlet temp = items[leftIndex];\r\n\titems[leftIndex] = items[rightIndex];\r\n\titems[rightIndex] = temp;\r\n}\r\n\r\nfunction partition(items: any[], left: number, right: number)\r\n{\r\n\tlet pivot = items[Math.floor((right + left) / 2)];\r\n\twhile (left <= right)\r\n\t{\r\n\t\twhile (items[left] < pivot)\r\n\t\t\tleft++;\r\n\r\n\t\twhile (items[right] > pivot)\r\n\t\t\tright--;\r\n\r\n\t\tif (left <= right)\r\n\t\t{\r\n\t\t\tswap(items, left, right);\r\n\t\t\tleft++;\r\n\t\t\tright--;\r\n\t\t}\r\n\t}\r\n\treturn left;\r\n}\r\n\r\nfunction quickSort(items: any[], left: number, right: number)\r\n{\r\n\tvar index;\r\n\tif (items.length > 1)\r\n\t{\r\n\t\tindex = partition(items, left, right);\r\n\t\tif (left < index - 1)\r\n\t\t\tquickSort(items, left, index - 1);\r\n\r\n\t\tif (index < right)\r\n\t\t\tquickSort(items, index, right);\r\n\t}\r\n\treturn items;\r\n}\r\n\r\nArray.prototype.quickSort = function ()\r\n{\r\n\tif (Array.isArray(this))\r\n\t\tquickSort(this as any, 0, this.length - 1);\r\n}\r\n//#endregion\r\n\r\n//#region Sort by\r\nfunction dynamicSort(property: string)\r\n{\r\n\tvar sortOrder = 1;\r\n\tif (property[0] === \"-\")\r\n\t{\r\n\t\tsortOrder = -1;\r\n\t\tproperty = property.substr(1);\r\n\t}\r\n\r\n\treturn function (a: any, b: any)\r\n\t{\r\n\t\tvar result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;\r\n\t\tif (a[property] == \"\" || b[property] == \"\")\r\n\t\t\tresult = a[property] == \"\" ? 1 : -1;\r\n\t\treturn result * sortOrder;\r\n\t}\r\n}\r\n\r\nfunction dynamicSortMultiple()\r\n{\r\n\tvar props = arguments;\r\n\treturn function (obj1: any, obj2: any)\r\n\t{\r\n\t\tvar i = 0, result = 0, numberOfProperties = props.length;\r\n\t\twhile (result === 0 && i < numberOfProperties)\r\n\t\t{\r\n\t\t\tresult = dynamicSort(props[i])(obj1, obj2);\r\n\t\t\ti++;\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n}\r\n\r\nArray.prototype.sortBy = function (properties: string[])\r\n{\r\n\tif (Array.isArray(this))\r\n\t\tthis.sort(dynamicSortMultiple.apply(null, properties as any));\r\n}\r\n//#endregion\r\n\r\nArray.prototype.toNumberArrayList = function ()\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this.map((value) => { return parseFloat(value) });\r\n\r\n\treturn [];\r\n}\r\n\r\nArray.prototype.toStringArrayList = function ()\r\n{\r\n\tif (Array.isArray(this))\r\n\t\treturn this.map((value) => { return String(value) });\r\n\r\n\treturn [];\r\n}\r\n\r\nArray.prototype.delete = function (value: any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet index = this.indexOf(value);\r\n\t\tif (index != -1)\r\n\t\t\tthis.splice(index, 1);\r\n\t}\r\n}\r\n\r\nArray.prototype.deleteItem = function (item: any, key: string)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet index = this.map(k => k[key]).indexOf(item[key]);\r\n\t\tif (index != -1)\r\n\t\t\tthis.splice(index, 1);\r\n\t}\r\n}\r\n\r\nArray.prototype.deleteBy = function (callbackfn: (value: any, index: number, array: any[]) => any)\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet itemToDelete = this.filter(callbackfn)[0];\r\n\t\tif (itemToDelete != null)\r\n\t\t\tthis.delete(itemToDelete);\r\n\t}\r\n}\r\n\r\nArray.prototype.toCommaSeparatedList = function ()\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tlet result = \"\";\r\n\t\tfor (let item of this)\r\n\t\t\tresult += item.toString() + \", \";\r\n\r\n\t\treturn result.substring(0, result.length - 2);\r\n\t}\r\n\telse\r\n\t\treturn \"\";\r\n}\r\n\r\nArray.prototype.pushRange = function (arrayToAdd: any[])\r\n{\r\n\tif (Array.isArray(this))\r\n\t{\r\n\t\tfor (let element of arrayToAdd)\r\n\t\t\tthis.push(element);\r\n\t}\r\n}\r\n\r\nArray.equals = function (array1: any[], array2: any[]): boolean\r\n{\r\n\tif (Array.isArray(array1) && Array.isArray(array2))\r\n\t{\r\n\t\tlet array1Length = array1.length;\r\n\r\n\t\tif (array1 == null || array2 == null) return false;\r\n\t\tif (array1Length != array2.length) return false;\r\n\r\n\t\tlet arr1 = array1.concat().sort();\r\n\t\tlet arr2 = array2.concat().sort();\r\n\r\n\t\tfor (let i = 0; i < arr1.length; ++i)\r\n\t\t{\r\n\t\t\tif (arr1[i] !== arr2[i])\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nArray.intersect = function (array1: any[], array2: any[]): any[]\r\n{\r\n\tif (Array.isArray(array1) && Array.isArray(array2))\r\n\t\treturn array1.filter(k => array2.includes(k));\r\n\r\n\treturn [];\r\n}\r\n//#endregion\r\n\r\n//#region JQuery\r\njQuery.prototype.vrDrag = function (element?: HTMLElement | string | JQuery, onStart?: (e: { left: number, top: number }) => void, onEnd?: (e: { left: number, top: number }) => void)\r\n{\r\n\tthis.mousedown((emd: JQuery.MouseDownEvent) =>\r\n\t{\r\n\t\tlet startingXPosition = emd.clientX;\r\n\t\tlet startingYPosition = emd.clientY;\r\n\t\tlet diff = emd.clientX - puma(this[0])!.offset()!.left;\r\n\r\n\t\t// Moving\r\n\t\tpuma(document).mousemove((emm: JQuery.MouseMoveEvent) => \r\n\t\t{\r\n\t\t\tif (!(emm.clientX == startingXPosition && emm.clientY == startingYPosition))\r\n\t\t\t{\r\n\t\t\t\tlet elementToDrag: JQuery = this;\r\n\t\t\t\tif (element != null)\r\n\t\t\t\t\telementToDrag = puma(element as any);\r\n\r\n\t\t\t\telementToDrag.offset({ top: emm.clientY, left: (emm.clientX - diff) });\r\n\t\t\t\tif (onStart != null)\r\n\t\t\t\t{\r\n\t\t\t\t\tlet position: any = {};\r\n\t\t\t\t\tposition.left = emm.clientX - diff;\r\n\t\t\t\t\tposition.top = emm.clientY;\r\n\t\t\t\t\tonStart(position);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Stop moving\r\n\t\tpuma(document).mouseup((emm: JQuery.MouseUpEvent) =>\r\n\t\t{\r\n\t\t\tpuma(document).unbind(\"mouseup\");\r\n\t\t\tpuma(document).unbind(\"mousemove\");\r\n\r\n\t\t\tif (onEnd != null)\r\n\t\t\t{\r\n\t\t\t\tlet position: any = {};\r\n\t\t\t\tposition.left = emm.clientX - (puma(this[0]!).width()! / 2);\r\n\t\t\t\tposition.top = emm.clientY;\r\n\t\t\t\tonEnd(position);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n//#endregion\r\n\r\n//#region Date\r\nDate.convertDateFromServer = function (dateFromServer?: Date | null): Date | null | undefined\r\n{\r\n\tif (dateFromServer != null)\r\n\t{\r\n\t\tdateFromServer = Date.fixDateString(dateFromServer);\r\n\t\tlet dateConverted = new Date(dateFromServer.getUTCFullYear(), dateFromServer.getUTCMonth(), dateFromServer.getUTCDate(), dateFromServer.getUTCHours(), dateFromServer.getUTCMinutes(), dateFromServer.getUTCSeconds());\r\n\t\treturn dateConverted;\r\n\t}\r\n\telse\r\n\t\treturn dateFromServer;\r\n}\r\n\r\nDate.convertDateFromClient = function (dateFromClient?: Date | null): Date | null | undefined\r\n{\r\n\tif (dateFromClient != null)\r\n\t{\r\n\t\tdateFromClient = Date.fixDateString(dateFromClient);\r\n\t\tlet dateConverted = new Date(Date.UTC(dateFromClient.getFullYear(), dateFromClient.getMonth(), dateFromClient.getDate(), dateFromClient.getHours(), dateFromClient.getMinutes(), dateFromClient.getSeconds()));\r\n\t\treturn dateConverted;\r\n\t}\r\n\telse\r\n\t\treturn dateFromClient;\r\n}\r\n\r\nDate.fixDateString = function (dateString: Date): Date\r\n{\r\n\tif (dateString != null && !(Object.prototype.toString.call(dateString) === '[object Date]'))\r\n\t{\r\n\t\tlet tempDateString = dateString.toString();\r\n\t\tlet dateSplitted = tempDateString.split(/[^0-9]/).toNumberArrayList();\r\n\t\tlet date = new Date(dateSplitted[0], dateSplitted[1] - 1, dateSplitted[2], dateSplitted[3], dateSplitted[4], dateSplitted[5]);\r\n\t\tdateString = new Date(date.toString());\r\n\t}\r\n\r\n\treturn dateString;\r\n}\r\n\r\nDate.differenceBetweenDatesInSeconds = function (firstDate: Date, secondDate: Date): number\r\n{\r\n\tlet first = this.fixDateString(firstDate);\r\n\tlet second = this.fixDateString(secondDate);\r\n\r\n\tlet difference = first.getTime() - second.getTime();\r\n\tlet secondsDifference = difference / 1000;\r\n\treturn Math.abs(secondsDifference);\r\n}\r\n\r\nDate.differenceBetweenDatesInMinutes = function (firstDate: Date, secondDate: Date): number\r\n{\r\n\tlet first = this.fixDateString(firstDate);\r\n\tlet second = this.fixDateString(secondDate);\r\n\r\n\tlet difference = first.getTime() - second.getTime();\r\n\tlet secondsDifference = difference / 1000;\r\n\treturn Math.abs(secondsDifference / 60);\r\n}\r\n\r\nDate.differenceBetweenDatesInDays = function (firstDate: Date, secondDate: Date): number\r\n{\r\n\tlet first = this.fixDateString(firstDate);\r\n\tlet second = this.fixDateString(secondDate);\r\n\r\n\tlet difference = first.getTime() - second.getTime();\r\n\tlet secondsDifference = difference / 1000;\r\n\treturn Math.abs(secondsDifference / 60 / 60 / 24);\r\n}\r\n\r\nDate.getFirstDayOfWeekByDate = function (dateToCheck: Date): Date\r\n{\r\n\tlet date = new Date(dateToCheck);\r\n\tlet day = date.getDay(),\r\n\t\tdiff = date.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday\r\n\treturn new Date(date.setDate(diff));\r\n}\r\n\r\nDate.getFirstDayOfMonthByDate = function (dateToCheck: Date): Date\r\n{\r\n\tlet date = new Date(dateToCheck);\r\n\treturn new Date(date.getFullYear(), date.getMonth(), 1);\r\n}\r\n\r\nDate.getLastDayOfMonthByDate = function (dateToCheck: Date): Date\r\n{\r\n\tlet date = new Date(dateToCheck);\r\n\treturn new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n}\r\n\r\nDate.getFirstDayOfYear = function (): Date\r\n{\r\n\treturn new Date(Date.today().getFullYear(), 0, 1);\r\n}\r\n\r\nDate.getLastDayOfYear = function (): Date\r\n{\r\n\treturn new Date(Date.today().getFullYear(), 11, 31);\r\n}\r\n\r\nDate.equals = function (firstDate: Date, secondDate: Date): boolean\r\n{\r\n\treturn firstDate.getTime() === secondDate.getTime();\r\n}\r\n\r\nDate.getSundaysOfMonthByDate = function (dateToCheck: Date): Date[]\r\n{\r\n\tdateToCheck = new Date(dateToCheck);\r\n\tlet yearToCheck = dateToCheck.getFullYear();\r\n\tlet monthToCheck = dateToCheck.getMonth();\r\n\r\n\tlet day = 1;\r\n\tlet sundays: Date[] = [];\r\n\tlet date = new Date(yearToCheck, monthToCheck, day);\r\n\r\n\twhile (date.getMonth() === monthToCheck)\r\n\t{\r\n\t\tif (date.getDay() === 0) // Sunday\r\n\t\t\tsundays.push(date);\r\n\r\n\t\tday += 1;\r\n\t\tdate = new Date(yearToCheck, monthToCheck, day);\r\n\t}\r\n\treturn sundays;\r\n}\r\n\r\nDate.getMonthNameByDate = function (date: Date): string\r\n{\r\n\tdate = this.fixDateString(date);\r\n\treturn date.toLocaleString('it-IT', { month: 'long' });\r\n}\r\n\r\nDate.getDaysInMonth = function (date: Date): number\r\n{\r\n\treturn new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\r\n}\r\n\r\nDate.arePeriodsOverlapped = function (startA: Date, endA: Date, startB: Date, endB: Date)\r\n{\r\n\treturn (startA.getTime() < endB.getTime() && endA.getTime() > startB.getTime());\r\n}\r\n\r\nDate.isValidDate = function (object: any): boolean\r\n{\r\n\tif (Object.prototype.toString.call(object) === \"[object Date]\")\r\n\t{\r\n\t\tif (isNaN(object.getTime()))\r\n\t\t\treturn false;\r\n\t\telse\r\n\t\t\treturn true;\r\n\t}\r\n\telse\r\n\t\treturn false;\r\n}\r\n\r\nDate.today = function (): Date\r\n{\r\n\treturn new Date();\r\n}\r\n\r\nDate.toWebApiDateTime = function (date?: Date | null)\r\n{\r\n\tif (date != null)\r\n\t{\r\n\t\tdate = Date.fixDateString(date);\r\n\t\tif (Date.isValidDate(date))\r\n\t\t{\r\n\t\t\treturn {\r\n\t\t\t\tday: date!.getDate(),\r\n\t\t\t\tmonth: date!.getMonth() + 1,\r\n\t\t\t\tyear: date!.getFullYear(),\r\n\t\t\t\thours: date!.getHours(),\r\n\t\t\t\tminutes: date!.getMinutes(),\r\n\t\t\t\tseconds: date!.getSeconds(),\r\n\t\t\t\tmilliSeconds: date!.getMilliseconds()\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nDate.prototype.toItalyLongString = function (this): string\r\n{\r\n\tlet day = this.getDay();\r\n\tlet dayName = \"\";\r\n\tswitch (day)\r\n\t{\r\n\t\tcase 0: dayName = \"Domenica\"; break;\r\n\t\tcase 1: dayName = \"Lunedì\"; break;\r\n\t\tcase 2: dayName = \"Martedì\"; break;\r\n\t\tcase 3: dayName = \"Mercoledì\"; break;\r\n\t\tcase 4: dayName = \"Giovedì\"; break;\r\n\t\tcase 5: dayName = \"Venerdì\"; break;\r\n\t\tcase 6: dayName = \"Sabato\"; break;\r\n\t}\r\n\treturn dayName + \", \" + this.toItalyShortString();\r\n}\r\n\r\nDate.prototype.toItalyShortString = function (this): string\r\n{\r\n\t// date.toLocaleDateString(\"it-IT\", { weekDay: 'short' })\r\n\tlet yyyy: number = this.getFullYear();\r\n\tlet mm: number = this.getMonth() + 1;\r\n\tlet dd: number = this.getDate();\r\n\tlet hh: number = this.getHours();\r\n\tlet MM: number = this.getMinutes();\r\n\r\n\tlet dateString: string = [(dd > 9 ? '' : '0') + dd, (mm > 9 ? '' : '0') + mm, yyyy].join('/');\r\n\treturn dateString;\r\n}\r\n\r\nDate.prototype.toTimeString = function (seconds?: boolean): string\r\n{\r\n\tlet hh: number = this.getHours();\r\n\tlet MM: number = this.getMinutes();\r\n\tlet ss: number = this.getSeconds();\r\n\r\n\tlet dateString: string = [(hh > 9 ? '' : '0') + hh, (MM > 9 ? '' : '0') + MM].join(':');\r\n\tif (seconds === true)\r\n\t\tdateString += \":\" + (ss > 9 ? '' : '0') + ss;\r\n\r\n\treturn dateString;\r\n}\r\n\r\nDate.prototype.addYears = function (years: number): Date\r\n{\r\n\tlet date: Date = new Date(this.valueOf());\r\n\tdate.setFullYear(date.getFullYear() + years);\r\n\treturn date;\r\n}\r\n\r\nDate.prototype.addMonths = function (months: number): Date\r\n{\r\n\tlet date: Date = new Date(this.valueOf());\r\n\tdate.setMonth(date.getMonth() + months);\r\n\treturn date;\r\n}\r\n\r\nDate.prototype.addDays = function (days: number): Date\r\n{\r\n\tlet date: Date = new Date(this.valueOf());\r\n\tdate.setDate(date.getDate() + days);\r\n\treturn date;\r\n}\r\n\r\nDate.prototype.addHours = function (hours: number): Date\r\n{\r\n\tthis.setTime(this.getTime() + (hours * 60 * 60 * 1000));\r\n\treturn this;\r\n}\r\n\r\nDate.prototype.addMinutes = function (minutes: number): Date\r\n{\r\n\tthis.setTime(this.getTime() + (minutes * 60 * 1000));\r\n\treturn this;\r\n}\r\n\r\nDate.prototype.addSeconds = function (seconds: number): Date\r\n{\r\n\tthis.setTime(this.getTime() + (seconds * 1000));\r\n\treturn this;\r\n}\r\n\r\nDate.prototype.isBetween = function (firstDate: Date, secondDate: Date): boolean\r\n{\r\n\tlet millisecondsFirstDate = firstDate.getTime();\r\n\tlet millisecondsSecondDate = secondDate.getTime();\r\n\tlet millisecondsDateToCheck = this.getTime();\r\n\r\n\tif (millisecondsDateToCheck >= millisecondsFirstDate && millisecondsDateToCheck <= millisecondsSecondDate)\r\n\t\treturn true;\r\n\r\n\treturn false;\r\n}\r\n\r\nDate.prototype.getMonthBegin = function (): Date\r\n{\r\n\tlet copy = new Date(this);\r\n\tcopy.setDate(1);\r\n\treturn copy;\r\n}\r\n\r\nDate.prototype.isEqualsTo = function (date: Date): boolean\r\n{\r\n\treturn (this.getTime() == date.getTime());\r\n}\r\n\r\nDate.prototype.isLessThan = function (date: Date, equals = false): boolean\r\n{\r\n\tif (equals)\r\n\t\treturn (this.getTime() <= date.getTime());\r\n\telse\r\n\t\treturn (this.getTime() < date.getTime());\r\n}\r\n\r\nDate.prototype.isGreaterThan = function (date: Date, equals = false): boolean\r\n{\r\n\tif (equals)\r\n\t\treturn (this.getTime() >= date.getTime());\r\n\telse\r\n\t\treturn (this.getTime() > date.getTime());\r\n}\r\n//#endregion","import { CookieOptions, CookieSameSiteEnum } from \"./vrshared\";\r\n\r\nexport class CookieManagerFile\r\n{\r\n private static setCookieInternal(cookieName: string, cookieValue: any, expireMilliseconds: number, options?: CookieOptions)\r\n {\r\n //#region Expire\r\n var d = new Date();\r\n d.setTime(d.getTime() + expireMilliseconds);\r\n var expires = \"expires=\" + d.toString();\r\n //#endregion\r\n\r\n //#region Options\r\n let optionsString = \"\";\r\n if (options != null)\r\n {\r\n if (options.httpOnly)\r\n optionsString += \"HttpOnly;\";\r\n\r\n if (options.secured)\r\n optionsString += \"secure;\";\r\n\r\n if (options.sameSite != null)\r\n {\r\n switch (options.sameSite)\r\n {\r\n case CookieSameSiteEnum.Lax: optionsString += \"SameSite=Lax;\"; break;\r\n case CookieSameSiteEnum.Strict: optionsString += \"SameSite=Strict;\"; break;\r\n case CookieSameSiteEnum.None: optionsString += \"SameSite=None;\"; break;\r\n }\r\n }\r\n }\r\n //#endregion\r\n\r\n document.cookie = cookieName + \"=\" + cookieValue + \";\" + expires + \";path=/;\" + optionsString;\r\n }\r\n\r\n static setCookie(cookieName: string, cookieValue: any, expireDays = 365, options?: CookieOptions)\r\n {\r\n let expireMilliseconds = expireDays * 24 * 60 * 60 * 1000;\r\n this.setCookieInternal(cookieName, cookieValue, expireMilliseconds, options);\r\n }\r\n\r\n static setCookieYears(cookieName: string, cookieValue: any, expireYears = 1, options?: CookieOptions)\r\n {\r\n let expireMilliseconds = expireYears * 365 * 24 * 60 * 60 * 1000;\r\n this.setCookieInternal(cookieName, cookieValue, expireMilliseconds, options);\r\n }\r\n\r\n static setCookieHours(cookieName: string, cookieValue: any, expireHours = 1, options?: CookieOptions)\r\n {\r\n let expireMilliseconds = expireHours * 60 * 60 * 1000;\r\n this.setCookieInternal(cookieName, cookieValue, expireMilliseconds, options);\r\n }\r\n\r\n static setCookieMinutes(cookieName: string, cookieValue: any, expireMinutes = 20, options?: CookieOptions)\r\n {\r\n let expireMilliseconds = expireMinutes * 60 * 1000;\r\n this.setCookieInternal(cookieName, cookieValue, expireMilliseconds, options);\r\n }\r\n\r\n static setCookieSeconds(cookieName: string, cookieValue: any, seconds: number = 10, options?: CookieOptions)\r\n {\r\n let expireMilliseconds = seconds * 1000;\r\n this.setCookieInternal(cookieName, cookieValue, expireMilliseconds, options);\r\n }\r\n\r\n static deleteCookie(name: string) \r\n {\r\n document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n }\r\n\r\n static getCookie(cookieName: string): string\r\n {\r\n var name = cookieName + \"=\";\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++)\r\n {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ')\r\n c = c.substring(1);\r\n\r\n if (c.indexOf(name) == 0)\r\n return c.substring(name.length, c.length);\r\n }\r\n return \"\";\r\n }\r\n}","import { puma } from \"./vrshared\";\r\n\r\nexport class NotificationManagerFile\r\n{\r\n\tstatic showNotification(message: string, title?: string | null)\r\n\t{\r\n\t\tthis.createDivNotification(false, message, title);\r\n\t}\r\n\r\n\tstatic showError(message: string, title?: string | null, stackTrace?: string | null, popup = false)\r\n\t{\r\n\t\tthis.createDivNotification(true, message, title, stackTrace, popup);\r\n\t}\r\n\r\n\tprivate static createDivNotification(error = false, message: string, title?: string | null, stackTrace?: string | null, popup?: boolean)\r\n\t{\r\n\t\tpuma(\".notificationManager_divNotification\").remove();\r\n\t\tthis.addCss();\r\n\t\tlet notificationClass = (error) ? \"notificationError\" : \"notificationMessage\";\r\n\t\tlet divNotification = puma(\"
\").appendToPuma(document.body)[0];\r\n\r\n\t\t//#region Title\r\n\t\tif (title != null)\r\n\t\t{\r\n\t\t\tlet titleClass = (error) ? \"notificationManager_divNotificationErrorTitle\" : \"notificationManager_divNotificationTitle\";\r\n\t\t\tlet divTitle = puma(\"
\").appendToPuma(divNotification)[0];\r\n\t\t\tdivTitle.innerHTML = \"\" + title.trim() + \"\";\r\n\t\t}\r\n\t\t//#endregion\r\n\r\n\t\t//#region Message\r\n\t\tlet messageClass = (error) ? \"notificationManager_divNotificationErrorMessage\" : \"notificationManager_divNotificationMessage\";\r\n\t\tlet divMessage = puma(\"
\").appendToPuma(divNotification)[0];\r\n\t\tdivMessage.innerHTML = message;\r\n\t\t//#endregion\r\n\r\n\t\tthis.animateSlideDownFromTop(divNotification, puma(divNotification).height());\r\n\t\tsetTimeout(() => this.animateSlideUpToTop(divNotification, divNotification.clientHeight), 3000);\r\n\t}\r\n\r\n\tprivate static addCss()\r\n\t{\r\n\t\tif (puma(\".notificationManager_divNotification\").length == 0 && puma(\".notificationManager_divNotificationError\").length == 0)\r\n\t\t{\r\n\t\t\tthis.addCssRules(`\r\n\t\t\t\t/*#region Notification*/\r\n\t\t\t\t.notificationManager_divNotification\r\n\t\t\t\t{\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t\tleft: 50%;\r\n\t\t\t\t\ttransform: translateX(-50%);\r\n\t\t\t\t\tz-index: 9999999;\r\n\t\t\t\t\tcursor: pointer;\r\n\t\t\t\t\tmin-height: 40px;\r\n\t\t\t\t\tpadding: 2px;\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t\ttop: -40px;\r\n\t\t\t\t\tborder-radius: 10px;\r\n\t\t\t\t\ttext-align: center;\r\n\t\t\t\t\tpadding-left: 10px;\r\n\t\t\t\t\tpadding-right: 10px;\r\n\t\t\t\t\tjustify-content: center;\r\n\t\t\t\t\talign-items: center;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.notificationManager_divNotification.notificationError\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-color: #F5F50A; \r\n\t\t\t\t\tborder: solid 2px #B9A500;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t.notificationManager_divNotification.notificationMessage\r\n\t\t\t\t{\r\n\t\t\t\t\tbackground-color: #E3F1FA; \r\n\t\t\t\t\tborder: solid 2px #51B3E1;\r\n\t\t\t\t}\r\n\t\t\t\t/*#endregion*/\r\n\r\n\t\t\t\t@media only screen and (max-width: 800px) \r\n\t\t\t\t{\r\n\t\t\t\t\t.notificationManager_divNotification \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\twidth: Calc(100% - 30px);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@media only screen and (min-width: 801px) \r\n\t\t\t\t{\r\n\t\t\t\t\t.notificationManager_divNotification \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmin-width: 500px;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n`\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate static addCssRules(cssRules: string)\r\n\t{\r\n\t\tpuma(\"\").appendToPuma(\"head\");\r\n\t}\r\n\r\n\tprivate static animateSlideDownFromTop(element: HTMLElement, elementHeight: number, speedInMilliseconds?: number)\r\n\t{\r\n\t\tif (!puma(element).is(\":visible\"))\r\n\t\t\tpuma(element).show();\r\n\r\n\t\tlet toPosition = 0;\r\n\t\tlet fromPosition = elementHeight - (2 * elementHeight);\r\n\t\tif (speedInMilliseconds == null)\r\n\t\t\tspeedInMilliseconds = 5;\r\n\r\n\t\tlet id = setInterval(slideDownFromTop, speedInMilliseconds);\r\n\t\tfunction slideDownFromTop()\r\n\t\t{\r\n\t\t\tif (fromPosition == toPosition)\r\n\t\t\t\tclearInterval(id);\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tfromPosition++;\r\n\t\t\t\telement.style.top = fromPosition + \"px\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate static animateSlideUpToTop(element: HTMLElement, elementHeight: number, speedInMilliseconds?: number)\r\n\t{\r\n\t\tlet toPosition = elementHeight - (2 * elementHeight);\r\n\t\tlet fromPosition = 0;\r\n\t\tif (speedInMilliseconds == null)\r\n\t\t\tspeedInMilliseconds = 5;\r\n\r\n\t\tlet id = setInterval(slideUpToTop, speedInMilliseconds);\r\n\t\tfunction slideUpToTop()\r\n\t\t{\r\n\t\t\tif (fromPosition == toPosition)\r\n\t\t\t{\r\n\t\t\t\tclearInterval(id);\r\n\t\t\t\telement.style.display = \"none\";\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tfromPosition--;\r\n\t\t\t\telement.style.top = fromPosition + \"px\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import { FileTypeEnum, NotificationManager, puma } from \"./vrshared\";\r\n\r\nexport class UtilityManagerFile\r\n{\r\n\t//#region Css\r\n\tstatic addCss(cssRules: string, shadowRoot?: ShadowRoot)\r\n\t{\r\n\t\tif (shadowRoot != null)\r\n\t\t\tpuma(shadowRoot).find(\"style\").appendPuma(cssRules);\r\n\t\telse\r\n\t\t\tpuma(\"\").appendToPuma(\"head\");\r\n\t}\r\n\t//#endregion\r\n\r\n\tstatic downloadFile(base64: string, fileName = \"download.pdf\", mimeType: FileTypeEnum | string = FileTypeEnum.General, blobMode = true)\r\n\t{\r\n\t\tif (blobMode)\r\n\t\t{\r\n\t\t\tlet arraybuffer = this.base64ToArrayBuffer(base64);\r\n\t\t\tlet blob = new Blob([arraybuffer], { type: mimeType });\r\n\t\t\tlet url = URL.createObjectURL(blob);\r\n\r\n\t\t\tlet a = document.createElement(\"a\");\r\n\t\t\ta.href = url;\r\n\t\t\ta.download = fileName;\r\n\t\t\ta.click();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tlet dataType = \"data:\" + mimeType + \";\";\r\n\t\t\tlet linkSource = dataType + \"base64,\" + base64;\r\n\t\t\tlet downloadLink = document.createElement(\"a\");\r\n\t\t\tdownloadLink.href = linkSource;\r\n\t\t\tdownloadLink.download = fileName;\r\n\t\t\tdownloadLink.click();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate static base64ToArrayBuffer(base64: string): ArrayBuffer\r\n\t{\r\n\t\tvar binary_string = window.atob(base64.replace(/\\s/g, ''));\r\n\t\tvar len = binary_string.length;\r\n\t\tvar bytes = new Uint8Array(len);\r\n\t\tfor (var i = 0; i < len; i++)\r\n\t\t\tbytes[i] = binary_string.charCodeAt(i);\r\n\r\n\t\treturn bytes.buffer;\r\n\t}\r\n\r\n\tstatic previewFile(base64: string, mimeType: FileTypeEnum = FileTypeEnum.General)\r\n\t{\r\n\t\tlet dataType = \"data:\" + mimeType + \";\";\r\n\t\tlet linkSource = dataType + \"base64,\" + base64;\r\n\r\n\t\tlet windowOpen: any = window.open('about:blank');\r\n\t\tsetTimeout(() => // Cause of Firefox\r\n\t\t{\r\n\t\t\twindowOpen.document.body.appendChild(windowOpen.document.createElement('iframe')).src = linkSource;\r\n\t\t\twindowOpen.document.getElementsByTagName(\"iframe\")[0].style.width = '100%';\r\n\t\t\twindowOpen.document.getElementsByTagName(\"iframe\")[0].style.height = '100%';\r\n\t\t}, 0);\r\n\t}\r\n\r\n\tstatic openUrl(url: string, newTab?: boolean)\r\n\t{\r\n\t\tlet aTag = document.createElement(\"a\");\r\n\t\taTag.id = \"utility_tempOpeningUrl\";\r\n\t\taTag.href = url;\r\n\r\n\t\tnewTab = (newTab == null) ? false : newTab;\r\n\t\tif (newTab)\r\n\t\t\taTag.target = \"_blank\";\r\n\r\n\t\tdocument.body.appendChild(aTag);\r\n\t\taTag.click();\r\n\t\tpuma(\"#utility_tempOpeningUrl\").remove();\r\n\t}\r\n\r\n\t//#region Slide down\r\n\tstatic animateSlideDownFromTop(element: HTMLElement, elementHeight: number, speedInMilliseconds?: number)\r\n\t{\r\n\t\tif (!puma(element).is(\":visible\"))\r\n\t\t\tpuma(element).show();\r\n\r\n\t\tlet toPosition = 0;\r\n\t\tlet fromPosition = elementHeight - (2 * elementHeight);\r\n\t\tif (speedInMilliseconds == null)\r\n\t\t\tspeedInMilliseconds = 5;\r\n\r\n\t\tlet id = setInterval(slideDownFromTop, speedInMilliseconds);\r\n\t\tfunction slideDownFromTop()\r\n\t\t{\r\n\t\t\tif (fromPosition == toPosition)\r\n\t\t\t\tclearInterval(id);\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tfromPosition++;\r\n\t\t\t\telement.style.top = fromPosition + \"px\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic animateSlideUpToTop(element: HTMLElement, elementHeight: number, speedInMilliseconds?: number)\r\n\t{\r\n\t\tlet toPosition = elementHeight - (2 * elementHeight);\r\n\t\tlet fromPosition = 0;\r\n\t\tif (speedInMilliseconds == null)\r\n\t\t\tspeedInMilliseconds = 5;\r\n\r\n\t\tlet id = setInterval(slideUpToTop, speedInMilliseconds);\r\n\t\tfunction slideUpToTop()\r\n\t\t{\r\n\t\t\tif (fromPosition == toPosition)\r\n\t\t\t{\r\n\t\t\t\tclearInterval(id);\r\n\t\t\t\telement.style.display = \"none\";\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tfromPosition--;\r\n\t\t\t\telement.style.top = fromPosition + \"px\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t//#endregion\r\n\r\n\tstatic async shareFile(base64: string, fileName: string, mimeType: string)\r\n\t{\r\n\t\tif (!base64.startsWith(\"data:\" + mimeType))\r\n\t\t\tbase64 = \"data:\" + mimeType + \";base64,\" + base64;\r\n\r\n\t\tfileName = fileName.replace(/[^a-z0-9.\\s]/gi, \"\").replace(/[_\\s]/g, \"\");\r\n\t\tconst blob = await (await fetch(base64)).blob();\r\n\t\tconst file = new File([blob], fileName, { type: blob.type });\r\n\r\n\t\t(navigator as any).share({\r\n\t\t\ttitle: \"Download file\",\r\n\t\t\ttext: fileName,\r\n\t\t\tfiles: [file]\r\n\t\t})\r\n\t\t\t.then(() => { })\r\n\t\t\t.catch((err: any) => NotificationManager().showError(\"Si è verificato un errore. Impossibile condividere il file\"));\r\n\t}\r\n\r\n\tstatic getUrlParameter(name: string): string | null\r\n\t{\r\n\t\tlet url = new URL(location.href);\r\n\t\tlet parameter = url.searchParams.get(name);\r\n\t\treturn parameter;\r\n\t}\r\n\r\n\tstatic formatStorageSize(value: number)\r\n\t{\r\n\t\tlet sign = (value < 0 ? \"-\" : \"\");\r\n\t\tlet readable = (value < 0 ? -value : value);\r\n\t\tlet suffix: string;\r\n\t\tlet todivide = 1024;\r\n\t\tif (value >= 0x10000000000) // Terabyte\r\n\t\t{\r\n\t\t\tsuffix = \"TB\";\r\n\t\t\ttodivide = 1099511627776;\r\n\t\t}\r\n\t\telse if (value >= 0x40000000) // Gigabyte\r\n\t\t{\r\n\t\t\tsuffix = \"GB\";\r\n\t\t\ttodivide = 1073741824;\r\n\t\t}\r\n\t\telse if (value >= 0x100000) // Megabyte\r\n\t\t{\r\n\t\t\tsuffix = \"MB\";\r\n\t\t\ttodivide = 1048576;\r\n\t\t}\r\n\t\telse if (value >= 0x400) // Kilobyte\r\n\t\t{\r\n\t\t\tsuffix = \"KB\";\r\n\t\t\ttodivide = 1024;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn sign + value + \" B\"; // Byte\r\n\t\t}\r\n\r\n\t\treadable = value;\r\n\t\treadable = readable / todivide;\r\n\r\n\t\tlet result = sign + readable.toFixed(2) + \" \" + suffix;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tstatic createGuid()\r\n\t{\r\n\t\tconst hex = [...Array(256).keys()]\r\n\t\t\t.map(index => (index).toString(16).padStart(2, '0'));\r\n\r\n\t\tconst r = crypto.getRandomValues(new Uint8Array(16));\r\n\r\n\t\tr[6] = (r[6] & 0x0f) | 0x40;\r\n\t\tr[8] = (r[8] & 0x3f) | 0x80;\r\n\r\n\t\treturn [...r.entries()]\r\n\t\t\t.map(([index, int]) => [4, 6, 8, 10].includes(index) ? `-${hex[int]}` : hex[int])\r\n\t\t\t.join('');\r\n\t}\r\n\r\n\tstatic getDayWeekName(date: Date, short = false)\r\n\t{\r\n\t\tif (short)\r\n\t\t{\r\n\t\t\tlet dayWeekNamesShort = [\"DOM\", \"LUN\", \"MAR\", \"MER\", \"GIO\", \"VEN\", \"SAB\"];\r\n\t\t\treturn dayWeekNamesShort[date.getDay()];\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tlet dayWeekNamesShort = [\"Domenica\", \"Lunedì\", \"Martedì\", \"Mercoledì\", \"Giovedì\", \"Venerdì\", \"Sabato\"];\r\n\t\t\treturn dayWeekNamesShort[date.getDay()];\r\n\t\t}\r\n\t}\r\n\r\n\tstatic getMonthName(date: Date, short = false)\r\n\t{\r\n\t\tif (short)\r\n\t\t{\r\n\t\t\tlet dayWeekNamesShort = [\"GEN\", \"FEB\", \"MAR\", \"APR\", \"MAG\", \"GIU\", \"LUG\", \"AGO\", \"SET\", \"OTT\", \"NOV\", \"DIC\"];\r\n\t\t\treturn dayWeekNamesShort[date.getMonth()];\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tlet dayWeekNamesShort = [\"Gennaio\", \"Febbraio\", \"Marzo\", \"Aprile\", \"Maggio\", \"Giugno\", \"Luglio\", \"Agosto\", \"Settembre\", \"Ottobre\", \"Novembre\", \"Dicembre\"];\r\n\t\t\treturn dayWeekNamesShort[date.getMonth()];\r\n\t\t}\r\n\t}\r\n\r\n\tstatic isFunction(object: Function)\r\n\t{\r\n\t\treturn object && {}.toString.call(object) === '[object Function]';\r\n\t}\r\n\r\n\tstatic isNumber(object: any)\r\n\t{\r\n\t\treturn !isNaN(parseFloat(object)) && !isNaN(object - 0);\r\n\t}\r\n\r\n\tstatic isLetter(char: String): boolean\r\n\t{\r\n\t\tif (char.length === 1 && char.match(/[a-z]/i))\r\n\t\t\treturn true;\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tstatic enterFullScreen(target: HTMLElement)\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\tlet element = target as any;\r\n\t\t\tlet doc = window.document as any;\r\n\t\t\tif (!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement)\r\n\t\t\t{\r\n\t\t\t\t//#region RequestFullScreen\r\n\t\t\t\tif (element.requestFullscreen)\r\n\t\t\t\t\telement.requestFullscreen();\r\n\t\t\t\telse if (element.mozRequestFullScreen) // Firefox\r\n\t\t\t\t\telement.mozRequestFullScreen();\r\n\t\t\t\telse if (element.webkitRequestFullscreen) // Chrome, Safari, Opera\r\n\t\t\t\t\telement.webkitRequestFullscreen();\r\n\t\t\t\telse if (element.msRequestFullscreen) // Edge\r\n\t\t\t\t\telement.msRequestFullscreen();\r\n\t\t\t\t//#endregion\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (e) { }\r\n\t}\r\n\r\n\tstatic exitFullScreen()\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\tlet doc = window.document as any;\r\n\t\t\tif (!(!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement))\r\n\t\t\t{\r\n\t\t\t\t//#region ExitFullScreen\r\n\t\t\t\tif (doc.exitFullscreen)\r\n\t\t\t\t\tdoc.exitFullscreen();\r\n\t\t\t\telse if (doc.mozCancelFullScreen) // Firefox\r\n\t\t\t\t\tdoc.mozCancelFullScreen();\r\n\t\t\t\telse if (doc.webkitExitFullscreen) // Chrome, Safari, Opera\r\n\t\t\t\t\tdoc.webkitExitFullscreen();\r\n\t\t\t\telse if (doc.msExitFullscreen) // Edge\r\n\t\t\t\t\tdoc.msExitFullscreen();\r\n\t\t\t\t//#endregion\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (e) { }\r\n\t}\r\n\r\n\tstatic toggleFullScreen(target: HTMLElement)\r\n\t{\r\n\t\ttry\r\n\t\t{\r\n\t\t\tlet element = target as any;\r\n\t\t\tlet doc = window.document as any;\r\n\t\t\tif (!doc.fullscreenElement && !doc.mozFullScreenElement && !doc.webkitFullscreenElement && !doc.msFullscreenElement)\r\n\t\t\t{\r\n\t\t\t\t//#region RequestFullScreen\r\n\t\t\t\tif (element.requestFullscreen)\r\n\t\t\t\t\telement.requestFullscreen();\r\n\t\t\t\telse if (element.mozRequestFullScreen) // Firefox\r\n\t\t\t\t\telement.mozRequestFullScreen();\r\n\t\t\t\telse if (element.webkitRequestFullscreen) // Chrome, Safari, Opera\r\n\t\t\t\t\telement.webkitRequestFullscreen();\r\n\t\t\t\telse if (element.msRequestFullscreen) // Edge\r\n\t\t\t\t\telement.msRequestFullscreen();\r\n\t\t\t\t//#endregion\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t//#region ExitFullScreen\r\n\t\t\t\tif (doc.exitFullscreen)\r\n\t\t\t\t\tdoc.exitFullscreen();\r\n\t\t\t\telse if (doc.mozCancelFullScreen) // Firefox\r\n\t\t\t\t\tdoc.mozCancelFullScreen();\r\n\t\t\t\telse if (doc.webkitExitFullscreen) // Chrome, Safari, Opera\r\n\t\t\t\t\tdoc.webkitExitFullscreen();\r\n\t\t\t\telse if (doc.msExitFullscreen) // Edge\r\n\t\t\t\t\tdoc.msExitFullscreen();\r\n\t\t\t\t//#endregion\r\n\t\t\t}\r\n\t\t}\r\n\t\tcatch (e) { }\r\n\t}\r\n}","import { LoaderManagerFile } from \"./loaderManagerFile\";\r\nimport { NotifierTypeEnum, WebApiError, WebApiModeEnum, WebApiSettings } from \"./vrshared\";\r\nimport { NotifierManagerFile, NotifierOptions } from \"./notifierManager\";\r\n\r\nexport abstract class WebApiRequestBaseFile\r\n{\r\n\tpublic abstract get method(): string;\r\n\tprivate _timeoutLoader: number = 0;\r\n\r\n\t//#region Web Api Call Async/Sync\r\n\tcall(settings?: WebApiSettings): T\r\n\t{\r\n\t\tif (settings == null)\r\n\t\t\tsettings = new WebApiSettings();\r\n\r\n\t\tif (settings.loader == null) settings.loader = false;\r\n\t\tif (settings.loader === true) settings.loader = document.body;\r\n\t\tif (settings.mode == null) settings.mode = WebApiModeEnum.Async;\r\n\t\tif (settings.showError == null) settings.showError = true;\r\n\r\n\t\tif (settings.loader !== false)\r\n\t\t{\r\n\t\t\tif (settings.loaderDelay == null)\r\n\t\t\t\tLoaderManagerFile.show(settings.loader);\r\n\t\t\telse\r\n\t\t\t\tthis._timeoutLoader = window.setTimeout(() => LoaderManagerFile.show(settings!.loader as any), settings.loaderDelay);\r\n\t\t}\r\n\r\n\t\t//#region Multipart\r\n\t\tlet formDataMultipart = undefined;\r\n\t\tif (settings.file != null)\r\n\t\t{\r\n\t\t\tformDataMultipart = new FormData();\r\n\t\t\tformDataMultipart.append(\"file\", settings.file);\r\n\t\t}\r\n\t\t//#endregion\r\n\r\n\t\tlet data = JSON.stringify(this);\r\n\t\tlet result: T | null = null;\r\n\t\tjQuery.ajax({\r\n\t\t\tasync: (settings.mode == WebApiModeEnum.Async) ? true : false,\r\n\t\t\tbeforeSend: (xhr: any) =>\r\n\t\t\t{\r\n\t\t\t\t//#region Header parameters\r\n\t\t\t\txhr.setRequestHeader(\"Accept-Language\", \"it\");\r\n\t\t\t\tif (settings!.headerParameters != null)\r\n\t\t\t\t{\r\n\t\t\t\t\tlet headerParameters = Object.getOwnPropertyNames(settings!.headerParameters);\r\n\t\t\t\t\tfor (let param of headerParameters)\r\n\t\t\t\t\t\txhr.setRequestHeader(param, settings!.headerParameters[param]);\r\n\t\t\t\t}\r\n\t\t\t\t//#endregion\r\n\t\t\t},\r\n\t\t\tcontentType: (settings.file != null) ? false : \"application/json\",\r\n\t\t\tdata: (settings.file != null) ? formDataMultipart : data,\r\n\t\t\tmethod: \"POST\",\r\n\t\t\tprocessData: false,\r\n\t\t\turl: this.method,\r\n\t\t\tsuccess: (response: any) =>\r\n\t\t\t{\r\n\t\t\t\tif (settings!.mode == WebApiModeEnum.Sync)\r\n\t\t\t\t\tresult = response as T;\r\n\r\n\t\t\t\tthis.manageSuccess(response, settings!);\r\n\t\t\t},\r\n\t\t\terror: (response: JQueryXHR) => this.manageError(response, settings!)\r\n\t\t});\r\n\r\n\t\tlet resultIfError: any = {};\r\n\t\treturn (result != null) ? result : resultIfError;\r\n\t}\r\n\t//#endregion\r\n\r\n\t//#region Web Api Call Promise\r\n\tpromiseCall(settings?: WebApiSettings): Promise\r\n\t{\r\n\t\tif (settings == null)\r\n\t\t\tsettings = new WebApiSettings();\r\n\r\n\t\tif (settings.loader == null) settings.loader = false;\r\n\t\tif (settings.loader === true) settings.loader = document.body;\r\n\t\tif (settings.mode == null) settings.mode = WebApiModeEnum.Async;\r\n\t\tif (settings.showError == null) settings.showError = true;\r\n\r\n\t\tif (settings.loader !== false)\r\n\t\t\tLoaderManagerFile.show(settings.loader);\r\n\r\n\t\tlet that = this;\r\n\t\tlet data = JSON.stringify(this);\r\n\t\treturn Promise.resolve\r\n\t\t\t(\r\n\t\t\t\tjQuery.ajax({\r\n\t\t\t\t\tasync: false,\r\n\t\t\t\t\tcontentType: \"application/json\",\r\n\t\t\t\t\tdata: data,\r\n\t\t\t\t\tmethod: \"POST\",\r\n\t\t\t\t\tprocessData: false,\r\n\t\t\t\t\turl: this.method\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t\t.catch((response) => that.manageError(response, settings!))\r\n\t\t\t.then(response =>\r\n\t\t\t{\r\n\t\t\t\tlet result = response as T;\r\n\t\t\t\tthat.manageSuccess(response, settings!);\r\n\t\t\t\treturn result;\r\n\t\t\t});\r\n\t}\r\n\t//#endregion\r\n\r\n\t//#region Common\r\n\tprivate manageSuccess(response: any, settings: WebApiSettings)\r\n\t{\r\n\t\twindow.clearTimeout(this._timeoutLoader);\r\n\t\tLoaderManagerFile.hide();\r\n\r\n\t\tif (response.success)\r\n\t\t{\r\n\t\t\tif (settings.success != null)\r\n\t\t\t\tsettings.success(response);\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis.manageError(response, settings);\r\n\t}\r\n\r\n\tprivate manageError(response: JQueryXHR, settings: WebApiSettings)\r\n\t{\r\n\t\twindow.clearTimeout(this._timeoutLoader);\r\n\t\tLoaderManagerFile.hide();\r\n\t\tif (response != null)\r\n\t\t{\r\n\t\t\tlet message = \"\";\r\n\t\t\tlet stackTrace = \"\";\r\n\t\t\tlet statusCode = 0;\r\n\t\t\tlet responseJson = null;\r\n\r\n\t\t\tif (typeof (response) == \"string\" || (response.responseText != null && response.responseText != \"\"))\r\n\t\t\t{\r\n\t\t\t\ttry\r\n\t\t\t\t{\r\n\t\t\t\t\tif (typeof (response) == \"string\")\r\n\t\t\t\t\t\tresponseJson = JSON.parse(response);\r\n\t\t\t\t\telse if (response.responseText != null && response.responseText != \"\")\r\n\t\t\t\t\t\tresponseJson = JSON.parse(response.responseText);\r\n\r\n\t\t\t\t\tswitch (responseJson.statusCode)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcase 400: message = \"Richiesta formalmente errata (400) - \"; break; // Bad request\r\n\t\t\t\t\t\tcase 401: message = \"Accesso negato (401) - \"; break; // Unauthorized\r\n\t\t\t\t\t\tcase 403: message = \"Autorizzazioni insufficienti (403) - \"; break; // Forbidden\r\n\t\t\t\t\t\tcase 404: message = \"Non trovato (404) - \"; break; // Not found\r\n\t\t\t\t\t\tcase 500: message = \"Errore interno del server (500) - \"; break; // Internal server error\r\n\t\t\t\t\t\tcase 503: message = \"Risorsa non disponibile (503) - \"; break; // Service unavailable\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmessage += responseJson.Message;\r\n\t\t\t\t\tstackTrace = responseJson.StackTrace;\r\n\t\t\t\t\tstatusCode = responseJson.statusCode;\r\n\t\t\t\t}\r\n\t\t\t\tcatch (e)\r\n\t\t\t\t{\r\n\t\t\t\t\t//#region OLD for retrocompatibility\r\n\t\t\t\t\tif (response.responseJSON != null)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmessage = (response.responseJSON.exception.message.length > 0) ? response.responseJSON.exception.message : response.responseJSON.exception.stackTrace;\r\n\t\t\t\t\t\tstackTrace = response.responseJSON.exception.stackTrace;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (response.responseText != null && response.responseText != \"\")\r\n\t\t\t\t\t\tmessage = response.responseText;\r\n\t\t\t\t\telse if (response.statusText != null && response.statusText != \"\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmessage = response.statusText;\r\n\t\t\t\t\t\tif (response.status == 401)\r\n\t\t\t\t\t\t\tmessage = \"Auth key errata\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tmessage = \"Si è verificato un problema\";\r\n\r\n\t\t\t\t\tif (response.status == 401)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif (message.length == 0)\r\n\t\t\t\t\t\t\tmessage = \"Auth key errata\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (response.status == 404)\r\n\t\t\t\t\t\tmessage = \"Web Api non trovata\";\r\n\r\n\t\t\t\t\tstatusCode = response.status;\r\n\t\t\t\t\t//#endregion\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse \r\n\t\t\t{\r\n\t\t\t\tmessage = \"Si è verificato un errore\"\r\n\t\t\t\tswitch (response.status)\r\n\t\t\t\t{\r\n\t\t\t\t\tcase 400: message = \"Richiesta formalmente errata (400) - \"; break; // Bad request\r\n\t\t\t\t\tcase 401: message = \"Accesso negato (401) - \"; break; // Unauthorized\r\n\t\t\t\t\tcase 403: message = \"Autorizzazioni insufficienti (403) - \"; break; // Forbidden\r\n\t\t\t\t\tcase 404: message = \"Non trovato (404) - \"; break; // Not found\r\n\t\t\t\t\tcase 500: message = \"Errore interno del server (500) - \"; break; // Internal server error\r\n\t\t\t\t\tcase 503: message = \"Risorsa non disponibile (503) - \"; break; // Service unavailable\r\n\t\t\t\t}\r\n\t\t\t\tstatusCode = response.status;\r\n\t\t\t\t//#endregion\r\n\t\t\t}\r\n\r\n\t\t\t//#region Show error\r\n\t\t\tlet webApiError = new WebApiError();\r\n\t\t\twebApiError.message = message;\r\n\t\t\twebApiError.stackTrace = stackTrace;\r\n\t\t\twebApiError.showErrorPopup = true;\r\n\t\t\twebApiError.statusCode = statusCode;\r\n\r\n\t\t\tif (settings.showError === true)\r\n\t\t\t{\r\n\t\t\t\tlet options = new NotifierOptions();\r\n\t\t\t\toptions.type = NotifierTypeEnum.Error;\r\n\t\t\t\tnew NotifierManagerFile(webApiError.message, options)!;\r\n\t\t\t}\r\n\r\n\t\t\tif (settings.error != null)\r\n\t\t\t\tsettings.error(webApiError);\r\n\t\t\t//#endregion\r\n\t\t}\r\n\t\telse if (settings.showError === true)\r\n\t\t{\r\n\t\t\tlet webApiError = new WebApiError();\r\n\t\t\twebApiError.message = \"Errore indefinito nella chiamata ad una WebApi\";\r\n\t\t\twebApiError.showErrorPopup = true;\r\n\r\n\t\t\tlet options = new NotifierOptions();\r\n\t\t\toptions.type = NotifierTypeEnum.Error;\r\n\t\t\tnew NotifierManagerFile(webApiError.message, options)!;\r\n\t\t}\r\n\t}\r\n\t//#endregion\t\r\n}\r\n\r\n//#region Classes\r\nexport class WebApiResponseBaseFile\r\n{\r\n\tpublic StackTrace: string | undefined;\r\n\tpublic ExceptionMessage: string | null;\r\n\tpublic Success: boolean;\r\n\tpublic ShowErrorPopup: boolean;\r\n}","import { DeviceManagerFile } from \"./deviceManagerFile\";\r\nimport { AnimationHideEnum, AnimationShowEnum, ColorSettings, div, icon, IconClass, NotifierPositionEnum, NotifierTypeEnum, puma, shadowRoot } from \"./vrshared\";\r\n\r\n//#region Options\r\nexport class NotifierOptions\r\n{\r\n\ttarget?: HTMLElement | JQuery | string;\r\n\ttype?: NotifierTypeEnum;\r\n\tposition?: NotifierPositionEnum;\r\n\thideSettings?: NotifierHideSettings;\r\n\tshowSettings?: NotifierShowSettings;\r\n\tcolorSettings?: ColorSettings;\r\n\tcss?: string;\r\n\tcssContainer?: string;\r\n\tclass?: string;\r\n\twidth?: string | number;\r\n\ticon?: IconClass | boolean;\r\n\tbold?: boolean;\r\n\tfontSize?: number | string;\r\n\r\n\tcustomHtml?: string | ((e: CustomHtmlEvent) => void);\r\n\tonClick?: (e: NotifierOnClickEvent) => void;\r\n}\r\n//#endregion\r\n\r\n//#region Control\r\nexport class NotifierManagerFile\r\n{\r\n\tprivate _options: NotifierOptions;\r\n\tprivate _container: HTMLElement;\r\n\tprivate _arrow: HTMLElement;\r\n\tprivate _element: HTMLElement;\r\n\r\n\tconstructor(text: string, options?: NotifierOptions | null)\r\n\t{\r\n\t\t//#region Options\r\n\t\tif (options == null)\r\n\t\t\toptions = new NotifierOptions();\r\n\r\n\t\tif (options.type == null) options.type = NotifierTypeEnum.Default;\r\n\t\tif (options.width == null) options.width = (DeviceManagerFile.isMobile()) ? \"100%\" : ((options.target == null) ? \"undefined\" : \"max-content\");\r\n\t\tif (options.bold == null) options.bold = false;\r\n\t\tif (options.position == null) options.position = (options.target == null) ? NotifierPositionEnum.TopCenter : NotifierPositionEnum.RightMiddle;\r\n\t\tif (options.hideSettings == null) options.hideSettings = new NotifierHideSettings();\r\n\t\tif (options.hideSettings.autoHide == null || options.hideSettings.autoHide === true) options.hideSettings.autoHide = 2000;\r\n\t\tif (options.hideSettings.clickToHide == null) options.hideSettings.clickToHide = false;\r\n\t\tif (options.hideSettings.clickToHide === true) options.hideSettings.autoHide = false;\r\n\t\tif (options.hideSettings.duration == null) options.hideSettings.duration = 300;\r\n\t\tif (options.hideSettings.animation == null) options.hideSettings.animation = AnimationHideEnum.SlideUp;\r\n\r\n\t\tif (options.showSettings == null) options.showSettings = new NotifierShowSettings();\r\n\t\tif (options.showSettings.duration == null) options.showSettings.duration = 300;\r\n\t\tif (options.showSettings.animation == null) options.showSettings.animation = AnimationShowEnum.SlideDown;\r\n\r\n\t\tif (options.colorSettings == null) options.colorSettings = new ColorSettings();\r\n\t\tif (options.colorSettings.background == null) options.colorSettings.background = \"#e3f1fa\";\r\n\t\tif (options.colorSettings.textColor == null) options.colorSettings.textColor = \"#000\";\r\n\t\tif (options.colorSettings.border == null) options.colorSettings.border = \"#c6edff\";\r\n\r\n\t\tif (DeviceManagerFile.isMobile())\r\n\t\t{\r\n\t\t\tif (options.target == null) options.position = NotifierPositionEnum.TopCenter;\r\n\t\t\telse options.position = NotifierPositionEnum.BottomCenter;\r\n\t\t}\r\n\t\t//#endregion\r\n\r\n\t\tthis._options = options;\r\n\r\n\t\t//#region Notification areas\r\n\t\tif (!this.isOnTarget())\r\n\t\t{\r\n\t\t\tif (puma(\".vrNotifierArea\" + options.position).length == 0)\r\n\t\t\t\tpuma(\"
\").appendTo((shadowRoot() != null) ? shadowRoot() : document.body);\r\n\r\n\t\t\tif (DeviceManagerFile.isMobile())\r\n\t\t\t{\r\n\t\t\t\tif (puma(\".vrNotifierAreaTopCenter\")[0] != null)\r\n\t\t\t\t\tpuma(\".vrNotifierAreaTopCenter\")[0].style.cssText += \"left: 0px; width: Calc(100% - 22px);\";\r\n\r\n\t\t\t\tif (puma(\".vrNotifierAreaBottomCenter\")[0] != null)\r\n\t\t\t\t\tpuma(\".vrNotifierAreaBottomCenter\")[0].style.cssText += \"left: 0px; width: Calc(100% - 22px);\";\r\n\t\t\t}\r\n\t\t}\r\n\t\t//#endregion\r\n\r\n\t\tthis.prepareNotification(text);\r\n\t\tthis.show();\r\n\t}\r\n\r\n\tprivate prepareNotification(text: string)\r\n\t{\r\n\t\tlet options = this.getOptions();\r\n\t\tlet containerToAdd = this.getContainerToAdd();\r\n\r\n\t\tthis._container = div(containerToAdd, { class: \"vrNotifierContainer\", css: (options.cssContainer != null) ? options.cssContainer : \"\" }, true);\r\n\t\tthis._arrow = div(this._container, { class: \"vrNotifierArrow\" });\r\n\t\tthis._element = div(this._container, { class: \"vrNotifier \" + ((options.class != null) ? options.class : \"\"), css: (options.css != null) ? options.css : \"\" });\r\n\r\n\t\tif (DeviceManagerFile.isMobile())\r\n\t\t\tthis._container.style.cssText += \"left: 0px;\";\r\n\r\n\t\t//#region Bold\r\n\t\tif (options.bold)\r\n\t\t\tpuma(this._element).css(\"font-weight\", \"600\");\r\n\t\t//#endregion\r\n\r\n\t\t//#region Font size\r\n\t\tif (options.fontSize != null)\r\n\t\t\tthis._element.style.cssText += \"font-size: \" + options.fontSize + \";\";\r\n\t\t//#endregion\r\n\r\n\t\t//#region Target\r\n\t\tif (this.isOnTarget())\r\n\t\t{\r\n\t\t\tif (typeof (options.target) == \"string\" && !options.target.startsWith(\"#\"))\r\n\t\t\t\toptions.target = \"#\" + options.target;\r\n\r\n\t\t\toptions.target = puma(options.target)[0];\r\n\t\t\tpuma(this._container).insertBefore(options.target);\r\n\r\n\t\t\tthis._container.style.cssText += \"width: 0; height: 0; position: absolute; display: inline-block;\";\r\n\t\t\tthis._arrow.style.cssText += \"display: block;\";\r\n\t\t\tthis._element.style.cssText += \"position: absolute;\";\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis._container.style.cssText += \"position: relative; margin: 5px;\";\r\n\t\t\tthis._arrow.style.cssText += \"display: none;\";\r\n\t\t\tthis._element.style.cssText += \"position: relative;\";\r\n\t\t}\r\n\t\t//#endregion\r\n\r\n\t\t//#region Width\r\n\t\tif (options.width != null)\r\n\t\t\tpuma(this._element).width(options.width);\r\n\t\t//#endregion\r\n\r\n\t\tlet color = options.colorSettings!.textColor;\r\n\t\tlet backgroundColor = options.colorSettings!.background;\r\n\t\tlet borderColor = options.colorSettings!.border;\r\n\t\tlet iconClass = options.icon;\r\n\r\n\t\t//#region Type\r\n\t\tswitch (options.type)\r\n\t\t{\r\n\t\t\tcase NotifierTypeEnum.Error:\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor = \"#B94A48\";\r\n\t\t\t\t\tbackgroundColor = \"#F2DEDE\";\r\n\t\t\t\t\tborderColor = \"#EED3D7\";\r\n\t\t\t\t\ticonClass = IconClass.Alert;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase NotifierTypeEnum.Warning:\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor = \"#C09853\";\r\n\t\t\t\t\tbackgroundColor = \"#FCF8E3\";\r\n\t\t\t\t\tborderColor = \"#FBEED5\";\r\n\t\t\t\t\ticonClass = IconClass.ExclamationMark;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase NotifierTypeEnum.Info:\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor = \"#3A87AD\";\r\n\t\t\t\t\tbackgroundColor = \"#D9EDF7\";\r\n\t\t\t\t\tborderColor = \"#BCE8F1\";\r\n\t\t\t\t\ticonClass = IconClass.Info;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase NotifierTypeEnum.Success:\r\n\t\t\t\t{\r\n\t\t\t\t\tcolor = \"#468847\";\r\n\t\t\t\t\tbackgroundColor = \"#DFF0D8\";\r\n\t\t\t\t\tborderColor = \"#D6E9C6\";\r\n\t\t\t\t\ticonClass = IconClass.Check;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\t//#endregion\r\n\r\n\t\t//#region Icon\r\n\t\tif (iconClass != null && options.icon !== false)\r\n\t\t\tpuma(this._element).append(icon(iconClass as any, null, { css: \"margin-right: 8px;\" }));\r\n\t\t//#endregion\r\n\r\n\t\t//#region Color\r\n\t\tpuma(this._element).css(\"background-color\", backgroundColor);\r\n\t\tpuma(this._element).css(\"color\", color);\r\n\t\tpuma(this._element).css(\"border\", \"solid 1px \" + borderColor);\r\n\t\t//#endregion\r\n\r\n\t\t//#region Text\r\n\t\tif (options.customHtml != null)\r\n\t\t{\r\n\t\t\t//#region Custom HTML\r\n\t\t\tif (typeof (options.customHtml) == \"string\")\r\n\t\t\t\tpuma(this._element).append(options.customHtml.replace(\"#text#\", text));\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tlet event = new CustomHtmlEvent();\r\n\t\t\t\tevent.sender = this;\r\n\t\t\t\tevent.divContainer = this._element;\r\n\t\t\t\toptions.customHtml(event);\r\n\t\t\t}\r\n\t\t\t//#endregion\r\n\t\t}\r\n\t\telse\r\n\t\t\tpuma(this._element).append(\"\");\r\n\t\t//#endregion\t\r\n\r\n\t\tif (this.isOnTarget())\r\n\t\t{\r\n\t\t\t//#region Arrow\r\n\t\t\tlet borderTopArrow = \"border-right: 5px solid transparent; border-left: 5px solid transparent; border-top: 5px solid \" + backgroundColor + \";\";\r\n\t\t\tlet borderBottomArrow = \"border-right: 5px solid transparent; border-left: 5px solid transparent; border-bottom: 5px solid \" + backgroundColor + \";\";\r\n\t\t\tlet borderLeftArrow = \"border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 5px solid \" + backgroundColor + \";\";\r\n\t\t\tlet borderRightArrow = \"border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-right: 5px solid \" + backgroundColor + \";\";\r\n\t\t\t//#endregion\r\n\r\n\t\t\tlet offsetLeft = this.targetOptions().marginLeft;\r\n\t\t\tswitch (options.position)\r\n\t\t\t{\r\n\t\t\t\t//#region Top\r\n\t\t\t\tcase NotifierPositionEnum.TopCenter:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet diffLeft = ((this.element().offsetWidth - this.targetOptions().width) * -1) / 2;\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + ((this.targetOptions().width / 2 - 5) + offsetLeft) + \"px; bottom: 0px;\" + borderTopArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + (diffLeft + offsetLeft) + \"px; bottom: 4px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase NotifierPositionEnum.TopRight:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + ((this.targetOptions().width / 2 - 5) + offsetLeft) + \"px; bottom: 0px;\" + borderTopArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + (offsetLeft + this.targetOptions().width - this.element().offsetWidth) + \"px; bottom: 4px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase NotifierPositionEnum.TopLeft:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + ((this.targetOptions().width / 2 - 5) + offsetLeft) + \"px; bottom: 0px;\" + borderTopArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + offsetLeft + \"px; bottom: 4px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t//#endregion\r\n\r\n\t\t\t\t//#region Right\r\n\t\t\t\tcase NotifierPositionEnum.RightMiddle:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet diffTop = ((this.element().offsetHeight - this.target().offsetHeight) * -1) / 2;\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + (this.targetOptions().width + offsetLeft) + \"px; top: \" + ((this.target().offsetHeight / 2) - 5) + \"px;\" + borderRightArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + ((this.target().offsetWidth + 4) + offsetLeft) + \"px; top: \" + diffTop + \"px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase NotifierPositionEnum.RightTop:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + (this.target().offsetWidth + offsetLeft) + \"px; top: \" + ((this.target().offsetHeight / 2) - 5) + \"px;\" + borderRightArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + ((this.target().offsetWidth + 4) + offsetLeft) + \"px; top: 0px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase NotifierPositionEnum.RightBottom:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet diffTop = Math.abs((this.element().offsetHeight - this.target().offsetHeight));\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + (this.target().offsetWidth + offsetLeft) + \"px; top: \" + ((this.target().offsetHeight / 2) - 5) + \"px;\" + borderRightArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + ((this.target().offsetWidth + 4) + offsetLeft) + \"px; top: -\" + diffTop + \"px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t//#endregion\r\n\r\n\t\t\t\t//#region Left\r\n\t\t\t\tcase NotifierPositionEnum.LeftMiddle:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet diffTop = ((this.element().offsetHeight - this.target().offsetHeight) * -1) / 2;\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"right: -\" + (offsetLeft) + \"px; top: \" + ((this.target().offsetHeight / 2) - 5) + \"px;\" + borderLeftArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"right: -\" + (offsetLeft - 4) + \"px; top: \" + diffTop + \"px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase NotifierPositionEnum.LeftTop:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"right: -\" + (offsetLeft) + \"px; top: \" + ((this.target().offsetHeight / 2) - 5) + \"px;\" + borderLeftArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"right: -\" + (offsetLeft - 4) + \"px; top: 0px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase NotifierPositionEnum.LeftBottom:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet diffTop = Math.abs((this.element().offsetHeight - this.target().offsetHeight));\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"right: -\" + (offsetLeft) + \"px; top: \" + ((this.target().offsetHeight / 2) - 5) + \"px;\" + borderLeftArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"right: -\" + (offsetLeft - 4) + \"px; top: -\" + diffTop + \"px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t//#endregion\r\n\r\n\t\t\t\t//#region Bottom\r\n\t\t\t\tcase NotifierPositionEnum.BottomCenter:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlet diffLeft = ((this.element().offsetWidth - this.targetOptions().width) * -1) / 2;\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + ((this.targetOptions().width / 2 - 5) + offsetLeft) + \"px; top: \" + this.targetOptions().height + \"px;\" + borderBottomArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + (diffLeft + offsetLeft) + \"px; top: \" + (this.targetOptions().height + 4) + \"px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase NotifierPositionEnum.BottomRight:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + ((this.targetOptions().width / 2 - 5) + offsetLeft) + \"px; top: \" + this.targetOptions().height + \"px;\" + borderBottomArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + (offsetLeft + this.targetOptions().width - this.element().offsetWidth) + \"px; top: \" + (this.targetOptions().height + 4) + \"px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase NotifierPositionEnum.BottomLeft:\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis._arrow.style.cssText += \"left: \" + ((this.targetOptions().width / 2 - 5) + offsetLeft) + \"px; top: \" + this.targetOptions().height + \"px;\" + borderBottomArrow;\r\n\t\t\t\t\t\tthis._element.style.cssText += \"left: \" + offsetLeft + \"px; top: \" + (this.targetOptions().height + 4) + \"px;\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t//#endregion\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tpuma(this._element).hide();\r\n\t}\r\n\r\n\tprivate getContainerToAdd()\r\n\t{\r\n\t\tlet options = this.getOptions();\r\n\t\tlet containerToAdd: HTMLElement | null = null;\r\n\r\n\t\tif (this.isOnTarget())\r\n\t\t\tcontainerToAdd = document.body;\r\n\t\telse\r\n\t\t\tcontainerToAdd = puma(\".vrNotifierArea\" + options.position);\r\n\r\n\t\treturn containerToAdd!;\r\n\t}\r\n\r\n\tshow(text?: string)\r\n\t{\r\n\t\tlet options = this.getOptions();\r\n\t\tlet showSettings = options.showSettings!;\r\n\t\tlet hideSettings = options.hideSettings!;\r\n\t\tlet duration = showSettings.duration;\r\n\r\n\t\tswitch (showSettings.animation)\r\n\t\t{\r\n\t\t\tcase AnimationShowEnum.Default: puma(this._element).show(duration); break;\r\n\t\t\tcase AnimationShowEnum.FadeIn: puma(this._element).fadeIn(duration); break;\r\n\t\t\tcase AnimationShowEnum.SlideDown: puma(this._element).slideDown(duration); break;\r\n\t\t\tcase AnimationShowEnum.None: puma(this._element).show(); break;\r\n\t\t\tdefault:\r\n\t\t\t\tpuma(this._element).show(duration); break;\r\n\t\t}\r\n\r\n\t\tif (hideSettings.autoHide !== false)\r\n\t\t\twindow.setTimeout(() => this.hide(), hideSettings.autoHide as number);\r\n\t\telse if (hideSettings.clickToHide === true)\r\n\t\t\tpuma(this._container).on(\"click\", (e: JQuery.ClickEvent) => this.hide());\r\n\r\n\t\tif (text != null)\r\n\t\t\tpuma(this._element).append(\"\");\r\n\r\n\t\tpuma(this._element).on(\"click\", () =>\r\n\t\t{\r\n\t\t\tif (options.onClick != null)\r\n\t\t\t{\r\n\t\t\t\tlet clickEvent = new NotifierOnClickEvent();\r\n\t\t\t\tclickEvent.sender = this;\r\n\t\t\t\tclickEvent.text = text;\r\n\t\t\t\toptions.onClick(clickEvent);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\thide()\r\n\t{\r\n\t\tlet options = this.getOptions();\r\n\t\tlet hideSettings = options.hideSettings!;\r\n\r\n\t\tlet duration = hideSettings.duration;\r\n\t\tswitch (hideSettings.animation)\r\n\t\t{\r\n\t\t\tcase AnimationHideEnum.Default: puma(this._element).hide(duration); break;\r\n\t\t\tcase AnimationHideEnum.FadeOut: puma(this._element).fadeOut(duration); break;\r\n\t\t\tcase AnimationHideEnum.SlideUp: puma(this._element).slideUp(duration); break;\r\n\t\t\tcase AnimationHideEnum.None: puma(this._element).hide(); break;\r\n\t\t\tdefault:\r\n\t\t\t\tpuma(this._element).hide(duration); break;\r\n\t\t}\r\n\r\n\t\twindow.setTimeout(() => puma(this._container).remove(), duration);\r\n\t}\r\n\r\n\tisOnTarget()\r\n\t{\r\n\t\treturn this.target() != null;\r\n\t}\r\n\r\n\ttarget()\r\n\t{\r\n\t\treturn this.getOptions().target as HTMLElement;\r\n\t}\r\n\r\n\ttargetOptions()\r\n\t{\r\n\t\tlet targetOptions = new TargetOptions();\r\n\t\ttargetOptions.width = this.target().offsetWidth;\r\n\t\ttargetOptions.height = this.target().offsetHeight;\r\n\t\ttargetOptions.offsetLeft = this.target().offsetLeft;\r\n\t\ttargetOptions.offsetTop = this.target().offsetTop;\r\n\t\ttargetOptions.marginTop = puma(this.target()).css(\"marginTop\").getNumericPart();\r\n\t\ttargetOptions.marginRight = puma(this.target()).css(\"marginRight\").getNumericPart();\r\n\t\ttargetOptions.marginBottom = puma(this.target()).css(\"marginBottom\").getNumericPart();\r\n\t\ttargetOptions.marginLeft = puma(this.target()).css(\"marginLeft\").getNumericPart();\r\n\r\n\t\treturn targetOptions;\r\n\t}\r\n\r\n\telement()\r\n\t{\r\n\t\treturn this._element;\r\n\t}\r\n\r\n\tgetOptions()\r\n\t{\r\n\t\treturn this._options;\r\n\t}\r\n}\r\n//#endregion\r\n\r\n//#region Classes\r\nclass NotifierHideSettings\r\n{\r\n\tautoHide?: boolean | number;\r\n\tclickToHide?: boolean;\r\n\tduration?: number;\r\n\tanimation?: AnimationHideEnum;\r\n}\r\n\r\nclass NotifierShowSettings\r\n{\r\n\tduration: number;\r\n\tanimation?: AnimationShowEnum;\r\n}\r\n\r\nclass CustomHtmlEvent\r\n{\r\n\tsender: NotifierManagerFile;\r\n\tdivContainer: HTMLElement;\r\n}\r\n\r\nclass TargetOptions\r\n{\r\n\theight: number;\r\n\twidth: number;\r\n\tmarginLeft: number;\r\n\tmarginRight: number;\r\n\tmarginTop: number;\r\n\tmarginBottom: number;\r\n\toffsetLeft: number;\r\n\toffsetTop: number;\r\n}\r\n\r\nclass NotifierOnClickEvent\r\n{\r\n\tsender: NotifierManagerFile;\r\n\ttext?: string;\r\n}\r\n//#endregion"],"sourceRoot":""}