您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
AtCoderページの横に要素を乗せられるSidemenuを追加します。
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/386715/712893/atcoder-sidemenu.js
- sidemenu = typeof(sidemenu) !== "undefined" ? sidemenu :
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
- /******/ }
- /******/ };
- /******/
- /******/ // define __esModule on exports
- /******/ __webpack_require__.r = function(exports) {
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
- /******/ }
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
- /******/ };
- /******/
- /******/ // create a fake namespace object
- /******/ // mode & 1: value is a module id, require it
- /******/ // mode & 2: merge all properties of value into the ns
- /******/ // mode & 4: return value when already ns object
- /******/ // mode & 8|1: behave like require
- /******/ __webpack_require__.t = function(value, mode) {
- /******/ if(mode & 1) value = __webpack_require__(value);
- /******/ if(mode & 8) return value;
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
- /******/ var ns = Object.create(null);
- /******/ __webpack_require__.r(ns);
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
- /******/ return ns;
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 7);
- /******/ })
- /************************************************************************/
- /******/ ([
- /* 0 */
- /***/ (function(module, exports) {
- module.exports = jQuery;
- /***/ }),
- /* 1 */
- /***/ (function(module, exports) {
- module.exports = "<div id=\"menu_wrap\">\n <div id=\"sidemenu\" class=\"container\"></div>\n <div id=\"sidemenu-key\" class=\"glyphicon glyphicon-menu-left\"></div>\n</div>";
- /***/ }),
- /* 2 */
- /***/ (function(module, exports, __webpack_require__) {
- var content = __webpack_require__(3);
- if(typeof content === 'string') content = [[module.i, content, '']];
- var transform;
- var insertInto;
- var options = {"hmr":true}
- options.transform = transform
- options.insertInto = undefined;
- var update = __webpack_require__(5)(content, options);
- if(content.locals) module.exports = content.locals;
- if(false) {}
- /***/ }),
- /* 3 */
- /***/ (function(module, exports, __webpack_require__) {
- exports = module.exports = __webpack_require__(4)(false);
- // Module
- exports.push([module.i, "@charset \"UTF-8\";\n#menu_wrap {\n display: block;\n position: fixed;\n top: 0;\n z-index: 20;\n width: 400px;\n right: -350px;\n transition: all 150ms 0ms ease;\n margin-top: 50px; }\n\n#sidemenu {\n background: #000;\n opacity: 0.85; }\n\n#sidemenu-key {\n border-radius: 5px 0px 0px 5px;\n background: #000;\n opacity: 0.85;\n color: #FFF;\n padding: 30px 0;\n cursor: pointer;\n margin-top: 100px;\n text-align: center; }\n\n#sidemenu {\n display: inline-block;\n width: 350px;\n float: right; }\n\n#sidemenu-key {\n display: inline-block;\n width: 50px;\n float: right; }\n\n.sidemenu-active {\n transform: translateX(-350px); }\n\n.sidemenu-txt {\n color: #DDD; }\n\n/*アコーディオンメニュー*/\n.menu-wrapper {\n border-bottom: 1px solid #FFF; }\n\n.menu-header {\n margin: 10px 20px 10px 20px;\n user-select: none; }\n\n.menu-box {\n overflow: hidden;\n transition: all 300ms 0s ease; }\n\n.menu-box-collapse {\n height: 0px !important; }\n .menu-box-collapse .menu-content {\n transform: translateY(-100%); }\n\n.menu-content {\n padding: 10px 20px 10px 20px;\n transition: all 300ms 0s ease; }\n\n.cnvtb-fixed {\n z-index: 19; }\n", ""]);
- /***/ }),
- /* 4 */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- // css base code, injected by the css-loader
- module.exports = function (useSourceMap) {
- var list = []; // return the list of modules as css string
- list.toString = function toString() {
- return this.map(function (item) {
- var content = cssWithMappingToString(item, useSourceMap);
- if (item[2]) {
- return '@media ' + item[2] + '{' + content + '}';
- } else {
- return content;
- }
- }).join('');
- }; // import a list of modules into the list
- list.i = function (modules, mediaQuery) {
- if (typeof modules === 'string') {
- modules = [[null, modules, '']];
- }
- var alreadyImportedModules = {};
- for (var i = 0; i < this.length; i++) {
- var id = this[i][0];
- if (id != null) {
- alreadyImportedModules[id] = true;
- }
- }
- for (i = 0; i < modules.length; i++) {
- var item = modules[i]; // skip already imported module
- // this implementation is not 100% perfect for weird media query combinations
- // when a module is imported multiple times with different media queries.
- // I hope this will never occur (Hey this way we have smaller bundles)
- if (item[0] == null || !alreadyImportedModules[item[0]]) {
- if (mediaQuery && !item[2]) {
- item[2] = mediaQuery;
- } else if (mediaQuery) {
- item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';
- }
- list.push(item);
- }
- }
- };
- return list;
- };
- function cssWithMappingToString(item, useSourceMap) {
- var content = item[1] || '';
- var cssMapping = item[3];
- if (!cssMapping) {
- return content;
- }
- if (useSourceMap && typeof btoa === 'function') {
- var sourceMapping = toComment(cssMapping);
- var sourceURLs = cssMapping.sources.map(function (source) {
- return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';
- });
- return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
- }
- return [content].join('\n');
- } // Adapted from convert-source-map (MIT)
- function toComment(sourceMap) {
- // eslint-disable-next-line no-undef
- var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
- var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
- return '/*# ' + data + ' */';
- }
- /***/ }),
- /* 5 */
- /***/ (function(module, exports, __webpack_require__) {
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- var stylesInDom = {};
- var memoize = function (fn) {
- var memo;
- return function () {
- if (typeof memo === "undefined") memo = fn.apply(this, arguments);
- return memo;
- };
- };
- var isOldIE = memoize(function () {
- // Test for IE <= 9 as proposed by Browserhacks
- // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
- // Tests for existence of standard globals is to allow style-loader
- // to operate correctly into non-standard environments
- // @see https://github.com/webpack-contrib/style-loader/issues/177
- return window && document && document.all && !window.atob;
- });
- var getTarget = function (target, parent) {
- if (parent){
- return parent.querySelector(target);
- }
- return document.querySelector(target);
- };
- var getElement = (function (fn) {
- var memo = {};
- return function(target, parent) {
- // If passing function in options, then use it for resolve "head" element.
- // Useful for Shadow Root style i.e
- // {
- // insertInto: function () { return document.querySelector("#foo").shadowRoot }
- // }
- if (typeof target === 'function') {
- return target();
- }
- if (typeof memo[target] === "undefined") {
- var styleTarget = getTarget.call(this, target, parent);
- // Special case to return head of iframe instead of iframe itself
- if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
- try {
- // This will throw an exception if access to iframe is blocked
- // due to cross-origin restrictions
- styleTarget = styleTarget.contentDocument.head;
- } catch(e) {
- styleTarget = null;
- }
- }
- memo[target] = styleTarget;
- }
- return memo[target]
- };
- })();
- var singleton = null;
- var singletonCounter = 0;
- var stylesInsertedAtTop = [];
- var fixUrls = __webpack_require__(6);
- module.exports = function(list, options) {
- if (typeof DEBUG !== "undefined" && DEBUG) {
- if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
- }
- options = options || {};
- options.attrs = typeof options.attrs === "object" ? options.attrs : {};
- // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
- // tags it will allow on a page
- if (!options.singleton && typeof options.singleton !== "boolean") options.singleton = isOldIE();
- // By default, add <style> tags to the <head> element
- if (!options.insertInto) options.insertInto = "head";
- // By default, add <style> tags to the bottom of the target
- if (!options.insertAt) options.insertAt = "bottom";
- var styles = listToStyles(list, options);
- addStylesToDom(styles, options);
- return function update (newList) {
- var mayRemove = [];
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i];
- var domStyle = stylesInDom[item.id];
- domStyle.refs--;
- mayRemove.push(domStyle);
- }
- if(newList) {
- var newStyles = listToStyles(newList, options);
- addStylesToDom(newStyles, options);
- }
- for (var i = 0; i < mayRemove.length; i++) {
- var domStyle = mayRemove[i];
- if(domStyle.refs === 0) {
- for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
- delete stylesInDom[domStyle.id];
- }
- }
- };
- };
- function addStylesToDom (styles, options) {
- for (var i = 0; i < styles.length; i++) {
- var item = styles[i];
- var domStyle = stylesInDom[item.id];
- if(domStyle) {
- domStyle.refs++;
- for(var j = 0; j < domStyle.parts.length; j++) {
- domStyle.parts[j](item.parts[j]);
- }
- for(; j < item.parts.length; j++) {
- domStyle.parts.push(addStyle(item.parts[j], options));
- }
- } else {
- var parts = [];
- for(var j = 0; j < item.parts.length; j++) {
- parts.push(addStyle(item.parts[j], options));
- }
- stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
- }
- }
- }
- function listToStyles (list, options) {
- var styles = [];
- var newStyles = {};
- for (var i = 0; i < list.length; i++) {
- var item = list[i];
- var id = options.base ? item[0] + options.base : item[0];
- var css = item[1];
- var media = item[2];
- var sourceMap = item[3];
- var part = {css: css, media: media, sourceMap: sourceMap};
- if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
- else newStyles[id].parts.push(part);
- }
- return styles;
- }
- function insertStyleElement (options, style) {
- var target = getElement(options.insertInto)
- if (!target) {
- throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
- }
- var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
- if (options.insertAt === "top") {
- if (!lastStyleElementInsertedAtTop) {
- target.insertBefore(style, target.firstChild);
- } else if (lastStyleElementInsertedAtTop.nextSibling) {
- target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
- } else {
- target.appendChild(style);
- }
- stylesInsertedAtTop.push(style);
- } else if (options.insertAt === "bottom") {
- target.appendChild(style);
- } else if (typeof options.insertAt === "object" && options.insertAt.before) {
- var nextSibling = getElement(options.insertAt.before, target);
- target.insertBefore(style, nextSibling);
- } else {
- throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
- }
- }
- function removeStyleElement (style) {
- if (style.parentNode === null) return false;
- style.parentNode.removeChild(style);
- var idx = stylesInsertedAtTop.indexOf(style);
- if(idx >= 0) {
- stylesInsertedAtTop.splice(idx, 1);
- }
- }
- function createStyleElement (options) {
- var style = document.createElement("style");
- if(options.attrs.type === undefined) {
- options.attrs.type = "text/css";
- }
- if(options.attrs.nonce === undefined) {
- var nonce = getNonce();
- if (nonce) {
- options.attrs.nonce = nonce;
- }
- }
- addAttrs(style, options.attrs);
- insertStyleElement(options, style);
- return style;
- }
- function createLinkElement (options) {
- var link = document.createElement("link");
- if(options.attrs.type === undefined) {
- options.attrs.type = "text/css";
- }
- options.attrs.rel = "stylesheet";
- addAttrs(link, options.attrs);
- insertStyleElement(options, link);
- return link;
- }
- function addAttrs (el, attrs) {
- Object.keys(attrs).forEach(function (key) {
- el.setAttribute(key, attrs[key]);
- });
- }
- function getNonce() {
- if (false) {}
- return __webpack_require__.nc;
- }
- function addStyle (obj, options) {
- var style, update, remove, result;
- // If a transform function was defined, run it on the css
- if (options.transform && obj.css) {
- result = typeof options.transform === 'function'
- ? options.transform(obj.css)
- : options.transform.default(obj.css);
- if (result) {
- // If transform returns a value, use that instead of the original css.
- // This allows running runtime transformations on the css.
- obj.css = result;
- } else {
- // If the transform function returns a falsy value, don't add this css.
- // This allows conditional loading of css
- return function() {
- // noop
- };
- }
- }
- if (options.singleton) {
- var styleIndex = singletonCounter++;
- style = singleton || (singleton = createStyleElement(options));
- update = applyToSingletonTag.bind(null, style, styleIndex, false);
- remove = applyToSingletonTag.bind(null, style, styleIndex, true);
- } else if (
- obj.sourceMap &&
- typeof URL === "function" &&
- typeof URL.createObjectURL === "function" &&
- typeof URL.revokeObjectURL === "function" &&
- typeof Blob === "function" &&
- typeof btoa === "function"
- ) {
- style = createLinkElement(options);
- update = updateLink.bind(null, style, options);
- remove = function () {
- removeStyleElement(style);
- if(style.href) URL.revokeObjectURL(style.href);
- };
- } else {
- style = createStyleElement(options);
- update = applyToTag.bind(null, style);
- remove = function () {
- removeStyleElement(style);
- };
- }
- update(obj);
- return function updateStyle (newObj) {
- if (newObj) {
- if (
- newObj.css === obj.css &&
- newObj.media === obj.media &&
- newObj.sourceMap === obj.sourceMap
- ) {
- return;
- }
- update(obj = newObj);
- } else {
- remove();
- }
- };
- }
- var replaceText = (function () {
- var textStore = [];
- return function (index, replacement) {
- textStore[index] = replacement;
- return textStore.filter(Boolean).join('\n');
- };
- })();
- function applyToSingletonTag (style, index, remove, obj) {
- var css = remove ? "" : obj.css;
- if (style.styleSheet) {
- style.styleSheet.cssText = replaceText(index, css);
- } else {
- var cssNode = document.createTextNode(css);
- var childNodes = style.childNodes;
- if (childNodes[index]) style.removeChild(childNodes[index]);
- if (childNodes.length) {
- style.insertBefore(cssNode, childNodes[index]);
- } else {
- style.appendChild(cssNode);
- }
- }
- }
- function applyToTag (style, obj) {
- var css = obj.css;
- var media = obj.media;
- if(media) {
- style.setAttribute("media", media)
- }
- if(style.styleSheet) {
- style.styleSheet.cssText = css;
- } else {
- while(style.firstChild) {
- style.removeChild(style.firstChild);
- }
- style.appendChild(document.createTextNode(css));
- }
- }
- function updateLink (link, options, obj) {
- var css = obj.css;
- var sourceMap = obj.sourceMap;
- /*
- If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
- and there is no publicPath defined then lets turn convertToAbsoluteUrls
- on by default. Otherwise default to the convertToAbsoluteUrls option
- directly
- */
- var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
- if (options.convertToAbsoluteUrls || autoFixUrls) {
- css = fixUrls(css);
- }
- if (sourceMap) {
- // http://stackoverflow.com/a/26603875
- css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
- }
- var blob = new Blob([css], { type: "text/css" });
- var oldSrc = link.href;
- link.href = URL.createObjectURL(blob);
- if(oldSrc) URL.revokeObjectURL(oldSrc);
- }
- /***/ }),
- /* 6 */
- /***/ (function(module, exports) {
- /**
- * When source maps are enabled, `style-loader` uses a link element with a data-uri to
- * embed the css on the page. This breaks all relative urls because now they are relative to a
- * bundle instead of the current page.
- *
- * One solution is to only use full urls, but that may be impossible.
- *
- * Instead, this function "fixes" the relative urls to be absolute according to the current page location.
- *
- * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
- *
- */
- module.exports = function (css) {
- // get current location
- var location = typeof window !== "undefined" && window.location;
- if (!location) {
- throw new Error("fixUrls requires window.location");
- }
- // blank or null?
- if (!css || typeof css !== "string") {
- return css;
- }
- var baseUrl = location.protocol + "//" + location.host;
- var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
- // convert each url(...)
- /*
- This regular expression is just a way to recursively match brackets within
- a string.
- /url\s*\( = Match on the word "url" with any whitespace after it and then a parens
- ( = Start a capturing group
- (?: = Start a non-capturing group
- [^)(] = Match anything that isn't a parentheses
- | = OR
- \( = Match a start parentheses
- (?: = Start another non-capturing groups
- [^)(]+ = Match anything that isn't a parentheses
- | = OR
- \( = Match a start parentheses
- [^)(]* = Match anything that isn't a parentheses
- \) = Match a end parentheses
- ) = End Group
- *\) = Match anything and then a close parens
- ) = Close non-capturing group
- * = Match anything
- ) = Close capturing group
- \) = Match a close parens
- /gi = Get all matches, not the first. Be case insensitive.
- */
- var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
- // strip quotes (if they exist)
- var unquotedOrigUrl = origUrl
- .trim()
- .replace(/^"(.*)"$/, function(o, $1){ return $1; })
- .replace(/^'(.*)'$/, function(o, $1){ return $1; });
- // already a full url? no change
- if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(unquotedOrigUrl)) {
- return fullMatch;
- }
- // convert the url to a full url
- var newUrl;
- if (unquotedOrigUrl.indexOf("//") === 0) {
- //TODO: should we add protocol?
- newUrl = unquotedOrigUrl;
- } else if (unquotedOrigUrl.indexOf("/") === 0) {
- // path should be relative to the base url
- newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
- } else {
- // path should be relative to current directory
- newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
- }
- // send back the fixed url(...)
- return "url(" + JSON.stringify(newUrl) + ")";
- });
- // send back the fixed css
- return fixedCss;
- };
- /***/ }),
- /* 7 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- __webpack_require__.r(__webpack_exports__);
- // EXTERNAL MODULE: ./src/libs/sidemenu.scss
- var sidemenu = __webpack_require__(2);
- // EXTERNAL MODULE: external "jQuery"
- var external_jQuery_ = __webpack_require__(0);
- // EXTERNAL MODULE: ./src/libs/sidemenu.html
- var libs_sidemenu = __webpack_require__(1);
- var libs_sidemenu_default = /*#__PURE__*/__webpack_require__.n(libs_sidemenu);
- // CONCATENATED MODULE: ./src/libs/element.js
- /**
- * サイドメニューに追加される要素のクラス
- */
- class SideMenuElement {
- /**
- * オブジェクト生成用のコンストラクタ
- * @param {string} [id] 要素のコンテナに付加されるIDです。
- * @param {string} [title] 要素に表示されるタイトルです。
- * @param {RegExp} [match] 表示されるページを指定するための正規表現です。
- * @param {string} [document] 要素のHTMLです。
- * @param {Function} [afterAppend] 要素が追加された後に実行される処理用の関数です。
- */
- constructor(id, title, match, document, afterAppend) {
- this.id = id;
- this.title = title;
- this.match = match;
- this.document = document;
- this.afterAppend = afterAppend;
- }
- /**
- * URLのページで要素を表示するべきか
- * @param {string} [url] ページのURL
- */
- shouldDisplayed(url) {
- return this.match.test(url);
- }
- /**
- * 要素のHTMLを取得
- */
- GetHTML() {
- return `<div class="menu-wrapper">
- <div class="menu-header">
- <h4 class="sidemenu-txt">${this.title}<span class="glyphicon glyphicon-menu-up" style="float: right"></span></h4>
- </div>
- <div class="menu-box"><div class="menu-content" id="${this.id}">${this.document}</div></div>
- </div>`;
- }
- }
- // CONCATENATED MODULE: ./src/libs/sidemenu.js
- /**
- * サイドメニューのクラス
- */
- class sidemenu_SideMenu {
- constructor() {
- this.Generate();
- }
- /**
- * サイドメニューを生成する
- */
- Generate() {
- external_jQuery_('#main-div').append(libs_sidemenu_default.a);
- resizeSidemenuHeight();
- external_jQuery_('#sidemenu-key').click(function () {
- external_jQuery_('#sidemenu-key').toggleClass('glyphicon-menu-left glyphicon-menu-right');
- external_jQuery_('#menu_wrap').toggleClass('sidemenu-active');
- });
- external_jQuery_(window).resize(resizeSidemenuHeight);
- external_jQuery_('#sidemenu').on('click', '.menu-header', (event) => {
- external_jQuery_(event.target).parents('.menu-wrapper').find('.menu-box').toggleClass('menu-box-collapse');
- external_jQuery_(event.target).find('.glyphicon').toggleClass('glyphicon-menu-down glyphicon-menu-up');
- });
- function resizeSidemenuHeight() {
- external_jQuery_('#sidemenu').height(external_jQuery_(window).height());
- }
- }
- /**
- * サイドメニューに要素を追加する
- * @param {SideMenuElement} [element] 追加する要素
- */
- addElement(element) {
- if (!element.shouldDisplayed(document.location.href)) return;
- const elementHtml = external_jQuery_(element.GetHTML());
- external_jQuery_('#sidemenu').append(elementHtml);
- elementHtml.ready(() => {
- const content = external_jQuery_('.menu-content', elementHtml);
- content.parents('.menu-box').css('height', content.outerHeight(true));
- element.afterAppend();
- });
- }
- }
- // CONCATENATED MODULE: ./src/main.js
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sidemenu", function() { return main_sidemenu; });
- /* concated harmony reexport SideMenuElement */__webpack_require__.d(__webpack_exports__, "SideMenuElement", function() { return SideMenuElement; });
- /**
- * サイドメニューのシングルトン
- */
- const main_sidemenu = new sidemenu_SideMenu();
- /***/ })
- /******/ ]);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址