{"version":3,"sources":["webpack:///./src/scripts/components/header/searchBox.ts","webpack:///./src/scripts/components/header/notifications.ts","webpack:///./src/scripts/components/header/notCompletedAdvert.ts","webpack:///./src/scripts/libs/modals.ts","webpack:///./src/scripts/components/header/member-email-approve.ts","webpack:///./node_modules/lodash-es/_arrayEach.js","webpack:///./node_modules/lodash-es/_createBaseFor.js","webpack:///./node_modules/lodash-es/_baseFor.js","webpack:///./node_modules/lodash-es/_baseForOwn.js","webpack:///./node_modules/lodash-es/_createBaseEach.js","webpack:///./node_modules/lodash-es/_baseEach.js","webpack:///./node_modules/lodash-es/_castFunction.js","webpack:///./node_modules/lodash-es/forEach.js","webpack:///./src/scripts/libs/hoverintent.ts","webpack:///./node_modules/hoverintent/index.js","webpack:///./node_modules/lodash-es/_baseIsNaN.js","webpack:///./node_modules/lodash-es/_strictIndexOf.js","webpack:///./node_modules/lodash-es/_baseIndexOf.js","webpack:///./node_modules/lodash-es/_charsEndIndex.js","webpack:///./node_modules/lodash-es/_charsStartIndex.js","webpack:///./node_modules/lodash-es/trim.js","webpack:///./node_modules/lodash-es/now.js","webpack:///./node_modules/lodash-es/debounce.js","webpack:///./src/scripts/components/cookieDisclaimer.ts","webpack:///./src/scripts/components/header/member.ts","webpack:///./src/scripts/libs/cookie.ts","webpack:///./src/scripts/components/header/header.mobile.ts","webpack:///./src/scripts/components/header/top-notification-bar.ts","webpack:///./src/scripts/components/header/lastSearches.ts","webpack:///./src/scripts/components/header/user-menus.ts","webpack:///./node_modules/lodash-es/_hasUnicode.js","webpack:///./node_modules/lodash-es/_asciiToArray.js","webpack:///./node_modules/lodash-es/_unicodeToArray.js","webpack:///./node_modules/lodash-es/_stringToArray.js","webpack:///./src/scripts/components/header/header.ts","webpack:///./src/scripts/libs/segmentify.ts","webpack:///./src/scripts/libs/storage.ts","webpack:///./node_modules/lodash-es/_baseSlice.js","webpack:///./node_modules/lodash-es/_castSlice.js"],"names":["suggestionsWrapper","suggestionsAreaWrapper","suggestionAutoCompleteSearchInput","currentSuggestionValue","suggestionHeaderMapper","UsedCarSuggestion","NewCarSuggestion","NewsSuggestion","FirmSuggestion","KeywordSuggestion","closeSearchWrapperLogic","event","elem","target","document","getElementById","contains","closeSuggestionWrapper","onFocusSuggestionAutoCompleteInput","dl","window","dataLayer","push","Category","Action","Label","nonInteraction","generateSuggestions","value","onKeyUpSuggestionAutoComplete","which","keyCode","key","redirectToSearchPage","length","printLastSearches","getSuggestionsFor","suggestions","Success","innerHTML","Data","data","index","dataIn","indexIn","parentCategory","createElement","appendChild","headerOfList","innerText","map","suggestion","appendTo","listElement","anchorElement","textElement","Description","Text","Count","descriptionElement","href","Url","addEventListener","createListElement","searchInAll","searchInAllLink","Type","createSuggestionCategoryListWith","body","classList","remove","removeEventListener","get","trimmedValue","Id","location","encodeURIComponent","focus","lastSearches","charAt","toUpperCase","slice","createLastSearchListElement","headerSearchWrapper","querySelector","searchBarTriggerButton","suggestionWrapperButton","add","setAttribute","onTriggerSearchInputFocus","headerNotificationWrapper","createNotificationData","quantity","user","notificationFirstWrapper","memberStatus","UnReadNotificationCount","textContent","toLocaleString","bindNotificationIconClick","dropdown","header","selector","offsetTop","viewportOffset","getBoundingClientRect","top","headerOverlay","showOverLay","clientHeight","post","UnReadOnly","take","then","response","documents","nothingFoundWrapper","list","Documents","forEach","WebUrl","imageWrapper","notificationImage","src","ImageUrl","detailsWrapper","title","Title","detailContent","Body","dateWrapper","date","CreatedDate","time","CreatedHour","wrapper","isUserLoggedIn","memberData","IndividualMember","advert","parentElement","EditUrl","PhotoUrl","image","rawImagePath","replace","style","width","Point","Percentage","createNotCompletedAdvertArea","NotCompletedAdvert","createNewModalElement","options","innerModalData","id","innerModalHeader","success","message","innerModalContent","buttons","close","confirm","innerModalFooter","show","createModalButton","text","callback","createModalFooter","pageYOffset","className","buttonWrapper","button","bindCheckMailApproveNotification","IsMailApproved","MainUser","Email","type","emailAddress","axios","email","showLoading","modals","createNotValidatedEmailModal","Message","default","catch","error","modal","destroy","open","array","iteratee","fromRight","object","keysFunc","iterable","Object","props","keys","eachFunc","collection","isArrayLike","identity","isArray","module","exports","el","onOver","onOut","x","y","pX","pY","mouseOver","focused","h","state","timer","sensitivity","interval","timeout","handleFocus","tracker","e","clientX","clientY","dispatchOver","clearTimeout","setTimeout","compare","Math","abs","undefined","call","this","dispatchOut","delay","dispatchFocus","dispatchBlur","removeFocus","opt","focusOptionChanged","assign","fromIndex","strSymbols","chrSymbols","reTrim","string","chars","guard","start","end","join","Date","now","FUNC_ERROR_TEXT","nativeMax","max","nativeMin","min","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","leadingEdge","toNumber","isObject","cancel","flush","setCookieForHeaderCookieNotif","cookieDisclaimerClickCallback","memberInfo","INDEX_ARABAM_USER","INDEX_IS_USER_LOGGED_IN","INDEX_MEMBER_DATA","INDEX_MEMBER_STATUS","INDEX_IS_FETCHING_MEMBER","userStatus","userData","getMemberData","Promise","resolve","reject","isMobile","getConfiguration","getStatus","setUserNotLoggedIn","getUser","setUser","getMemberInfo","getTime","AuctioPermissions","bindAngularStuff","popupCampaignElement","cookieName","showPopup","todayDate","showPopupDateTime","indexOf","navigator","userAgent","preventDefault","outerHTML","setUserLoggedIn","console","configuration","isLoggedIn","ang","angular","element","parentNode","injector","$apply","Properties","IsUserLoggedIn","IsEmailRequired","CommercialMember","UnreadFavCount","FavoritedAdvertCount","UnreadMessageCount","UnreadNotificationCount","MissedCallCount","RoutePhoneMissedCallCount","promiseResponse","getCookie","name","parts","cookie","split","pop","shift","setCookie","days","expires","setTime","toGMTString","var1ables","showAddNewItemToFavList","hideHeaderOverlay","HeaderButtonOverlay","shareElem","favListContainer","favButtonElem","shareButtonElement","showHeaderOverlay","favElem","addNewItemToFavList","request","EditFavoriteAdvertRequest","inputElement","Name","AdvertId","advertId","trim","favorited","sharePageLink","newVariable","share","advertTitle","url","log","shareInFacebook","d","s","js","fjs","FB","getElementsByTagName","insertBefore","fbAsyncInit","init","appId","version","ui","method","link","caption","toggleFav","delete","favListElem","listItem","MemberFavoriteListId","addToFav","append","scroll","stickyElem","scrollY","scrollTop","screen","height","offsetHeight","position","setVar","val","getVar","bindCloseButtonForHeaderMenu","onCloseRedPopup","closeAllSubMenu","onClickShowHeaderMenu","notificationWrapper","onClickToggleNotificationPopup","docs","notificationLastItem","i","notificationObject","frag","createDocumentFragment","spanDate","spanTime","spanDateTime","spanBody","spanBodyDateTime","domImg","spanImg","domA","domLi","textTime","createTextNode","textDate","textBody","IsRead","buildNotificationDomElements","onClickHeaderLogo","onClickHeaderLogout","domElem","getAttribute","buildDomTreeForGuestUserMobile","headerMobileVisibleLoggedInWrapper","headerMobileLogoutButtonWrapper","sessionStorage","clear","headerMobileNotificationWrapper","headerVisibleNotLoggedInWrapper","buildDomTreeForLoggedInMobile","userLoginHeader","guestLoginHeader","logoutButton","namePlaceholderDom","nameSurname","toLocaleUpperCase","SurName","domS","servicesMobile","buycarMobile","sellcarMobile","priceSuggestionHomeMobile","getNamePlaceholder","notificationDomEl","notificationIcon","quantityCalculated","showNotificationsWith","getNotificationPlaceholder","buildNavigationTogglers","elemList","querySelectorAll","elemArr","Array","prototype","navigationToggleCallback","nodeName","nextElementSibling","toggle","dataLayerClickCallback","dataLayers","facebookShareButton","popupStartDate","popupEndDate","currentDate","logoElem","menuElem","clickHandlers","dataLayerClickHandlers","newItemElem","newItembutton","setEventListenerToFavorite","createHeaderTopNotificationBar","anchorText","anchorClickCallback","closeClickCallback","messageWrapper","notificationBarWrapper","row","rowWrapper","container","paragraph","anchor","span","nextIcon","closeIcon","spanWrapper","createInitHtmlForWrapper","spanEl","bindHeaderTopNotificationAnchor","destroyTopHeaderNotificationBar","storageKey","addToLastSearches","searchList","searchItem","isNewSearchSuggestionItem","unshift","getLastSearches","favoritesWrapper","messagesWrapper","headerGuestNav","headerAuthNav","headerUserDropdown","headerCallsWrapper","setHeaderFavorites","showFavoritesWith","initMenusForLoggedUser","CurrentUser","userMenuDropdown","Communication","CallApiCanSeeHistory","RoutePhone","bindUserCallHistorySwitchers","msgCount","messageResolver","messageCounter","toString","AuctionStatus","auctionLinkEl","commercialPremiumLinkEl","insuranceLinkEl","parent","parseInt","removeItem","onClickLogoutButton","overlay","createUserDropdown","searchContainer","checkVisibilityForCallsIcon","services","buycar","sellcar","mainpage","setPriceSuggestionLinks","initMenusForGuestUser","reHasUnicode","RegExp","test","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsSeq","rsSymbol","reUnicode","match","showNavigation","touchDevice","hideOverlay","activeMenu","source","hasOwnProperty","documentElement","attributes","ie","headerLogo","newAdvertButton","notificationDropdown","pathname","bindTrinkSatButtonTriggerEvent","createAdvertBtn","advertWrapper","menu","zIndex","getAdvertBtnHover","menuItem","len","menuDomEl","targetElem","searchBoxInput","setSegmentifyLoginOps","userId","segmentify","Segmentify","username","addToLocalStorage","localStorageAvailable","localStorage","setItem","JSON","stringify","getFromLocalStorage","parse","getItem"],"mappings":"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","file":"scripts/38.bc51088d641e0ba0115d.component.js","sourcesContent":["import axios from \"@libs/axios\";\r\nimport { forEach, debounce, trim } from \"lodash-es\";\r\nimport { IArabamApiResponse } from \"@interfaces/responses\";\r\nimport { ISuggestionResponse, ISuggestion } from \"@interfaces/suggestions\";\r\nimport {\r\n addClass,\r\n removeClass,\r\n toggleElement,\r\n removeUnnecessaryWhitespaces,\r\n isMobile\r\n} from \"@libs/utils\";\r\nimport { addToLastSearches, getLastSearches } from \"./lastSearches\";\r\n\r\nlet suggestionsWrapper: HTMLElement = null;\r\nlet suggestionsAreaWrapper: HTMLElement = null;\r\nlet suggestionAutoCompleteSearchInput: HTMLInputElement = null;\r\nlet searchBarTriggerInput: HTMLInputElement = null;\r\nlet searchBarTabletTrigger: HTMLInputElement = null;\r\nlet currentSuggestionValue: string = null;\r\n\r\nconst suggestionHeaderMapper = {\r\n UsedCarSuggestion: \"2. El İlanlar\",\r\n NewCarSuggestion: \"Sıfır\",\r\n NewsSuggestion: \"Haberler & Testler\",\r\n FirmSuggestion: \"Galeriler\",\r\n KeywordSuggestion: \"Anahtar Kelimeler\"\r\n};\r\n\r\nexport default function(): any {\r\n const headerSearchWrapper = document.querySelector(\"#header-search-wrapper\");\r\n const searchBarTriggerButton = document.getElementById(\r\n \"js-hook-for-header-mobile-search\"\r\n );\r\n\r\n suggestionsWrapper = document.querySelector(\"#suggestion-wrapper\");\r\n\r\n searchBarTriggerInput = document.querySelector(\r\n \".search-trigger-input-wrapper > .input\"\r\n );\r\n\r\n searchBarTabletTrigger = document.querySelector(\r\n \"#header-tablet-search-box-trigger\"\r\n );\r\n\r\n suggestionAutoCompleteSearchInput = document.querySelector(\r\n \"#search-suggestion-trigger-input\"\r\n );\r\n if (suggestionsWrapper) {\r\n suggestionsAreaWrapper = suggestionsWrapper.querySelector(\r\n \"#suggestions-area\"\r\n );\r\n }\r\n\r\n if (suggestionAutoCompleteSearchInput) {\r\n suggestionAutoCompleteSearchInput.addEventListener(\r\n \"keyup\",\r\n debounce(onKeyUpSuggestionAutoComplete, 250)\r\n );\r\n suggestionAutoCompleteSearchInput.addEventListener(\r\n \"focus\",\r\n debounce(onFocusSuggestionAutoCompleteInput, 250)\r\n );\r\n }\r\n\r\n if (!isMobile()) {\r\n // Arama ikonuna basınca yönlendir\r\n if (headerSearchWrapper) {\r\n headerSearchWrapper\r\n .querySelector(\".search-button\")\r\n .addEventListener(\"click\", redirectToSearchPage);\r\n }\r\n } else {\r\n // Kapat butonuna basınca kapat\r\n var suggestionWrapperButton = document.querySelector(\r\n \"#suggestion-wrapper .btn\"\r\n );\r\n if (suggestionWrapperButton) {\r\n suggestionWrapperButton.addEventListener(\"click\", closeSuggestionWrapper);\r\n }\r\n }\r\n\r\n if (!isMobile()) {\r\n if (suggestionAutoCompleteSearchInput) {\r\n suggestionAutoCompleteSearchInput.addEventListener(\r\n \"focus\",\r\n (event: any) => {\r\n const headerOverlay = document.querySelector(\"body .header-overlay\");\r\n headerOverlay.classList.add(\"topOfAllElement\");\r\n suggestionsWrapper.classList.add(\"active\");\r\n headerSearchWrapper.setAttribute(\"style\", \"z-index:5\");\r\n onTriggerSearchInputFocus(event);\r\n }\r\n );\r\n }\r\n }\r\n\r\n if (!isMobile()) {\r\n // show on desktop\r\n if (headerSearchWrapper) {\r\n headerSearchWrapper.classList.remove(\"dn\");\r\n }\r\n } else {\r\n if (searchBarTriggerButton) {\r\n searchBarTriggerButton.addEventListener(\"click\", () => {\r\n toggleElement(\"#suggestion-wrapper\");\r\n suggestionAutoCompleteSearchInput.focus();\r\n printLastSearches();\r\n document.body.classList.add(\"ovh\");\r\n document.body.classList.add(\"pf\");\r\n document.body.classList.add(\"w100\");\r\n });\r\n }\r\n }\r\n}\r\nfunction closeSearchWrapperLogic(event: any) {\r\n const elem: HTMLElement = event.target as HTMLElement;\r\n if (!document.getElementById(\"suggestion-wrapper\").contains(elem)) {\r\n closeSuggestionWrapper();\r\n }\r\n}\r\n\r\nfunction onFocusSuggestionAutoCompleteInput(event: FocusEvent) {\r\n const dl: any = (window as any).dataLayer;\r\n if (!!dl) {\r\n dl.push({\r\n Category: \"Header\",\r\n Action: \"Search Box\",\r\n Label: \"Focus\",\r\n event: \"gaEvent\",\r\n nonInteraction: true\r\n });\r\n }\r\n generateSuggestions((event.target as HTMLInputElement).value);\r\n}\r\n\r\nfunction onTriggerSearchInputFocus(event: KeyboardEvent): void {\r\n removeClass(suggestionsWrapper, \"dn\");\r\n if (isMobile()) {\r\n const dl: any = (window as any).dataLayer;\r\n if (!!dl) {\r\n dl.push({\r\n Category: \"Header\",\r\n Action: \"Search Box\",\r\n Label: \"Focus\",\r\n event: \"gaEvent\",\r\n nonInteraction: true\r\n });\r\n }\r\n }\r\n const value = (event.target as HTMLInputElement).value;\r\n if (typeof value !== \"undefined\" && value && value !== null) {\r\n suggestionAutoCompleteSearchInput.value = value;\r\n }\r\n printLastSearches();\r\n suggestionAutoCompleteSearchInput.focus();\r\n // document.addEventListener(\"click\", closeSearchWrapperLogic);\r\n}\r\n\r\nfunction onKeyUpSuggestionAutoComplete(event: KeyboardEvent): void {\r\n // ESC kontrolü yaparak UX aşığı olduğumuzu gösteriyoruz\r\n if (event.which === 27 || event.keyCode === 27) {\r\n closeSuggestionWrapper();\r\n return;\r\n }\r\n\r\n if (event.which === 13 || event.key === \"Enter\") {\r\n return redirectToSearchPage();\r\n }\r\n\r\n generateSuggestions((event.target as HTMLInputElement).value);\r\n}\r\n\r\nasync function generateSuggestions(value: string) {\r\n value = trim(removeUnnecessaryWhitespaces(value));\r\n if (value.length < 2) {\r\n printLastSearches();\r\n } else if (\r\n currentSuggestionValue === null ||\r\n currentSuggestionValue !== value\r\n ) {\r\n if (value && value !== \"\") {\r\n currentSuggestionValue = value;\r\n const suggestions = await getSuggestionsFor(value);\r\n\r\n if (suggestions.Success) {\r\n suggestionsAreaWrapper.innerHTML = \"\";\r\n forEach(suggestions.Data, (data, index) => {\r\n if (data.length > 0) {\r\n forEach(data, (dataIn, indexIn) => {\r\n dataIn.parentCategory = index;\r\n });\r\n }\r\n createSuggestionCategoryListWith(data, index as any, value as any);\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction closeSuggestionWrapper() {\r\n if (isMobile()) {\r\n addClass(suggestionsWrapper, \"dn\");\r\n suggestionsAreaWrapper.innerHTML = \"\";\r\n suggestionAutoCompleteSearchInput.value = \"\";\r\n document.body.classList.remove(\"ovh\");\r\n document.body.classList.remove(\"pf\");\r\n document.body.classList.remove(\"w100\");\r\n }\r\n document.removeEventListener(\"click\", closeSearchWrapperLogic);\r\n}\r\n\r\nfunction getSuggestionsFor(\r\n value: string\r\n): Promise> {\r\n return axios.get(`/ilan/oneri?searchText=${value}`);\r\n}\r\n\r\nfunction createSuggestionCategoryListWith(\r\n suggestions: ISuggestion[],\r\n index:\r\n | \"UsedCarSuggestion\"\r\n | \"NewCarSuggestion\"\r\n | \"NewsSuggestion\"\r\n | \"FirmSuggestion\"\r\n | \"KeywordSuggestion\",\r\n value: any\r\n): void {\r\n if (suggestions.length > 0) {\r\n const newList = document.createElement(\"ul\");\r\n addClass(newList, \"hs-suggest-category-list\");\r\n suggestionsAreaWrapper.appendChild(newList);\r\n const headerOfList = document.createElement(\"li\");\r\n addClass(headerOfList, \"hs-suggestion-header\");\r\n headerOfList.innerText = suggestionHeaderMapper[index];\r\n newList.appendChild(headerOfList);\r\n suggestions.map((suggestion) => {\r\n createListElement(suggestion, newList);\r\n });\r\n const searchInAll = document.createElement(\"li\");\r\n const searchInAllLink = document.createElement(\"a\");\r\n\r\n addClass(searchInAll, \"search-in-all-categories\");\r\n addClass(searchInAllLink, \"hs-suggestion-link\");\r\n\r\n if (suggestions[0].Type == 10) {\r\n searchInAllLink.href = \"/ikinci-el?searchText=\" + value;\r\n searchInAllLink.target = \"_self\";\r\n searchInAllLink.innerHTML =\r\n \"Tüm 2. el ilanlarda ara\";\r\n } else if (suggestions[0].Type == 20) {\r\n searchInAllLink.href = \"/galeriler?searchText=\" + value;\r\n searchInAllLink.innerHTML =\r\n \"Tüm galerilerde ara\";\r\n }\r\n searchInAll.appendChild(searchInAllLink);\r\n newList.appendChild(searchInAll);\r\n }\r\n}\r\n\r\nfunction createListElement(suggestion: ISuggestion, appendTo: HTMLElement) {\r\n const listElement = document.createElement(\"li\");\r\n const anchorElement = document.createElement(\"a\");\r\n\r\n const textElement = document.createElement(\"div\");\r\n addClass(textElement, \"hs-suggestion-text\");\r\n if (!isMobile()) {\r\n textElement.innerHTML = `${(suggestion.Description\r\n ? suggestion.Description\r\n : suggestion.Text) + \" \"}${\r\n suggestion.Count && suggestion.Count > 0\r\n ? \" (\" + suggestion.Count + \")\"\r\n : \"\"\r\n }`;\r\n }\r\n addClass(anchorElement, \"hs-suggestion-link\");\r\n anchorElement.target = \"_self\";\r\n if (isMobile()) {\r\n anchorElement.appendChild(textElement);\r\n if (suggestion.Description || suggestion.Text) {\r\n const descriptionElement = document.createElement(\"div\");\r\n addClass(descriptionElement, \"hs-suggestion-description\");\r\n descriptionElement.innerHTML = `${(suggestion.Description\r\n ? suggestion.Description\r\n : suggestion.Text) + \" \"}${\r\n suggestion.Count && suggestion.Count > 0\r\n ? \" (\" + suggestion.Count + \")\"\r\n : \"\"\r\n }`;\r\n anchorElement.appendChild(descriptionElement);\r\n }\r\n } else {\r\n anchorElement.appendChild(textElement);\r\n }\r\n\r\n anchorElement.href = suggestion.Url;\r\n anchorElement.addEventListener(\"click\", function() {\r\n addToLastSearches(suggestion);\r\n });\r\n listElement.appendChild(anchorElement);\r\n appendTo.appendChild(listElement);\r\n}\r\n\r\nfunction redirectToSearchPage(): void {\r\n const value = (document.getElementById(\r\n \"search-suggestion-trigger-input\"\r\n ) as HTMLInputElement).value;\r\n const trimmedValue = trim(removeUnnecessaryWhitespaces(value));\r\n if (trimmedValue.length > 0) {\r\n const dl: any = (window as any).dataLayer;\r\n if (!!dl) {\r\n dl.push({\r\n Category: \"Header\",\r\n Action: \"Search Box\",\r\n Label: \"Search Free Text-\" + trimmedValue,\r\n event: \"gaEvent\",\r\n nonInteraction: true\r\n });\r\n }\r\n addToLastSearches({\r\n Id: trimmedValue,\r\n Text: value,\r\n Url: `/ikinci-el?searchText=${trimmedValue}`\r\n });\r\n window.location.href = `/ikinci-el?searchText=${encodeURIComponent(trimmedValue)}`;\r\n } else {\r\n document.getElementById(\"search-suggestion-trigger-input\").focus();\r\n }\r\n}\r\n\r\nfunction printLastSearches(): void {\r\n const lastSearches = getLastSearches();\r\n if (lastSearches && lastSearches.length > 0) {\r\n suggestionsAreaWrapper.innerHTML = \"\";\r\n\r\n const newList = document.createElement(\"ul\");\r\n addClass(newList, \"hs-suggest-category-list\");\r\n suggestionsAreaWrapper.appendChild(newList);\r\n const headerOfList = document.createElement(\"li\");\r\n addClass(headerOfList, \"hs-suggestion-header\");\r\n headerOfList.innerText = \"Son Aramalar\";\r\n newList.appendChild(headerOfList);\r\n\r\n lastSearches.map((suggestion) => {\r\n createLastSearchListElement(suggestion, newList);\r\n });\r\n } else {\r\n suggestionsAreaWrapper.innerHTML = \"\";\r\n }\r\n}\r\n\r\n/** her son arama icin listItem hmtl yaratir */\r\nfunction createLastSearchListElement(suggestion: any, appendTo: HTMLElement) {\r\n const listElement = document.createElement(\"li\");\r\n const anchorElement = document.createElement(\"a\");\r\n\r\n const textElement = document.createElement(\"div\");\r\n addClass(textElement, \"hs-suggestion-text\");\r\n addClass(listElement, \"hs-inline-list\");\r\n textElement.innerHTML =\r\n `${suggestion.Text}`.charAt(0).toUpperCase() +\r\n `${suggestion.Text}`.slice(1);\r\n addClass(anchorElement, \"hs-suggestion-link\");\r\n anchorElement.target = \"_self\";\r\n anchorElement.appendChild(textElement);\r\n\r\n anchorElement.href = suggestion.Url;\r\n anchorElement.addEventListener(\"click\", function() {\r\n addToLastSearches(suggestion);\r\n });\r\n listElement.appendChild(anchorElement);\r\n appendTo.appendChild(listElement);\r\n}\r\n","import {\r\n INotificationData,\r\n INotificationDocument\r\n} from \"@interfaces/notifications\";\r\n\r\nimport axios from \"@libs/axios\";\r\nimport { getUser, getStatus } from \"@components/header/member\";\r\nimport { addClass, removeClass } from \"@libs/utils\";\r\n\r\nconst headerNotificationWrapper = document.getElementById(\r\n \"header-notification-wrapper\"\r\n);\r\n\r\nexport function createNotificationData() {\r\n const user = getUser();\r\n const notificationFirstWrapper = headerNotificationWrapper.querySelector(\r\n \".first-wrapper\"\r\n );\r\n if (user.memberStatus && user.memberStatus.UnReadNotificationCount > 0) {\r\n showNotificationsWith(user.memberStatus.UnReadNotificationCount);\r\n\r\n notificationFirstWrapper.addEventListener(\r\n \"click\",\r\n bindNotificationIconClick\r\n );\r\n } else {\r\n removeClass(headerNotificationWrapper, \"active\");\r\n headerNotificationWrapper.addEventListener(\"click\", () => {\r\n window.location.href = \"/bildirimler\";\r\n });\r\n }\r\n}\r\n\r\nfunction bindNotificationIconClick() {\r\n const dropdown = headerNotificationWrapper.querySelector(\r\n \"div.notification-dropdown\"\r\n );\r\n var header = document.querySelector(\"body .headerBar\");\r\n\r\n\r\n if (dropdown.classList.contains(\"opened\")) {\r\n hideOverlay();\r\n removeClass(dropdown, \"opened\");\r\n getStatus();\r\n } else {\r\n showLoadingWrapper();\r\n showOverLay(\"header#header .headerBar\", header.clientHeight)\r\n addClass(dropdown, \"opened\");\r\n getNotifications();\r\n }\r\n}\r\n\r\nfunction showOverLay(selector: string, offsetTop: any) {\r\n var header = (selector != \"\") ? document.querySelector(selector) : null;\r\n var viewportOffset = (header != null) ? header.getBoundingClientRect().top : 0;\r\n\r\n var overlay = document.querySelector(\"body .overlay-container\");\r\n overlay.classList.add(\"show\");\r\n\r\n var headerOverlay = document.querySelector(\"body .header-overlay\");\r\n headerOverlay.setAttribute(\"style\", \"top:\" + (viewportOffset + offsetTop) + \"px\");\r\n headerOverlay.classList.add(\"show\");\r\n\r\n\r\n}\r\n\r\nfunction hideOverlay() {\r\n var overlay = document.querySelector(\"body .overlay-container\");\r\n overlay.classList.remove(\"show\");\r\n var headerOverlay = document.querySelector(\"body .header-overlay\");\r\n headerOverlay.classList.remove(\"show\");\r\n}\r\n\r\nfunction showNotificationsWith(quantity: number) {\r\n addClass(headerNotificationWrapper, \"active\");\r\n\r\n headerNotificationWrapper.querySelector(\".header-badge .inner\").textContent =\r\n quantity > 99 ? \"99+\" : quantity.toLocaleString();\r\n}\r\n\r\nfunction getNotifications() {\r\n axios\r\n .post(\"/membernotification/list\", {\r\n UnReadOnly: true,\r\n take: 3\r\n })\r\n .then((response) => {\r\n hideLoadingWrapper();\r\n createNotificationListWith(response.Data.Documents);\r\n });\r\n}\r\n\r\nfunction createNotificationListWith(documents: INotificationDocument[]) {\r\n const nothingFoundWrapper = headerNotificationWrapper.querySelector(\r\n \".nothing-found\"\r\n );\r\n\r\n const list = headerNotificationWrapper.querySelector(\"ul.notifications-list\");\r\n list.innerHTML = \"\";\r\n\r\n if (documents.length > 0) {\r\n addClass(nothingFoundWrapper, \"dn\");\r\n\r\n documents.forEach((data) => {\r\n const listElement = document.createElement(\"li\");\r\n\r\n const anchorElement = document.createElement(\"a\");\r\n anchorElement.href = data.WebUrl;\r\n\r\n const imageWrapper = document.createElement(\"div\");\r\n addClass(imageWrapper, \"image-wrapper\");\r\n\r\n const notificationImage = document.createElement(\"img\");\r\n notificationImage.src = data.ImageUrl;\r\n imageWrapper.appendChild(notificationImage);\r\n\r\n const detailsWrapper = document.createElement(\"div\");\r\n addClass(detailsWrapper, \"details-wrapper\");\r\n\r\n const title = document.createElement(\"div\");\r\n addClass(title, \"title\");\r\n title.innerText = data.Title;\r\n\r\n const detailContent = document.createElement(\"p\");\r\n detailContent.innerText = data.Body;\r\n\r\n const dateWrapper = document.createElement(\"div\");\r\n addClass(dateWrapper, \"date-wrapper\");\r\n\r\n const date = document.createElement(\"div\");\r\n date.innerText = data.CreatedDate;\r\n\r\n const time = document.createElement(\"div\");\r\n time.innerText = data.CreatedHour;\r\n\r\n dateWrapper.appendChild(date);\r\n dateWrapper.appendChild(time);\r\n\r\n detailsWrapper.appendChild(title);\r\n detailsWrapper.appendChild(detailContent);\r\n detailsWrapper.appendChild(dateWrapper);\r\n\r\n anchorElement.appendChild(imageWrapper);\r\n anchorElement.appendChild(detailsWrapper);\r\n\r\n listElement.appendChild(anchorElement);\r\n\r\n list.appendChild(listElement);\r\n });\r\n } else {\r\n removeClass(nothingFoundWrapper, \"dn\");\r\n removeClass(headerNotificationWrapper, \"active\");\r\n }\r\n}\r\n\r\nfunction hideLoadingWrapper() {\r\n addClass(headerNotificationWrapper.querySelector(\".loading\"), \"dn\");\r\n removeClass(\r\n headerNotificationWrapper.querySelector(\".button-all-notifications\"),\r\n \"dn\"\r\n );\r\n}\r\n\r\nfunction showLoadingWrapper() {\r\n removeClass(headerNotificationWrapper.querySelector(\".loading\"), \"dn\");\r\n addClass(\r\n headerNotificationWrapper.querySelector(\".button-all-notifications\"),\r\n \"dn\"\r\n );\r\n}\r\n","import { getUser } from \"@components/header/member\";\r\nimport { INotCompletedAdvert } from \"@interfaces/member\";\r\nimport { removeClass, addClass } from \"@libs/utils\";\r\n\r\nexport default function() {\r\n const user = getUser();\r\n const wrapper = document.getElementById(\r\n \"header-not-completed-advert-wrapper\"\r\n );\r\n if (user.isUserLoggedIn && user.memberData.IndividualMember) {\r\n createNotCompletedAdvertArea(\r\n user.memberData.IndividualMember.NotCompletedAdvert,\r\n wrapper\r\n );\r\n }\r\n}\r\n\r\nfunction createNotCompletedAdvertArea(\r\n advert: INotCompletedAdvert,\r\n wrapper: Element\r\n) {\r\n if (advert) {\r\n addClass(wrapper.parentElement, \"not-completed\");\r\n\r\n const addInformationButton = wrapper.querySelector(\r\n \"#addInformationToNotCompletedAdvertButton\"\r\n );\r\n\r\n // Add info button event dispatcher\r\n addInformationButton.addEventListener(\"click\", () => {\r\n window.location.href = advert.EditUrl;\r\n });\r\n\r\n if (advert.PhotoUrl) {\r\n // Prepare image of advert\r\n const imageWrapper: Element = wrapper.querySelector(\".image-wrapper\");\r\n const image: HTMLImageElement = document.createElement(\"img\");\r\n let rawImagePath: string = advert.PhotoUrl;\r\n rawImagePath = rawImagePath.replace(\"{0}\", 160 + \"x\" + 120);\r\n image.src = rawImagePath;\r\n imageWrapper.appendChild(image);\r\n }\r\n\r\n // Progress bar for not completed advert\r\n const bar = wrapper.querySelector(\r\n \".progress-bar > .outer > .inner\"\r\n ) as HTMLDivElement;\r\n bar.style.width = `${advert.Point.Percentage}%`;\r\n\r\n removeClass(wrapper, \"dn\");\r\n }\r\n}\r\n","import { addClass } from \"@libs/utils\";\r\nimport {\r\n ICreateModalFooterButtonOptions,\r\n ICreateModalOptions\r\n} from \"@interfaces/modal-utils\";\r\n\r\nexport function createNewModalElement(options: ICreateModalOptions): void {\r\n if (options) {\r\n const innerModalData = document.getElementById(options.id)\r\n ? document.getElementById(options.id)\r\n : document.createElement(\"div\");\r\n innerModalData.id = options.id;\r\n\r\n const innerModalHeader = document.createElement(\"div\");\r\n addClass(innerModalHeader, \"modal-header\");\r\n innerModalHeader.innerText = options.title\r\n ? options.title\r\n : options.success\r\n ? \"İşlem Başarılı\"\r\n : \"Hata Oluştu!\";\r\n\r\n innerModalData.innerHTML = \"\";\r\n innerModalData.appendChild(innerModalHeader);\r\n\r\n if (options.message) {\r\n const innerModalContent = document.createElement(\"div\");\r\n addClass(innerModalContent, \"modal-inner-content\");\r\n\r\n innerModalContent.innerHTML = \"

\" + options.message + \"

\";\r\n innerModalData.appendChild(innerModalContent);\r\n }\r\n\r\n if (options.buttons) {\r\n innerModalData.appendChild(\r\n createModalFooter(options.buttons.close, options.buttons.confirm)\r\n );\r\n }\r\n\r\n addClass(innerModalData, \"dn\");\r\n\r\n document.body.style.top = window.pageYOffset + \"px\";\r\n\r\n if (document.getElementById(options.id) === null) {\r\n document.body.appendChild(innerModalData);\r\n }\r\n }\r\n}\r\n\r\nfunction createModalFooter(\r\n close?: ICreateModalFooterButtonOptions,\r\n confirm?: ICreateModalFooterButtonOptions\r\n): Element {\r\n const innerModalFooter = document.createElement(\"div\");\r\n addClass(innerModalFooter, \"modal-footer\");\r\n\r\n if (close && close.show) {\r\n innerModalFooter.appendChild(\r\n createModalButton(\r\n close.text ? close.text : \"Kapat\",\r\n \"btn-black2018\",\r\n close.callback\r\n )\r\n );\r\n }\r\n\r\n if (confirm && confirm.show) {\r\n innerModalFooter.appendChild(\r\n createModalButton(\r\n confirm.text ? confirm.text : \"Tamam\",\r\n \"btn-red-yellow-2018\",\r\n confirm.callback\r\n )\r\n );\r\n }\r\n\r\n return innerModalFooter;\r\n}\r\n\r\nfunction createModalButton(\r\n text: string,\r\n className: string,\r\n callback?: () => any\r\n): Element {\r\n const buttonWrapper = document.createElement(\"div\");\r\n addClass(buttonWrapper, \"button-wrapper\");\r\n\r\n const button = document.createElement(\"div\");\r\n addClass(button, \"btn\");\r\n addClass(button, className);\r\n button.innerText = text;\r\n\r\n buttonWrapper.addEventListener(\"click\", callback, false);\r\n buttonWrapper.appendChild(button);\r\n return buttonWrapper;\r\n}\r\n","import { getUser } from \"@components/header/member\";\r\nimport axios from \"@libs/axios\";\r\nimport { createNewModalElement } from \"@libs/modals\";\r\nimport { ICreateModalOptions } from \"@interfaces/modal-utils\";\r\nimport VanillaModal from \"vanilla-modal\";\r\nimport {\r\n createHeaderTopNotificationBar,\r\n destroyTopHeaderNotificationBar\r\n} from \"./top-notification-bar\";\r\n\r\nexport function bindCheckMailApproveNotification() {\r\n const data = getUser().memberData;\r\n const hasApprovedMail = data.IsMailApproved;\r\n\r\n if (!hasApprovedMail) {\r\n const emailAddress = data.MainUser.Email;\r\n const message =\r\n \"Üyelik işlemlerinizin tamamlanması için \" +\r\n emailAddress +\r\n \" adresinize gönderilen doğrulama linki onaylanmadı! \" +\r\n \"Doğrulama e-postası gelmediyse:\";\r\n\r\n if (!!emailAddress) {\r\n createHeaderTopNotificationBar({\r\n message,\r\n type: \"email\"\r\n }, \"Tekrar Gönder\", () => {\r\n bindResendAnchorClicked(emailAddress);\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction bindResendAnchorClicked(emailAddress: string) {\r\n axios\r\n .post(\"/authentication/sendActivation\", { email: emailAddress }, null, {\r\n showLoading: true\r\n })\r\n .then((response) => {\r\n import(/* webpackChunkName: \"emailApprovalModal\" */ \"vanilla-modal\").then(\r\n (modals) =>\r\n createNotValidatedEmailModal(\r\n response.Message,\r\n true,\r\n new modals.default()\r\n )\r\n );\r\n })\r\n .catch((error) => {\r\n import(/* webpackChunkName: \"emailApprovalModal\" */ \"vanilla-modal\").then(\r\n (modals) =>\r\n createNotValidatedEmailModal(\r\n error.Message,\r\n false,\r\n new modals.default()\r\n )\r\n );\r\n });\r\n}\r\n\r\nfunction createNotValidatedEmailModal(\r\n message: string,\r\n success: boolean = true,\r\n modal: VanillaModal\r\n): void {\r\n const options: ICreateModalOptions = {\r\n id: \"mail-approval-response\",\r\n message,\r\n success\r\n };\r\n\r\n options.buttons = success\r\n ? { confirm: { show: true, callback: () => modal.destroy() } }\r\n : {\r\n close: {\r\n show: true,\r\n callback: () => {\r\n modal.destroy();\r\n destroyTopHeaderNotificationBar();\r\n }\r\n }\r\n };\r\n\r\n createNewModalElement(options);\r\n modal.open(\"#mail-approval-response\");\r\n}\r\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import hoverintent from 'hoverintent';\r\nexport default hoverintent;","'use strict';\n\nmodule.exports = function(el, onOver, onOut) {\n var x, y, pX, pY;\n var mouseOver = false;\n var focused = false;\n var h = {},\n state = 0,\n timer = 0;\n\n var options = {\n sensitivity: 7,\n interval: 100,\n timeout: 0,\n handleFocus: false\n };\n\n function delay(el, e) {\n if (timer) timer = clearTimeout(timer);\n state = 0;\n return focused ? undefined : onOut.call(el, e);\n }\n\n function tracker(e) {\n x = e.clientX;\n y = e.clientY;\n }\n\n function compare(el, e) {\n if (timer) timer = clearTimeout(timer);\n if ((Math.abs(pX - x) + Math.abs(pY - y)) < options.sensitivity) {\n state = 1;\n return focused ? undefined : onOver.call(el, e);\n } else {\n pX = x;\n pY = y;\n timer = setTimeout(function() {\n compare(el, e);\n }, options.interval);\n }\n }\n\n // Public methods\n h.options = function(opt) {\n var focusOptionChanged = opt.handleFocus !== options.handleFocus;\n options = Object.assign({}, options, opt);\n if (focusOptionChanged) {\n options.handleFocus ? addFocus() : removeFocus();\n }\n return h;\n };\n\n function dispatchOver(e) {\n mouseOver = true;\n if (timer) timer = clearTimeout(timer);\n el.removeEventListener('mousemove', tracker, false);\n\n if (state !== 1) {\n pX = e.clientX;\n pY = e.clientY;\n\n el.addEventListener('mousemove', tracker, false);\n\n timer = setTimeout(function() {\n compare(el, e);\n }, options.interval);\n }\n\n return this;\n }\n\n function dispatchOut(e) {\n mouseOver = false;\n if (timer) timer = clearTimeout(timer);\n el.removeEventListener('mousemove', tracker, false);\n\n if (state === 1) {\n timer = setTimeout(function() {\n delay(el, e);\n }, options.timeout);\n }\n\n return this;\n }\n\n function dispatchFocus(e) {\n if (!mouseOver) {\n focused = true;\n onOver.call(el, e);\n }\n }\n\n function dispatchBlur(e) {\n if (!mouseOver && focused) {\n focused = false;\n onOut.call(el, e);\n }\n }\n\n function addFocus() {\n el.addEventListener('focus', dispatchFocus, false);\n el.addEventListener('blur', dispatchBlur, false);\n }\n\n function removeFocus() {\n el.removeEventListener('focus', dispatchFocus, false);\n el.removeEventListener('blur', dispatchBlur, false);\n }\n\n h.remove = function() {\n if (!el) return;\n el.removeEventListener('mouseover', dispatchOver, false);\n el.removeEventListener('mouseout', dispatchOut, false);\n removeFocus();\n };\n\n if (el) {\n el.addEventListener('mouseover', dispatchOver, false);\n el.addEventListener('mouseout', dispatchOut, false);\n }\n\n return h;\n};\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nexport default charsEndIndex;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nexport default charsStartIndex;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport charsEndIndex from './_charsEndIndex.js';\nimport charsStartIndex from './_charsStartIndex.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrim, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nexport default trim;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import { getCookie, setCookie } from \"../libs/cookie\";\r\nimport { showElement, hideElement } from \"../libs/utils\";\r\nimport { createHeaderTopNotificationBar } from \"@components/header/top-notification-bar\";\r\n\r\nfunction setCookieForHeaderCookieNotif() {\r\n // cookie yaz\r\n setCookie(\"cookieDisclaimer\", 1, 365);\r\n}\r\n\r\n/**\r\n * cookie barina tiklayinca calisacak callback\r\n */\r\nfunction cookieDisclaimerClickCallback() {\r\n setCookieForHeaderCookieNotif();\r\n // sari bari gizle\r\n window.location.href = \"/yardim/cerez-politikasi\";\r\n}\r\n\r\nwindow.addEventListener(\"load\", () => {\r\n // load aninda cookieyi okumaya calis\r\n const cookie = getCookie(\"cookieDisclaimer\");\r\n // cookie yoksa ya da degeri yanlissa\r\n if (!cookie) {\r\n createHeaderTopNotificationBar({\r\n message: \"Size daha iyi hizmet sunmak için çerezler kullanıyoruz. arabam.com`u kullanarak çerezlere izin veriyorsunuz.\",\r\n type: \"cookie\"\r\n }, \"Detaylı Bilgi\", cookieDisclaimerClickCallback, setCookieForHeaderCookieNotif);\r\n }\r\n});\r\n","import axios from \"@libs/axios\";\r\n\r\nimport {\r\n IMemberStatus,\r\n IMemberInfo,\r\n IArabamUserData\r\n} from \"@interfaces/member\";\r\n\r\nimport {\r\n buildDomTreeForLoggedInMobile,\r\n buildDomTreeForGuestUserMobile\r\n} from \"./header.mobile\";\r\n\r\nimport {\r\n setHeaderFavorites,\r\n initMenusForLoggedUser,\r\n initMenusForGuestUser\r\n} from \"./user-menus\";\r\nimport { getCookie, setCookie } from \"@libs/cookie\";\r\n\r\nimport { bindCheckMailApproveNotification } from \"./member-email-approve\";\r\n\r\nexport const INDEX_ARABAM_USER = \"arabamUser\";\r\nexport const INDEX_IS_USER_LOGGED_IN = \"isUserLoggedIn\";\r\nexport const INDEX_MEMBER_DATA = \"memberData\";\r\nexport const INDEX_MEMBER_STATUS = \"memberStatus\";\r\nexport const INDEX_IS_FETCHING_MEMBER = \"isFetchingMember\";\r\n\r\nlet userStatus: IMemberStatus = null;\r\nexport let userData: IMemberInfo = null;\r\n\r\nlet memberInfo: any;\r\nexport function getMemberData(): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (memberInfo) {\r\n return resolve(memberInfo);\r\n }\r\n\r\n return memberInfo;\r\n });\r\n}\r\n\r\nconst isMobile: boolean = getConfiguration(\"IsMobile\");\r\n\r\nexport default function(): void {\r\n setUser(INDEX_IS_USER_LOGGED_IN, false);\r\n (window as any)[INDEX_IS_FETCHING_MEMBER] = false;\r\n getStatus().then((promiseResponse: any) => {\r\n if (!!promiseResponse) {\r\n getMemberInfo();\r\n }\r\n });\r\n}\r\n\r\nexport function getStatus(): any {\r\n return axios\r\n .get(\"/info/status\")\r\n .then((response) => {\r\n userStatus = response.Data;\r\n return response;\r\n })\r\n .catch(setUserNotLoggedIn);\r\n}\r\n\r\nexport function getUser(): IArabamUserData {\r\n return (window as any)[INDEX_ARABAM_USER];\r\n}\r\n\r\nexport function setUser(index: string, data: T): void {\r\n if (!(window as any)[INDEX_ARABAM_USER]) {\r\n (window as any)[INDEX_ARABAM_USER] = {};\r\n }\r\n (window as any)[INDEX_ARABAM_USER][index] = data;\r\n}\r\n\r\nexport function getMemberInfo(): void {\r\n memberInfo = axios\r\n .get(`/home/memberInfo?random=${new Date().getTime()}`)\r\n .then((response) => {\r\n userData = response.Data;\r\n axios\r\n .get(\r\n `/api/auction-permissions?random=${new Date().getTime()}`\r\n )\r\n .then((response) => {\r\n userData.AuctioPermissions = response.Data;\r\n if (!!userData) {\r\n setUserLoggedIn();\r\n }\r\n })\r\n .catch((error) =>\r\n console.error(\r\n \"Error while getting member info from server. Error: \" +\r\n error.message\r\n )\r\n );\r\n })\r\n .catch((error) =>\r\n console.error(\r\n \"Error while getting member info from server. Error: \" + error.message\r\n )\r\n );\r\n}\r\n\r\nexport function getConfiguration(index: string): T {\r\n return (window as any).configuration && (window as any).configuration[index]\r\n ? (window as any).configuration[index]\r\n : null;\r\n}\r\n\r\nfunction setUserNotLoggedIn(): void {\r\n setUser(INDEX_IS_USER_LOGGED_IN, false);\r\n (window as any)[INDEX_IS_FETCHING_MEMBER] = true;\r\n if (!isMobile) {\r\n setHeaderFavorites();\r\n }\r\n bindAngularStuff(false);\r\n\r\n // Bildirim ve dropdown componentleri için \"misafir\" modu init edilecek\r\n if (isMobile) {\r\n buildDomTreeForGuestUserMobile();\r\n } else {\r\n initMenusForGuestUser();\r\n }\r\n}\r\n// false true false\r\n\r\nfunction bindAngularStuff(isLoggedIn: boolean): void {\r\n const ang = (window as any).angular;\r\n if (!!ang) {\r\n try {\r\n const $html = ang.element(document.body.parentNode as any);\r\n const $rootScope = $html.injector().get(\"$rootScope\");\r\n $rootScope.$apply(() => {\r\n if (isLoggedIn) {\r\n $rootScope.Properties = $rootScope.Properties || {};\r\n $rootScope.Properties.IsUserLoggedIn = true;\r\n $rootScope.Properties.IsEmailRequired = !userData.Email;\r\n $rootScope.Properties.IsMailApproved = userData.IsMailApproved;\r\n $rootScope.Properties.CommercialMember =\r\n userData && !!userData.CommercialMember;\r\n\r\n $rootScope.UnreadFavCount = userStatus.FavoritedAdvertCount;\r\n $rootScope.UnreadMessageCount = userStatus.UnreadMessageCount;\r\n $rootScope.UnreadNotificationCount = userStatus.UnReadNotificationCount;\r\n $rootScope.MissedCallCount = userStatus.RoutePhoneMissedCallCount;\r\n } else {\r\n $rootScope.Properties.IsUserLoggedIn = false;\r\n $rootScope.Properties.IsEmailRequired = true;\r\n $rootScope.Properties.IsMailApproved = false;\r\n }\r\n });\r\n } catch (error) {\r\n console.error(error.message)\r\n }\r\n }\r\n}\r\n\r\nfunction setUserLoggedIn(): void {\r\n setUser(INDEX_IS_USER_LOGGED_IN, true);\r\n setUser(INDEX_MEMBER_STATUS, userStatus);\r\n setUser(INDEX_MEMBER_DATA, userData);\r\n (window as any)[INDEX_IS_FETCHING_MEMBER] = true;\r\n bindAngularStuff(true);\r\n bindCheckMailApproveNotification();\r\n\r\n // Kullanıcılar için gerekli olan dropdown, bildirimler init edilecek\r\n if (isMobile) {\r\n buildDomTreeForLoggedInMobile();\r\n } else {\r\n initMenusForLoggedUser();\r\n }\r\n setHeaderFavorites();\r\n if (userData.Type == 2) {\r\n var popupCampaignElement = document.getElementById(\r\n \"js-hook-arabam-campaign-popup-container\"\r\n );\r\n var cookieName = \"campaignpopup-100car\";\r\n var showPopup = getCookie(cookieName);\r\n var todayDate = new Date();\r\n var showPopupDateTime = new Date(2019, 10, 19, 11, 30, 0, 0);\r\n if (\r\n todayDate <= showPopupDateTime &&\r\n popupCampaignElement &&\r\n window.location.href.indexOf(\"/panelim/arac-al/ihale-listesi\") == -1\r\n ) {\r\n if (\r\n !showPopup &&\r\n navigator.userAgent.indexOf(\"Google Page Speed Insights\") == -1 &&\r\n navigator.userAgent.indexOf(\"Chrome-Lighthouse\") == -1\r\n ) {\r\n popupCampaignElement.classList.remove(\"dn\");\r\n popupCampaignElement\r\n .querySelector(\"img\")\r\n .addEventListener(\"click\", function(event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n window.location.href = \"/panelim/arac-al/ihale-listesi\";\r\n event.preventDefault();\r\n });\r\n popupCampaignElement\r\n .querySelector(\".close-button\")\r\n .addEventListener(\"click\", function(event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n popupCampaignElement.outerHTML = \"\";\r\n event.preventDefault();\r\n });\r\n popupCampaignElement.addEventListener(\"click\", function(event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n popupCampaignElement.outerHTML = \"\";\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","export function getCookie(name: string): any {\r\n const value = \"; \" + document.cookie;\r\n const parts = value.split(\"; \" + name + \"=\");\r\n if (parts.length === 2) {\r\n return parts\r\n .pop()\r\n .split(\";\")\r\n .shift();\r\n }\r\n}\r\n\r\nexport function setCookie(name: string, value: any, days: number) {\r\n let date: any;\r\n let expires: any;\r\n if (days) {\r\n date = new Date();\r\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\r\n expires = \"; expires=\" + date.toGMTString();\r\n } else {\r\n expires = \"\";\r\n }\r\n document.cookie = name + \"=\" + value + expires + \"; path=/\";\r\n}\r\n","import { setDataLayer } from \"@libs/analytics\";\r\nimport { setSegmentifyLoginOps } from \"@libs/segmentify\";\r\nimport Axios from \"@libs/axios\";\r\nimport searchBarComponentInit from \"./searchBox\";\r\nimport memberUtilsInit, { userData } from \"./member\";\r\nimport { getUser, getMemberData } from \"@components/header/member\";\r\nimport { IArabamUserData } from \"@interfaces/member\";\r\nimport { INotificationData } from \"@interfaces/notifications\";\r\nimport { addClass, removeClass } from \"@libs/utils\";\r\nimport \"@components/cookieDisclaimer\";\r\nimport { getCookie, setCookie } from \"@libs/cookie\";\r\nexport * from \"./../home/modals\";\r\n\r\nconst var1ables: any = {};\r\ndeclare var favorited: any;\r\ndeclare var advertId: any;\r\ndeclare var advertTitle: any;\r\ndeclare var FB: any;\r\nlet member: any;\r\n\r\nexport class EditFavoriteAdvertRequest {\r\n MemberFavoriteListId: number;\r\n AdvertId: number;\r\n Name: string;\r\n}\r\nexport default function () {\r\n /**\r\n * Member utils\r\n * @description Kullanıcı giriş yaptı mı?\r\n * Favoriler, bildirimler burada init edilecek.\r\n * User-dropdown ve user menüleri de burada olacak\r\n */\r\n\r\n var popupCampaignElement = document.getElementById(\r\n \"js-hook-arabam-campaign-popup-container\"\r\n );\r\n var cookieName = \"turboCampaignpopup\"\r\n var showPopup = getCookie(cookieName);\r\n var popupStartDate = new Date('2019-11-29T00:00:00');\r\n var popupEndDate = new Date('2019-11-29T23:59:59');\r\n var currentDate = new Date();\r\n if ( \r\n currentDate >= popupStartDate &&\r\n currentDate <= popupEndDate && \r\n popupCampaignElement &&\r\n window.location.href.indexOf(\"/turbolar\") == -1\r\n ) {\r\n if (\r\n !showPopup &&\r\n navigator.userAgent.indexOf(\"Google Page Speed Insights\") == -1 &&\r\n navigator.userAgent.indexOf(\"Chrome-Lighthouse\") == -1\r\n ) {\r\n popupCampaignElement.classList.remove(\"dn\");\r\n popupCampaignElement\r\n .querySelector(\"img\")\r\n .addEventListener(\"click\", function (event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n window.location.href = \"/turbolar\";\r\n event.preventDefault();\r\n });\r\n popupCampaignElement\r\n .querySelector(\".close-button\")\r\n .addEventListener(\"click\", function (event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n popupCampaignElement.remove();\r\n event.preventDefault();\r\n });\r\n popupCampaignElement.addEventListener(\"click\", function (event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n popupCampaignElement.remove();\r\n });\r\n }\r\n }\r\n\r\n setInitialVariables();\r\n clickHandlers();\r\n dataLayerClickHandlers();\r\n scroll();\r\n setEventListenerToFavorite();\r\n setEventListenerToshare();\r\n closeAllSubMenu();\r\n}\r\n\r\nfunction setEventListenerToFavorite() {\r\n const elem = document.getElementById(\"js-hook-for-header-favorite\");\r\n const newItemElem = document.getElementById(\"js-hook-for-new-fav-item\");\r\n const newItembutton = document.querySelector(\".new-list-button\");\r\n const HeaderButtonOverlay = document.querySelector(\r\n \".header-button-overlay-container\"\r\n );\r\n if (elem) {\r\n elem.addEventListener(\"click\", toggleFav);\r\n } else {\r\n return false;\r\n }\r\n if (newItemElem) {\r\n newItemElem.addEventListener(\"click\", addNewItemToFavList);\r\n }\r\n if (newItembutton) {\r\n newItembutton.addEventListener(\"click\", showAddNewItemToFavList);\r\n }\r\n\r\n if (HeaderButtonOverlay) {\r\n HeaderButtonOverlay.addEventListener(\"click\", hideHeaderOverlay);\r\n }\r\n}\r\nfunction showAddNewItemToFavList() {\r\n const addNewList = document.querySelector(\".add-new-list\");\r\n addNewList.classList.remove(\"dn\");\r\n const newItembutton = document.querySelector(\".new-list-button\");\r\n newItembutton.classList.add(\"dn\");\r\n}\r\n\r\nfunction hideHeaderOverlay() {\r\n const HeaderButtonOverlay = document.querySelector(\r\n \".header-button-overlay-container\"\r\n );\r\n const shareElem = document.querySelector(\".share-container\");\r\n var favListContainer = document.querySelector(\".fav-list-container\");\r\n if (HeaderButtonOverlay) {\r\n HeaderButtonOverlay.classList.add(\"dn\");\r\n }\r\n favListContainer.classList.add(\"dn\");\r\n shareElem.classList.add(\"dn\");\r\n\r\n const favButtonElem = document.getElementById(\"js-hook-for-header-favorite\");\r\n if (favButtonElem) {\r\n favButtonElem.classList.remove(\"active\");\r\n }\r\n\r\n const shareButtonElement = document.getElementById(\r\n \"js-hook-for-header-share\"\r\n );\r\n if (shareButtonElement) {\r\n shareButtonElement.classList.remove(\"active\");\r\n }\r\n}\r\n\r\nfunction showHeaderOverlay(type: any) {\r\n const HeaderButtonOverlay = document.querySelector(\r\n \".header-button-overlay-container\"\r\n );\r\n if (HeaderButtonOverlay) {\r\n HeaderButtonOverlay.classList.remove(\"dn\");\r\n }\r\n if (type == \"fav\") {\r\n const favElem = document.getElementById(\"js-hook-for-header-favorite\");\r\n if (favElem) {\r\n favElem.classList.add(\"active\");\r\n }\r\n } else if (type == \"share\") {\r\n const shareButtonElement = document.getElementById(\r\n \"js-hook-for-header-share\"\r\n );\r\n if (shareButtonElement) {\r\n shareButtonElement.classList.add(\"active\");\r\n }\r\n }\r\n}\r\n\r\nfunction addNewItemToFavList() {\r\n const request = new EditFavoriteAdvertRequest();\r\n const inputElement: any = document.getElementById(\"fav-new-item-name\");\r\n request.Name = inputElement.value;\r\n request.AdvertId = advertId;\r\n if (request.Name.trim().length > 0) {\r\n inputElement.classList.remove(\"empty-error\");\r\n Axios.post(\"/ilan/favori\", request).then((data: any) => {\r\n setDataLayer(\r\n \"Ilan Detay\",\r\n \"Favorilere Ekle - Yeni Liste Oluştur\",\r\n \"Click\",\r\n \"gaEvent\"\r\n );\r\n const favElem = document.getElementById(\"js-hook-for-header-favorite\");\r\n if (favElem) {\r\n favElem.classList.add(\"favorited\");\r\n }\r\n favorited = true;\r\n hideHeaderOverlay();\r\n });\r\n } else {\r\n inputElement.classList.add(\"empty-error\");\r\n }\r\n}\r\n\r\nfunction setEventListenerToshare() {\r\n const shareButtonElement = document.getElementById(\r\n \"js-hook-for-header-share\"\r\n );\r\n const facebookShareButton = document.getElementById(\r\n \"js-hook-sahre-in-facebook\"\r\n );\r\n if (shareButtonElement) {\r\n shareButtonElement.addEventListener(\"click\", sharePageLink);\r\n facebookShareButton.addEventListener(\"click\", shareInFacebook);\r\n }\r\n}\r\n\r\nfunction sharePageLink() {\r\n let newVariable: any;\r\n\r\n newVariable = window.navigator;\r\n\r\n if (newVariable && newVariable.share) {\r\n newVariable\r\n .share({\r\n title: advertTitle,\r\n text: \"arabam.com\",\r\n url: window.location.href\r\n })\r\n .then(() => console.log(\"Successful share\"))\r\n .catch((error: any) => console.log(\"Error sharing\", error));\r\n } else {\r\n const shareElem = document.querySelector(\".share-container\");\r\n if (shareElem) {\r\n showHeaderOverlay(\"share\");\r\n shareElem.classList.remove(\"dn\");\r\n }\r\n }\r\n}\r\n\r\nfunction loadFacebookSDK() {\r\n const promise = new Promise((resolve, reject) => {\r\n // Load the SDK asynchronously\r\n if (!(window as any).FB) {\r\n ((d: any, s: any, id: any) => {\r\n let js: any;\r\n const fjs = d.getElementsByTagName(s)[0];\r\n if (d.getElementById(id)) {\r\n return;\r\n }\r\n js = d.createElement(s);\r\n js.id = id;\r\n js.src = \"https://connect.facebook.net/tr_TR/sdk.js\";\r\n fjs.parentNode.insertBefore(js, fjs);\r\n })(document, \"script\", \"facebook-jssdk\");\r\n\r\n (window as any).fbAsyncInit = () => {\r\n (FB as any).init({\r\n appId: \"19995709208\",\r\n cookie: false, // enable cookies to allow the server to access\r\n // status: false, // the session\r\n // xfbml: true, // parse social plugins on this page\r\n version: \"v3.0\" // use graph api version 2.5\r\n });\r\n resolve(\"done\");\r\n };\r\n } else {\r\n resolve(\"done\");\r\n }\r\n });\r\n\r\n return promise;\r\n}\r\n\r\nfunction shareInFacebook() {\r\n setDataLayer(\"Ilan Detay\", \"Paylaş\", \"facebook\", \"gaEvent\", true);\r\n loadFacebookSDK().then(() => {\r\n // deprecated diyor buna\r\n FB.ui(\r\n {\r\n method: \"feed\",\r\n link: window.location.href,\r\n caption: \"arabam.com\"\r\n } as any,\r\n (response: any) => console.log(\"response\", response)\r\n );\r\n });\r\n}\r\n\r\nfunction toggleFav(event: any) {\r\n //event.preventDefault();\r\n //event.stopPropagation();\r\n\r\n const addNewList = document.querySelector(\".add-new-list\");\r\n addNewList.classList.add(\"dn\");\r\n const newItembutton = document.querySelector(\".new-list-button\");\r\n newItembutton.classList.remove(\"dn\");\r\n\r\n document.getElementById(\"fav-new-item-name\").classList.remove(\"empty-error\");\r\n if (favorited) {\r\n Axios.delete(\"/ilan/favorisil?Id=\" + advertId).then((data: any) => {\r\n favorited = false;\r\n const favElem = document.getElementById(\"js-hook-for-header-favorite\");\r\n if (favElem) {\r\n favElem.classList.remove(\"favorited\");\r\n }\r\n });\r\n } else {\r\n showHeaderOverlay(\"fav\");\r\n var favListElem: any = document.getElementById(\r\n \"js-hook-for-header-favorite-list\"\r\n );\r\n favListElem.innerHTML = \"\";\r\n var favListContainer = document.querySelector(\".fav-list-container\");\r\n favListContainer.classList.remove(\"dn\");\r\n if (favListElem && favListElem.innerHTML.length == 0) {\r\n favListContainer\r\n .querySelector(\".fav-list-loading\")\r\n .classList.remove(\"dn\");\r\n favListElem.classList.add(\"dn\");\r\n Axios.get(`/favoriteadvert/light-lists?random=${new Date().getTime()}`)\r\n .then((response) => {\r\n response.Data.forEach((element: any) => {\r\n const listItem = document.createElement(\"a\");\r\n listItem.href = \"javascript:;\";\r\n listItem.innerHTML = element.Name;\r\n listItem.addEventListener(\"click\", (event: any) => {\r\n addToFav(element.Id, event);\r\n });\r\n favListElem.append(listItem);\r\n });\r\n\r\n setDataLayer(\r\n \"Ilan Detay\",\r\n \"Favorilere Ekle\",\r\n \"Click\",\r\n \"gaEvent\",\r\n true\r\n );\r\n favListContainer\r\n .querySelector(\".fav-list-loading\")\r\n .classList.add(\"dn\");\r\n favListElem.classList.remove(\"dn\");\r\n })\r\n .catch((error) => console.error(\"Error =\" + error.message));\r\n } else {\r\n favListContainer.querySelector(\".fav-list-loading\").classList.add(\"dn\");\r\n favListElem.classList.remove(\"dn\");\r\n }\r\n }\r\n}\r\n\r\nfunction addToFav(id: any, event?: any) {\r\n event.preventDefault();\r\n const request = new EditFavoriteAdvertRequest();\r\n const favListElem = document.getElementById(\r\n \"js-hook-for-header-favorite-list\"\r\n );\r\n var favListContainer = document.querySelector(\".fav-list-container\");\r\n\r\n favListContainer.querySelector(\".fav-list-loading\").classList.remove(\"dn\");\r\n favListElem.classList.add(\"dn\");\r\n\r\n request.MemberFavoriteListId = id;\r\n request.AdvertId = advertId;\r\n Axios.post(\"/ilan/favori\", request).then((data: any) => {\r\n const favElem = document.getElementById(\"js-hook-for-header-favorite\");\r\n if (favElem) {\r\n favElem.classList.add(\"favorited\");\r\n }\r\n hideHeaderOverlay();\r\n\r\n favorited = true;\r\n setDataLayer(\r\n \"Ilan Detay\",\r\n \"Favorilere Ekle - Yeni Liste Oluştur\",\r\n \"Click\",\r\n \"gaEvent\"\r\n );\r\n });\r\n}\r\n\r\nfunction scroll() {\r\n const elem = document.getElementById(\"js-hook-for-visible-shd-navigation\");\r\n const stickyElem = document.getElementById(\"sticky-free-advert\");\r\n window.addEventListener(\"scroll\", (e) => {\r\n if (\r\n (window.pageYOffset || window.scrollY || document.body.scrollTop) +\r\n screen.height >=\r\n elem.offsetHeight + stickyElem.offsetHeight\r\n ) {\r\n stickyElem.style.position = \"absolute\";\r\n } else {\r\n stickyElem.style.position = \"fixed\";\r\n }\r\n });\r\n}\r\n\r\nfunction setVar(name: string, val: any) {\r\n var1ables[name] = val;\r\n}\r\n\r\nfunction getVar(name: string): any {\r\n return var1ables[name];\r\n}\r\n\r\nfunction setInitialVariables() {\r\n setVar(\"showNavigation\", true);\r\n // setVar(\"header\", document.getElementById(\"header\"));\r\n // callHashListenerEvents();\r\n}\r\n\r\nfunction clickHandlers() {\r\n /**\r\n * Header logo tıklanması durumunda eğer ilan detayda değilse kullanıcı\r\n * anasayfaya yönlendirilecek.\r\n * TODO: Faz2: Header her sayfada rahatça uygulanabilmeli. Özellikle ilan\r\n * verme ve düzenleme sayfalarında\r\n */\r\n var logoElem = document.getElementById(\"js-hook-for-header-logo-click\");\r\n if (logoElem) {\r\n logoElem.addEventListener(\"click\", onClickHeaderLogo);\r\n }\r\n\r\n var menuElem = document.getElementById(\"js-hook-for-header-mobile-menu\");\r\n if (menuElem) {\r\n menuElem.addEventListener(\"click\", onClickShowHeaderMenu);\r\n bindCloseButtonForHeaderMenu();\r\n }\r\n\r\n document\r\n .getElementById(\"js-hook-for-header-logout-btn\")\r\n .addEventListener(\"click\", onClickHeaderLogout);\r\n\r\n // Header search bar\r\n searchBarComponentInit();\r\n\r\n buildNavigationTogglers();\r\n}\r\n\r\nexport function bindCloseButtonForHeaderMenu() {\r\n document\r\n .getElementById(\"js-hook-for-click-close-shd\")\r\n .addEventListener(\"click\", onCloseRedPopup);\r\n\r\n document\r\n .getElementById(\"js-hook-for-click-close-btn-shd\")\r\n .addEventListener(\"click\", onCloseRedPopup);\r\n\r\n closeAllSubMenu()\r\n}\r\n\r\nexport function onClickShowHeaderMenu() {\r\n // addClass(document.body, \"disable-scrollbar\");\r\n addClass(document.getElementById(\"js-hook-for-header-mobile-menu\"), \"dn\");\r\n removeClass(document.getElementById(\"js-hook-for-click-close-shd\"), \"dn\");\r\n removeClass(document.getElementById(\"close-navigation-menu\"), \"dn\");\r\n removeClass(document.getElementById(\"js-hook-for-shd-wrapper\"), \"dn\");\r\n removeClass(\r\n document.getElementById(\"js-hook-for-visible-shd-navigation\"),\r\n \"dn\"\r\n );\r\n addClass(document.getElementById(\"header-notification-bar\"), \"dn\");\r\n scroll();\r\n}\r\n\r\nexport function onCloseRedPopup() {\r\n // removeClass(document.body, \"disable-scrollbar\");\r\n addClass(document.getElementById(\"js-hook-for-click-close-shd\"), \"dn\");\r\n removeClass(document.getElementById(\"js-hook-for-header-mobile-menu\"), \"dn\");\r\n addClass(document.getElementById(\"close-navigation-menu\"), \"dn\");\r\n addClass(document.getElementById(\"js-hook-for-shd-wrapper\"), \"dn\");\r\n removeClass(document.getElementById(\"header-notification-bar\"), \"dn\");\r\n\r\n const notificationWrapper = document.getElementById(\r\n \"js-hook-for-visible-shd-notification\"\r\n );\r\n\r\n if (!!notificationWrapper) {\r\n addClass(notificationWrapper, \"dn\");\r\n }\r\n\r\n addClass(document.getElementById(\"js-hook-for-visible-shd-navigation\"), \"dn\");\r\n\r\n window.removeEventListener(\"scroll\", null);\r\n closeAllSubMenu()\r\n}\r\n\r\nfunction onClickToggleNotificationPopup() {\r\n // addClass(document.body, \"disable-scrollbar\");\r\n removeClass(document.getElementById(\"js-hook-for-shd-wrapper\"), \"dn\");\r\n removeClass(\r\n document.getElementById(\"js-hook-for-visible-shd-notification\"),\r\n \"dn\"\r\n );\r\n removeClass(document.getElementById(\"js-hook-for-click-close-shd\"), \"dn\");\r\n addClass(document.getElementById(\"js-hook-for-header-mobile-menu\"), \"dn\");\r\n removeClass(document.getElementById(\"close-navigation-menu\"), \"dn\");\r\n // addClass(document.getElementById(\"js-hook-for-shd-wrapper\"), \"dn\");\r\n addClass(document.getElementById(\"js-hook-for-visible-shd-navigation\"), \"dn\");\r\n addClass(document.getElementById(\"header-notification-bar\"), \"dn\");\r\n getNotifications();\r\n}\r\n\r\nfunction onClickHeaderLogo(event?: MouseEvent) {\r\n setDataLayer(\"Header\", \"Logo\", \"Click\", \"gaEvent\", true);\r\n if (!getVar(\"showNavigation\")) {\r\n event.preventDefault();\r\n }\r\n}\r\n\r\nfunction onClickHeaderLogout(event: MouseEvent) {\r\n const domElem: HTMLAnchorElement = event.target as HTMLAnchorElement;\r\n setSegmentifyLoginOps(\"signout\", +domElem.getAttribute(\"data-user-id\"));\r\n document.cookie =\r\n \"footerVideoCallInformationDisplay=;expires=Fri, 31 May 2013 00:00:01 GMT;path=/\";\r\n}\r\n\r\nexport function buildDomTreeForGuestUserMobile() {\r\n const headerMobileVisibleLoggedInWrapper = document.getElementById(\r\n \"js-hook-for-header-visible-loggedin\"\r\n );\r\n\r\n if (!!headerMobileVisibleLoggedInWrapper) {\r\n addClass(headerMobileVisibleLoggedInWrapper, \"dn\");\r\n }\r\n\r\n const headerMobileLogoutButtonWrapper = document.getElementById(\r\n \"js-hook-for-header-visible-logout-btn\"\r\n );\r\n\r\n if (!!headerMobileLogoutButtonWrapper) {\r\n addClass(headerMobileLogoutButtonWrapper, \"dn\");\r\n }\r\n headerMobileLogoutButtonWrapper.addEventListener(\"click\", function () {\r\n sessionStorage.clear();\r\n });\r\n\r\n const headerMobileNotificationWrapper = document.getElementById(\r\n \"js-hook-for-header-visible-notification\"\r\n );\r\n\r\n if (!!headerMobileNotificationWrapper) {\r\n addClass(headerMobileNotificationWrapper, \"dn\");\r\n }\r\n\r\n const headerVisibleNotLoggedInWrapper = document.getElementById(\r\n \"js-hook-for-header-visible-not-loggedin\"\r\n );\r\n\r\n if (headerVisibleNotLoggedInWrapper) {\r\n removeClass(headerVisibleNotLoggedInWrapper, \"dn\");\r\n }\r\n\r\n //getFavPlaceholder();\r\n}\r\n\r\nexport function buildDomTreeForLoggedInMobile() {\r\n const userLoginHeader = document.getElementById(\r\n \"js-hook-for-header-visible-loggedin\"\r\n );\r\n\r\n if (!!userLoginHeader) {\r\n removeClass(userLoginHeader, \"dn\");\r\n }\r\n\r\n const guestLoginHeader = document.getElementById(\r\n \"js-hook-for-header-visible-not-loggedin\"\r\n );\r\n\r\n if (!!guestLoginHeader) {\r\n addClass(guestLoginHeader, \"dn\");\r\n }\r\n\r\n const notificationWrapper = document.getElementById(\r\n \"js-hook-for-header-visible-notification\"\r\n );\r\n\r\n if (!!notificationWrapper) {\r\n removeClass(notificationWrapper, \"dn\");\r\n }\r\n\r\n const logoutButton = document.getElementById(\r\n \"js-hook-for-header-visible-logout-btn\"\r\n );\r\n\r\n if (!!logoutButton) {\r\n removeClass(logoutButton, \"dn\");\r\n }\r\n\r\n setVar(\"userData\", getUser());\r\n getNamePlaceholder();\r\n //getFavPlaceholder();\r\n getNotificationPlaceholder();\r\n}\r\n\r\nfunction getNamePlaceholder() {\r\n const userData: IArabamUserData = getVar(\"userData\");\r\n if (!userData) {\r\n return;\r\n }\r\n const namePlaceholderDom = document.getElementById(\r\n \"js-hook-for-header-name-placeholder\"\r\n );\r\n\r\n let nameSurname: string = `${userData.memberData.MainUser.Name.toLocaleUpperCase()} `;\r\n nameSurname += `${userData.memberData.MainUser.SurName.toLocaleUpperCase()}`;\r\n\r\n const frag = document.createDocumentFragment();\r\n const domS = document.createElement(\"span\");\r\n const text = document.createTextNode(nameSurname);\r\n domS.appendChild(text);\r\n frag.appendChild(domS);\r\n namePlaceholderDom.innerHTML = null;\r\n namePlaceholderDom.appendChild(frag);\r\n\r\n const servicesMobile: HTMLAnchorElement = document.getElementById('price-suggestion-services-mobile') as HTMLAnchorElement;\r\n const buycarMobile: HTMLAnchorElement = document.getElementById('price-suggestion-buycar-mobile') as HTMLAnchorElement;\r\n const sellcarMobile: HTMLAnchorElement = document.getElementById('price-suggestion-sellcar-mobile') as HTMLAnchorElement;\r\n userData.memberData.CommercialMember ? servicesMobile.href = \"/panelim/arabam-kac-para-premium\" : servicesMobile.href = \"/arabam-kac-para\"\r\n userData.memberData.CommercialMember ? buycarMobile.href = \"/panelim/arabam-kac-para-premium\" : buycarMobile.href = \"/arabam-kac-para\"\r\n userData.memberData.CommercialMember ? sellcarMobile.href = \"/panelim/arabam-kac-para-premium\" : sellcarMobile.href = \"/arabam-kac-para\"\r\n\r\n\r\n const priceSuggestionHomeMobile: HTMLAnchorElement = document.getElementById('price-suggestion-mobile') as HTMLAnchorElement;\r\n if (priceSuggestionHomeMobile) {\r\n userData.memberData.CommercialMember ? priceSuggestionHomeMobile.href = \"/panelim/arabam-kac-para-premium\" : priceSuggestionHomeMobile.href = \"/arabam-kac-para\"\r\n }\r\n}\r\n\r\nfunction getFavPlaceholder() {\r\n const userData: IArabamUserData = getVar(\"userData\");\r\n const favBtn = document.getElementById(\"js-hook-for-header-fav-btn\");\r\n\r\n favBtn.addEventListener(\"click\", () => {\r\n setDataLayer(\"Header\", \"Favori\", \"Click\", \"gaEvent\", true);\r\n });\r\n\r\n if (userData && userData.isUserLoggedIn) {\r\n if (!!userData.memberStatus && userData.memberStatus.FavoritedAdvertCount) {\r\n buildFavDom(userData.memberStatus.FavoritedAdvertCount);\r\n bindAngularFavorite(userData.memberStatus.FavoritedAdvertCount);\r\n return;\r\n }\r\n }\r\n\r\n // guest user icin\r\n Axios.get(`/favoriteadvert/count?random=${new Date().getTime()}`)\r\n .then((response) => {\r\n if (!!response.Data || response.Data > 0) {\r\n buildFavDom(response.Data);\r\n }\r\n bindAngularFavorite(response.Data);\r\n })\r\n .catch((error) =>\r\n console.error(\"Error while getting favorite count: \" + error.message)\r\n );\r\n}\r\n\r\nfunction bindAngularFavorite(favCount: number): void {\r\n const ang = (window as any).angular;\r\n if (!!ang) {\r\n const $html = ang.element(document.body.parentNode as any);\r\n const $rootScope = $html.injector().get(\"$rootScope\");\r\n $rootScope.$apply(() => {\r\n $rootScope.UnreadFavCount = favCount;\r\n });\r\n }\r\n}\r\n\r\nfunction buildFavDom(favCount: number) {\r\n const favPlaceholderDom = document.getElementById(\r\n \"js-hook-for-header-unread-fav-count\"\r\n );\r\n if (favCount == 0) {\r\n return;\r\n }\r\n const starIcon = favPlaceholderDom.nextElementSibling;\r\n removeClass(favPlaceholderDom, \"dn\");\r\n const frag = document.createDocumentFragment();\r\n const domS = document.createElement(\"span\");\r\n const text = document.createTextNode(\"\" + favCount);\r\n domS.appendChild(text);\r\n frag.appendChild(domS);\r\n favPlaceholderDom.innerHTML = null;\r\n favPlaceholderDom.appendChild(frag);\r\n}\r\n\r\nexport function buildNavigationTogglers() {\r\n const elemList: NodeListOf = document\r\n .getElementById(\"js-hook-for-header-navigation-toggler-wrapper\")\r\n .querySelectorAll(\".js-hook-for-multiple-header-click-toggler\");\r\n const elemArr: [Element] = Array.prototype.slice.call(elemList);\r\n for (let i = 0; i < elemArr.length; i++) {\r\n const element = elemArr[i];\r\n element.addEventListener(\"click\", navigationToggleCallback);\r\n }\r\n}\r\n\r\nfunction navigationToggleCallback(event: MouseEvent) {\r\n let domElem: HTMLElement = event.target as HTMLAnchorElement;\r\n if (domElem.nodeName != \"A\") {\r\n domElem = domElem.parentElement;\r\n }\r\n domElem.nextElementSibling.classList.toggle(\"dn\");\r\n domElem\r\n .querySelector(\".js-hook-for-multiple-icon-toggler\")\r\n .classList.toggle(\"icon-arabam-up-arrow\");\r\n domElem\r\n .querySelector(\".js-hook-for-multiple-icon-toggler\")\r\n .classList.toggle(\"icon-arabam-down-arrow\");\r\n}\r\n\r\nfunction dataLayerClickHandlers() {\r\n const elemList: NodeListOf = document\r\n .getElementById(\"header\")\r\n .querySelectorAll(\".js-hook-for-multiple-header-click-datalayer\");\r\n const elemArr: [Element] = Array.prototype.slice.call(elemList);\r\n for (let i = 0; i < elemArr.length; i++) {\r\n const element = elemArr[i];\r\n element.addEventListener(\"click\", dataLayerClickCallback);\r\n }\r\n}\r\n\r\nfunction getNotificationPlaceholder() {\r\n const notificationWrapper = document.getElementById(\r\n \"js-hook-for-header-visible-notification\"\r\n );\r\n if (!!notificationWrapper) {\r\n setVar(\"notificationDomEl\", notificationWrapper);\r\n const userData: IArabamUserData = getVar(\"userData\");\r\n const notificationDomEl: HTMLAnchorElement = getVar(\"notificationDomEl\");\r\n if (userData.memberStatus) {\r\n showNotificationsWith(userData.memberStatus.UnReadNotificationCount);\r\n }\r\n notificationDomEl.addEventListener(\"click\", onClickToggleNotificationPopup);\r\n }\r\n}\r\n\r\nfunction showNotificationsWith(quantity: number) {\r\n const notificationDomEl: HTMLAnchorElement = getVar(\"notificationDomEl\");\r\n const notificationIcon = notificationDomEl.querySelector(\r\n \".icon-arabam-notification\"\r\n );\r\n if (quantity > 0) {\r\n notificationIcon.classList.add(\"has-unread-notification\");\r\n notificationIcon.classList.remove(\"has-no-unread-notification\");\r\n const frag = document.createDocumentFragment();\r\n const domS = document.createElement(\"span\");\r\n const quantityCalculated =\r\n quantity > 99 ? \"99+\" : quantity.toLocaleString();\r\n const text = document.createTextNode(quantityCalculated);\r\n domS.appendChild(text);\r\n domS.classList.add(\"notification-count\");\r\n frag.appendChild(domS);\r\n notificationDomEl.appendChild(frag);\r\n } else {\r\n notificationIcon.classList.remove(\"has-unread-notification\");\r\n notificationIcon.classList.add(\"has-no-unread-notification\");\r\n if (!!notificationDomEl.querySelector(\".notification-count\")) {\r\n notificationDomEl.querySelector(\".notification-count\").remove();\r\n }\r\n }\r\n}\r\n\r\nfunction getNotifications() {\r\n Axios.post(\"membernotification/list\", {\r\n UnReadOnly: true,\r\n take: 5\r\n }).then((response) => buildNotificationDomElements(response.Data.Documents));\r\n}\r\n\r\nfunction buildNotificationDomElements(docs: any) {\r\n addClass(document.getElementById(\"js-hook-for-notification-loading\"), \"dn\");\r\n if (!docs || docs.length == 0) {\r\n removeClass(\r\n document.getElementById(\"js-hook-for-no-notification-warning\"),\r\n \"dn\"\r\n );\r\n return;\r\n }\r\n if (docs || docs.length > 0) {\r\n removeClass(document.getElementById(\"js-hook-for-notification-list\"), \"dn\");\r\n }\r\n const notificationLastItem: HTMLElement = document.getElementById(\r\n \"js-hook-for-notification-list-last-item\"\r\n );\r\n addClass(\r\n document.getElementById(\"js-hook-for-no-notification-warning\"),\r\n \"dn\"\r\n );\r\n for (let i = 0; i < docs.length; i++) {\r\n const notificationObject = docs[i];\r\n const frag = document.createDocumentFragment();\r\n const spanDate = document.createElement(\"span\");\r\n const spanTime = document.createElement(\"span\");\r\n const spanDateTime = document.createElement(\"span\");\r\n const spanBody = document.createElement(\"span\");\r\n const spanBodyDateTime = document.createElement(\"span\");\r\n const domImg = document.createElement(\"img\");\r\n const spanImg = document.createElement(\"span\");\r\n const domA = document.createElement(\"a\");\r\n const domLi = document.createElement(\"li\");\r\n const textTime = document.createTextNode(notificationObject.CreatedHour);\r\n const textDate = document.createTextNode(notificationObject.CreatedDate);\r\n const textBody = document.createTextNode(notificationObject.Body);\r\n\r\n spanTime.appendChild(textTime);\r\n spanDate.appendChild(textDate);\r\n spanBody.appendChild(textBody);\r\n domImg.src = notificationObject.ImageUrl;\r\n domA.href = notificationObject.WebUrl;\r\n\r\n spanDate.classList.add(\"date\");\r\n spanTime.classList.add(\"time\");\r\n spanDateTime.classList.add(\"hn-date-time\");\r\n spanBody.classList.add(\"hn-body-text\");\r\n spanBodyDateTime.classList.add(\"col-xs-9\");\r\n domImg.classList.add(\"w100\");\r\n spanImg.classList.add(\"col-xs-3\", \"notification-image\");\r\n domA.classList.add(\"hn-link-text\");\r\n domLi.classList.add(\"notification-item\");\r\n if (notificationObject.IsRead) {\r\n domLi.classList.add(\"read\");\r\n }\r\n\r\n spanDateTime.appendChild(spanDate);\r\n spanDateTime.appendChild(spanTime);\r\n spanBodyDateTime.appendChild(spanBody);\r\n spanBodyDateTime.appendChild(spanDateTime);\r\n spanImg.appendChild(domImg);\r\n domA.appendChild(spanImg);\r\n domA.appendChild(spanBodyDateTime);\r\n domLi.appendChild(domA);\r\n frag.appendChild(domLi);\r\n notificationLastItem.parentElement.insertBefore(frag, notificationLastItem);\r\n }\r\n}\r\n\r\nfunction dataLayerClickCallback(event: MouseEvent) {\r\n const evt: any = event.target;\r\n const dataLayerString: string = evt.getAttribute(\"data-layer\");\r\n const dataLayers: string[] = dataLayerString.split(\",\");\r\n if (!dataLayers) {\r\n return;\r\n }\r\n\r\n setDataLayer(\"Header\", dataLayers[0], dataLayers[1], \"gaEvent\", true);\r\n}\r\n\r\nfunction closeAllSubMenu() {\r\n const elemList: NodeListOf = document\r\n .getElementById(\"header\")\r\n .querySelectorAll(\"li > div\");\r\n for (let i = 0; i < elemList.length; i++) {\r\n const element = elemList[i];\r\n element.classList.add('dn')\r\n }\r\n}","import { addClass, removeClass, isMobile } from \"@libs/utils\";\r\n\r\nexport function createHeaderTopNotificationBar(\r\n data: any,\r\n anchorText: string = \"Detaylı Bilgi\",\r\n anchorClickCallback?: () => any,\r\n closeClickCallback?: () => any\r\n) {\r\n const notificationBarWrapper = document.getElementById(\r\n \"header-notification-bar\"\r\n );\r\n if (notificationBarWrapper) {\r\n removeClass(notificationBarWrapper, \"opened\");\r\n\r\n createInitHtmlForWrapper(notificationBarWrapper);\r\n\r\n bindHeaderTopNotificationMessage(\r\n data.message,\r\n notificationBarWrapper.querySelector(\".header-notification-message\")\r\n );\r\n\r\n bindHeaderTopNotificationAnchor(\r\n anchorText,\r\n notificationBarWrapper.querySelector(\"a\"),\r\n anchorClickCallback\r\n );\r\n\r\n notificationBarWrapper\r\n .querySelector(\"#close-header-top-notification-bar\")\r\n .addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n destroyTopHeaderNotificationBar();\r\n if (!!closeClickCallback) {\r\n closeClickCallback();\r\n }\r\n });\r\n\r\n addClass(notificationBarWrapper, \"opened\");\r\n\r\n if (data.type == \"email\") {\r\n addClass(notificationBarWrapper, \"email-yellow-notification\");\r\n }\r\n }\r\n}\r\n\r\nfunction bindHeaderTopNotificationMessage(\r\n message: string,\r\n messageWrapper: HTMLElement\r\n) {\r\n if (message) {\r\n messageWrapper.innerHTML = message;\r\n removeClass(messageWrapper, \"dn\");\r\n } else {\r\n addClass(messageWrapper, \"dn\");\r\n }\r\n}\r\n\r\nfunction bindHeaderTopNotificationAnchor(\r\n anchorText: string,\r\n anchorElement: HTMLElement,\r\n callback: () => any\r\n) {\r\n const spanEl = anchorElement.querySelector(\"span\");\r\n spanEl.innerText = anchorText;\r\n spanEl.classList.add(\"header-notification-span\");\r\n\r\n anchorElement.addEventListener(\"click\", (event: MouseEvent) => {\r\n event.preventDefault();\r\n callback();\r\n });\r\n}\r\n\r\nexport function destroyTopHeaderNotificationBar() {\r\n const notificationBarWrapper = document.getElementById(\r\n \"header-notification-bar\"\r\n );\r\n removeClass(notificationBarWrapper, \"opened\");\r\n notificationBarWrapper.innerHTML = \"\";\r\n}\r\n\r\nfunction createInitHtmlForWrapper(wrapper: HTMLElement) {\r\n const row = document.createElement(\"div\");\r\n const rowWrapper = isMobile() ? \"flex1\" : \"row\";\r\n addClass(row, rowWrapper);\r\n\r\n const container = document.createElement(\"div\");\r\n addClass(container, \"container\");\r\n if (isMobile()) {\r\n container.classList.add(\"df\");\r\n }\r\n\r\n const paragraph = document.createElement(\"p\");\r\n addClass(paragraph, \"header-notification-message\");\r\n row.appendChild(paragraph);\r\n\r\n const anchor = document.createElement(\"a\");\r\n\r\n const span = document.createElement(\"span\");\r\n span.innerText = \"Detaylı Bilgi\";\r\n anchor.appendChild(span);\r\n\r\n const nextIcon = document.createElement(\"i\");\r\n addClass(nextIcon, \"icon-arabam-next\");\r\n anchor.appendChild(nextIcon);\r\n\r\n row.appendChild(anchor);\r\n\r\n container.appendChild(row);\r\n\r\n const closeIcon = document.createElement(\"i\");\r\n // addClass(closeIcon, \"icon-arabam-exit\");\r\n closeIcon.innerText = \"X\";\r\n if (isMobile()) {\r\n const spanWrapper = document.createElement(\"span\");\r\n spanWrapper.classList.add(\"pr\", \"fr\", \"p10\", \"db\");\r\n addClass(closeIcon, \"val-middle-unknown\");\r\n spanWrapper.id = \"close-header-top-notification-bar\";\r\n spanWrapper.appendChild(closeIcon);\r\n container.appendChild(spanWrapper);\r\n } else {\r\n closeIcon.id = \"close-header-top-notification-bar\";\r\n row.appendChild(closeIcon);\r\n }\r\n\r\n wrapper.appendChild(container);\r\n}\r\n","import { addToLocalStorage, getFromLocalStorage } from \"@libs/storage\";\r\n\r\nconst storageKey = \"headerLastSearches\";\r\n\r\n/** yeni bir search yapildiginda last searchlere de ekle */\r\nexport function addToLastSearches(suggestion: any) {\r\n try {\r\n const dl: any = (window as any).dataLayer;\r\n if (!!dl && !!suggestion.parentCategory) {\r\n dl.push({\r\n Category: \"Header\",\r\n Action: \"Search Box\",\r\n Label: \"Search Autocomplete Click-\" + suggestion.parentCategory + \"-\" + (suggestion.Description||suggestion.Text),\r\n event: \"gaEvent\",\r\n nonInteraction: true\r\n });\r\n }\r\n const lastSearches: any[] = getFromLocalStorage(storageKey) || [];\r\n if (isNewSearchSuggestionItem(lastSearches, suggestion)) {\r\n lastSearches.unshift(suggestion);\r\n lastSearches.length = lastSearches.length > 3 ? 3 : lastSearches.length;\r\n addToLocalStorage(storageKey, lastSearches);\r\n }\r\n return true;\r\n } catch (error) {\r\n console.error(error);\r\n return false;\r\n }\r\n}\r\n\r\n/** last search datasini storage'dan oku */\r\nexport function getLastSearches(): any[] {\r\n try {\r\n const lastSearches: any[] = getFromLocalStorage(storageKey) || [];\r\n return lastSearches;\r\n } catch (error) {\r\n return null;\r\n }\r\n}\r\n\r\n/** bu suggestion listedekilerden yeni mi */\r\nfunction isNewSearchSuggestionItem(searchList: any[], suggestion: any) {\r\n if (searchList && searchList.length > 0) {\r\n let flag = true;\r\n searchList.map((searchItem: any) => {\r\n if (searchItem.Id == suggestion.Id) {\r\n flag = false;\r\n }\r\n });\r\n return flag;\r\n } else {\r\n return true;\r\n }\r\n}\r\n","import member, { getUser } from \"@components/header/member\";\r\nimport { addClass, removeClass } from \"@libs/utils\";\r\nimport { forEach } from \"lodash-es\";\r\nimport { setDataLayer } from \"@libs/analytics\";\r\nimport { setSegmentifyLoginOps } from \"@libs/segmentify\";\r\nimport { createNotificationData } from \"./notifications\";\r\nimport createInitterForNotCompletedAdvert from \"./notCompletedAdvert\";\r\nimport axios from \"@libs/axios\";\r\nimport hoverintent from \"@libs/hoverintent\";\r\nimport { IMemberStatus } from \"@interfaces/member\";\r\n\r\nconst favoritesWrapper: HTMLElement = document.getElementById(\r\n \"header-favorites-wrapper\"\r\n);\r\n\r\nconst messagesWrapper: HTMLElement = document.getElementById(\r\n \"header-messages-wrapper\"\r\n);\r\n\r\nconst headerGuestNav: HTMLElement = document.getElementById(\r\n \"header-non-authenticated-navigator\"\r\n);\r\n\r\nconst headerAuthNav: HTMLElement = document.getElementById(\r\n \"header-authenticated-nav\"\r\n);\r\n\r\nconst headerUserDropdown = document.getElementById(\"header-user-menu\");\r\nconst headerNotificationWrapper = document.getElementById(\r\n \"header-notification-wrapper\"\r\n);\r\n\r\nconst headerCallsWrapper: HTMLElement = document.getElementById(\r\n \"header-calls-wrapper\"\r\n);\r\n\r\nexport function setHeaderFavorites(): boolean {\r\n if (!favoritesWrapper) {\r\n return;\r\n }\r\n favoritesWrapper.addEventListener(\"click\", () => {\r\n setDataLayer(\"Header\", \"Favori\", \"Click\", \"gaEvent\", true);\r\n window.location.href = \"/favori/ilanlarim\";\r\n });\r\n\r\n const user = getUser();\r\n\r\n if (!!user && user.isUserLoggedIn) {\r\n if (user.memberStatus && user.memberStatus.FavoritedAdvertCount > 0) {\r\n showFavoritesWith(user.memberStatus.FavoritedAdvertCount);\r\n return true;\r\n }\r\n } else {\r\n axios\r\n .get(`/favoriteadvert/count?random=${new Date().getTime()}`)\r\n .then((response) => {\r\n if (!!response.Data || response.Data > 0) {\r\n showFavoritesWith(response.Data);\r\n return true;\r\n }\r\n })\r\n .catch((error) =>\r\n console.error(\"Error while getting favorite count: \" + error.message)\r\n );\r\n }\r\n removeClass(favoritesWrapper, \"active\");\r\n return true;\r\n}\r\n\r\nfunction messageResolver(memberStatus: IMemberStatus) {\r\n if (!messagesWrapper) {\r\n return;\r\n }\r\n\r\n removeClass(messagesWrapper, \"dn\");\r\n addClass(messagesWrapper, \"active\");\r\n\r\n const msgCount: number = +memberStatus.UnreadMessageCount;\r\n if (msgCount > 1) {\r\n messagesWrapper.querySelector(\".header-badge > .inner\").textContent =\r\n msgCount > 99 ? \"99+\" : \"\" + msgCount;\r\n } else {\r\n messagesWrapper.querySelector(\".header-badge\").classList.add(\"dn\");\r\n }\r\n\r\n messagesWrapper.addEventListener(\"click\", () => {\r\n setDataLayer(\"Header\", \"YeniMesaj\", \"Click\", \"gaEvent\", true);\r\n window.location.href = \"/panelim/mesajlar/gelen\";\r\n });\r\n}\r\n\r\nfunction showFavoritesWith(quantity: number) {\r\n if (!favoritesWrapper) {\r\n return;\r\n }\r\n addClass(favoritesWrapper, \"active\");\r\n\r\n favoritesWrapper.querySelector(\".header-badge > .inner\").textContent =\r\n quantity > 99 ? \"99+\" : quantity.toLocaleString();\r\n}\r\n\r\nexport function initMenusForLoggedUser() {\r\n if (headerGuestNav && headerAuthNav && headerNotificationWrapper) {\r\n addClass(headerGuestNav, \"dn\");\r\n removeClass(headerAuthNav, \"dn\");\r\n removeClass(headerNotificationWrapper, \"dn\");\r\n createUserDropdown();\r\n createNotificationData();\r\n checkVisibilityForCallsIcon();\r\n setPriceSuggestionLinks();\r\n }\r\n}\r\n\r\nexport function initMenusForGuestUser() {\r\n removeClass(headerGuestNav, \"dn\");\r\n addClass(headerAuthNav, \"dn\");\r\n addClass(headerNotificationWrapper, \"dn\");\r\n\r\n headerGuestNav\r\n .querySelector(\"#header-login-button\")\r\n .addEventListener(\"click\", () => {\r\n setDataLayer(\"Header\", \"Giriş Yap\", \"Click\", \"gaEvent\", true);\r\n });\r\n\r\n headerGuestNav\r\n .querySelector(\"#header-register-button\")\r\n .addEventListener(\"click\", () => {\r\n setDataLayer(\"Header\", \"Üye Ol\", \"Click\", \"gaEvent\", true);\r\n });\r\n}\r\n\r\nfunction createUserDropdown() {\r\n const user = getUser();\r\n const nameSurname = `${user.memberData.CurrentUser.Name} ${\r\n user.memberData.CurrentUser.SurName\r\n }`;\r\n headerAuthNav.querySelector(\".circle\").textContent = nameSurname;\r\n\r\n const userMenuDropdown = headerUserDropdown.querySelector(\r\n \"ul#user-dropdown-menu-list\"\r\n );\r\n\r\n bindUserCallHistorySwitchers();\r\n\r\n messageResolver(user.memberStatus);\r\n\r\n if (user.memberStatus && user.memberStatus.UnreadMessageCount > 0) {\r\n const messageCounter = document.querySelector(\r\n \"span#header-dropdown-message-counter\"\r\n );\r\n\r\n messageCounter.textContent = user.memberStatus.UnreadMessageCount.toString();\r\n removeClass(messageCounter, \"dn\");\r\n }\r\n\r\n if (\r\n user.memberData.Type == 2 &&\r\n user.memberData.AuctioPermissions.AuctionStatus != 60\r\n ) {\r\n const auctionLinkEl = document.getElementById(\r\n \"js-hook-for-visible-commercial-auction\"\r\n );\r\n if (!!auctionLinkEl) {\r\n removeClass(auctionLinkEl, \"dn\");\r\n }\r\n }\r\n\r\n if (user.memberData.Type == 2) {\r\n const commercialPremiumLinkEl = document.getElementById(\r\n \"js-hook-for-visible-commercial-premium\"\r\n );\r\n const insuranceLinkEl = document.getElementById(\r\n \"js-hook-for-visible-commercial-insurance\"\r\n );\r\n if (!!commercialPremiumLinkEl) {\r\n removeClass(commercialPremiumLinkEl, \"dn\");\r\n }\r\n if (insuranceLinkEl) {\r\n removeClass(insuranceLinkEl, \"dn\");\r\n }\r\n }\r\n\r\n bindUserDropdownMenuItemsFor(userMenuDropdown);\r\n bindUserInitialsHoverAction();\r\n\r\n // Not completed advert side for individual members\r\n createInitterForNotCompletedAdvert();\r\n}\r\n\r\nfunction bindUserDropdownMenuItemsFor(parent: Element) {\r\n forEach(parent.querySelectorAll(\"li > a\"), (anchorElement) => {\r\n anchorElement.addEventListener(\"click\", (event: MouseEvent) => {\r\n event.preventDefault();\r\n const target = event.target as Element;\r\n bindAnchorDataLayer(target);\r\n\r\n if (target.parentElement.classList.contains(\"logout-button\")) {\r\n onClickLogoutButton(target);\r\n }\r\n\r\n setTimeout(() => {\r\n window.location.href = target.getAttribute(\"href\");\r\n }, 0);\r\n });\r\n });\r\n}\r\n\r\nfunction bindAnchorDataLayer(element: Element) {\r\n setDataLayer(\r\n \"Header\",\r\n \"Hesabım\",\r\n element.getAttribute(\"data-layer\"),\r\n \"gaEvent\",\r\n true\r\n );\r\n}\r\n\r\nfunction onClickLogoutButton(element: Element) {\r\n setSegmentifyLoginOps(\"signout\", parseInt(element.getAttribute(\"user-id\")));\r\n sessionStorage.removeItem(\"bidToken\");\r\n document.cookie =\r\n \"footerVideoCallInformationDisplay=;expires=Fri, 31 May 2013 00:00:01 GMT;path=/\";\r\n}\r\n\r\nfunction bindUserCallHistorySwitchers() {\r\n const user = getUser().memberData;\r\n if (user.CurrentUser.Communication.CallApiCanSeeHistory) {\r\n removeClass(document.getElementById(\"bigorelimCallHistory\"), \"dn\");\r\n } else if (user.Type === 2 && user.CurrentUser.Communication.RoutePhone) {\r\n removeClass(document.getElementById(\"firmCorporateCallHistory\"), \"dn\");\r\n }\r\n}\r\n\r\nfunction bindUserInitialsHoverAction() {\r\n hoverintent(\r\n headerAuthNav,\r\n () => {\r\n const dropdown = headerNotificationWrapper.querySelector(\r\n \"div.notification-dropdown\"\r\n );\r\n const header = document.querySelector(\"body .headerBar\");\r\n removeClass(dropdown, \"opened\");\r\n addClass(headerUserDropdown, \"opened\");\r\n\r\n showOverLay(\"header#header .headerBar\");\r\n },\r\n () => {\r\n removeClass(headerUserDropdown, \"opened\");\r\n hideOverlay();\r\n }\r\n ).options({\r\n timeout: 199,\r\n interval: 199\r\n });\r\n}\r\n\r\nfunction showOverLay(selector: string) {\r\n const overlay = document.querySelector(\"body .overlay-container\");\r\n const headerOverlay = document.querySelector(\"body .header-overlay\");\r\n\r\n addClass(overlay, \"show\");\r\n\r\n if (!!headerOverlay) {\r\n addClass(headerOverlay, \"topOfAllElement\");\r\n addClass(headerOverlay, \"show\");\r\n addClass(headerOverlay, \"t0\");\r\n }\r\n addClass(headerAuthNav, \"zi5\");\r\n}\r\n\r\nfunction hideOverlay() {\r\n const overlay = document.querySelector(\"body .overlay-container\");\r\n const headerOverlay = document.querySelector(\"body .header-overlay\");\r\n removeClass(overlay, \"show\");\r\n if (!!headerOverlay) {\r\n removeClass(headerOverlay, \"show\");\r\n removeClass(headerOverlay, \"topOfAllElement\");\r\n removeClass(headerOverlay, \"t0\");\r\n }\r\n removeClass(headerAuthNav, \"zi5\");\r\n}\r\n\r\nfunction setPriceSuggestionLinks() {\r\n const user = getUser();\r\n if (user) {\r\n const services: HTMLAnchorElement = document.getElementById(\r\n \"price-suggestion-services\"\r\n ) as HTMLAnchorElement;\r\n const buycar: HTMLAnchorElement = document.getElementById(\r\n \"price-suggestion-buycar\"\r\n ) as HTMLAnchorElement;\r\n const sellcar: HTMLAnchorElement = document.getElementById(\r\n \"price-suggestion-sellcar\"\r\n ) as HTMLAnchorElement;\r\n const mainpage: HTMLAnchorElement = document.getElementById(\r\n \"price-suggestion\"\r\n ) as HTMLAnchorElement;\r\n user.memberData.CommercialMember\r\n ? (services.href = \"/panelim/arabam-kac-para-premium\")\r\n : (services.href = \"/arabam-kac-para\");\r\n user.memberData.CommercialMember\r\n ? (buycar.href = \"/panelim/arabam-kac-para-premium\")\r\n : (buycar.href = \"/arabam-kac-para\");\r\n user.memberData.CommercialMember\r\n ? (sellcar.href = \"/panelim/arabam-kac-para-premium\")\r\n : (sellcar.href = \"/arabam-kac-para\");\r\n if (mainpage) {\r\n user.memberData.CommercialMember\r\n ? (mainpage.href = \"/panelim/arabam-kac-para-premium\")\r\n : (mainpage.href = \"/arabam-kac-para\");\r\n }\r\n }\r\n}\r\n\r\nfunction checkVisibilityForCallsIcon() {\r\n var user = getUser();\r\n if (user.isUserLoggedIn && user.memberData.Type == 2) {\r\n var searchContainer = document.querySelector(\".headerBar .search\");\r\n if (searchContainer) {\r\n searchContainer.classList.add(\"small-width\");\r\n }\r\n if (headerCallsWrapper) {\r\n headerCallsWrapper.classList.remove(\"dn\");\r\n headerCallsWrapper.classList.add(\"active\");\r\n }\r\n\r\n if (user.memberStatus.RoutePhoneMissedCallCount == 0) {\r\n headerCallsWrapper.querySelector(\".header-badge\").classList.add(\"dn\");\r\n return;\r\n }\r\n headerCallsWrapper.querySelector(\".header-badge > .inner\").textContent =\r\n user.memberStatus.RoutePhoneMissedCallCount > 99\r\n ? \"99+\"\r\n : user.memberStatus.RoutePhoneMissedCallCount.toString();\r\n }\r\n}\r\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import { setDataLayer } from \"@libs/analytics\";\r\nimport searchBarComponentInit from \"./searchBox\";\r\nimport memberUtilsInit from \"./member\";\r\nimport \"@components/cookieDisclaimer\";\r\nimport { addClass, removeClass } from \"@libs/utils\";\r\nimport hoverintent from \"@libs/hoverintent\";\r\nimport { getCookie, setCookie } from \"@libs/cookie\";\r\nlet showNavigation = true;\r\nlet touchDevice = false;\r\n\r\nexport default function() {\r\n /**\r\n * Member utils\r\n * @description Kullanıcı giriş yaptı mı?\r\n * Favoriler, bildirimler burada init edilecek.\r\n * User-dropdown ve user menüleri de burada olacak\r\n */\r\n\r\n var popupCampaignElement = document.getElementById(\r\n \"js-hook-arabam-campaign-popup-container\"\r\n );\r\n var cookieName = \"turboCampaignpopup\"\r\n var showPopup = getCookie(cookieName);\r\n var popupStartDate = new Date('2019-11-29T00:00:00');\r\n var popupEndDate = new Date('2019-11-29T23:59:59');\r\n var currentDate = new Date();\r\n if (\r\n currentDate >= popupStartDate &&\r\n currentDate <= popupEndDate && \r\n popupCampaignElement &&\r\n window.location.href.indexOf(\"/turbolar\") == -1\r\n ) {\r\n if (\r\n !showPopup &&\r\n navigator.userAgent.indexOf(\"Google Page Speed Insights\") == -1 &&\r\n navigator.userAgent.indexOf(\"Chrome-Lighthouse\") == -1\r\n ) {\r\n popupCampaignElement.classList.remove(\"dn\");\r\n popupCampaignElement\r\n .querySelector(\"img\")\r\n .addEventListener(\"click\", function(event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n window.location.href = \"/turbolar\";\r\n event.preventDefault();\r\n });\r\n popupCampaignElement\r\n .querySelector(\".close-button\")\r\n .addEventListener(\"click\", function(event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n popupCampaignElement.outerHTML = \"\";\r\n event.preventDefault();\r\n });\r\n popupCampaignElement.addEventListener(\"click\", function(event) {\r\n setCookie(cookieName, \"visited\", 30);\r\n popupCampaignElement.outerHTML = \"\";\r\n });\r\n }\r\n }\r\n\r\n // ie de assign patlıyordu. çözüm buymuş.\r\n if (typeof Object.assign != \"function\") {\r\n Object.assign = function(target: any) {\r\n \"use strict\";\r\n if (target == null) {\r\n throw new TypeError(\"Cannot convert undefined or null to object\");\r\n }\r\n\r\n target = Object(target);\r\n for (let index = 1; index < arguments.length; index++) {\r\n const source = arguments[index];\r\n if (source != null) {\r\n for (const key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n return target;\r\n };\r\n }\r\n // buraya kadar\r\n\r\n if (\"ontouchstart\" in document.documentElement) {\r\n touchDevice = true;\r\n document\r\n .getElementsByTagName(\"body\")[0]\r\n .setAttribute(\"data-is-touch-device\", \"true\");\r\n }\r\n memberUtilsInit();\r\n\r\n const header = document.querySelector(\"header#header.header-desktop\");\r\n showNavigation = (header.attributes as any).showNavigation.value;\r\n const ie = /Trident.*rv[ :]*11\\./.test(navigator.userAgent);\r\n /**\r\n * Header logo tıklanması durumunda eğer ilan detayda değilse kullanıcı\r\n * anasayfaya yönlendirilecek.\r\n * TODO: Faz2: Header her sayfada rahatça uygulanabilmeli. Özellikle ilan\r\n * verme ve düzenleme sayfalarında\r\n */\r\n const headerLogo = document.querySelector(\"a#arabam-header-logo\");\r\n if (headerLogo != null) {\r\n headerLogo.addEventListener(\"click\", onClickHeaderLogo);\r\n }\r\n // header logout\r\n var logoutButton = document.getElementById(\"logout-button\");\r\n if (logoutButton) {\r\n logoutButton.addEventListener(\"click\", function() {\r\n sessionStorage.clear();\r\n });\r\n }\r\n\r\n // Header search bar\r\n searchBarComponentInit();\r\n if (ie) {\r\n searchBoxFocusIe();\r\n }\r\n\r\n // Ücretsiz ilan ver butonu analitik verileri\r\n bindNewAdvertButtonTriggerEvent();\r\n bindTrinkSatButtonTriggerEvent();\r\n\r\n getAdvertBtnHover();\r\n\r\n const menu = document.querySelector(\"header#header .menu\");\r\n const menuItem = document.querySelectorAll(\r\n \"header#header .menu ul.level1 li.level1\"\r\n );\r\n for (let i = 0, len = menuItem.length; i < len; ++i) {\r\n const menuDomEl: HTMLElement | any = menuItem[i];\r\n if (menuDomEl != null) {\r\n try {\r\n hoverintent(\r\n menuDomEl,\r\n (event: MouseEvent) => {\r\n const notificationDropdown = document.querySelector(\r\n \"header#header #header-notification-wrapper .notification-dropdown\"\r\n );\r\n const targetElem: HTMLElement | any = event.target;\r\n const hoveredEl = document.querySelector(\".hovered-lvl1\");\r\n if (!!hoveredEl) {\r\n document\r\n .querySelector(\".hovered-lvl1\")\r\n .classList.remove(\"hovered-lvl1\");\r\n }\r\n if (notificationDropdown != null) {\r\n notificationDropdown.classList.remove(\"opened\");\r\n }\r\n if (touchDevice) {\r\n const activeMenu = document.querySelector(\r\n \"header#header .menu ul.level1 li.level1.hover\"\r\n );\r\n if (activeMenu != undefined) {\r\n activeMenu.classList.remove(\"hover\");\r\n }\r\n targetElem.classList.add(\"hover\");\r\n }\r\n menuDomEl.classList.add(\"hovered-lvl1\");\r\n showOverLay(menu.clientHeight);\r\n },\r\n () => {\r\n menuDomEl.classList.remove(\"hovered-lvl1\");\r\n }\r\n ).options({\r\n timeout: 199,\r\n interval: 199\r\n });\r\n } catch (error) {\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n if (menu != null) {\r\n hoverintent(\r\n menu,\r\n () => false,\r\n () => {\r\n if (!touchDevice) {\r\n hideOverlay(null);\r\n }\r\n }\r\n ).options({\r\n timeout: 199,\r\n interval: 0\r\n });\r\n }\r\n\r\n const searchBoxInput = document.getElementById(\r\n \"search-suggestion-trigger-input\"\r\n );\r\n if (searchBoxInput) {\r\n searchBoxInput.addEventListener(\"focus\", (event: any) => {\r\n const notificationDropdown = document.querySelector(\r\n \"header#header #header-notification-wrapper .notification-dropdown\"\r\n );\r\n if (notificationDropdown != null) {\r\n notificationDropdown.classList.remove(\"opened\");\r\n }\r\n\r\n // opened\r\n showOverLay(0);\r\n });\r\n }\r\n\r\n const overlay = document.querySelector(\"body .overlay-container\");\r\n if (overlay != null) {\r\n overlay.addEventListener(\"click\", hideOverlay);\r\n }\r\n\r\n const headerOverlay = document.querySelector(\"body .header-overlay\");\r\n if (headerOverlay != null) {\r\n headerOverlay.addEventListener(\"click\", hideOverlay);\r\n }\r\n}\r\n\r\nfunction searchBoxFocusIe() {\r\n const searchBoxInput = document.getElementById(\r\n \"search-suggestion-trigger-input\"\r\n );\r\n\r\n searchBoxInput.addEventListener(\"focus\", (event: any) => {\r\n const notificationDropdown = document.querySelector(\r\n \"header#header #header-notification-wrapper .notification-dropdown\"\r\n );\r\n if (notificationDropdown != null) {\r\n notificationDropdown.classList.remove(\"opened\");\r\n }\r\n\r\n showOverLay(0);\r\n });\r\n const overlay = document.querySelector(\"body .overlay-container\");\r\n overlay.addEventListener(\"click\", hideOverlay);\r\n const headerOverlay = document.querySelector(\"body .header-overlay\");\r\n headerOverlay.addEventListener(\"click\", hideOverlay);\r\n}\r\n\r\nfunction showOverLay(offsetTop: any) {\r\n const overlay = document.querySelector(\"body .overlay-container\");\r\n overlay.classList.add(\"show\");\r\n\r\n const headerOverlay = document.querySelector(\"body .header-overlay\");\r\n headerOverlay.setAttribute(\"style\", \"top:\" + offsetTop + \"px\");\r\n headerOverlay.classList.add(\"show\");\r\n}\r\n\r\nfunction hideOverlay(event: any) {\r\n const overlay = document.querySelector(\"body .overlay-container\");\r\n overlay.classList.remove(\"show\");\r\n const headerOverlay = document.querySelector(\"body .header-overlay\");\r\n headerOverlay.classList.remove(\"show\");\r\n if (document.querySelector(\"#suggestion-wrapper\") != null) {\r\n document.querySelector(\"#suggestion-wrapper\").classList.remove(\"active\");\r\n }\r\n const dropdown = document.querySelector(\r\n \"#header-notification-wrapper div.notification-dropdown\"\r\n );\r\n removeClass(dropdown, \"opened\");\r\n const headerSearchWrapper = document.getElementById(\"header-search-wrapper\");\r\n headerSearchWrapper.setAttribute(\"style\", \"z-index:unset\");\r\n const activeMenu = document.querySelector(\r\n \"header#header .menu ul.level1 li.level1.hover\"\r\n );\r\n if (activeMenu != undefined) {\r\n activeMenu.classList.remove(\"hover\");\r\n }\r\n}\r\n\r\nfunction onClickHeaderLogo(event?: MouseEvent) {\r\n setDataLayer(\"Header\", \"Logo\", \"Click\", \"gaEvent\", true);\r\n if (!showNavigation) {\r\n event.preventDefault();\r\n }\r\n}\r\n\r\nfunction bindNewAdvertButtonTriggerEvent() {\r\n const newAdvertButton = document.getElementById(\"header-get-new-advert\");\r\n if (newAdvertButton != null) {\r\n newAdvertButton.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n\r\n setDataLayer(\r\n window.location.pathname.indexOf(\"/arabam-kac-para\") !== -1\r\n ? \"Aracim-Ne-Kadar-Eder\"\r\n : \"Header\",\r\n \"İlan Ver\",\r\n \"Click\",\r\n \"gaEvent\",\r\n true\r\n );\r\n\r\n setTimeout(() => {\r\n window.location.href = (event.target as HTMLAnchorElement).href;\r\n }, 0);\r\n });\r\n }\r\n}\r\nfunction bindTrinkSatButtonTriggerEvent() {\r\n const newAdvertButton = document.getElementById(\"header-trinksat\");\r\n if (newAdvertButton != null) {\r\n newAdvertButton.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n\r\n setDataLayer(\r\n window.location.pathname.indexOf(\"/arabam-kac-para\") !== -1\r\n ? \"Aracim-Ne-Kadar-Eder\"\r\n : \"Header\",\r\n \"Trink Sat\",\r\n \"Click\",\r\n \"gaEvent\",\r\n true\r\n );\r\n\r\n setTimeout(() => {\r\n window.location.href = (event.target as HTMLAnchorElement).href;\r\n }, 0);\r\n });\r\n }\r\n}\r\n\r\nfunction getAdvertBtnHover() {\r\n const createAdvertBtn = document.getElementById(\r\n \"header-create-new-advert-button\"\r\n );\r\n const advertWrapper = document.getElementById(\"get-advert-wrapper\");\r\n const menu: HTMLElement = document.querySelector(\"div.menu\");\r\n if (createAdvertBtn) {\r\n hoverintent(\r\n createAdvertBtn,\r\n () => {\r\n addClass(advertWrapper, \"opened\");\r\n addClass(createAdvertBtn, \"zi5\");\r\n menu.style.zIndex = \"0\";\r\n showOverLay(0);\r\n },\r\n () => {\r\n removeClass(advertWrapper, \"opened\");\r\n removeClass(createAdvertBtn, \"zi5\");\r\n menu.style.zIndex = \"3\";\r\n hideOverlay(0);\r\n }\r\n ).options({\r\n timeout: 199,\r\n interval: 199\r\n });\r\n }\r\n}\r\n","export function setSegmentifyLoginOps(type: string, userId: number) {\r\n const segmentify: any = (window as any).Segmentify;\r\n if (!segmentify) {\r\n return;\r\n }\r\n const userObj: any = {\r\n username: +userId\r\n };\r\n const loginType: string = \"user:\" + type;\r\n segmentify(loginType, userObj);\r\n}\r\n","/**\r\n * eger tarayicinin local storage destegi varsa objeyi storage'a ekler\r\n * @param key \r\n * @param object \r\n */\r\nexport function addToLocalStorage(key: string, object: any): boolean {\r\n if (localStorageAvailable()) {\r\n localStorage.setItem(key, JSON.stringify(object));\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * eger tarayicinin local storage destegi varsa objeyi storage'dan getirir\r\n * @param key \r\n * @param object \r\n */\r\nexport function getFromLocalStorage(key: string): any\r\n{\r\n if(localStorageAvailable()){\r\n const object = JSON.parse(localStorage.getItem(key));\r\n return object;\r\n }\r\n else{\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * local storage destegi mevcut mu\r\n */\r\nfunction localStorageAvailable() {\r\n const test = \"test\";\r\n try {\r\n localStorage.setItem(test, test);\r\n localStorage.removeItem(test);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n}\r\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n"],"sourceRoot":""}