PageSourceSearch

https://partner.sandbox.globetopper.com/assets/63ebab63/try.js

js globetopper.com collected 2026-10-04 05:41:21 UTC 18,585 bytes, 318 lines download raw bytes

1"use strict";
2
3function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
11function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
13function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
14function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
17function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
18function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
19;
20(function (window, undefined) {
21  window.initTry = window.initTry || initTry;
22  function initTry(userCfg) {
23    loadScript("https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js").then(function () {
24      return loadScript("https://cdn.jsdelivr.net/npm/[email protected]/jquery.scrollTo.min.js");
25    }).then(function () {
26      return loadScript("https://cdn.jsdelivr.net/npm/[email protected]/swagger-ui-bundle.js");
27    }).then(function () {
28      return loadScript("https://cdn.jsdelivr.net/npm/[email protected]/index.min.js");
29    }).then(function () {
30      var cfg = cfgHandle(userCfg);
31      window.cfg = cfg;
32      if (cfg.onlySwagger) {
33        initSwagger(cfg.swaggerOptions);
34        $(".swaggerBox").addClass("onlySwagger");
35      } else {
36        var _Redoc;
37        (_Redoc = Redoc).init.apply(_Redoc, _toConsumableArray(cfg.redocOptions));
38      }
39      initCss();
40    })["catch"](function () {
41      console.error('Something went wrong.');
42    });
43  }
44  function cfgHandle(userCfg) {
45    if (_typeof(userCfg) === "string") {
46      userCfg = {
47        openApi: userCfg
48      };
49    }
50    var _userCfg = userCfg,
51      redocOptions = _userCfg.redocOptions;
52    var testOpenApi = "https://httpbin.org/spec.json"; // `https://petstore.swagger.io/v2/swagger.json`
53    var redocOptionsRes = dataType(redocOptions, "object") ? [undefined, redocOptions] : redocOptions || [];
54    var _redocOptionsRes = _slicedToArray(redocOptionsRes, 4),
55      redoc_openApi = _redocOptionsRes[0],
56      redoc_options = _redocOptionsRes[1],
57      redoc_dom = _redocOptionsRes[2],
58      redoc_callBack = _redocOptionsRes[3];
59    var redocVersion = (
60    // Read the redoc version number from the label
61    ($("script[src*=\"/redoc@\"]").attr("src") || "").match(/redoc@(.+?)\//) || [])[1];
62    if (_typeof(userCfg.openApi) === "object") {
63      var _userCfg2 = userCfg,
64        openApi = _userCfg2.openApi;
65      var blob = new Blob([JSON.stringify(openApi)], {
66        type: "application/json"
67      });
68      var url = URL.createObjectURL(blob);
69      userCfg.openApi = url;
70      userCfg._openApiJSON = openApi;
71    }
72    var cfg = _objectSpread(_objectSpread({
73      openApi: testOpenApi,
74      onlySwagger: false,
75      // Only render swagger, in some cases redoc will render openApi error
76      tryText: "try",
77      // try button text
78      trySwaggerInApi: true,
79      // Is the swagger debugging window displayed under the api? true: yes, false: displayed after the request, when the request is relatively large, you may not see the debugging window
80      redocVersion: redocVersion,
81      authBtnPosSelector: "h1:eq(0)",
82      authBtnText: "AUTHORIZE",
83      pure: false
84    }, userCfg), {}, {
85      swaggerOptions: _objectSpread({
86        url: userCfg.openApi || testOpenApi,
87        dom_id: "#swagger-ui",
88        onComplete: function onComplete() {
89          if (Boolean(cfg.onlySwagger) === false) {
90            trySwagger(cfg);
91          }
92        },
93        tryItOutEnabled: true
94      }, userCfg.swaggerOptions),
95      redocOptions: [redoc_openApi || userCfg._openApiJSON || userCfg.openApi || testOpenApi, redoc_options || {
96        enableConsole: true
97      }, redoc_dom || document.getElementById('redoc-container'), function () {
98        redoc_callBack && redoc_callBack();
99        initSwagger(cfg.swaggerOptions);
100        $(".swaggerBox").addClass("hide");
101        cfg.pure && $(".swaggerBox").addClass("pure");
102      }]
103    });
104    return cfg;
105  }
106  function initCss() {
107    // reset swagger-ui css
108    $('head').append("\n    <style>\n      /* Set the position of swaggerBox with body as the relative element */\n      body {\n        position: relative;\n      }\n      @media print, screen and (max-width: 85rem) {\n        .eIeJha,\n        .dtUibw {\n          padding: 4px;\n        }\n      }\n\n      .swaggerBox.hide {\n        visibility: hidden;\n        cursor: none;\n        width: 0;\n        height: 0;\n      }\n      .swaggerBox.show {\n        visibility: visible;\n        cursor: initial;\n      }\n\n      /* Reset the style of swagger-ui */\n      .swaggerBox .swagger-ui .wrapper {\n        padding: 0;\n      }\n      .swaggerBox .swagger-ui .download-contents {\n        top: -10px;\n        right: 0;\n        width: initial;\n      }\n\n      /* Disable api bar to avoid problems */\n      .swaggerBox:not(.onlySwagger) .swagger-ui .opblock .opblock-summary {\n        cursor: not-allowed;\n        pointer-events: none;\n      }\n\n      /* Disable the api bar, but exclude the authorization button */\n      .swaggerBox .swagger-ui .authorization__btn {\n        cursor: initial;\n        pointer-events: initial;\n      }\n\n      .swaggerBox {\n        border-radius: 4px;\n        background-color: #fff;\n        width: 100%;\n        height: 100vh;\n        position: absolute;\n        top: 0;\n        left: 0;\n        z-index: 1;\n      }\n      .swaggerBox:not(.onlySwagger) {\n        overflow: hidden;\n      }\n      /* Hide some disturbing elements */\n      .swaggerBox.pure:not(.onlySwagger) .swagger-ui .opblock-summary {\n        visibility: hidden;\n        padding: 0;\n      }\n      .swaggerBox.pure:not(.onlySwagger) .opblock-section thead,\n      .swaggerBox.pure:not(.onlySwagger) .swagger-ui .opblock-summary * {\n        display: none;\n      }\n\n      .swaggerBox:not(.onlySwagger) .swagger-ui .opblock .opblock-section-header,\n      .swaggerBox:not(.onlySwagger) .btn.cancel,\n      .swaggerBox:not(.onlySwagger) .try-out,\n      .swaggerBox:not(.onlySwagger) .responses-inner>div>h4,\n      .swaggerBox:not(.onlySwagger) :not(.live-responses-table).responses-table,\n      .swaggerBox:not(.onlySwagger) .opblock-body > .opblock-description-wrapper {\n        display: none;\n      }\n      .swaggerBox:not(.onlySwagger) .block div>span:last-child .operation-tag-content>span:last-child {\n        display: block;\n        margin-bottom: 100vh;\n      }\n      .swaggerBox .tryBtn {\n        margin-right: 10px;\n        background-color: #fff;\n      }\n    </style>\n  ");
109  }
110  function initSwagger(swaggerOptions) {
111    // dom
112    $('body').append("\n    <div class=\"swaggerBox\">\n      <div id=\"swagger-ui\"></div>\n    </div>\n  ");
113    // swagger-ui.css
114    $('head').append("<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/[email protected]/swagger-ui.css\" />");
115    SwaggerUIBundle(swaggerOptions);
116  }
117  function trySwagger(cfg) {
118    {
119      // Add a button to set auth to redoc
120      $(cfg.authBtnPosSelector).after($("\n      <div class=\"".concat($("a[download]:eq(0)").attr("class"), " btn setAuth\">") + cfg.authBtnText + "</div>\n    "));
121      $(".btn.setAuth").click(function () {
122        // The pop-up window in swaggerBox can be displayed, but the swaggerBox itself is hidden
123        var $swaggerBox = $(".swaggerBox").removeClass("hide").css({
124          visibility: "hidden",
125          height: "",
126          left: "",
127          top: "",
128          width: ""
129        });
130        $(".swagger-ui .auth-wrapper .authorize.unlocked").click(); // Open the pop-up window for setting auth
131        var $modal = $(".swagger-ui .dialog-ux .modal-ux");
132        $modal.css({
133          visibility: "visible"
134        });
135        $(".swagger-ui .auth-btn-wrapper .btn-done, .swagger-ui .dialog-ux .modal-ux-header .close-modal").click(function () {
136          $swaggerBox.addClass("hide").css({
137            visibility: ""
138          });
139          $modal.css({
140            visibility: ""
141          });
142        });
143      });
144    }
145
146    // Add try button
147    $(".http-verb").before("\n    <button class=\"tryBtn\">".concat(cfg.tryText, "</button>\n  "));
148    $(".tryBtn").click(function (event) {
149      event.stopPropagation();
150      var $tryBtn = $(this);
151      $(".swaggerShadow").remove(); // First clear all temporary elements
152      var $operation = $tryBtn.parents("[data-section-id]").last(); // Get the outermost api box
153      if ($operation.hasClass("try") === true) {
154        // If the current API is already in the try state, uninstall and exit the function
155        $(".swaggerBox").addClass("hide").removeClass("show");
156        $operation.removeClass("try");
157        return false;
158      }
159      $("[data-section-id]").removeClass("try"); // Delete the try class name of all other APIs
160      $operation.addClass("try"); // Add try class name to the currently clicked api
161
162      // The following 3 lines add class names to some necessary elements to facilitate acquisition or identification
163      $(".try>div>div:nth-child(2)").addClass("apiBlock");
164      $(".try .apiBlock>div:nth-child(1)").addClass("fullApiBox");
165      if (window.cfg.redocVersion !== 'next' && window.compareVersions.compare(window.cfg.redocVersion, "2.0.0-rc.32", "<=")) {
166        $(".try .apiBlock>div>div:nth-child(1)").addClass("fullApi");
167      } else {
168        $(".try .apiBlock>div>button").addClass("fullApi");
169      }
170      var appendSwaggerShadow = function appendSwaggerShadow() {
171        return $(".try .fullApiBox").append("<div class=\"swaggerShadow\"></div>");
172      }; // Add a swaggerShadow element to synchronize the height of swagger and use it to occupy space
173      // If cfg.trySwaggerInApi === true then swaggerShadow will be added under fullApi, otherwise it may be under reqBox
174      if (cfg.trySwaggerInApi === true) {
175        appendSwaggerShadow();
176      } else {
177        var requestSel = ".try .apiBlock h3";
178        $(requestSel).parent().addClass("reqBox");
179        if ($(requestSel).length && $(requestSel).text().includes("Request")) {
180          $(".try .reqBox").append("<div class=\"swaggerShadow\"></div>");
181        } else {
182          appendSwaggerShadow();
183        }
184      }
185
186      // get the click method and api
187      var fullApi = $(".try .fullApi").text().replace(cfg.tryText, '').trim();
188      var _fullApi$match = fullApi.match(/(\w+)(.*)/),
189        _fullApi$match2 = _slicedToArray(_fullApi$match, 3),
190        method = _fullApi$match2[1],
191        api = _fullApi$match2[2];
192
193      // Get the position of swaggerShadow
194      var pos = {};
195      window.getAbsolutePosition = getAbsolutePosition;
196      pos = getAbsolutePosition($(".try .swaggerShadow")[0]);
197      pos = Object.keys(pos).reduce(function (prev, cur, index) {
198        // Add px to the number without unit, undefined when the number is 0
199        var val = pos[cur];
200        return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, cur, _typeof(val) === "number" ? val > 0 ? "".concat(val, "px") : undefined : val));
201      }, {});
202      var oldHeight = pos.height ? "".concat(pos.height) : undefined;
203
204      // Move swagger to the position of swaggerShadow
205      var getSwaggerBoxHeight = function getSwaggerBoxHeight() {
206        return getAbsolutePosition($(".swaggerBox")[0]).height + "px";
207      };
208      $(".swaggerBox").css({
209        left: "".concat(pos.left),
210        top: "".concat(pos.top),
211        width: "".concat(pos.width),
212        height: oldHeight
213      }).removeClass("hide").addClass('show');
214
215      // Synchronize the size of swaggerShadow to make it as big as swaggerBox
216      $(".swaggerShadow").css({
217        height: getSwaggerBoxHeight()
218      });
219
220      // scroll the swagger view to the same api position
221      var selStr = ".opblock-summary-".concat(method, " [data-path=\"").concat(api, "\"]");
222      var $swaggerApiDom = $(selStr);
223      var $opblock = $swaggerApiDom.parents(".opblock"); // Get the currently clicked swagger api, and it is not an expanded element
224      if ($opblock.hasClass("open") === false) {
225        $swaggerApiDom.click(); // turn on
226      }
227
228      $opblock.addClass("open");
229      console.log("selStr", selStr);
230      $(".swaggerBox").scrollTo($swaggerApiDom.parent());
231      function changeFn() {
232        var pos = getAbsolutePosition($opblock[0]);
233        if (pos.height === 0) {
234          return false; // The height is 0, no processing
235        } else {
236          var newHeight = "".concat(pos.height, "px");
237          if (oldHeight !== newHeight) {
238            $(".swaggerBox").scrollTo($swaggerApiDom.parent());
239            $(".swaggerBox").css({
240              height: newHeight
241            });
242            $(".swaggerShadow").css({
243              height: getSwaggerBoxHeight()
244            });
245            oldHeight = newHeight;
246          }
247        }
248      }
249      changeFn();
250      var observer = new MutationObserver(changeFn);
251      observer.disconnect();
252      observer.observe($opblock[0], {
253        attributes: true,
254        childList: true,
255        subtree: true
256      });
257    });
258
259    // When changing the browser window size, reset the state of swaggerBox
260    $(window).resize(debounce(function () {
261      $(".swaggerBox").addClass("hide").removeClass("show").css({
262        left: 0,
263        top: 0
264      });
265      $("[data-section-id^=\"operation/\"]").removeClass("try");
266    }, 500));
267  }
268  function loadScript(src) {
269    return new Promise(function (resolve, reject) {
270      var script = document.createElement('script');
271      script.type = 'text/javascript';
272      script.onload = resolve;
273      script.onerror = reject;
274      script.src = src;
275      document.head.append(script);
276    });
277  }
278  function debounce(fn, wait) {
279    // anti-shake
280    var timer = null;
281    return function () {
282      if (timer !== null) {
283        clearTimeout(timer);
284      }
285      timer = setTimeout(fn, wait);
286    };
287  }
288  function getAbsolutePosition(domObj) {
289    // Get element position and size
290    // If the function has no value, the return object is empty
291    if (!domObj) return null;
292    var width = domObj.offsetWidth;
293    var height = domObj.offsetHeight;
294    // Start traversing outward from the target element, accumulate top and left values
295    var top;
296    var left;
297    for (top = domObj.offsetTop, left = domObj.offsetLeft; domObj = domObj.offsetParent;) {
298      top += domObj.offsetTop;
299      left += domObj.offsetLeft;
300    }
301    var right = document.body.offsetWidth - width - left;
302    var bottom = document.body.offsetHeight - height - top;
303
304    // Returns the coordinate set of positioned elements
305    return {
306      width: width,
307      height: height,
308      top: top,
309      left: left,
310      right: right,
311      bottom: bottom
312    };
313  }
314  function dataType(data, type) {
315    var dataType = Object.prototype.toString.call(data).match(/\s(.+)]/)[1].toLowerCase();
316    return type ? dataType === type.toLowerCase() : dataType;
317  }
318})(window);

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.