PageSourceSearch

https://szara.edu.pl/app/pics/jsw/components/AppSimpleMenu.js

js szara.edu.pl collected 2026-10-09 22:26:43 UTC 8,321 bytes, 153 lines download raw bytes

1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.AppColorMenuShow = exports.AppColorMenu = exports.AppSimpleMenuDlg = exports.AppSimpleMenuShow = exports.AppSimpleMenu = void 0;
4var tslib_1 = require("tslib");
5var React = require("react");
6var asc_react_1 = require("../../../../asc/asc_react");
7importCss('/app/pics/css/appSimpleMenu.css');
8importLegacyJsLib('/elearning/pics/js/etest/utilsETest.js');
9function AppSimpleMenu(props) {
10    var mainElemRef = React.useRef(null);
11    var scrollTimerRef = React.useRef(null);
12    var items = props.items || [];
13    function itemClick(e) {
14        barCloseDialog(mainElemRef.current);
15        var ind = $(e.currentTarget).attr('data-ind');
16        var item = items[ind * 1];
17        if (item.disabled) {
18            var help = getItemDisabledHelp(item);
19            if (help) {
20                (0, asc_react_1.openUrl)(ASC.getHelpUrl(help));
21            }
22        }
23        else if (item && item.onClick) {
24            item.onClick();
25        }
26        else if (props.itemClick) {
27            props.itemClick(items[ind * 1]);
28        }
29    }
30    function keyPress(e) {
31        if (e.charCode == 13) {
32            itemClick(e);
33        }
34    }
35    function updateScrollPos(counter) {
36        if ($(mainElemRef.current).closest('body').length == 0)
37            return;
38        var selectedElem = $(mainElemRef.current).find('.selected').first();
39        ETestUtils.ensureElementInFocusRect(selectedElem, null, {
40            scrollContainer: $(mainElemRef.current).scrollParent(),
41            offsetV: $(window).height() * 0.25
42        });
43        if (counter < 5) {
44            scrollTimerRef.current = setTimeout(function () {
45                scrollTimerRef.current = null;
46                updateScrollPos(counter + 1);
47            }, 50);
48        }
49    }
50    function getItemDisabledHelp(item) {
51        return item.disabled && (item.disabled + "").substring(0, 5) == "help:" ? (item.disabled + "").substring(5) : null;
52    }
53    React.useEffect(function () {
54        updateScrollPos(0);
55        barCenterDialog($(mainElemRef.current));
56        return function () {
57            if (scrollTimerRef.current) {
58                clearTimeout(scrollTimerRef.current);
59                scrollTimerRef.current = null;
60            }
61        };
62    }, []);
63    var category = '';
64    return (React.createElement("div", { className: "app-simplemenu-outer app-noselect " + props.className, ref: mainElemRef },
65        props.title && (React.createElement("div", { className: "app-simplemenu-title" }, props.title)),
66        props.subtitle && (React.createElement("div", { className: "app-simplemenu-subtitle" }, props.subtitle)),
67        items.map(function (r, ind) {
68            var showCategory = false;
69            var help = getItemDisabledHelp(r);
70            var disabled = r.disabled || (!r.onClick && !props.itemClick);
71            if (r.category && r.category != category) {
72                showCategory = true;
73                category = r.category;
74            }
75            return (React.createElement(React.Fragment, { key: r.id },
76                showCategory && (React.createElement("div", { className: "app-simplemenu-category" }, r.category)),
77                React.createElement("a", tslib_1.__assign({ key: r.id, "data-ind": ind, className: "app-simplemenu-item "
78                        + (props.emptyTitleAsIniline && !r.title ? ' inlineItem ' : '')
79                        + (props.selectedid == r.id ? ' selected ' : '')
80                        + (props.itemClassName || "")
81                        + (disabled ? " disabled" : "") }, tapOrClick(itemClick), { onKeyPress: keyPress, tabIndex: 0 }),
82                    (props.showIcons !== false) && (React.createElement("div", { className: "app-simplemenu-icon " + (r.iconColor || ""), "aria-hidden": "true" }, r.faIcon
83                        ? (React.createElement("i", { className: "fa " + r.faIcon, style: { color: r.iconColor } }))
84                        : (r.mIcon
85                            ? React.createElement("i", { className: "material-icons", style: { color: r.iconColor } }, r.mIcon)
86                            : r.iconCnt
87                                ? r.iconCnt
88                                : (r.icon && React.createElement("img", { src: r.icon, alt: "Icon" }
88))))),
89                    (r.title || r.name || !props.emptyTitleAsIniline)
90                        ? (React.createElement("div", { className: "app-simplemenu-text " },
91                            React.createElement("div", { className: "title", lang: r.lang || null }, r.title || r.name),
92                            r.subtitle && (React.createElement("div", { className: "app-subtitle small" }, r.subtitle))))
93                        : "",
94                    help && React.createElement("div", { className: "app-list-item-rcontent small" },
95                        React.createElement("i", { className: "fa fa-fw fa-question-circle" }),
96                        " ",
97                        ls(1077)))));
98        })));
99}
100exports.AppSimpleMenu = AppSimpleMenu;
101function AppSimpleMenuShow(menuItems, options) {
102    var elem = (React.createElement(React.Fragment, null,
103        React.createElement(AppSimpleMenu, tslib_1.__assign({ items: menuItems }, options)),
104        !MobileAppBridge.isActive() && (React.createElement("div", { className: "barDialogActionButtons", style: { padding: '12px' } },
105            React.createElement("input", { type: "button", className: "button-gray", value: ls(1038), onClick: function (e) { barCloseDialog(e.currentTarget); } })))));
106    var dlg = barNewReactDlg(elem, {
107        width: options.width || 500
108    });
109    return dlg;
110}
111exports.AppSimpleMenuShow = AppSimpleMenuShow;
112function AppSimpleMenuDlg(props) {
113    var mainElemRef = React.useRef(null);
114    function close() {
115        barCloseDialog($(mainElemRef.current));
116    }
117    return (React.createElement("div", { ref: mainElemRef },
118        React.createElement("div", { style: { position: 'absolute', top: 0, right: 0 } },
119            React.createElement("a", tslib_1.__assign({ className: 'app-simplemenu-dlg-close' }, tapOrClick(close), { title: ls(1567), "aria-label": ls(1567) }),
120                React.createElement("i", { className: "fa fa-close", "aria-hidden": "true" }))),
121        React.createElement(AppSimpleMenu, tslib_1.__assign({}, props)),
122        React.createElement("div", { className: "barDialogActionButtons", style: { padding: '12px' } },
123            React.createElement("input", { type: "button", className: "button-gray", value: ls(1038), onClick: close }))));
124}
125exports.AppSimpleMenuDlg = AppSimpleMenuDlg;
126function AppColorMenu(props) {
127    var mainElemRef = React.useRef(null);
128    var items = props.items || [];
129    function itemClick(e) {
130        var ind = $(e.currentTarget).attr('data-ind');
131        if (props.itemClick) {
132            props.itemClick(items[ind * 1]);
133        }
134        barCloseDialog(mainElemRef.current);
135    }
136    return (React.createElement("div", { className: "app-simplemenu-outer app-noselect", ref: mainElemRef },
137        props.title && (React.createElement("div", { className: "app-simplemenu-title" }, props.title)),
138        React.createElement("div", { className: "app-colormenu-list" },
139            items.map(function (r, ind) {
140                return (React.createElement("div", tslib_1.__assign({ className: "app-colormenu-item " + (props.selectedid == r.color ? 'selected ' : '') + (props.itemClassName || ""), key: r.id }, tapOrClick(r.onClick ? r.onClick : itemClick), { "data-ind": ind }),
141                    React.createElement("div", { className: "app-colormenu-item-inner", style: { backgroundColor: r.color } })));
142            }),
143            React.createElement("div", { className: "app-colormenu-item-empty" }),
144            React.createElement("div", { className: "app-colormenu-item-empty" }),
145            React.createElement("div", { className: "app-colormenu-item-empty" }),
146            React.createElement("div", { className: "app-colormenu-item-empty" }))));
147}
148exports.AppColorMenu = AppColorMenu;
149function AppColorMenuShow(menuItems, options) {
150    var dlg = barNewReactDlg(React.createElement(AppColorMenu, tslib_1.__assign({ items: menuItems }, options)), {});
151    return dlg;
152}
153exports.AppColorMenuShow = AppColorMenuShow;

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.