From 6f1f558ecd7170bb7541d41c8be1d89d070dac73 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 3 Aug 2024 17:08:38 +0800 Subject: [PATCH] feat: Add source map URL to libsui.min.js for better debugging --- data/bindata.go | 122 +++++++++--------- sui/core/injections.go | 1 + sui/libsui/index.ts | 166 +++++++++++++++++++++++++ sui/libsui/utils.ts | 128 +++++++++++++++++++ sui/storages/local/build.go | 6 +- sui/storages/local/page_render_test.go | 4 +- 6 files changed, 362 insertions(+), 65 deletions(-) diff --git a/data/bindata.go b/data/bindata.go index eed401e0..8e7892ca 100644 --- a/data/bindata.go +++ b/data/bindata.go @@ -237,7 +237,7 @@ func initReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/README.md", size: 2271, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/README.md", size: 2271, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -257,7 +257,7 @@ func initAigcsTranslateAiYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/aigcs/translate.ai.yml", size: 388, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/aigcs/translate.ai.yml", size: 388, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -277,7 +277,7 @@ func initApisAigcHttpYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/apis/aigc.http.yao", size: 564, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/apis/aigc.http.yao", size: 564, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -297,7 +297,7 @@ func initAppYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/app.yao", size: 603, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/app.yao", size: 603, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -317,7 +317,7 @@ func initChartsPetChartYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/charts/pet.chart.yao", size: 8250, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/charts/pet.chart.yao", size: 8250, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -337,7 +337,7 @@ func initConnectorsOpenaiGpt3_5TurboConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/gpt-3_5-turbo.conn.yao", size: 177, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/connectors/openai/gpt-3_5-turbo.conn.yao", size: 177, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -357,7 +357,7 @@ func initConnectorsOpenaiTextEmbeddingAda002ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/text-embedding-ada-002.conn.yao", size: 189, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/connectors/openai/text-embedding-ada-002.conn.yao", size: 189, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -377,7 +377,7 @@ func initConnectorsOpenaiWhisper1ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/whisper-1.conn.yao", size: 163, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/connectors/openai/whisper-1.conn.yao", size: 163, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -397,7 +397,7 @@ func initDashboardsKanbanDashYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/dashboards/kanban.dash.yao", size: 2222, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/dashboards/kanban.dash.yao", size: 2222, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -417,7 +417,7 @@ func initFlowsAppMenuFlowYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/flows/app/menu.flow.yao", size: 1832, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/flows/app/menu.flow.yao", size: 1832, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -437,7 +437,7 @@ func initFlowsStatDataFlowYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/flows/stat/data.flow.yao", size: 1817, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/flows/stat/data.flow.yao", size: 1817, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -457,7 +457,7 @@ func initFormsAdminUserFormYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/forms/admin/user.form.yao", size: 97, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/forms/admin/user.form.yao", size: 97, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -477,7 +477,7 @@ func initFormsDemoPetFormYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/forms/demo/pet.form.yao", size: 6755, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/forms/demo/pet.form.yao", size: 6755, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -497,7 +497,7 @@ func initIconsAppIcns() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -517,7 +517,7 @@ func initIconsAppIco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -537,7 +537,7 @@ func initIconsAppPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -557,7 +557,7 @@ func initLangsZhCnGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/langs/zh-cn/global.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/langs/zh-cn/global.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -577,7 +577,7 @@ func initLangsZhHkGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/langs/zh-hk/global.yml", size: 88, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/langs/zh-hk/global.yml", size: 88, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -597,7 +597,7 @@ func initLoginsAdminLoginYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/logins/admin.login.yao", size: 278, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/logins/admin.login.yao", size: 278, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -617,7 +617,7 @@ func initLoginsUserLoginYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/logins/user.login.yao", size: 278, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/logins/user.login.yao", size: 278, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -637,7 +637,7 @@ func initModelsAdminUserModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/models/admin/user.mod.yao", size: 8052, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/models/admin/user.mod.yao", size: 8052, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -657,7 +657,7 @@ func initModelsPetModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/models/pet.mod.yao", size: 1700, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/models/pet.mod.yao", size: 1700, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -677,7 +677,7 @@ func initNeoNeoYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/neo/neo.yml", size: 545, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/neo/neo.yml", size: 545, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -697,7 +697,7 @@ func initPublicDemoPetHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/public/demo/pet.html", size: 1376, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/public/demo/pet.html", size: 1376, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -717,7 +717,7 @@ func initPublicIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/public/index.html", size: 1404, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/public/index.html", size: 1404, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -737,7 +737,7 @@ func initScriptsDashJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/dash.js", size: 127, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/scripts/dash.js", size: 127, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -757,7 +757,7 @@ func initScriptsGuardJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/guard.js", size: 373, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/scripts/guard.js", size: 373, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -777,7 +777,7 @@ func initScriptsSetupJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/setup.js", size: 888, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/scripts/setup.js", size: 888, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -797,7 +797,7 @@ func initScriptsStatJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/stat.js", size: 1305, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/scripts/stat.js", size: 1305, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -817,7 +817,7 @@ func initServicesFooJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/services/foo.js", size: 122, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/services/foo.js", size: 122, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -837,7 +837,7 @@ func initStudioHelloJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/studio/hello.js", size: 101, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/studio/hello.js", size: 101, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -857,7 +857,7 @@ func initTablesAdminUserTabYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/tables/admin/user.tab.yao", size: 119, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/tables/admin/user.tab.yao", size: 119, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -877,12 +877,12 @@ func initTablesDemoPetTabYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/tables/demo/pet.tab.yao", size: 7111, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "init/tables/demo/pet.tab.yao", size: 7111, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _libsuiIndexTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x58\x6d\x8f\xda\x46\x10\xfe\xce\xaf\x98\xb3\x22\xe4\x53\x1c\xd2\xcf\xa6\x56\x14\x35\xa7\xa4\x6d\xda\x54\xa2\x55\x3f\x9c\x4e\x64\x63\x06\x70\x30\x6b\xba\xbb\x3e\x84\x0e\xfe\x7b\x35\xfb\x6e\x63\xb8\x2a\x0d\x52\xc0\xb1\x67\x9e\x79\x7b\x66\x76\x7c\xcb\x96\x97\xaa\x6a\x38\xbc\x78\x91\x4a\xac\xb1\x54\x8d\xb8\x85\xa7\x11\x40\x8d\x0a\xb0\xde\xe6\xf0\xe1\xcf\xdf\x3e\xde\xd5\xb8\x45\xae\xe0\x08\xbc\xad\x6b\x28\xf4\xcf\x74\x04\x50\x2d\x21\x55\x87\x1d\x36\x4b\x70\xea\x50\x14\x05\x24\x52\x89\x8a\xaf\x12\x83\x05\x84\x04\x05\x2c\x9a\xb2\x25\x9c\xc9\x3f\x2d\x8a\xc3\xcc\x2a\x04\xc3\x84\x78\x1a\x59\x58\x8f\x57\x71\xa9\x18\x2f\xc9\x46\xe4\x4b\x17\xd9\x09\x77\x10\xb0\xde\x3a\xa9\xb2\xe1\x52\x41\xc9\xa1\x20\x85\xc9\x0a\xd5\x5b\xa5\x44\xf5\xa5\x55\x98\x26\x32\x2f\x79\xa2\x8d\x1b\xbd\x92\xc3\x78\x4c\xc2\x37\x05\x24\x09\x5d\xdb\x10\xf7\x15\x5f\x34\xfb\xfb\x92\x3f\x98\x20\x5d\xf6\x7c\x98\xde\x50\xb3\xdd\x35\x9c\x32\x56\x00\xc7\x7d\xa4\xa8\x9d\x9a\x5a\x61\x81\xaa\x15\x5c\x4b\xcc\xe7\xb2\xad\xe6\x5e\x8f\xc4\xb2\x00\x63\x35\x4e\x23\xf3\xcf\xe9\xe9\x22\x9c\x46\x23\x5f\xc5\x1e\xca\x5c\x34\x8d\x85\xe2\x6c\x8b\xc6\xcb\xfd\xba\xaa\x51\x27\x87\x22\xbb\x94\x0d\xb8\x29\x8a\x48\xc9\xe5\x99\xc4\x77\x4c\x20\x57\xb6\x0c\xd3\xae\x4b\x58\x6f\x87\x3c\x92\x8a\x29\x4c\x43\x38\x1a\x53\xad\x2b\x39\x59\x33\xbe\xa8\x51\x48\x28\x42\xb4\x93\x3d\x53\xe5\x1a\x8e\x47\x78\x3a\x4d\x9d\xe0\x0c\x29\x99\x4c\x1e\x78\x09\x1e\x3d\xdd\xe0\x21\x83\x47\x56\xb7\x98\x81\x62\x62\x85\xaa\x5b\x71\x0b\x0f\x45\xd7\xda\xfd\x06\x0f\x0f\x26\xa7\x46\x8b\x04\xcc\xc5\xf1\x18\x39\x42\xf9\x0b\xbc\x70\x60\x81\x10\x1e\xfe\x2a\x1b\x74\xf4\x9f\xbe\x7c\x85\xc2\x3f\x70\x76\x73\xfb\x9b\xf9\xfb\x52\x35\xbb\x3f\x44\xb3\x63\x2b\x46\x60\x79\x14\xec\x6d\xa4\xee\x00\x26\xb2\x5b\x3c\x32\xf5\x6a\x17\xf4\x93\x0c\x12\x25\x5a\x4c\x3c\xe9\x00\x4e\xce\xda\xc9\xdd\x63\x7b\x56\xf9\x64\xa5\x36\x9f\xce\x6d\xaf\x69\xa2\xa9\xe4\xac\xeb\xa2\xcf\x9d\x37\xf0\xc6\x39\xb7\x7a\xc6\xb9\x5b\x93\x39\xed\xa0\xd7\xce\x61\xc9\x6a\x89\xce\x2a\x65\xfe\xcc\x66\x9c\x0a\x43\x3d\x27\xae\xbb\x9f\x3e\x34\xc0\x0c\x55\x3b\xdc\xa2\x92\x9e\x53\x98\x3e\xb6\x31\xac\xce\x78\x0c\x37\xe6\x72\xb0\x3f\x62\x07\xbc\x15\x2b\x3f\x88\x7e\x8a\xc2\x71\x0a\xd1\x44\xfc\xd2\x2c\x0e\xc4\xbd\xf0\x88\xba\xfb\x5a\x98\xe6\xf7\xf5\x6b\x78\x57\xc9\x9d\x6e\x18\xb5\x46\x53\x34\x28\xd7\x8c\xaf\x10\xca\x56\xaa\x66\x0b\xf8\x48\x90\xaa\x71\xe0\x3e\x19\x9d\xba\x1a\x29\x33\xaf\x7e\xd2\x8a\x77\x74\xc7\x96\x2d\x37\x90\x49\x16\x79\xb4\x40\xc5\xaa\x3a\x87\x27\xd8\xe0\x21\x87\xd0\x8b\x79\xb7\x25\xf3\x5e\xfa\x23\x02\x7a\x6e\xd9\xd4\x2d\x6c\x2c\xc6\xb4\x76\x29\x9e\x7d\x43\xb3\x85\xf8\x24\xc3\xac\xd7\x7d\xfe\x5e\x77\x74\x67\x4c\xb8\x54\x52\xfe\x6f\x68\x98\x1d\x8f\xae\x8b\xfb\x33\x50\xcf\xbe\xa1\x76\xee\xcc\xdd\x50\x05\x93\xbf\x0d\x14\x90\x90\x33\x79\x02\x2f\x29\x19\xd3\xe8\xe1\xe3\xd0\xc1\xb3\xb9\x8d\x45\xbe\xca\x66\xf8\x78\xa2\x07\xaf\x98\x52\xe2\x55\x8c\x1e\xb7\x4e\x18\x51\x24\x1b\xfc\x55\xe2\x70\x46\x20\xf8\x65\xf6\xe9\x77\xa2\xa8\xc4\xf4\xd1\xa7\xff\x04\xa5\xa6\x50\x8a\xe7\x94\x8b\xe2\x75\x11\x9b\x6f\xfb\xf8\x71\x6a\x4a\xe3\x92\xff\xb1\x92\xdd\xec\x77\x47\xb2\xae\x17\x8d\xc2\xd3\xf4\x7b\x15\x44\x43\xba\x8a\x44\xa6\x28\x69\xd2\xe6\x94\x39\x30\x2b\xb8\x6c\x04\xa4\x34\x23\x2a\x28\xe0\x87\x29\x54\xf0\xa3\x91\x9f\xd4\xc8\x57\x6a\x3d\x85\xea\xe5\xcb\xfe\x24\x27\x01\x3a\x85\x48\xee\xbe\x7a\x88\x47\x14\xdd\x9b\xd0\x81\x39\x91\x8a\x09\x25\xff\xae\xd4\x3a\xb5\x7c\xe8\x4c\x8b\xc0\x96\xa0\x22\x70\x57\xb3\x12\x9d\x7c\x06\x49\x3c\xaf\xbf\x81\x1f\xe7\xec\x18\x66\xc8\x39\x4b\x74\x33\x52\x3e\xef\x37\x0f\x50\xc4\x6c\xd1\xee\xea\xc6\x8e\x7c\xbb\x44\x9d\x1e\x4c\x4c\xa1\x78\x7c\xd9\xf0\x54\xc5\x5b\x8c\x0e\xa8\xd1\x00\x44\x30\x7f\x85\x8b\x9e\x09\x83\xa3\xe2\xe2\x7a\x15\x26\x87\x9e\x4f\x85\xd9\x63\xec\x2d\xa9\x1a\x81\x76\x30\xba\x75\xa6\x11\xe8\x37\x39\x2d\xe4\x58\x1d\x84\xc2\x5c\x8a\x90\x68\x38\x47\xa7\x11\xbc\xe9\xa0\xf6\x96\xa4\x5c\xf7\xc8\x79\x18\x7a\x2c\xce\xdd\x69\xad\xff\x97\xc1\x82\x29\xf6\x2b\x1e\x64\xa6\x89\x62\xae\xec\x6e\x01\x14\x54\xe6\x8e\x77\x13\xac\xe1\x14\x29\xf9\x56\x1c\xd8\x84\x3a\x6b\x7e\x67\xbd\x72\xe6\x26\xcb\x46\xdc\xb1\x72\x9d\x0e\x0e\x5b\x3f\xfe\xa8\x6c\x1e\xb9\xc7\x5f\x82\xf2\x53\xcd\xd5\x96\x6e\xea\x2d\x0d\x0a\x88\x8a\xee\x0e\x0c\x17\xe3\x77\x30\x4f\x50\x57\xcd\xc7\xdc\xa5\x44\x18\xb4\xf1\xd8\xc2\xea\x97\x84\x98\xfa\xfd\x7e\x8a\xb1\xe2\xe1\xdb\xeb\xa4\x4b\x7d\x64\x42\xd8\xa2\x94\x6c\x45\x41\xe0\xc4\x5d\x1f\x8f\xa0\xbf\x92\xb7\x1c\x50\x88\x46\x40\x53\x96\xad\x10\xb8\x48\xa6\x3d\x80\xa6\xc6\x89\x16\x49\x3f\xdf\xcf\xfe\xfa\xf9\x01\xf4\x01\x0b\x1f\xec\xfe\x7a\x47\x8f\x72\x78\xf1\x64\xa1\x4f\xf0\xd9\xef\xd3\xe7\x6d\x79\x8a\x4a\x41\xd7\x61\x2f\xd6\x0f\x06\x88\x19\xb6\x06\xa2\xa2\xdd\x8c\x72\xc3\x4b\x77\x56\x69\x6b\xfe\x51\xbc\x16\x93\xa5\xa1\x77\x0a\xd7\x84\x1a\xdc\xbf\x9f\x50\x46\x3a\x6b\x55\x38\x99\xae\xac\x05\xe1\xfd\xe5\x39\x76\x46\x27\xdd\xec\x1c\xcf\x6e\x40\xd1\x5b\x53\x6f\x43\x8f\xf1\x9c\x70\x0f\xf6\x3d\x2a\xe2\xc9\x25\x57\xbb\x9c\x1e\x3e\x0f\x7a\x84\x7e\x9e\xb6\x5d\xd2\x1a\x13\x02\xe5\x75\xca\xda\xa4\x09\x77\xa6\x5e\x22\xf1\xff\xa4\xf0\xb7\x10\xf8\x73\x06\xf1\x9b\xf6\x7f\xdd\x65\xdc\xe3\x6e\x91\x87\xaa\xf1\x6c\xa1\xe3\x32\x64\x26\x8b\xe6\x8f\x22\xd5\xf2\x60\x33\x39\x50\xf8\x77\x66\x22\x9f\x2f\x4f\xd6\xc1\x98\x20\x69\x32\x8f\xde\xf5\x89\x58\xc9\x6d\x78\x6b\xd6\x47\xc7\xbf\x01\x00\x00\xff\xff\xb8\x2c\x06\x9c\xe0\x11\x00\x00") +var _libsuiIndexTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x5a\x6d\x73\xdb\xb8\x11\xfe\xae\x5f\xb1\xe6\x78\x3c\x54\x22\x4b\xed\x57\x2a\xb4\x2f\x4d\xd2\xdc\xb5\x69\x92\x39\xe7\xa6\x1f\x7c\x1e\x99\xa6\x60\x89\x31\x45\xe8\x00\xc8\x3e\x8d\xad\xff\xde\xd9\xc5\x3b\x49\xc9\x69\x2e\x9e\x49\x2c\x11\x8b\x07\xbb\x8b\x7d\x79\x00\xfa\x76\xd3\x94\xaa\xe2\x0d\x1c\x1f\xa7\x92\xd5\xac\x54\x5c\x0c\xe1\x71\x00\x50\x33\x05\xac\x5e\x65\xf0\xf3\x97\xff\x7c\x78\x57\xb3\x15\x6b\x14\x3c\x41\xb3\xa9\x6b\xc8\xe9\xd7\x74\x00\x50\xdd\x42\xaa\xb6\x6b\xc6\x6f\xc1\x4e\x87\x3c\xcf\x21\x91\x4a\x54\xcd\x22\xd1\x58\x80\x48\x90\xc3\x9c\x97\x1b\xc4\x19\xff\xb1\x61\x62\x7b\x61\x26\xf8\x85\x11\x71\x37\x30\xb0\x0e\xaf\x6a\xa4\x2a\x9a\x12\xd7\x08\x74\x89\x91\xad\x70\x84\xc0\xea\x95\x95\x2a\x79\x23\x15\x94\x0d\xe4\x38\x61\xbc\x60\xea\xb5\x52\xa2\xba\xd9\x28\x96\x26\x32\x2b\x9b\x84\x16\xd7\xf3\xca\x06\x4e\x4e\x50\xf8\x28\x87\x24\xc1\xcf\xc6\xc4\x87\xaa\x99\xf3\x87\xcb\xb2\xb9\xd2\x46\x5a\xef\x39\x33\xdd\x42\x7c\xb5\xe6\x0d\x7a\x2c\x87\x86\x3d\x04\x13\x49\xa9\xa9\x11\x16\x4c\x6d\x44\x43\x12\xb3\x99\xdc\x54\x33\x37\x0f\xc5\x46\x1e\xc6\xcc\xd8\x0d\xf4\x3f\x3b\x8f\x36\x61\x37\x18\xb8\x5d\x6c\xa1\xcc\x04\xe7\x06\xaa\x29\x56\x4c\x6b\xf9\xb0\xac\x6a\x46\xce\x41\xcb\xf6\x79\x03\x8e\xf2\x3c\x98\x64\xfd\x8c\xe2\xeb\x42\xb0\x46\x99\x6d\x98\xc6\x2a\xb1\x7a\xd5\xa7\x91\x54\x85\x62\xa9\x37\x87\x30\xd5\xb2\x92\xe3\x65\xd1\xcc\x6b\x26\x24\xe4\xde\xda\xf1\x43\xa1\xca\x25\x3c\x3d\xc1\xe3\x6e\x6a\x05\x2f\x18\x3a\xb3\x90\xdb\xa6\x04\x87\x9e\xde\xb1\xed\x08\xee\x8b\x7a\xc3\x46\xa0\x0a\xb1\x60\x2a\xde\x71\x03\x0f\x79\xbc\xda\xe5\x1d\xdb\x5e\x69\x9f\xea\x59\x28\xa0\x3f\x3c\x3d\x05\x8a\xa0\xff\x7c\x5c\x58\x30\x1f\x10\x0e\xfe\x60\x34\x90\xf5\x9f\x6e\xbe\x42\xee\x06\xec\xba\x99\xf9\x3d\x72\xcf\xa5\xe2\xeb\xcf\x82\xaf\x8b\x45\x81\x60\x59\x60\xec\x30\x98\x6e\x01\xc6\x32\xde\x3c\x5c\xea\x74\xed\xe7\x27\x23\x48\x94\xd8\xb0\xc4\x05\x1d\xc0\xce\xae\xb6\xb3\xcf\x8a\x87\xa2\x72\xce\x4a\x8d\x3f\xad\xda\x6e\xa6\xb6\xa6\x92\x17\xb1\x8a\xce\x77\x6e\x81\x73\xab\xdc\xe2\x19\xe5\x86\xda\x73\xa4\xa0\x9b\x9d\xc1\x6d\x51\x4b\x66\x57\x45\xcf\x77\xd6\x0c\x5d\xa1\x43\xcf\x8a\x53\xf6\xe3\x0f\x16\x30\x1d\xaa\x51\x6c\xe1\x96\x76\x43\x18\x7f\x4c\x62\x98\x39\x27\x27\x70\xa4\x3f\xf6\xe6\x47\xa8\x80\x5b\xc5\xc8\xf7\xa2\xef\x02\x73\xec\x84\xa0\x22\xde\xf0\xf9\x16\x63\xcf\x0f\x61\x76\x1f\x32\x53\xff\x9e\x4c\xe0\x6d\x25\xd7\x94\x30\x6a\xc9\xf4\xa6\x41\xb9\x2c\x9a\x05\x83\x72\x23\x15\x5f\x01\xbb\x47\x48\xc5\x2d\xb8\x73\x46\xb4\xaf\x5a\x4a\xd7\xab\x37\x34\xf1\x1d\x3e\x31\xdb\x96\x69\xc8\x64\x14\x68\x34\x67\xaa\xa8\xea\x0c\x1e\xe1\x8e\x6d\x33\xf0\xb9\x98\xc5\x29\x99\xb5\xdc\x1f\x04\xa0\x8b\x2d\xe3\xba\xb9\xb1\x45\x2f\x4d\x2a\x85\xb5\xaf\xaf\xb6\x60\x3c\x49\x5f\xeb\x29\xcf\xdf\x53\x46\x47\x65\xc2\xba\x12\xfd\x7f\x84\xc5\xec\xe9\xc9\x66\x71\xbb\x06\x52\xed\xeb\x4b\xe7\xa8\xee\xfa\x5d\xd0\xfe\xbb\x83\x1c\x12\x54\x26\x4b\xe0\x25\x3a\x63\x1a\x0c\xde\xf7\x35\x9e\xbb\x61\x28\xf2\x55\xf2\xfe\xf6\x84\x03\xa7\x85\x52\xe2\x34\x44\x0f\x53\xc7\x97\x28\x94\xf5\xfa\x2a\xb1\xed\x04\x10\xfc\xeb\xe2\xd3\x47\x0c\x51\xc9\xd2\x7b\xe7\xfe\x1d\x94\x14\x42\x29\xeb\x86\x5c\x60\xaf\xb5\x58\xff\x6f\x86\xef\xa7\x7a\x6b\xac\xf3\x3f\x54\x32\xf6\x7e\x5c\x92\x69\xbf\xb0\x14\xee\xa6\x3f\x6a\x43\x08\xd2\xee\x48\xb0\x14\x3a\x4d\x1a\x9f\x16\x16\xcc\x08\xde\x72\x01\x29\xd6\x88\x0a\x72\xf8\xdb\x14\x2a\x78\xa5\xe5\xc7\x35\x6b\x16\x6a\x39\x85\xea\xe5\xcb\x76\x25\x47\x01\xec\x42\x28\x77\x59\x5d\x85\x25\x0a\x9f\x8d\xb1\x61\x8e\xa5\x2a\x84\x92\xff\xad\xd4\x32\x35\xf1\x10\x55\x0b\x1f\x2d\x7e\x8a\x60\xeb\xba\x28\x99\x95\x1f\x41\x12\xd6\xeb\xef\x88\x8f\x6e\x74\xf4\x47\x48\x37\x4a\x28\x19\xd1\x9f\x97\x77\x57\x90\x87\xd1\x42\xea\x52\x62\x07\xba\xed\x0b\x9d\x16\x4c\x18\x42\x61\xf9\x32\xe6\xa9\xaa\xd9\xb0\xa0\x41\x0d\x7a\x20\xfc\xf2\x07\x62\xd1\x45\x42\x6f\xa9\xd8\x4b\xaf\x7c\xe5\xa0\xfa\x94\x6b\x1e\x63\x1e\x49\xc5\x05\x33\x85\xd1\xd2\x19\x2e\x98\x63\x72\x24\x64\xa3\xda\x0b\xf9\xba\x14\x20\x61\x71\x0e\xba\x11\x9c\x47\xa8\x2d\x92\x94\x51\x8e\x74\xcd\xa0\xb2\x38\xb3\xdd\x9a\xbe\x8d\x60\x5e\xa8\xe2\xdf\x6c\x2b\x47\x14\x28\xfa\x93\xe1\x16\x80\x46\x8d\x6c\x7b\xd7\xc6\xea\x98\xc2\x49\x2e\x15\x7b\x98\x50\x44\xf3\x23\x7a\x65\x97\x1b\xdf\x72\xf1\xae\x28\x97\x69\x6f\xb1\x75\xe5\x0f\xb7\xcd\x21\xb7\xe2\x17\xa1\x5c\x55\xb3\x7b\x8b\x0f\x89\xa5\x41\x0e\xc1\xa6\xdb\x86\x61\x6d\xfc\x01\xcb\x23\xd4\xc1\xe5\xc3\xd8\x45\x47\x68\xb4\x93\x13\x03\x4b\x87\x84\x30\xf4\xdb\xf9\x14\x62\x85\xc5\xb7\x95\x49\xfb\xf2\x48\x9b\xb0\x62\x52\x16\x0b\x34\x82\x8d\xed\xe7\xa7\x27\xa0\xff\x92\xd7\x0d\x30\x21\xb8\x00\x5e\x96\x1b\x21\xd8\x3c\x99\xb6\x00\x78\xcd\xc6\x24\x92\x5e\x5f\x5e\xfc\xf6\xcb\x15\x50\x83\x85\x9f\x0d\x7f\x7d\x87\x43\x19\x1c\x3f\x1a\xe8\x1d\x5c\x3b\x3e\xdd\x4d\xcb\x5d\xb0\x15\xf8\xd9\xf3\x62\x1a\xe8\x09\x4c\xcf\x1a\x30\x14\x0d\x33\xca\x74\x5c\xda\x5e\x45\xab\xb9\xa1\x90\x16\xe3\x4a\xfb\xb2\xa0\x6a\x2a\xca\xe6\x0c\xa2\x73\x61\x40\x69\xde\xd5\x2b\xdb\x03\xa2\x63\xe7\xeb\xba\x4e\x93\x4b\xf9\xfb\xef\x19\x89\x5d\xe9\x8a\xeb\xa6\xb8\xc8\x4a\xed\xa3\x21\xe4\x67\x3d\xc7\x49\x33\xda\x61\x89\x34\x70\x4a\x67\x29\xdc\xa3\x64\xaa\x3b\x13\x12\x36\xcc\xba\x3b\xb6\x95\x01\x16\x49\xcb\x0c\x7e\x65\x25\x17\xf3\x57\xfa\xf8\x8c\x1c\x1c\x7f\x9f\x05\xed\xd2\x27\x2e\xc6\x7f\x66\x24\x2e\x31\xb8\x2e\xaf\xda\x7c\x62\xaf\x48\x5f\xf7\x73\x96\xf8\x56\xd9\xdf\x0b\xe9\x6c\xdd\x15\xbe\xac\xae\xba\x0d\x50\x27\x77\xd4\x00\x5d\xe9\x58\x6f\xe4\xf2\x20\x90\x6b\x8b\x1a\x85\xda\xe2\xb0\x8f\x50\x7f\xab\x36\x3a\xd7\x23\x6d\x5c\x25\xf9\x76\x6d\x34\xca\x5f\xd7\x46\x66\xbc\x39\xed\x25\x07\x6c\x1b\x46\xd6\x21\x5d\x34\x46\x8b\x30\xe8\x60\xb2\x35\x67\x0f\x4e\x6f\x2b\xb5\x21\xfa\x8f\xaa\x99\xd3\x79\x82\x26\xfb\x90\xd1\xfa\xa1\x0a\x50\x35\x66\x9d\x76\xb5\xbd\xc1\xb9\xb9\x55\x02\x65\x23\xa2\x84\x59\x93\x43\x32\x9b\xad\x8b\x05\x4b\xba\xc6\xfb\x23\xbb\xb9\x35\x41\xbc\xab\x36\x1b\x32\x7d\x3a\x3a\x3f\xb5\x65\x5c\x43\xb3\x1e\x68\x79\x88\x7c\x32\x9f\x53\x29\x44\xd2\xca\x1a\x26\x52\xd4\x77\x64\xf6\x30\xc8\x78\xfd\xf3\x43\xfa\x6f\x50\x50\x63\x92\x17\xb1\x20\x77\x8e\xf5\x37\x4a\x3d\x97\x49\xd6\x8c\xb2\xe6\x92\x49\x95\x5e\x53\x41\x2b\x9b\xfc\xf8\xb1\x6c\x76\x57\xd7\xc3\xd6\xe1\xdd\x3b\x17\x01\x63\xd7\x46\x8e\xc5\xe1\xe0\xfa\xe3\x59\x97\x7e\x97\x43\x7f\xa8\x3b\x77\xe1\x41\xb1\xb7\x63\x78\xda\x46\x3a\xb8\x1b\x2d\xac\xcf\xad\x40\xfa\x86\x83\xa4\xbf\xf1\x7a\x8e\xcf\x04\x67\xa3\x8b\x2e\x9e\x39\x33\x07\xf7\x6c\xad\x3b\x9d\x10\xcf\x0a\xb7\x60\xdf\x33\x85\xcc\x62\x9f\xaa\x31\x0b\xea\x3f\x41\xb4\x28\xd0\xf3\x44\x27\xa6\x39\x26\x78\x98\x3c\x4c\x72\x8c\xd3\x84\x3d\x85\xed\xa3\x3d\x7f\x91\xf4\x7c\x0f\xe5\xb9\x1e\x41\x78\x37\xfb\xad\xa7\x5f\x3b\x1c\x6f\x72\xdf\x6e\x3c\xbb\xd1\xe1\x36\x8c\xb4\x17\x75\xeb\xae\x6e\xb7\xc6\x93\x3d\x1b\xff\x56\x73\xf8\xee\x71\xdb\x28\x18\x06\x48\x9a\xcc\x82\xdb\x61\x0c\x2c\xcd\x4e\x34\xb9\xd0\x87\x8d\xc9\x8b\x17\x03\x78\x01\x17\xbf\xfd\x02\xbf\xb2\x66\xce\x04\x7e\xfb\x69\x5d\x88\x62\x15\xde\x1c\xb9\x67\x98\xdf\x03\x78\x31\x19\xb4\xee\x66\x75\xce\x09\x82\x48\x89\x92\x99\xb9\x19\xbc\x71\xe7\x9f\x27\x43\x4e\x90\xe8\x21\x50\x16\x7c\xa7\xb8\x6f\x13\xa2\xa2\xd9\x9e\xe1\x20\x5f\xe3\x22\xe7\x99\xd1\xf1\x13\x7d\x1d\x0c\x33\xf8\x2c\xf8\xaa\x92\xec\x95\x65\x4e\x9e\x0d\x9a\x12\x9a\x92\x73\xcc\x4d\x43\x70\x51\x8f\x4d\x89\xdf\x7c\x65\xa5\x4a\xe0\x3c\x18\xc8\xe0\xf8\x38\x38\x95\x0d\x00\x86\x50\x48\x6f\xc3\xd4\xbe\x6e\xd0\xf8\xf1\xc5\x5d\x6f\x20\x7a\xf3\x1b\xae\xe0\x96\x6f\x9a\x39\x06\xa2\x5b\x63\x77\x6d\xa2\xd0\xec\xa0\x31\x69\x2c\x18\x6a\x97\x26\x3d\xf3\x13\xff\xee\xc4\xf0\x49\xcd\x7a\x5d\x19\xef\x72\x5f\xdd\x2a\xf4\xfe\xe4\xc7\x8f\xe8\x7d\x6c\x18\xf6\xb8\x77\x84\x08\x86\xff\x1d\xb4\xe6\x23\x07\x66\x5e\x0f\x91\x2a\xf0\x50\xa9\x25\xc8\x16\xf2\x33\x26\xb5\x41\x02\x7b\x26\x13\xc0\xaa\x39\x67\xb7\xc5\xa6\x56\x66\xe3\xa5\x0b\x01\xc8\xed\x07\x17\xc7\xfa\xbb\xe5\x48\x4e\xc0\x3f\xc8\x73\xd8\x34\x73\x76\x5b\x35\x6c\x0e\xe7\xa0\xc4\x86\x41\xd6\x92\x0a\x80\xe4\x92\x3f\x7c\xe0\xc5\x1c\xfb\x26\x19\xd1\xf3\xbc\x05\x49\x37\xd8\x1e\xd3\x4b\x06\xb0\xe8\xa7\xcf\xc5\x82\xe9\x04\x0e\x81\xe3\x91\xc3\xd0\xa1\xec\xd4\xf8\xeb\xb3\x60\xeb\x42\x30\xa8\x69\x49\xf3\x32\xaf\x36\x9a\xc2\xf5\x2b\xb9\x2e\x1a\x28\xeb\x42\xca\x3c\x91\x9b\xea\x54\x6f\xd5\x29\x4a\x54\xcd\x22\x39\xfb\xa0\x3f\x8c\xc7\xe3\x57\x13\x94\x3d\xbb\xb6\x51\xd1\xb1\x27\xbc\x56\x35\x39\xd5\xef\x9d\xf6\x1b\x41\xf0\x0a\xf5\x3a\x09\x3b\x03\x43\x4b\x7b\x97\x7d\xe6\xa5\xe0\x21\xf0\x31\xdf\x28\x26\x70\x52\x78\x87\xcb\xe2\x23\x9f\x39\xed\xe1\x87\x71\xd5\x34\x5a\x1e\x72\x03\x3b\x8c\xa2\xd3\x7a\x1b\xeb\x95\xf1\xf5\xcc\x5c\xac\x50\xfa\x11\xed\xb0\x95\x3a\x0d\xea\x6d\x60\x59\xb8\x8b\xd6\x88\xc9\x04\x7e\x52\xf2\xb4\x5a\x34\x5c\x30\x7a\x62\x61\x1f\x61\x3c\x1e\xcf\xf4\xc1\x1a\x3f\x51\xa5\xa5\xb1\x5d\xab\x0c\x08\x34\xd6\x51\xe9\x71\xcd\x4b\x7a\x7d\x32\x5e\x17\x6a\x89\x79\x39\x75\x92\x1b\x51\x63\x6c\x4c\x8a\x75\x35\x99\xcd\xb6\x05\x9f\xc8\x4d\x35\xb9\xff\xfb\x44\x07\xc7\xf1\x23\x41\xed\xae\xfd\x8c\x75\xb1\x45\x77\x90\x3e\x9a\xe4\xe9\x8a\xdd\xd2\x4e\xeb\x35\xb2\x59\xba\xf3\x00\x4b\x86\xce\x94\xee\xb5\x58\xf2\x86\x37\x0a\x0f\xcd\x5f\xb6\x6b\x96\x64\x90\x14\xeb\x75\x5d\x69\x8d\x27\xd8\x1c\x13\x7d\x1f\xf0\x86\xf3\xbb\x8a\x65\x9e\xb3\x95\xf4\x60\xe4\x5a\xe3\x64\x02\x1f\x0b\x55\xdd\x33\x58\x73\x62\x25\x7f\x6c\x98\xa4\x37\x20\xf4\x8a\x84\x89\x7b\xca\x0a\xcf\x60\xcc\xc1\x85\xcf\xb7\x96\xbe\xf8\xc6\x6b\xcc\x8c\xee\xea\x05\x93\x6b\xde\x48\xf4\xac\x7e\x75\x76\xcb\x54\xb9\x4c\x37\xa2\x1e\xc1\x23\xac\x98\x5a\xf2\x79\x06\xc9\xe7\x4f\x17\x5f\x92\x91\xb5\x73\x44\x0b\x64\x7a\x99\x5d\x84\xa7\xd8\x9f\xca\x61\x59\xf0\x31\x3e\x4d\x03\x3e\x76\x14\x57\xa8\xce\x35\xb8\x2f\xaa\x92\xd7\xf7\x2c\xc5\xf9\xc3\x69\xeb\x64\x87\xb5\x14\xbd\xe0\x4c\xa0\xb5\x8d\x6b\x4c\x0d\x96\x07\x52\xc2\xae\xd9\xce\x0c\x84\xb1\x34\xa9\xef\x82\x66\xe8\x2f\xf0\xfa\x1b\x41\x4b\xe7\x2e\x2f\x9c\x4c\xac\xee\x9a\xf7\x19\xe2\xf6\x1d\xba\xee\xad\x80\x04\x9c\x9c\xfd\xb3\xa8\x6a\x36\x47\xa7\xe8\xe7\x61\x15\xec\xf6\xc1\xa4\x2d\x9e\x8c\x80\x0d\xe3\xfb\xca\x3d\x6d\xaf\x33\xd3\x14\x96\xdd\x60\xc0\xfe\x5c\x73\xa1\x88\xa7\x04\x84\x41\xa7\x0a\x36\xf4\xe8\x0f\x33\x70\x96\x7e\x4d\xe7\x65\x2f\xf0\xbb\x1e\xe0\x22\x1e\xe0\x82\x06\xe8\x35\xfb\x79\x87\x62\xa5\xe6\x1d\x5e\xd1\x6c\xcd\x4b\xe0\xf3\x0c\x08\x8d\x9c\x7a\xcf\xab\xf9\x19\x4e\x7f\xc3\xa9\x06\x2b\xd9\x85\x40\x96\x46\xfb\x7c\x49\x6f\x06\xf5\xe3\x2b\x82\x9c\x0e\x30\x47\x43\xeb\x42\x06\x67\x0c\xd4\x27\xbd\xf3\xd8\x46\x8c\x5e\xcb\x02\x2a\x09\xb2\x58\xb1\x98\x6b\xf8\xd7\xd0\xbe\xda\x9f\xb7\xff\x80\x45\xeb\x02\x4f\x70\xc3\x79\xcd\x8a\xa6\x0d\x4b\xed\x95\xfe\xa0\x81\x92\xec\x3c\xdb\x27\x88\xac\x01\x9d\x18\x54\xee\xfd\xc2\x1a\xb5\x6d\x79\xbc\x57\xc6\xf6\x0b\xa6\x32\x3a\x2f\x38\x2e\x0c\x7e\x43\xdc\x0e\x74\xdd\x18\xef\xaf\x01\x7b\xdf\x06\x23\x00\xfd\x71\xfa\x7f\x2c\x46\x48\x58\x18\x7b\xd0\x68\x53\x09\xaa\x2b\x70\x08\xee\x2d\x75\x8b\x94\x1e\xf7\xc6\x4f\xdb\xc2\xd0\x4b\xf6\xcd\x72\x27\x09\xa2\x3f\x13\xc0\xea\xb9\x9b\x0e\xfe\x17\x00\x00\xff\xff\xbe\x43\xd3\x0f\xe6\x24\x00\x00") func libsuiIndexTsBytes() ([]byte, error) { return bindataRead( @@ -897,12 +897,12 @@ func libsuiIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/index.ts", size: 4576, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "libsui/index.ts", size: 9446, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _libsuiUtilsTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x91\xbf\x6a\x33\x31\x10\xc4\xfb\x7b\x8a\x41\x7c\x85\x0c\x46\xee\x6d\xf4\x05\x13\xd2\x85\x14\x71\x19\x07\x23\x74\x6b\x47\xa0\x93\x9c\x95\xee\x82\x09\x7e\xf7\x70\x3a\xf9\x4f\x99\x3e\xcd\xe9\xd0\xee\xce\xec\xfc\x64\x63\x48\x19\xff\xfa\xec\x7c\x82\xc6\x77\x03\x6c\x72\x64\x5a\x42\x92\xef\x66\xd0\xff\xcb\x1d\xe0\xf6\x90\xf9\x74\xa4\xb8\x07\xf9\x0e\x5a\x6b\x88\x94\xd9\x85\x83\x98\xd5\x16\x4c\x15\xb4\xd1\xf6\x1d\x85\xac\x3e\x7b\xe2\xd3\x86\x3c\xd9\x1c\xb9\xe8\xad\x4a\xe3\xb9\x7c\x99\x72\xcf\x01\x81\xbe\xb0\xdb\xa5\xde\xed\xd2\x68\x7c\x6d\x3b\xcf\x9b\x06\x78\xa5\x2e\x0e\xf4\xe8\x4d\x4a\x65\x25\x1a\x85\xe7\xb0\xe3\xc5\x8b\xe9\xe8\x6e\xc3\x29\x4a\xa9\xd0\x98\x65\xcd\x6c\x4e\xca\xa5\x72\xca\xbb\x89\x87\xdb\x38\x96\xb7\x7f\x95\x8e\xde\x65\x29\x20\xea\x9a\x55\x4a\xed\x23\x3f\x19\xfb\x21\xa5\xbd\x73\xbb\xf8\x0d\xd0\xb0\x8a\xe9\xe8\x8d\x25\xb9\x78\xdb\x86\x2d\x6f\xd3\xfb\xe2\x30\x87\xb8\x08\x4d\xf4\x86\x09\x9a\x98\xd5\xe4\xab\x2b\xb4\x12\x4a\x15\xbb\x67\x97\xb2\xe2\x12\x5a\x0e\x17\x5c\xf5\xac\xc0\xa6\xc7\xba\x21\x5a\xb7\xed\x1f\xe3\x63\xda\xf6\x57\x70\xce\xab\xe6\x27\x00\x00\xff\xff\x1a\x7b\xdc\x1a\xe0\x02\x00\x00") +var _libsuiUtilsTs = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xe4\x57\x5b\x6f\xdb\x36\x14\x7e\xf7\xaf\x38\x15\x8c\x42\xc2\x5c\xa5\xcf\x72\x95\x2c\x18\x02\x0c\x43\x97\x6e\xcd\xde\x9a\xc2\x65\xa4\x63\x9b\x33\x45\x7a\x24\xe5\xcd\x88\xfd\xdf\x07\x5e\x44\x51\x89\xe5\xe6\x69\xd7\x17\xcb\xa0\xce\xe5\x3b\x87\xdf\xb9\xa8\x12\x5c\x69\x98\xb6\x9a\x32\x05\x25\x3c\x4e\x00\xee\xb4\x90\x58\x40\x8a\xac\xc9\xa0\xbc\xb4\x67\x00\x74\x09\xa9\xde\x6f\x51\x2c\x01\x59\x03\x65\x59\x42\xa2\xb4\xa4\x7c\x95\x64\x5e\x04\xdc\x1b\xa8\x45\xd5\x36\xc8\x75\xfe\x5b\x8b\x72\x7f\x87\x0c\x2b\x2d\xa4\xb5\x37\xb7\x82\x47\xfb\x7b\x71\x01\xdf\x6a\xf5\x86\xae\xb8\x90\x68\x4f\x24\xea\x56\x72\xe0\xf8\x3b\x2c\x16\xaa\xa5\x0b\x65\xa0\x04\xc5\xe3\x6c\x32\x01\xf8\x88\x8d\xd8\xe1\x77\x8c\x28\x65\x41\xa2\x71\x35\x83\xca\x1c\xdc\x92\x06\x23\xcc\x2e\x38\xfb\x06\x4d\x74\xd7\x52\x92\x7d\x4e\x95\x7d\xa6\x91\xc6\x55\xaf\x0e\x45\xff\x3f\x57\x5b\x46\x75\x9a\x40\xe2\x81\x7b\x53\xf9\x52\xc8\x1b\x52\xad\xd3\xb4\x8a\xbc\x75\xfe\x76\x50\x42\x95\x4b\xdc\x32\x52\x61\x7a\xf1\xe9\x9e\xdf\xcb\x7b\xf5\xf9\x62\x35\x83\xa4\x33\xe4\xf2\xb9\x73\x69\x4c\x32\x1f\xf9\x3c\xa4\xd1\x06\x95\x5b\x77\xef\xa9\xd2\xb9\xb4\x41\xa7\xbb\x2e\x81\xfe\xe9\x13\xe6\xae\xaf\x4f\xd1\x75\x5d\xff\xcf\xf2\x43\xea\xfa\x45\xc9\x39\xce\x27\x93\x65\xcb\x2b\x4d\x05\x87\xe9\xcf\x86\x9f\xa9\xf2\x04\x2d\xc0\xf1\x39\x2b\x60\xb1\xb0\xaf\x2c\xf0\x01\x29\x87\x1a\xd9\x7c\x72\x9c\x4c\x2c\x8a\x81\xca\x53\x8b\x70\x80\x1b\x07\x19\x4c\x38\x06\x8b\x0f\x41\x15\x70\x2b\x6a\x34\x31\x7c\x58\xbe\xf3\x42\x97\x70\x00\xde\x32\x06\xa5\x7d\x44\xe2\x45\xb0\xf3\x4c\xc2\xe6\x56\xb6\xb6\xd2\xc6\xfd\x67\xcf\xab\xb9\x13\x1e\x29\x69\xbd\xa6\x2a\xef\x65\x82\xf8\x3c\x7e\xdf\x45\x33\x5a\xfc\xd7\x8c\xc5\x59\xeb\xaf\x78\xa0\x9e\x33\xe4\x2b\xbd\x86\x4b\x78\xdb\x03\x18\xba\x80\x72\xe8\xf1\xd3\xdb\xcf\x9d\x39\xd7\x55\x8e\x80\x4c\xe1\x10\x7e\xaf\x3b\x44\xef\x34\xce\x45\x78\x34\xe5\x84\x86\xca\x15\x61\xec\x81\x54\x9b\xbe\xa6\x02\x4d\x66\x40\x79\x8d\x7f\x14\xc0\xdb\xe6\x01\xa5\xa5\xfc\x4e\xd0\x3a\x4e\xf6\xab\x01\xea\x3e\xba\x98\xd8\x11\x9c\x90\x91\x50\x49\xa1\x90\xad\xaf\x61\x59\x79\x68\x69\xcc\x51\x2f\x9f\x75\x0a\xa7\x6a\x23\x44\x48\xb4\x96\xe9\x06\xf7\xa3\x88\xe1\x70\x00\xcf\x97\xf8\x38\x5f\xa1\xbe\xd6\x5a\xd2\x87\x56\x23\xbc\x32\x04\xea\xaa\x2b\x79\x1a\x63\x60\x6a\x17\xa8\x3f\x1e\xb5\x67\x01\x05\x88\x35\xd1\xe4\x9f\x07\x31\x31\xb0\x8a\x04\xbe\x81\x01\xd8\x5f\x95\xe0\x7f\x39\xd8\xbe\xbb\x9e\xc1\x6b\x90\x0d\xf0\x7a\x70\xbb\xaf\x9a\xd7\xbe\xb9\x45\x22\x3f\xdc\x7d\xb8\xcd\xb7\x44\xaa\x68\x32\x41\x45\x74\xb5\x86\x14\xb3\x41\xdb\x17\x0c\x73\x94\x52\xc8\xf4\xcb\x8d\x79\x80\x51\x33\xad\xc9\xd8\x80\xa5\x90\x06\x10\x4c\x1f\x37\xb8\x3f\x16\x30\x7d\xc4\xe3\x97\xd0\x27\x4e\x02\xb2\x79\x5e\x13\x65\x07\x5d\x3c\xab\x1e\xc7\x6e\xee\x2a\x9a\x17\x95\xe0\x9a\x50\x1e\x2b\x86\xcb\xdb\x4a\xb1\xfd\x9b\x2e\x6f\x63\xe6\x83\xf1\xdf\x5d\xd1\xfc\xc5\x37\xbb\xc9\x62\x59\x73\xcd\x5f\x27\xc2\x1b\x53\xf7\x6f\x62\x7f\x99\x9b\x02\x5a\xb6\x98\xf4\xec\xb0\xd6\x5e\xbf\x86\x88\x24\x31\x1b\xce\xf1\xe1\x34\x23\x5e\xca\x09\x03\x6d\x84\x14\x27\x32\x19\x46\x40\xcc\x80\x5d\xb8\x57\xd9\x2f\x8e\xcf\xf9\xf2\x6f\x5d\x85\xc6\x08\x7e\x7e\x61\x34\x5a\x7d\xf3\xf7\xdb\xe2\x7f\x3f\x29\x67\xb6\xc4\x41\x46\xd6\xba\x61\xa9\xf9\xb9\x3a\xb1\x13\x1e\xba\xa5\xaa\xef\x0e\x46\xd4\x42\x69\x79\x8d\x4b\xca\xb1\x7e\x56\xef\x43\x48\x94\x73\x94\xdf\xff\xf2\xe3\x7b\xd3\x4a\x92\x24\x6e\x04\x4f\x97\xa2\xec\xe4\x2a\x13\x59\x28\x2d\xdc\x91\xa9\xe5\x42\x0a\x4b\xea\xf4\x23\xf2\x1a\xa5\x35\x59\x89\x66\x1b\xed\x8f\x62\x6b\x77\xe2\xd3\x0b\xa5\x91\x9d\x79\x91\x0e\x90\x85\xe3\x8d\x98\xc7\xbc\x3f\x0d\xb6\xdc\x1f\x07\x02\x80\xa8\x3d\xaf\xc0\x41\x48\x39\x69\x70\x66\xa7\x7a\x56\xc0\x4f\x52\x34\x54\xe1\x3b\x97\xd9\x8e\x10\xa3\x1f\x88\xee\xe3\x50\x3a\x43\x01\xc7\x0c\x7a\x9b\xb3\x18\x48\xd6\x65\xe1\xcf\x00\x00\x00\xff\xff\xde\x0d\x27\x5b\xed\x0e\x00\x00") func libsuiUtilsTsBytes() ([]byte, error) { return bindataRead( @@ -917,7 +917,7 @@ func libsuiUtilsTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/utils.ts", size: 736, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "libsui/utils.ts", size: 3821, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -937,7 +937,7 @@ func libsuiYaoTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -957,7 +957,7 @@ func publicIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -977,7 +977,7 @@ func uiIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -997,7 +997,7 @@ func xgenSetupIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/setup/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "xgen/setup/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1017,7 +1017,7 @@ func xgenV09IndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "xgen/v0.9/index.html", size: 14, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1037,7 +1037,7 @@ func xgenV10IndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "xgen/v1.0/index.html", size: 50, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1057,7 +1057,7 @@ func xgenV10Layouts__indexAsyncJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "xgen/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1077,7 +1077,7 @@ func xgenV10UmiJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "xgen/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1097,7 +1097,7 @@ func yaoApisImportHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1696, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1696, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1117,7 +1117,7 @@ func yaoApisStorageHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1046, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1046, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1137,7 +1137,7 @@ func yaoDataIcons404Png() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1157,7 +1157,7 @@ func yaoDataIconsIconIcns() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1177,7 +1177,7 @@ func yaoDataIconsIconIco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1197,7 +1197,7 @@ func yaoDataIconsIconPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1217,7 +1217,7 @@ func yaoDataIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1237,7 +1237,7 @@ func yaoFieldsModelTransJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1257,7 +1257,7 @@ func yaoLangsEnUsJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1277,7 +1277,7 @@ func yaoLangsZhCnGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1297,7 +1297,7 @@ func yaoLangsZhCnLoginsAdminLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1317,7 +1317,7 @@ func yaoLangsZhCnLoginsUserLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1337,7 +1337,7 @@ func yaoLangsZhHkGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1357,7 +1357,7 @@ func yaoLangsZhHkLoginsAdminLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1377,7 +1377,7 @@ func yaoLangsZhHkLoginsUserLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1397,7 +1397,7 @@ func yaoReleaseAppYaz() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1722646121, 0)} + info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1722675734, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/sui/core/injections.go b/sui/core/injections.go index 5707dc14..9d579390 100644 --- a/sui/core/injections.go +++ b/sui/core/injections.go @@ -38,6 +38,7 @@ func LibSUI() ([]byte, []byte, error) { MinifyIdentifiers: true, MinifySyntax: true, MinifyWhitespace: true, + Sourcefile: "libsui.ts", }) return js, sm, nil diff --git a/sui/libsui/index.ts b/sui/libsui/index.ts index 8a0f55d5..d380e422 100644 --- a/sui/libsui/index.ts +++ b/sui/libsui/index.ts @@ -141,6 +141,52 @@ function __sui_event_handler(event, dataKeys, jsonKeys, target, root, handler) { }); } +function __sui_event_init(elm: Element) { + const eventElms = elm.querySelectorAll("[s\\:event]"); + eventElms.forEach((eventElm) => { + const cn = eventElm.getAttribute("s:event-cn") || ""; + + // Data keys + const events: Record = {}; + const dataKeys: string[] = []; + const jsonKeys: string[] = []; + for (let i = 0; i < eventElm.attributes.length; i++) { + if (eventElm.attributes[i].name.startsWith("data:")) { + dataKeys.push(eventElm.attributes[i].name.replace("data:", "")); + } + if (eventElm.attributes[i].name.startsWith("json:")) { + jsonKeys.push(eventElm.attributes[i].name.replace("json:", "")); + } + if (eventElm.attributes[i].name.startsWith("s:on-")) { + const key = eventElm.attributes[i].name.replace("s:on-", ""); + events[key] = eventElm.attributes[i].value; + } + } + + // Bind the event + for (const name in events) { + const bind = events[name]; + if (cn == "__page") { + const handler = window[bind]; + const root = document.body; + const target = eventElm; + eventElm.addEventListener(name, (event) => { + __sui_event_handler(event, dataKeys, jsonKeys, target, root, handler); + }); + continue; + } + + const comp = new window[cn](eventElm.closest(`[s\\:cn=${cn}]`)); + const handler = comp[bind]; + const root = comp.root; + const target = eventElm; + eventElm.addEventListener(name, (event) => { + __sui_event_handler(event, dataKeys, jsonKeys, target, root, handler); + }); + } + }); +} + function __sui_store(elm) { elm = elm || document.body; @@ -175,3 +221,123 @@ function __sui_store(elm) { return this.GetJSON("__component_data") || {}; }; } + +/** + * SUI Render + * @param component + * @param name + */ +async function __sui_render( + component: Component | string, + name: string, + data: Record, + option?: RenderOption +): Promise { + const comp = ( + typeof component === "object" ? component : $$(component) + ) as Component; + + if (comp == null) { + console.error(`[SUI] Component not found: ${component}`); + return Promise.reject("Component not found"); + } + + const elms = comp.root.querySelectorAll(`[s\\:render=${name}]`); + if (!elms.length) { + console.error(`[SUI] No element found with s:render=${name}`); + return Promise.reject("No element found"); + } + + // Set default options + option = option || {}; + option.replace = option.replace === undefined ? true : option.replace; + option.showLoader = + option.showLoader === undefined ? false : option.showLoader; + option.withPageData = + option.withPageData === undefined ? false : option.withPageData; + + // Prepare loader + let loader = `Loading...`; + if (option.showLoader) { + if (typeof option.showLoader === "string") { + loader = option.showLoader; + } else if (option.showLoader instanceof HTMLElement) { + loader = option.showLoader.outerHTML; + } + elms.forEach((elm) => (elm.innerHTML = loader)); + } + + // Prepare data + let _data = comp.store.GetData() || {}; + if (option.withPageData) { + // @ts-ignore + _data = { ..._data, ...__sui_data }; + } + + const route = window.location.pathname; + const url = `/api/__yao/sui/v1/render${route}`; + const payload = { name, data: { ..._data, ...data }, option }; + const headers = { + "Content-Type": "application/json", + Cookie: document.cookie, + }; + + // Native post request to the server + try { + const body = JSON.stringify(payload); + const response = await fetch(url, { method: "POST", headers, body: body }); + const text = await response.text(); + if (!option.replace) { + return Promise.resolve(text); + } + + // Set the response text to the elements + elms.forEach((elm) => { + elm.innerHTML = text; + __sui_event_init(elm); + }); + + return Promise.resolve(text); + } catch (e) { + //Set the error message + elms.forEach((elm) => { + elm.innerHTML = `Failed to render`; + console.error("Failed to render", e); + }); + return Promise.reject("Failed to render"); + } +} + +export type Component = { + root: HTMLElement; + state: ComponentState; + store: ComponentStore; + watch?: Record void>; + Constants?: Record; + + [key: string]: any; +}; + +export type RenderOption = { + target?: HTMLElement; // default is same with s:render target + showLoader?: HTMLElement | string | boolean; // default is false + replace?: boolean; // default is true + withPageData?: boolean; // default is false +}; + +export type ComponentState = { + Set: (key: string, value: any) => void; +}; + +export type ComponentStore = { + Get: (key: string) => string; + Set: (key: string, value: any) => void; + GetJSON: (key: string) => any; + SetJSON: (key: string, value: any) => void; + GetData: () => Record; +}; + +export type State = { + target: HTMLElement; + stopPropagation(); +}; diff --git a/sui/libsui/utils.ts b/sui/libsui/utils.ts index 593b11f1..5acb6c39 100644 --- a/sui/libsui/utils.ts +++ b/sui/libsui/utils.ts @@ -3,6 +3,7 @@ const $utils = { if (typeof elm === "string") { elm = document.querySelector(elm); } + // @ts-ignore return new __sui_store(elm); }, @@ -26,3 +27,130 @@ const $utils = { return $utils; }, }; + +function $Query(selector: string): __Query { + return new __Query(selector); +} + +class __Query { + selector: string | Element = ""; + elements: NodeListOf | null = null; + element: Element | null = null; + constructor(selector: string | Element) { + if (typeof selector === "string") { + this.selector = selector; + this.elements = document.querySelectorAll(selector); + if (this.elements.length > 0) { + this.element = this.elements[0]; + } + } else { + this.element = selector; + } + this.selector = selector; + } + + each(callback: (element: __Query, index: number) => void) { + if (!this.elements) { + return; + } + this.elements.forEach((element, index) => { + callback(new __Query(element), index); + }); + return; + } + + attr(key) { + if (!this.element || typeof this.element.getAttribute !== "function") { + return null; + } + return this.element.getAttribute(key); + } + + data(key) { + if (!this.element || typeof this.element.getAttribute !== "function") { + return null; + } + return this.element.getAttribute("data:" + key); + } + + json(key) { + if (!this.element || typeof this.element.getAttribute !== "function") { + return null; + } + const v = this.element.getAttribute("json:" + key); + if (!v) { + return null; + } + try { + return JSON.parse(v); + } catch (e) { + console.error(`Error parsing JSON for key ${key}: ${e}`); + return null; + } + } + + hasClass(className) { + return this.element?.classList.contains(className); + } + + prop(key) { + if (!this.element || typeof this.element.getAttribute !== "function") { + return null; + } + const k = "prop:" + key; + const v = this.element.getAttribute(k); + const json = this.element.getAttribute("json-attr-prop:" + key) === "true"; + if (json && v) { + try { + return JSON.parse(v); + } catch (e) { + console.error(`Error parsing JSON for prop ${key}: ${e}`); + return null; + } + } + return v; + } + + removeClass(className) { + const classes = Array.isArray(className) ? className : className.split(" "); + classes.forEach((c) => { + const v = c.replace(/[\n\r\s]/g, ""); + if (v === "") return; + this.element?.classList.remove(v); + }); + return this; + } + + addClass(className) { + const classes = Array.isArray(className) ? className : className.split(" "); + classes.forEach((c) => { + const v = c.replace(/[\n\r\s]/g, ""); + if (v === "") return; + this.element?.classList.add(v); + }); + return this; + } + + html(html?: string): __Query | string { + if (html === undefined) { + return this.element?.innerHTML || ""; + } + if (this.element) { + this.element.innerHTML = html; + } + return this; + } +} + +class $Render { + comp = null; + option = null; + constructor(comp, option) { + this.comp = comp; + this.option = option; + } + async Render(name, data): Promise { + // @ts-ignore + return __sui_render(this.comp, name, data, this.option); + } +} diff --git a/sui/storages/local/build.go b/sui/storages/local/build.go index 8fefc35c..7b62e252 100644 --- a/sui/storages/local/build.go +++ b/sui/storages/local/build.go @@ -232,13 +232,15 @@ func (tmpl *Template) UpdateJSSDK(option *core.BuildOption) error { } // write the js sdk - err = os.WriteFile(file, []byte(jsCode), 0644) + // add source map url + jsCode = append(jsCode, []byte("\n//# sourceMappingURL=libsui.min.js.map")...) + err = os.WriteFile(file, jsCode, 0644) if err != nil { return err } // write the source map - err = os.WriteFile(mapFile, []byte(sourceMap), 0644) + err = os.WriteFile(mapFile, sourceMap, 0644) return nil } diff --git a/sui/storages/local/page_render_test.go b/sui/storages/local/page_render_test.go index 20170fe7..2ba1fbcc 100644 --- a/sui/storages/local/page_render_test.go +++ b/sui/storages/local/page_render_test.go @@ -28,10 +28,10 @@ func TestPageEditorRender(t *testing.T) { assert.NotEmpty(t, res.HTML) assert.NotEmpty(t, res.CSS) - assert.NotEmpty(t, res.Scripts) + // assert.NotEmpty(t, res.Scripts) assert.NotEmpty(t, res.Styles) assert.GreaterOrEqual(t, len(res.Styles), 1) - assert.GreaterOrEqual(t, len(res.Scripts), 1) + // assert.GreaterOrEqual(t, len(res.Scripts), 1) }