cloudcmd 19.4.1 → 19.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3019,16 +3019,6 @@ module.exports = function sign(number) {
3019
3019
  };
3020
3020
 
3021
3021
 
3022
- /***/ },
3023
-
3024
- /***/ 4887
3025
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3026
-
3027
- "use strict";
3028
- __webpack_require__.r(__webpack_exports__);
3029
- // extracted by mini-css-extract-plugin
3030
-
3031
-
3032
3022
  /***/ },
3033
3023
 
3034
3024
  /***/ 1597
@@ -5990,555 +5980,96 @@ Philip.prototype._find = function(entries, fn) {
5990
5980
 
5991
5981
  /***/ },
5992
5982
 
5993
- /***/ 6686
5994
- (module) {
5983
+ /***/ 8530
5984
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
5995
5985
 
5996
5986
  "use strict";
5997
-
5998
-
5999
- const isString = (a) => typeof a === 'string';
6000
- const constant = (a) => () => a;
6001
- const {keys} = Object;
6002
-
6003
- module.exports = (template, values, modifiers) => {
6004
- check(template, values);
6005
-
6006
- let result = template;
6007
-
6008
- const names = !modifiers ? keys(values) : template.match(/{{(.*?)}}/g);
6009
-
6010
- for (const key of names) {
6011
- const [parsedKey, value] = parseValue(key, values, modifiers);
6012
- const str = constant(value);
6013
-
6014
- while (result.includes(parsedKey))
6015
- result = result.replace(parsedKey, str);
6016
- }
6017
-
6018
- if (result.includes('{{'))
6019
- result = result.replace(/{{.*?}}/g, '');
6020
-
6021
- return result;
6022
- };
6023
-
6024
- function check(template, values) {
6025
- if (!isString(template))
6026
- throw Error('template should be a string!');
6027
-
6028
- if (typeof values !== 'object')
6029
- throw Error('values should be an object!');
6030
- }
6031
-
6032
- function parseValue(key, values, modifiers) {
6033
- if (!modifiers)
6034
- return [
6035
- `{{ ${key} }}`,
6036
- values[key],
6037
- ];
6038
-
6039
- const preparedKey = key
6040
- .replaceAll('{{', '')
6041
- .replaceAll('}}', '')
6042
- .replaceAll(' ', '');
6043
-
6044
- const value = values[preparedKey] || '';
6045
-
6046
- if (!preparedKey.includes('|'))
6047
- return [key, value];
5987
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5988
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
5989
+ /* harmony export */ });
5990
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (({autoSize, isTitle}) => {
5991
+ const classNames = ['modal-main'];
6048
5992
 
6049
- const [name, modifierName] = preparedKey.split('|');
6050
- const fn = modifiers[modifierName];
6051
- const currentValue = values[name];
5993
+ if (autoSize)
5994
+ classNames.push('modal-autosize');
6052
5995
 
6053
- if (!fn)
6054
- return [key, currentValue];
5996
+ if (isTitle)
5997
+ classNames.push('modal-is-title');
6055
5998
 
6056
- return [key, fn(currentValue)];
6057
- }
5999
+ return classNames.join(' ');
6000
+ });
6058
6001
 
6059
6002
 
6060
6003
  /***/ },
6061
6004
 
6062
- /***/ 6727
6063
- (module, __unused_webpack_exports, __webpack_require__) {
6005
+ /***/ 4801
6006
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6064
6007
 
6065
6008
  "use strict";
6066
-
6067
-
6068
- const rendy = __webpack_require__(6686);
6069
- const TEMPLATE = __webpack_require__(4002);
6070
-
6071
- const isObj = (a) => typeof a === 'object';
6072
- const DATA_MENU = 'data-menu="js-submenu"';
6073
-
6074
- const {entries} = Object;
6075
-
6076
- module.exports = function buildItems(menuData, menuFuncs, options, path = '') {
6077
- let items = '';
6078
-
6079
- if (path)
6080
- path += '.';
6081
-
6082
- for (const [name, data] of entries(menuData)) {
6083
- let nameIcon;
6084
- let subitems = '';
6085
- let className = '';
6086
- let attribute = '';
6087
-
6088
- const pathName = path + name;
6089
-
6090
- if (!isObj(data)) {
6091
- menuFuncs[pathName] = data;
6092
- } else {
6093
- subitems = rendy(TEMPLATE.MAIN, {
6094
- items: buildItems(data, menuFuncs, options, pathName),
6095
- });
6096
-
6097
- className = ' menu-submenu';
6098
- attribute = ` ${DATA_MENU}`;
6099
- }
6100
-
6101
- if (options.icon) {
6102
- nameIcon = name
6103
- .replace(/\(|\)/g, '')
6104
- .replace(/\s/g, '-')
6105
- .toLowerCase();
6106
-
6107
- className += ` icon icon-${nameIcon}`;
6108
- }
6109
-
6110
- items += rendy(TEMPLATE.ITEM, {
6111
- name,
6112
- subitems,
6113
- className,
6114
- attribute,
6115
- path: pathName,
6116
- });
6117
- }
6118
-
6119
- return items;
6120
- };
6009
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6010
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
6011
+ /* harmony export */ });
6012
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((a) => document.querySelector(`[data-name="modal-${a}"]`));
6121
6013
 
6122
6014
 
6123
6015
  /***/ },
6124
6016
 
6125
- /***/ 8812
6126
- (module) {
6017
+ /***/ 4478
6018
+ (__unused_webpack___webpack_module__, __unused_webpack___webpack_exports__, __webpack_require__) {
6127
6019
 
6128
6020
  "use strict";
6129
6021
 
6022
+ // UNUSED EXPORTS: default
6130
6023
 
6131
- module.exports = class ElementFuncsProto {
6132
- getItem(element) {
6133
- if (this.isName(element))
6134
- return element.parentElement;
6135
-
6136
- return element;
6137
- }
6138
-
6139
- getName(element) {
6140
- if (!element)
6141
- return null;
6142
-
6143
- if (this.isName(element))
6144
- return element;
6145
-
6146
- return element.querySelector('[data-menu-path]');
6147
- }
6148
-
6149
- isName(element) {
6150
- if (!element)
6151
- return false;
6152
-
6153
- return element.hasAttribute('data-menu-path');
6154
- }
6155
-
6156
- isItem(element) {
6157
- return this.checkElementsName(element, 'js-menu-item');
6158
- }
6159
-
6160
- isMenu(element) {
6161
- return this.checkElementsName(element, 'js-menu');
6162
- }
6163
-
6164
- checkElementsName(element, nameElement, attribute) {
6165
- if (!attribute)
6166
- attribute = 'data-name';
6167
-
6168
- if (element) {
6169
- const name = element.getAttribute(attribute);
6170
-
6171
- if (name === nameElement)
6172
- return true;
6173
- }
6174
-
6175
- return false;
6176
- }
6177
-
6178
- isSubMenu(element) {
6179
- const attribute = 'data-menu';
6180
- const value = 'js-submenu';
6181
- const item = this.getItem(element);
6182
-
6183
- return this.checkElementsName(item, value, attribute);
6184
- }
6185
- };
6186
-
6187
-
6188
- /***/ },
6189
-
6190
- /***/ 3850
6191
- (module, __unused_webpack_exports, __webpack_require__) {
6192
-
6193
- "use strict";
6194
-
6024
+ // NAMESPACE OBJECT: ./client/listeners/index.js
6025
+ var listeners_namespaceObject = {};
6026
+ __webpack_require__.r(listeners_namespaceObject);
6027
+ __webpack_require__.d(listeners_namespaceObject, {
6028
+ init: () => (init),
6029
+ initKeysPanel: () => (initKeysPanel),
6030
+ setOnPanel: () => (setOnPanel)
6031
+ });
6195
6032
 
6196
- __webpack_require__(4887);
6033
+ // EXTERNAL MODULE: ./node_modules/process/browser.js
6034
+ var browser = __webpack_require__(5606);
6035
+ // EXTERNAL MODULE: ./node_modules/wraptile/lib/wraptile.js
6036
+ var wraptile = __webpack_require__(9317);
6037
+ // EXTERNAL MODULE: ./node_modules/load.js/lib/load.js
6038
+ var load = __webpack_require__(1256);
6039
+ // EXTERNAL MODULE: ./common/util.js
6040
+ var util = __webpack_require__(4873);
6041
+ // EXTERNAL MODULE: ./common/cloudfunc.js
6042
+ var cloudfunc = __webpack_require__(2518);
6043
+ // EXTERNAL MODULE: ./client/dom/index.js + 6 modules
6044
+ var dom = __webpack_require__(1502);
6045
+ // EXTERNAL MODULE: ./node_modules/try-to-catch/lib/try-to-catch.js
6046
+ var try_to_catch = __webpack_require__(980);
6047
+ ;// ./client/sw/register.js
6197
6048
 
6198
- const createElement = __webpack_require__(407);
6199
- const buildItems = __webpack_require__(6727);
6200
- const ElementFuncsProto = __webpack_require__(8812);
6201
- const isFn = (a) => typeof a === 'function';
6202
- const isNumber = (a) => typeof a === 'number';
6203
- const exec = (f, ...a) => isFn(f) && f(...a);
6204
-
6205
- module.exports = Supermenu;
6206
-
6207
- function Supermenu(element, options, menuData) {
6208
- if (!(this instanceof Supermenu))
6209
- return new Supermenu(element, options, menuData);
6210
-
6211
- const ElementFuncs = new ElementFuncsProto();
6212
-
6213
- let Options = {};
6214
- let Element;
6215
- let ElementHeight;
6216
- let ElementWidth;
6217
- let ElementEvent;
6218
-
6219
- if (menuData) {
6220
- Element = ElementEvent = element;
6221
- Options = options;
6222
- } else if (options) {
6223
- Element = ElementEvent = element;
6224
- menuData = options;
6225
- } else {
6226
- Element = document.body;
6227
- ElementEvent = window;
6228
- menuData = element;
6229
- }
6230
-
6231
- const MenuFuncs = {};
6232
- const ElementMenu = createMenu(menuData);
6233
-
6234
- ElementEvent.addEventListener('click', onClick);
6235
-
6236
- function createMenu(menuData) {
6237
- const items = buildItems(menuData, MenuFuncs, Options);
6238
-
6239
- const menu = createElement('ul', {
6240
- dataName: 'js-menu',
6241
- className: 'menu menu-hidden',
6242
- innerHTML: items,
6243
- parent: Element,
6244
- uniq: false,
6245
- });
6246
-
6247
- return menu;
6248
- }
6249
-
6250
- this.show = showMenuElement;
6251
- this.hide = hideMenuElement;
6252
-
6253
- this.addContextMenuListener = () => {
6254
- ElementEvent.addEventListener('contextmenu', onContextMenu);
6255
- };
6256
-
6257
- this.removeContextMenuListener = () => {
6258
- ElementEvent.addEventListener('contextmenu', onContextMenu);
6259
- };
6260
-
6261
- this.remove = removeElement;
6262
-
6263
- function removeElement() {
6264
- ElementEvent.removeEventListener('click', onClick);
6265
- ElementEvent.removeEventListener('contextmenu', onContextMenu);
6266
-
6267
- Element.removeChild(ElementMenu);
6268
- }
6269
-
6270
- function checkElement(target, position) {
6271
- let element = ElementFuncs.getItem(target);
6272
- let isName = ElementFuncs.isName(element);
6273
- let isItem = ElementFuncs.isItem(element);
6274
- let isSub = ElementFuncs.isSubMenu(element);
6275
-
6276
- if (!isName || !isItem) {
6277
- element = document.elementFromPoint(position.x, position.y);
6278
- isSub = ElementFuncs.isSubMenu(element);
6279
- isName = ElementFuncs.isName(element);
6280
- isItem = ElementFuncs.isItem(element);
6281
- }
6282
-
6283
- return {
6284
- name: isName,
6285
- item: isItem,
6286
- sub: isSub,
6287
- };
6288
- }
6289
-
6290
- function onClick(event, checkResult) {
6291
- event.stopPropagation();
6292
-
6293
- const {
6294
- afterClick,
6295
- beforeClick,
6296
- beforeHide,
6297
- afterHide,
6298
- name,
6299
- } = Options;
6300
-
6301
- const element = event.target;
6302
-
6303
- const is = checkResult || checkElement(element, {
6304
- x: event.clientX,
6305
- y: event.clientY,
6306
- });
6307
-
6308
- const notClick = exec(beforeClick, name);
6309
-
6310
- if (is.sub)
6311
- return event.preventDefault();
6312
-
6313
- exec(beforeHide);
6314
- hideMenuElement();
6315
- exec(afterHide);
6316
-
6317
- if (!notClick && (is.name || is.item)) {
6318
- const itemData = getMenuItemData(element);
6319
-
6320
- exec(itemData);
6321
- exec(afterClick);
6322
- }
6323
- }
6324
-
6325
- function onContextMenu(event) {
6326
- event.preventDefault();
6327
-
6328
- const element = event.target;
6329
- const x = event.clientX;
6330
- const y = event.clientY;
6331
-
6332
- const is = checkElement(element, {
6333
- x,
6334
- y,
6335
- });
6336
-
6337
- if (is.name || is.item || is.sub)
6338
- return onClick(event, is);
6339
-
6340
- hideMenuElement();
6341
- showMenuElement(x, y);
6342
- }
6343
-
6344
- function setMenuPosition(x, y) {
6345
- const isNumberX = isNumber(x);
6346
- const isNumberY = isNumber(y);
6347
- const heightMenu = getMenuHeight();
6348
- const widthMenu = getMenuWidth();
6349
- const heightInner = window.innerHeight;
6350
- const widthInner = window.innerWidth;
6351
-
6352
- if (widthInner < widthMenu + x) {
6353
- x -= widthMenu;
6354
-
6355
- if (x < 0)
6356
- x = 0;
6357
- }
6358
-
6359
- if (heightInner < heightMenu + y) {
6360
- y -= heightMenu;
6361
-
6362
- if (y < 0)
6363
- y = 0;
6364
- }
6365
-
6366
- if (isNumberX)
6367
- ElementMenu.style.left = `${x}px`;
6368
-
6369
- if (isNumberY)
6370
- ElementMenu.style.top = y - 14 + 'px';
6371
- }
6372
-
6373
- function showMenuElement(x, y) {
6374
- const {
6375
- name,
6376
- beforeShow,
6377
- afterShow,
6378
- } = Options;
6379
-
6380
- const params = {
6381
- x,
6382
- y,
6383
- name,
6384
- };
6385
-
6386
- const isShow = exec(beforeShow, params);
6387
-
6388
- if (isShow || isShow !== false) {
6389
- ElementMenu.classList.remove('menu-hidden');
6390
- setMenuPosition(params.x, params.y);
6391
- exec(afterShow, params);
6392
- }
6393
- }
6394
-
6395
- function hideMenuElement() {
6396
- const notHide = exec(Options.beforeClose);
6397
-
6398
- if (!notHide)
6399
- ElementMenu.classList.add('menu-hidden');
6400
- }
6401
-
6402
- function getMenuItemData(element) {
6403
- const nameElement = ElementFuncs.getName(element);
6404
-
6405
- if (!nameElement)
6406
- return null;
6407
-
6408
- const path = nameElement.getAttribute('data-menu-path');
6409
-
6410
- return MenuFuncs[path];
6411
- }
6412
-
6413
- function getMenuHeight() {
6414
- if (!ElementHeight) {
6415
- const {height} = getComputedStyle(ElementMenu);
6416
-
6417
- ElementHeight = parseInt(height, 10);
6418
- }
6419
-
6420
- return ElementHeight;
6421
- }
6422
-
6423
- function getMenuWidth() {
6424
- if (!ElementWidth) {
6425
- const {width} = getComputedStyle(ElementMenu);
6426
-
6427
- ElementWidth = parseInt(width, 10);
6428
- }
6429
-
6430
- return ElementWidth;
6431
- }
6432
- }
6433
-
6434
-
6435
- /***/ },
6436
-
6437
- /***/ 4002
6438
- (module) {
6439
-
6440
- "use strict";
6441
-
6442
-
6443
- module.exports.MAIN = '<ul data-name="js-menu" class="menu menu-hidden">{{ items }}</ul>';
6444
- module.exports.ITEM = '<li data-name="js-menu-item" class="menu-item{{ className }}"{{ attribute }}>' +
6445
- '<label data-menu-path="{{ path }}">{{ name }}</label>' +
6446
- '{{ subitems }}' +
6447
- '</li>';
6448
-
6449
-
6450
- /***/ },
6451
-
6452
- /***/ 8530
6453
- (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6454
-
6455
- "use strict";
6456
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6457
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
6458
- /* harmony export */ });
6459
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (({autoSize, isTitle}) => {
6460
- const classNames = ['modal-main'];
6461
-
6462
- if (autoSize)
6463
- classNames.push('modal-autosize');
6464
-
6465
- if (isTitle)
6466
- classNames.push('modal-is-title');
6467
-
6468
- return classNames.join(' ');
6469
- });
6470
-
6471
-
6472
- /***/ },
6473
-
6474
- /***/ 4801
6475
- (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
6476
-
6477
- "use strict";
6478
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6479
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
6480
- /* harmony export */ });
6481
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((a) => document.querySelector(`[data-name="modal-${a}"]`));
6482
-
6483
-
6484
- /***/ },
6485
-
6486
- /***/ 4478
6487
- (__unused_webpack___webpack_module__, __unused_webpack___webpack_exports__, __webpack_require__) {
6488
-
6489
- "use strict";
6490
-
6491
- // UNUSED EXPORTS: default
6492
-
6493
- // NAMESPACE OBJECT: ./client/listeners/index.js
6494
- var listeners_namespaceObject = {};
6495
- __webpack_require__.r(listeners_namespaceObject);
6496
- __webpack_require__.d(listeners_namespaceObject, {
6497
- init: () => (init),
6498
- initKeysPanel: () => (initKeysPanel),
6499
- setOnPanel: () => (setOnPanel)
6500
- });
6501
-
6502
- // EXTERNAL MODULE: ./node_modules/process/browser.js
6503
- var browser = __webpack_require__(5606);
6504
- // EXTERNAL MODULE: ./node_modules/wraptile/lib/wraptile.js
6505
- var wraptile = __webpack_require__(9317);
6506
- // EXTERNAL MODULE: ./node_modules/load.js/lib/load.js
6507
- var load = __webpack_require__(1256);
6508
- // EXTERNAL MODULE: ./common/util.js
6509
- var util = __webpack_require__(4873);
6510
- // EXTERNAL MODULE: ./common/cloudfunc.js
6511
- var cloudfunc = __webpack_require__(2518);
6512
- // EXTERNAL MODULE: ./client/dom/index.js + 6 modules
6513
- var dom = __webpack_require__(1502);
6514
- // EXTERNAL MODULE: ./node_modules/try-to-catch/lib/try-to-catch.js
6515
- var try_to_catch = __webpack_require__(980);
6516
- ;// ./client/sw/register.js
6517
-
6518
- const listenSW = (sw, ...args) => {
6519
- sw === null || sw === void 0 || sw.addEventListener(...args);
6520
- };
6521
- async function registerSW(prefix) {
6522
- if (!navigator.serviceWorker) return;
6523
- const isHTTPS = location.protocol === 'https:';
6524
- const isLocalhost = location.hostname === 'localhost';
6525
- if (!isHTTPS && !isLocalhost) return;
6526
- const {
6527
- serviceWorker
6528
- } = navigator;
6529
- const register = serviceWorker.register.bind(serviceWorker);
6530
- const [e, sw] = await (0,try_to_catch/* tryToCatch */.Y)(register, `${prefix}/sw.js`);
6531
- if (e) return null;
6532
- return sw;
6533
- }
6534
- async function unregisterSW(prefix) {
6535
- const reg = await registerSW(prefix);
6536
- reg === null || reg === void 0 || reg.unregister(prefix);
6537
- }
6538
- // EXTERNAL MODULE: ./node_modules/fullstore/lib/fullstore.js
6539
- var fullstore = __webpack_require__(8328);
6540
- ;// ./client/sort.js
6541
- /* global CloudCmd */
6049
+ const listenSW = (sw, ...args) => {
6050
+ sw === null || sw === void 0 || sw.addEventListener(...args);
6051
+ };
6052
+ async function registerSW(prefix) {
6053
+ if (!navigator.serviceWorker) return;
6054
+ const isHTTPS = location.protocol === 'https:';
6055
+ const isLocalhost = location.hostname === 'localhost';
6056
+ if (!isHTTPS && !isLocalhost) return;
6057
+ const {
6058
+ serviceWorker
6059
+ } = navigator;
6060
+ const register = serviceWorker.register.bind(serviceWorker);
6061
+ const [e, sw] = await (0,try_to_catch/* tryToCatch */.Y)(register, `${prefix}/sw.js`);
6062
+ if (e) return null;
6063
+ return sw;
6064
+ }
6065
+ async function unregisterSW(prefix) {
6066
+ const reg = await registerSW(prefix);
6067
+ reg === null || reg === void 0 || reg.unregister(prefix);
6068
+ }
6069
+ // EXTERNAL MODULE: ./node_modules/fullstore/lib/fullstore.js
6070
+ var fullstore = __webpack_require__(8328);
6071
+ ;// ./client/sort.js
6072
+ /* global CloudCmd */
6542
6073
 
6543
6074
 
6544
6075
  const sortPrevious = (0,fullstore/* fullstore */.p)();
@@ -6573,7 +6104,7 @@ var emitify = __webpack_require__(7411);
6573
6104
  // EXTERNAL MODULE: ./node_modules/inherits/inherits_browser.js
6574
6105
  var inherits_browser = __webpack_require__(6698);
6575
6106
  // EXTERNAL MODULE: ./node_modules/rendy/lib/rendy.js
6576
- var rendy = __webpack_require__(6686);
6107
+ var rendy = __webpack_require__(4492);
6577
6108
  // EXTERNAL MODULE: ./node_modules/format-io/lib/format.js
6578
6109
  var format = __webpack_require__(1730);
6579
6110
  // EXTERNAL MODULE: ./node_modules/just-pascal-case/index.mjs
@@ -7665,7 +7196,7 @@ function CloudCmdProto({
7665
7196
  const position = DOM.getPanelPosition(panel);
7666
7197
  const sort = CloudCmd.sort[position];
7667
7198
  const order = CloudCmd.order[position];
7668
- const query = rendy('?sort={{ sort }}&order={{ order }}', {
7199
+ const query = (0,rendy/* rendy */.n)('?sort={{ sort }}&order={{ order }}', {
7669
7200
  sort,
7670
7201
  order
7671
7202
  });
@@ -9737,7 +9268,7 @@ var buffer = __webpack_require__(2710);
9737
9268
  // EXTERNAL MODULE: ./node_modules/util/util.js
9738
9269
  var util_util = __webpack_require__(537);
9739
9270
  // EXTERNAL MODULE: ./node_modules/rendy/lib/rendy.js
9740
- var rendy = __webpack_require__(6686);
9271
+ var rendy = __webpack_require__(4492);
9741
9272
  // EXTERNAL MODULE: ./node_modules/itype/lib/itype.js
9742
9273
  var itype = __webpack_require__(2515);
9743
9274
  // EXTERNAL MODULE: ./node_modules/load.js/lib/load.js
@@ -9780,7 +9311,7 @@ const loadRemote = (0,util_util.callbackify)(async (name, options) => {
9780
9311
  }
9781
9312
  const localURL = local.map(url => prefix + url);
9782
9313
  const remoteURL = remoteTmpls.map(tmpl => {
9783
- return rendy(tmpl, {
9314
+ return (0,rendy/* rendy */.n)(tmpl, {
9784
9315
  version
9785
9316
  });
9786
9317
  });
@@ -11236,7 +10767,7 @@ function hide() {}
11236
10767
  // UNUSED EXPORTS: hide, init, show
11237
10768
 
11238
10769
  // EXTERNAL MODULE: ./node_modules/rendy/lib/rendy.js
11239
- var rendy = __webpack_require__(6686);
10770
+ var rendy = __webpack_require__(4492);
11240
10771
  // EXTERNAL MODULE: ./node_modules/currify/lib/currify.js
11241
10772
  var currify = __webpack_require__(4299);
11242
10773
  // EXTERNAL MODULE: ./node_modules/wraptile/lib/wraptile.js
@@ -11425,7 +10956,7 @@ async function fillTemplate() {
11425
10956
  obj[`${columns}-selected`] = 'selected';
11426
10957
  obj[`${theme}-selected`] = 'selected';
11427
10958
  obj.configAuth = configAuth ? '' : 'hidden';
11428
- const innerHTML = rendy(Template, obj);
10959
+ const innerHTML = (0,rendy/* rendy */.n)(Template, obj);
11429
10960
  Element = create_element('form', {
11430
10961
  className: 'config',
11431
10962
  innerHTML
@@ -11607,7 +11138,7 @@ function listener(event) {
11607
11138
  /* harmony import */ var format_io__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1730);
11608
11139
  /* harmony import */ var fullstore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8328);
11609
11140
  /* harmony import */ var execon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9168);
11610
- /* harmony import */ var supermenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3850);
11141
+ /* harmony import */ var supermenu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6416);
11611
11142
  /* global CloudCmd, DOM*/
11612
11143
 
11613
11144
 
@@ -11708,7 +11239,7 @@ function setMenu(event) {
11708
11239
  }
11709
11240
  };
11710
11241
  const element = CloudCmd.Edit.getElement();
11711
- Menu = supermenu__WEBPACK_IMPORTED_MODULE_3__(element, options, getMenuData());
11242
+ Menu = (0,supermenu__WEBPACK_IMPORTED_MODULE_3__/* .supermenu */ .n)(element, options, getMenuData());
11712
11243
  Menu.addContextMenuListener();
11713
11244
  Menu.show(position.x, position.y);
11714
11245
  }
@@ -11813,7 +11344,7 @@ var try_to_catch = __webpack_require__(980);
11813
11344
  // EXTERNAL MODULE: ./node_modules/execon/lib/exec.js
11814
11345
  var exec = __webpack_require__(9168);
11815
11346
  // EXTERNAL MODULE: ./node_modules/supermenu/lib/supermenu.js
11816
- var supermenu = __webpack_require__(3850);
11347
+ var supermenu = __webpack_require__(6416);
11817
11348
  // EXTERNAL MODULE: ./node_modules/shortdate/lib/shortdate.js
11818
11349
  var lib_shortdate = __webpack_require__(975);
11819
11350
  ;// ./node_modules/multi-rename/lib/multi-rename.js
@@ -12017,7 +11548,7 @@ function setMenu(event) {
12017
11548
  'Close Esc': hide
12018
11549
  };
12019
11550
  const element = CloudCmd.Edit.getElement();
12020
- Menu = supermenu(element, options, menuData);
11551
+ Menu = (0,supermenu/* supermenu */.n)(element, options, menuData);
12021
11552
  Menu.addContextMenuListener();
12022
11553
  Menu.show(position.x, position.y);
12023
11554
  }
@@ -12351,7 +11882,7 @@ async function show(name, options = {}) {
12351
11882
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12352
11883
  /* harmony export */ createCloudMenu: () => (/* binding */ createCloudMenu)
12353
11884
  /* harmony export */ });
12354
- /* harmony import */ var supermenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3850);
11885
+ /* harmony import */ var supermenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6416);
12355
11886
 
12356
11887
  const noop = () => {};
12357
11888
  const {
@@ -12382,7 +11913,7 @@ async function loadMenu() {
12382
11913
  }
12383
11914
  function createSupermenu(name, options, menuData) {
12384
11915
  const element = document.querySelector('[data-name="js-fm"]');
12385
- return supermenu__WEBPACK_IMPORTED_MODULE_0__(element, options, menuData);
11916
+ return (0,supermenu__WEBPACK_IMPORTED_MODULE_0__/* .supermenu */ .n)(element, options, menuData);
12386
11917
  }
12387
11918
 
12388
11919
  /***/ },
@@ -13860,7 +13391,7 @@ __webpack_require__.d(modal_namespaceObject, {
13860
13391
  });
13861
13392
 
13862
13393
  // EXTERNAL MODULE: ./node_modules/rendy/lib/rendy.js
13863
- var rendy = __webpack_require__(6686);
13394
+ var rendy = __webpack_require__(4492);
13864
13395
  // EXTERNAL MODULE: ./node_modules/currify/lib/currify.js
13865
13396
  var currify = __webpack_require__(4299);
13866
13397
  // EXTERNAL MODULE: ./node_modules/wraptile/lib/wraptile.js
@@ -14440,7 +13971,7 @@ async function getMediaElement(src) {
14440
13971
  if (!TemplateAudio) TemplateAudio = template;
14441
13972
  const is = isAudio(name);
14442
13973
  const type = is ? 'audio' : 'video';
14443
- const innerHTML = rendy(TemplateAudio, {
13974
+ const innerHTML = (0,rendy/* rendy */.n)(TemplateAudio, {
14444
13975
  src,
14445
13976
  type,
14446
13977
  name
@@ -14509,7 +14040,9 @@ __webpack_require__.r(__webpack_exports__);
14509
14040
  /* harmony export */ getPathLink: () => (/* binding */ getPathLink),
14510
14041
  /* harmony export */ getTitle: () => (/* binding */ getTitle)
14511
14042
  /* harmony export */ });
14512
- /* harmony import */ var rendy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6686);
14043
+ if (858 == __webpack_require__.j) {
14044
+ /* harmony import */ var rendy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4492);
14045
+ }
14513
14046
  /* harmony import */ var currify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4299);
14514
14047
  /* harmony import */ var fullstore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8328);
14515
14048
  /* harmony import */ var _common_entity__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(634);
@@ -14577,7 +14110,7 @@ function getPathLink(url, prefix, template) {
14577
14110
  continue;
14578
14111
  }
14579
14112
  const slash = i ? '/' : '';
14580
- lines.push(rendy__WEBPACK_IMPORTED_MODULE_0__(template, {
14113
+ lines.push((0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(template, {
14581
14114
  path,
14582
14115
  name,
14583
14116
  slash,
@@ -14617,7 +14150,7 @@ const buildFromJSON = params => {
14617
14150
  * со всеми подкаталогами
14618
14151
  */
14619
14152
  const htmlPath = getPathLink(path, prefix, template.pathLink);
14620
- let fileTable = rendy__WEBPACK_IMPORTED_MODULE_0__(template.path, {
14153
+ let fileTable = (0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(template.path, {
14621
14154
  link: prefix + FS + path,
14622
14155
  fullPath: path,
14623
14156
  path: htmlPath
@@ -14628,7 +14161,7 @@ const buildFromJSON = params => {
14628
14161
  const name = getFieldName('name');
14629
14162
  const size = getFieldName('size');
14630
14163
  const date = getFieldName('date');
14631
- const header = rendy__WEBPACK_IMPORTED_MODULE_0__(templateFile, {
14164
+ const header = (0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(templateFile, {
14632
14165
  tag: 'div',
14633
14166
  attribute: 'data-name="js-fm-header" ',
14634
14167
  className: 'fm-header',
@@ -14648,7 +14181,7 @@ const buildFromJSON = params => {
14648
14181
  if (path !== '/') {
14649
14182
  const dotDot = getDotDot(path);
14650
14183
  const link = prefix + FS + dotDot;
14651
- const linkResult = rendy__WEBPACK_IMPORTED_MODULE_0__(template.link, {
14184
+ const linkResult = (0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(template.link, {
14652
14185
  link,
14653
14186
  title: '..',
14654
14187
  name: '..'
@@ -14657,7 +14190,7 @@ const buildFromJSON = params => {
14657
14190
  const attribute = `draggable="true" ${dataName}`;
14658
14191
 
14659
14192
  /* Сохраняем путь к каталогу верхнего уровня*/
14660
- fileTable += rendy__WEBPACK_IMPORTED_MODULE_0__(template.file, {
14193
+ fileTable += (0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(template.file, {
14661
14194
  tag: 'li',
14662
14195
  attribute,
14663
14196
  className: '',
@@ -14681,7 +14214,7 @@ const buildFromJSON = params => {
14681
14214
  owner,
14682
14215
  size
14683
14216
  } = file;
14684
- const linkResult = rendy__WEBPACK_IMPORTED_MODULE_0__(templateLink, {
14217
+ const linkResult = (0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(templateLink, {
14685
14218
  link,
14686
14219
  title: name,
14687
14220
  name,
@@ -14689,7 +14222,7 @@ const buildFromJSON = params => {
14689
14222
  });
14690
14223
  const dataName = _getDataName(file.name);
14691
14224
  const attribute = `draggable="true" ${dataName}`;
14692
- return rendy__WEBPACK_IMPORTED_MODULE_0__(templateFile, {
14225
+ return (0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(templateFile, {
14693
14226
  tag: 'li',
14694
14227
  attribute,
14695
14228
  className: '',
@@ -14750,7 +14283,9 @@ function getDotDot(path) {
14750
14283
  const Entities = {
14751
14284
  '&lt;': '<',
14752
14285
  '&gt;': '>',
14753
- '&quot;': '"'
14286
+ '&quot;': '"',
14287
+ '&lcub;': '{',
14288
+ '&rcub;': '}'
14754
14289
  };
14755
14290
  const keys = Object.keys(Entities);
14756
14291
  const encode = str => {
@@ -14947,44 +14482,520 @@ function capitalize(str) {
14947
14482
 
14948
14483
  /***/ },
14949
14484
 
14950
- /***/ 3955
14485
+ /***/ 3955
14486
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14487
+
14488
+ "use strict";
14489
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14490
+ /* harmony export */ A: () => (/* binding */ stringPascalCase)
14491
+ /* harmony export */ });
14492
+ var stringPascalCase = (/* runtime-dependent pure expression or super */ 858 == __webpack_require__.j ? (pascalCase) : null);
14493
+
14494
+ /*
14495
+ pascalCase('the quick brown fox'); // 'TheQuickBrownFox'
14496
+ pascalCase('the_quick_brown_fox'); // 'TheQuickBrownFox'
14497
+ pascalCase('the-quick-brown-fox'); // 'TheQuickBrownFox'
14498
+ pascalCase('theQuickBrownFox'); // 'TheQuickBrownFox'
14499
+ pascalCase('thequickbrownfox'); // 'Thequickbrownfox'
14500
+ pascalCase('the - quick * brown# fox'); // 'TheQuickBrownFox'
14501
+ pascalCase('theQUICKBrownFox'); // 'TheQUICKBrownFox'
14502
+ */
14503
+
14504
+ // any combination of spaces and punctuation characters
14505
+ // thanks to http://stackoverflow.com/a/25575009
14506
+ var wordSeparators = /[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/;
14507
+
14508
+ function pascalCase(str) {
14509
+ var words = str.split(wordSeparators);
14510
+ var len = words.length;
14511
+ var mappedWords = new Array(len);
14512
+ for (var i = 0; i < len; i++) {
14513
+ var word = words[i];
14514
+ if (word === '') {
14515
+ continue;
14516
+ }
14517
+ mappedWords[i] = word[0].toUpperCase() + word.slice(1);
14518
+ }
14519
+ return mappedWords.join('');
14520
+ }
14521
+
14522
+
14523
+
14524
+
14525
+ /***/ },
14526
+
14527
+ /***/ 4492
14528
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14529
+
14530
+ "use strict";
14531
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14532
+ /* harmony export */ n: () => (/* binding */ rendy)
14533
+ /* harmony export */ });
14534
+ const isString = (a) => typeof a === 'string';
14535
+ const constant = (a) => () => a;
14536
+ const {keys} = Object;
14537
+
14538
+ const rendy = (template, values, modifiers) => {
14539
+ check(template, values);
14540
+
14541
+ let result = template;
14542
+ const names = !modifiers ? keys(values) : template.match(/{{(.*?)}}/g);
14543
+
14544
+ for (const key of names) {
14545
+ const [parsedKey, value] = parseValue(key, values, modifiers);
14546
+ const str = constant(value);
14547
+
14548
+ while (result.includes(parsedKey))
14549
+ result = result.replace(parsedKey, str);
14550
+ }
14551
+
14552
+ if (result.includes('{{'))
14553
+ result = result.replace(/{{.*?}}/g, '');
14554
+
14555
+ return result;
14556
+ };
14557
+
14558
+ function check(template, values) {
14559
+ if (!isString(template))
14560
+ throw Error('template should be a string!');
14561
+
14562
+ if (typeof values !== 'object')
14563
+ throw Error('values should be an object!');
14564
+ }
14565
+
14566
+ function parseValue(key, values, modifiers) {
14567
+ if (!modifiers)
14568
+ return [
14569
+ `{{ ${key} }}`,
14570
+ values[key],
14571
+ ];
14572
+
14573
+ const preparedKey = key
14574
+ .replaceAll('{{', '')
14575
+ .replaceAll('}}', '')
14576
+ .replaceAll(' ', '');
14577
+
14578
+ const value = values[preparedKey] || '';
14579
+
14580
+ if (!preparedKey.includes('|'))
14581
+ return [key, value];
14582
+
14583
+ const [name, modifierName] = preparedKey.split('|');
14584
+ const fn = modifiers[modifierName];
14585
+ const currentValue = values[name];
14586
+
14587
+ if (!fn)
14588
+ return [key, currentValue];
14589
+
14590
+ return [key, fn(currentValue)];
14591
+ }
14592
+
14593
+
14594
+ /***/ },
14595
+
14596
+ /***/ 6921
14597
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14598
+
14599
+ "use strict";
14600
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14601
+ /* harmony export */ A: () => (/* binding */ buildItems)
14602
+ /* harmony export */ });
14603
+ if (/^(415|589|611)$/.test(__webpack_require__.j)) {
14604
+ /* harmony import */ var rendy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4492);
14605
+ }
14606
+ if (/^(415|589|611)$/.test(__webpack_require__.j)) {
14607
+ /* harmony import */ var _template_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6424);
14608
+ }
14609
+
14610
+
14611
+
14612
+ const isObj = (a) => typeof a === 'object';
14613
+ const DATA_MENU = 'data-menu="js-submenu"';
14614
+
14615
+ const {entries} = Object;
14616
+
14617
+ function buildItems(menuData, menuFuncs, options, path = '') {
14618
+ let items = '';
14619
+
14620
+ if (path)
14621
+ path += '.';
14622
+
14623
+ for (const [name, data] of entries(menuData)) {
14624
+ let nameIcon;
14625
+ let subitems = '';
14626
+ let className = '';
14627
+ let attribute = '';
14628
+
14629
+ const pathName = path + name;
14630
+
14631
+ if (!isObj(data)) {
14632
+ menuFuncs[pathName] = data;
14633
+ } else {
14634
+ subitems = (0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(_template_js__WEBPACK_IMPORTED_MODULE_1__/* .MAIN */ .Q, {
14635
+ items: buildItems(data, menuFuncs, options, pathName),
14636
+ });
14637
+
14638
+ className = ' menu-submenu';
14639
+ attribute = ` ${DATA_MENU}`;
14640
+ }
14641
+
14642
+ if (options.icon) {
14643
+ nameIcon = name
14644
+ .replace(/[()]/g, '')
14645
+ .replace(/\s/g, '-')
14646
+ .toLowerCase();
14647
+
14648
+ className += ` icon icon-${nameIcon}`;
14649
+ }
14650
+
14651
+ items += (0,rendy__WEBPACK_IMPORTED_MODULE_0__/* .rendy */ .n)(_template_js__WEBPACK_IMPORTED_MODULE_1__/* .ITEM */ .U, {
14652
+ name,
14653
+ subitems,
14654
+ className,
14655
+ attribute,
14656
+ path: pathName,
14657
+ });
14658
+ }
14659
+
14660
+ return items;
14661
+ }
14662
+
14663
+
14664
+ /***/ },
14665
+
14666
+ /***/ 2130
14667
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14668
+
14669
+ "use strict";
14670
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14671
+ /* harmony export */ A: () => (/* binding */ ElementFuncsProto)
14672
+ /* harmony export */ });
14673
+ class ElementFuncsProto {
14674
+ getItem(element) {
14675
+ if (this.isName(element))
14676
+ return element.parentElement;
14677
+
14678
+ return element;
14679
+ }
14680
+
14681
+ getName(element) {
14682
+ if (!element)
14683
+ return null;
14684
+
14685
+ if (this.isName(element))
14686
+ return element;
14687
+
14688
+ return element.querySelector('[data-menu-path]');
14689
+ }
14690
+
14691
+ isName(element) {
14692
+ if (!element)
14693
+ return false;
14694
+
14695
+ return element.hasAttribute('data-menu-path');
14696
+ }
14697
+
14698
+ isItem(element) {
14699
+ return this.checkElementsName(element, 'js-menu-item');
14700
+ }
14701
+
14702
+ isMenu(element) {
14703
+ return this.checkElementsName(element, 'js-menu');
14704
+ }
14705
+
14706
+ checkElementsName(element, nameElement, attribute) {
14707
+ if (!attribute)
14708
+ attribute = 'data-name';
14709
+
14710
+ if (element) {
14711
+ const name = element.getAttribute(attribute);
14712
+
14713
+ if (name === nameElement)
14714
+ return true;
14715
+ }
14716
+
14717
+ return false;
14718
+ }
14719
+
14720
+ isSubMenu(element) {
14721
+ const attribute = 'data-menu';
14722
+ const value = 'js-submenu';
14723
+ const item = this.getItem(element);
14724
+
14725
+ return this.checkElementsName(item, value, attribute);
14726
+ }
14727
+ }
14728
+
14729
+
14730
+ /***/ },
14731
+
14732
+ /***/ 6416
14951
14733
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14952
14734
 
14953
14735
  "use strict";
14954
14736
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14955
- /* harmony export */ A: () => (/* binding */ stringPascalCase)
14737
+ /* harmony export */ n: () => (/* binding */ supermenu)
14956
14738
  /* harmony export */ });
14957
- var stringPascalCase = (/* runtime-dependent pure expression or super */ 858 == __webpack_require__.j ? (pascalCase) : null);
14739
+ /* harmony import */ var _cloudcmd_create_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(407);
14740
+ if (/^(415|589|611)$/.test(__webpack_require__.j)) {
14741
+ /* harmony import */ var _build_items_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6921);
14742
+ }
14743
+ if (/^(415|589|611)$/.test(__webpack_require__.j)) {
14744
+ /* harmony import */ var _element_funcs_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2130);
14745
+ }
14958
14746
 
14959
- /*
14960
- pascalCase('the quick brown fox'); // 'TheQuickBrownFox'
14961
- pascalCase('the_quick_brown_fox'); // 'TheQuickBrownFox'
14962
- pascalCase('the-quick-brown-fox'); // 'TheQuickBrownFox'
14963
- pascalCase('theQuickBrownFox'); // 'TheQuickBrownFox'
14964
- pascalCase('thequickbrownfox'); // 'Thequickbrownfox'
14965
- pascalCase('the - quick * brown# fox'); // 'TheQuickBrownFox'
14966
- pascalCase('theQUICKBrownFox'); // 'TheQUICKBrownFox'
14967
- */
14968
14747
 
14969
- // any combination of spaces and punctuation characters
14970
- // thanks to http://stackoverflow.com/a/25575009
14971
- var wordSeparators = /[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/;
14972
14748
 
14973
- function pascalCase(str) {
14974
- var words = str.split(wordSeparators);
14975
- var len = words.length;
14976
- var mappedWords = new Array(len);
14977
- for (var i = 0; i < len; i++) {
14978
- var word = words[i];
14979
- if (word === '') {
14980
- continue;
14749
+
14750
+
14751
+ const isNumber = (a) => typeof a === 'number';
14752
+ const exec = (f, ...a) => f?.(...a);
14753
+
14754
+ function supermenu(element, options, menuData) {
14755
+ if (!(this instanceof supermenu))
14756
+ return new supermenu(element, options, menuData);
14757
+
14758
+ const ElementFuncs = new _element_funcs_js__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A();
14759
+
14760
+ let Options = {};
14761
+ let Element;
14762
+ let ElementHeight;
14763
+ let ElementWidth;
14764
+ let ElementEvent;
14765
+
14766
+ if (menuData) {
14767
+ Element = element;
14768
+ ElementEvent = Element;
14769
+ Options = options;
14770
+ } else if (options) {
14771
+ Element = element;
14772
+ ElementEvent = Element;
14773
+ menuData = options;
14774
+ } else {
14775
+ Element = document.body;
14776
+ ElementEvent = window;
14777
+ menuData = element;
14778
+ }
14779
+
14780
+ const MenuFuncs = {};
14781
+ const ElementMenu = createMenu(menuData);
14782
+
14783
+ ElementEvent.addEventListener('click', onClick);
14784
+
14785
+ function createMenu(menuData) {
14786
+ const items = (0,_build_items_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(menuData, MenuFuncs, Options);
14787
+
14788
+ const menu = _cloudcmd_create_element__WEBPACK_IMPORTED_MODULE_0__('ul', {
14789
+ dataName: 'js-menu',
14790
+ className: 'menu menu-hidden',
14791
+ innerHTML: items,
14792
+ parent: Element,
14793
+ uniq: false,
14794
+ });
14795
+
14796
+ return menu;
14797
+ }
14798
+
14799
+ this.show = showMenuElement;
14800
+ this.hide = hideMenuElement;
14801
+
14802
+ this.addContextMenuListener = () => {
14803
+ ElementEvent.addEventListener('contextmenu', onContextMenu);
14804
+ };
14805
+
14806
+ this.removeContextMenuListener = () => {
14807
+ ElementEvent.addEventListener('contextmenu', onContextMenu);
14808
+ };
14809
+
14810
+ this.remove = removeElement;
14811
+
14812
+ function removeElement() {
14813
+ ElementEvent.removeEventListener('click', onClick);
14814
+ ElementEvent.removeEventListener('contextmenu', onContextMenu);
14815
+
14816
+ Element.removeChild(ElementMenu);
14817
+ }
14818
+
14819
+ function checkElement(target, position) {
14820
+ let element = ElementFuncs.getItem(target);
14821
+ let isName = ElementFuncs.isName(element);
14822
+ let isItem = ElementFuncs.isItem(element);
14823
+ let isSub = ElementFuncs.isSubMenu(element);
14824
+
14825
+ if (!isName || !isItem) {
14826
+ element = document.elementFromPoint(position.x, position.y);
14827
+ isSub = ElementFuncs.isSubMenu(element);
14828
+ isName = ElementFuncs.isName(element);
14829
+ isItem = ElementFuncs.isItem(element);
14830
+ }
14831
+
14832
+ return {
14833
+ name: isName,
14834
+ item: isItem,
14835
+ sub: isSub,
14836
+ };
14837
+ }
14838
+
14839
+ function onClick(event, checkResult) {
14840
+ event.stopPropagation();
14841
+
14842
+ const {
14843
+ afterClick,
14844
+ beforeClick,
14845
+ beforeHide,
14846
+ afterHide,
14847
+ name,
14848
+ } = Options;
14849
+
14850
+ const element = event.target;
14851
+
14852
+ const is = checkResult || checkElement(element, {
14853
+ x: event.clientX,
14854
+ y: event.clientY,
14855
+ });
14856
+
14857
+ const notClick = exec(beforeClick, name);
14858
+
14859
+ if (is.sub)
14860
+ return event.preventDefault();
14861
+
14862
+ exec(beforeHide);
14863
+ hideMenuElement();
14864
+ exec(afterHide);
14865
+
14866
+ if (!notClick && (is.name || is.item)) {
14867
+ const itemData = getMenuItemData(element);
14868
+
14869
+ exec(itemData);
14870
+ exec(afterClick);
14871
+ }
14872
+ }
14873
+
14874
+ function onContextMenu(event) {
14875
+ event.preventDefault();
14876
+
14877
+ const element = event.target;
14878
+ const x = event.clientX;
14879
+ const y = event.clientY;
14880
+
14881
+ const is = checkElement(element, {
14882
+ x,
14883
+ y,
14884
+ });
14885
+
14886
+ if (is.name || is.item || is.sub)
14887
+ return onClick(event, is);
14888
+
14889
+ hideMenuElement();
14890
+ showMenuElement(x, y);
14891
+ }
14892
+
14893
+ function setMenuPosition(x, y) {
14894
+ const isNumberX = isNumber(x);
14895
+ const isNumberY = isNumber(y);
14896
+ const heightMenu = getMenuHeight();
14897
+ const widthMenu = getMenuWidth();
14898
+ const heightInner = globalThis.innerHeight;
14899
+ const widthInner = globalThis.innerWidth;
14900
+
14901
+ if (widthInner < widthMenu + x) {
14902
+ x -= widthMenu;
14903
+
14904
+ if (x < 0)
14905
+ x = 0;
14906
+ }
14907
+
14908
+ if (heightInner < heightMenu + y) {
14909
+ y -= heightMenu;
14910
+
14911
+ if (y < 0)
14912
+ y = 0;
14913
+ }
14914
+
14915
+ if (isNumberX)
14916
+ ElementMenu.style.left = `${x}px`;
14917
+
14918
+ if (isNumberY)
14919
+ ElementMenu.style.top = y - 14 + 'px';
14920
+ }
14921
+
14922
+ function showMenuElement(x, y) {
14923
+ const {
14924
+ name,
14925
+ beforeShow,
14926
+ afterShow,
14927
+ } = Options;
14928
+
14929
+ const params = {
14930
+ x,
14931
+ y,
14932
+ name,
14933
+ };
14934
+
14935
+ const isShow = exec(beforeShow, params);
14936
+
14937
+ if (isShow || isShow !== false) {
14938
+ ElementMenu.classList.remove('menu-hidden');
14939
+ setMenuPosition(params.x, params.y);
14940
+ exec(afterShow, params);
14941
+ }
14942
+ }
14943
+
14944
+ function hideMenuElement() {
14945
+ const notHide = exec(Options.beforeClose);
14946
+
14947
+ if (!notHide)
14948
+ ElementMenu.classList.add('menu-hidden');
14949
+ }
14950
+
14951
+ function getMenuItemData(element) {
14952
+ const nameElement = ElementFuncs.getName(element);
14953
+
14954
+ if (!nameElement)
14955
+ return null;
14956
+
14957
+ const path = nameElement.getAttribute('data-menu-path');
14958
+
14959
+ return MenuFuncs[path];
14960
+ }
14961
+
14962
+ function getMenuHeight() {
14963
+ if (!ElementHeight) {
14964
+ const {height} = getComputedStyle(ElementMenu);
14965
+
14966
+ ElementHeight = parseInt(height, 10);
14967
+ }
14968
+
14969
+ return ElementHeight;
14970
+ }
14971
+
14972
+ function getMenuWidth() {
14973
+ if (!ElementWidth) {
14974
+ const {width} = getComputedStyle(ElementMenu);
14975
+
14976
+ ElementWidth = parseInt(width, 10);
14977
+ }
14978
+
14979
+ return ElementWidth;
14981
14980
  }
14982
- mappedWords[i] = word[0].toUpperCase() + word.slice(1);
14983
- }
14984
- return mappedWords.join('');
14985
14981
  }
14986
14982
 
14987
14983
 
14984
+ /***/ },
14985
+
14986
+ /***/ 6424
14987
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14988
+
14989
+ "use strict";
14990
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
14991
+ /* harmony export */ Q: () => (/* binding */ MAIN),
14992
+ /* harmony export */ U: () => (/* binding */ ITEM)
14993
+ /* harmony export */ });
14994
+ const MAIN = '<ul data-name="js-menu" class="menu menu-hidden">{{ items }}</ul>';
14995
+ const ITEM = (/* runtime-dependent pure expression or super */ /^(415|589|611)$/.test(__webpack_require__.j) ? ('<li data-name="js-menu-item" class="menu-item{{ className }}"{{ attribute }}>' +
14996
+ '<label data-menu-path="{{ path }}">{{ name }}</label>' +
14997
+ '{{ subitems }}' +
14998
+ '</li>') : null);
14988
14999
 
14989
15000
 
14990
15001
  /***/ },