@next-bricks/nav 1.11.13 → 1.11.15
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.
- package/dist/bricks.json +1 -1
- package/dist/chunks/1045.28eda4d4.js +2 -0
- package/dist/chunks/1045.28eda4d4.js.map +1 -0
- package/dist/chunks/1122.3df7e8f5.js +2 -0
- package/dist/chunks/1122.3df7e8f5.js.map +1 -0
- package/dist/chunks/114.11826e69.js +2 -0
- package/dist/chunks/114.11826e69.js.map +1 -0
- package/dist/chunks/1369.f2a1f366.js +2 -0
- package/dist/chunks/{1369.91ecbde7.js.map → 1369.f2a1f366.js.map} +1 -1
- package/dist/chunks/1370.531076d0.js +2 -0
- package/dist/chunks/1370.531076d0.js.map +1 -0
- package/dist/chunks/1889.8ae44d04.js +2 -0
- package/dist/chunks/1889.8ae44d04.js.map +1 -0
- package/dist/chunks/1940.1a947044.js +2 -0
- package/dist/chunks/1940.1a947044.js.map +1 -0
- package/dist/chunks/2052.14b1b2e4.js +2 -0
- package/dist/chunks/{2052.504bb76b.js.map → 2052.14b1b2e4.js.map} +1 -1
- package/dist/chunks/2133.e7cc599c.js +2 -0
- package/dist/chunks/2133.e7cc599c.js.map +1 -0
- package/dist/chunks/2252.84773cac.js +3 -0
- package/dist/chunks/2252.84773cac.js.map +1 -0
- package/dist/chunks/2277.a4066198.js +2 -0
- package/dist/chunks/2277.a4066198.js.map +1 -0
- package/dist/chunks/3144.7f10ba4c.js +3 -0
- package/dist/chunks/{3144.8f5901e6.js.map → 3144.7f10ba4c.js.map} +1 -1
- package/dist/chunks/3171.fd7160cf.js +2 -0
- package/dist/chunks/3171.fd7160cf.js.map +1 -0
- package/dist/chunks/3278.083af081.js +2 -0
- package/dist/chunks/{3278.4f438613.js.map → 3278.083af081.js.map} +1 -1
- package/dist/chunks/3703.029f16d4.js +3 -0
- package/dist/chunks/{3703.a583930d.js.map → 3703.029f16d4.js.map} +1 -1
- package/dist/chunks/3751.573b450c.js +2 -0
- package/dist/chunks/3751.573b450c.js.map +1 -0
- package/dist/chunks/3933.08685c12.js +2 -0
- package/dist/chunks/3933.08685c12.js.map +1 -0
- package/dist/chunks/4041.c7de4a6d.js +3 -0
- package/dist/chunks/{4041.e3680d33.js.map → 4041.c7de4a6d.js.map} +1 -1
- package/dist/chunks/4658.0954eb78.js +2 -0
- package/dist/chunks/4658.0954eb78.js.map +1 -0
- package/dist/chunks/4741.3a33a9de.js +2 -0
- package/dist/chunks/{4741.0f313ec4.js.map → 4741.3a33a9de.js.map} +1 -1
- package/dist/chunks/5250.12cae457.js +3 -0
- package/dist/chunks/{5250.681bb342.js.map → 5250.12cae457.js.map} +1 -1
- package/dist/chunks/5294.92b3255a.js +2 -0
- package/dist/chunks/5294.92b3255a.js.map +1 -0
- package/dist/chunks/5384.a93e34e9.js +2 -0
- package/dist/chunks/{5384.68b75bc2.js.map → 5384.a93e34e9.js.map} +1 -1
- package/dist/chunks/5399.e743a790.js +2 -0
- package/dist/chunks/5399.e743a790.js.map +1 -0
- package/dist/chunks/5552.4f5335c8.js +2 -0
- package/dist/chunks/5552.4f5335c8.js.map +1 -0
- package/dist/chunks/5764.962abddb.js +3 -0
- package/dist/chunks/{5764.5d901b1f.js.map → 5764.962abddb.js.map} +1 -1
- package/dist/chunks/6256.5623ff67.js +3 -0
- package/dist/chunks/{6256.a5ffd4a5.js.map → 6256.5623ff67.js.map} +1 -1
- package/dist/chunks/6314.cdbd7b25.js +2 -0
- package/dist/chunks/6314.cdbd7b25.js.map +1 -0
- package/dist/chunks/6519.88149886.js +2 -0
- package/dist/chunks/6519.88149886.js.map +1 -0
- package/dist/chunks/6773.4adb9d56.js +2 -0
- package/dist/chunks/{6773.ff2d90db.js.map → 6773.4adb9d56.js.map} +1 -1
- package/dist/chunks/7041.6b29fed9.js +3 -0
- package/dist/chunks/7041.6b29fed9.js.LICENSE.txt +1 -0
- package/dist/chunks/7041.6b29fed9.js.map +1 -0
- package/dist/chunks/7115.cce8508a.js +2 -0
- package/dist/chunks/7115.cce8508a.js.map +1 -0
- package/dist/chunks/726.1d2dd9fa.js +2 -0
- package/dist/chunks/{726.c766b8c8.js.map → 726.1d2dd9fa.js.map} +1 -1
- package/dist/chunks/7721.a4d4ce25.js +3 -0
- package/dist/chunks/{7721.1d0f13b9.js.map → 7721.a4d4ce25.js.map} +1 -1
- package/dist/chunks/7733.32af8f74.js +2 -0
- package/dist/chunks/7733.32af8f74.js.map +1 -0
- package/dist/chunks/8097.77f4d63c.js +2 -0
- package/dist/chunks/8097.77f4d63c.js.map +1 -0
- package/dist/chunks/8171.1db60822.js +3 -0
- package/dist/chunks/8171.1db60822.js.map +1 -0
- package/dist/chunks/8518.cd45dc30.js +2 -0
- package/dist/chunks/8518.cd45dc30.js.map +1 -0
- package/dist/chunks/871.18bf8ba5.js +2 -0
- package/dist/chunks/871.18bf8ba5.js.map +1 -0
- package/dist/chunks/8989.a9efa9f5.js +2 -0
- package/dist/chunks/8989.a9efa9f5.js.map +1 -0
- package/dist/chunks/9043.6aa5e55a.js +3 -0
- package/dist/chunks/9043.6aa5e55a.js.map +1 -0
- package/dist/chunks/9155.d295054c.js +3 -0
- package/dist/chunks/9155.d295054c.js.map +1 -0
- package/dist/chunks/9496.f739cfa1.js +2 -0
- package/dist/chunks/9496.f739cfa1.js.map +1 -0
- package/dist/chunks/9515.df23b98d.js +2 -0
- package/dist/chunks/{9515.dab7bf6b.js.map → 9515.df23b98d.js.map} +1 -1
- package/dist/chunks/9559.bbe42c08.js +2 -0
- package/dist/chunks/9559.bbe42c08.js.map +1 -0
- package/dist/chunks/9844.b58a111c.js +2 -0
- package/dist/chunks/{9844.34779f06.js.map → 9844.b58a111c.js.map} +1 -1
- package/dist/chunks/easyops-navbar-alerts.2b4a5d00.js +2 -0
- package/dist/chunks/easyops-navbar-alerts.2b4a5d00.js.map +1 -0
- package/dist/chunks/eo-app-bar-wrapper.85096d2c.js +3 -0
- package/dist/chunks/eo-app-bar-wrapper.85096d2c.js.map +1 -0
- package/dist/chunks/eo-directory-tree-internal-node.838a27ac.js +2 -0
- package/dist/chunks/eo-directory-tree-internal-node.838a27ac.js.map +1 -0
- package/dist/chunks/eo-directory-tree-leaf.733bfc05.js +2 -0
- package/dist/chunks/eo-directory-tree-leaf.733bfc05.js.map +1 -0
- package/dist/chunks/eo-directory-tree.0624e270.js +2 -0
- package/dist/chunks/eo-directory-tree.0624e270.js.map +1 -0
- package/dist/chunks/eo-directory.13024aa7.js +3 -0
- package/dist/chunks/eo-directory.13024aa7.js.map +1 -0
- package/dist/chunks/eo-frame-breadcrumb.d16d74c4.js +2 -0
- package/dist/chunks/eo-frame-breadcrumb.d16d74c4.js.map +1 -0
- package/dist/chunks/eo-launchpad-button-v2.a828b64a.js +2 -0
- package/dist/chunks/eo-launchpad-button-v2.a828b64a.js.map +1 -0
- package/dist/chunks/eo-launchpad-button.5ac991d1.js +2 -0
- package/dist/chunks/eo-launchpad-button.5ac991d1.js.map +1 -0
- package/dist/chunks/eo-launchpad-quick-access.f53f41e2.js +3 -0
- package/dist/chunks/eo-launchpad-quick-access.f53f41e2.js.map +1 -0
- package/dist/chunks/eo-launchpad-recent-visits.07947a5a.js +3 -0
- package/dist/chunks/eo-launchpad-recent-visits.07947a5a.js.map +1 -0
- package/dist/chunks/eo-nav-menu.066a516a.js +2 -0
- package/dist/chunks/eo-nav-menu.066a516a.js.map +1 -0
- package/dist/chunks/eo-search-launchpad.66c9bc11.js +2 -0
- package/dist/chunks/eo-search-launchpad.66c9bc11.js.map +1 -0
- package/dist/chunks/eo-sidebar-menu-group.90150859.js +3 -0
- package/dist/chunks/eo-sidebar-menu-group.90150859.js.map +1 -0
- package/dist/chunks/eo-sidebar-menu-item.0b7f25b4.js +2 -0
- package/dist/chunks/eo-sidebar-menu-item.0b7f25b4.js.map +1 -0
- package/dist/chunks/eo-sidebar-menu-submenu.90c1264d.js +3 -0
- package/dist/chunks/eo-sidebar-menu-submenu.90c1264d.js.map +1 -0
- package/dist/chunks/eo-sidebar-menu.dcdcd19f.js +2 -0
- package/dist/chunks/eo-sidebar-menu.dcdcd19f.js.map +1 -0
- package/dist/chunks/eo-sidebar-sub-menu.a4a052f1.js +3 -0
- package/dist/chunks/eo-sidebar-sub-menu.a4a052f1.js.map +1 -0
- package/dist/chunks/eo-sidebar.9a677b72.js +3 -0
- package/dist/chunks/eo-sidebar.9a677b72.js.map +1 -0
- package/dist/chunks/launchpad-config.1087a304.js +3 -0
- package/dist/chunks/launchpad-config.1087a304.js.map +1 -0
- package/dist/chunks/main.4ab75081.js +2 -0
- package/dist/chunks/main.4ab75081.js.map +1 -0
- package/dist/chunks/nav-logo.0d316341.js +2 -0
- package/dist/chunks/nav-logo.0d316341.js.map +1 -0
- package/dist/index.39970f8b.js +2 -0
- package/dist/index.39970f8b.js.map +1 -0
- package/package.json +4 -4
- package/dist/chunks/1045.298904b4.js +0 -2
- package/dist/chunks/1045.298904b4.js.map +0 -1
- package/dist/chunks/1122.a27c7c05.js +0 -2
- package/dist/chunks/1122.a27c7c05.js.map +0 -1
- package/dist/chunks/114.0062172c.js +0 -2
- package/dist/chunks/114.0062172c.js.map +0 -1
- package/dist/chunks/1369.91ecbde7.js +0 -2
- package/dist/chunks/1370.e5d33862.js +0 -2
- package/dist/chunks/1370.e5d33862.js.map +0 -1
- package/dist/chunks/1889.fed3f058.js +0 -2
- package/dist/chunks/1889.fed3f058.js.map +0 -1
- package/dist/chunks/1940.7350b616.js +0 -2
- package/dist/chunks/1940.7350b616.js.map +0 -1
- package/dist/chunks/2052.504bb76b.js +0 -2
- package/dist/chunks/2133.49936df8.js +0 -2
- package/dist/chunks/2133.49936df8.js.map +0 -1
- package/dist/chunks/2252.c03a3da6.js +0 -3
- package/dist/chunks/2252.c03a3da6.js.map +0 -1
- package/dist/chunks/2277.fbee5f61.js +0 -2
- package/dist/chunks/2277.fbee5f61.js.map +0 -1
- package/dist/chunks/2652.e28d50a3.js +0 -2
- package/dist/chunks/2652.e28d50a3.js.map +0 -1
- package/dist/chunks/3144.8f5901e6.js +0 -3
- package/dist/chunks/3171.7712b259.js +0 -2
- package/dist/chunks/3171.7712b259.js.map +0 -1
- package/dist/chunks/3278.4f438613.js +0 -2
- package/dist/chunks/3620.b675b333.js +0 -2
- package/dist/chunks/3620.b675b333.js.map +0 -1
- package/dist/chunks/3703.a583930d.js +0 -3
- package/dist/chunks/3750.bfdc35fc.js +0 -2
- package/dist/chunks/3750.bfdc35fc.js.map +0 -1
- package/dist/chunks/3751.80369f4a.js +0 -2
- package/dist/chunks/3751.80369f4a.js.map +0 -1
- package/dist/chunks/3933.c4783229.js +0 -2
- package/dist/chunks/3933.c4783229.js.map +0 -1
- package/dist/chunks/4041.e3680d33.js +0 -3
- package/dist/chunks/4658.2583c3dd.js +0 -2
- package/dist/chunks/4658.2583c3dd.js.map +0 -1
- package/dist/chunks/4741.0f313ec4.js +0 -2
- package/dist/chunks/5250.681bb342.js +0 -3
- package/dist/chunks/5384.68b75bc2.js +0 -2
- package/dist/chunks/5399.eb784d37.js +0 -2
- package/dist/chunks/5399.eb784d37.js.map +0 -1
- package/dist/chunks/5552.156be6c6.js +0 -2
- package/dist/chunks/5552.156be6c6.js.map +0 -1
- package/dist/chunks/5764.5d901b1f.js +0 -3
- package/dist/chunks/6256.a5ffd4a5.js +0 -3
- package/dist/chunks/6314.c52471ca.js +0 -2
- package/dist/chunks/6314.c52471ca.js.map +0 -1
- package/dist/chunks/6519.ff2a93d5.js +0 -2
- package/dist/chunks/6519.ff2a93d5.js.map +0 -1
- package/dist/chunks/6773.ff2d90db.js +0 -2
- package/dist/chunks/7115.50a7c8b7.js +0 -2
- package/dist/chunks/7115.50a7c8b7.js.map +0 -1
- package/dist/chunks/726.c766b8c8.js +0 -2
- package/dist/chunks/7721.1d0f13b9.js +0 -3
- package/dist/chunks/7733.2b507fec.js +0 -2
- package/dist/chunks/7733.2b507fec.js.map +0 -1
- package/dist/chunks/7780.84ea732e.js +0 -2
- package/dist/chunks/7780.84ea732e.js.map +0 -1
- package/dist/chunks/8097.adac3cfa.js +0 -2
- package/dist/chunks/8097.adac3cfa.js.map +0 -1
- package/dist/chunks/8171.26fb7065.js +0 -3
- package/dist/chunks/8171.26fb7065.js.map +0 -1
- package/dist/chunks/8518.e95d291b.js +0 -2
- package/dist/chunks/8518.e95d291b.js.map +0 -1
- package/dist/chunks/871.8ce4bf00.js +0 -2
- package/dist/chunks/871.8ce4bf00.js.map +0 -1
- package/dist/chunks/8989.2e696848.js +0 -2
- package/dist/chunks/8989.2e696848.js.map +0 -1
- package/dist/chunks/9043.3f83cb13.js +0 -3
- package/dist/chunks/9043.3f83cb13.js.map +0 -1
- package/dist/chunks/9155.702eb4eb.js +0 -3
- package/dist/chunks/9155.702eb4eb.js.map +0 -1
- package/dist/chunks/9496.d399d3eb.js +0 -2
- package/dist/chunks/9496.d399d3eb.js.map +0 -1
- package/dist/chunks/9515.dab7bf6b.js +0 -2
- package/dist/chunks/9559.17a50ae2.js +0 -2
- package/dist/chunks/9559.17a50ae2.js.map +0 -1
- package/dist/chunks/9844.34779f06.js +0 -2
- package/dist/chunks/easyops-navbar-alerts.402b684a.js +0 -2
- package/dist/chunks/easyops-navbar-alerts.402b684a.js.map +0 -1
- package/dist/chunks/eo-app-bar-wrapper.80f95013.js +0 -3
- package/dist/chunks/eo-app-bar-wrapper.80f95013.js.map +0 -1
- package/dist/chunks/eo-directory-tree-internal-node.1d72f9bd.js +0 -2
- package/dist/chunks/eo-directory-tree-internal-node.1d72f9bd.js.map +0 -1
- package/dist/chunks/eo-directory-tree-leaf.3bf3d08d.js +0 -2
- package/dist/chunks/eo-directory-tree-leaf.3bf3d08d.js.map +0 -1
- package/dist/chunks/eo-directory-tree.265041f6.js +0 -2
- package/dist/chunks/eo-directory-tree.265041f6.js.map +0 -1
- package/dist/chunks/eo-directory.dfd44d38.js +0 -3
- package/dist/chunks/eo-directory.dfd44d38.js.map +0 -1
- package/dist/chunks/eo-frame-breadcrumb.1e2b0bbc.js +0 -2
- package/dist/chunks/eo-frame-breadcrumb.1e2b0bbc.js.map +0 -1
- package/dist/chunks/eo-launchpad-button-v2.f29e18f8.js +0 -2
- package/dist/chunks/eo-launchpad-button-v2.f29e18f8.js.map +0 -1
- package/dist/chunks/eo-launchpad-button.3f44da25.js +0 -2
- package/dist/chunks/eo-launchpad-button.3f44da25.js.map +0 -1
- package/dist/chunks/eo-launchpad-quick-access.a624d8c6.js +0 -3
- package/dist/chunks/eo-launchpad-quick-access.a624d8c6.js.map +0 -1
- package/dist/chunks/eo-launchpad-recent-visits.b0f8cfa1.js +0 -3
- package/dist/chunks/eo-launchpad-recent-visits.b0f8cfa1.js.map +0 -1
- package/dist/chunks/eo-nav-menu.3e256f37.js +0 -2
- package/dist/chunks/eo-nav-menu.3e256f37.js.map +0 -1
- package/dist/chunks/eo-search-launchpad.fad47849.js +0 -2
- package/dist/chunks/eo-search-launchpad.fad47849.js.map +0 -1
- package/dist/chunks/eo-sidebar-menu-group.7bb8dc7f.js +0 -3
- package/dist/chunks/eo-sidebar-menu-group.7bb8dc7f.js.map +0 -1
- package/dist/chunks/eo-sidebar-menu-item.89ad2379.js +0 -2
- package/dist/chunks/eo-sidebar-menu-item.89ad2379.js.map +0 -1
- package/dist/chunks/eo-sidebar-menu-submenu.97ff4a5e.js +0 -3
- package/dist/chunks/eo-sidebar-menu-submenu.97ff4a5e.js.map +0 -1
- package/dist/chunks/eo-sidebar-menu.820c878d.js +0 -2
- package/dist/chunks/eo-sidebar-menu.820c878d.js.map +0 -1
- package/dist/chunks/eo-sidebar-sub-menu.57b039ce.js +0 -3
- package/dist/chunks/eo-sidebar-sub-menu.57b039ce.js.map +0 -1
- package/dist/chunks/eo-sidebar.5151a54e.js +0 -3
- package/dist/chunks/eo-sidebar.5151a54e.js.map +0 -1
- package/dist/chunks/launchpad-config.6d5f920f.js +0 -3
- package/dist/chunks/launchpad-config.6d5f920f.js.map +0 -1
- package/dist/chunks/main.1b686df4.js +0 -2
- package/dist/chunks/main.1b686df4.js.map +0 -1
- package/dist/chunks/nav-logo.6d849472.js +0 -2
- package/dist/chunks/nav-logo.6d849472.js.map +0 -1
- package/dist/index.7b8a1c44.js +0 -2
- package/dist/index.7b8a1c44.js.map +0 -1
- /package/dist/chunks/{2252.c03a3da6.js.LICENSE.txt → 2252.84773cac.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{3144.8f5901e6.js.LICENSE.txt → 3144.7f10ba4c.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{3703.a583930d.js.LICENSE.txt → 3703.029f16d4.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{4041.e3680d33.js.LICENSE.txt → 4041.c7de4a6d.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{5250.681bb342.js.LICENSE.txt → 5250.12cae457.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{5764.5d901b1f.js.LICENSE.txt → 5764.962abddb.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{6256.a5ffd4a5.js.LICENSE.txt → 6256.5623ff67.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{7721.1d0f13b9.js.LICENSE.txt → 7721.a4d4ce25.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{8171.26fb7065.js.LICENSE.txt → 8171.1db60822.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9043.3f83cb13.js.LICENSE.txt → 9043.6aa5e55a.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9155.702eb4eb.js.LICENSE.txt → 9155.d295054c.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-app-bar-wrapper.80f95013.js.LICENSE.txt → eo-app-bar-wrapper.85096d2c.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-directory.dfd44d38.js.LICENSE.txt → eo-directory.13024aa7.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-launchpad-quick-access.a624d8c6.js.LICENSE.txt → eo-launchpad-quick-access.f53f41e2.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-launchpad-recent-visits.b0f8cfa1.js.LICENSE.txt → eo-launchpad-recent-visits.07947a5a.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-sidebar-menu-group.7bb8dc7f.js.LICENSE.txt → eo-sidebar-menu-group.90150859.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-sidebar-menu-submenu.97ff4a5e.js.LICENSE.txt → eo-sidebar-menu-submenu.90c1264d.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-sidebar-sub-menu.57b039ce.js.LICENSE.txt → eo-sidebar-sub-menu.a4a052f1.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-sidebar.5151a54e.js.LICENSE.txt → eo-sidebar.9a677b72.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{launchpad-config.6d5f920f.js.LICENSE.txt → launchpad-config.1087a304.js.LICENSE.txt} +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 9155.702eb4eb.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[9155],{8421:(e,t,a)=>{a.d(t,{D:()=>ot});var i=a(8769),n=a.n(i),r=a(9974),o=a(2240),l=a(9435),s=a(9740),p=a(2865),c=a(9575),d=a(6330),m=a(6430),u=a(3373),h=a.n(u),f=a(2591),g=a.n(f),v=a(1740),x=a.n(v),y=a(8128),k=a.n(y),w=a(855),A=a.n(w),b=a(3051),E=a.n(b),C=a(3656),L=a.n(C),I=a(6087),N={};N.styleTagTransform=L(),N.setAttributes=A(),N.insert=k().bind(null,"head"),N.domAPI=x(),N.insertStyleElement=E(),g()(I.A,N);const S=I.A&&I.A.locals?I.A.locals:void 0;var W=(0,m.wrapBrick)("eo-link"),z=(0,m.wrapBrick)("eo-icon"),_=a(9929),B=a(9280);function P(e){var{t}=(0,B.useTranslation)(_.NS),[a,i]=n().useState(!1),r=n().useCallback((e=>{e&&Promise.resolve().then((()=>{try{e.focus()}catch(e){}}))}),[]);return n().createElement("div",{className:h()(S.searchBar,{[S.focus]:a})},n().createElement("div",{className:S.inputContainer,role:"inputContainer",onClick:e=>{e.stopPropagation()}},n().createElement("span",{className:h()(S.inputAffixWrapper,{[S.inputAffixWrapperFocused]:a})},n().createElement("span",{className:S.antInputPrefix},n().createElement(z,{icon:"search",lib:"antd",theme:"outlined"})),n().createElement("input",{role:"input",className:S.input,placeholder:t(_.K.SEARCH_BY_NAME_KEYWORD),onChange:t=>{e.onChange(t.target.value)},onKeyDown:e=>{var t=e.key||e.keyCode||e.which;["Tab","Enter","ArrowLeft","ArrowUp","ArrowRight","ArrowDown",9,13,37,38,39,40].includes(t)&&e.preventDefault()},onFocus:()=>{i(!0)},onBlur:()=>{i(!1)},ref:r}))))}var D=a(1030),M=a(2535),F={};F.styleTagTransform=L(),F.setAttributes=A(),F.insert=k().bind(null,"head"),F.domAPI=x(),F.insertStyleElement=E(),g()(M.A,F);const H=M.A&&M.A.locals?M.A.locals:void 0;var T=a(2867),j={};j.styleTagTransform=L(),j.setAttributes=A(),j.insert=k().bind(null,"head"),j.domAPI=x(),j.insertStyleElement=E(),g()(T.A,j);const q=T.A&&T.A.locals?T.A.locals:void 0,R=a.p+"images/cc952ed5.png";function J(e,t){var a;return e.icons&&e.icons.large?/^(?:https?|data):|^\//.test(e.icons.large)?e.icons.large:"".concat(window.STANDALONE_MICRO_APPS?e.standaloneMode?"".concat(null===(a=window.PUBLIC_ROOT)||void 0===a?void 0:a.replace(/-\/$/,"")).concat(e.id,"/versions/").concat(e.currentVersion,"/webroot/-/micro-apps/").concat(e.id,"/").concat(e.icons.large):"".concat(window.PUBLIC_CDN||"","micro-apps/").concat(e.id,"/").concat(e.icons.large):"".concat(window.PUBLIC_ROOT||"","micro-apps/").concat(e.id,"/").concat(e.icons.large)):t}var K=(0,m.wrapBrick)("eo-link"),Z=(0,m.wrapBrick)("eo-icon");function V(e){var{app:t,onAddClick:a,onClick:i,isFavorite:r,showAddIcon:o,size:l}=e,s="running"===t.installStatus;return n().createElement(n().Fragment,null,n().createElement(K,{className:h()(q.appLink,q[l],"circle"===t.iconBackground?q.circle:q.square,{[q.installing]:s}),url:t.homepage,onClick:e=>{e.stopPropagation(),s&&e.preventDefault(),null==i||i()}},n().createElement("img",{className:q.appIcon,src:J(t,R)}),o&&r&&n().createElement(Z,{className:h()(q.addIcon,"circle"===t.iconBackground?q.circleIcon:q.squareIcon),icon:"plus",lib:"antd",theme:"outlined",onClick:e=>{e.stopPropagation(),e.preventDefault(),null==a||a()}})),n().createElement("span",{className:q.appName},s&&n().createElement(Z,{style:{paddingRight:5},icon:"loading-3-quarters",lib:"antd",theme:"outlined"}),t.localeName))}var U=n().createContext({}),Y=()=>n().useContext(U),O=a(2575),X={};X.styleTagTransform=L(),X.setAttributes=A(),X.insert=k().bind(null,"head"),X.domAPI=x(),X.insertStyleElement=E(),g()(O.A,X);const G=O.A&&O.A.locals?O.A.locals:void 0;function Q(e){var{setDesktopDir:t}=Y();return n().createElement(n().Fragment,null,n().createElement("a",{className:h()(G.dirLink,{[G[e.size]]:!!e.size}),onClick:a=>{a.stopPropagation(),null==t||t({dir:{name:e.name,items:e.items},coordinates:{x:a.clientX,y:a.clientY},activeIndex:-1})},role:"button"},e.items.slice(0,4).map((e=>"app"===e.type?n().createElement("img",{className:G.appIcon,key:e.id,src:J(e.app,R)}):n().createElement("img",{className:G.appIcon,key:e.id,src:R})))),n().createElement("span",{className:G.dirName},e.name))}var $=a(1651),ee={};ee.styleTagTransform=L(),ee.setAttributes=A(),ee.insert=k().bind(null,"head"),ee.domAPI=x(),ee.insertStyleElement=E(),g()($.A,ee);const te=$.A&&$.A.locals?$.A.locals:void 0;var ae=(0,m.wrapBrick)("eo-link"),ie=(0,m.wrapBrick)("eo-icon");function ne(e){var{name:t,url:a,showAddIcon:i,isFavorite:r,onClick:o,onAddClick:l,size:s,responsive:p=!0}=e;return n().createElement(n().Fragment,null,n().createElement(ae,{className:h()(te.appLink,te.circle,te[s],{[te.responsive]:p}),href:a,target:"_blank",onClick:e=>{e.stopPropagation(),null==o||o()}},n().createElement("img",{className:te.appIcon,src:R}),i&&r&&n().createElement(ie,{className:h()(te.addIcon,te.circleIcon),icon:"plus-circle-filled",lib:"antd",theme:"outlined",onClick:e=>{e.stopPropagation(),e.preventDefault(),null==l||l()}})),n().createElement("span",{className:te.appName},t))}var re=a(4586),oe=a(4612),le=a(6730),se=function(){var e=(0,d.A)((function*(e,t){return(yield le.http.get("api/gateway/user_service.launchpad.ListCollection/api/v1/launchpad/collection",(0,s.A)((0,s.A)({},t),{},{params:e}))).data}));return function(t,a){return e.apply(this,arguments)}}(),pe=function(){var e=(0,d.A)((function*(e,t){return(yield le.http.post("api/gateway/user_service.launchpad.CreateCollection/api/v1/launchpad/collection",e,t)).data}));return function(t,a){return e.apply(this,arguments)}}(),ce=a(3346),de=a(6842),me=a(5477),ue=a(4864),he=new class{constructor(){var e,t=this;(0,re.A)(this,"storageKey","launchpad-recently-visited:".concat(null===(e=de.auth.getAuth())||void 0===e?void 0:e.org)),(0,re.A)(this,"storage",void 0),(0,re.A)(this,"favoriteList",[]),(0,re.A)(this,"filteredFavoriteList",[]),(0,re.A)(this,"microApps",[]),(0,re.A)(this,"customList",[]),(0,re.A)(this,"maxVisitorLength",7),(0,re.A)(this,"baseInfo",{settings:{columns:7,rows:4},microApps:[],desktops:[],siteSort:[]}),(0,re.A)(this,"loaded",!1),(0,re.A)(this,"favoritesLoaded",!1),(0,re.A)(this,"deferredLaunchpadInfo",void 0),(0,re.A)(this,"deferredFavorites",void 0),(0,re.A)(this,"doFetchFavorites",(0,d.A)((function*(){var e=(yield se({page:1,pageSize:25},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0})).list;t.setFavorites(e),t.favoritesLoaded=!0}))),(0,re.A)(this,"doFetchLaunchpadInfo",(0,d.A)((function*(){var e=yield(0,ce.i)({},{interceptorParams:{ignoreLoadingBar:!0},noAbortOnRouteChange:!0}),a=function*(){var e=i.app;if(e)if(e.locales){var t="$tmp-".concat(e.id);Object.entries(e.locales).forEach((e=>{var[a,i]=e;me.i18n.addResourceBundle(a,t,i)})),e.localeName=me.i18n.getFixedT(null,t)("name",e.name),Object.keys(e.locales).forEach((e=>{me.i18n.removeResourceBundle(e,t)}))}else e.localeName=e.name};for(var i of e.storyboards)yield*a();t.baseInfo=(0,s.A)((0,s.A)({},e),{},{settings:e.settings.launchpad,microApps:e.storyboards.map((e=>e.app)).filter(Boolean)}),t.initValue(),t.loaded=!0}))),this.storage=new oe.G(localStorage),this.deferredLaunchpadInfo=new ue.x(this.doFetchLaunchpadInfo),this.deferredFavorites=new ue.x(this.doFetchFavorites),this.init()}init(){var e=(0,r.getRuntime)();this.baseInfo={desktops:e.getDesktops(),microApps:[e.getCurrentApp()],settings:e.getLaunchpadSettings(),siteSort:e.getLaunchpadSiteMap()},this.initValue()}initValue(){this.customList=this.baseInfo.desktops.map((e=>e.items.filter((e=>"custom"===e.type)))).flat();var e=this.baseInfo.microApps.filter((e=>e&&(!e.status||"enabled"===e.status||"developing"===e.status)));this.setMicroApps(e)}setMaxVisitorLength(e){this.maxVisitorLength=e}preFetchFavorites(){this.deferredFavorites.schedulePrefetch()}fetchFavoriteList(e){var t=this;return(0,d.A)((function*(){return yield t.deferredFavorites.fetch(e),t.favoriteList}))()}preFetchLaunchpadInfo(){window.STANDALONE_MICRO_APPS&&this.deferredLaunchpadInfo.schedulePrefetch()}fetchLaunchpadInfo(){return this.deferredLaunchpadInfo.fetch()}getBaseInfo(){return this.baseInfo}getFavoritesLength(){return this.favoriteList.length}typeAdaptor(e){return"customItem"===e?"custom":"microApp"===e?"app":e}setFavorites(e){var t;this.filteredFavoriteList=null!==(t=null==e?void 0:e.filter((e=>{var t;return"microApp"===(null===(t=e.launchpadCollection)||void 0===t?void 0:t.type)||"customItem"===e.launchpadCollection.type})))&&void 0!==t?t:[],this.favoriteList=e}setMicroApps(e){this.microApps=e,this.syncValidRecentlyVisitor()}syncValidRecentlyVisitor(){if(!window.STANDALONE_MICRO_APPS){var e=this.getAllVisitors().filter((e=>"app"===e.type?this.microApps.some((t=>t.id===e.id)):this.customList.some((t=>t.type===e.type&&t.id===e.id))));this.setAllVisitors(e)}}setAsFavorite(e){return(0,d.A)((function*(){yield pe(e,{interceptorParams:{ignoreLoadingBar:!0}})}))()}deleteFavorite(e){return(0,d.A)((function*(){var t;yield(t=e,le.http.delete("api/gateway/user_service.launchpad.DeleteCollection/api/v1/launchpad/collection/".concat(t),{interceptorParams:{ignoreLoadingBar:!0}}))}))()}isFavorite(e){return"app"===e.type?this.filteredFavoriteList.some((t=>"app"===this.typeAdaptor(t.launchpadCollection.type)&&t.microAppId===e.id)):this.filteredFavoriteList.some((t=>"custom"===this.typeAdaptor(t.launchpadCollection.type)&&t.customItemId===e.id))}getItem(e,t){return(this.storage.getItem(this.storageKey)||[]).find((a=>a.id===t&&a.type===e))}getItemIndex(e,t){return(this.storage.getItem(this.storageKey)||[]).findIndex((a=>a.id===t&&a.type===e))}hasItem(e,t){return(this.storage.getItem(this.storageKey)||[]).some((a=>a.id===t&&a.type===e))}getAllVisitors(){return this.storage.getItem(this.storageKey)||[]}setItem(e,t){var a=this.getAllVisitors();if(this.hasItem(e,t.id)){var i=this.getItemIndex(e,t.id);a.splice(i,1),a.unshift(t)}else a.unshift(t);a.length>this.maxVisitorLength&&a.pop(),this.setAllVisitors(a)}setAllVisitors(e){this.storage.setItem(this.storageKey,e)}pushVisitor(e,t){if("app"===e){var a=t;t={id:a.id,app:{name:a.name,icons:a.icons,localeName:a.localeName,id:a.id,homepage:a.homepage,currentVersion:a.currentVersion,standaloneMode:a.standaloneMode},type:"app"}}this.setItem(e,t)}getVisitor(e,t){return this.getItem(e,t)}getRealDesktopItem(e){var t;return"microApp"===(null===(t=e.launchpadCollection)||void 0===t?void 0:t.type)?this.microApps.find((t=>t.id===e.microAppId)):this.customList.find((t=>t.id===e.customItemId))}setFavoriteAsVisitor(e){var t,a=this.typeAdaptor(null===(t=e.launchpadCollection)||void 0===t?void 0:t.type);if("link"!==a){var i=this.getRealDesktopItem(e);i&&this.pushVisitor(a,i)}}getSitemapList(){var e=this.baseInfo.microApps.filter((e=>!e.internal)),t=this.baseInfo.siteSort;return null==t?void 0:t.map((t=>(0,s.A)((0,s.A)({},t),{},{apps:(t.apps||[]).map((t=>{var a=e.find((e=>e.id===t.id))||{};return(0,s.A)((0,s.A)({},t),(0,D.pick)(a,["name","icons","localeName","homepage","currentVersion","standaloneMode"]))}))})))}};function fe(e){var t=function(){var t=(0,d.A)((function*(){if(!(he.getFavoritesLength()>=25&&(r.Dialog.show({title:"收藏数量已达上限",content:"当前收藏链接数量已达上限(25个),请删除部分链接后再添加。",contentStyle:{zIndex:5001}}),1))){var t;if("app"===e.item.type){var a=e.item;t={microAppId:a.id,launchpadCollection:{type:"microApp",name:a.app.name}}}else{var i=e.item;t={customItemId:i.id,launchpadCollection:{type:"customItem",name:i.name}}}try{var n;yield he.setAsFavorite(t),null==e||null===(n=e.onSetAsFavorite)||void 0===n||n.call(e)}catch(e){}}}));return function(){return t.apply(this,arguments)}}();return n().createElement("div",{className:h()(H.cellWrapper,{[H.positionLeft]:"left"===(null==e?void 0:e.position)})},n().createElement("div",{className:h()(H.cellItem,H[e.size],{[H.active]:e.active})},"app"===e.item.type?n().createElement(V,{showAddIcon:e.showAddIcon,isFavorite:e.isFavorite,app:e.item.app,onClick:()=>{var t=e.item.app;he.pushVisitor("app",t)},onAddClick:t,size:e.size}):"custom"===e.item.type?n().createElement(ne,{showAddIcon:e.showAddIcon,isFavorite:e.isFavorite,name:e.item.name,url:e.item.url,onClick:()=>{var t=e.item;he.pushVisitor("custom",t)},onAddClick:t,size:e.size}):n().createElement(Q,{name:e.item.name,items:e.item.items,size:e.size})))}var ge=n().createContext({columns:7,rows:4}),ve=()=>n().useContext(ge),xe=a(8479),ye={};ye.styleTagTransform=L(),ye.setAttributes=A(),ye.insert=k().bind(null,"head"),ye.domAPI=x(),ye.insertStyleElement=E(),g()(xe.A,ye);const ke=xe.A&&xe.A.locals?xe.A.locals:void 0;function we(e){var{columns:t,rows:a}=ve();return n().createElement("div",{className:ke.desktop,style:{padding:"0 ".concat(e.arrowWidthPercent/e.desktopCount,"%"),gridTemplateColumns:"repeat(".concat(t,",1fr)"),gridTemplateRows:"repeat(".concat(a,",1fr)")}},e.desktop.items.map(((t,a)=>n().createElement(fe,{key:a,item:t,active:a===e.activeIndex}))))}var Ae=a(1135),be={};be.styleTagTransform=L(),be.setAttributes=A(),be.insert=k().bind(null,"head"),be.domAPI=x(),be.insertStyleElement=E(),g()(Ae.A,be);const Ee=Ae.A&&Ae.A.locals?Ae.A.locals:void 0;var Ce=a(8095),Le={};Le.styleTagTransform=L(),Le.setAttributes=A(),Le.insert=k().bind(null,"head"),Le.domAPI=x(),Le.insertStyleElement=E(),g()(Ce.A,Le);const Ie=Ce.A&&Ce.A.locals?Ce.A.locals:void 0;var Ne=a(219),Se={};Se.styleTagTransform=L(),Se.setAttributes=A(),Se.insert=k().bind(null,"head"),Se.domAPI=x(),Se.insertStyleElement=E(),g()(Ne.A,Se);const We=Ne.A&&Ne.A.locals?Ne.A.locals:void 0;function ze(e){var t,a,r,{item:o}=e,l=(0,i.useMemo)((()=>{var e,t;return"microApp"===(null===(e=o.launchpadCollection)||void 0===e?void 0:e.type)?!o.microAppId:"customItem"===(null===(t=o.launchpadCollection)||void 0===t?void 0:t.type)&&!(null!=o&&o.customItemId)}),[o]),s=(0,i.useMemo)((()=>{var e,t,a,i=null===(e=o.launchpadCollection)||void 0===e?void 0:e.link;if("microApp"===(null===(t=o.launchpadCollection)||void 0===t?void 0:t.type))return i;var n=document.baseURI;return null!=i&&i.startsWith(n)?null==i?void 0:i.replace(n,"/"):null===(a=o.launchpadCollection)||void 0===a?void 0:a.link}),[o]);return n().createElement("div",null,n().createElement("div",{className:h()(We.cellWrapper,{[We.disabled]:l})},n().createElement(W,{className:We.link,url:s,onClick:e=>{var t,a,i,n;l?e.preventDefault():("link"!==(null===(n=o.launchpadCollection)||void 0===n?void 0:n.type)&&he.setFavoriteAsVisitor(o),!(null!==(t=o.launchpadCollection)&&void 0!==t&&null!==(t=t.link)&&void 0!==t&&t.startsWith("https://")||null!==(a=o.launchpadCollection)&&void 0!==a&&null!==(a=a.link)&&void 0!==a&&a.startsWith("http://"))||null!==(i=o.launchpadCollection)&&void 0!==i&&null!==(i=i.link)&&void 0!==i&&i.startsWith(document.baseURI)||(e.preventDefault(),window.open(o.launchpadCollection.link,"_blank")))}},n().createElement(n().Fragment,null,n().createElement("span",{className:h()(We.appLink,We.square)},n().createElement(z,(0,c.A)({},null!==(t=(0,D.omit)(null==o||null===(a=o.launchpadCollection)||void 0===a?void 0:a.icon,["prefix","type"]))&&void 0!==t?t:{},{style:{fontSize:18}}))),n().createElement("span",{className:We.name},null==o||null===(r=o.launchpadCollection)||void 0===r?void 0:r.name)))))}var _e=a(8430),Be={};Be.styleTagTransform=L(),Be.setAttributes=A(),Be.insert=k().bind(null,"head"),Be.domAPI=x(),Be.insertStyleElement=E(),g()(_e.A,Be);const Pe=_e.A&&_e.A.locals?_e.A.locals:void 0;var De=(0,m.wrapBrick)("eo-link");function Me(e,t){var a;return(0,i.useEffect)((()=>{var t;null===(t=e.onLoad)||void 0===t||t.call(e)}),[]),n().createElement("div",{className:Pe.scrollContainer,style:e.containerStyle,ref:t,onWheel:e=>{e.stopPropagation()}},n().createElement("div",{className:Pe.siteMapContainer},null===(a=e.categoryList)||void 0===a?void 0:a.map((e=>{var t;return n().createElement("div",{className:Pe.groupWrapper,key:e.name},n().createElement("div",null,e.name),n().createElement("ul",{className:Pe.group},null===(t=e.apps)||void 0===t?void 0:t.map(((e,t)=>n().createElement("li",{className:Pe.item,key:t},n().createElement(De,{type:"plain",url:e.homepage,onClick:()=>{return t=e,void he.pushVisitor("app",t);var t}},e.name))))))}))))}var Fe=(0,i.forwardRef)(Me),He=(0,m.wrapBrick)("eo-link"),Te=(0,m.wrapBrick)("eo-icon"),je=function(e){return e.Favorities="favorities",e.Sitemap="sitemap",e}(je||{}),qe=je.Sitemap;function Re(e,t){var[a]=(0,i.useState)(he.getAllVisitors()),[r,o]=(0,i.useState)([]),[l,s]=(0,i.useState)(!he.favoritesLoaded),[p,c]=(0,i.useState)(qe),m=(0,i.createRef)(),u=(0,i.useRef)(null),[f,g]=(0,i.useState)(),v=function(){var e=(0,d.A)((function*(e){var t=yield he.fetchFavoriteList(e);s(!1),o(t)}));return function(t){return e.apply(this,arguments)}}(),x=(e,t)=>{e.stopPropagation(),qe=t,c(t)};(0,i.useEffect)((()=>{(0,d.A)((function*(){v()}))()}),[]);var y=()=>{v(!0)},k=()=>{var e=m.current,t=u.current;e&&t&&Promise.resolve().then((()=>{var a=e.getBoundingClientRect(),i=t.getBoundingClientRect().bottom-a.top;g(i)}))},w=(0,i.useMemo)((()=>n().createElement("div",{className:Ie.visited},n().createElement("div",{className:Ie.title},"最近访问"),n().createElement("div",{className:Ie.desktop},null==a?void 0:a.map(((e,t)=>n().createElement(fe,{size:"small",key:t,item:e,showAddIcon:!0,isFavorite:!he.isFavorite(e),onSetAsFavorite:y})))))),[a,l]),A=(0,i.useMemo)((()=>n().createElement("div",{className:h()([Ie.section,Ie.favorites])},l&&n().createElement("div",{className:Ie.spin},n().createElement(Te,{lib:"antd",icon:"loading",theme:"outlined",style:{fontSize:"2.5rem"},spinning:!0})),(0,D.isEmpty)(r)?!l&&n().createElement("div",{className:Ie.emptyTips},"把常用的页面链接加入收藏夹,方便快速访问 ~"," ",n().createElement(He,{url:"/launchpad-collection",style:{marginLeft:30}},"管理我的收藏")):n().createElement("div",{className:Ie.favoriteContainer},null==r?void 0:r.map(((e,t)=>n().createElement(ze,{key:t,item:e})))))),[r,l]),b=(0,i.useMemo)((()=>{var e,t=null===(e=he.getSitemapList())||void 0===e?void 0:e.filter((e=>{var t;return(null===(t=e.apps)||void 0===t?void 0:t.length)>0}));return n().createElement(Fe,{ref:m,categoryList:t,containerStyle:{height:f,overflow:"auto"},onLoad:k})}),[f]);return n().createElement("div",{ref:u,style:{flex:1,padding:"0 ".concat(e.desktopCount?e.arrowWidthPercent/e.desktopCount:10,"%")}},!(null==a||!a.length)&&w,n().createElement("div",{className:Ie.modeWrapper},n().createElement("div",{className:Ie.header},p===je.Favorities?n().createElement("div",{className:Ie.title}," ","我的收藏",n().createElement(Te,{className:Ie.modeIcon,icon:"launchpad-sitmap",lib:"easyops",category:"app",onClick:e=>x(e,je.Sitemap)})):n().createElement("div",{className:Ie.title},"系统地图",n().createElement(Te,{className:Ie.modeIcon,icon:"launchpad-collection",lib:"easyops",category:"app",onClick:e=>x(e,je.Favorities)})),p===je.Favorities&&n().createElement("div",{className:Ie.settingsContainer},n().createElement(He,{url:"/launchpad-collection"},n().createElement(Te,{className:Ie.settings,icon:"launchpad-setting",lib:"easyops",category:"app"}),"管理收藏"))),p===je.Favorities?A:b))}var Je=0;function Ke(e){var[t,a]=n().useState(Je),[o,l]=n().useState(-1),{columns:p,rows:c}=ve(),{setDesktopDir:d}=Y();(0,i.useEffect)((()=>{he.setMaxVisitorLength(8)}),[p,!0]);var m=e=>({name:"-",items:e.map((e=>"custom"===e.type?{id:e.id,name:e.name,url:e.homepage,type:"custom",app:e}:{type:"app",id:e.id,app:e}))}),u=e=>(0,s.A)((0,s.A)({localeName:e.name,homepage:e.url},e),{},{type:"custom"}),f=[],g=e.microApps;if("object"==typeof(null==e?void 0:e.desktops)&&e.desktops.length>0){g=[];var v=e.microApps.reduce(((e,t)=>(e.set(t.id,t),e)),new Map);f=e.desktops.map((e=>({name:e.name,items:e.items.map((e=>{if("app"===e.type){if(v.has(e.id)){var t=v.get(e.id);return g.push(t),v.delete(e.id),{type:e.type,id:e.id,app:t}}}else if("dir"===e.type){var a=e.items.map((e=>{if("app"===e.type){if(v.has(e.id)){var t=v.get(e.id);return g.push(t),v.delete(e.id),{type:e.type,id:e.id,app:t}}}else if("custom"===e.type)return g.push(u(e)),e})).filter(Boolean);if(a.length>0)return{type:e.type,id:e.id,name:e.name,items:a}}else if("custom"===e.type)return g.push(u(e)),e})).filter(Boolean).slice(0,p*c)}))).filter((e=>e.items.length>0))}else e.desktops||(f=(0,D.chunk)(e.microApps,p*c).map(m));var x={};if(e.q){var y=e.q.toLowerCase();x=m(g.filter((e=>e.localeName.toLowerCase().includes(y)||e.name.toLowerCase().includes(y)||e.id.toLowerCase().includes(y))).slice(0,p*c))}n().useEffect((()=>{l(-1)}),[t]),n().useEffect((()=>{l(e.q&&x&&x.items.length>0?0:-1)}),[e.q]);var k=n().useRef(!1),w=e=>{k.current||(Je=e,a(e),k.current=!0,setTimeout((()=>{k.current=!1}),400))},A=n().useCallback((()=>{t>0&&w(t-1)}),[t]),b=n().useCallback((()=>{var e=f.length;t<e&&w(t+1)}),[t,f.length]);n().useEffect((()=>{var a=a=>{if(0!==t||e.q){var i=a.key||a.keyCode||a.which,n=e.q?x:f[t-1];if("Enter"===i||13===i){if(a.preventDefault(),o>=0&&o<n.items.length){var s=n.items[o];if("app"===s.type)he.pushVisitor("app",s.app),(0,r.getHistory)().push(s.app.homepage);else if("custom"===s.type)he.pushVisitor("custom",s),window.open(s.url);else if("dir"===s.type){var m=o%p,u=Math.floor(o/p);null==d||d({activeIndex:0,dir:{name:s.name,items:s.items},coordinates:{x:window.innerWidth*(m+1)/(p+1),y:window.innerHeight*(u+1)/(c+1)}})}}}else{var h=0;if("ArrowRight"===i||39===i?h=1:"ArrowLeft"===i||37===i?h=-1===o?n.items.length:-1:"ArrowDown"===i||40===i?h=-1===o?1:p:"ArrowUp"!==i&&38!==i||(h=-1===o?n.items.length:-p),0!==h){a.preventDefault();var g=o+h;g>=0&&g<n.items.length&&l(g)}}}};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}}),[t,o,e.q,p,d]);var E=n().useRef(0),C=n().useRef(0),L=n().useRef(!0),I=n().useRef(),N=f.length+1;return n().createElement("div",{onWheel:e=>{E.current+=e.deltaX,C.current+=e.deltaY,(()=>{if(L.current){var e=Math.abs(C.current)>Math.abs(E.current)?C:E,t=e===C?4:40;if(e.current>=t)b();else{if(!(e.current<=-t))return;A()}E.current=0,C.current=0,L.current=!1}})(),I.current&&clearTimeout(I.current),I.current=setTimeout((()=>{E.current=0,C.current=0,L.current=!0}),50)},className:h()(Ee.desktopSlider,{[Ee.filtered]:e.q})},n().createElement("div",{className:Ee.desktopSelector},[{name:n().createElement(z,{lib:"antd",theme:"filled",icon:"home"})},...f].map(((e,a)=>n().createElement(n().Fragment,{key:a},0!==a&&n().createElement("span",{className:Ee.selectorSeparator}),n().createElement("a",{className:h()(Ee.desktopName,{[Ee.active]:t===a}),onClick:e=>((e,a)=>{e.stopPropagation(),t!==a&&w(a)})(e,a),role:"button"},e.name))))),n().createElement("div",{className:Ee.scrollContainer},n().createElement("div",{className:Ee.desktopList,style:{width:"".concat(100*N,"%"),marginLeft:"".concat(-100*t,"%"),transition:"margin-left ".concat(400,"ms ease-out")}},n().createElement(Re,{desktopCount:f.length,arrowWidthPercent:e.arrowWidthPercent}),f.map(((a,i)=>n().createElement(we,{key:i,desktop:a,desktopCount:f.length,arrowWidthPercent:e.arrowWidthPercent,activeIndex:t-1===i?o:-1})))),e.q&&n().createElement("div",{className:Ee.filteredList},n().createElement(we,{desktop:x,desktopCount:1,arrowWidthPercent:e.arrowWidthPercent,activeIndex:o}))),n().createElement("a",{className:h()(Ee.arrowLeft,{[Ee.available]:t>0}),style:{width:"".concat(e.arrowWidthPercent,"%")},onClick:e=>{e.stopPropagation(),A()},role:"button"},n().createElement("span",{className:Ee.arrowButton},n().createElement(z,{lib:"antd",theme:"outlined",icon:"left"}))),n().createElement("a",{className:h()(Ee.arrowRight,{[Ee.available]:t<N-1}),style:{width:"".concat(e.arrowWidthPercent,"%")},onClick:e=>{e.stopPropagation(),b()},role:"button"},n().createElement("span",{className:Ee.arrowButton},n().createElement(z,{lib:"antd",theme:"outlined",icon:"right"}))))}var Ze=a(1759),Ve={};Ve.styleTagTransform=L(),Ve.setAttributes=A(),Ve.insert=k().bind(null,"head"),Ve.domAPI=x(),Ve.insertStyleElement=E(),g()(Ze.A,Ve);const Ue=Ze.A&&Ze.A.locals?Ze.A.locals:void 0;function Ye(e){var{columns:t,rows:a}=ve(),{setDesktopDir:i}=Y(),[o,l]=n().useState(!1),[s,c]=n().useState(e.activeIndex),d=e.dir.items.slice(0,t*a),m=e.coordinates.x-document.documentElement.clientWidth/2,u=e.coordinates.y-document.documentElement.clientHeight/2;n().useEffect((()=>{var e=e=>{e.stopPropagation(),e.preventDefault();var a=e.key||e.keyCode||e.which;if("Escape"===a||27===a)null==i||i(void 0);else if("Enter"===a||13===a){if(s>=0&&s<d.length){var n=d[s];"app"===n.type?(0,r.getHistory)().push(n.app.homepage):window.open(n.url)}}else{var o=0;if("ArrowRight"===a||39===a?o=1:"ArrowLeft"===a||37===a?o=-1===s?d.length:-1:"ArrowDown"===a||40===a?o=-1===s?1:t:"ArrowUp"!==a&&38!==a||(o=-1===s?d.length:-t),0!==o){var l=s+o;l>=0&&l<d.length&&c(l)}}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[e.dir,s,t,a,i]);var h=Math.ceil(d.length/t);return n().createElement(p.A,{in:!0,timeout:150,appear:!0,classNames:"no-rules-class-name",onEntering:()=>{l(!0)}},n().createElement("div",{className:Ue.dirContainer,onClick:e=>{e.stopPropagation(),null==i||i(void 0)},style:{padding:"0 ".concat(e.arrowWidthPercent,"% 36px"),transform:o?"none":"translate(".concat(m,"px,").concat(u,"px) scale(0.01)")}},n().createElement("div",{className:Ue.dirName},e.dir.name),n().createElement("div",{className:Ue.dirContent,style:{height:"".concat(100*(h+.2)/(a+1),"%"),gridTemplateColumns:"repeat(".concat(t,",1fr)"),gridTemplateRows:"repeat(".concat(h,",1fr)")}},d.map(((e,t)=>n().createElement(fe,{key:e.id,item:e,active:s===t}))))))}var Oe=a(3031),Xe={};Xe.styleTagTransform=L(),Xe.setAttributes=A(),Xe.insert=k().bind(null,"head"),Xe.domAPI=x(),Xe.insertStyleElement=E(),g()(Oe.A,Xe);const Ge=Oe.A&&Oe.A.locals?Oe.A.locals:void 0;var Qe=(0,m.wrapBrick)("eo-icon");function $e(e){var{settings:t,desktops:a}=he.getBaseInfo(),i=()=>he.getBaseInfo().microApps.filter((e=>e&&(!e.status||"enabled"===e.status||"developing"===e.status))),[o,l]=n().useState(""),[s,m]=n().useState(i()),[u,h]=n().useState(),[f,g]=n().useState(!!window.STANDALONE_MICRO_APPS&&!he.loaded);return n().useEffect((()=>{var t=function(){var t=(0,d.A)((function*(){try{yield he.fetchLaunchpadInfo(),g(!1),m(i())}catch(a){var t;null===(t=e.onWillClose)||void 0===t||t.call(e),(0,r.handleHttpError)(a)}}));return function(){return t.apply(this,arguments)}}();window.STANDALONE_MICRO_APPS?t():he.init()}),[]),n().useEffect((()=>{var t=t=>{var a,i=t.key||t.keyCode||t.which;"Escape"!==i&&27!==i||null===(a=e.onWillClose)||void 0===a||a.call(e)};return window.addEventListener("keydown",t),()=>{window.removeEventListener("keydown",t)}}),[e.onWillClose]),n().createElement(ge.Provider,{value:t},n().createElement(U.Provider,{value:{desktopDir:u,setDesktopDir:h}},n().createElement("div",{className:Ge.launchpad,onClick:e.onWillClose},f?n().createElement("div",{className:Ge.loadingWrapper},n().createElement(Qe,{icon:"loading",lib:"antd",theme:"outlined",spinning:!0})):n().createElement(n().Fragment,null,n().createElement(p.A,{in:!u,timeout:100,classNames:{enter:Ge.fadeEnter,enterActive:Ge.fadeEnterActive,exit:Ge.fadeExit,exitActive:Ge.fadeExitActive,exitDone:Ge.fadeExitDone}},n().createElement("div",{className:Ge.launchpadContainer},n().createElement(P,{onChange:e=>{l(e)}}),n().createElement(Ke,{q:o,microApps:s,desktops:a,arrowWidthPercent:9}))),u&&n().createElement(Ye,(0,c.A)({},u,{arrowWidthPercent:9}))))))}var et=a(4739),tt={};tt.styleTagTransform=L(),tt.setAttributes=A(),tt.insert=k().bind(null,"head"),tt.domAPI=x(),tt.insertStyleElement=E(),g()(et.A,tt);const at=et.A&&et.A.locals?et.A.locals:void 0;function it(e){var[t,a]=n().useState(!0);return n().createElement(p.A,{in:t,timeout:100,appear:!0,classNames:(0,s.A)({},at),onExited:()=>{var t;null===(t=e.onClose)||void 0===t||t.call(e)}},n().createElement($e,{onWillClose:()=>{var t;a(!1),null===(t=e.onWillClose)||void 0===t||t.call(e)}}))}function nt(e){var t=document.createElement("div");return n().useEffect((()=>(document.body.appendChild(t),()=>{document.body.removeChild(t)}))),e.visible?(0,l.createPortal)(n().createElement(it,{onWillClose:e.onWillClose,onClose:e.onClose}),t):null}var rt=a(6674);function ot(){var[e,t]=(0,i.useState)(!1),a=(0,i.useCallback)((()=>{(0,r.getRuntime)().toggleLaunchpadEffect(!1)}),[]);return(0,i.useEffect)((()=>(0,r.getHistory)().listen((()=>{a(),t(!1)}))),[a]),(0,i.useEffect)((()=>(rt.A.filter=function(){return!0},(0,rt.A)("alt+l",(e=>{e.preventDefault(),t((e=>{var t=!e;return t||a(),t}))})),()=>{rt.A.unbind("alt+l")})),[a]),(0,i.useEffect)((()=>{(0,r.getRuntime)().toggleLaunchpadEffect(e)}),[e]),(0,i.useEffect)((()=>{he.preFetchLaunchpadInfo(),he.preFetchFavorites()}),[]),n().createElement(n().Fragment,null,n().createElement("a",{role:"button",className:"launchpadLink",onClick:()=>{t(!0)}},n().createElement(o.A,null)),n().createElement(nt,{visible:e,onWillClose:a,onClose:()=>{t(!1)}}))}},9929:(e,t,a)=>{a.d(t,{I:()=>r,K:()=>i,NS:()=>n});var i=function(e){return e.SEARCH_BY_NAME_KEYWORD="SEARCH_BY_NAME_KEYWORD",e}({}),n="bricks/basic/launchpad",r={en:{SEARCH_BY_NAME_KEYWORD:"Search by name/keyword"},zh:{SEARCH_BY_NAME_KEYWORD:"通过名称/关键字搜索"}}},2240:(e,t,a)=>{a.d(t,{A:()=>r});var i=a(9575),n=a(8769);const r=e=>n.createElement("svg",(0,i.A)({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,viewBox:"0 0 16 16"},e),n.createElement("g",{fill:"currentColor",fillRule:"nonzero"},n.createElement("path",{d:"M0 0h4v4H0zM0 6h4v4H0zM6 0h4v4H6zM6 6h4v4H6zM12 0h4v4h-4zM12 6h4v4h-4zM0 12h4v4H0zM6 12h4v4H6zM12 12h4v4h-4z"})))},1:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".launchpadLink{width:24px;height:24px;display:flex;justify-content:center;align-items:center}.launchpadLink svg{vertical-align:top;filter:grayscale(100%);opacity:0.6;width:16px;height:16px;cursor:pointer}.launchpadLink:hover svg{color:var(--color-brand-hover)!important;filter:none;opacity:1}",""]);const l=o.toString()},8479:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".desktop--LCHJxkdK{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(4,1fr)}",""]),o.locals={desktop:"desktop--LCHJxkdK"};const l=o},2867:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".appLink--lI6ZH8_J{display:flex;width:80px;height:80px;color:#fff;justify-content:center;align-items:center;position:relative}.appLink--lI6ZH8_J.circle--CqDDCO2g,\n .appLink--lI6ZH8_J.square--KkzxvIhL{background-color:rgba(255,255,255,0.1)}.appLink--lI6ZH8_J.small--oHLIwdUo{width:56px;height:56px}@media (max-height: 860px), (max-width: 1280px){.appLink--lI6ZH8_J.small--oHLIwdUo.appLink--lI6ZH8_J{transform:scale(0.8)}.appLink--lI6ZH8_J.small--oHLIwdUo + .appName--YMtvoP3g{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.appLink--lI6ZH8_J.small--oHLIwdUo.appLink--lI6ZH8_J{transform:scale(0.7)}.appLink--lI6ZH8_J.small--oHLIwdUo + .appName--YMtvoP3g{font-size:12px;height:18px}}.appLink--lI6ZH8_J.circle--CqDDCO2g{border-radius:40px}.appLink--lI6ZH8_J.square--KkzxvIhL{border-radius:10px}.appLink--lI6ZH8_J.installing--wQF5JcJn{opacity:0.5}.appLink--lI6ZH8_J:hover .addIcon--EM1rukmN{display:block}.addIcon--EM1rukmN{position:absolute;font-size:20px;color:white;display:none}.circleIcon--C6tDgTcK{right:-7px;bottom:5px}.squareIcon--Vl9EHU0t{right:-3px;bottom:5px}.appLink--lI6ZH8_J:hover{color:#fff;opacity:0.6}.appIcon--CfrDjC_d{width:100%}.appName--YMtvoP3g{display:block;font-size:16px;line-height:1.5;height:24px;text-align:center}@media (max-height: 860px), (max-width: 1280px){.appLink--lI6ZH8_J{transform:scale(0.75)}.appName--YMtvoP3g{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.appLink--lI6ZH8_J{transform:scale(0.6)}.appName--YMtvoP3g{font-size:12px;height:18px}}@media (max-height: 640px), (max-width: 900px){.appLink--lI6ZH8_J{transform:scale(0.5)}}",""]),o.locals={appLink:"appLink--lI6ZH8_J",circle:"circle--CqDDCO2g",square:"square--KkzxvIhL",small:"small--oHLIwdUo",appName:"appName--YMtvoP3g",installing:"installing--wQF5JcJn",addIcon:"addIcon--EM1rukmN",circleIcon:"circleIcon--C6tDgTcK",squareIcon:"squareIcon--Vl9EHU0t",appIcon:"appIcon--CfrDjC_d"};const l=o},2535:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".cellWrapper--NydKY8Uu{display:flex;justify-content:center;align-items:center;overflow:hidden}.cellWrapper--NydKY8Uu.positionLeft--VreE62uh{justify-content:flex-start}.cellItem--Se6r55Ne{height:144px;padding:10px;min-width:120px;display:flex;justify-content:space-between;align-items:center;flex-direction:column}.cellItem--Se6r55Ne.small--QJ2gld44{height:110px}.cellItem--Se6r55Ne.active--KANJZK5a{background-color:rgba(0,0,0,0.3);border-radius:6px}@media (max-height: 860px), (max-width: 1280px){.cellItem--Se6r55Ne{height:134px;min-width:100px;justify-content:normal}.cellItem--Se6r55Ne.small--QJ2gld44{height:110px;min-width:76px;justify-content:normal}}@media (max-height: 700px), (max-width: 1024px){.cellItem--Se6r55Ne{height:129px;min-width:80px;justify-content:normal}.cellItem--Se6r55Ne.small--QJ2gld44{height:100px;min-width:60px;justify-content:normal}}",""]),o.locals={cellWrapper:"cellWrapper--NydKY8Uu",positionLeft:"positionLeft--VreE62uh",cellItem:"cellItem--Se6r55Ne",small:"small--QJ2gld44",active:"active--KANJZK5a"};const l=o},1651:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".appLink--XvctrW4d{display:flex;width:80px;height:80px;color:#fff;justify-content:center;align-items:center;position:relative}.appLink--XvctrW4d.circle--ZQ_SHyEN,\n .appLink--XvctrW4d.square--C8X1afGq{background-color:rgba(255,255,255,0.1)}.appLink--XvctrW4d.small--Mux_F8QK{width:56px;height:56px}@media (max-height: 860px), (max-width: 1280px){.appLink--XvctrW4d.small--Mux_F8QK.appLink--XvctrW4d{transform:scale(0.8)}.appLink--XvctrW4d.small--Mux_F8QK + .appName--wsBI2CZC{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.appLink--XvctrW4d.small--Mux_F8QK.appLink--XvctrW4d{transform:scale(0.7)}.appLink--XvctrW4d.small--Mux_F8QK + .appName--wsBI2CZC{font-size:12px;height:18px}}.appLink--XvctrW4d.circle--ZQ_SHyEN{border-radius:40px}.appLink--XvctrW4d.square--C8X1afGq{border-radius:10px}.addIcon--DHJxfx2l{position:absolute;display:none;font-size:20px;color:white}.circleIcon--NoKu04zb{right:-7px;bottom:5px}.squareIcon--JeHz5VMI{right:-3px;bottom:5px}.appLink--XvctrW4d:hover{color:#fff}.appIcon--K35YGQTl{width:100%}.appName--wsBI2CZC{display:block;font-size:16px;line-height:1.5;height:24px;text-align:center}@media (max-height: 860px), (max-width: 1280px){.appLink--XvctrW4d{transform:scale(0.75)}.appName--wsBI2CZC{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.appLink--XvctrW4d{transform:scale(0.6)}.appName--wsBI2CZC{font-size:12px;height:18px}}@media (max-height: 640px), (max-width: 900px){.appLink--XvctrW4d{transform:scale(0.5)}}",""]),o.locals={appLink:"appLink--XvctrW4d",circle:"circle--ZQ_SHyEN",square:"square--C8X1afGq",small:"small--Mux_F8QK",appName:"appName--wsBI2CZC",addIcon:"addIcon--DHJxfx2l",circleIcon:"circleIcon--NoKu04zb",squareIcon:"squareIcon--JeHz5VMI",appIcon:"appIcon--K35YGQTl"};const l=o},2575:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".dirLink--Ezp7L944{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);width:80px;height:80px;color:#fff;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.15);border-radius:10px;font-size:21px;padding:7px}.dirLink--Ezp7L944.small--S5JXqzG8{width:56px;height:56px}.dirLink--Ezp7L944 .appIcon--TdWlSNU2,\n .dirLink--Ezp7L944 .anticon{width:33px;height:33px}.dirLink--Ezp7L944 .anticon{display:flex;justify-content:center;align-items:center;overflow:hidden}.dirLink--Ezp7L944:hover{color:#fff}.dirName--zvy885aK{display:block;font-size:16px;line-height:1.5;height:24px;text-align:center}@media (max-height: 860px), (max-width: 1280px){.dirLink--Ezp7L944{transform:scale(0.75)}.dirName--zvy885aK{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.dirLink--Ezp7L944{transform:scale(0.6)}.dirName--zvy885aK{font-size:12px;height:18px}}@media (max-height: 640px), (max-width: 900px){.dirLink--Ezp7L944{transform:scale(0.5)}}",""]),o.locals={dirLink:"dirLink--Ezp7L944",small:"small--S5JXqzG8",appIcon:"appIcon--TdWlSNU2",dirName:"dirName--zvy885aK"};const l=o},1759:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".dirContainer--yobNkKHJ{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;position:absolute;left:0;top:0;transition:transform 150ms ease-out}.dirName--S6uKBACL{margin-bottom:40px;font-size:24px;line-height:32px;text-align:center}.dirContent--zQ9gweDn{display:grid;background-color:rgba(18,21,26,0.4);border-radius:20px;width:100%}",""]),o.locals={dirContainer:"dirContainer--yobNkKHJ",dirName:"dirName--S6uKBACL",dirContent:"dirContent--zQ9gweDn"};const l=o},1135:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".desktopSlider--AScHB1Kd{flex:1;position:relative;padding-top:110px;padding-bottom:50px}.filtered--OQSTba5B .desktopList--nOFGKtg0,\n .filtered--OQSTba5B .arrowLeft--xkZ60z9A,\n .filtered--OQSTba5B .arrowRight--SFdZw31z,\n .filtered--OQSTba5B .desktopSelector--rYqx7sAu{display:none}.scrollContainer--PyCfQg85{width:100%;height:100%;overflow:hidden}.desktopList--nOFGKtg0{display:flex;height:100%}.filteredList--qgFcXHyE{display:flex;height:100%}.arrowLeft--xkZ60z9A,\n.arrowRight--SFdZw31z{position:absolute;top:110px;bottom:50px;justify-content:center;align-items:center;display:none}.arrowLeft--xkZ60z9A.available--yspNdU90, .arrowRight--SFdZw31z.available--yspNdU90{display:flex}.arrowLeft--xkZ60z9A{left:0}.arrowRight--SFdZw31z{right:0}.arrowButton--MHbxtjNQ{width:70px;height:70px;font-size:36px;display:flex;justify-content:center;align-items:center;color:#e6e6e6;background-color:rgba(255,255,255,0.1);border-radius:6px;visibility:hidden}.arrowLeft--xkZ60z9A:hover .arrowButton--MHbxtjNQ,\n.arrowRight--SFdZw31z:hover .arrowButton--MHbxtjNQ{visibility:visible}.desktopSelector--rYqx7sAu{position:absolute;top:0;left:0;right:0;height:110px;padding:36px 0;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}.desktopName--M1GlY6Xe{display:block;color:rgba(255,255,255,0.65);border-radius:6px;font-size:12px;line-height:38px;padding:0 16px}.desktopName--M1GlY6Xe:hover{color:#fff}.desktopName--M1GlY6Xe.active--gh6q8Xsv{color:#fff;background-color:rgba(18,21,26,0.3)}.selectorSeparator--tLrL2o9J{display:block;margin:0 8px;width:1px;height:16px;border-left:1px dashed rgba(255,255,255,0.15)}@media (max-height: 860px), (max-width: 1280px){.arrowButton--MHbxtjNQ{width:60px;height:60px;font-size:30px}.desktopSlider--AScHB1Kd{padding-top:98px}.desktopSelector--rYqx7sAu{padding:30px 0;height:98px}}@media (max-height: 700px), (max-width: 1024px){.arrowButton--MHbxtjNQ{width:50px;height:50px;font-size:25px}.desktopSlider--AScHB1Kd{padding-top:86px}.desktopSelector--rYqx7sAu{padding:24px 0;height:86px}}@media (max-height: 640px), (max-width: 900px){.arrowButton--MHbxtjNQ{width:40px;height:40px;font-size:20px}.desktopSlider--AScHB1Kd{padding-top:74px}.desktopSelector--rYqx7sAu{padding:18px 0;height:74px}}",""]),o.locals={desktopSlider:"desktopSlider--AScHB1Kd",filtered:"filtered--OQSTba5B",desktopList:"desktopList--nOFGKtg0",arrowLeft:"arrowLeft--xkZ60z9A",arrowRight:"arrowRight--SFdZw31z",desktopSelector:"desktopSelector--rYqx7sAu",scrollContainer:"scrollContainer--PyCfQg85",filteredList:"filteredList--qgFcXHyE",available:"available--yspNdU90",arrowButton:"arrowButton--MHbxtjNQ",desktopName:"desktopName--M1GlY6Xe",active:"active--gh6q8Xsv",selectorSeparator:"selectorSeparator--tLrL2o9J"};const l=o},219:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".cellWrapper--celYo8CM{display:flex;align-items:center;position:relative;transform-origin:0 0}.cellWrapper--celYo8CM:hover{background-color:rgba(255,255,255,0.1);border-radius:10px;cursor:pointer}.cellWrapper--celYo8CM:hover .closeIcon--kqBgSmBL{display:block}.cellWrapper--celYo8CM.disabled--SXwx9i_9{color:#d8d8d8;opacity:0.5;cursor:no-drop}.cellWrapper--celYo8CM.disabled--SXwx9i_9 .appLink--xxDzS__h,\n .cellWrapper--celYo8CM.disabled--SXwx9i_9 .name--gT42Hr47{cursor:no-drop}.cellWrapper--celYo8CM.disabled--SXwx9i_9:hover{background:none;border-radius:0}.cellWrapper--celYo8CM.disabled--SXwx9i_9:hover .closeIcon--kqBgSmBL{display:none}.cellItem--JZfNDEVv{height:144px;padding:10px;min-width:120px;display:flex;justify-content:space-between;align-items:center;flex-direction:column}.appLink--xxDzS__h{display:flex;width:46px;height:46px;color:#fff;justify-content:center;align-items:center;position:relative}.appLink--xxDzS__h.circle--wjMEocD_,\n .appLink--xxDzS__h.square--lOfLBD3x{background-color:rgba(255,255,255,0.1)}.appLink--xxDzS__h.circle--wjMEocD_{border-radius:40px}.appLink--xxDzS__h.square--lOfLBD3x{border-radius:10px}.appLink--xxDzS__h.installing--drkxXY1n{opacity:0.5}.addIcon--ruhiXc4_{position:absolute;font-size:25px;color:white}.circleIcon--nexpPxUz{right:-6px;bottom:5px}.squareIcon--BkpShWWs{right:-6px;bottom:5px}.appLink--xxDzS__h:hover{color:#fff}.appIcon--w9kHpYGc{width:95%}.appName--CLwLdUBP{display:block;font-size:16px;line-height:1.5;height:24px;text-align:center}.link--bllF9zn6{display:flex;justify-content:center;align-items:center}.name--gT42Hr47{flex:1;padding-left:20px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;color:white}.closeIcon--kqBgSmBL{font-size:12px;position:absolute;top:-5px;right:-3px;color:rgba(255,255,255,0.7);display:none}@media (max-height: 860px), (max-width: 1280px){.cellWrapper--celYo8CM{transform:scale(0.8)}}@media (max-height: 700px), (max-width: 1024px){.cellWrapper--celYo8CM{transform:scale(0.7)}}",""]),o.locals={cellWrapper:"cellWrapper--celYo8CM",closeIcon:"closeIcon--kqBgSmBL",disabled:"disabled--SXwx9i_9",appLink:"appLink--xxDzS__h",name:"name--gT42Hr47",cellItem:"cellItem--JZfNDEVv",circle:"circle--wjMEocD_",square:"square--lOfLBD3x",installing:"installing--drkxXY1n",addIcon:"addIcon--ruhiXc4_",circleIcon:"circleIcon--nexpPxUz",squareIcon:"squareIcon--BkpShWWs",appIcon:"appIcon--w9kHpYGc",appName:"appName--CLwLdUBP",link:"link--bllF9zn6"};const l=o},3031:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".launchpad--jiWBelji{background:rgba(36,41,51,0.93);position:fixed;top:0;bottom:0;left:0;right:0;z-index:5000;overflow:hidden;overflow-y:auto;color:#fff;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.launchpadContainer--_vrKLUwW{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.fadeEnter--lOmmReOY{opacity:0;transform:scale(0.95)}.fadeEnterActive--PRkux5Hj{opacity:1;transform:translateX(0);transition:opacity 100ms ease-out,transform 100ms ease-out}.fadeExit--egWs3z_Z{opacity:1}.fadeExitActive--Emt0ZO0f{opacity:0;transform:scale(0.95);transition:opacity 100ms ease-out,transform 100ms ease-out}.fadeExitDone--KS8Y8j_i{display:none}.loadingWrapper--a0uhMogW{display:flex;justify-content:center;align-items:center;height:100%;font-size:58px;color:var(--theme-cyan-color)}",""]),o.locals={launchpad:"launchpad--jiWBelji",launchpadContainer:"launchpadContainer--_vrKLUwW",fadeEnter:"fadeEnter--lOmmReOY",fadeEnterActive:"fadeEnterActive--PRkux5Hj",fadeExit:"fadeExit--egWs3z_Z",fadeExitActive:"fadeExitActive--Emt0ZO0f",fadeExitDone:"fadeExitDone--KS8Y8j_i",loadingWrapper:"loadingWrapper--a0uhMogW"};const l=o},4739:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".appear--fTt52aoG{opacity:0;transform:scale(1.05)}.appearActive--VTTHohOa{opacity:1;transform:translateX(0);transition:opacity 100ms ease-out,transform 100ms ease-out}.exit--xJVirpkU{opacity:1}.exitActive--JBRp0ETG{opacity:0;transform:scale(1.05);transition:opacity 100ms ease-out,transform 100ms ease-out}",""]),o.locals={appear:"appear--fTt52aoG",appearActive:"appearActive--VTTHohOa",exit:"exit--xJVirpkU",exitActive:"exitActive--JBRp0ETG"};const l=o},8095:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".desktop--ou0P6iGf{display:grid;grid-template-columns:repeat(8,1fr)}.desktop--ou0P6iGf .cellWrapper{justify-content:flex-start}.title--waO4P2iB{color:#fff;font-size:16px;padding-bottom:6px}.visited--tdY4xwnJ{padding-bottom:24px;margin-bottom:20px;border-bottom:1px rgba(255,255,255,0.25) solid}.favorites--lfUhBPuB .ant-spin-blur{opacity:1}.favorites--lfUhBPuB .ant-spin-blur::after{opacity:0}.modeWrapper--L03hs70G{height:0}.modeWrapper--L03hs70G .header--sdla4qan{display:flex;justify-content:space-between}.modeWrapper--L03hs70G .section--zyFAea1p{padding:10px 30px 20px}.modeWrapper--L03hs70G .modeIcon--CE2TFixF{margin-left:15px;padding:3px;border-radius:50%;opacity:0.8;background:rgba(255,255,255,0.1)}.modeWrapper--L03hs70G .modeIcon--CE2TFixF:hover{opacity:1}.modeWrapper--L03hs70G .emptyTips--IvkqCJZN{font-size:16px;line-height:24px}.modeWrapper--L03hs70G .emptyTips--IvkqCJZN a{color:#52a6f9}.modeWrapper--L03hs70G .emptyTips--IvkqCJZN a:hover{color:var(--antd-link-hover-color)}.spin--wMvBU9Kg{color:#8c8c8c;width:100%;height:200px;line-height:200px;display:flex;align-items:center;justify-content:center}.settingsContainer--Z_f8juq_ a{color:#fff}.settingsContainer--Z_f8juq_ .settings--nnLSnU29{cursor:pointer;margin-right:10px;color:rgba(255,255,255,0.7);font-size:13px;transition-duration:0.8s;transition-property:transform}.settingsContainer--Z_f8juq_:hover .settings--nnLSnU29{transform:rotate(180deg)}.favoriteContainer--CjB0c4Dt{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:2.5rem 7%;gap:2.5rem 7%}@media (max-height: 860px), (max-width: 1280px){.favoriteContainer--CjB0c4Dt{gap:1.7rem 4%}}@media (max-height: 720px), (max-width: 1024px){.favoriteContainer--CjB0c4Dt{gap:1rem 3%}.visited--tdY4xwnJ{padding-bottom:18px;margin-bottom:15px}}@media (max-height: 640px), (max-width: 900px){.favoriteContainer--CjB0c4Dt{gap:0.8rem 2%}}",""]),o.locals={desktop:"desktop--ou0P6iGf",title:"title--waO4P2iB",visited:"visited--tdY4xwnJ",favorites:"favorites--lfUhBPuB",modeWrapper:"modeWrapper--L03hs70G",header:"header--sdla4qan",section:"section--zyFAea1p",modeIcon:"modeIcon--CE2TFixF",emptyTips:"emptyTips--IvkqCJZN",spin:"spin--wMvBU9Kg",settingsContainer:"settingsContainer--Z_f8juq_",settings:"settings--nnLSnU29",favoriteContainer:"favoriteContainer--CjB0c4Dt"};const l=o},6087:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,'.searchBar--k7ys_9bU{display:flex;justify-content:center;align-items:flex-end;height:10%}.searchBar--k7ys_9bU .inputAffixWrapper--r90ghnJb{position:relative;width:100%;min-width:0;padding:4px 11px;color:var(--antd-input-color);font-size:14px;line-height:1.5715;background-image:none;display:inline-flex;height:42px;border-radius:21px;padding-left:54px;padding-right:4px;border:2px solid rgba(255,255,255,0.1);background-color:rgba(0,0,0,0.06);transition:padding-left 150ms ease-out;box-sizing:border-box}.searchBar--k7ys_9bU .inputAffixWrapper--r90ghnJb:hover{border-color:#0071eb;border-right-width:2px!important}.searchBar--k7ys_9bU .inputAffixWrapper--r90ghnJb .antInputPrefix--vr3ceVIR{width:30px;margin-left:0;margin-right:6px;display:flex;justify-content:center;color:rgba(255,255,255,0.65);flex:none;align-items:center;box-sizing:border-box}.searchBar--k7ys_9bU .inputAffixWrapper--r90ghnJb::before{width:0;visibility:hidden;content:"\\a0"}.searchBar--k7ys_9bU.focus--rcoZCXD5 .inputAffixWrapper--r90ghnJb,\n .searchBar--k7ys_9bU .inputAffixWrapperFocused--ym85u9fT{padding-left:4px;border-color:#2893f7;border-right-width:2px!important}.inputContainer--spZyJlDc{width:300px}.input--LvcE67vF{padding:0;border:none;outline:none;color:#fff;background-color:transparent;text-overflow:ellipsis;border-radius:3px}.input--LvcE67vF::placeholder{color:rgba(255,255,255,0.25)}',""]),o.locals={searchBar:"searchBar--k7ys_9bU",inputAffixWrapper:"inputAffixWrapper--r90ghnJb",antInputPrefix:"antInputPrefix--vr3ceVIR",focus:"focus--rcoZCXD5",inputAffixWrapperFocused:"inputAffixWrapperFocused--ym85u9fT",inputContainer:"inputContainer--spZyJlDc",input:"input--LvcE67vF"};const l=o},8430:(e,t,a)=>{a.d(t,{A:()=>l});var i=a(6758),n=a.n(i),r=a(935),o=a.n(r)()(n());o.push([e.id,".scrollContainer--dNX8Cn8d::-webkit-scrollbar{width:6px}.scrollContainer--dNX8Cn8d::-webkit-scrollbar-thumb{visibility:hidden;border-radius:3px;background-color:rgba(69,69,73,0.45)}.scrollContainer--dNX8Cn8d::-webkit-scrollbar-track{visibility:hidden;width:12px;background-color:rgb(140,140,140,0.2)}.scrollContainer--dNX8Cn8d:hover{background:rgba(18,21,26,0.4);box-shadow:0px 5px 10px 4px rgba(0,0,0,0.1);border-radius:6px}.scrollContainer--dNX8Cn8d:hover::-webkit-scrollbar-thumb,\n .scrollContainer--dNX8Cn8d:hover::-webkit-scrollbar-track{visibility:visible}.siteMapContainer--oPV4617W{padding-top:10px;column-count:5}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO{margin:0 30px;page-break-inside:avoid;break-inside:avoid}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO .group--ojLUh6U2{margin:0;padding:9px 0 58px}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO .item--UDV8jW76{list-style-type:none;font-size:12px;padding:5px 0px}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO .item--UDV8jW76 > eo-link{cursor:pointer;color:rgba(255,255,255,0.65)}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO .item--UDV8jW76 > eo-link:hover{color:var(--antd-link-hover-color)}",""]),o.locals={scrollContainer:"scrollContainer--dNX8Cn8d",siteMapContainer:"siteMapContainer--oPV4617W",groupWrapper:"groupWrapper--vg8DzjpO",group:"group--ojLUh6U2",item:"item--UDV8jW76"};const l=o}}]);
|
|
3
|
-
//# sourceMappingURL=9155.702eb4eb.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/9155.702eb4eb.js","mappings":"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","sources":["webpack:///./src/launchpad/SearchBar/SearchBar.module.css?483e","webpack:///./src/launchpad/common/wrapBrick.tsx","webpack:///./src/launchpad/SearchBar/SearchBar.tsx","webpack:///./src/launchpad/DesktopCell/DesktopCell.module.css?0d52","webpack:///./src/launchpad/DesktopApp/DesktopApp.module.css?89de","webpack:///./src/launchpad/utils/getImageUrl.tsx","webpack:///./src/launchpad/DesktopApp/DesktopApp.tsx","webpack:///./src/launchpad/DesktopDirContext.ts","webpack:///./src/launchpad/DesktopDir/DesktopDir.module.css?ef5b","webpack:///./src/launchpad/DesktopDir/DesktopDir.tsx","webpack:///./src/launchpad/DesktopCustom/DesktopCustom.module.css?b0be","webpack:///./src/launchpad/DesktopCustom/DesktopCustom.tsx","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/listCollection.js","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/createCollection.js","webpack:///./src/launchpad/LaunchpadService.ts","webpack:///../../node_modules/@next-api-sdk/user-service-sdk/dist/esm/api/user_service/launchpad/deleteCollection.js","webpack:///./src/launchpad/DesktopCell/DesktopCell.tsx","webpack:///./src/launchpad/LaunchpadSettingsContext.ts","webpack:///./src/launchpad/Desktop/Desktop.module.css?26dc","webpack:///./src/launchpad/Desktop/Desktop.tsx","webpack:///./src/launchpad/DesktopSlider/DesktopSlider.module.css?8883","webpack:///./src/launchpad/MyDesktop/MyDesktop.module.css?82d4","webpack:///./src/launchpad/FavoriteDesktopCell/FavoriteDesktopCell.module.css?3e83","webpack:///./src/launchpad/FavoriteDesktopCell/FavoriteDesktopCell.tsx","webpack:///./src/launchpad/site-map/SiteMap.module.css?cc0f","webpack:///./src/launchpad/site-map/SiteMap.tsx","webpack:///./src/launchpad/MyDesktop/MyDesktop.tsx","webpack:///./src/launchpad/DesktopSlider/desktopCursor.ts","webpack:///./src/launchpad/DesktopSlider/DesktopSlider.tsx","webpack:///./src/launchpad/DesktopDirContent/DesktopDirContent.module.css?8ba4","webpack:///./src/launchpad/DesktopDirContent/DesktopDirContent.tsx","webpack:///./src/launchpad/Launchpad/Launchpad.module.css?c690","webpack:///./src/launchpad/Launchpad/Launchpad.tsx","webpack:///./src/launchpad/LaunchpadWrapper/LaunchpadWrapper.module.css?ec6f","webpack:///./src/launchpad/LaunchpadWrapper/LaunchpadWrapper.tsx","webpack:///./src/launchpad/LaunchpadPortal/LaunchpadPortal.tsx","webpack:///./src/launchpad/LaunchpadButton/LaunchpadButton.tsx","webpack:///./src/launchpad/i18n.ts","webpack:///./src/images/launchpad.svg","webpack:///./src/launchpad/LaunchpadButton/LaunchpadButton.shadow.css","webpack:///./src/launchpad/Desktop/Desktop.module.css","webpack:///./src/launchpad/DesktopApp/DesktopApp.module.css","webpack:///./src/launchpad/DesktopCell/DesktopCell.module.css","webpack:///./src/launchpad/DesktopCustom/DesktopCustom.module.css","webpack:///./src/launchpad/DesktopDir/DesktopDir.module.css","webpack:///./src/launchpad/DesktopDirContent/DesktopDirContent.module.css","webpack:///./src/launchpad/DesktopSlider/DesktopSlider.module.css","webpack:///./src/launchpad/FavoriteDesktopCell/FavoriteDesktopCell.module.css","webpack:///./src/launchpad/Launchpad/Launchpad.module.css","webpack:///./src/launchpad/LaunchpadWrapper/LaunchpadWrapper.module.css","webpack:///./src/launchpad/MyDesktop/MyDesktop.module.css","webpack:///./src/launchpad/SearchBar/SearchBar.module.css","webpack:///./src/launchpad/site-map/SiteMap.module.css"],"sourcesContent":["\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./SearchBar.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./SearchBar.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { wrapBrick } from \"@next-core/react-element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nexport const WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\n \"eo-icon\"\n);\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport styles from \"./SearchBar.module.css\";\nimport { WrappedGeneralIcon } from \"../common/wrapBrick.js\";\nimport { K, NS } from \"../i18n.js\";\nimport { useTranslation } from \"@next-core/i18n/react\";\nexport interface SearchBarProps {\n onChange: (value: string) => void;\n}\n\nexport function SearchBar(props: SearchBarProps): React.ReactElement {\n const { t } = useTranslation(NS);\n const [focus, setFocus] = React.useState(false);\n\n const searchInputRef = React.useCallback((element: HTMLInputElement) => {\n if (element) {\n // Wait for portal mounted first.\n Promise.resolve().then(() => {\n try {\n element.focus();\n } catch (e) {\n // Do nothing.\n }\n });\n }\n }, []);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n props.onChange(e.target.value);\n };\n\n const handleClick = (e: React.MouseEvent): void => {\n e.stopPropagation();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent): void => {\n const key =\n e.key ||\n /* istanbul ignore next: compatibility */ e.keyCode ||\n /* istanbul ignore next: compatibility */ e.which;\n if (\n [\n \"Tab\",\n \"Enter\",\n \"ArrowLeft\",\n \"ArrowUp\",\n \"ArrowRight\",\n \"ArrowDown\",\n 9,\n 13,\n 37,\n 38,\n 39,\n 40,\n ].includes(key)\n ) {\n e.preventDefault();\n }\n };\n\n const handleFocus = (): void => {\n setFocus(true);\n };\n\n const handleBlur = (): void => {\n setFocus(false);\n };\n\n return (\n <div\n className={classNames(styles.searchBar, {\n [styles.focus]: focus,\n })}\n >\n <div\n className={styles.inputContainer}\n role=\"inputContainer\"\n onClick={handleClick}\n >\n <span\n className={classNames(styles.inputAffixWrapper, {\n [styles.inputAffixWrapperFocused]: focus,\n })}\n >\n <span className={styles.antInputPrefix}>\n <WrappedGeneralIcon icon=\"search\" lib=\"antd\" theme=\"outlined\" />\n </span>\n <input\n role=\"input\"\n className={styles.input}\n placeholder={t(K.SEARCH_BY_NAME_KEYWORD) as string}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n ref={searchInputRef}\n />\n </span>\n </div>\n </div>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopCell.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopCell.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopApp.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopApp.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { MicroApp } from \"@next-core/types\";\n\nexport function getImageUrl(app: MicroApp, defaultAppIcon: string): string {\n return app.icons && app.icons.large\n ? /^(?:https?|data):|^\\//.test(app.icons.large)\n ? app.icons.large\n : `${\n window.STANDALONE_MICRO_APPS\n ? // 如果是独立打包模式\n app.standaloneMode\n ? // 如果是独立打包模式下的standalone app, 则使用 PUBLIC_ROOT 再去掉末尾的 '-/'\n // 例如: sa-static/my-app/versions/1.1.1/webroot/-/micro-apps/my-app/large.png (没设置cdn)\n // 例如: https://cdn-air.uwintech.cn/next/sa-static/my-app/versions/1.1.1/webroot/-/micro-apps/my-app/large.png (设置了cdn)\n `${window.PUBLIC_ROOT?.replace(/-\\/$/, \"\")}${app.id}/versions/${\n app.currentVersion\n }/webroot/-/micro-apps/${app.id}/${app.icons.large}`\n : // 如果是独立打包模式下的普通app,则使用PUBLIC_CDN + 默认前缀micro-apps\n `${window.PUBLIC_CDN || \"\"}micro-apps/${app.id}/${\n app.icons.large\n }`\n : // 非独立打包应用使用旧模式进行设置\n `${window.PUBLIC_ROOT || \"\"}micro-apps/${app.id}/${\n app.icons.large\n }`\n }`\n : defaultAppIcon;\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { MicroApp } from \"@next-core/types\";\nimport styles from \"./DesktopApp.module.css\";\nimport defaultAppIcon from \"../../images/default-app-icon.png\";\nimport { getImageUrl } from \"../utils/getImageUrl.js\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\ninterface DesktopAppProps {\n app: MicroApp;\n isFavorite?: boolean;\n showAddIcon?: boolean;\n onAddClick?: () => void;\n onClick?: () => void;\n size?: string;\n}\n\nexport function DesktopApp({\n app,\n onAddClick,\n onClick,\n isFavorite,\n showAddIcon,\n size,\n}: DesktopAppProps): React.ReactElement {\n const installing = app.installStatus === \"running\";\n\n const handleAppClick = (e: React.MouseEvent): void => {\n e.stopPropagation();\n if (installing) {\n e.preventDefault();\n }\n onClick?.();\n };\n\n const handleAddIconClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n onAddClick?.();\n };\n\n return (\n <>\n <WrappedLink\n className={classNames(\n styles.appLink,\n styles[size as string],\n app.iconBackground === \"circle\" ? styles.circle : styles.square,\n {\n [styles.installing]: installing,\n }\n )}\n url={app.homepage}\n onClick={handleAppClick}\n >\n <img\n className={styles.appIcon}\n src={getImageUrl(app, defaultAppIcon)}\n />\n\n {showAddIcon && isFavorite && (\n <WrappedGeneralIcon\n className={classNames(\n styles.addIcon,\n app.iconBackground === \"circle\"\n ? styles.circleIcon\n : styles.squareIcon\n )}\n icon=\"plus\"\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleAddIconClick}\n />\n )}\n </WrappedLink>\n <span className={styles.appName}>\n {installing && (\n <WrappedGeneralIcon\n style={{ paddingRight: 5 }}\n icon=\"loading-3-quarters\"\n lib=\"antd\"\n theme=\"outlined\"\n />\n )}\n {app.localeName}\n </span>\n </>\n );\n}\n","import React from \"react\";\nimport { NormalizedDesktopDir } from \"./interfaces.js\";\n\nexport interface DirWithCoordinates {\n dir: NormalizedDesktopDir;\n coordinates: {\n x: number;\n y: number;\n };\n activeIndex: number;\n}\n\nexport interface ContextOfDesktopDir {\n desktopDir?: DirWithCoordinates;\n setDesktopDir?: React.Dispatch<DirWithCoordinates | undefined>;\n}\n\nexport const DesktopDirContext = React.createContext<ContextOfDesktopDir>({});\n\nexport const useDesktopDirContext = (): ContextOfDesktopDir =>\n React.useContext(DesktopDirContext);\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopDir.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopDir.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { useDesktopDirContext } from \"../DesktopDirContext.js\";\nimport styles from \"./DesktopDir.module.css\";\nimport defaultAppIcon from \"../../images/default-app-icon.png\";\nimport { NormalizedDesktopDir } from \"../interfaces.js\";\nimport { getImageUrl } from \"../utils/getImageUrl.js\";\nimport { MicroApp } from \"@next-core/types\";\n\nexport function DesktopDir(props: NormalizedDesktopDir): React.ReactElement {\n const { setDesktopDir } = useDesktopDirContext();\n const handleDirClick = (e: React.MouseEvent): void => {\n e.stopPropagation();\n // 记录鼠标点击的位置,在文件夹展开时以此为原点做动画。\n setDesktopDir?.({\n dir: {\n name: props.name,\n items: props.items,\n },\n coordinates: {\n x: e.clientX,\n y: e.clientY,\n },\n activeIndex: -1,\n });\n };\n\n return (\n <>\n <a\n className={classNames(styles.dirLink, {\n [styles[props.size as string]]: !!props.size,\n })}\n onClick={handleDirClick}\n role=\"button\"\n >\n {props.items\n .slice(0, 4)\n .map((item) =>\n item.type === \"app\" ? (\n <img\n className={styles.appIcon}\n key={item.id}\n src={getImageUrl(item.app as MicroApp, defaultAppIcon)}\n />\n ) : (\n <img\n className={styles.appIcon}\n key={item.id}\n src={defaultAppIcon}\n />\n )\n )}\n </a>\n <span className={styles.dirName}>{props.name}</span>\n </>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopCustom.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopCustom.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport styles from \"./DesktopCustom.module.css\";\nimport defaultAppIcon from \"../../images/default-app-icon.png\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\ninterface DesktopCustomProps {\n name: string;\n url: string;\n isFavorite?: boolean;\n showAddIcon?: boolean;\n onAddClick: () => void;\n onClick?: () => void;\n size?: string;\n responsive?: boolean;\n}\n\nexport function DesktopCustom({\n name,\n url,\n showAddIcon,\n isFavorite,\n onClick,\n onAddClick,\n size,\n responsive = true,\n}: DesktopCustomProps): React.ReactElement {\n const handleItemClick = (e: React.MouseEvent): void => {\n e.stopPropagation();\n onClick?.();\n };\n\n const handleAddIconClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n onAddClick?.();\n };\n return (\n <>\n <WrappedLink\n className={classNames(\n styles.appLink,\n styles.circle,\n styles[size as string],\n {\n [styles.responsive]: responsive,\n }\n )}\n href={url}\n target=\"_blank\"\n onClick={handleItemClick}\n >\n <img className={styles.appIcon} src={defaultAppIcon} />\n {showAddIcon && isFavorite && (\n <WrappedGeneralIcon\n className={classNames(styles.addIcon, styles.circleIcon)}\n icon=\"plus-circle-filled\"\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleAddIconClick}\n />\n )}\n </WrappedLink>\n <span className={styles.appName}>{name}</span>\n </>\n );\n}\n","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取我的收藏列表\n * @endpoint LIST /api/v1/launchpad/collection\n */\nexport var LaunchpadApi_listCollection = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (params, options) {\n return (/**! @contract easyops.api.user_service.launchpad.ListCollection@1.0.0 */(yield http.get(\"api/gateway/user_service.launchpad.ListCollection/api/v1/launchpad/collection\", _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function LaunchpadApi_listCollection(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=listCollection.js.map","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 新增我的收藏\n * @endpoint POST /api/v1/launchpad/collection\n */\nexport var LaunchpadApi_createCollection = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.user_service.launchpad.CreateCollection@1.0.0 */(yield http.post(\"api/gateway/user_service.launchpad.CreateCollection/api/v1/launchpad/collection\", data, options)).data\n );\n });\n return function LaunchpadApi_createCollection(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=createCollection.js.map","import { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { MicroApp, Storyboard } from \"@next-core/types\";\nimport {\n LaunchpadApi_ListCollectionResponseItem,\n LaunchpadApi_listCollection,\n LaunchpadApi_CreateCollectionRequestBody,\n LaunchpadApi_createCollection,\n LaunchpadApi_deleteCollection,\n} from \"@next-api-sdk/user-service-sdk\";\nimport { LaunchpadApi_getLaunchpadInfo } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { pick } from \"lodash\";\nimport { i18n } from \"@next-core/i18n\";\nimport { LaunchpadSettings } from \"./LaunchpadSettingsContext.js\";\nimport {\n DesktopData,\n DesktopItemApp,\n DesktopItemCustom,\n SiteMapItem,\n} from \"./interfaces.js\";\nimport { DeferredService } from \"../shared/DeferredService.js\";\n\ninterface LaunchpadBaseInfo {\n settings: LaunchpadSettings;\n microApps: MicroApp[];\n desktops: DesktopData[];\n siteSort: SiteMapItem[];\n}\n\nexport class LaunchpadService {\n readonly storageKey = `launchpad-recently-visited:${(\n auth.getAuth() as Record<string, string>\n )?.org}`;\n private storage: JsonStorage;\n private favoriteList: LaunchpadApi_ListCollectionResponseItem[] = [];\n private filteredFavoriteList: LaunchpadApi_ListCollectionResponseItem[] = [];\n private microApps: MicroApp[] = [];\n private customList: DesktopItemCustom[] = [];\n private maxVisitorLength = 7;\n private baseInfo: LaunchpadBaseInfo = {\n settings: {\n columns: 7,\n rows: 4,\n },\n microApps: [],\n desktops: [],\n siteSort: [],\n };\n public loaded = false;\n public favoritesLoaded = false;\n\n private readonly deferredLaunchpadInfo: DeferredService;\n private readonly deferredFavorites: DeferredService;\n\n constructor() {\n this.storage = new JsonStorage(localStorage);\n this.deferredLaunchpadInfo = new DeferredService(this.doFetchLaunchpadInfo);\n this.deferredFavorites = new DeferredService(this.doFetchFavorites);\n\n this.init();\n }\n\n init(): void {\n const runtime = getRuntime();\n this.baseInfo = {\n desktops: runtime.getDesktops() as DesktopData[],\n microApps: [runtime.getCurrentApp() as MicroApp],\n settings: runtime.getLaunchpadSettings(),\n siteSort: runtime.getLaunchpadSiteMap() as SiteMapItem[],\n };\n\n this.initValue();\n }\n\n private initValue(): void {\n this.customList = this.baseInfo.desktops\n .map((desktop) => desktop.items.filter((i) => i.type === \"custom\"))\n .flat() as DesktopItemCustom[];\n\n const microApps = this.baseInfo.microApps\n // 兼容较老版本接口未返回 `status` 的情况。\n .filter(\n (item) =>\n item &&\n (!item.status ||\n item.status === \"enabled\" ||\n item.status === \"developing\")\n );\n\n this.setMicroApps(microApps);\n }\n\n setMaxVisitorLength(value: number) {\n this.maxVisitorLength = value;\n }\n\n preFetchFavorites(): void {\n this.deferredFavorites.schedulePrefetch();\n }\n\n async fetchFavoriteList(\n eager?: boolean\n ): Promise<LaunchpadApi_ListCollectionResponseItem[]> {\n await this.deferredFavorites.fetch(eager);\n return this.favoriteList;\n }\n\n private doFetchFavorites = async (): Promise<void> => {\n const result = (\n await LaunchpadApi_listCollection(\n { page: 1, pageSize: 25 },\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n )\n ).list;\n this.setFavorites(result);\n this.favoritesLoaded = true;\n };\n\n preFetchLaunchpadInfo(): void {\n if (window.STANDALONE_MICRO_APPS) {\n this.deferredLaunchpadInfo.schedulePrefetch();\n }\n }\n\n fetchLaunchpadInfo(): Promise<unknown> {\n return this.deferredLaunchpadInfo.fetch();\n }\n\n private doFetchLaunchpadInfo = async (): Promise<void> => {\n const launchpadInfo = await LaunchpadApi_getLaunchpadInfo(\n {},\n {\n interceptorParams: { ignoreLoadingBar: true },\n noAbortOnRouteChange: true,\n }\n );\n\n for (const storyboard of launchpadInfo.storyboards as Storyboard[]) {\n const app = storyboard.app as unknown as MicroApp;\n if (app) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `$tmp-${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n\n this.baseInfo = {\n ...launchpadInfo,\n settings: (launchpadInfo.settings as Record<string, unknown>)\n .launchpad as LaunchpadSettings,\n microApps: (launchpadInfo.storyboards as Storyboard[])\n .map((storyboard) => storyboard.app)\n .filter(Boolean) as unknown as MicroApp[],\n } as unknown as LaunchpadBaseInfo;\n this.initValue();\n this.loaded = true;\n };\n\n getBaseInfo(): LaunchpadBaseInfo {\n return this.baseInfo;\n }\n\n getFavoritesLength(): number {\n return this.favoriteList.length;\n }\n\n typeAdaptor(type: string): string {\n if (type === \"customItem\") {\n return \"custom\";\n }\n\n if (type === \"microApp\") {\n return \"app\";\n }\n\n return type;\n }\n\n setFavorites(list: LaunchpadApi_ListCollectionResponseItem[]): void {\n this.filteredFavoriteList =\n list?.filter(\n (v) =>\n v.launchpadCollection?.type === \"microApp\" ||\n (v.launchpadCollection as any).type === \"customItem\"\n ) ?? [];\n\n this.favoriteList = list;\n }\n\n setMicroApps(microApps: MicroApp[]) {\n this.microApps = microApps;\n this.syncValidRecentlyVisitor();\n }\n\n syncValidRecentlyVisitor() {\n if (window.STANDALONE_MICRO_APPS) {\n // standalone模式时,刷新页面不会请求launchpad数据,拿不全microApps和customList,所以 syncValidRecentlyVisitor 直接返回\n return;\n }\n const visitors = this.getAllVisitors();\n const result = visitors.filter((v) => {\n if (v.type === \"app\") {\n return this.microApps.some((app) => app.id === v.id);\n } else {\n return this.customList.some((f) => f.type === v.type && f.id === v.id);\n }\n });\n\n this.setAllVisitors(result);\n }\n\n async setAsFavorite(params: LaunchpadApi_CreateCollectionRequestBody) {\n await LaunchpadApi_createCollection(params, {\n interceptorParams: { ignoreLoadingBar: true },\n });\n }\n\n async deleteFavorite(id: string | number) {\n await LaunchpadApi_deleteCollection(id, {\n interceptorParams: { ignoreLoadingBar: true },\n });\n }\n\n isFavorite(item: DesktopItemApp | DesktopItemCustom) {\n if (item.type === \"app\") {\n return this.filteredFavoriteList.some(\n (f) =>\n this.typeAdaptor((f.launchpadCollection as any).type) === \"app\" &&\n f.microAppId === item.id\n );\n }\n\n return this.filteredFavoriteList.some(\n (f) =>\n this.typeAdaptor((f.launchpadCollection as any).type) === \"custom\" &&\n (f as any).customItemId === item.id\n );\n }\n\n getItem(\n type: \"app\" | \"custom\",\n id: string\n ): DesktopItemApp | DesktopItemCustom {\n return (this.storage.getItem(this.storageKey) || []).find(\n (v: DesktopItemApp | DesktopItemCustom) => v.id === id && v.type === type\n );\n }\n\n getItemIndex(type: \"app\" | \"custom\", id: string): number {\n return (this.storage.getItem(this.storageKey) || []).findIndex(\n (v: DesktopItemApp | DesktopItemCustom) => v.id === id && v.type === type\n );\n }\n\n hasItem(type: \"app\" | \"custom\", id: string): boolean {\n return (this.storage.getItem(this.storageKey) || []).some(\n (v: DesktopItemApp | DesktopItemCustom) => v.id === id && v.type === type\n );\n }\n\n getAllVisitors(): (DesktopItemApp | DesktopItemCustom)[] {\n return this.storage.getItem(this.storageKey) || [];\n }\n\n setItem(\n type: \"app\" | \"custom\",\n item: DesktopItemApp | DesktopItemCustom\n ): void {\n const visitors = this.getAllVisitors();\n\n if (!this.hasItem(type, item.id)) {\n visitors.unshift(item);\n } else {\n const index = this.getItemIndex(type, item.id);\n visitors.splice(index, 1);\n visitors.unshift(item);\n }\n\n // 默认只保存一行\n if (visitors.length > this.maxVisitorLength) {\n visitors.pop();\n }\n this.setAllVisitors(visitors);\n }\n\n setAllVisitors(visitors: (DesktopItemApp | DesktopItemCustom)[]) {\n this.storage.setItem(this.storageKey, visitors);\n }\n\n pushVisitor(\n type: \"app\" | \"custom\",\n item: MicroApp | DesktopItemCustom\n ): void {\n if (type === \"app\") {\n const app = item as MicroApp;\n item = {\n id: app.id,\n app: {\n name: app.name,\n icons: app.icons,\n localeName: app.localeName,\n id: app.id,\n homepage: app.homepage,\n currentVersion: app.currentVersion,\n standaloneMode: (app as MicroApp & { standaloneMode: boolean })\n .standaloneMode,\n } as MicroApp,\n type: \"app\",\n } as any;\n }\n\n this.setItem(type, item as DesktopItemApp | DesktopItemCustom);\n }\n\n getVisitor(\n type: \"app\" | \"custom\",\n id: string\n ): DesktopItemApp | DesktopItemCustom | undefined {\n return this.getItem(type, id);\n }\n\n getRealDesktopItem(\n item: LaunchpadApi_ListCollectionResponseItem\n ): MicroApp | DesktopItemCustom {\n if (item.launchpadCollection?.type === \"microApp\") {\n return this.microApps.find(\n (app) => app.id === item.microAppId\n ) as MicroApp;\n } else {\n return this.customList.find(\n (custom) => custom.id === (item as any).customItemId\n ) as DesktopItemCustom;\n }\n }\n\n setFavoriteAsVisitor(item: LaunchpadApi_ListCollectionResponseItem) {\n const type = this.typeAdaptor(item.launchpadCollection?.type as string);\n if (type === \"link\") return;\n const data = this.getRealDesktopItem(item);\n if (data) {\n this.pushVisitor(type as \"custom\" | \"app\", data);\n }\n }\n\n getSitemapList() {\n const curMicroApps = this.baseInfo.microApps.filter((app) => !app.internal);\n const siteMapList = this.baseInfo.siteSort;\n\n return siteMapList?.map((item) => ({\n ...item,\n apps: (item.apps || []).map((row) => {\n const find = curMicroApps.find((item) => item.id === row.id) || {};\n return {\n ...row,\n ...pick(find, [\n \"name\",\n \"icons\",\n \"localeName\",\n \"homepage\",\n \"currentVersion\",\n \"standaloneMode\",\n ]),\n };\n }),\n }));\n }\n}\n\nconst service = new LaunchpadService();\nexport const launchpadService = service;\n","import { http } from \"@next-core/http\";\n\n/**\n * @description 删除我的收藏\n * @endpoint DELETE /api/v1/launchpad/collection/:instanceId\n */\nexport var LaunchpadApi_deleteCollection = (instanceId, options) => /**! @contract easyops.api.user_service.launchpad.DeleteCollection@1.0.0 */http.delete(\"api/gateway/user_service.launchpad.DeleteCollection/api/v1/launchpad/collection/\".concat(instanceId), options);\n//# sourceMappingURL=deleteCollection.js.map","import React from \"react\";\nimport classNames from \"classnames\";\nimport styles from \"./DesktopCell.module.css\";\nimport { DesktopApp } from \"../DesktopApp/DesktopApp.js\";\nimport { DesktopDir } from \"../DesktopDir/DesktopDir.js\";\nimport { DesktopCustom } from \"../DesktopCustom/DesktopCustom.js\";\nimport { launchpadService } from \"../LaunchpadService.js\";\nimport { Dialog } from \"@next-core/runtime\";\nimport {\n DesktopItem,\n DesktopItemApp,\n DesktopItemCustom,\n} from \"../interfaces.js\";\nimport { MicroApp } from \"@next-core/types\";\n\ninterface DesktopCellProps {\n item: DesktopItem;\n active?: boolean;\n showAddIcon?: boolean;\n position?: \"left\" | \"center\" | \"right\";\n onSetAsFavorite?: () => void;\n isFavorite?: boolean;\n size?: string;\n}\n\nexport function DesktopCell(props: DesktopCellProps): React.ReactElement {\n const checkFavoriteUpperLimit = () => {\n const favoriteLength = launchpadService.getFavoritesLength();\n if (favoriteLength >= 25) {\n Dialog.show({\n title: \"收藏数量已达上限\",\n content: \"当前收藏链接数量已达上限(25个),请删除部分链接后再添加。\",\n contentStyle: {\n zIndex: 5001,\n },\n });\n\n return false;\n }\n return true;\n };\n\n const addItemToFavorite = async () => {\n if (checkFavoriteUpperLimit()) {\n let params: any;\n if (props.item.type === \"app\") {\n const app = props.item as Partial<DesktopItemApp>;\n params = {\n microAppId: app.id,\n launchpadCollection: {\n type: \"microApp\",\n name: (app.app as MicroApp).name,\n },\n };\n } else {\n const custom = props.item as DesktopItemCustom;\n params = {\n customItemId: custom.id,\n launchpadCollection: {\n type: \"customItem\",\n name: custom.name,\n },\n };\n }\n try {\n await launchpadService.setAsFavorite(params);\n props?.onSetAsFavorite?.();\n } catch (e) {\n // Noting to cache\n }\n }\n };\n\n const handleAppClick = () => {\n const app = (props.item as DesktopItemApp).app;\n launchpadService.pushVisitor(\"app\", app as MicroApp);\n };\n\n const handleCustomClick = () => {\n const custom = props.item as DesktopItemCustom;\n launchpadService.pushVisitor(\"custom\", custom);\n };\n\n return (\n <div\n className={classNames(styles.cellWrapper, {\n [styles.positionLeft]: props?.position === \"left\",\n })}\n >\n <div\n className={classNames(styles.cellItem, styles[props.size as string], {\n [styles.active]: props.active,\n })}\n >\n {props.item.type === \"app\" ? (\n <DesktopApp\n showAddIcon={props.showAddIcon}\n isFavorite={props.isFavorite}\n app={props.item.app as MicroApp}\n onClick={handleAppClick}\n onAddClick={addItemToFavorite}\n size={props.size}\n />\n ) : props.item.type === \"custom\" ? (\n <DesktopCustom\n showAddIcon={props.showAddIcon}\n isFavorite={props.isFavorite}\n name={props.item.name}\n url={props.item.url}\n onClick={handleCustomClick}\n onAddClick={addItemToFavorite}\n size={props.size}\n />\n ) : (\n <DesktopDir\n name={props.item.name}\n items={props.item.items}\n size={props.size}\n />\n )}\n </div>\n </div>\n );\n}\n","import React from \"react\";\n\nexport interface LaunchpadSettings {\n columns: number;\n rows: number;\n}\n\nexport const LaunchpadSettingsContext = React.createContext<LaunchpadSettings>({\n columns: 7,\n rows: 4,\n});\n\nexport const useLaunchpadSettingsContext = (): LaunchpadSettings =>\n React.useContext(LaunchpadSettingsContext);\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Desktop.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Desktop.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { DesktopCell } from \"../DesktopCell/DesktopCell.js\";\nimport { useLaunchpadSettingsContext } from \"../LaunchpadSettingsContext.js\";\nimport styles from \"./Desktop.module.css\";\nimport { DesktopData } from \"../interfaces.js\";\n\ninterface DesktopProps {\n desktop: DesktopData;\n desktopCount: number;\n arrowWidthPercent: number;\n activeIndex: number;\n}\n\nexport function Desktop(props: DesktopProps): React.ReactElement {\n const { columns, rows } = useLaunchpadSettingsContext();\n\n return (\n <div\n className={styles.desktop}\n style={{\n padding: `0 ${props.arrowWidthPercent / props.desktopCount}%`,\n gridTemplateColumns: `repeat(${columns},1fr)`,\n gridTemplateRows: `repeat(${rows},1fr)`,\n }}\n >\n {props.desktop.items.map((item, index) => (\n <DesktopCell\n key={index}\n item={item}\n active={index === props.activeIndex}\n />\n ))}\n </div>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopSlider.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopSlider.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./MyDesktop.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./MyDesktop.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./FavoriteDesktopCell.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./FavoriteDesktopCell.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useMemo } from \"react\";\nimport classNames from \"classnames\";\nimport styles from \"./FavoriteDesktopCell.module.css\";\nimport { LaunchpadApi_ListCollectionResponseItem } from \"@next-api-sdk/user-service-sdk\";\nimport { launchpadService } from \"../LaunchpadService.js\";\nimport { WrappedGeneralIcon, WrappedLink } from \"../common/wrapBrick.js\";\nimport { omit } from \"lodash\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\n\ninterface FavoriteDesktopCellProps {\n item: LaunchpadApi_ListCollectionResponseItem;\n onDelete?: (item: LaunchpadApi_ListCollectionResponseItem) => void;\n}\n\nexport function FavoriteDesktopCell({\n item,\n}: FavoriteDesktopCellProps): React.ReactElement {\n const disabled = useMemo(\n () =>\n item.launchpadCollection?.type === \"microApp\"\n ? !item.microAppId\n : (item.launchpadCollection as any)?.type === \"customItem\"\n ? !(item as any)?.customItemId\n : false,\n [item]\n );\n\n const setAsVisitor = () => {\n if (item.launchpadCollection?.type === \"link\") return;\n launchpadService.setFavoriteAsVisitor(item);\n };\n const handleCellClick = (e: React.MouseEvent) => {\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n setAsVisitor();\n\n if (\n (item.launchpadCollection?.link?.startsWith(\"https://\") ||\n item.launchpadCollection?.link?.startsWith(\"http://\")) &&\n !item.launchpadCollection?.link?.startsWith(document.baseURI)\n ) {\n e.preventDefault();\n window.open(item.launchpadCollection.link, \"_blank\");\n }\n };\n\n const realLink = useMemo(() => {\n const link = item.launchpadCollection?.link;\n if (item.launchpadCollection?.type === \"microApp\") return link;\n const baseUrl = document.baseURI;\n if (link?.startsWith(baseUrl)) return link?.replace(baseUrl, \"/\");\n return item.launchpadCollection?.link;\n }, [item]);\n\n return (\n <div>\n <div\n className={classNames(styles.cellWrapper, {\n [styles.disabled]: disabled,\n })}\n >\n <WrappedLink\n className={styles.link}\n url={realLink}\n onClick={handleCellClick}\n >\n <>\n <span className={classNames(styles.appLink, styles.square)}>\n <WrappedGeneralIcon\n {...((omit(item?.launchpadCollection?.icon, [\n \"prefix\",\n \"type\",\n ]) ?? {}) as GeneralIconProps)}\n style={{ fontSize: 18 }}\n />\n </span>\n <span className={styles.name}>\n {item?.launchpadCollection?.name}\n </span>\n </>\n </WrappedLink>\n </div>\n </div>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./SiteMap.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./SiteMap.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { forwardRef, useEffect } from \"react\";\nimport styles from \"./SiteMap.module.css\";\nimport { MicroApp } from \"@next-core/types\";\nimport { launchpadService } from \"../LaunchpadService.js\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\n\ninterface SiteCategory {\n name: string;\n id: string;\n order: string;\n apps: {\n id?: string;\n sort?: string;\n name?: string;\n homepage?: string;\n }[];\n}\nexport interface SiteMapProps {\n categoryList: SiteCategory[];\n containerStyle?: React.CSSProperties;\n onLoad?: () => void;\n}\n\nexport function LeacySiteMap(\n props: SiteMapProps,\n ref: any\n): React.ReactElement {\n const handleWheel = (e: React.WheelEvent) => {\n e.stopPropagation();\n };\n\n useEffect(() => {\n props.onLoad?.();\n }, []);\n\n const handleClick = (app: MicroApp): void => {\n launchpadService.pushVisitor(\"app\", app);\n };\n\n return (\n <div\n className={styles.scrollContainer}\n style={props.containerStyle}\n ref={ref}\n onWheel={handleWheel}\n >\n <div className={styles.siteMapContainer}>\n {props.categoryList?.map((item) => (\n <div className={styles.groupWrapper} key={item.name}>\n <div>{item.name}</div>\n <ul className={styles.group}>\n {item.apps?.map((row, index) => (\n <li className={styles.item} key={index}>\n <WrappedLink\n type=\"plain\"\n url={row.homepage}\n onClick={() => handleClick(row as MicroApp)}\n >\n {row.name}\n </WrappedLink>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nexport const SiteMap = forwardRef(LeacySiteMap);\n","import React, { createRef, useEffect, useMemo, useRef, useState } from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport type { LaunchpadApi_ListCollectionResponseItem } from \"@next-api-sdk/user-service-sdk\";\nimport classNames from \"classnames\";\nimport { isEmpty } from \"lodash\";\nimport { DesktopCell } from \"../DesktopCell/DesktopCell.js\";\nimport styles from \"./MyDesktop.module.css\";\nimport { FavoriteDesktopCell } from \"../FavoriteDesktopCell/FavoriteDesktopCell.js\";\nimport { launchpadService } from \"../LaunchpadService.js\";\nimport { SiteMap } from \"../site-map/SiteMap.js\";\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\ninterface MyDesktopProps {\n desktopCount: number;\n arrowWidthPercent: number;\n}\n\nenum ModeType {\n Favorities = \"favorities\",\n Sitemap = \"sitemap\",\n}\n\nlet remberMode = ModeType.Sitemap;\n\nexport function MyDesktop(props: MyDesktopProps, ref: any): React.ReactElement {\n const [recentlyVisitedList] = useState(launchpadService.getAllVisitors());\n const [favoriteList, setFavoriteList] = useState<\n LaunchpadApi_ListCollectionResponseItem[]\n >([]);\n const [isLoading, setIsLoading] = useState(!launchpadService.favoritesLoaded);\n // const [firstRendered, setFirstRendered] = useState(true);\n const [mode, setMode] = useState<ModeType>(remberMode);\n const siteMapRef = createRef<HTMLDivElement>();\n const deskContainerRef = useRef<HTMLDivElement>(null);\n const [siteMapHeight, setSiteMapHeight] = useState<number>();\n\n const getFavoriteList = async (eager?: boolean): Promise<void> => {\n const favoriteList = await launchpadService.fetchFavoriteList(eager);\n setIsLoading(false);\n setFavoriteList(favoriteList);\n };\n\n const handleMode = (e: React.MouseEvent, mode: ModeType): void => {\n e.stopPropagation();\n remberMode = mode;\n setMode(mode);\n };\n useEffect(() => {\n (async () => {\n getFavoriteList();\n })();\n }, []);\n\n const handleOnSetAsFavorite = (): void => {\n getFavoriteList(true);\n };\n\n const handleSiteMapLoad = () => {\n const siteMap = siteMapRef.current;\n const deskContainer = deskContainerRef.current;\n if (siteMap && deskContainer) {\n // wait for launchpad open\n Promise.resolve().then(() => {\n const siteMapDom = siteMap.getBoundingClientRect();\n const deskContainerDom = deskContainer.getBoundingClientRect();\n const siteMapHeight = deskContainerDom.bottom - siteMapDom.top;\n\n setSiteMapHeight(siteMapHeight);\n });\n }\n };\n\n const renderRecentlyVisited = useMemo(() => {\n return (\n <div className={styles.visited}>\n <div className={styles.title}>最近访问</div>\n <div className={styles.desktop}>\n {recentlyVisitedList?.map((item, index) => (\n <DesktopCell\n size=\"small\"\n key={index}\n item={item}\n showAddIcon={true}\n isFavorite={!launchpadService.isFavorite(item)}\n onSetAsFavorite={handleOnSetAsFavorite}\n />\n ))}\n </div>\n </div>\n );\n }, [recentlyVisitedList, isLoading]);\n\n const renderMyFavorites = useMemo(() => {\n return (\n <div className={classNames([styles.section, styles.favorites])}>\n {isLoading && (\n <div className={styles.spin}>\n <WrappedGeneralIcon\n lib=\"antd\"\n icon=\"loading\"\n theme=\"outlined\"\n style={{ fontSize: \"2.5rem\" }}\n spinning\n />\n </div>\n )}\n {!isEmpty(favoriteList) ? (\n <div className={styles.favoriteContainer}>\n {favoriteList?.map((item, index) => (\n <FavoriteDesktopCell key={index} item={item} />\n ))}\n </div>\n ) : (\n !isLoading && (\n <div className={styles.emptyTips}>\n 把常用的页面链接加入收藏夹,方便快速访问 ~{\" \"}\n <WrappedLink\n url=\"/launchpad-collection\"\n style={{ marginLeft: 30 }}\n >\n 管理我的收藏\n </WrappedLink>\n </div>\n )\n )}\n </div>\n );\n }, [favoriteList, isLoading]);\n\n const renderSiteMap = useMemo(() => {\n const categoryList = launchpadService\n .getSitemapList()\n ?.filter((item) => item.apps?.length > 0);\n\n return (\n <SiteMap\n ref={siteMapRef}\n categoryList={categoryList}\n containerStyle={{\n height: siteMapHeight,\n overflow: \"auto\",\n }}\n onLoad={handleSiteMapLoad}\n />\n );\n }, [siteMapHeight]);\n\n return (\n <div\n ref={deskContainerRef}\n style={{\n flex: 1,\n padding: `0 ${\n props.desktopCount ? props.arrowWidthPercent / props.desktopCount : 10\n }%`,\n }}\n >\n {!!recentlyVisitedList?.length && renderRecentlyVisited}\n <div className={styles.modeWrapper}>\n <div className={styles.header}>\n {mode === ModeType.Favorities ? (\n <div className={styles.title}>\n {\" \"}\n 我的收藏\n <WrappedGeneralIcon\n className={styles.modeIcon}\n icon=\"launchpad-sitmap\"\n lib=\"easyops\"\n category=\"app\"\n onClick={(e) => handleMode(e, ModeType.Sitemap)}\n />\n </div>\n ) : (\n <div className={styles.title}>\n 系统地图\n <WrappedGeneralIcon\n className={styles.modeIcon}\n icon=\"launchpad-collection\"\n lib=\"easyops\"\n category=\"app\"\n onClick={(e) => handleMode(e, ModeType.Favorities)}\n />\n </div>\n )}\n {mode === ModeType.Favorities && (\n <div className={styles.settingsContainer}>\n <WrappedLink url={\"/launchpad-collection\"}>\n <WrappedGeneralIcon\n className={styles.settings}\n icon=\"launchpad-setting\"\n lib=\"easyops\"\n category=\"app\"\n />\n 管理收藏\n </WrappedLink>\n </div>\n )}\n </div>\n\n {mode === ModeType.Favorities ? renderMyFavorites : renderSiteMap}\n </div>\n </div>\n );\n}\n","// See https://github.com/facebook/jest/issues/11471\n// Open launchpad with the previous visited desktop.\nlet rememberedDesktopCursor = 0;\n\nexport function getRememberedDesktopCursor(): number {\n return rememberedDesktopCursor;\n}\n\nexport function setRememberedDesktopCursor(newValue: number): void {\n rememberedDesktopCursor = newValue;\n}\n","import React, { useEffect } from \"react\";\nimport { chunk } from \"lodash\";\nimport classNames from \"classnames\";\nimport { MicroApp } from \"@next-core/types\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { Desktop } from \"../Desktop/Desktop.js\";\nimport { useLaunchpadSettingsContext } from \"../LaunchpadSettingsContext.js\";\nimport { useDesktopDirContext } from \"../DesktopDirContext.js\";\nimport styles from \"./DesktopSlider.module.css\";\nimport { MyDesktop } from \"../MyDesktop/MyDesktop.js\";\nimport { launchpadService } from \"../LaunchpadService.js\";\nimport {\n getRememberedDesktopCursor,\n setRememberedDesktopCursor,\n} from \"./desktopCursor.js\";\nimport { DesktopData, DesktopItemCustom } from \"../interfaces.js\";\nimport { WrappedGeneralIcon } from \"../common/wrapBrick.js\";\n\ntype appItem = MicroApp & { type?: \"app\" | \"custom\" };\n\ninterface DesktopSliderProps {\n microApps: MicroApp[];\n q?: string;\n desktops?: DesktopData[];\n arrowWidthPercent: number;\n}\n\nexport function DesktopSlider(props: DesktopSliderProps): React.ReactElement {\n const enableMyDesktop = true;\n const [desktopCursor, setDesktopCursor] = React.useState(\n getRememberedDesktopCursor()\n );\n const [appCursor, setAppCursor] = React.useState(-1);\n const { columns, rows } = useLaunchpadSettingsContext();\n const { setDesktopDir } = useDesktopDirContext();\n const slideDuration = 400;\n\n useEffect(() => {\n enableMyDesktop && launchpadService.setMaxVisitorLength(8);\n }, [columns, enableMyDesktop]);\n const mapItemToDesktop = (apps: appItem[]): DesktopData => ({\n name: \"-\",\n items: apps.map((app) => {\n if (app.type === \"custom\") {\n return {\n id: app.id,\n name: app.name,\n url: app.homepage,\n type: \"custom\",\n app,\n };\n }\n return {\n type: \"app\",\n id: app.id,\n app,\n };\n }),\n });\n\n const transformCustomItem = (item: DesktopItemCustom): appItem => ({\n localeName: item.name,\n homepage: item.url,\n ...item,\n type: \"custom\",\n });\n\n let desktops: DesktopData[] = [];\n let validItems = props.microApps;\n\n if (typeof props?.desktops === \"object\" && props.desktops.length > 0) {\n validItems = [];\n\n const id2app = props.microApps.reduce((acc, app) => {\n acc.set(app.id, app);\n return acc;\n }, new Map<string, appItem>());\n\n desktops = props.desktops\n .map((desktop) => ({\n name: desktop.name,\n items: desktop.items\n .map((item) => {\n if (item.type === \"app\") {\n if (id2app.has(item.id)) {\n const app = id2app.get(item.id);\n validItems.push(app as MicroApp);\n id2app.delete(item.id);\n return {\n type: item.type,\n id: item.id,\n app,\n };\n }\n // ignore not found apps\n } else if (item.type === \"dir\") {\n const items = item.items\n .map((item) => {\n if (item.type === \"app\") {\n if (id2app.has(item.id)) {\n const app = id2app.get(item.id);\n validItems.push(app as MicroApp);\n id2app.delete(item.id);\n return {\n type: item.type,\n id: item.id,\n app,\n };\n }\n } else if (item.type === \"custom\") {\n validItems.push(transformCustomItem(item));\n return item;\n }\n })\n .filter(Boolean);\n // ignore empty dirs\n if (items.length > 0) {\n return {\n type: item.type,\n id: item.id,\n name: item.name,\n items,\n };\n }\n } else if (item.type === \"custom\") {\n validItems.push(transformCustomItem(item));\n return item;\n }\n })\n .filter(Boolean)\n .slice(0, columns * rows),\n }))\n // ignore empty desktops\n .filter((desktop) => desktop.items.length > 0) as DesktopData[];\n } else if (!props.desktops) {\n // 如果没有定义桌面列表(例如本地开发模式),则自动按数量切割。\n desktops = chunk(props.microApps, columns * rows).map(mapItemToDesktop);\n }\n let filteredDesktop: DesktopData = {} as DesktopData;\n if (props.q) {\n const lowerQ = props.q.toLowerCase();\n filteredDesktop = mapItemToDesktop(\n validItems\n .filter(\n (app) =>\n (app.localeName as string).toLowerCase().includes(lowerQ) ||\n app.name.toLowerCase().includes(lowerQ) ||\n app.id.toLowerCase().includes(lowerQ)\n )\n .slice(0, columns * rows)\n );\n }\n\n // When sliding desktop, reset app cursor.\n React.useEffect(() => {\n setAppCursor(-1);\n }, [desktopCursor]);\n\n // When making search, set app cursor to the first app.\n React.useEffect(() => {\n setAppCursor(\n props.q && filteredDesktop && filteredDesktop.items.length > 0 ? 0 : -1\n );\n }, [props.q]);\n\n const lockRef = React.useRef(false);\n\n const throttledSetDesktopCursor = (index: number): void => {\n if (lockRef.current) {\n return;\n }\n setRememberedDesktopCursor(index);\n setDesktopCursor(index);\n // 一次滑动一个屏幕,锁定期间内,不能继续滑动屏幕。\n lockRef.current = true;\n setTimeout(() => {\n lockRef.current = false;\n }, slideDuration);\n };\n\n const slideLeft = React.useCallback((): void => {\n if (desktopCursor > 0) {\n throttledSetDesktopCursor(desktopCursor - 1);\n }\n }, [desktopCursor]);\n\n const slideRight = React.useCallback((): void => {\n const length = desktops.length;\n if (desktopCursor < length) {\n throttledSetDesktopCursor(desktopCursor + 1);\n }\n }, [desktopCursor, desktops.length]);\n\n const handleSlideLeft = (e: React.MouseEvent): void => {\n e.stopPropagation();\n slideLeft();\n };\n\n const handleSlideRight = (e: React.MouseEvent): void => {\n e.stopPropagation();\n slideRight();\n };\n\n const handleSlideTo = (e: React.MouseEvent, index: number): void => {\n e.stopPropagation();\n if (desktopCursor !== index) {\n throttledSetDesktopCursor(index);\n }\n };\n\n // Press arrow key to select an app.\n React.useEffect(() => {\n const onKeydown = (event: KeyboardEvent): void => {\n // 第一栏为我的面板,须过滤掉(PS: 但是搜索时 desktopCursor 为0是可以的)\n if (enableMyDesktop && desktopCursor === 0 && !props.q) return;\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n const currentDesktop = props.q\n ? filteredDesktop\n : desktops[desktopCursor - 1];\n if (key === \"Enter\" || key === 13) {\n event.preventDefault();\n if (appCursor >= 0 && appCursor < currentDesktop.items.length) {\n const cell = currentDesktop.items[appCursor];\n if (cell.type === \"app\") {\n launchpadService.pushVisitor(\"app\", cell.app as MicroApp);\n getHistory().push((cell.app as MicroApp).homepage);\n } else if (cell.type === \"custom\") {\n launchpadService.pushVisitor(\"custom\", cell);\n window.open(cell.url);\n } else if (cell.type === \"dir\") {\n // Calculate the approximate coordinates of a dir.\n const x = appCursor % columns;\n const y = Math.floor(appCursor / columns);\n setDesktopDir?.({\n activeIndex: 0,\n dir: {\n name: cell.name,\n items: cell.items,\n },\n coordinates: {\n x: (window.innerWidth * (x + 1)) / (columns + 1),\n y: (window.innerHeight * (y + 1)) / (rows + 1),\n },\n });\n }\n }\n } else {\n let offset = 0;\n if (key === \"ArrowRight\" || key === 39) {\n offset = 1;\n } else if (key === \"ArrowLeft\" || key === 37) {\n offset = appCursor === -1 ? currentDesktop.items.length : -1;\n } else if (key === \"ArrowDown\" || key === 40) {\n offset = appCursor === -1 ? 1 : columns;\n } else if (key === \"ArrowUp\" || key === 38) {\n offset = appCursor === -1 ? currentDesktop.items.length : -columns;\n }\n if (offset !== 0) {\n event.preventDefault();\n const next = appCursor + offset;\n if (next >= 0 && next < currentDesktop.items.length) {\n setAppCursor(next);\n }\n }\n }\n };\n window.addEventListener(\"keydown\", onKeydown);\n return () => {\n window.removeEventListener(\"keydown\", onKeydown);\n };\n }, [desktopCursor, appCursor, props.q, columns, setDesktopDir]);\n\n const deltaXRef = React.useRef(0);\n const deltaYRef = React.useRef(0);\n const responsibleRef = React.useRef(true);\n\n const tryToSlideByWheel = (): void => {\n // Mac 的 trackpad,部分鼠标滚轮会有“拖尾效应”,拖尾期间,不再响应滚轮事件。\n if (!responsibleRef.current) {\n return;\n }\n // 取绝对值较大的方向\n const axisRef =\n Math.abs(deltaYRef.current) > Math.abs(deltaXRef.current)\n ? deltaYRef\n : deltaXRef;\n // 经测试,滚轮纵轴一次位移 4,横轴一次位移 40。\n const threshold = axisRef === deltaYRef ? 4 : 40;\n if (axisRef.current >= threshold) {\n slideRight();\n } else if (axisRef.current <= -threshold) {\n slideLeft();\n } else {\n return;\n }\n // 触发滑动后,重设 delta,拖尾期间,不再响应滚轮事件。\n deltaXRef.current = 0;\n deltaYRef.current = 0;\n responsibleRef.current = false;\n };\n\n const resetDeltaTimeoutRef = React.useRef<any>();\n\n const handleWheel = (e: React.WheelEvent): void => {\n deltaXRef.current += e.deltaX;\n deltaYRef.current += e.deltaY;\n tryToSlideByWheel();\n if (resetDeltaTimeoutRef.current) {\n clearTimeout(resetDeltaTimeoutRef.current);\n }\n // 间隔 50ms 内的连续滚轮事件被认作一次滚动。\n resetDeltaTimeoutRef.current = setTimeout(() => {\n deltaXRef.current = 0;\n deltaYRef.current = 0;\n responsibleRef.current = true;\n }, 50);\n };\n\n const sliderChildrenLength = desktops.length + 1;\n\n return (\n <div\n onWheel={handleWheel}\n className={classNames(styles.desktopSlider, {\n [styles.filtered]: props.q,\n })}\n >\n <div className={styles.desktopSelector}>\n {[\n ...[\n {\n name: (\n <WrappedGeneralIcon lib=\"antd\" theme=\"filled\" icon=\"home\" />\n ),\n },\n ],\n ...desktops,\n ].map((desktop, index) => (\n <React.Fragment key={index}>\n {index !== 0 && <span className={styles.selectorSeparator} />}\n <a\n className={classNames(styles.desktopName, {\n [styles.active]: desktopCursor === index,\n })}\n onClick={(e) => handleSlideTo(e, index)}\n role=\"button\"\n >\n {desktop.name}\n </a>\n </React.Fragment>\n ))}\n </div>\n <div className={styles.scrollContainer}>\n <div\n className={styles.desktopList}\n style={{\n width: `${sliderChildrenLength * 100}%`,\n marginLeft: `${desktopCursor * -100}%`,\n transition: `margin-left ${slideDuration}ms ease-out`,\n }}\n >\n {enableMyDesktop && (\n <MyDesktop\n desktopCount={desktops.length}\n arrowWidthPercent={props.arrowWidthPercent}\n />\n )}\n {desktops.map((desktop, index) => (\n <Desktop\n key={index}\n desktop={desktop}\n desktopCount={desktops.length}\n arrowWidthPercent={props.arrowWidthPercent}\n activeIndex={desktopCursor - 1 === index ? appCursor : -1}\n />\n ))}\n </div>\n {\n // Show filtered apps as a single desktop.\n props.q && (\n <div className={styles.filteredList}>\n <Desktop\n desktop={filteredDesktop}\n desktopCount={1}\n arrowWidthPercent={props.arrowWidthPercent}\n activeIndex={appCursor}\n />\n </div>\n )\n }\n </div>\n <a\n className={classNames(styles.arrowLeft, {\n [styles.available]: desktopCursor > 0,\n })}\n style={{ width: `${props.arrowWidthPercent}%` }}\n onClick={handleSlideLeft}\n role=\"button\"\n >\n <span className={styles.arrowButton}>\n <WrappedGeneralIcon lib=\"antd\" theme=\"outlined\" icon=\"left\" />\n </span>\n </a>\n <a\n className={classNames(styles.arrowRight, {\n [styles.available]: desktopCursor < sliderChildrenLength - 1,\n })}\n style={{ width: `${props.arrowWidthPercent}%` }}\n onClick={handleSlideRight}\n role=\"button\"\n >\n <span className={styles.arrowButton}>\n <WrappedGeneralIcon lib=\"antd\" theme=\"outlined\" icon=\"right\" />\n </span>\n </a>\n </div>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopDirContent.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./DesktopDirContent.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { getHistory } from \"@next-core/runtime\";\nimport {\n useDesktopDirContext,\n DirWithCoordinates,\n} from \"../DesktopDirContext.js\";\nimport { DesktopCell } from \"../DesktopCell/DesktopCell.js\";\nimport { useLaunchpadSettingsContext } from \"../LaunchpadSettingsContext.js\";\nimport styles from \"./DesktopDirContent.module.css\";\nimport { MicroApp } from \"@next-core/types\";\n\ninterface DesktopDirContentProps extends DirWithCoordinates {\n arrowWidthPercent: number;\n}\n\nexport function DesktopDirContent(\n props: DesktopDirContentProps\n): React.ReactElement {\n const { columns, rows } = useLaunchpadSettingsContext();\n const { setDesktopDir } = useDesktopDirContext();\n const [entering, setEntering] = React.useState(false);\n const [appCursor, setAppCursor] = React.useState(props.activeIndex);\n\n const items = props.dir.items.slice(0, columns * rows);\n // 展开的文件夹容器的大小即 DOM 容器的大小,以其中心为基准,变换至鼠标点击的位置,\n // 以模拟出一种从鼠标点击处展开的动画效果。\n const translateX =\n props.coordinates.x - document.documentElement.clientWidth / 2;\n const translateY =\n props.coordinates.y - document.documentElement.clientHeight / 2;\n\n React.useEffect(() => {\n const onKeydown = (event: KeyboardEvent): void => {\n event.stopPropagation();\n event.preventDefault();\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n if (key === \"Escape\" || key === 27) {\n setDesktopDir?.(undefined);\n } else if (key === \"Enter\" || key === 13) {\n if (appCursor >= 0 && appCursor < items.length) {\n const item = items[appCursor];\n if (item.type === \"app\") {\n getHistory().push((item.app as MicroApp).homepage);\n } else {\n window.open(item.url);\n }\n }\n } else {\n let offset = 0;\n if (key === \"ArrowRight\" || key === 39) {\n offset = 1;\n } else if (key === \"ArrowLeft\" || key === 37) {\n offset = appCursor === -1 ? items.length : -1;\n } else if (key === \"ArrowDown\" || key === 40) {\n offset = appCursor === -1 ? 1 : columns;\n } else if (key === \"ArrowUp\" || key === 38) {\n offset = appCursor === -1 ? items.length : -columns;\n }\n if (offset !== 0) {\n const next = appCursor + offset;\n if (next >= 0 && next < items.length) {\n setAppCursor(next);\n }\n }\n }\n };\n document.addEventListener(\"keydown\", onKeydown);\n return () => {\n document.removeEventListener(\"keydown\", onKeydown);\n };\n }, [props.dir, appCursor, columns, rows, setDesktopDir]);\n\n const handleCloseDir = (e: React.MouseEvent): void => {\n e.stopPropagation();\n setDesktopDir?.(undefined);\n };\n\n const handleEntering = (): void => {\n setEntering(true);\n };\n\n const rowsInDir = Math.ceil(items.length / columns);\n\n return (\n <CSSTransition\n in={true}\n timeout={150}\n appear={true}\n classNames=\"no-rules-class-name\"\n onEntering={handleEntering}\n >\n <div\n className={styles.dirContainer}\n onClick={handleCloseDir}\n style={{\n padding: `0 ${props.arrowWidthPercent}% 36px`,\n transform: entering\n ? \"none\"\n : `translate(${translateX}px,${translateY}px) scale(0.01)`,\n }}\n >\n <div className={styles.dirName}>{props.dir.name}</div>\n <div\n className={styles.dirContent}\n style={{\n height: `${((rowsInDir + 0.2) * 100) / (rows + 1)}%`,\n gridTemplateColumns: `repeat(${columns},1fr)`,\n gridTemplateRows: `repeat(${rowsInDir},1fr)`,\n }}\n >\n {items.map((item, index) => (\n <DesktopCell\n key={item.id}\n item={item}\n active={appCursor === index}\n />\n ))}\n </div>\n </div>\n </CSSTransition>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Launchpad.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./Launchpad.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { handleHttpError } from \"@next-core/runtime\";\nimport { MicroApp } from \"@next-core/types\";\nimport { SearchBar } from \"../SearchBar/SearchBar.js\";\nimport { DesktopSlider } from \"../DesktopSlider/DesktopSlider.js\";\nimport { DesktopDirContext, DirWithCoordinates } from \"../DesktopDirContext.js\";\nimport { LaunchpadSettingsContext } from \"../LaunchpadSettingsContext.js\";\nimport { DesktopDirContent } from \"../DesktopDirContent/DesktopDirContent.js\";\nimport { launchpadService } from \"../LaunchpadService.js\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport styles from \"./Launchpad.module.css\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface LaunchpadProps {\n onWillClose?: () => void;\n}\n\nexport function Launchpad(props: LaunchpadProps): React.ReactElement {\n const { settings, desktops } = launchpadService.getBaseInfo();\n\n const getFilterMicroApps = (): MicroApp[] =>\n // 过滤掉状态为开发中的小产品\n launchpadService\n .getBaseInfo()\n .microApps // 兼容较老版本接口未返回 `status` 的情况。\n .filter(\n (item) =>\n item &&\n (!item.status ||\n item.status === \"enabled\" ||\n item.status === \"developing\")\n );\n\n const [q, setQ] = React.useState(\"\");\n const [microApps, setMicroApps] = React.useState(getFilterMicroApps());\n const [desktopDir, setDesktopDir] = React.useState<DirWithCoordinates>();\n const [loading, setLoading] = React.useState(\n !!window.STANDALONE_MICRO_APPS && !launchpadService.loaded\n );\n\n React.useEffect(() => {\n const startFetchLaunchpadInfo = async (): Promise<void> => {\n try {\n await launchpadService.fetchLaunchpadInfo();\n setLoading(false);\n setMicroApps(getFilterMicroApps());\n } catch (error) {\n props.onWillClose?.();\n handleHttpError(error);\n }\n };\n if (window.STANDALONE_MICRO_APPS) {\n startFetchLaunchpadInfo();\n } else {\n launchpadService.init();\n }\n }, []);\n\n React.useEffect(() => {\n const onKeydown = (event: KeyboardEvent): void => {\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n if (key === \"Escape\" || key === 27) {\n props.onWillClose?.();\n }\n };\n window.addEventListener(\"keydown\", onKeydown);\n return () => {\n window.removeEventListener(\"keydown\", onKeydown);\n };\n }, [props.onWillClose]);\n\n const handleChange = (value: string): void => {\n setQ(value);\n };\n\n const arrowWidthPercent = 9;\n\n return (\n <LaunchpadSettingsContext.Provider value={settings}>\n <DesktopDirContext.Provider\n value={{\n desktopDir,\n setDesktopDir,\n }}\n >\n <div className={styles.launchpad} onClick={props.onWillClose}>\n {loading ? (\n <div className={styles.loadingWrapper}>\n <WrappedIcon\n icon=\"loading\"\n lib=\"antd\"\n theme=\"outlined\"\n spinning\n />\n </div>\n ) : (\n <>\n <CSSTransition\n in={!desktopDir}\n timeout={100}\n classNames={{\n enter: styles.fadeEnter,\n enterActive: styles.fadeEnterActive,\n exit: styles.fadeExit,\n exitActive: styles.fadeExitActive,\n exitDone: styles.fadeExitDone,\n }}\n >\n <div className={styles.launchpadContainer}>\n <SearchBar onChange={handleChange} />\n <DesktopSlider\n q={q}\n microApps={microApps}\n desktops={desktops}\n arrowWidthPercent={arrowWidthPercent}\n />\n </div>\n </CSSTransition>\n {desktopDir && (\n <DesktopDirContent\n {...desktopDir}\n arrowWidthPercent={arrowWidthPercent}\n />\n )}\n </>\n )}\n </div>\n </DesktopDirContext.Provider>\n </LaunchpadSettingsContext.Provider>\n );\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./LaunchpadWrapper.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./LaunchpadWrapper.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { Launchpad, LaunchpadProps } from \"../Launchpad/Launchpad.js\";\nimport styles from \"./LaunchpadWrapper.module.css\";\n\nexport interface LaunchpadWrapperProps extends LaunchpadProps {\n onClose?: () => void;\n}\n\nexport function LaunchpadWrapper(\n props: LaunchpadWrapperProps\n): React.ReactElement {\n const [fadeIn, setFadeIn] = React.useState(true);\n\n const handleWillClose = (): void => {\n setFadeIn(false);\n props.onWillClose?.();\n };\n\n const onExited = (): void => {\n props.onClose?.();\n };\n\n return (\n <CSSTransition\n in={fadeIn}\n timeout={100}\n appear={true}\n classNames={{ ...styles }}\n onExited={onExited}\n >\n <Launchpad onWillClose={handleWillClose} />\n </CSSTransition>\n );\n}\n","import React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n LaunchpadWrapper,\n LaunchpadWrapperProps,\n} from \"../LaunchpadWrapper/LaunchpadWrapper.js\";\n\nexport interface LaunchpadPortalProps extends LaunchpadWrapperProps {\n visible: boolean;\n}\n\nexport function LaunchpadPortal(\n props: LaunchpadPortalProps\n): React.ReactPortal | null {\n const elem = document.createElement(\"div\");\n\n // Currently the `useEffect()` can't be covered when shallow rendering.\n // Ref https://github.com/airbnb/enzyme/issues/2086\n // Todo(steve): check issue status and remove ignore.\n /* istanbul ignore next */\n React.useEffect(() => {\n document.body.appendChild(elem);\n return () => {\n document.body.removeChild(elem);\n };\n });\n\n if (!props.visible) {\n return null;\n }\n\n return createPortal(\n <LaunchpadWrapper\n onWillClose={props.onWillClose}\n onClose={props.onClose}\n />,\n elem\n );\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { getRuntime, getHistory } from \"@next-core/runtime\";\nimport LaunchpadSvg from \"../../images/launchpad.svg\";\nimport { LaunchpadPortal } from \"../LaunchpadPortal/LaunchpadPortal.js\";\nimport hotkeys from \"hotkeys-js\";\nimport { launchpadService } from \"../LaunchpadService.js\";\n\nexport function LaunchpadButton(): React.ReactElement {\n const [visible, setVisible] = useState(false);\n const openLaunchpad = (): void => {\n setVisible(true);\n };\n\n const handleLaunchpadClose = (): void => {\n setVisible(false);\n };\n const handleLaunchpadWillClose = useCallback((): void => {\n getRuntime().toggleLaunchpadEffect(false);\n }, []);\n\n useEffect(() => {\n const unlisten = getHistory().listen(() => {\n // 当切换页面时,关闭 Launchpad。\n handleLaunchpadWillClose();\n setVisible(false);\n });\n return unlisten;\n }, [handleLaunchpadWillClose]);\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hotkeys.filter = function () {\n return true;\n };\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hotkeys(\"alt+l\", (event) => {\n event.preventDefault();\n setVisible((preVisble) => {\n const curVisble = !preVisble;\n if (!curVisble) handleLaunchpadWillClose();\n return curVisble;\n });\n });\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hotkeys.unbind(\"alt+l\");\n };\n }, [handleLaunchpadWillClose]);\n\n useEffect(() => {\n // 当打开/关闭 Launchpad 时,切换背景模糊,切换悬浮展开模式;\n getRuntime().toggleLaunchpadEffect(visible);\n }, [visible]);\n\n useEffect(() => {\n launchpadService.preFetchLaunchpadInfo();\n launchpadService.preFetchFavorites();\n }, []);\n\n return (\n <>\n <a role=\"button\" className=\"launchpadLink\" onClick={openLaunchpad}>\n <LaunchpadSvg />\n </a>\n <LaunchpadPortal\n visible={visible}\n onWillClose={handleLaunchpadWillClose}\n onClose={handleLaunchpadClose}\n />\n </>\n );\n}\n","export enum K {\n SEARCH_BY_NAME_KEYWORD = \"SEARCH_BY_NAME_KEYWORD\",\n}\n\nconst en: Locale = {\n SEARCH_BY_NAME_KEYWORD: \"Search by name/keyword\",\n};\n\nconst zh: Locale = {\n SEARCH_BY_NAME_KEYWORD: \"通过名称/关键字搜索\",\n};\n\nexport const NS = \"bricks/basic/launchpad\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import * as React from \"react\";\nconst SvgLaunchpad = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} viewBox=\"0 0 16 16\" {...props}><g fill=\"currentColor\" fillRule=\"nonzero\"><path d=\"M0 0h4v4H0zM0 6h4v4H0zM6 0h4v4H6zM6 6h4v4H6zM12 0h4v4h-4zM12 6h4v4h-4zM0 12h4v4H0zM6 12h4v4H6zM12 12h4v4h-4z\" /></g></svg>;\nexport default SvgLaunchpad;","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.launchpadLink{width:24px;height:24px;display:flex;justify-content:center;align-items:center}.launchpadLink svg{vertical-align:top;filter:grayscale(100%);opacity:0.6;width:16px;height:16px;cursor:pointer}.launchpadLink:hover svg{color:var(--color-brand-hover)!important;filter:none;opacity:1}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.desktop--LCHJxkdK{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(4,1fr)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"desktop\": `desktop--LCHJxkdK`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.appLink--lI6ZH8_J{display:flex;width:80px;height:80px;color:#fff;justify-content:center;align-items:center;position:relative}.appLink--lI6ZH8_J.circle--CqDDCO2g,\n .appLink--lI6ZH8_J.square--KkzxvIhL{background-color:rgba(255,255,255,0.1)}.appLink--lI6ZH8_J.small--oHLIwdUo{width:56px;height:56px}@media (max-height: 860px), (max-width: 1280px){.appLink--lI6ZH8_J.small--oHLIwdUo.appLink--lI6ZH8_J{transform:scale(0.8)}.appLink--lI6ZH8_J.small--oHLIwdUo + .appName--YMtvoP3g{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.appLink--lI6ZH8_J.small--oHLIwdUo.appLink--lI6ZH8_J{transform:scale(0.7)}.appLink--lI6ZH8_J.small--oHLIwdUo + .appName--YMtvoP3g{font-size:12px;height:18px}}.appLink--lI6ZH8_J.circle--CqDDCO2g{border-radius:40px}.appLink--lI6ZH8_J.square--KkzxvIhL{border-radius:10px}.appLink--lI6ZH8_J.installing--wQF5JcJn{opacity:0.5}.appLink--lI6ZH8_J:hover .addIcon--EM1rukmN{display:block}.addIcon--EM1rukmN{position:absolute;font-size:20px;color:white;display:none}.circleIcon--C6tDgTcK{right:-7px;bottom:5px}.squareIcon--Vl9EHU0t{right:-3px;bottom:5px}.appLink--lI6ZH8_J:hover{color:#fff;opacity:0.6}.appIcon--CfrDjC_d{width:100%}.appName--YMtvoP3g{display:block;font-size:16px;line-height:1.5;height:24px;text-align:center}@media (max-height: 860px), (max-width: 1280px){.appLink--lI6ZH8_J{transform:scale(0.75)}.appName--YMtvoP3g{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.appLink--lI6ZH8_J{transform:scale(0.6)}.appName--YMtvoP3g{font-size:12px;height:18px}}@media (max-height: 640px), (max-width: 900px){.appLink--lI6ZH8_J{transform:scale(0.5)}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"appLink\": `appLink--lI6ZH8_J`,\n\t\"circle\": `circle--CqDDCO2g`,\n\t\"square\": `square--KkzxvIhL`,\n\t\"small\": `small--oHLIwdUo`,\n\t\"appName\": `appName--YMtvoP3g`,\n\t\"installing\": `installing--wQF5JcJn`,\n\t\"addIcon\": `addIcon--EM1rukmN`,\n\t\"circleIcon\": `circleIcon--C6tDgTcK`,\n\t\"squareIcon\": `squareIcon--Vl9EHU0t`,\n\t\"appIcon\": `appIcon--CfrDjC_d`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.cellWrapper--NydKY8Uu{display:flex;justify-content:center;align-items:center;overflow:hidden}.cellWrapper--NydKY8Uu.positionLeft--VreE62uh{justify-content:flex-start}.cellItem--Se6r55Ne{height:144px;padding:10px;min-width:120px;display:flex;justify-content:space-between;align-items:center;flex-direction:column}.cellItem--Se6r55Ne.small--QJ2gld44{height:110px}.cellItem--Se6r55Ne.active--KANJZK5a{background-color:rgba(0,0,0,0.3);border-radius:6px}@media (max-height: 860px), (max-width: 1280px){.cellItem--Se6r55Ne{height:134px;min-width:100px;justify-content:normal}.cellItem--Se6r55Ne.small--QJ2gld44{height:110px;min-width:76px;justify-content:normal}}@media (max-height: 700px), (max-width: 1024px){.cellItem--Se6r55Ne{height:129px;min-width:80px;justify-content:normal}.cellItem--Se6r55Ne.small--QJ2gld44{height:100px;min-width:60px;justify-content:normal}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"cellWrapper\": `cellWrapper--NydKY8Uu`,\n\t\"positionLeft\": `positionLeft--VreE62uh`,\n\t\"cellItem\": `cellItem--Se6r55Ne`,\n\t\"small\": `small--QJ2gld44`,\n\t\"active\": `active--KANJZK5a`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.appLink--XvctrW4d{display:flex;width:80px;height:80px;color:#fff;justify-content:center;align-items:center;position:relative}.appLink--XvctrW4d.circle--ZQ_SHyEN,\n .appLink--XvctrW4d.square--C8X1afGq{background-color:rgba(255,255,255,0.1)}.appLink--XvctrW4d.small--Mux_F8QK{width:56px;height:56px}@media (max-height: 860px), (max-width: 1280px){.appLink--XvctrW4d.small--Mux_F8QK.appLink--XvctrW4d{transform:scale(0.8)}.appLink--XvctrW4d.small--Mux_F8QK + .appName--wsBI2CZC{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.appLink--XvctrW4d.small--Mux_F8QK.appLink--XvctrW4d{transform:scale(0.7)}.appLink--XvctrW4d.small--Mux_F8QK + .appName--wsBI2CZC{font-size:12px;height:18px}}.appLink--XvctrW4d.circle--ZQ_SHyEN{border-radius:40px}.appLink--XvctrW4d.square--C8X1afGq{border-radius:10px}.addIcon--DHJxfx2l{position:absolute;display:none;font-size:20px;color:white}.circleIcon--NoKu04zb{right:-7px;bottom:5px}.squareIcon--JeHz5VMI{right:-3px;bottom:5px}.appLink--XvctrW4d:hover{color:#fff}.appIcon--K35YGQTl{width:100%}.appName--wsBI2CZC{display:block;font-size:16px;line-height:1.5;height:24px;text-align:center}@media (max-height: 860px), (max-width: 1280px){.appLink--XvctrW4d{transform:scale(0.75)}.appName--wsBI2CZC{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.appLink--XvctrW4d{transform:scale(0.6)}.appName--wsBI2CZC{font-size:12px;height:18px}}@media (max-height: 640px), (max-width: 900px){.appLink--XvctrW4d{transform:scale(0.5)}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"appLink\": `appLink--XvctrW4d`,\n\t\"circle\": `circle--ZQ_SHyEN`,\n\t\"square\": `square--C8X1afGq`,\n\t\"small\": `small--Mux_F8QK`,\n\t\"appName\": `appName--wsBI2CZC`,\n\t\"addIcon\": `addIcon--DHJxfx2l`,\n\t\"circleIcon\": `circleIcon--NoKu04zb`,\n\t\"squareIcon\": `squareIcon--JeHz5VMI`,\n\t\"appIcon\": `appIcon--K35YGQTl`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dirLink--Ezp7L944{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);width:80px;height:80px;color:#fff;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.15);border-radius:10px;font-size:21px;padding:7px}.dirLink--Ezp7L944.small--S5JXqzG8{width:56px;height:56px}.dirLink--Ezp7L944 .appIcon--TdWlSNU2,\n .dirLink--Ezp7L944 .anticon{width:33px;height:33px}.dirLink--Ezp7L944 .anticon{display:flex;justify-content:center;align-items:center;overflow:hidden}.dirLink--Ezp7L944:hover{color:#fff}.dirName--zvy885aK{display:block;font-size:16px;line-height:1.5;height:24px;text-align:center}@media (max-height: 860px), (max-width: 1280px){.dirLink--Ezp7L944{transform:scale(0.75)}.dirName--zvy885aK{font-size:14px;height:21px}}@media (max-height: 700px), (max-width: 1024px){.dirLink--Ezp7L944{transform:scale(0.6)}.dirName--zvy885aK{font-size:12px;height:18px}}@media (max-height: 640px), (max-width: 900px){.dirLink--Ezp7L944{transform:scale(0.5)}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"dirLink\": `dirLink--Ezp7L944`,\n\t\"small\": `small--S5JXqzG8`,\n\t\"appIcon\": `appIcon--TdWlSNU2`,\n\t\"dirName\": `dirName--zvy885aK`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dirContainer--yobNkKHJ{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;position:absolute;left:0;top:0;transition:transform 150ms ease-out}.dirName--S6uKBACL{margin-bottom:40px;font-size:24px;line-height:32px;text-align:center}.dirContent--zQ9gweDn{display:grid;background-color:rgba(18,21,26,0.4);border-radius:20px;width:100%}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"dirContainer\": `dirContainer--yobNkKHJ`,\n\t\"dirName\": `dirName--S6uKBACL`,\n\t\"dirContent\": `dirContent--zQ9gweDn`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.desktopSlider--AScHB1Kd{flex:1;position:relative;padding-top:110px;padding-bottom:50px}.filtered--OQSTba5B .desktopList--nOFGKtg0,\n .filtered--OQSTba5B .arrowLeft--xkZ60z9A,\n .filtered--OQSTba5B .arrowRight--SFdZw31z,\n .filtered--OQSTba5B .desktopSelector--rYqx7sAu{display:none}.scrollContainer--PyCfQg85{width:100%;height:100%;overflow:hidden}.desktopList--nOFGKtg0{display:flex;height:100%}.filteredList--qgFcXHyE{display:flex;height:100%}.arrowLeft--xkZ60z9A,\n.arrowRight--SFdZw31z{position:absolute;top:110px;bottom:50px;justify-content:center;align-items:center;display:none}.arrowLeft--xkZ60z9A.available--yspNdU90, .arrowRight--SFdZw31z.available--yspNdU90{display:flex}.arrowLeft--xkZ60z9A{left:0}.arrowRight--SFdZw31z{right:0}.arrowButton--MHbxtjNQ{width:70px;height:70px;font-size:36px;display:flex;justify-content:center;align-items:center;color:#e6e6e6;background-color:rgba(255,255,255,0.1);border-radius:6px;visibility:hidden}.arrowLeft--xkZ60z9A:hover .arrowButton--MHbxtjNQ,\n.arrowRight--SFdZw31z:hover .arrowButton--MHbxtjNQ{visibility:visible}.desktopSelector--rYqx7sAu{position:absolute;top:0;left:0;right:0;height:110px;padding:36px 0;display:flex;justify-content:center;align-items:center;flex-wrap:wrap}.desktopName--M1GlY6Xe{display:block;color:rgba(255,255,255,0.65);border-radius:6px;font-size:12px;line-height:38px;padding:0 16px}.desktopName--M1GlY6Xe:hover{color:#fff}.desktopName--M1GlY6Xe.active--gh6q8Xsv{color:#fff;background-color:rgba(18,21,26,0.3)}.selectorSeparator--tLrL2o9J{display:block;margin:0 8px;width:1px;height:16px;border-left:1px dashed rgba(255,255,255,0.15)}@media (max-height: 860px), (max-width: 1280px){.arrowButton--MHbxtjNQ{width:60px;height:60px;font-size:30px}.desktopSlider--AScHB1Kd{padding-top:98px}.desktopSelector--rYqx7sAu{padding:30px 0;height:98px}}@media (max-height: 700px), (max-width: 1024px){.arrowButton--MHbxtjNQ{width:50px;height:50px;font-size:25px}.desktopSlider--AScHB1Kd{padding-top:86px}.desktopSelector--rYqx7sAu{padding:24px 0;height:86px}}@media (max-height: 640px), (max-width: 900px){.arrowButton--MHbxtjNQ{width:40px;height:40px;font-size:20px}.desktopSlider--AScHB1Kd{padding-top:74px}.desktopSelector--rYqx7sAu{padding:18px 0;height:74px}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"desktopSlider\": `desktopSlider--AScHB1Kd`,\n\t\"filtered\": `filtered--OQSTba5B`,\n\t\"desktopList\": `desktopList--nOFGKtg0`,\n\t\"arrowLeft\": `arrowLeft--xkZ60z9A`,\n\t\"arrowRight\": `arrowRight--SFdZw31z`,\n\t\"desktopSelector\": `desktopSelector--rYqx7sAu`,\n\t\"scrollContainer\": `scrollContainer--PyCfQg85`,\n\t\"filteredList\": `filteredList--qgFcXHyE`,\n\t\"available\": `available--yspNdU90`,\n\t\"arrowButton\": `arrowButton--MHbxtjNQ`,\n\t\"desktopName\": `desktopName--M1GlY6Xe`,\n\t\"active\": `active--gh6q8Xsv`,\n\t\"selectorSeparator\": `selectorSeparator--tLrL2o9J`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.cellWrapper--celYo8CM{display:flex;align-items:center;position:relative;transform-origin:0 0}.cellWrapper--celYo8CM:hover{background-color:rgba(255,255,255,0.1);border-radius:10px;cursor:pointer}.cellWrapper--celYo8CM:hover .closeIcon--kqBgSmBL{display:block}.cellWrapper--celYo8CM.disabled--SXwx9i_9{color:#d8d8d8;opacity:0.5;cursor:no-drop}.cellWrapper--celYo8CM.disabled--SXwx9i_9 .appLink--xxDzS__h,\n .cellWrapper--celYo8CM.disabled--SXwx9i_9 .name--gT42Hr47{cursor:no-drop}.cellWrapper--celYo8CM.disabled--SXwx9i_9:hover{background:none;border-radius:0}.cellWrapper--celYo8CM.disabled--SXwx9i_9:hover .closeIcon--kqBgSmBL{display:none}.cellItem--JZfNDEVv{height:144px;padding:10px;min-width:120px;display:flex;justify-content:space-between;align-items:center;flex-direction:column}.appLink--xxDzS__h{display:flex;width:46px;height:46px;color:#fff;justify-content:center;align-items:center;position:relative}.appLink--xxDzS__h.circle--wjMEocD_,\n .appLink--xxDzS__h.square--lOfLBD3x{background-color:rgba(255,255,255,0.1)}.appLink--xxDzS__h.circle--wjMEocD_{border-radius:40px}.appLink--xxDzS__h.square--lOfLBD3x{border-radius:10px}.appLink--xxDzS__h.installing--drkxXY1n{opacity:0.5}.addIcon--ruhiXc4_{position:absolute;font-size:25px;color:white}.circleIcon--nexpPxUz{right:-6px;bottom:5px}.squareIcon--BkpShWWs{right:-6px;bottom:5px}.appLink--xxDzS__h:hover{color:#fff}.appIcon--w9kHpYGc{width:95%}.appName--CLwLdUBP{display:block;font-size:16px;line-height:1.5;height:24px;text-align:center}.link--bllF9zn6{display:flex;justify-content:center;align-items:center}.name--gT42Hr47{flex:1;padding-left:20px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;color:white}.closeIcon--kqBgSmBL{font-size:12px;position:absolute;top:-5px;right:-3px;color:rgba(255,255,255,0.7);display:none}@media (max-height: 860px), (max-width: 1280px){.cellWrapper--celYo8CM{transform:scale(0.8)}}@media (max-height: 700px), (max-width: 1024px){.cellWrapper--celYo8CM{transform:scale(0.7)}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"cellWrapper\": `cellWrapper--celYo8CM`,\n\t\"closeIcon\": `closeIcon--kqBgSmBL`,\n\t\"disabled\": `disabled--SXwx9i_9`,\n\t\"appLink\": `appLink--xxDzS__h`,\n\t\"name\": `name--gT42Hr47`,\n\t\"cellItem\": `cellItem--JZfNDEVv`,\n\t\"circle\": `circle--wjMEocD_`,\n\t\"square\": `square--lOfLBD3x`,\n\t\"installing\": `installing--drkxXY1n`,\n\t\"addIcon\": `addIcon--ruhiXc4_`,\n\t\"circleIcon\": `circleIcon--nexpPxUz`,\n\t\"squareIcon\": `squareIcon--BkpShWWs`,\n\t\"appIcon\": `appIcon--w9kHpYGc`,\n\t\"appName\": `appName--CLwLdUBP`,\n\t\"link\": `link--bllF9zn6`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.launchpad--jiWBelji{background:rgba(36,41,51,0.93);position:fixed;top:0;bottom:0;left:0;right:0;z-index:5000;overflow:hidden;overflow-y:auto;color:#fff;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.launchpadContainer--_vrKLUwW{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.fadeEnter--lOmmReOY{opacity:0;transform:scale(0.95)}.fadeEnterActive--PRkux5Hj{opacity:1;transform:translateX(0);transition:opacity 100ms ease-out,transform 100ms ease-out}.fadeExit--egWs3z_Z{opacity:1}.fadeExitActive--Emt0ZO0f{opacity:0;transform:scale(0.95);transition:opacity 100ms ease-out,transform 100ms ease-out}.fadeExitDone--KS8Y8j_i{display:none}.loadingWrapper--a0uhMogW{display:flex;justify-content:center;align-items:center;height:100%;font-size:58px;color:var(--theme-cyan-color)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"launchpad\": `launchpad--jiWBelji`,\n\t\"launchpadContainer\": `launchpadContainer--_vrKLUwW`,\n\t\"fadeEnter\": `fadeEnter--lOmmReOY`,\n\t\"fadeEnterActive\": `fadeEnterActive--PRkux5Hj`,\n\t\"fadeExit\": `fadeExit--egWs3z_Z`,\n\t\"fadeExitActive\": `fadeExitActive--Emt0ZO0f`,\n\t\"fadeExitDone\": `fadeExitDone--KS8Y8j_i`,\n\t\"loadingWrapper\": `loadingWrapper--a0uhMogW`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.appear--fTt52aoG{opacity:0;transform:scale(1.05)}.appearActive--VTTHohOa{opacity:1;transform:translateX(0);transition:opacity 100ms ease-out,transform 100ms ease-out}.exit--xJVirpkU{opacity:1}.exitActive--JBRp0ETG{opacity:0;transform:scale(1.05);transition:opacity 100ms ease-out,transform 100ms ease-out}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"appear\": `appear--fTt52aoG`,\n\t\"appearActive\": `appearActive--VTTHohOa`,\n\t\"exit\": `exit--xJVirpkU`,\n\t\"exitActive\": `exitActive--JBRp0ETG`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.desktop--ou0P6iGf{display:grid;grid-template-columns:repeat(8,1fr)}.desktop--ou0P6iGf .cellWrapper{justify-content:flex-start}.title--waO4P2iB{color:#fff;font-size:16px;padding-bottom:6px}.visited--tdY4xwnJ{padding-bottom:24px;margin-bottom:20px;border-bottom:1px rgba(255,255,255,0.25) solid}.favorites--lfUhBPuB .ant-spin-blur{opacity:1}.favorites--lfUhBPuB .ant-spin-blur::after{opacity:0}.modeWrapper--L03hs70G{height:0}.modeWrapper--L03hs70G .header--sdla4qan{display:flex;justify-content:space-between}.modeWrapper--L03hs70G .section--zyFAea1p{padding:10px 30px 20px}.modeWrapper--L03hs70G .modeIcon--CE2TFixF{margin-left:15px;padding:3px;border-radius:50%;opacity:0.8;background:rgba(255,255,255,0.1)}.modeWrapper--L03hs70G .modeIcon--CE2TFixF:hover{opacity:1}.modeWrapper--L03hs70G .emptyTips--IvkqCJZN{font-size:16px;line-height:24px}.modeWrapper--L03hs70G .emptyTips--IvkqCJZN a{color:#52a6f9}.modeWrapper--L03hs70G .emptyTips--IvkqCJZN a:hover{color:var(--antd-link-hover-color)}.spin--wMvBU9Kg{color:#8c8c8c;width:100%;height:200px;line-height:200px;display:flex;align-items:center;justify-content:center}.settingsContainer--Z_f8juq_ a{color:#fff}.settingsContainer--Z_f8juq_ .settings--nnLSnU29{cursor:pointer;margin-right:10px;color:rgba(255,255,255,0.7);font-size:13px;transition-duration:0.8s;transition-property:transform}.settingsContainer--Z_f8juq_:hover .settings--nnLSnU29{transform:rotate(180deg)}.favoriteContainer--CjB0c4Dt{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:2.5rem 7%;gap:2.5rem 7%}@media (max-height: 860px), (max-width: 1280px){.favoriteContainer--CjB0c4Dt{gap:1.7rem 4%}}@media (max-height: 720px), (max-width: 1024px){.favoriteContainer--CjB0c4Dt{gap:1rem 3%}.visited--tdY4xwnJ{padding-bottom:18px;margin-bottom:15px}}@media (max-height: 640px), (max-width: 900px){.favoriteContainer--CjB0c4Dt{gap:0.8rem 2%}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"desktop\": `desktop--ou0P6iGf`,\n\t\"title\": `title--waO4P2iB`,\n\t\"visited\": `visited--tdY4xwnJ`,\n\t\"favorites\": `favorites--lfUhBPuB`,\n\t\"modeWrapper\": `modeWrapper--L03hs70G`,\n\t\"header\": `header--sdla4qan`,\n\t\"section\": `section--zyFAea1p`,\n\t\"modeIcon\": `modeIcon--CE2TFixF`,\n\t\"emptyTips\": `emptyTips--IvkqCJZN`,\n\t\"spin\": `spin--wMvBU9Kg`,\n\t\"settingsContainer\": `settingsContainer--Z_f8juq_`,\n\t\"settings\": `settings--nnLSnU29`,\n\t\"favoriteContainer\": `favoriteContainer--CjB0c4Dt`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.searchBar--k7ys_9bU{display:flex;justify-content:center;align-items:flex-end;height:10%}.searchBar--k7ys_9bU .inputAffixWrapper--r90ghnJb{position:relative;width:100%;min-width:0;padding:4px 11px;color:var(--antd-input-color);font-size:14px;line-height:1.5715;background-image:none;display:inline-flex;height:42px;border-radius:21px;padding-left:54px;padding-right:4px;border:2px solid rgba(255,255,255,0.1);background-color:rgba(0,0,0,0.06);transition:padding-left 150ms ease-out;box-sizing:border-box}.searchBar--k7ys_9bU .inputAffixWrapper--r90ghnJb:hover{border-color:#0071eb;border-right-width:2px!important}.searchBar--k7ys_9bU .inputAffixWrapper--r90ghnJb .antInputPrefix--vr3ceVIR{width:30px;margin-left:0;margin-right:6px;display:flex;justify-content:center;color:rgba(255,255,255,0.65);flex:none;align-items:center;box-sizing:border-box}.searchBar--k7ys_9bU .inputAffixWrapper--r90ghnJb::before{width:0;visibility:hidden;content:\"\\\\a0\"}.searchBar--k7ys_9bU.focus--rcoZCXD5 .inputAffixWrapper--r90ghnJb,\n .searchBar--k7ys_9bU .inputAffixWrapperFocused--ym85u9fT{padding-left:4px;border-color:#2893f7;border-right-width:2px!important}.inputContainer--spZyJlDc{width:300px}.input--LvcE67vF{padding:0;border:none;outline:none;color:#fff;background-color:transparent;text-overflow:ellipsis;border-radius:3px}.input--LvcE67vF::placeholder{color:rgba(255,255,255,0.25)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"searchBar\": `searchBar--k7ys_9bU`,\n\t\"inputAffixWrapper\": `inputAffixWrapper--r90ghnJb`,\n\t\"antInputPrefix\": `antInputPrefix--vr3ceVIR`,\n\t\"focus\": `focus--rcoZCXD5`,\n\t\"inputAffixWrapperFocused\": `inputAffixWrapperFocused--ym85u9fT`,\n\t\"inputContainer\": `inputContainer--spZyJlDc`,\n\t\"input\": `input--LvcE67vF`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.scrollContainer--dNX8Cn8d::-webkit-scrollbar{width:6px}.scrollContainer--dNX8Cn8d::-webkit-scrollbar-thumb{visibility:hidden;border-radius:3px;background-color:rgba(69,69,73,0.45)}.scrollContainer--dNX8Cn8d::-webkit-scrollbar-track{visibility:hidden;width:12px;background-color:rgb(140,140,140,0.2)}.scrollContainer--dNX8Cn8d:hover{background:rgba(18,21,26,0.4);box-shadow:0px 5px 10px 4px rgba(0,0,0,0.1);border-radius:6px}.scrollContainer--dNX8Cn8d:hover::-webkit-scrollbar-thumb,\n .scrollContainer--dNX8Cn8d:hover::-webkit-scrollbar-track{visibility:visible}.siteMapContainer--oPV4617W{padding-top:10px;column-count:5}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO{margin:0 30px;page-break-inside:avoid;break-inside:avoid}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO .group--ojLUh6U2{margin:0;padding:9px 0 58px}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO .item--UDV8jW76{list-style-type:none;font-size:12px;padding:5px 0px}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO .item--UDV8jW76 > eo-link{cursor:pointer;color:rgba(255,255,255,0.65)}.siteMapContainer--oPV4617W .groupWrapper--vg8DzjpO .item--UDV8jW76 > eo-link:hover{color:var(--antd-link-hover-color)}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"scrollContainer\": `scrollContainer--dNX8Cn8d`,\n\t\"siteMapContainer\": `siteMapContainer--oPV4617W`,\n\t\"groupWrapper\": `groupWrapper--vg8DzjpO`,\n\t\"group\": `group--ojLUh6U2`,\n\t\"item\": `item--UDV8jW76`\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","undefined","WrappedLink","wrapBrick","WrappedGeneralIcon","SearchBar","props","useTranslation","NS","focus","setFocus","React","searchInputRef","element","Promise","resolve","then","e","className","classNames","styles","searchBar","inputContainer","role","onClick","stopPropagation","inputAffixWrapper","inputAffixWrapperFocused","antInputPrefix","icon","lib","theme","input","placeholder","t","K","SEARCH_BY_NAME_KEYWORD","onChange","target","value","onKeyDown","key","keyCode","which","includes","preventDefault","onFocus","handleFocus","onBlur","handleBlur","ref","getImageUrl","app","defaultAppIcon","_window$PUBLIC_ROOT","icons","large","test","concat","window","STANDALONE_MICRO_APPS","standaloneMode","PUBLIC_ROOT","replace","id","currentVersion","PUBLIC_CDN","DesktopApp","_ref","onAddClick","isFavorite","showAddIcon","size","installing","installStatus","appLink","iconBackground","circle","square","url","homepage","appIcon","src","addIcon","circleIcon","squareIcon","appName","style","paddingRight","localeName","DesktopDirContext","useDesktopDirContext","DesktopDir","setDesktopDir","dirLink","dir","name","items","coordinates","x","clientX","y","clientY","activeIndex","slice","map","item","type","dirName","DesktopCustom","responsive","href","LaunchpadApi_listCollection","params","http","get","_x","_x2","apply","this","arguments","LaunchpadApi_createCollection","data","post","launchpadService","constructor","_auth$getAuth","_this","_defineProperty","auth","getAuth","org","settings","columns","rows","microApps","desktops","siteSort","_asyncToGenerator","result","page","pageSize","interceptorParams","ignoreLoadingBar","noAbortOnRouteChange","list","setFavorites","favoritesLoaded","launchpadInfo","LaunchpadApi_getLaunchpadInfo","_loop","storyboard","locales","ns","Object","entries","forEach","_ref3","lang","resources","i18n","addResourceBundle","getFixedT","keys","removeResourceBundle","storyboards","baseInfo","_objectSpread","launchpad","filter","Boolean","initValue","loaded","storage","JsonStorage","localStorage","deferredLaunchpadInfo","DeferredService","doFetchLaunchpadInfo","deferredFavorites","doFetchFavorites","init","runtime","getRuntime","getDesktops","getCurrentApp","getLaunchpadSettings","getLaunchpadSiteMap","customList","desktop","i","flat","status","setMicroApps","setMaxVisitorLength","maxVisitorLength","preFetchFavorites","schedulePrefetch","fetchFavoriteList","eager","_this2","fetch","favoriteList","preFetchLaunchpadInfo","fetchLaunchpadInfo","getBaseInfo","getFavoritesLength","length","typeAdaptor","_list$filter","filteredFavoriteList","v","_v$launchpadCollectio","launchpadCollection","syncValidRecentlyVisitor","getAllVisitors","some","f","setAllVisitors","setAsFavorite","deleteFavorite","instanceId","delete","microAppId","customItemId","getItem","storageKey","find","getItemIndex","findIndex","hasItem","setItem","visitors","index","splice","unshift","pop","pushVisitor","getVisitor","getRealDesktopItem","_item$launchpadCollec","custom","setFavoriteAsVisitor","_item$launchpadCollec2","getSitemapList","curMicroApps","internal","siteMapList","apps","row","pick","DesktopCell","addItemToFavorite","Dialog","show","title","content","contentStyle","zIndex","_props$onSetAsFavorit","onSetAsFavorite","call","cellWrapper","positionLeft","position","cellItem","active","handleAppClick","handleCustomClick","LaunchpadSettingsContext","useLaunchpadSettingsContext","Desktop","padding","arrowWidthPercent","desktopCount","gridTemplateColumns","gridTemplateRows","FavoriteDesktopCell","_omit","_item$launchpadCollec10","_item$launchpadCollec11","disabled","useMemo","realLink","_item$launchpadCollec7","_item$launchpadCollec8","_item$launchpadCollec9","link","baseUrl","document","baseURI","startsWith","_item$launchpadCollec4","_item$launchpadCollec5","_item$launchpadCollec6","_item$launchpadCollec3","open","_extends","omit","fontSize","LeacySiteMap","_props$categoryList","useEffect","_props$onLoad","onLoad","scrollContainer","containerStyle","onWheel","siteMapContainer","categoryList","_item$apps","groupWrapper","group","handleClick","SiteMap","forwardRef","ModeType","remberMode","Sitemap","MyDesktop","recentlyVisitedList","useState","setFavoriteList","isLoading","setIsLoading","mode","setMode","siteMapRef","createRef","deskContainerRef","useRef","siteMapHeight","setSiteMapHeight","getFavoriteList","handleMode","handleOnSetAsFavorite","handleSiteMapLoad","siteMap","current","deskContainer","siteMapDom","getBoundingClientRect","bottom","top","renderRecentlyVisited","visited","renderMyFavorites","section","favorites","spin","spinning","isEmpty","emptyTips","marginLeft","favoriteContainer","renderSiteMap","_launchpadService$get","height","overflow","flex","modeWrapper","header","Favorities","modeIcon","category","settingsContainer","rememberedDesktopCursor","DesktopSlider","desktopCursor","setDesktopCursor","appCursor","setAppCursor","mapItemToDesktop","transformCustomItem","validItems","id2app","reduce","acc","set","Map","has","push","chunk","filteredDesktop","q","lowerQ","toLowerCase","lockRef","throttledSetDesktopCursor","setTimeout","slideLeft","slideRight","onKeydown","event","currentDesktop","cell","getHistory","Math","floor","innerWidth","innerHeight","offset","next","addEventListener","removeEventListener","deltaXRef","deltaYRef","responsibleRef","resetDeltaTimeoutRef","sliderChildrenLength","deltaX","deltaY","tryToSlideByWheel","axisRef","abs","threshold","clearTimeout","desktopSlider","filtered","desktopSelector","selectorSeparator","desktopName","handleSlideTo","desktopList","width","transition","filteredList","arrowLeft","available","arrowButton","arrowRight","DesktopDirContent","entering","setEntering","translateX","documentElement","clientWidth","translateY","clientHeight","rowsInDir","ceil","CSSTransition","in","timeout","appear","onEntering","handleEntering","dirContainer","transform","dirContent","WrappedIcon","Launchpad","getFilterMicroApps","setQ","desktopDir","loading","setLoading","startFetchLaunchpadInfo","error","_props$onWillClose","onWillClose","handleHttpError","_props$onWillClose2","Provider","loadingWrapper","enter","fadeEnter","enterActive","fadeEnterActive","exit","fadeExit","exitActive","fadeExitActive","exitDone","fadeExitDone","launchpadContainer","LaunchpadWrapper","fadeIn","setFadeIn","onExited","_props$onClose","onClose","handleWillClose","LaunchpadPortal","elem","createElement","body","appendChild","removeChild","visible","createPortal","LaunchpadButton","setVisible","handleLaunchpadWillClose","useCallback","toggleLaunchpadEffect","listen","hotkeys","preVisble","curVisble","unbind","openLaunchpad","LaunchpadSvg","handleLaunchpadClose","en","zh","xmlns","viewBox","fill","fillRule","d","___CSS_LOADER_EXPORT___","module","toString"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_nav=self.webpackChunk_next_bricks_nav||[]).push([[9496],{6330:(e,r,t)=>{function n(e,r,t,n,u,c,a){try{var i=e[c](a),o=i.value}catch(e){return void t(e)}i.done?r(o):Promise.resolve(o).then(n,u)}function u(e){return function(){var r=this,t=arguments;return new Promise((function(u,c){var a=e.apply(r,t);function i(e){n(a,u,c,i,o,"next",e)}function o(e){n(a,u,c,i,o,"throw",e)}i(void 0)}))}}t.d(r,{A:()=>u})},4586:(e,r,t)=>{t.d(r,{A:()=>u});var n=t(1369);function u(e,r,t){return(r=(0,n.A)(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}},9740:(e,r,t)=>{t.d(r,{A:()=>c});var n=t(4586);function u(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?u(Object(t),!0).forEach((function(r){(0,n.A)(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}},9850:(e,r,t)=>{t.d(r,{A:()=>u});var n=t(7502);function u(e,r){if(null==e)return{};var t,u,c=(0,n.A)(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(u=0;u<a.length;u++)t=a[u],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(c[t]=e[t])}return c}},7502:(e,r,t)=>{function n(e,r){if(null==e)return{};var t,n,u={},c=Object.keys(e);for(n=0;n<c.length;n++)t=c[n],r.indexOf(t)>=0||(u[t]=e[t]);return u}t.d(r,{A:()=>n})},7115:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>a,ReactUseMultipleBricks:()=>i,asyncWrapBrick:()=>E,useCurrentApp:()=>p,useCurrentTheme:()=>d,useNavConfig:()=>B,useProvider:()=>j,useRecentApps:()=>f,useRouteRender:()=>v});var n=t(6330),u=t(8769),c=t(9974),a=function(e){var{useBrick:r,data:t,errorBoundary:a,refCallback:i,ignoredCallback:o}=e,[s,l]=(0,u.useState)(null),d=(0,u.useRef)(),[f,p]=(0,u.useState)(),v=(0,u.useRef)(0),y=(0,u.useMemo)((()=>{var e;return null===(e=c.__secret_internals.getRenderId)||void 0===e?void 0:e.call(c.__secret_internals)}),[]);(0,u.useEffect)((()=>{var e=!1;function u(){return u=(0,n.A)((function*(){try{var n=yield c.__secret_internals.renderUseBrick(r,t,a);if(e)return;l(n),p(++v.current)}catch(e){(function(e){var r,t=null===(r=c.__secret_internals.getRenderId)||void 0===r?void 0:r.call(c.__secret_internals);return!e||!t||e===t})(y)&&(console.error("Render useBrick failed:",r,"with data:",t),(0,c.handleHttpError)(e))}})),u.apply(this,arguments)}return function(){u.apply(this,arguments)}(),()=>{e=!0}}),[t,r,y,a]);var g=(0,u.useCallback)((e=>{e?d.current=c.__secret_internals.mountUseBrick(s,e):(c.__secret_internals.unmountUseBrick(s,d.current),d.current=void 0),null==i||i(e)}),[i,s]);if(!s)return null;var{tagName:b}=s;if(null===b)return null==o||o(),null;var m=b;return u.createElement(m,{key:f,ref:g})},i=function(e){var{useBrick:r,data:t,errorBoundary:n}=e;return Array.isArray(r)?u.createElement(u.Fragment,null,r.map(((e,r)=>u.createElement(a,{key:r,useBrick:e,data:t,errorBoundary:n})))):u.createElement(a,{useBrick:r,data:t,errorBoundary:n})},o=(0,c.getV2RuntimeFromDll)();if(o){var{SingleBrickAsComponentFactory:s,BrickAsComponentFactory:l}=o;s&&l&&(a=s(u),i=l(u))}function d(){var[e,r]=(0,u.useState)(c.getCurrentTheme);return(0,u.useEffect)((()=>{var e=e=>{r(e.detail)};return window.addEventListener("theme.change",e),()=>{window.removeEventListener("theme.change",e)}}),[]),e}function f(){var[e,r]=u.useState((()=>(0,c.getRuntime)().getRecentApps()));return u.useEffect((()=>{var e=e=>{r(e.detail)};return window.addEventListener("app.change",e),()=>window.removeEventListener("app.change",e)}),[]),e}function p(){return f().currentApp}function v(){var[e,r]=u.useState(null);return u.useEffect((()=>{var e=e=>{r(e.detail)};return window.addEventListener("route.render",e),()=>window.removeEventListener("route.render",e)}),[]),e}var y=t(9740),g=t(9850),b={provider:"",customOptions:{onError:()=>{},transform:(e,r)=>r,data:void 0,loading:!1,suspense:!1,cache:!0},dependencies:void 0};const m=Object.entries(b).reduce(((e,r)=>{var[t,n]=r;return"[object Object]"===Object.prototype.toString.call(n)?(0,y.A)((0,y.A)({},e),n):(0,y.A)((0,y.A)({},e),{},{[t]:n})}),{});var h=t(1030),O=["args"],A=new Map;function w(){return(w=(0,n.A)((function*(e,r,t){var n,u=function(e){for(var r,t=e=>Object.keys(e).sort().map((r=>({[r]:e[r]}))),n=arguments.length,u=new Array(n>1?n-1:0),c=1;c<n;c++)u[c-1]=arguments[c];try{var a="object"!=typeof(r=u)||null===r||Array.isArray(r)?u.map((e=>function(e){return"string"==typeof e}(e)?e:t(e))):t(u);return JSON.stringify({provider:e,args:a})}catch(r){return JSON.stringify({provider:e,args:u})}}(e,...t);return!r&&A.has(u)&&A.delete(u),A.has(u)?n=A.get(u):(n=(0,c.fetchByProvider)(e,t),r&&A.set(u,n)),n}))).apply(this,arguments)}var k=["onError","transform","suspense","cache"];function j(){var{provider:e,customOptions:r,dependencies:t,requestInit:c}=function(e,r,t){var n=(0,u.useMemo)((()=>"string"==typeof e?e:b.provider),[e,r]),c=(0,u.useMemo)((()=>{var t={};return(0,h.isObject)(e)?t=e:(0,h.isObject)(r)&&(t=r),(0,y.A)((0,y.A)({},m),t)}),[e,r]),a=(0,u.useMemo)((()=>{var e=[...Object.keys(b),...Object.keys(b.customOptions)],r=Object.keys(c).reduce(((r,t)=>(e.includes(t)||(r[t]=c[t]),r)),{}),{args:t=null}=r,n=(0,g.A)(r,O);return{options:(0,y.A)({},n),args:t}}),[c]),i=(0,u.useMemo)((()=>Array.isArray(r)?r:Array.isArray(t)?t:m.dependencies),[r,t]),o=c.loading||Array.isArray(i);return{provider:n,customOptions:(0,u.useMemo)((()=>{var e=Object.keys(b.customOptions).reduce(((e,r)=>(e[r]=c[r],e)),{});return(0,y.A)((0,y.A)({},e),{},{loading:o})}),[c]),requestInit:a,dependencies:i}}(...arguments),{onError:a,transform:i,suspense:o,cache:s}=r,l=(0,g.A)(r,k),[d,f]=(0,u.useState)(l.loading),p=(0,u.useRef)("pending"),v=(0,u.useRef)(),A=(0,u.useRef)(!1),j=(0,u.useRef)(),_=(0,u.useRef)(),E=(0,u.useRef)(l.data),R=(0,u.useReducer)((()=>({})),[])[1],B=(0,u.useCallback)(function(){var e=(0,n.A)((function*(e,r){try{j.current=void 0,o||f(!0);var t=yield function(e,r,t){return w.apply(this,arguments)}(e,s,r);_.current=t,E.current=i(E.current,t)}catch(e){j.current=e,E.current=void 0}return o||f(!1),j.current&&a(j.current),E.current}));return function(r,t){return e.apply(this,arguments)}}(),[e,r,t,c,o,i,l.data,a,s]),C=(0,u.useCallback)(function(){var r=(0,n.A)((function*(r,t){var u=e,c=[];return(0,h.isString)(r)&&(u=r),(0,h.isObject)(r)?c=r:(0,h.isObject)(t)&&(c=t),o?(0,n.A)((function*(){return v.current=B(u,c).then((e=>(p.current="success",e)),(e=>(p.current="error",e.current=e,e))),R(),yield v.current}))():B(u,c)}));return function(e,t){return r.apply(this,arguments)}}(),[B]),P=(0,u.useMemo)((()=>Object.defineProperties({query:C},{loading:{get:()=>d},data:{get:()=>E.current},error:{get:()=>j.current}})),[C]);if((0,u.useEffect)((()=>(A.current=!0,Array.isArray(t)&&e&&P.query(e,c.args),()=>A.current=!1)),t),o&&v.current)switch(p.current){case"pending":throw v.current;case"error":throw j.current}return Object.assign([P,_.current,d,j.current],(0,y.A)((0,y.A)({request:P},P),{},{response:_.current,data:E.current,loading:d,error:j.current}))}var _=t(6430);function E(e,r){return R.apply(this,arguments)}function R(){return(R=(0,n.A)((function*(e,r){return yield c.__secret_internals.loadBricks([e]),(0,_.wrapBrick)(e,r)}))).apply(this,arguments)}function B(){var[e,r]=(0,u.useState)((()=>(0,c.getRuntime)().getNavConfig()));return(0,u.useEffect)((()=>{var e=e=>{r(e.detail)};return window.addEventListener("navConfig.change",e),()=>window.removeEventListener("navConfig.change",e)}),[]),e}}}]);
|
|
2
|
-
//# sourceMappingURL=9496.d399d3eb.js.map
|