PageSourceSearch

https://sppsary.pl/skin/pics/jsw/countrychooser.js

js sppsary.pl collected 2026-09-30 14:49:01 UTC 8,341 bytes, 146 lines download raw bytes

1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.CountryRedirectMsg = exports.CountryChooser = exports.countryRedirects = void 0;
4var tslib_1 = require("tslib");
5var React = require("react");
6var AppReactUtils_1 = require("../../../app/pics/jsw/utils/AppReactUtils");
7var edurequest_1 = require("../../../asc/edurequest");
8importCss('/orders/pics/css/purchasing.css');
9exports.countryRedirects = [
10    { countries: ['de', 'at', 'ch'], url: 'https://edupage-support.raabe.de/portal/de/home' },
11    { countries: ['tr'], url: 'https://edupage.pro' },
12];
13function CountryChooser(props) {
14    var _this = this;
15    var mainElemRef = React.useRef(null);
16    var _a = AppReactUtils_1.AppReactUtils.useOnlineData('/orders/?cmd=Purchasing&akcia=getCountries', {}, props, function (res) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
17        return tslib_1.__generator(this, function (_a) {
18            return [2, res];
19        });
20    }); }), data = _a[0], reload = _a[1], md = _a[2];
21    var _b = AppReactUtils_1.AppReactUtils.useRefStateWithSessionStorage('', 'ttcoutrysearch'), searchQuery = _b[0], setSearchQuery = _b[1];
22    React.useEffect(function () {
23        var elem = mainElemRef.current;
24        barRegisterPopstateHandler(elem, function () {
25            close();
26        });
27        return function () {
28            barUnregisterPopstateHandler(elem);
29        };
30    }, []);
31    var countries = React.useMemo(function () {
32        var sq = searchQuery.toLowerCase().latinize().trim().replace(/\s+/, ' ');
33        var res = (md === null || md === void 0 ? void 0 : md.countries) || [];
34        return res.filter(function (r) {
35            if (!sq)
36                return true;
37            var n = r.name.toLowerCase().latinize().trim().replace(/\s+/, ' ');
38            var c = r.countrycode.toLowerCase().latinize().trim().replace(/\s+/, ' ');
39            return n.indexOf(sq) >= 0 || c.indexOf(sq) == 0;
40        });
41    }, [md, searchQuery]);
42    AppReactUtils_1.AppReactUtils.useDialogOptions(mainElemRef, {
43        title: 'Select country',
44        width: '400',
45        dialogClass: 'whiteDialog autoCenteredDialog noPadding noBorder',
46    });
47    function close() {
48        barCloseDialog($(mainElemRef.current));
49    }
50    function countryClick(e) {
51        var id = $(e.currentTarget).attr('data-id');
52        var redirect = exports.countryRedirects.find(function (r) { return r.countries.includes(id); });
53        if (redirect && (EdubarUtils.getEdupage() == 'asctt' || (md === null || md === void 0 ? void 0 : md.useContryRedirects))) {
54            window.location.href = redirect.url;
55            return;
56        }
57        barStartLoading();
58        $.post('/?cmd=setcountry', { country: id }, function () {
59            barEndLoading();
60            window.location.href = '/';
61        });
62    }
63    function flagErr(e) {
64        $(e.currentTarget).css('display', 'none');
65    }
66    function clearSearch() {
67        setSearchQuery("");
68        if (props.searchChanged) {
69            props.searchChanged('');
70        }
71    }
72    function sqChange(e) {
73        var val = $(e.currentTarget).val();
74        setSearchQuery(val);
75    }
76    function keyDown(e) {
77        if (e.which == 40 || e.which == 38
78            || (e.which == 13 && $(e.target).closest('input[type="text"]').length > 0)) {
79            var prevelem = null;
80            var nextelem = null;
81            var focusedelem = null;
82            $(mainElemRef.current).find('.purchasing-arrows-focus').each(function () {
83                if ($(this).is(':focus')) {
84                    focusedelem = this;
85                }
86                else if (!focusedelem) {
87                    prevelem = this;
88                }
89                else if (focusedelem && !nextelem) {
90                    nextelem = this;
91                }
92            });
93            if ((e.which == 40 || e.which == 13) && nextelem) {
94                e.preventDefault();
95                $(nextelem).focus();
96            }
97            if (e.which == 38 && prevelem) {
98                e.preventDefault();
99                if (!focusedelem)
100                    prevelem = $(mainElemRef.current).find('.purchasing-arrows-focus').first().get(0);
101                $(prevelem).focus();
102            }
103        }
104    }
105    return (React.createElement("div", { ref: mainElemRef, style: { fontSize: '1rem' }, onKeyDown: keyDown },
106        React.createElement("div", null,
107            React.createElement("div", { className: "purchasing-countries-searchBox-outer" },
108                React.createElement("a", tslib_1.__assign({ role: "button", className: "purchasing-countries-searchBox-close" }, AppReactUtils_1.AppReactUtils.addClickHandler(close), { title: ls(1038) }),
109                    React.createElement("i", { className: "fa fa-fw fa-arrow-left", "aria-label": ls(1038) })),
110                React.createElement("input", { type: "text", autoFocus: true, name: "sq", value: searchQuery, onChange: sqChange, autoComplete: 'off', placeholder: ls(3262), className: "purchasing-countries-searchBox purchasing-arrows-focus" }),
111                searchQuery && (React.createElement("a", tslib_1.__assign({ role: "button", className: "purchasing-countries-searchBox-clear" }, AppReactUtils_1.AppReactUtils.addClickHandler(clearSearch), { title: ls(8023) }),
112                    React.createElement("i", { className: "fa fa-fw fa-close", "aria-label": ls(8023) }))))),
113        React.createElement("div", { style: { height: 'calc(100vh - 200px)', overflow: 'auto' } }, countries === null || countries === void 0 ? void 0 : countries.map(function (r) {
114            return (React.createElement("div", tslib_1.__assign({ key: r.countrycode, "data-id": r.countrycode, className: 'purchasing-country-item purchasing-arrows-focus', role: "button" }, AppReactUtils_1.AppReactUtils.addClickHandler(countryClick)),
115                React.createElement("div", { className: 'purchasing-country-item-icon' },
116                    React.createElement("img", { src: "/langs/pics/" + (r.countrycode == 'af' ? 'af2' : r.countrycode) + '.gif', alt: "", onError: flagErr })),
117                React.createElement("div", { className: 'purchasing-country-item-name' }, r.name),
118                React.createElement("div", { className: 'purchasing-country-item-code' }, r.countrycode)));
119        })),
120        React.createElement("div", { style: { padding: '12px', textAlign: 'center', backgroundColor: '#eeeeee' } },
121            React.createElement("button", { type: "button", className: 'button-gray', onClick: close }, ls(1038)))));
122}
123exports.CountryChooser = CountryChooser;
124function CountryRedirectMsg(props) {
125    var country = props.country, lang = props.lang;
126    var redirect = exports.countryRedirects.find(function (r) { return r.countries.includes(country); });
127    var _a = React.useState(sessionStorage.getItem('countryRedirectDlgClosed') == '1'), isClosed = _a[0], setIsClosed = _a[1];
128    if (!redirect)
129        return null;
130    function close() {
131        sessionStorage.setItem('countryRedirectDlgClosed', '1');
132        setIsClosed(true);
133    }
134    if (isClosed)
135        return null;
136    return (React.createElement("div", { className: "purchasing-country-redirect-outer" },
137        React.createElement("div", { style: { position: 'absolute', top: '4px', right: '4px' } },
138            React.createElement("a", tslib_1.__assign({ className: "purchasing-link-button", role: "button" }, AppReactUtils_1.AppReactUtils.addClickHandler(close), { "aria-label": ls(1567), title: ls(1567) }),
139                React.createElement("i", { className: "fa fa-fw fa-close", "aria-hidden": "true" }))),
140        React.createElement("div", null,
141            React.createElement("b", null, edurequest_1.client_req.ails('sk:Odporúčame navštíviť stránku regionálneho partnera'))),
142        React.createElement("div", null, edurequest_1.client_req.ails('sk:Pre používateľov z Vašej krajiny je k dispozícii lokáln
142a webová stránka nášho partnera s informáciami, podporou a službami prispôsobenými vášmu regiónu.')),
143        React.createElement("div", null,
144            React.createElement("a", { href: redirect.url, className: "purchasing-button green" }, edurequest_1.client_req.ails('sk:Prejsť na stránku partnera')))));
145}
146exports.CountryRedirectMsg = CountryRedirectMsg;

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.