diff --git a/development/issues/open/231.html b/development/issues/closed/231.html similarity index 100% rename from development/issues/open/231.html rename to development/issues/closed/231.html diff --git a/development/issues/open/231.mjs b/development/issues/closed/231.mjs similarity index 100% rename from development/issues/open/231.mjs rename to development/issues/closed/231.mjs diff --git a/development/issues/open/232.html b/development/issues/closed/232.html similarity index 100% rename from development/issues/open/232.html rename to development/issues/closed/232.html diff --git a/development/issues/open/232.mjs b/development/issues/closed/232.mjs similarity index 100% rename from development/issues/open/232.mjs rename to development/issues/closed/232.mjs diff --git a/development/issues/open/233.html b/development/issues/open/233.html new file mode 100644 index 0000000000000000000000000000000000000000..e854dfb918e8483d8f15090d417584cb231fa9b6 --- /dev/null +++ b/development/issues/open/233.html @@ -0,0 +1,127 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>optimize tree-menu #233</title> + <script src="233.mjs" type="module"></script> +</head> +<body> +<h1>optimize tree-menu #233</h1> +<p></p> +<ul> + <li class="monster-theme-primary-1"><a + href="https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/233">Issue #233</a></li> + <li><a href="/">Back to overview</a></li> +</ul> +<main> + + <monster-datasource-rest id="menu-rest" + data-monster-option-read-path="dataset" + data-monster-option-features-autoinit="true" + data-monster-option-read-url="/issue-233.json" + > + </monster-datasource-rest> + + <monster-datasource-dom id="menu-dom"> + <script type="application/json"> + { + "1": { + "id": "1", + "title": "Test 1", + "address": "Here 1", + "parent": "2" + }, + "2": { + "id": "2", + "title": "Test 2", + "address": "Here 2", + "parent": "0" + }, + "3": { + "id": "3", + "title": "Test 3", + "address": "Here 3", + "parent": "2" + }, + "4": { + "id": "4", + "title": "Test 4", + "address": "Here 4", + "parent": "0" + }, + "5": { + "id": "5", + "title": "Test 5", + "address": "Here 5", + "parent": "0" + }, + "6": { + "id": "6", + "title": "Test 6", + "address": "Here 6", + "parent": "4" + }, + "7": { + "id": "7", + "title": "Test 7", + "address": "Here 7", + "parent": "1" + } + } + + </script> + </monster-datasource-dom> + + <monster-panel> + <monster-split-panel> + + <monster-panel id="inner2" data-monster-option-heightadjustment="5" + slot="start"> + + <monster-tree-menu + data-monster-option-mapping-idtemplate="id" + data-monster-option-mapping-parentkey="parent_id" + data-monster-option-mapping-labeltemplate="${title}" + data-monster-option-mapping-valuetemplate="${path:url | tostring}" + data-monster-option-mapping-icontemplate="${path:icon | default:default}" + data-monster-option-datasource-selector="#menu-rest" + value="" + > + + <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> + <symbol id="box" viewBox="0 0 16 16"> + <path d="M6 9a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3A.5.5 0 0 1 6 9M3.854 4.146a.5.5 0 1 0-.708.708L4.793 6.5 3.146 8.146a.5.5 0 1 0 .708.708l2-2a.5.5 0 0 0 0-.708z"/> + <path d="M2 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2zm12 1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1z"/> + </symbol> + + <symbol id="default" viewBox="0 0 16 16"> + <path d="M11 2a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3zM5 1a4 4 0 0 0-4 4v6a4 4 0 0 0 4 4h6a4 4 0 0 0 4-4V5a4 4 0 0 0-4-4z"/> + </symbol> + + + <symbol id="balloon" viewBox="0 0 16 16"> + <path d="M8 9.984C10.403 9.506 12 7.48 12 5a4 4 0 0 0-8 0c0 2.48 1.597 4.506 4 4.984M13 5c0 2.837-1.789 5.227-4.52 5.901l.244.487a.25.25 0 1 1-.448.224l-.008-.017c.008.11.02.202.037.29.054.27.161.488.419 1.003.288.578.235 1.15.076 1.629-.157.469-.422.867-.588 1.115l-.004.007a.25.25 0 1 1-.416-.278c.168-.252.4-.6.533-1.003.133-.396.163-.824-.049-1.246l-.013-.028c-.24-.48-.38-.758-.448-1.102a3 3 0 0 1-.052-.45l-.04.08a.25.25 0 1 1-.447-.224l.244-.487C4.789 10.227 3 7.837 3 5a5 5 0 0 1 10 0m-6.938-.495a2 2 0 0 1 1.443-1.443C7.773 2.994 8 2.776 8 2.5s-.226-.504-.498-.459a3 3 0 0 0-2.46 2.461c-.046.272.182.498.458.498s.494-.227.562-.495"/> + </symbol> + + <symbol id="cart" viewBox="0 0 16 16"> + <path d="M8 1a2.5 2.5 0 0 1 2.5 2.5V4h-5v-.5A2.5 2.5 0 0 1 8 1m3.5 3v-.5a3.5 3.5 0 1 0-7 0V4H1v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V4zM2 5h12v9a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1z"/> + </symbol> + + <symbol id="box2" viewBox="0 0 16 16"> + <path d="M8 7.982C9.664 6.309 13.825 9.236 8 13 2.175 9.236 6.336 6.31 8 7.982"/> + <path d="M3.75 0a1 1 0 0 0-.8.4L.1 4.2a.5.5 0 0 0-.1.3V15a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V4.5a.5.5 0 0 0-.1-.3L13.05.4a1 1 0 0 0-.8-.4zm0 1H7.5v3h-6zM8.5 4V1h3.75l2.25 3zM15 5v10H1V5z"/> + </symbol> + + + </svg> + + + </monster-tree-menu> + </monster-panel> + </monster-split-panel> + </monster-panel> +</main> + +</body> +</html> diff --git a/development/issues/open/233.mjs b/development/issues/open/233.mjs new file mode 100644 index 0000000000000000000000000000000000000000..04bca3a9c1b4494617a3d9a9eabec2ba76373355 --- /dev/null +++ b/development/issues/open/233.mjs @@ -0,0 +1,32 @@ +/** + * @file development/issues/open/191.mjs + * @url https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/191 + * @description optimize tree-menu + * @issue 191 + */ + +import "../../../source/components/style/property.pcss"; +import "../../../source/components/style/color.pcss"; +import "../../../source/components/style/link.pcss"; +import "../../../source/components/style/normalize.pcss"; +import "../../../source/components/style/typography.pcss"; +import "../../../source/components/tree-menu/tree-menu.mjs"; +import "../../../source/components/layout/split-panel.mjs"; +import "../../../source/components/layout/panel.mjs"; +import "../../../source/components/datatable/datasource/dom.mjs"; +import "../../../source/components/datatable/datasource/rest.mjs"; + +setTimeout(() => { + + const obj = document.querySelector("monster-tree-menu"); + obj.selectEntry("/alvine/?cmd=9130") + + setTimeout(() => { + //obj.selectEntry("/ebay") + obj.selectEntry("/alvine/?cmd=8157") + }, 1000) + + +}, 1000) + + diff --git a/development/mock/issue-233.js b/development/mock/issue-233.js new file mode 100644 index 0000000000000000000000000000000000000000..5e2b70785080e78611f9e6cfc0b32400547db663 --- /dev/null +++ b/development/mock/issue-233.js @@ -0,0 +1,504 @@ +const json = + `{ + "dataset": [ + { + "id": 308004, + "parent_id": 0, + "title": "Bestellungen", + "url": "/apps/commerce/order-list", + "weight": 2, + "icon": "cart", + "css_classes": "" + }, + { + "id": 108003, + "parent_id": 308004, + "title": "Bestellung suchen", + "url": "/alvine/?cmd=8003", + "weight": 2, + "icon": "box2", + "css_classes": "" + }, + { + "id": 108004, + "parent_id": 308004, + "title": "Bestellungen (Legacy)", + "url": "/alvine/?cmd=8004", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 109700, + "parent_id": 308004, + "title": "Visuelle Überprüfung", + "url": "/alvine/?cmd=9700", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 108007, + "parent_id": 308004, + "title": "Wiedervorlagen", + "url": "/alvine/?cmd=8007", + "weight": 3, + "icon": null, + "css_classes": "" + }, + { + "id": 108073, + "parent_id": 308004, + "title": "Zahlungseingang", + "url": "/alvine/?cmd=8073", + "weight": 4, + "icon": null, + "css_classes": "" + }, + { + "id": 114000, + "parent_id": 308004, + "title": "Angebote", + "url": "/alvine/?cmd=14000", + "weight": 5, + "icon": null, + "css_classes": "" + }, + { + "id": 131600, + "parent_id": 308004, + "title": "Bestelleingangsregeln", + "url": "/alvine/?cmd=31600", + "weight": 6, + "icon": null, + "css_classes": "" + }, + { + "id": 300125, + "parent_id": 0, + "title": "Kunden", + "url": "/apps/commerce/user-list", + "weight": 3, + "icon": "balloon", + "css_classes": "" + }, + { + "id": 100220, + "parent_id": 300125, + "title": "Tickets", + "url": "/alvine/?cmd=220", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 100125, + "parent_id": 300125, + "title": "Kunden (Legacy)", + "url": "/alvine/?cmd=125", + "weight": 3, + "icon": null, + "css_classes": "" + }, + { + "id": 124013, + "parent_id": 300125, + "title": "Kundensperrliste", + "url": "/alvine/?cmd=24013", + "weight": 3, + "icon": null, + "css_classes": "" + }, + { + "id": 100117, + "parent_id": 300125, + "title": "Gruppen", + "url": "/alvine/?cmd=117", + "weight": 4, + "icon": null, + "css_classes": "" + }, + { + "id": 126038, + "parent_id": 300125, + "title": "Kundenbewertungen", + "url": "/alvine/?cmd=26038", + "weight": 5, + "icon": null, + "css_classes": "" + }, + { + "id": 108181, + "parent_id": 300125, + "title": "Merklisten", + "url": "/alvine/?cmd=8181", + "weight": 6, + "icon": null, + "css_classes": "" + }, + { + "id": 209231, + "parent_id": 0, + "title": "Marketing", + "url": "/alvine/?cmd=209231", + "weight": 4, + "icon": null, + "css_classes": "" + }, + { + "id": 109231, + "parent_id": 209231, + "title": "Partnerverwaltung", + "url": "/alvine/?cmd=9231", + "weight": 1, + "icon": null, + "css_classes": "" + }, + { + "id": 122002, + "parent_id": 209231, + "title": "Gutscheine", + "url": "/alvine/?cmd=22002", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 100600, + "parent_id": 209231, + "title": "Serienbrief", + "url": "/alvine/?cmd=600", + "weight": 3, + "icon": null, + "css_classes": "" + }, + { + "id": 100320, + "parent_id": 209231, + "title": "E-Mail-Sperrliste", + "url": "/alvine/?cmd=320", + "weight": 4, + "icon": null, + "css_classes": "" + }, + { + "id": 150040, + "parent_id": 209231, + "title": "Kampagnen", + "url": "/alvine/?cmd=50040", + "weight": 5, + "icon": null, + "css_classes": "" + }, + { + "id": 100330, + "parent_id": 209231, + "title": "Marketingadressen", + "url": "/alvine/?cmd=330", + "weight": 6, + "icon": null, + "css_classes": "" + }, + { + "id": 200001, + "parent_id": 0, + "title": "Vertriebskanäle", + "url": "/", + "weight": 5, + "icon": null, + "css_classes": "" + }, + { + "id": 100001, + "parent_id": 200001, + "title": "eBay", + "url": "/ebay", + "weight": 1, + "icon": null, + "css_classes": "" + }, + { + "id": 100002, + "parent_id": 200001, + "title": "Amazon", + "url": "/", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 201023, + "parent_id": 0, + "title": "Produkte", + "url": "/", + "weight": 6, + "icon": null, + "css_classes": "" + }, + { + "id": 101023, + "parent_id": 201023, + "title": "Produkte (Legacy)", + "url": "/alvine/?cmd=1023", + "weight": 1, + "icon": null, + "css_classes": "" + }, + { + "id": 208124, + "parent_id": 201023, + "title": "Katalog", + "url": "/", + "weight": 1, + "icon": null, + "css_classes": "" + }, + { + "id": 108113, + "parent_id": 208124, + "title": "Marken", + "url": "/alvine/?cmd=8113", + "weight": 1, + "icon": null, + "css_classes": "" + }, + { + "id": 109010, + "parent_id": 208124, + "title": "Abteilungen", + "url": "/alvine/?cmd=9010", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 108124, + "parent_id": 208124, + "title": "Farben", + "url": "/alvine/?cmd=8124", + "weight": 3, + "icon": null, + "css_classes": "" + }, + { + "id": 109119, + "parent_id": 208124, + "title": "Raster", + "url": "/alvine/?cmd=9119", + "weight": 4, + "icon": null, + "css_classes": "" + }, + { + "id": 109081, + "parent_id": 208124, + "title": "Ausführung", + "url": "/alvine/?cmd=9081", + "weight": 5, + "icon": null, + "css_classes": "" + }, + { + "id": 109130, + "parent_id": 208124, + "title": "Material", + "url": "/alvine/?cmd=9130", + "weight": 6, + "icon": null, + "css_classes": "" + }, + { + "id": 108053, + "parent_id": 208124, + "title": "Kollektion", + "url": "/alvine/?cmd=8053", + "weight": 7, + "icon": null, + "css_classes": "" + }, + { + "id": 126013, + "parent_id": 208124, + "title": "Saison", + "url": "/alvine/?cmd=26013", + "weight": 8, + "icon": null, + "css_classes": "" + }, + { + "id": 109258, + "parent_id": 208124, + "title": "Zuweisung 1", + "url": "/alvine/?cmd=9258", + "weight": 9, + "icon": null, + "css_classes": "" + }, + { + "id": 109269, + "parent_id": 208124, + "title": "Zuweisung 2", + "url": "/alvine/?cmd=9269", + "weight": 10, + "icon": null, + "css_classes": "" + }, + { + "id": 109310, + "parent_id": 208124, + "title": "Zuweisung 3", + "url": "/alvine/?cmd=9310", + "weight": 10, + "icon": null, + "css_classes": "" + }, + { + "id": 131531, + "parent_id": 201023, + "title": "Lagerliste", + "url": "/alvine/?cmd=31531", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 108157, + "parent_id": 201023, + "title": "Stückliste Liste", + "url": "/alvine/?cmd=8157", + "weight": 4, + "icon": null, + "css_classes": "" + }, + { + "id": 109025, + "parent_id": 201023, + "title": "Varianten", + "url": "/alvine/?cmd=9025", + "weight": 5, + "icon": null, + "css_classes": "" + }, + { + "id": 109058, + "parent_id": 201023, + "title": "Kategorien", + "url": "/alvine/?cmd=9058", + "weight": 7, + "icon": null, + "css_classes": "" + }, + { + "id": 126035, + "parent_id": 201023, + "title": "Massenbearbeitung", + "url": "/alvine/?cmd=26035", + "weight": 8, + "icon": null, + "css_classes": "" + }, + { + "id": 110000, + "parent_id": 201023, + "title": "Konditionsübersicht", + "url": "/alvine/?cmd=10000", + "weight": 9, + "icon": null, + "css_classes": "" + }, + { + "id": 209211, + "parent_id": 0, + "title": "Wareneingang", + "url": "/", + "weight": 8, + "icon": null, + "css_classes": "" + }, + { + "id": 109211, + "parent_id": 209211, + "title": "Avise", + "url": "/alvine/?cmd=9211", + "weight": 1, + "icon": null, + "css_classes": "" + }, + { + "id": 209221, + "parent_id": 209211, + "title": "Retoure", + "url": "/", + "weight": 1, + "icon": null, + "css_classes": "" + }, + { + "id": 109221, + "parent_id": 209221, + "title": "Retouren", + "url": "/alvine/?cmd=9221", + "weight": 1, + "icon": null, + "css_classes": "" + }, + { + "id": 109037, + "parent_id": 209221, + "title": "Tagesabschluss Retoureneingang", + "url": "/alvine/?cmd=9037", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 108064, + "parent_id": 209211, + "title": "Avis scannen", + "url": "/alvine/?cmd=8064", + "weight": 2, + "icon": null, + "css_classes": "" + }, + { + "id": 109201, + "parent_id": 209211, + "title": "Lieferungen", + "url": "/alvine/?cmd=9201", + "weight": 3, + "icon": null, + "css_classes": "" + } + ], + "sys": { + "code": 200, + "result": {}, + "api_version": "1" + } +} + + + `; + + +// check if json is valid +JSON.parse(json) + +const requestDelay = 100 + +export default [ + { + url: '/issue-191.json', + method: 'get', + rawResponse: async (req, res) => { + res.setHeader('Content-Type', 'application/json') + res.statusCode = 200 + + setTimeout(function() { + res.end(json) + }, requestDelay); + + }, + } + +]; \ No newline at end of file