PageSourceSearch

https://www.kalekim.com/Content/Scripts/Base/Feux.Common.Helper.js

js kalekim.com collected 2026-10-04 20:12:41 UTC 23,698 bytes, 569 lines download raw bytes

1function elementInfo(elId, el) {
2    var elem = el ? el : document.getElementById(elId);
3    elemId = elId ? elId : elem.id;
4    var tag = elem.tagName.toLowerCase();
5    tag = (elem.getAttribute('multiple') === null ? tag : 'multiSelect');
6    var type = (tag === 'input' ? elem.getAttribute("type").toLowerCase() : '');
7    var info = tag; var name = (elem.getAttribute("name") ? elem.getAttribute("name") : '');
8    var txt = '';
9    var val = (elem.classList.contains('data-maskformat') ? elem.cleanVal() : elem.value);
10    if (tag === 'input') {
11        info = type;
12    }
13    if (tag === 'select') {
14        var selectedIndex = elem.selectedIndex;
15        var optionList = elem.options;
16        if (optionList[selectedIndex]) {
17            txt = optionList[selectedIndex].text;
18        }
19        else {
20            txt = "";
21        }
22    }
23    else if (info === "checkbox" || info === "radio") {
24        var label = document.querySelectorAll('label[for=' + elemId + ']')[0];
25        txt = label === undefined ? "" : label.innerText;
26    }
27    else if (tag === 'multiSelect') {
28        selectedIndex = elem.selectedIndex;
29        optionList = elem.options;
30        var multiSelectedElements = [];
31        for (var i = 0; i < optionList.length; i++) {
32            multiSelectedElements.push(optionList[i].text);
33        }
34        txt = multiSelectedElements.join('#');
35    }
36    var elemProps = {
37        el: elem,
38        id: elemId,
39        name: name,
40        tag: tag,
41        type: type,
42        info: info,
43        txt: txt,
44        val: val,
45        isChecked: (info === "checkbox" || info === "radio" ? elem.checked : 'false')
46    };
47    return elemProps;
48}
49function arrayRemove(arr, value) {
50    return arr.filter(function (item) {
51        return item !== value;
52    });
53}
54function isJsonEmpty(obj) {
55    for (var key in obj) {
56        if (obj.hasOwnProperty(key))
57            return false;
58    }
59    return true;
60}
61function findAncestor(elem, selector) {
62    if (!Element.prototype.matches) {
63        Element.prototype.matches =
64            Element.prototype.matchesSelector ||
65            Element.prototype.mozMatchesSelector ||
66            Element.prototype.msMatchesSelector ||
67            Element.prototype.oMatchesSelector ||
68            Element.prototype.webkitMatchesSelector ||
69            function (s) {
70                var matches = (this.document || this.ownerDocument).querySelectorAll(s),
71                    i = matches.length;
72                while (--i >= 0 && matches.item(i) !== this)
73                    return i > -1;
74            };
75    }
76    for (; elem && elem !== document; elem = elem.parentNode) {
77        if (elem.matches(selector)) return elem;
78    }
79    return null;
80}
81function insertAfter(el, referenceNode) {
82    referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);
83}
84function removeElementsByClass(className) {
85    var elements = document.getElementsByClassName(className);
86    while (elements.length > 0) {
87        elements[0].parentNode.removeChild(elements[0]);
88    }
89}
90function createElementFromHTML(htmlString) {
91    var div = document.createElement('div');
92    div.innerHTML = htmlString.trim();
93    return div.firstChild;
94}
95function executeFunction(fnName, argArr) {
96    if (argArr === undefined) argArr = null;
97    var arr = fnName.split('.');
98    var fn = window[arr[0]];
99    for (var i = 1; i < arr.length; i++) {
100        fn = fn[arr[i]];
101    }
102    if (!Array.isArray(argArr)) {
103        argArr = [argArr];
104    }
105    return fn.apply(window, argArr);
106}
107function jsonValListByCondition(obj, propertyName, valueToCheck, returnedPropertyVal, ifValueToCheckNotEmpty, listSeparator) {
108    var ret = '';
109    for (var i = 0; i < Object.keys(obj).length; i++) {
110        var keyName = Object.keys(obj)[i];
111        if (obj[keyName][propertyName] === valueToCheck) {
112            var elVal = obj[keyName][returnedPropertyVal];
113            if (ifValueToCheckNotEmpty) {
114                if (elVal !== "" && elVal !== "-1" && elVal !== "0" && elVal !== false && elVal !== null) {
115                    ret += obj[keyName][returnedPropertyVal] + listSeparator;
116                }
117            }
118            else {
119                ret += obj[keyName][returnedPropertyVal] + listSeparator;
120            }
121        }
122    }
123    return (ret !== '' ? ret.substring(0, ret.length - 1) : '');
124}
125function jsonKeyByValue(obj, valueToCheck) {
126    var ret = '';
127    for (var key in obj) {
128        var keyVal = obj[key];
129        if (keyVal === valueToCheck) {
130            ret = key;
131            break;
132        }
133    }
134    return ret;
135}
136function isHidden(elem, selectorName) {
137    if (selectorName === undefined || selectorName === null) selectorName = '';
138    var isHidden = false;
139    if (elem === null) {
140        elem = document.querySelector(selectorName);
141    }
142    if (window.getComputedStyle(elem).display === "none") {
143        isHidden = true;
144    }
145    else if (window.getComputedStyle(elem).visibility === "hidden") {
146        isHidden = true;
147    }
148    return isHidden;
149}
150function formCollect(arg) {
151    var current = arg.current;
152    var container = arg.container;
153    var buildUrl = arg.buildUrl;
154    var dataObj = arg.hasOwnProperty("dataObject") ? arg.dataObject : current.data;
155    if (buildUrl) {
156        current.url = {};
157    }
158    var collection = container.querySelectorAll(
159        '[data-form-section],' +
160        '[data-form-subsection],' +
161        '[data-form-subsubsection],' +
162        'input,' +
163        'select,' +
164        'textarea');
165    var sectionName = "";
166    var subsectionName = "";
167    var sectionitemName = "";
168    var sectionunitName = "";
169    var concatArr = [];
170    for (var i = 0; i < collection.length; i++) {
171        var elem = collection[i];
172        var isSection = elem.hasAttribute("data-form-section");
173        var isSubsection = elem.hasAttribute("data-form-subsection");
174        var isSectionitem = elem.hasAttribute("data-form-sectionitem");
175        var isSectionunit = elem.hasAttribute("data-form-sectionunit");
176        var formCollectionType = elem.getAttribute("data-form-type");
177        if (isSection) {
178            sectionName = elem.getAttribute("data-form-section");
179            if (sectionName.toLowerCase() !== "end") {
180                dataObj[sectionName] = {};
181                if (formCollectionType === "array") {
182                    dataObj[sectionName] = collectArrayObjects({ el: elem });
183                }
184            }
185            else if (sectionName.toLowerCase() === "end") {
186                sectionName = '';
187            }
188        }
189        else if (isSubsection) {
190            subsectionName = elem.getAttribute("data-form-subsection");
191            if (subsectionName.toLowerCase() !== "end") {
192                dataObj[sectionName][subsectionName] = {};
193                if (formCollectionType === "array") {
194                    dataObj[sectionName][subsectionName] = collectArrayObjects({ el: elem });
195                }
196            }
197            else if (subsectionName.toLowerCase() === "end") {
198                subsectionName = '';
199            }
200        }
201        else if (isSectionitem) {
202            sectionitemName = elem.getAttribute("data-form-sectionitem");
203            if (sectionitemName.toLowerCase() !== "end") {
204                dataObj[sectionName][subsectionName][sectionitemName] = {};
205                if (formCollectionType === "array") {
206                    dataObj[sectionName][subsectionName][sectionitemName] = collectArrayObjects({ el: elem });
207                }
208            }
209            else if (sectionitemName.toLowerCase() === "end") {
210                sectionitemName = '';
211            }
212        }
213        else if (isSectionunit) {
214            sectionunitName = elem.getAttribute("data-form-sectionunit");
215            if (sectionunitName.toLowerCase() !== "end") {
216                dataObj[sectionName][subsectionName][sectionitemName][sectionunitName] = {};
217                if (formCollectionType === "array") {
218                    dataObj[sectionName][subsectionName][sectionitemName][sectionunitName] = collectArrayObjects({ el: elem });
219                }
220            }
221            else if (sectionunitName.toLowerCase() === "end") {
222                sectionunitName = '';
223            }
224        }
225        else {
226            if (elem.id) {
227                var isObjProperty = elem.hasAttribute("data-form-obj-property");
228                if (!isObjProperty) {
229                    var elInfo = elementInfo(elem.id);
230                    var currentSection;
231                    var valueEntered = false;
232                    if (buildUrl) {
233                        if (elInfo.info === "checkbox" || elInfo.info === "radio") {
234                            if (elInfo.isChecked) {
235                                valueEntered = true;
236                            }
237                        }
238                        else if (elInfo.info === "text") {
239                            if (elInfo.val !== '') {
240                                valueEntered = true;
241                            }
242                        }
243                        else if (elInfo.info === "select") {
244                            if (elInfo.val !== '') {
245                                valueEntered = true;
246                            }
247                        }
248                    }
249                    if (valueEntered) {
250                        if (!current.url.hasOwnProperty(sectionName)) {
251                            current.url[sectionName] = [];
252                        }
253                        var valueInUrl = "";
254                        if (elem.hasAttribute('data-url')) {
255                            valueInUrl = elem.getAttribute('data-url');
256                            if (valueInUrl.contains("concat")) {
257                                var jsonParsedValue = JSON.parse(valueInUrl);
258                                var _type = jsonParsedValue["type"];
259                                valueInUrl = "";
260                                if (concatArr.indexOf(_type) === -1) {
261                                    concatArr.push(_type);
262                                    var concatElementIds = jsonParsedValue["concat"].split('|');
263                                    var _valueArr = [];
264                                    for (var ce = 0; ce < concatElementIds.length; ce++) {
265                                        var _element = document.getElementById(concatElementIds[ce]);
266                                        var _elInfo = elementInfo(_element.i
266d);
267                                        if (_elInfo.info === "checkbox" || _elInfo.info === "radio") {
268                                        }
269                                        else if (_elInfo.info === "text") {
270                                            _valueArr.push(_elInfo.val);
271                                        }
272                                        else if (_elInfo.info === "select") {
273                                        }
274                                    }
275                                    var separator = jsonParsedValue["separator"];
276                                    valueInUrl = _valueArr.join(separator);
277                                    if (jsonParsedValue.hasOwnProperty("suffix")) {
278                                        var suffix = jsonParsedValue["suffix"];
279                                        valueInUrl += jsonParsedValue["suffix"];
280                                    }
281                                }
282                            }
283                        }
284                        if (valueInUrl !== "" && current.url[sectionName].indexOf(valueInUrl) === -1) {
285                            current.url[sectionName].push(valueInUrl);
286                        }
287                    }
288                    if (sectionName === '' && subsectionName === '' && sectionitemName === '' && sectionunitName === '') {
289                        currentSection = dataObj;
290                    }
291                    else if (sectionName !== '' && subsectionName === '' && sectionitemName === '' && sectionunitName === '') {
292                        currentSection = dataObj[sectionName];
293                    }
294                    else if (subsectionName !== '' && sectionitemName === '' && sectionunitName === '') {
295                        currentSection = dataObj[sectionName][subsectionName];
296                    }
297                    else if (sectionitemName !== '' && sectionunitName === '') {
298                        currentSection = dataObj[sectionName][subsectionName][sectionitemName];
299                    }
300                    else if (sectionunitName !== '') {
301                        currentSection = dataObj[sectionName][subsectionName][sectionitemName][sectionunitName];
302                    }
303                    var formJsonField = elem.getAttribute("data-form-json-field");
304                    if (formJsonField) {
305                        if (elInfo.isTreeview) {
306                            currentSection[formJsonField] = Lidia.TreeView.Actions.collect({ tvwId: elInfo.id });
307                        }
308                        else if (elInfo.info === "radio") {
309                            if (elInfo.isChecked) {
310                                currentSection[formJsonField] = elInfo.val;
311                            }
312                        }
313                        else {
314                            currentSection[formJsonField] = elInfo.val;
315                        }
316                    }
317                    else {
318                        var elemJsonName = elem.getAttribute('data-form-obj-name');
319                        currentSection[elemJsonName ? elemJsonName : elem.id] = {
320                            el: elem,
321                            id: elem.id,
322                            name: elInfo.name,
323                            tag: elInfo.tag,
324                            type: elInfo.type,
325                            info: elInfo.info,
326                            val: elInfo.val,
327                            txt: elInfo.txt,
328                            isChecked: elInfo.info === "checkbox" || elInfo.info === "radio" ? elInfo.isChecked : false
329                        };
330                    }
331                }
332            }
333        }
334    }
335    if (buildUrl) {
336        if (!isJsonEmpty(current.url)) {
337            var urlString = "";
338            for (var u = 0; u < Object.keys(current.url).length; u++) {
339                var clusterName = Object.keys(current.url)[u];
340                var clusterValues = current.url[clusterName].join(",");
341                urlString += clusterName + ":" + clusterValues + "|";
342            }
343            current.url["queryString"] = urlString.slice(0, -1);
344        }
345    }
346}
347function collectArrayObjects(arg) {
348    var arrayJsonObjects = [];
349    var elem = arg.el;
350    var allArrayObjects = elem.querySelectorAll("[data-form-array-obj]");
351    for (var o = 0; o < allArrayObjects.length; o++) {
352        var arrayObj = allArrayObjects[o];
353        var arrayJsonObj = {};
354        var allArrayObjectProperties = arrayObj.querySelectorAll("[data-form-obj-property]");
355        for (var p = 0; p < allArrayObjectProperties.length; p++) {
356            var arrayObjProperty = allArrayObjectProperties[p];
357            var arrayObjPropertyElInfo = elementInfo(arrayObjProperty.id);
358            var arrayObjPropertyName = "";
359            var arrayObjPropertyValue = "";
360            if (arrayObjPropertyElInfo.info === "radio") {
361                if (arrayObjPropertyElInfo.isChecked) {
362                    arrayObjPropertyName = arrayObjProperty.getAttribute("data-form-obj-property");
363                    arrayObjPropertyValue = arrayObjPropertyElInfo.val;
364                    arrayJsonObj[arrayObjPropertyName] = arrayObjPropertyValue;
365                }
366            }
367            else if (arrayObjPropertyElInfo.info === "checkbox") {
368                if (arrayObjPropertyElInfo.isChecked) {
369                    arrayObjPropertyName = arrayObjProperty.getAttribute("data-form-obj-property");
370                    var collectedCheckboxValues = arrayJsonObj[arrayObjPropertyName];
371                    var currentCheckboxValue = arrayObjPropertyElInfo.val;
372                    arrayObjPropertyValue = (collectedCheckboxValues ? collectedCheckboxValues + "#" : "") + currentCheckboxValue;
373                    arrayJsonObj[arrayObjPropertyName] = arrayObjPropertyValue;
374                }
375            }
376            else {
377                arrayObjPropertyName = arrayObjProperty.getAttribute("data-form-obj-property");
378                arrayObjPropertyValue = arrayObjPropertyElInfo.val;
379                arrayJsonObj[arrayObjPropertyName] = arrayObjPropertyValue;
380            }
381        }
382        arrayJsonObjects.push(arrayJsonObj);
383    }
384    return arrayJsonObjects;
385}
386function formReset(arg) {
387    var container = document.querySelector(arg.selector);
388    var tags = ['select', 'input', 'textarea'];
389    for (var i = 0; i < tags.length; i++) {
390        var tag = tags[i];
391        var elementsByTag = container.getElementsByTagName(tag);
392        for (var j = 0; j < elementsByTag.length; j++) {
393            var elem = elementsByTag[j];
394            if (tag === 'select') {
395                elem.selectedIndex = 0;
396                $(elem).change();
397            }
398            else {
399                var typeName = (tag === 'input' ? elem.getAttribute("type").toLowerCase() : '');
400                if (typeName === 'checkbox' || typeName === 'radio') {
401                    var resetVal = elem.getAttribute('data-default-val');
402                    if (resetVal) {
403                        elem.checked = resetVal;
404                    }
405                    else {
406                        elem.checked = false;
407                    }
408                }
409                else {
410                    elem.value = '';
411                }
412            }
413        }
414    }
415    if (Feux.hasOwnProperty("Validation")) {
416        Feux.Validation.Actions.clear({ selector: arg.selector });
417    }
418}
419function updateUrlQueryString(arg) {
420    var urlString = "";
421    if (arg.queryString) {
422        urlString += urlString === "" ? "?" : "&";
423        urlString += arg.queryStringPrefix + "=" + arg.queryString;
424    }
425    if (arg.queryString_sort) {
426        urlString += urlString === "" ? "?" : "&";
427        urlString += arg.queryStringPrefix_sort + "=" + arg.queryString_sort;
428    }
429    if (arg.queryString_paging) {
430        urlString += urlString === "" ? "?" : "&";
431        urlString += arg.queryStringPrefix_paging + "=" + arg.queryString_paging;
432    }
433    if (arg.queryString_tbr) {
434        urlString += urlString === "" ? "?" : "&";
435        urlString += arg.queryStringPrefix_tbr + "=" + arg.queryString_tbr;
436    }
437    if (arg.queryString_search) {
438        urlString += urlString === "" ? "?" : "&";
439        urlString += arg.queryString_search;
440    }
441    history.pushState("", "", window.location.href.split('?')[0] + urlString);
442}
443function assignFormElementValue(arg) {
444    var el = arg.element;
445    var val = arg.value;
446    var trigger = arg.trigger;
447    var elInfo = elementInfo("", el);
448    if (elInfo.info === "checkbox" || elInfo.info === "radio") {
449        if (trigger) {
450            el.click();
451        }
452        else {
453            el.checked = true;
454        }
455    }
456    else if (elInfo.info === "textbox") {
457    }
458    else if (elInfo.info === "select") {
459    }
460}
461function normalizeString(arg) {
462    var value = arg.value;
463    var characterArr = ["Ç-C", "ç-c", "Ğ-G", "ğ-g", "İ-I", "ı-i", "Ö-O", "ö-o", "Ş-S", "ş-s", "Ü-U", "ü-u"];
464    for (c = 0; c < characterArr.length; c++) {
465        var item = characterArr[c].split('-');
466        var regex = new RegExp(item[0], 'g');
467        value = value.replace(regex, item[1]);
468    }
469    if (arg.lowercase !== false) {
470        value = value.toLowerCase();
471    }
472    return value;
473}
474function getOffset(selectorName, includeScroll = false) {
475    var el = document.querySelector(selectorName);
476    const rect = el.getBoundingClientRect();
477    var elWidth = el.clientWidth;
478    var elHeight = el.clientHeight;
479    return {
480        top: rect.top + (includeScroll ? window.scrollY : 0),
481        right: rect.left + (includeScroll ? window.scrollX : 0) + elWidth,
482        bottom: rect.top + (includeScroll ? window.scrollY : 0) + elHeight,
483        left: rect.left + (includeScroll ? window.scrollX : 0)
484    };
485}
486function unwrap(arg) {
487    var parentEl;
488    if (arg.isParent) {
489        parentEl = arg.hasOwnProperty("elSelector") ? document.querySelector(arg.elSelector) : arg.el;
490        var childrenCount = parentEl.children.length;
491        for (var c = 0; c < childrenCount; c++) {
492            var childEl = parentEl.children[0];
493            parentEl.insertAdjacentElement('beforebegin', childEl);
494        }
495    }
496    else {
497        childEl = arg.hasOwnProperty("elSelector") ? document.querySelector(arg.elSelector) : arg.el;
498        parentEl = childEl.parentNode;
499        parentEl.insertAdjacentElement('beforebegin', childEl);
500    }
501    if (parentEl.parentNode) {
502        parentEl.parentNode.removeChild(parentEl);
503    }
504}
505function isBrowserIE11() {
506    var isIE11 = !!window.MSInputMethodContext && !!document.documentMode;
507    return isIE11;
508}
509function uuidv4() {
510    return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
511        (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
512    );
513}
514function withinWindow(arg) {
515    var el = document.querySelector(arg.selector);
516    var coord = el.getBoundingClientRect();
517    var elL = coord.left;
518    var elW = el.offsetWidth;
519    var winW = window.innerWidth;
520    var xAxisWithinWindow = winW >= elL + elW;
521    var elT = coord.top;
522    var elH = el.offsetHeight;
523    var winH = window.innerHeight;
524    var yAxisWithinWindow = winH >= elT + elH;
525    var withinWindowArr = new Array();
526    withinWindowArr.push(xAxisWithinWindow);
527    withinWindowArr.push(yAxisWithinWindow);
528    return withinWindowArr;
529}
530function outOfWindow(arg) {
531    var withinWindowArr = withinWindow(arg);
532    var outOfWindowArr = new Array();
533    outOfWindowArr.push(!withinWindowArr[0]);
534    outOfWindowArr.push(!withinWindowArr[1]);
535    return outOfWindowArr;
536}
537function isXS() {
538    var key = Feux.Base.Props.MediaQ.Curr.key;
539    return key === "xs1" || key === "xs2";
540}
541function replaceAndEnsureStartsWithFive(sender) {
542    var inputString = sender.value.replace(/\D/g, '');;
543    if (!inputString.startsWith('5')) {
544        const indexOfFive = inputString.indexOf('5');
545        if (indexOfFive === -1) {
546            sender.value = "";
547            sender.setAttribute('value', "");
548        }
549        else {
550            sender.value = inputString.slice(indexOfFive);
551            sender.setAttribute('value', inputString.slice(indexOfFive));
552        }
553    }
554    else {
555        sender.setAttribute('value', inputString);
556    }
557}
558if (!String.prototype.contains) {
559    String.prototype.contains = function () {
560        return String.prototype.indexOf.apply(this, arguments) !== -1;
561    };
562}
563if (!('remove' in Element.prototype)) {
564    Element.prototype.remove = function () {
565        if (this.parentNode) {
566            this.parentNode.removeChild(this);
567        }
568    };
569}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.