PageSourceSearch

https://static.trdizin.gov.tr/js/applicationsMenu.js

js trdizin.gov.tr collected 2026-09-24 19:40:14 UTC 4,510 bytes, 142 lines download raw bytes

1let ItemListInstance = {
2  instance: null
3};
4
5(function () {
6  class ItemList {
7    constructor() {
8      this.opt = {
9        container: ".apps-wrapper",
10        token: "TRDIZIN_TOKEN",
11        requestUrl: null,
12        button:null,
13        classes: {
14          item: "item",
15          list: "wrapper"
16        },
17        template: {
18          item: `
19         <a href="{link}" target="_blank"  style="border-radius: 10px;" class='link bg-hover pointer'>
20            <div class="app-icons">
21                  {html}
22            </div>
23            <span>{title}</span>
24        </a>`,
25          list: `
26            <div id="menu-container" class='menu-container' data-is-closed="true">
27                <div class="icons-container" >
28                    {child}
29                </div>
30            </div>`
31        }
32      }
33      this.state="true";
34      this._containerDom = null;
35    }
36
37    init(options){
38      let _instance = this;
39      setTimeout(function (){
40        if(document.querySelector(options.container)){
41          _instance._init(options);
42        }else{
43          _instance.init(options);
44        }
45      },100);
46    }
47
48    _init(options) {
49      this.opt = Object.assign(this.opt, options);
50      if (!this.opt.requestUrl) {
51        throw "requestURL is required";
52      }
53      this.opt.template.list = this.opt.template.list.replace("{classes.list}",
54          this.opt.classes.list);
55      const _instance = this;
56      this.request(function (d){  _instance.templateBinder(d,_instance);
57        const container= _instance._containerDom;
58
59        container.show=function (e){
60          container.setAttribute("data-is-closed","false");
61        }
62        container.hide=function () {
63          container.setAttribute("data-is-closed", "true");
64        }
65        container.toggle=function (){
66          container.setAttribute("data-is-closed",container.getAttribute("data-is-closed")==="false");
67        }
68        const containerCommand = document.querySelector(_instance.opt.button);
69        window.addEventListener('click', function(e){
70          if (container.contains(e.target) || containerCommand.contains(e.target)){
71          } else{
72            container.hide();
73          }
74        });
75      });
76    }
77    show(){
78      if(this._containerDom)
79        this._containerDom.show();
80    }
81    hide(){
82      if(this._containerDom)
83        this._containerDom.hide();
84    }
85    toggle(){
86      if(this._containerDom)
87        this._containerDom.toggle();
88      return this.isOpen();
89    }
90    isOpen(){
91      return this._containerDom.getAttribute("data-is-closed")==='true';
92    }
93    itemBinder(item) {
94      let result = this.opt.template.item;
95      result = result.replace("{classes.item}", this.opt.classes.item);
96      result = result.replace("{link}", item["url"]);
97      result = result.replace("{icon}", item["icon"]);
98      result = result.replace("{html}", item["html"]);
99      result = result.replace("{title}", item["title"]);
100      result = result.replace("{id}", item["id"]);
101      return result;
102    }
103    templateBinder(data, _instance){
104      let childString = "";
105      if (data && data.length > 0) {
106        for (let i = 0; i < data.length; i++) {
107          childString += _instance.itemBinder(data[i]);
108        }
109
110        document.querySelector(_instance.opt.container).innerHTML =
111            _instance.opt.template.list.replace("{child}", childString);
112      }else{
113        document.querySelector(_instance.opt.container).innerHTML = "<div/>"
114      }
115      _instance._containerDom = document.querySelector(_instance.opt.container).children[0];
116    }
117
118
119    request(callback) {
120      let match = document.cookie.match(
121          new RegExp('(^| )' + this.opt.token + '=([^;]+)'));
122      if (match) {
123        let xmlHttp = new XMLHttpRequest();
124        xmlHttp.onreadystatechange = function () {
125          if (xmlHttp.status == 200) {
126            const result = JSON.parse(xmlHttp.responseText);
127            callback(result);
128          }
129        };
130        xmlHttp.open("GET", this.opt.requestUrl, false);
131        xmlHttp.setRequestHeader("Authorization", "Bearer " + match[2]);
132        xmlHttp.setRequestHeader("Accept-Language",sessionStorage.getItem("activeLanguage"))
133        let _lang=navigator.language || navigator.userLanguage; 
134        xmlHttp.setRequestHeader("accept-language", _lang.split('-')[0]);
135        xmlHttp.send(null);
136      } else {
137        console.log('--something went wrong---');
138      }
139    }
140  }
141  ItemListInstance.instance = new ItemList();
142})();

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.