aa-ledger 1.0.4__py3-none-any.whl → 2.0.0__py3-none-any.whl
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.
- {aa_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/METADATA +5 -6
- aa_ledger-2.0.0.dist-info/RECORD +267 -0
- ledger/__init__.py +2 -2
- ledger/admin.py +23 -18
- ledger/api/__init__.py +23 -7
- ledger/api/{ledger/admin.py → admin.py} +25 -31
- ledger/api/alliance.py +755 -0
- ledger/api/character.py +786 -0
- ledger/api/corporation.py +1141 -0
- ledger/api/{helpers.py → helpers/core.py} +33 -33
- ledger/api/helpers/icons.py +372 -0
- ledger/api/helpers/planetary_helper.py +354 -0
- ledger/api/planetary.py +354 -0
- ledger/api/schema.py +240 -15
- ledger/app_settings.py +11 -27
- ledger/auth_hooks.py +2 -2
- ledger/constants.py +50 -177
- ledger/decorators.py +2 -46
- ledger/forms.py +133 -39
- ledger/helpers/billboard.py +194 -144
- ledger/helpers/cache.py +105 -0
- ledger/helpers/discord.py +2 -4
- ledger/helpers/eveonline.py +160 -0
- ledger/helpers/ledger_data.py +23 -0
- ledger/helpers/ref_type.py +53 -78
- ledger/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
- ledger/locale/cs_CZ/LC_MESSAGES/django.po +349 -193
- ledger/locale/de/LC_MESSAGES/django.mo +0 -0
- ledger/locale/de/LC_MESSAGES/django.po +528 -379
- ledger/locale/django.pot +721 -546
- ledger/locale/es/LC_MESSAGES/django.mo +0 -0
- ledger/locale/es/LC_MESSAGES/django.po +349 -194
- ledger/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
- ledger/locale/fr_FR/LC_MESSAGES/django.po +349 -193
- ledger/locale/it_IT/LC_MESSAGES/django.mo +0 -0
- ledger/locale/it_IT/LC_MESSAGES/django.po +349 -193
- ledger/locale/ja/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ja/LC_MESSAGES/django.po +348 -193
- ledger/locale/ko_KR/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ko_KR/LC_MESSAGES/django.po +349 -193
- ledger/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
- ledger/locale/nl_NL/LC_MESSAGES/django.po +349 -193
- ledger/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
- ledger/locale/pl_PL/LC_MESSAGES/django.po +350 -193
- ledger/locale/ru/LC_MESSAGES/django.mo +0 -0
- ledger/locale/ru/LC_MESSAGES/django.po +348 -193
- ledger/locale/sk/LC_MESSAGES/django.mo +0 -0
- ledger/locale/sk/LC_MESSAGES/django.po +348 -193
- ledger/locale/uk/LC_MESSAGES/django.mo +0 -0
- ledger/locale/uk/LC_MESSAGES/django.po +348 -193
- ledger/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- ledger/locale/zh_Hans/LC_MESSAGES/django.po +348 -193
- ledger/managers/character_audit_manager.py +28 -20
- ledger/managers/character_journal_manager.py +185 -357
- ledger/managers/character_mining_manager.py +52 -26
- ledger/managers/character_planetary_manager.py +178 -136
- ledger/managers/corporation_audit_manager.py +36 -27
- ledger/managers/corporation_journal_manager.py +92 -56
- ledger/managers/general_manager.py +8 -7
- ledger/migrations/0018_remove_characterplanet_ledger_char_planet__58a5b6_idx_and_more.py +44 -0
- ledger/migrations/0019_rename_characteraudit_characterowner_and_more.py +48 -0
- ledger/models/__init__.py +5 -11
- ledger/models/characteraudit.py +101 -109
- ledger/models/corporationaudit.py +94 -49
- ledger/models/general.py +105 -211
- ledger/models/helpers/update_manager.py +302 -0
- ledger/models/planetary.py +60 -205
- ledger/providers.py +101 -0
- ledger/static/ledger/css/{ledger.css → aa-ledger.css} +54 -28
- ledger/static/ledger/js/aa-ledger.js +124 -0
- ledger/static/ledger/js/charts.js +25 -1
- ledger/static/ledger/js/view-alliance-ledger.js +383 -0
- ledger/static/ledger/js/view-character-ledger.js +388 -0
- ledger/static/ledger/js/view-corporation-ledger.js +402 -0
- ledger/static/ledger/js/view-planetary.js +492 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/flow.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/index.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/percent.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Animated.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/themes/Dark.js +2 -0
- ledger/static/ledger/libs/amCharts/5.14.4/js/xy.js +2 -0
- ledger/static/ledger/libs/datatables/2.3.5/css/dataTables.bootstrap5.css +610 -0
- ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.bootstrap5.js +122 -0
- ledger/static/ledger/libs/datatables/2.3.5/js/dataTables.js +14127 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.bootstrap5.css +516 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/css/columnControl.dataTables.css +529 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/columnControl.bootstrap5.js +73 -0
- ledger/static/ledger/libs/datatables/Extensions/ColumnControl/1.1.1/js/dataTables.columnControl.js +3090 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/css/fixedHeader.bootstrap5.css +20 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/dataTables.fixedHeader.js +1203 -0
- ledger/static/ledger/libs/datatables/Extensions/FixedHeader/4.0.4/js/fixedHeader.bootstrap5.js +59 -0
- ledger/tasks.py +157 -141
- ledger/templates/ledger/base.html +59 -21
- ledger/templates/ledger/bundles/aa-ledger-css.html +3 -0
- ledger/templates/ledger/bundles/aa-ledger-js.html +3 -0
- ledger/templates/ledger/bundles/view-alliance-ledger-js.html +14 -0
- ledger/templates/ledger/bundles/view-character-ledger-js.html +15 -0
- ledger/templates/ledger/bundles/view-character-planetary-css.html +3 -0
- ledger/templates/ledger/bundles/view-character-planetary-js.html +4 -0
- ledger/templates/ledger/bundles/view-corporation-ledger-js.html +15 -0
- ledger/templates/ledger/partials/modal/confirm.html +0 -1
- ledger/templates/ledger/partials/modal/request-accept-delete-alliance.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-delete-character.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-delete-corporation.html +38 -0
- ledger/templates/ledger/partials/modal/request-accept-switch-notification.html +38 -0
- ledger/templates/ledger/partials/modal/request-view-alliance-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-character-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-corporation-details.html +26 -0
- ledger/templates/ledger/partials/modal/request-view-extractor.html +32 -0
- ledger/templates/ledger/partials/modal/request-view-factory.html +31 -0
- ledger/templates/ledger/partials/{menu → navigation}/administration.html +8 -0
- ledger/templates/ledger/partials/{menu → navigation}/navigation.html +2 -2
- ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance_corporations.html +3 -3
- ledger/templates/ledger/partials/view-alliance-administration/dashboard.html +81 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-billboard.html +25 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-alliance-ledger/alliance-table.html +24 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-alliance-ledger/information/summary.html +19 -0
- ledger/templates/ledger/partials/{administration → view-character-administration}/character.html +1 -9
- ledger/templates/ledger/partials/{administration → view-character-administration}/dashboard.html +0 -34
- ledger/templates/ledger/partials/view-character-ledger/character-billboard.html +25 -0
- ledger/templates/ledger/partials/view-character-ledger/character-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-character-ledger/character-table.html +25 -0
- ledger/templates/ledger/partials/view-character-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-character-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-character-ledger/information/summary.html +19 -0
- ledger/templates/ledger/partials/view-character-planetary/extractor-table.html +24 -0
- ledger/templates/ledger/partials/view-character-planetary/factory-table.html +24 -0
- ledger/templates/ledger/partials/view-character-planetary/planetary-table.html +22 -0
- ledger/templates/ledger/partials/view-character-planetary/storage-table.html +23 -0
- ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation.html +5 -13
- ledger/templates/ledger/partials/{administration → view-corporation-administration}/corporation_characters.html +1 -1
- ledger/templates/ledger/partials/view-corporation-administration/dashboard.html +81 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-billboard.html +25 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-ledger-details.html +21 -0
- ledger/templates/ledger/partials/view-corporation-ledger/corporation-table.html +26 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/daily.html +18 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/hourly.html +18 -0
- ledger/templates/ledger/partials/view-corporation-ledger/information/summary.html +19 -0
- ledger/templates/ledger/view-administration.html +62 -0
- ledger/templates/ledger/view-alliance-administration.html +49 -0
- ledger/templates/ledger/view-alliance-ledger.html +72 -0
- ledger/templates/ledger/view-alliance-overview.html +131 -0
- ledger/templates/ledger/view-character-administration.html +42 -0
- ledger/templates/ledger/view-character-ledger.html +73 -0
- ledger/templates/ledger/view-character-overview.html +135 -0
- ledger/templates/ledger/view-character-planetary-overview.html +135 -0
- ledger/templates/ledger/view-character-planetary.html +73 -0
- ledger/templates/ledger/view-corporation-administration.html +42 -0
- ledger/templates/ledger/view-corporation-ledger.html +73 -0
- ledger/templates/ledger/view-corporation-overview.html +131 -0
- ledger/templatetags/ledger.py +3 -5
- ledger/tests/__init__.py +187 -0
- ledger/tests/test_admin.py +164 -68
- ledger/tests/test_auth_hook.py +31 -13
- ledger/tests/test_decarators.py +14 -79
- ledger/tests/test_discord_installed.py +0 -1
- ledger/tests/test_helpers/test_ledger_data.py +19 -0
- ledger/tests/test_managers/test_character_audit_manager.py +111 -69
- ledger/tests/test_managers/test_character_journal_manager.py +48 -208
- ledger/tests/test_managers/test_character_mining_manager.py +37 -16
- ledger/tests/test_managers/test_corporation_division_manager.py +66 -28
- ledger/tests/test_managers/test_corporation_journal_manager.py +39 -42
- ledger/tests/test_managers/test_general_manager.py +78 -18
- ledger/tests/test_managers/test_planetary_manager.py +73 -32
- ledger/tests/test_models/test_characteraudit.py +58 -74
- ledger/tests/test_models/test_characterminingledger.py +20 -26
- ledger/tests/test_models/test_characterwalletjournal.py +10 -33
- ledger/tests/test_models/test_corporationaudit.py +41 -35
- ledger/tests/test_models/test_corporationwalletjournal.py +35 -32
- ledger/tests/test_models/test_general.py +44 -11
- ledger/tests/test_models/test_planetary.py +14 -80
- ledger/tests/test_templatetags.py +2 -7
- ledger/tests/test_views/corporation/test_add_corp.py +16 -35
- ledger/tests/test_views/corporation/test_delete_corporation.py +66 -42
- ledger/tests/test_views/test_access.py +512 -545
- ledger/tests/test_views/test_add_ally.py +57 -46
- ledger/tests/test_views/test_add_char.py +21 -33
- ledger/tests/test_views/test_delete_character.py +24 -21
- ledger/tests/testdata/README_ESI_STUB.md +430 -0
- ledger/tests/testdata/esi_stub_openapi.py +511 -0
- ledger/tests/testdata/integrations/__init__.py +0 -0
- ledger/tests/testdata/{load_eveuniverse.py → integrations/eveuniverse.py} +0 -1
- ledger/tests/testdata/integrations/planetary.py +13 -0
- ledger/tests/testdata/json/factory.json +281 -0
- ledger/tests/testdata/json/inactive.json +281 -0
- ledger/tests/testdata/json/pins.json +175 -272
- ledger/tests/testdata/json/route.json +95 -528
- ledger/tests/testdata/test_esi_stub.py +468 -0
- ledger/tests/testdata/utils.py +601 -0
- ledger/thirdparty/charlink_hook.py +60 -30
- ledger/urls.py +0 -135
- ledger/views/alliance/add_ally.py +2 -4
- ledger/views/alliance/alliance_ledger.py +64 -147
- ledger/views/character/add_char.py +8 -10
- ledger/views/character/character_ledger.py +60 -126
- ledger/views/character/planetary.py +5 -98
- ledger/views/corporation/add_corp.py +10 -12
- ledger/views/corporation/corporation_ledger.py +65 -327
- ledger/views/index.py +92 -30
- aa_ledger-1.0.4.dist-info/RECORD +0 -236
- ledger/api/api_helper/planetary_helper.py +0 -107
- ledger/api/ledger/__init__.py +0 -7
- ledger/api/ledger/planetary.py +0 -231
- ledger/helpers/alliance.py +0 -317
- ledger/helpers/character.py +0 -251
- ledger/helpers/core.py +0 -665
- ledger/helpers/corporation.py +0 -427
- ledger/helpers/data_exporter.py +0 -452
- ledger/static/ledger/js/planetary-confirm.js +0 -66
- ledger/static/ledger/js/planetary.js +0 -143
- ledger/templates/ledger/admin.html +0 -43
- ledger/templates/ledger/allyledger/admin/alliance_administration.html +0 -46
- ledger/templates/ledger/allyledger/admin/alliance_overview.html +0 -108
- ledger/templates/ledger/allyledger/alliance_ledger.html +0 -86
- ledger/templates/ledger/bundles/character-ledger-bundles.html +0 -66
- ledger/templates/ledger/bundles/corporation-ledger-bundles.html +0 -75
- ledger/templates/ledger/bundles/ledger-bundles.html +0 -23
- ledger/templates/ledger/bundles/ledger-css.html +0 -3
- ledger/templates/ledger/bundles/planetary-bundles.html +0 -50
- ledger/templates/ledger/bundles/table-css.html +0 -3
- ledger/templates/ledger/charledger/admin/character_administration.html +0 -39
- ledger/templates/ledger/charledger/admin/character_overview.html +0 -106
- ledger/templates/ledger/charledger/character_ledger.html +0 -94
- ledger/templates/ledger/charledger/planetary/admin/planetary_overview.html +0 -123
- ledger/templates/ledger/charledger/planetary/planetary_ledger.html +0 -54
- ledger/templates/ledger/corpledger/admin/corporation_administration.html +0 -39
- ledger/templates/ledger/corpledger/admin/corporation_overview.html +0 -108
- ledger/templates/ledger/corpledger/corporation_ledger.html +0 -129
- ledger/templates/ledger/data-export.html +0 -78
- ledger/templates/ledger/error.html +0 -31
- ledger/templates/ledger/partials/form/error-message.html +0 -1
- ledger/templates/ledger/partials/information/daily.html +0 -56
- ledger/templates/ledger/partials/information/day.html +0 -48
- ledger/templates/ledger/partials/information/error.html +0 -8
- ledger/templates/ledger/partials/information/hourly.html +0 -53
- ledger/templates/ledger/partials/information/summary.html +0 -88
- ledger/templates/ledger/partials/information/view_character_content.html +0 -35
- ledger/templates/ledger/partials/modal/switchalarm_confirm.html +0 -39
- ledger/templates/ledger/partials/modal/view_extractor.html +0 -48
- ledger/templates/ledger/partials/modal/view_factory.html +0 -123
- ledger/templates/ledger/partials/table/char-ledger.html +0 -85
- ledger/templates/ledger/partials/table/corp-ledger.html +0 -66
- ledger/templates/ledger/partials/table/planetary.html +0 -18
- ledger/templates/ledger/partials/thirdparty/billboard.html +0 -22
- ledger/templates/ledger/partials/view/card.html +0 -160
- ledger/templates/ledger/permission.html +0 -2
- ledger/tests/test_helpers/test_billboard.py +0 -11
- ledger/tests/test_helpers/test_data_exporter.py +0 -207
- ledger/tests/test_tasks.py +0 -282
- ledger/tests/test_view_helpers/test_core.py +0 -47
- ledger/tests/test_views/corporation/test_corporation.py +0 -267
- ledger/tests/test_views/test_planetary.py +0 -137
- ledger/tests/testdata/esi_stub.py +0 -109
- ledger/tests/testdata/esi_stub_migration.py +0 -80
- ledger/tests/testdata/generate_characteraudit.py +0 -106
- ledger/tests/testdata/generate_corporationaudit.py +0 -74
- ledger/tests/testdata/generate_events.py +0 -31
- ledger/tests/testdata/generate_miningledger.py +0 -13
- ledger/tests/testdata/generate_planets.py +0 -48
- ledger/tests/testdata/generate_walletjournal.py +0 -42
- ledger/tests/testdata/json/czarno-pins.json +0 -240
- ledger/tests/testdata/json/czarno-routes.json +0 -165
- ledger/tests/testdata/json/pins2.json +0 -538
- {aa_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/WHEEL +0 -0
- {aa_ledger-1.0.4.dist-info → aa_ledger-2.0.0.dist-info}/licenses/LICENSE +0 -0
- /ledger/{tests/test_view_helpers → api/helpers}/__init__.py +0 -0
- /ledger/templates/ledger/bundles/{ally-administration-bundles.html → view-alliance-administration-js.html} +0 -0
- /ledger/templates/ledger/bundles/{char-administration-bundles.html → view-character-administration-js.html} +0 -0
- /ledger/templates/ledger/bundles/{corp-administration-bundles.html → view-corporation-administration-js.html} +0 -0
- /ledger/templates/ledger/partials/{administration → view-alliance-administration}/alliance.html +0 -0
- /ledger/tests/testdata/{esi.json → esi_test_data.json} +0 -0
- /ledger/tests/testdata/{allianceauth.json → integrations/allianceauth.json} +0 -0
- /ledger/tests/testdata/{load_allianceauth.py → integrations/allianceauth.py} +0 -0
- /ledger/tests/testdata/{eveentity.json → integrations/eveentity.json} +0 -0
- /ledger/tests/testdata/{load_eveentity.py → integrations/eveentity.py} +0 -0
- /ledger/tests/testdata/{eveuniverse.json → integrations/eveuniverse.json} +0 -0
- /ledger/tests/testdata/{planetary.json → integrations/planetary.json} +0 -0
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
/* global aaLedgerSettings, aaLedgerSettingsOverride, _bootstrapTooltip, fetchGet, fetchPost, bootstrap, DataTable, moment */
|
|
2
|
+
|
|
3
|
+
$(document).ready(() => {
|
|
4
|
+
/**
|
|
5
|
+
* Table :: IDs
|
|
6
|
+
*/
|
|
7
|
+
const planetaryTable = $('#planets-details');
|
|
8
|
+
const storageTable = $('#storage-table');
|
|
9
|
+
const factoryTable = $('#factory-table');
|
|
10
|
+
const extractorTable = $('#extractors-table');
|
|
11
|
+
/**
|
|
12
|
+
* Modals :: IDs
|
|
13
|
+
*/
|
|
14
|
+
const modalRequestViewFactory = $('#ledger-view-planetary-factory');
|
|
15
|
+
const modalRequestViewExtractor = $('#ledger-view-planetary-extractor');
|
|
16
|
+
const modalRequestToggleNotification = $('#ledger-accept-planet-toggle-notification');
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Translation
|
|
20
|
+
*/
|
|
21
|
+
const confirmSwitchAlarm = aaLedgerSettings.translations.confirmSwitchAlarm;
|
|
22
|
+
const switchAlarm = aaLedgerSettings.translations.buttonSwitchAlarm;
|
|
23
|
+
|
|
24
|
+
fetchGet({
|
|
25
|
+
url: aaLedgerSettings.url.Planetary,
|
|
26
|
+
})
|
|
27
|
+
.then((data) => {
|
|
28
|
+
if (data) {
|
|
29
|
+
/**
|
|
30
|
+
* Table :: Planetary
|
|
31
|
+
* Initialize DataTable for Planetary Table
|
|
32
|
+
* @type {*|jQuery}
|
|
33
|
+
*/
|
|
34
|
+
const planetaryDataTable = new DataTable(planetaryTable, {
|
|
35
|
+
data: data,
|
|
36
|
+
language: aaLedgerSettings.dataTables.language,
|
|
37
|
+
layout: aaLedgerSettings.dataTables.layout,
|
|
38
|
+
ordering: aaLedgerSettings.dataTables.ordering,
|
|
39
|
+
columnControl: aaLedgerSettings.dataTables.columnControl,
|
|
40
|
+
order: [[4, 'desc']],
|
|
41
|
+
columnDefs: [
|
|
42
|
+
{
|
|
43
|
+
orderable: false,
|
|
44
|
+
targets: [3, 5, 6, 8],
|
|
45
|
+
columnControl: [
|
|
46
|
+
{target: 0, content: []},
|
|
47
|
+
{target: 1, content: []}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
targets: [3],
|
|
52
|
+
width: '20%'
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
targets: [2, 5, 8],
|
|
56
|
+
width: '32px'
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
pageLength: 25,
|
|
60
|
+
columns: [
|
|
61
|
+
{
|
|
62
|
+
data: {
|
|
63
|
+
display: (data) => data.owner.icon + ' ' + data.owner.character_name,
|
|
64
|
+
sort: (data) => data.owner.character_name,
|
|
65
|
+
filter: (data) => data.owner.character_name
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
data: {
|
|
70
|
+
display: (data) => data.planet.type.icon + ' ' + data.planet.name + data.alarm,
|
|
71
|
+
sort: (data) => data.planet.name,
|
|
72
|
+
filter: (data) => data.planet.name
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
data: {
|
|
77
|
+
display: (data) => data.planet.upgrade_level,
|
|
78
|
+
sort: (data) => data.planet.upgrade_level,
|
|
79
|
+
filter: (data) => data.planet.upgrade_level
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
data: {
|
|
84
|
+
display: (data) => {
|
|
85
|
+
const items = data.factories.flatMap(f => f.products);
|
|
86
|
+
const icons = Array.from(new Set(items.map(product => product.icon))).join(' ');
|
|
87
|
+
return `${icons} ${data.actions.factory_info_button}`;
|
|
88
|
+
},
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
data: 'progress_bar'
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
data: {
|
|
96
|
+
display: (data) => data.actions.extractor_info_button,
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
data: {
|
|
101
|
+
display: (data) => data.expired,
|
|
102
|
+
sort: (data) => data.expired,
|
|
103
|
+
filter: (data) => data.expired
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
data: {
|
|
108
|
+
display: (data) => {
|
|
109
|
+
const date = moment(data.planet.last_update);
|
|
110
|
+
if (!data.planet.last_update || !date.isValid()) {
|
|
111
|
+
return 'N/A';
|
|
112
|
+
}
|
|
113
|
+
return date.fromNow();
|
|
114
|
+
},
|
|
115
|
+
sort: (data) => data.planet.last_update,
|
|
116
|
+
filter: (data) => data.planet.last_update
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
data: {
|
|
121
|
+
display: (data) => data.actions.toggle_notification_button,
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
initComplete: function() {
|
|
126
|
+
_bootstrapTooltip({selector: '#planets-details' });
|
|
127
|
+
},
|
|
128
|
+
drawCallback: function () {
|
|
129
|
+
_bootstrapTooltip({selector: '#planets-details' });
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
.catch((error) => {
|
|
135
|
+
console.error('Error fetching planetary data:', error);
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Modal:: View Factory Details :: Table :: Storage :: Helper Function :: Load Modal DataTable
|
|
140
|
+
* Load data into Storage DataTable and redraw in View Factory Details Modal
|
|
141
|
+
* @param {Object} tableData Ajax API Response Data
|
|
142
|
+
* @private
|
|
143
|
+
*/
|
|
144
|
+
const _loadstorageModalDataTable = (tableData) => {
|
|
145
|
+
const dtStorage = storageTable.DataTable();
|
|
146
|
+
dtStorage.clear().rows.add(tableData).draw();
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Modal:: View Factory Details :: Table :: Storage :: Helper Function :: Clear Modal DataTable
|
|
151
|
+
* Clear data from Storage DataTable and redraw in View Factory Details Modal
|
|
152
|
+
* @private
|
|
153
|
+
*/
|
|
154
|
+
const _clearstorageModalDataTable = () => {
|
|
155
|
+
const dtStorage = storageTable.DataTable();
|
|
156
|
+
dtStorage.clear().draw();
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Modal :: View Factory Details :: Table :: Storage Table DataTable
|
|
161
|
+
* Initialize DataTable for View Factory Details Modal :: Storage Table
|
|
162
|
+
* @type {*|jQuery}
|
|
163
|
+
*/
|
|
164
|
+
const storageDataTable = new DataTable(storageTable, {
|
|
165
|
+
data: null, // Loaded via API on modal open
|
|
166
|
+
language: aaLedgerSettings.dataTables.language,
|
|
167
|
+
layout: aaLedgerSettings.dataTables.layout,
|
|
168
|
+
ordering: aaLedgerSettings.dataTables.ordering,
|
|
169
|
+
columnControl: aaLedgerSettings.dataTables.columnControl,
|
|
170
|
+
order: [[1, 'desc']],
|
|
171
|
+
columns: [
|
|
172
|
+
{
|
|
173
|
+
data: {
|
|
174
|
+
display: (data) => data.factory_name,
|
|
175
|
+
sort: (data) => data.factory_name,
|
|
176
|
+
filter: (data) => data.factory_name
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
data: {
|
|
181
|
+
display: (data) => data.product.icon + ' ' + data.product.item_name,
|
|
182
|
+
sort: (data) => data.product.item_name,
|
|
183
|
+
filter: (data) => data.product.item_name,
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
data:
|
|
188
|
+
{
|
|
189
|
+
display: (data) => data.product.item_quantity.toLocaleString(aaLedgerSettings.locale),
|
|
190
|
+
sort: (data) => data.product.item_quantity,
|
|
191
|
+
filter: (data) => data.product.item_quantity,
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
initComplete: function () {
|
|
196
|
+
_bootstrapTooltip({selector: '#storage-table'});
|
|
197
|
+
},
|
|
198
|
+
drawCallback: function () {
|
|
199
|
+
_bootstrapTooltip({selector: '#storage-table'});
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Modal:: View Factory Details :: Table :: Factory :: Helper Function :: Load Modal DataTable
|
|
205
|
+
* Load data into Factory DataTable and redraw in View Factory Details Modal
|
|
206
|
+
* @param {Object} tableData Ajax API Response Data
|
|
207
|
+
* @private
|
|
208
|
+
*/
|
|
209
|
+
const _loadfactoryModalDataTable = (tableData) => {
|
|
210
|
+
const dtFactory = factoryTable.DataTable();
|
|
211
|
+
dtFactory.clear().rows.add(tableData.factories).draw();
|
|
212
|
+
|
|
213
|
+
const dtStorage = storageTable.DataTable();
|
|
214
|
+
dtStorage.clear().rows.add(tableData.storage).draw();
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Modal:: View Factory Details :: Table :: Factory :: Helper Function :: Clear Modal DataTable
|
|
219
|
+
* Clear data from Factory DataTable and redraw in View Factory Details Modal
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
const _clearfactoryModalDataTable = () => {
|
|
223
|
+
const dtFactory = factoryTable.DataTable();
|
|
224
|
+
dtFactory.clear().draw();
|
|
225
|
+
|
|
226
|
+
const dtStorage = storageTable.DataTable();
|
|
227
|
+
dtStorage.clear().draw();
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Modal :: View Factory Details :: Table :: Factory Table DataTable
|
|
232
|
+
* Initialize DataTable for View Factory Details Modal :: Factory Table
|
|
233
|
+
* @type {*|jQuery}
|
|
234
|
+
*/
|
|
235
|
+
const factoryDataTable = new DataTable(factoryTable, {
|
|
236
|
+
data: null, // Loaded via API on modal open
|
|
237
|
+
language: aaLedgerSettings.dataTables.language,
|
|
238
|
+
layout: aaLedgerSettings.dataTables.layout,
|
|
239
|
+
ordering: aaLedgerSettings.dataTables.ordering,
|
|
240
|
+
columnControl: aaLedgerSettings.dataTables.columnControl,
|
|
241
|
+
order: [[0, 'desc']],
|
|
242
|
+
columnDefs: [
|
|
243
|
+
{
|
|
244
|
+
orderable: false,
|
|
245
|
+
targets: [1, 3],
|
|
246
|
+
columnControl: [
|
|
247
|
+
{target: 0, content: []},
|
|
248
|
+
{target: 1, content: []}
|
|
249
|
+
]
|
|
250
|
+
}
|
|
251
|
+
],
|
|
252
|
+
columns: [
|
|
253
|
+
{
|
|
254
|
+
data: {
|
|
255
|
+
display: (data) => data.factory_name,
|
|
256
|
+
sort: (data) => data.factory_name,
|
|
257
|
+
filter: (data) => data.factory_name
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
data: {
|
|
262
|
+
display: (data) => Object.values(data.input_products).map(product => product.icon),
|
|
263
|
+
sort: (data) => Object.values(data.input_products).map(product => product.item_name),
|
|
264
|
+
filter: (data) => Object.values(data.input_products).map(product => product.item_name)
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
data:
|
|
269
|
+
{
|
|
270
|
+
display: (data) => data.output_product ? data.output_product.icon + ' ' + data.output_product.item_name : '',
|
|
271
|
+
sort: (data) => data.output_product ? data.output_product.item_name : '',
|
|
272
|
+
filter: (data) => data.output_product ? data.output_product.item_name : ''
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
data:
|
|
277
|
+
{
|
|
278
|
+
display: (data) => data.is_active,
|
|
279
|
+
sort: (data) => data.is_active,
|
|
280
|
+
filter: (data) => data.is_active
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
],
|
|
284
|
+
initComplete: function () {
|
|
285
|
+
_bootstrapTooltip({selector: '#factory-table'});
|
|
286
|
+
},
|
|
287
|
+
drawCallback: function () {
|
|
288
|
+
_bootstrapTooltip({selector: '#factory-table'});
|
|
289
|
+
},
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Modal :: Factory :: Info Button Click Handler
|
|
294
|
+
* @const {_loadfactoryModalDataTable} :: Load Factory Data into Factory DataTable in the Factory Modal
|
|
295
|
+
* @const {_clearfactoryModalDataTable} :: Clear related DataTable on Close
|
|
296
|
+
* When opening, fetch data from the API Endpoint defined in the button's data-action attribute
|
|
297
|
+
* and load it into the Factory DataTable related to the Factory Modal
|
|
298
|
+
*/
|
|
299
|
+
modalRequestViewFactory.on('show.bs.modal', (event) => {
|
|
300
|
+
const button = $(event.relatedTarget);
|
|
301
|
+
const url = button.data('action');
|
|
302
|
+
|
|
303
|
+
// guard clause for previous Modal reload function
|
|
304
|
+
if (!url) {
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
fetchGet({
|
|
309
|
+
url: url,
|
|
310
|
+
})
|
|
311
|
+
.then((data) => {
|
|
312
|
+
if (data) {
|
|
313
|
+
_loadfactoryModalDataTable(data);
|
|
314
|
+
}
|
|
315
|
+
})
|
|
316
|
+
.catch((error) => {
|
|
317
|
+
console.error('Error fetching Factory Modal:', error);
|
|
318
|
+
});
|
|
319
|
+
})
|
|
320
|
+
.on('hide.bs.modal', () => {
|
|
321
|
+
_clearfactoryModalDataTable();
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Modal :: View Extractor Details :: Table :: Extractors Table DataTable
|
|
326
|
+
* Initialize DataTable for View Extractor Details Modal :: Extractors Table
|
|
327
|
+
* @type {*|jQuery}
|
|
328
|
+
*/
|
|
329
|
+
const extractorDataTable = new DataTable(extractorTable, {
|
|
330
|
+
data: null, // Loaded via API on modal open
|
|
331
|
+
language: aaLedgerSettings.dataTables.language,
|
|
332
|
+
layout: aaLedgerSettings.dataTables.layout,
|
|
333
|
+
ordering: aaLedgerSettings.dataTables.ordering,
|
|
334
|
+
columnControl: aaLedgerSettings.dataTables.columnControl,
|
|
335
|
+
order: [[0, 'desc']],
|
|
336
|
+
columns: [
|
|
337
|
+
{
|
|
338
|
+
data: {
|
|
339
|
+
display: (data) => data.icon + ' ' + data.item_name,
|
|
340
|
+
sort: (data) => data.item_name,
|
|
341
|
+
filter: (data) => data.item_name
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
data: {
|
|
346
|
+
display: (data) => {
|
|
347
|
+
const date = moment(data.install_time);
|
|
348
|
+
if (!data.install_time || !date.isValid()) {
|
|
349
|
+
return 'N/A';
|
|
350
|
+
}
|
|
351
|
+
return date.fromNow();
|
|
352
|
+
},
|
|
353
|
+
sort: (data) => data.install_time,
|
|
354
|
+
filter: (data) => data.install_time
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
data:
|
|
359
|
+
{
|
|
360
|
+
display: (data) => {
|
|
361
|
+
const date = moment(data.expiry_time);
|
|
362
|
+
if (!data.expiry_time || !date.isValid()) {
|
|
363
|
+
return 'N/A';
|
|
364
|
+
}
|
|
365
|
+
return date.fromNow();
|
|
366
|
+
},
|
|
367
|
+
sort: (data) => data.expiry_time,
|
|
368
|
+
filter: (data) => data.expiry_time
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
data:
|
|
373
|
+
{
|
|
374
|
+
display: (data) => data.progress.html,
|
|
375
|
+
sort: (data) => data.progress.percentage,
|
|
376
|
+
filter: (data) => data.progress.percentage
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
],
|
|
380
|
+
initComplete: function () {
|
|
381
|
+
_bootstrapTooltip({selector: '#extractors-table'});
|
|
382
|
+
},
|
|
383
|
+
drawCallback: function () {
|
|
384
|
+
_bootstrapTooltip({selector: '#extractors-table'});
|
|
385
|
+
},
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Modal:: View Extractor Details :: Table :: Extractor :: Helper Function :: Load Modal DataTable
|
|
390
|
+
* Load data into Extractor DataTable and redraw in View Extractor Details Modal
|
|
391
|
+
* @param {Object} tableData Ajax API Response Data
|
|
392
|
+
* @private
|
|
393
|
+
*/
|
|
394
|
+
const _loadextractorModalDataTable = (tableData) => {
|
|
395
|
+
const dtExtractor = extractorTable.DataTable();
|
|
396
|
+
dtExtractor.clear().rows.add(tableData.extractors).draw();
|
|
397
|
+
};
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Modal:: View Extractor Details :: Table :: Extractor :: Helper Function :: Clear Modal DataTable
|
|
401
|
+
* Clear data from Extractor DataTable and redraw in View Extractor Details Modal
|
|
402
|
+
* @private
|
|
403
|
+
*/
|
|
404
|
+
const _clearextractorModalDataTable = () => {
|
|
405
|
+
const dtExtractor = extractorTable.DataTable();
|
|
406
|
+
dtExtractor.clear().draw();
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* Modal :: Extractor :: Info Button Click Handler
|
|
411
|
+
* @const {_loadextractorModalDataTable} :: Load Extractor Data into Extractor DataTable in the Extractor Modal
|
|
412
|
+
* @const {_clearextractorModalDataTable} :: Clear related DataTable on Close
|
|
413
|
+
* When opening, fetch data from the API Endpoint defined in the button's data-action attribute
|
|
414
|
+
* and load it into the Extractor DataTable related to the Extractor Modal
|
|
415
|
+
*/
|
|
416
|
+
modalRequestViewExtractor.on('show.bs.modal', (event) => {
|
|
417
|
+
const button = $(event.relatedTarget);
|
|
418
|
+
const url = button.data('action');
|
|
419
|
+
|
|
420
|
+
// guard clause for previous Modal reload function
|
|
421
|
+
if (!url) {
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
fetchGet({
|
|
426
|
+
url: url,
|
|
427
|
+
})
|
|
428
|
+
.then((data) => {
|
|
429
|
+
if (data) {
|
|
430
|
+
_loadextractorModalDataTable(data);
|
|
431
|
+
}
|
|
432
|
+
})
|
|
433
|
+
.catch((error) => {
|
|
434
|
+
console.error('Error fetching Extractor Modal:', error);
|
|
435
|
+
});
|
|
436
|
+
})
|
|
437
|
+
.on('hide.bs.modal', () => {
|
|
438
|
+
_clearextractorModalDataTable();
|
|
439
|
+
});
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Table :: Planetary :: Reload DataTable
|
|
443
|
+
* Reload the Planetary DataTable with new data
|
|
444
|
+
* @param {Array} newData - New data to load into the DataTable
|
|
445
|
+
* @returns {void}
|
|
446
|
+
*/
|
|
447
|
+
function _reloadPlanetaryDataTable(newData) {
|
|
448
|
+
const dtPlanetary = planetaryTable.DataTable();
|
|
449
|
+
dtPlanetary.clear().rows.add(newData).draw();
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/**
|
|
453
|
+
* Table :: Planetary :: Toggle Notification Button Click Handler
|
|
454
|
+
* Open Confirm Toggle Notification Modal
|
|
455
|
+
* On Confirmation send a request to the API Endpoint and close the modal
|
|
456
|
+
*/
|
|
457
|
+
modalRequestToggleNotification.on('show.bs.modal', (event) => {
|
|
458
|
+
const button = $(event.relatedTarget);
|
|
459
|
+
const url = button.data('action');
|
|
460
|
+
const form = modalRequestToggleNotification.find('form');
|
|
461
|
+
const csrfMiddlewareToken = form.find('input[name="csrfmiddlewaretoken"]').val();
|
|
462
|
+
|
|
463
|
+
modalRequestToggleNotification.find('#modal-button-confirm-accept-request').on('click', () => {
|
|
464
|
+
fetchPost({
|
|
465
|
+
url: url,
|
|
466
|
+
csrfToken: csrfMiddlewareToken,
|
|
467
|
+
})
|
|
468
|
+
.then((data) => {
|
|
469
|
+
if (data.success === true) {
|
|
470
|
+
fetchGet({
|
|
471
|
+
url: aaLedgerSettings.url.Planetary,
|
|
472
|
+
})
|
|
473
|
+
.then((newData) => {
|
|
474
|
+
if (newData) {
|
|
475
|
+
_reloadPlanetaryDataTable(newData);
|
|
476
|
+
}
|
|
477
|
+
})
|
|
478
|
+
.catch((error) => {
|
|
479
|
+
console.error('Error fetching planetary data:', error);
|
|
480
|
+
});
|
|
481
|
+
modalRequestToggleNotification.modal('hide');
|
|
482
|
+
}
|
|
483
|
+
})
|
|
484
|
+
.catch((error) => {
|
|
485
|
+
console.error(`Error posting switch notification request: ${error.message}`);
|
|
486
|
+
});
|
|
487
|
+
});
|
|
488
|
+
})
|
|
489
|
+
.on('hide.bs.modal', () => {
|
|
490
|
+
modalRequestToggleNotification.find('#modal-button-confirm-accept-request').unbind('click');
|
|
491
|
+
});
|
|
492
|
+
});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_am5=self.webpackChunk_am5||[]).push([[1239],{2924:function(e,t,n){n.r(t),n.d(t,{ArcDiagram:function(){return We},ArcDiagramLink:function(){return Fe},ArcDiagramNodes:function(){return Ge},Chord:function(){return ae},ChordDirected:function(){return oe},ChordLink:function(){return ie},ChordLinkDirected:function(){return re},ChordNodes:function(){return ee},ChordNonRibbon:function(){return le},DefaultTheme:function(){return u},Flow:function(){return p},FlowLink:function(){return ne},FlowNode:function(){return q},FlowNodes:function(){return Z},Sankey:function(){return Re},SankeyLink:function(){return he},SankeyNodes:function(){return ue}});var i=n(7582),s=n(3409),a=n(6245),r=n(2754),o=n(3783),l=n(5071),c=n(9395);class u extends s.Q{setupDefaultRules(){super.setupDefaultRules();const e=this._root.interfaceColors,t=this.rule.bind(this);t("Flow").setAll({width:a.AQ,height:a.AQ,paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,hiddenSize:.05,minSize:0,minHiddenValue:0}),t("FlowNodes").setAll({colors:r.U.new(this._root,{}),legendLabelText:"{name}",legendValueText:"{sumOutgoing.formatNumber('#.#')}"}),t("FlowNode").setAll({setStateOnChildren:!0,cursorOverStyle:"pointer",toggleKey:"disabled"}),t("FlowNode").states.create("disabled",{}),t("FlowNode",["unknown"]).setAll({draggable:!1,opacity:0}),t("Label",["flow"]).states.create("disabled",{fill:e.get("disabled")}),t("RadialLabel",["flow","node"]).setAll({text:"{name}",populateText:!0}),t("FlowLink").setAll({fillStyle:"gradient",strokeStyle:"gradient"}),t("FlowLink",["source","unknown"]).setAll({}),t("FlowLink",["target","unknown"]).setAll({}),t("FlowNode").events.on("pointerover",(e=>{const t=e.target.dataItem;if(t){const e=t.get("outgoingLinks");e&&l.each(e,(e=>{const t=e.get("link");t.hover(),t.hideTooltip()}));const n=t.get("incomingLinks");n&&l.each(n,(e=>{const t=e.get("link");t.hover(),t.hideTooltip()}))}let n=t.get("slice")||t.get("rectangle");n&&n.get("tooltipText")&&n.showTooltip()})),t("FlowNode").events.on("pointerout",(e=>{const t=e.target.dataItem;if(t){const e=t.get("outgoingLinks");e&&l.each(e,(e=>{e.get("link").unhover()}));const n=t.get("incomingLinks");n&&l.each(n,(e=>{e.get("link").unhover()}))}})),t("Sankey").setAll({orientation:"horizontal",nodeAlign:"justify",linkTension:.5,nodePadding:10,nodeWidth:10}),t("RoundedRectangle",["sankey","node","shape"]).setAll({cornerRadiusTL:0,cornerRadiusBL:0,cornerRadiusTR:0,cornerRadiusBR:0}),t("RoundedRectangle",["shape"]).states.create("disabled",{fill:e.get("disabled")}),t("SankeyLink").setAll({controlPointDistance:.2}),t("FlowNode",["sankey"]).setAll({draggable:!0});{const n=t("Graphics",["sankey","link"]);n.setAll({fillOpacity:.2,strokeOpacity:0,interactive:!0,tooltipText:"{sourceId} - {targetId}: {value}"}),(0,o.v)(n,"fill",e,"grid")}t("Graphics",["sankey","link"]).states.create("hover",{fillOpacity:.5}),t("Label",["sankey","node"]).setAll({text:"{name}",populateText:!0}),t("Label",["sankey","horizontal"]).setAll({y:a.CI,centerY:a.CI,paddingLeft:15}),t("Label",["sankey","vertical"]).setAll({x:a.CI,centerX:a.CI,paddingTop:15}),t("Chord").setAll({radius:(0,a.aQ)(90),nodeWidth:10,padAngle:1,startAngle:0,sort:"none"}),t("ChordDirected").setAll({linkHeadRadius:10}),t("ChordNodes").setAll({x:a.CI,y:a.CI}),t("FlowNode",["chord"]).setAll({draggable:!0}),t("ChordLink").setAll({sourceRadius:a.AQ,targetRadius:a.AQ,fillStyle:"solid",strokeStyle:"solid",tooltipText:"{sourceId} - {targetId}: {value}"}),t("Slice",["chord","node","shape"]).setAll({cornerRadius:0}),t("Slice",["shape"]).states.create("disabled",{fill:e.get("disabled")}),t("RadialLabel",["chord","node"]).setAll({radius:5,textType:"circular"}),t("ChordLinkDirected").setAll({headRadius:10});{const n=t("Graphics",["chord","link","shape"]);n.setAll({fillOpacity:.2,strokeOpacity:0,interactive:!0}),(0,o.v)(n,"fill",e,"grid"),(0,o.v)(n,"stroke",e,"grid")}t("Graphics",["chord","link","shape"]).states.create("hover",{fillOpacity:.5}),t("ChordNonRibbon").setAll({linkType:"curve"}),t("ChordLink",["basic"]).setAll({fillStyle:"none",strokeStyle:"source"}),t("Graphics",["chord","link","shape","basic"]).setAll({strokeOpacity:.4}),t("Graphics",["chord","link","shape","basic"]).states.create("hover",{strokeWidth:2,strokeOpacity:1}),t("ArcDiagram").setAll({orientation:"horizontal",nodePadding:5,minRadius:5,radiusKey:"sum",animationEasing:c.out(c.cubic)}),t("ArcDiagramNodes",["horizontal"]).setAll({y:a.AQ,centerY:a.AQ}),t("ArcDiagramNodes",["vertical"]).setAll({centerX:0}),t("Circle",["arcdiagram","node","shape"]).setAll({tooltipText:"{name}: {sum}"}),t("Circle",["arcdiagram","node","shape"]).states.create("disabled",{fill:e.get("disabled")});{const n=t("ArcDiagramLink",["link","shape"]);n.setAll({strokeOpacity:.15,strokeStyle:"solid",fillStyle:"none",isMeasured:!1}),(0,o.v)(n,"stroke",e,"grid")}t("ArcDiagramLink",["link","shape"]).states.create("hover",{strokeOpacity:1}),t("Label",["arcdiagram","node"]).setAll({text:"{name}",populateText:!0}),t("Label",["arcdiagram","horizontal"]).setAll({y:0,centerY:a.CI,centerX:a.AQ,rotation:-90}),t("Label",["arcdiagram","vertical"]).setAll({centerY:a.CI,centerX:a.AQ,paddingRight:15})}}var h=n(3399),d=n(8777),g=n(1747),f=n(5040);class p extends h.F{constructor(){super(...arguments),Object.defineProperty(this,"linksContainer",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(d.W.new(this._root,{}))}),Object.defineProperty(this,"_nodesData",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_linksData",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_index",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_nodesDataSet",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_linksByIndex",{enumerable:!0,configurable:!0,writable:!0,value:{}})}_afterNew(){this._defaultThemes.push(u.new(this._root)),this.fields.push("disabled","sourceId","targetId"),this.nodes&&(this.nodes.flow=this),super._afterNew(),this.children.push(this.bulletsContainer)}processDataItem(e){super.processDataItem(e);const t=this.nodes;if(t){let n=!1,i=e.get("sourceId"),s=t.getDataItemById(i);s||(null==i&&(i="undefined"+this._index,this._index++,n=!0),t.data.push({id:i,unknown:n}),s=t.getDataItemById(i),n||s.set("name",i)),n=!1;let a=e.get("targetId"),r=t.getDataItemById(a);r||(null==a&&(a="undefined"+this._index,this._index++,n=!0),t.data.push({id:a,unknown:n}),r=t.getDataItemById(a),n||r.set("name",a)),s&&(e.set("source",s),t.addOutgoingLink(s,e)),r&&(e.set("target",r),t.addincomingLink(r,e)),e.set("link",this.makeLink(e));const o=this.nodes.dataItems.indexOf(s),l=this.nodes.dataItems.indexOf(r);this._linksByIndex[o+"_"+l]=e,s.get("unknown")&&(r&&s.set("fill",r.get("fill")),e.get("link").set("fillStyle","gradient")),r.get("unknown")&&(s&&r.set("fill",s.get("fill")),e.get("link").set("fillStyle","gradient")),this._updateLinkColor(e)}}_onDataClear(){this.nodes._userDataSet||(this.nodes.data.setAll([]),this.nodes._userDataSet=!1)}_prepareChildren(){super._prepareChildren();let e=1/0,t=-1/0,n=0;if(this._valuesDirty){this._nodesData=[];const i=this.nodes;i&&l.each(i.dataItems,(e=>{const t=e.get("d3SankeyNode");this._nodesData.push(t);const n=e.get("incomingLinks");let s=0,a=0;n&&l.each(n,(e=>{const t=e.get("value"),n=e.get("valueWorking");s+=t,a+=n})),e.set("sumIncoming",s),e.set("sumIncomingWorking",a);const r=e.get("outgoingLinks");let o=0,c=0;r&&l.each(r,(e=>{const t=e.get("value"),n=e.get("valueWorking");o+=t,c+=n})),e.set("sumOutgoing",o),e.set("sumOutgoingWorking",c),e.set("sum",s+o),e.set("sumWorking",a+c),i.updateLegendValue(e)})),this._linksData=[],l.each(this.dataItems,(i=>{let s=i.get("value");f.isNumber(s)&&(s<e&&(e=s),s>t&&(t=s),n+=s)})),l.each(this.dataItems,(e=>{let t=e.get("value");if(f.isNumber(t)){let t=e.get("valueWorking"),i=this.get("minSize",0);i>0&&t<i*n&&(t=i*n);let s={source:e.get("source").get("d3SankeyNode"),target:e.get("target").get("d3SankeyNode"),value:t};e.setRaw("d3SankeyLink",s),this._linksData.push(s),this.updateLegendValue(e)}})),this.setPrivateRaw("valueHigh",t),this.setPrivateRaw("valueLow",e),this.setPrivateRaw("valueSum",n)}}_updateLinkColor(e){const t=e.get("link"),n=t.get("fillStyle"),i=t.get("strokeStyle"),s=e.get("source"),a=e.get("target"),r=s.get("fill"),o=a.get("fill");switch(t.remove("fillGradient"),t.remove("strokeGradient"),n){case"solid":t._applyTemplates();break;case"source":t.set("fill",r);break;case"target":t.set("fill",o);break;case"gradient":let e=t._fillGradient;e||(e=g.o.new(this._root,{}));const n={color:r};s.get("unknown")&&(n.opacity=0);const i={color:o};a.get("unknown")&&(i.opacity=0),e.set("stops",[n,i]),t._fillGradient=e,t.set("fillGradient",e);break;case"none":t.set("fill",void 0)}switch(i){case"solid":t._applyTemplates();break;case"source":t.set("stroke",r);break;case"target":t.set("stroke",o);break;case"gradient":let e=t._strokeGradient;if(!e){e=g.o.new(this._root,{});const n={color:r};s.get("unknown")&&(n.opacity=0);const i={color:o};a.get("unknown")&&(i.opacity=0),e.set("stops",[n,i]),t._strokeGradient=e}t.set("strokeGradient",e);break;case"none":t.remove("stroke")}}disposeDataItem(e){super.disposeDataItem(e);let t=e.get("link");t&&(this.links.removeValue(t),t.dispose())}hideDataItem(e,t){const n=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return(0,i.mG)(this,void 0,void 0,(function*(){const i=[n.hideDataItem.call(this,e,t)],s=this.states.create("hidden",{}),a="stateAnimationDuration",r="stateAnimationEasing";f.isNumber(t)||(t=s.get(a,this.get(a,0)));const o=s.get(r,this.get(r));i.push(e.animate({key:"valueWorking",to:Math.max(this.get("minHiddenValue",0),this.get("hiddenSize",0)*e.get("value")),duration:t,easing:o}).waitForStop()),e.get("link").hide(),yield Promise.all(i)}))}showDataItem(e,t){const n=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return(0,i.mG)(this,void 0,void 0,(function*(){const i=[n.showDataItem.call(this,e,t)];f.isNumber(t)||(t=this.get("stateAnimationDuration",0));const s=this.get("stateAnimationEasing");i.push(e.animate({key:"valueWorking",to:e.get("value"),duration:t,easing:s}).waitForStop()),e.get("link").show(),yield Promise.all(i)}))}_positionBullet(e){const t=e.get("sprite");if(t){const n=t.dataItem;if(n){const t=n.get("link"),i=e.get("sprite");if(i){const n=t.getPoint(this._getBulletLocation(e));i.setAll({x:n.x,y:n.y}),e.get("autoRotate")&&i.set("rotation",n.angle+e.get("autoRotateAngle",0))}}}}_getBulletLocation(e){return e.get("locationY",0)}}Object.defineProperty(p,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Flow"}),Object.defineProperty(p,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:h.F.classNames.concat([p.className])});var m=Math.abs,b=Math.cos,y=Math.sin,k=Math.PI,_=k/2,w=2*k,v=Math.max,x=1e-12;function D(e,t){return Array.from({length:t-e},((t,n)=>e+n))}function A(e,t){var n=0,i=null,s=null,a=null;function r(r){var o,l=r.length,c=new Array(l),u=D(0,l),h=new Array(l*l),d=new Array(l),g=0;r=Float64Array.from({length:l*l},t?(e,t)=>r[t%l][t/l|0]:(e,t)=>r[t/l|0][t%l]);for(let t=0;t<l;++t){let n=0;for(let i=0;i<l;++i)n+=r[t*l+i]+e*r[i*l+t];g+=c[t]=n}o=(g=v(0,w-n*l)/g)?n:w/l;{let t=0;i&&u.sort(((e,t)=>i(c[e],c[t])));for(const n of u){const i=t;if(e){const e=D(1+~l,l).filter((e=>e<0?r[~e*l+n]:r[n*l+e]));s&&e.sort(((e,t)=>s(e<0?-r[~e*l+n]:r[n*l+e],t<0?-r[~t*l+n]:r[n*l+t])));for(const i of e)i<0?(h[~i*l+n]||(h[~i*l+n]={source:null,target:null})).target={index:n,startAngle:t,endAngle:t+=r[~i*l+n]*g,value:r[~i*l+n]}:(h[n*l+i]||(h[n*l+i]={source:null,target:null})).source={index:n,startAngle:t,endAngle:t+=r[n*l+i]*g,value:r[n*l+i]};d[n]={index:n,startAngle:i,endAngle:t,value:c[n]}}else{const e=D(0,l).filter((e=>r[n*l+e]||r[e*l+n]));s&&e.sort(((e,t)=>s(r[n*l+e],r[n*l+t])));for(const i of e){let e;if(n<i?(e=h[n*l+i]||(h[n*l+i]={source:null,target:null}),e.source={index:n,startAngle:t,endAngle:t+=r[n*l+i]*g,value:r[n*l+i]}):(e=h[i*l+n]||(h[i*l+n]={source:null,target:null}),e.target={index:n,startAngle:t,endAngle:t+=r[n*l+i]*g,value:r[n*l+i]},n===i&&(e.source=e.target)),e.source&&e.target&&e.source.value<e.target.value){const t=e.source;e.source=e.target,e.target=t}}d[n]={index:n,startAngle:i,endAngle:t,value:c[n]}}t+=o}}return(h=Object.values(h)).groups=d,a?h.sort(a):h}return r.padAngle=function(e){return arguments.length?(n=v(0,e),r):n},r.sortGroups=function(e){return arguments.length?(i=e,r):i},r.sortSubgroups=function(e){return arguments.length?(s=e,r):s},r.sortChords=function(e){return arguments.length?(null==e?a=null:(t=e,a=function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)})._=e,r):a&&a._;var t},r}var P=n(5493),N=Array.prototype.slice;function I(e){return function(){return e}}function L(e){return e.source}function O(e){return e.target}function j(e){return e.radius}function S(e){return e.startAngle}function C(e){return e.endAngle}function T(){return 0}function R(){return 10}function M(e){var t=L,n=O,i=j,s=j,a=S,r=C,o=T,l=null;function c(){var c,u=t.apply(this,arguments),h=n.apply(this,arguments),d=o.apply(this,arguments)/2,g=N.call(arguments),f=+i.apply(this,(g[0]=u,g)),p=a.apply(this,g)-_,k=r.apply(this,g)-_,w=+s.apply(this,(g[0]=h,g)),v=a.apply(this,g)-_,D=r.apply(this,g)-_;if(l||(l=c=(0,P.ET)()),d>x&&(m(k-p)>2*d+x?k>p?(p+=d,k-=d):(p-=d,k+=d):p=k=(p+k)/2,m(D-v)>2*d+x?D>v?(v+=d,D-=d):(v-=d,D+=d):v=D=(v+D)/2),l.moveTo(f*b(p),f*y(p)),l.arc(0,0,f,p,k),p!==v||k!==D)if(e){var A=w-+e.apply(this,arguments),I=(v+D)/2;l.quadraticCurveTo(0,0,A*b(v),A*y(v)),l.lineTo(w*b(I),w*y(I)),l.lineTo(A*b(D),A*y(D))}else l.quadraticCurveTo(0,0,w*b(v),w*y(v)),l.arc(0,0,w,v,D);if(l.quadraticCurveTo(0,0,f*b(p),f*y(p)),l.closePath(),c)return l=null,c+""||null}return e&&(c.headRadius=function(t){return arguments.length?(e="function"==typeof t?t:I(+t),c):e}),c.radius=function(e){return arguments.length?(i=s="function"==typeof e?e:I(+e),c):i},c.sourceRadius=function(e){return arguments.length?(i="function"==typeof e?e:I(+e),c):i},c.targetRadius=function(e){return arguments.length?(s="function"==typeof e?e:I(+e),c):s},c.startAngle=function(e){return arguments.length?(a="function"==typeof e?e:I(+e),c):a},c.endAngle=function(e){return arguments.length?(r="function"==typeof e?e:I(+e),c):r},c.padAngle=function(e){return arguments.length?(o="function"==typeof e?e:I(+e),c):o},c.source=function(e){return arguments.length?(t=e,c):t},c.target=function(e){return arguments.length?(n=e,c):n},c.context=function(e){return arguments.length?(l=null==e?null:e,c):l},c}function G(){return M()}function F(){return M(R)}function W(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Y(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}n(7896);const{abs:z,max:B,min:V}=Math;function E(e){return{type:e}}function Q(e,t,n){this.k=e,this.x=t,this.y=n}["w","e"].map(E),["n","s"].map(E),["n","w","e","s","nw","ne","sw","se"].map(E),Q.prototype={constructor:Q,scale:function(e){return 1===e?this:new Q(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Q(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new Q(1,0,0),Q.prototype;var X=n(5769),H=n(7144),K=n(962);class q extends d.W{constructor(){super(...arguments),Object.defineProperty(this,"series",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}}Object.defineProperty(q,"className",{enumerable:!0,configurable:!0,writable:!0,value:"FlowNode"}),Object.defineProperty(q,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:d.W.classNames.concat([q.className])});class Z extends h.F{constructor(){super(...arguments),Object.defineProperty(this,"labels",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>K._._new(this._root,{themeTags:["flow"]},[this.labels.template]))))}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>q._new(this._root,{themeTags:["node"]},[this.nodes.template]))))}),Object.defineProperty(this,"_userDataSet",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_afterNew(){this.fields.push("unknown","name","fill"),this.set("idField","id"),this.set("nameField","id"),this.set("fillField","fill"),this.set("unknownField","unknown"),this.children.push(this.bulletsContainer),super._afterNew()}_onDataClear(){const e=this.get("colors");e&&e.reset();const t=this.get("patterns");t&&t.reset(),this._userDataSet=!0}processDataItem(e){if(super.processDataItem(e),e.setRaw("d3SankeyNode",{name:e.get("id"),dataItem:e}),null==e.get("fill")){let t=this.get("colors");t&&e.setRaw("fill",t.next())}if(null==e.get("fillPattern")){let t=this.get("patterns");t&&e.setRaw("fillPattern",t.next())}const t=this.makeNode(e);e.setRaw("node",t);const n=this.get("disabledField");if(n){const t=e.dataContext;t&&t[n]&&this.root.events.once("frameended",(()=>{this.disableDataItem(e,0)}))}}makeNode(e,t){const n=this.nodes.make();return this.nodes.push(n),t&&n.addTag(t),e.get("unknown")&&n.addTag("unknown"),this.children.push(n),n._setDataItem(e),n.series=this,n.events.on("click",(e=>{const t=e.target;if("disabled"==t.get("toggleKey")){const e=t.dataItem;e&&(e.isHidden()?this.enableDataItem(e):this.disableDataItem(e))}})),e.on("fill",(()=>{this._updateNodeColor(e)})),e.on("fillPattern",(()=>{this._updateNodeColor(e)})),e.set("node",n),n}_updateNodeColor(e){}disposeDataItem(e){super.disposeDataItem(e);let t=e.get("node");t&&(this.nodes.removeValue(t),t.dispose());let n=e.get("label");n&&(this.labels.removeValue(n),n.dispose())}addincomingLink(e,t){let n=e.get("incomingLinks");n||(n=[],e.set("incomingLinks",n)),n.push(t)}addOutgoingLink(e,t){let n=e.get("outgoingLinks");n||(n=[],e.set("outgoingLinks",n)),n.push(t)}showDataItem(e,t){const n=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return(0,i.mG)(this,void 0,void 0,(function*(){const i=[n.showDataItem.call(this,e,t)],s=this.flow;if(s){const n=e.get("node");n&&n.show();let i=e.get("label");i&&i.show(t);let a=e.get("outgoingLinks");a&&l.each(a,(e=>{s.showDataItem(e,t)})),a=e.get("incomingLinks"),a&&l.each(a,(e=>{s.showDataItem(e,t)}))}yield i}))}hideDataItem(e,t){const n=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return(0,i.mG)(this,void 0,void 0,(function*(){const i=[n.hideDataItem.call(this,e,t)],s=this.flow;if(s){const n=e.get("node");n&&n.hide();let i=e.get("label");i&&i.hide(t);let a=e.get("outgoingLinks");a&&l.each(a,(e=>{s.hideDataItem(e,t)})),a=e.get("incomingLinks"),a&&l.each(a,(e=>{s.hideDataItem(e,t)}))}yield i}))}enableDataItem(e,t){const n=Object.create(null,{showDataItem:{get:()=>super.showDataItem}});return(0,i.mG)(this,void 0,void 0,(function*(){const i=[n.showDataItem.call(this,e,t)],s=this.flow;if(s){const n=e.get("node");n&&this.root.events.once("frameended",(()=>{n.set("disabled",!1)}));let i=e.get("label");i&&i.set("disabled",!1);let a=e.get("outgoingLinks");a&&l.each(a,(e=>{s.showDataItem(e,t)})),a=e.get("incomingLinks"),a&&l.each(a,(e=>{s.showDataItem(e,t)}))}yield i}))}disableDataItem(e,t){const n=Object.create(null,{hideDataItem:{get:()=>super.hideDataItem}});return(0,i.mG)(this,void 0,void 0,(function*(){const i=[n.hideDataItem.call(this,e,t)],s=this.flow;if(s){const n=e.get("node");n&&this.root.events.once("frameended",(()=>{n.set("disabled",!0)}));let i=e.get("label");i&&i.set("disabled",!0);let a=e.get("outgoingLinks");a&&l.each(a,(e=>{s.hideDataItem(e,t)})),a=e.get("incomingLinks"),a&&l.each(a,(e=>{s.hideDataItem(e,t)}))}yield i}))}}Object.defineProperty(Z,"className",{enumerable:!0,configurable:!0,writable:!0,value:"FlowNodes"}),Object.defineProperty(Z,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:h.F.classNames.concat([Z.className])});var $=n(5863),U=n(815),J=n(751);class ee extends Z{constructor(){super(...arguments),Object.defineProperty(this,"labels",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>U.x._new(this._root,{},[this.labels.template]))))}),Object.defineProperty(this,"flow",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dAngle",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"slices",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>$.p._new(this._root,{themeTags:["shape"]},[this.slices.template]))))}),Object.defineProperty(this,"rectangles",{enumerable:!0,configurable:!0,writable:!0,value:this.slices})}makeNode(e){const t=super.makeNode(e,"chord"),n=t.children.insertIndex(0,this.slices.make());e.set("slice",n),n._setSoft("fill",e.get("fill")),n._setSoft("fillPattern",e.get("fillPattern"));const i=this.labels.make();return this.labels.push(i),i.addTag("flow"),i.addTag("chord"),i.addTag("node"),t.children.push(i),e.set("label",i),t.events.on("dragstart",(e=>{let t=this.toLocal(e.point);const n=J.getAngle({x:0,y:0},t);this.flow&&(this._dAngle=this.flow.get("startAngle",0)-n)})),t.events.on("dragged",(e=>{let n=this.toLocal(e.point);const i=J.getAngle({x:0,y:0},n);t.setAll({x:0,y:0}),this.flow&&this.flow.set("startAngle",i+this._dAngle)})),i._setDataItem(e),n._setDataItem(e),t}_positionBullet(e){const t=e.get("sprite");if(t){const n=t.dataItem;if(n){const t=e.get("sprite");if(t){const i=n.get("slice"),s=e.get("locationX",.5),a=e.get("locationY",.5);if(i){const e=i.get("radius",0),n=i.get("innerRadius",0),r=n+(e-n)*a,o=i.get("startAngle",0)+i.get("arc",0)*s;t.setAll({x:r*J.cos(o),y:r*J.sin(o)})}}}}}_updateNodeColor(e){const t=e.get("slice");t&&(t.set("fill",e.get("fill")),t.set("fillPattern",e.get("fillPattern")))}disposeDataItem(e){super.disposeDataItem(e);let t=e.get("slice");t&&(this.slices.removeValue(t),t.dispose())}}Object.defineProperty(ee,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ChordNodes"}),Object.defineProperty(ee,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Z.classNames.concat([ee.className])});var te=n(1479);class ne extends te.T{constructor(){super(...arguments),Object.defineProperty(this,"series",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fillGradient",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_strokeGradient",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}_changed(){if(super._changed(),this.isDirty("fillStyle")){const e=this.series,t=this.dataItem;e&&t&&e._updateLinkColor(t)}}_getTooltipPoint(){let e=this.get("tooltipY"),t=.5;return e instanceof a.gG&&(t=e.value),this.getPoint(t)}}Object.defineProperty(ne,"className",{enumerable:!0,configurable:!0,writable:!0,value:"FlowLink"}),Object.defineProperty(ne,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:te.T.classNames.concat([ne.className])});class ie extends ne{constructor(){super(...arguments),Object.defineProperty(this,"_p0",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_p1",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_type",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}getPoint(e){if(this._p0&&this._p1){if("line"===this._type){let t=J.getPointOnLine(this._p0,this._p1,e);return{x:t.x,y:t.y,angle:J.getAngle(this._p0,this._p1)}}{let t=J.getPointOnQuadraticCurve(this._p0,this._p1,{x:0,y:0},Math.max(0,e-.01)),n=J.getPointOnQuadraticCurve(this._p0,this._p1,{x:0,y:0},Math.min(1,e+.01)),i=J.getPointOnQuadraticCurve(this._p0,this._p1,{x:0,y:0},e);return{x:i.x,y:i.y,angle:J.getAngle(t,n)}}}return{x:0,y:0,angle:0}}}Object.defineProperty(ie,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ChordLink"}),Object.defineProperty(ie,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:ne.classNames.concat([ie.className])});var se=n(7652);class ae extends p{constructor(){super(...arguments),Object.defineProperty(this,"links",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>ie._new(this._root,{themeTags:["link","shape"]},[this.links.template]))))}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(ee.new(this._root,{}))}),Object.defineProperty(this,"_d3chord",{enumerable:!0,configurable:!0,writable:!0,value:A(!1,!1)}),Object.defineProperty(this,"_chordLayout",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_ribbon",{enumerable:!0,configurable:!0,writable:!0,value:G()})}_afterNew(){this._settings.themeTags=se.mergeTags(this._settings.themeTags,["chord"]),this.linksContainer.setAll({x:a.CI,y:a.CI}),this.bulletsContainer.setAll({x:a.CI,y:a.CI}),super._afterNew()}_fixRibbon(e){e.startAngle((e=>e.startAngle+this.get("startAngle",0)*J.RADIANS+Math.PI/2)),e.endAngle((e=>e.endAngle+this.get("startAngle",0)*J.RADIANS+Math.PI/2))}makeLink(e){const t=this.linksContainer.children.push(this.links.make());return this.links.push(t),t._setDataItem(e),t.set("source",e.get("source")),t.set("target",e.get("target")),t.series=this,t}_makeMatrix(){const e=[];return l.each(this.nodes.dataItems,(t=>{const n=[];e.push(n);let i=t.get("outgoingLinks");l.each(this.nodes.dataItems,(e=>{let t=0;i&&l.each(i,(n=>{n.get("target")===e&&(t=n.get("valueWorking"));let i=this.getPrivate("valueSum",0),s=this.get("minSize",0);t>0&&s>0&&t<i*s&&(t=i*s)})),n.push(t)}))})),e}_prepareChildren(){super._prepareChildren(),this._fixRibbon(this._ribbon);let e=!1;if(this._valuesDirty||this._sizeDirty||this.isDirty("padAngle")||this.isDirty("startAngle")){const t=this._makeMatrix();this._d3chord.padAngle(this.get("padAngle",0)*J.RADIANS);const n=this.get("sort");"ascending"===n?this._d3chord.sortGroups(W):"descending"===n&&this._d3chord.sortGroups(Y),this._chordLayout=this._d3chord(t),e=!0}if(e||this.isDirty("radius")||this.isDirty("nodeWidth")){let e=se.relativeToValue(this.get("radius",0),Math.min(this.innerWidth(),this.innerHeight()))/2,t=0;const n=this.get("startAngle",0),i=this.get("nodeWidth",0);l.each(this.nodes.dataItems,(s=>{const a=s.get("slice"),r=this._chordLayout.groups[t],o=r.startAngle*J.DEGREES+n,l=r.endAngle*J.DEGREES+n;a.setAll({radius:e,innerRadius:e-i,startAngle:o,arc:l-o});const c=s.get("label");c.setAll({labelAngle:o+(l-o)/2}),c.setPrivate("radius",e),c.setPrivate("innerRadius",.1),t++}));const s=e-this.get("nodeWidth",0);l.each(this._chordLayout,(e=>{let t=this._linksByIndex[e.source.index+"_"+e.target.index];if(t||(t=this._linksByIndex[e.target.index+"_"+e.source.index]),t){const n=t.get("link");this._getLinkPoints(n,s,e),this._updateLink(this._ribbon,n,s,e)}}))}}_getLinkPoints(e,t,n){const i=n.source,s=n.target,a=this.get("startAngle",0)*J.RADIANS;if(i&&s){const n=i.startAngle,r=n+(i.endAngle-n)/2+a,o=s.startAngle,l=o+(s.endAngle-o)/2+a;e._p0={x:t*Math.cos(r),y:t*Math.sin(r)},e._p1={x:t*Math.cos(l),y:t*Math.sin(l)}}}_updateLink(e,t,n,i){i&&(e.sourceRadius(se.relativeToValue(t.get("sourceRadius",a.AQ),n)),e.targetRadius(se.relativeToValue(t.get("targetRadius",a.AQ),n)),t.set("draw",(t=>{e.context(t),e(i)})))}}Object.defineProperty(ae,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Chord"}),Object.defineProperty(ae,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:p.classNames.concat([ae.className])});class re extends ie{_afterNew(){this._settings.themeTags=se.mergeTags(this._settings.themeTags,["chord","link","directed"]),super._afterNew()}}Object.defineProperty(re,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ChordLinkDirected"}),Object.defineProperty(re,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:ie.classNames.concat([re.className])});class oe extends ae{constructor(){super(...arguments),Object.defineProperty(this,"_d3chord",{enumerable:!0,configurable:!0,writable:!0,value:A(!0,!1)}),Object.defineProperty(this,"_ribbonArrow",{enumerable:!0,configurable:!0,writable:!0,value:F()}),Object.defineProperty(this,"links",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>re._new(this._root,{themeTags:["link","shape"]},[this.links.template]))))})}makeLink(e){const t=this.linksContainer.children.push(this.links.make());return t._setDataItem(e),t.set("source",e.get("source")),t.set("target",e.get("target")),t.series=this,t}_afterNew(){this._settings.themeTags=se.mergeTags(this._settings.themeTags,["directed"]),super._afterNew(),this._markDirtyKey("linkHeadRadius")}_prepareChildren(){const e="linkHeadRadius";if(this.isDirty(e)){const t=this.get(e);if(null==t)this._ribbon=G();else{let e=F();e.headRadius(t),this._ribbon=e}}super._prepareChildren()}}Object.defineProperty(oe,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ChordDirected"}),Object.defineProperty(oe,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:ae.classNames.concat([oe.className])});class le extends ae{_afterNew(){this._settings.themeTags=se.mergeTags(this._settings.themeTags,["chord","basic"]),super._afterNew()}_makeMatrix(){const e=[];return l.each(this.nodes.dataItems,(t=>{const n=[];e.push(n),l.each(this.nodes.dataItems,(e=>{let i=1;t===e&&(i=0),n.push(i)}))})),e}_updateLink(e,t,n,i){if(t._type=this.get("linkType"),i){const e=this.get("linkType");t.set("draw",(n=>{let i=t._p0,s=t._p1;i&&s&&(n.moveTo(i.x,i.y),"line"==e?n.lineTo(s.x,s.y):n.quadraticCurveTo(0,0,s.x,s.y))}))}}_getLinkPoints(e,t,n){const i=e.get("source"),s=e.get("target");if(i&&s){const n=i.get("slice"),a=s.get("slice"),r=n.get("startAngle",0)+n.get("arc",0)/2,o=a.get("startAngle",0)+a.get("arc",0)/2;e._p0={x:t*J.cos(r),y:t*J.sin(r)},e._p1={x:t*J.cos(o),y:t*J.sin(o)}}}}Object.defineProperty(le,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ChordNonRibbon"}),Object.defineProperty(le,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:ae.classNames.concat([le.className])});var ce=n(3497);class ue extends Z{constructor(){super(...arguments),Object.defineProperty(this,"rectangles",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>ce.c._new(this._root,{themeTags:["shape"]},[this.rectangles.template]))))}),Object.defineProperty(this,"flow",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}makeNode(e){const t=this.flow,n=super.makeNode(e,"sankey"),i=n.children.insertIndex(0,this.rectangles.make());this.rectangles.push(i),i._setSoft("fill",e.get("fill")),i._setSoft("fillPattern",e.get("fillPattern")),e.set("rectangle",i),n.events.on("dragged",(()=>{const e=n.dataItem.get("d3SankeyNode");e&&t&&("horizontal"==t.get("orientation")?(e.x0=n.x(),e.y0=n.y()):(e.x0=n.y(),e.y0=n.x()),t.updateSankey())}));const s=this.labels.make();return this.labels.push(s),t&&s.addTag(t.get("orientation","")),n.children.push(s),e.set("label",s),s._setDataItem(e),i._setDataItem(e),n}_positionBullet(e){const t=e.get("sprite");if(t){const n=t.dataItem;if(n){const t=e.get("sprite");if(t){const i=n.get("rectangle"),s=n.get("node"),a=e.get("locationX",.5),r=e.get("locationY",.5);i&&t.setAll({x:s.x()+i.width()*a,y:s.y()+i.height()*r})}}}}disposeDataItem(e){super.disposeDataItem(e);let t=e.get("rectangle");t&&(this.rectangles.removeValue(t),t.dispose())}_updateNodeColor(e){const t=e.get("rectangle");t&&(t.set("fill",e.get("fill")),t.set("fillPattern",e.get("fillPattern")))}}Object.defineProperty(ue,"className",{enumerable:!0,configurable:!0,writable:!0,value:"SankeyNodes"}),Object.defineProperty(ue,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Z.classNames.concat([ue.className])});class he extends ne{constructor(){super(...arguments),Object.defineProperty(this,"_svgPath",{enumerable:!0,configurable:!0,writable:!0,value:document.createElementNS("http://www.w3.org/2000/svg","path")}),Object.defineProperty(this,"_totalLength",{enumerable:!0,configurable:!0,writable:!0,value:0})}_beforeChanged(){if(super._beforeChanged(),this.isDirty("source")){const e=this.get("source");if(e){const t=e.get("node");this._disposers.push(t.events.on("positionchanged",(()=>{this.markDirty()})))}}if(this.isDirty("target")){const e=this.get("target");if(e){const t=e.get("node");this._disposers.push(t.events.on("positionchanged",(()=>{this.markDirty()})))}}if(this.isPrivateDirty("orientation")){const e=this.series,t=this.dataItem;t&&e&&e._updateLinkColor(t)}const e=this.get("target"),t=this.get("source");let n,i;if(t&&e){this._clear=!0,n=t.get("node"),i=e.get("node");let s=0,a=0,r=0,o=0,l=0,c=0,u=0,h=0,d=0,g=0,f=0,p=0,m=0,b=0,y=0,k=0,_=0,w=0;const v=this.dataItem;if(v){const x=v.get("d3SankeyLink");if(x){let v=x.width||0,D=this.getPrivate("orientation");"vertical"==D?(n&&(r=n.y()+n.get("dy",0)),i&&(o=i.y()+i.get("dy",0)),_=90,w=90,s=x.y0||0,a=x.y1||0,s+=n.get("dx",0),a+=i.get("dx",0),o<r&&([s,a]=[a,s],[r,o]=[o,r]),t.get("unknown")&&(s=a,r+=(o-r)/2),e.get("unknown")&&(a=s,o=r+(o-r)/2),l=s-v/2,c=r,u=a-v/2,h=o,d=s+v/2,g=a+v/2,f=r,p=o,m=s,b=a,y=r,k=o):(n&&(s=n.x()+n.get("dx",0)),i&&(a=i.x()+i.get("dx",0)),r=x.y0||0,o=x.y1||0,r+=n.get("dy",0),o+=i.get("dy",0),a<s&&([s,a]=[a,s],[r,o]=[o,r]),t.get("unknown")&&(r=o,s+=(a-s)/2),e.get("unknown")&&(o=r,a=s+(a-s)/2),l=s,c=r-v/2,u=a,h=o-v/2,d=s,g=a,f=r+v/2,p=o+v/2,m=s,b=a,y=r,k=o),J.round(l,3)==J.round(u,3)&&(u+=.01),J.round(c,3)==J.round(h,3)&&(h+=.01),J.round(d,3)==J.round(g,3)&&(g+=.01),J.round(f,3)==J.round(p,3)&&(p+=.01);let A=this.get("controlPointDistance",.2);A=Math.min(.4999,A);let P=l+(u-l)*A*J.cos(_),N=c+(h-c)*A*J.sin(_),I=u-(u-l)*A*J.cos(w),L=h-(h-c)*A*J.sin(w),O=m+(b-m)*A*J.cos(_),j=y+(k-y)*A*J.sin(_),S=b-(b-m)*A*J.cos(w),C=k-(k-y)*A*J.sin(w),T=J.getAngle({x:P,y:N},{x:I,y:L}),R=(v/J.cos(T)-v)/J.tan(T)*J.cos(_),M=(v/J.sin(T)-v)*J.tan(T)*J.sin(_),G=-R/2+d+(g-d)*A*J.cos(_),F=-M/2+f+(p-f)*A*J.sin(_),W=-R/2+g-(g-d)*A*J.cos(w),Y=-M/2+p-(p-f)*A*J.sin(w);P+=R/2,N+=M/2,I+=R/2,L+=M/2,"vertical"==D?(N=Math.min(h,Math.max(c+1,N)),F=Math.min(p,Math.max(f+1,F)),L=Math.max(c,Math.min(h-1,L)),Y=Math.max(f,Math.min(p-1,Y))):(P=Math.min(u,Math.max(l+1,P)),G=Math.min(g,Math.max(d+1,G)),I=Math.max(l,Math.min(u-1,I)),W=Math.max(d,Math.min(g-1,W)));let z=[[l,c,d,f],[P,N,G,F],[I,L,W,Y],[u,h,g,p]];this.set("draw",(e=>{const t=this.series;t._fillGenerator.context(e),t._fillGenerator(z)}));let B=[[m,y],[O,j],[S,C],[b,k]];const V=this.series._strokeGenerator(B);V&&(this._svgPath.setAttribute("d",V),this._totalLength=this._svgPath.getTotalLength())}}}this.series&&this.dataItem&&this.series._positionBullets(this.dataItem)}getPoint(e){if(this._svgPath&&this._svgPath.getAttribute("d")){let t=this._svgPath.getPointAtLength(e*this._totalLength-.1),n=this._svgPath.getPointAtLength(e*this._totalLength+.1),i=this.toGlobal(this._svgPath.getPointAtLength(e*this._totalLength));return{x:i.x,y:i.y,angle:J.getAngle(t,n)}}return{x:0,y:0,angle:0}}_getTooltipPoint(){return this.toLocal(super._getTooltipPoint())}}Object.defineProperty(he,"className",{enumerable:!0,configurable:!0,writable:!0,value:"SankeyLink"}),Object.defineProperty(he,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:ne.classNames.concat([he.className])});var de=n(3794),ge=n(774),fe=n(8289),pe=n(5892);function me(e,t){let n=0;if(void 0===t)for(let t of e)(t=+t)&&(n+=t);else{let i=-1;for(let s of e)(s=+t(s,++i,e))&&(n+=s)}return n}function be(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n<t||void 0===n&&t>=t)&&(n=t);else{let i=-1;for(let s of e)null!=(s=t(s,++i,e))&&(n<s||void 0===n&&s>=s)&&(n=s)}return n}function ye(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let i=-1;for(let s of e)null!=(s=t(s,++i,e))&&(n>s||void 0===n&&s>=s)&&(n=s)}return n}function ke(e){return e.target.depth}function _e(e){return e.depth}function we(e,t){return t-1-e.height}function ve(e,t){return e.sourceLinks.length?e.depth:t-1}function xe(e){return e.targetLinks.length?e.depth:e.sourceLinks.length?ye(e.sourceLinks,ke)-1:0}function De(e){return function(){return e}}function Ae(e,t){return Ne(e.source,t.source)||e.index-t.index}function Pe(e,t){return Ne(e.target,t.target)||e.index-t.index}function Ne(e,t){return e.y0-t.y0}function Ie(e){return e.value}function Le(e){return e.index}function Oe(e){return e.nodes}function je(e){return e.links}function Se(e,t){const n=e.get(t);if(!n)throw new Error("missing: "+t);return n}function Ce({nodes:e}){for(const t of e){let e=t.y0,n=e;for(const n of t.sourceLinks)n.y0=e+n.width/2,e+=n.width;for(const e of t.targetLinks)e.y1=n+e.width/2,n+=e.width}}function Te(){let e,t,n,i=0,s=0,a=1,r=1,o=24,l=8,c=Le,u=ve,h=Oe,d=je,g=6;function f(){const f={nodes:h.apply(null,arguments),links:d.apply(null,arguments)};return function({nodes:e,links:t}){for(const[t,n]of e.entries())n.index=t,n.sourceLinks=[],n.targetLinks=[];const i=new Map(e.map(((t,n)=>[c(t,n,e),t])));for(const[e,n]of t.entries()){n.index=e;let{source:t,target:s}=n;"object"!=typeof t&&(t=n.source=Se(i,t)),"object"!=typeof s&&(s=n.target=Se(i,s)),t.sourceLinks.push(n),s.targetLinks.push(n)}if(null!=n)for(const{sourceLinks:t,targetLinks:i}of e)t.sort(n),i.sort(n)}(f),function({nodes:e}){for(const t of e)t.value=void 0===t.fixedValue?Math.max(me(t.sourceLinks,Ie),me(t.targetLinks,Ie)):t.fixedValue}(f),function({nodes:e}){const t=e.length;let n=new Set(e),i=new Set,s=0;for(;n.size;){for(const e of n){e.depth=s;for(const{target:t}of e.sourceLinks)i.add(t)}if(++s>t)throw new Error("circular link");n=i,i=new Set}}(f),function({nodes:e}){const t=e.length;let n=new Set(e),i=new Set,s=0;for(;n.size;){for(const e of n){e.height=s;for(const{source:t}of e.targetLinks)i.add(t)}if(++s>t)throw new Error("circular link");n=i,i=new Set}}(f),function(n){const c=function({nodes:e}){const n=be(e,(e=>e.depth))+1,s=(a-i-o)/(n-1),r=new Array(n);for(const t of e){const e=Math.max(0,Math.min(n-1,Math.floor(u.call(null,t,n))));t.layer=e,t.x0=i+e*s,t.x1=t.x0+o,r[e]?r[e].push(t):r[e]=[t]}if(t)for(const e of r)e.sort(t);return r}(n);e=Math.min(l,(r-s)/(be(c,(e=>e.length))-1)),function(t){const n=ye(t,(t=>(r-s-(t.length-1)*e)/me(t,Ie)));for(const i of t){let t=s;for(const s of i){s.y0=t,s.y1=t+s.value*n,t=s.y1+e;for(const e of s.sourceLinks)e.width=e.value*n}t=(r-t+e)/(i.length+1);for(let e=0;e<i.length;++e){const n=i[e];n.y0+=t*(e+1),n.y1+=t*(e+1)}w(i)}}(c);for(let e=0;e<g;++e){const t=Math.pow(.99,e),n=Math.max(1-t,(e+1)/g);m(c,t,n),p(c,t,n)}}(f),Ce(f),f}function p(e,n,i){for(let s=1,a=e.length;s<a;++s){const a=e[s];for(const e of a){let t=0,i=0;for(const{source:n,value:s}of e.targetLinks){let a=s*(e.layer-n.layer);t+=v(n,e)*a,i+=a}if(!(i>0))continue;let s=(t/i-e.y0)*n;e.y0+=s,e.y1+=s,_(e)}void 0===t&&a.sort(Ne),b(a,i)}}function m(e,n,i){for(let s=e.length-2;s>=0;--s){const a=e[s];for(const e of a){let t=0,i=0;for(const{target:n,value:s}of e.sourceLinks){let a=s*(n.layer-e.layer);t+=x(e,n)*a,i+=a}if(!(i>0))continue;let s=(t/i-e.y0)*n;e.y0+=s,e.y1+=s,_(e)}void 0===t&&a.sort(Ne),b(a,i)}}function b(t,n){const i=t.length>>1,a=t[i];k(t,a.y0-e,i-1,n),y(t,a.y1+e,i+1,n),k(t,r,t.length-1,n),y(t,s,0,n)}function y(t,n,i,s){for(;i<t.length;++i){const a=t[i],r=(n-a.y0)*s;r>1e-6&&(a.y0+=r,a.y1+=r),n=a.y1+e}}function k(t,n,i,s){for(;i>=0;--i){const a=t[i],r=(a.y1-n)*s;r>1e-6&&(a.y0-=r,a.y1-=r),n=a.y0-e}}function _({sourceLinks:e,targetLinks:t}){if(void 0===n){for(const{source:{sourceLinks:e}}of t)e.sort(Pe);for(const{target:{targetLinks:t}}of e)t.sort(Ae)}}function w(e){if(void 0===n)for(const{sourceLinks:t,targetLinks:n}of e)t.sort(Pe),n.sort(Ae)}function v(t,n){let i=t.y0-(t.sourceLinks.length-1)*e/2;for(const{target:s,width:a}of t.sourceLinks){if(s===n)break;i+=a+e}for(const{source:e,width:s}of n.targetLinks){if(e===t)break;i-=s}return i}function x(t,n){let i=n.y0-(n.targetLinks.length-1)*e/2;for(const{source:s,width:a}of n.targetLinks){if(s===t)break;i+=a+e}for(const{target:e,width:s}of t.sourceLinks){if(e===n)break;i-=s}return i}return f.update=function(e){return Ce(e),e},f.nodeId=function(e){return arguments.length?(c="function"==typeof e?e:De(e),f):c},f.nodeAlign=function(e){return arguments.length?(u="function"==typeof e?e:De(e),f):u},f.nodeSort=function(e){return arguments.length?(t=e,f):t},f.nodeWidth=function(e){return arguments.length?(o=+e,f):o},f.nodePadding=function(t){return arguments.length?(l=e=+t,f):l},f.nodes=function(e){return arguments.length?(h="function"==typeof e?e:De(e),f):h},f.links=function(e){return arguments.length?(d="function"==typeof e?e:De(e),f):d},f.linkSort=function(e){return arguments.length?(n=e,f):n},f.size=function(e){return arguments.length?(i=s=0,a=+e[0],r=+e[1],f):[a-i,r-s]},f.extent=function(e){return arguments.length?(i=+e[0][0],a=+e[1][0],s=+e[0][1],r=+e[1][1],f):[[i,s],[a,r]]},f.iterations=function(e){return arguments.length?(g=+e,f):g},f}class Re extends p{constructor(){super(...arguments),Object.defineProperty(this,"links",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>he._new(this._root,{themeTags:["link","shape"]},[this.links.template]))))}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(ue.new(this._root,{}))}),Object.defineProperty(this,"_d3Sankey",{enumerable:!0,configurable:!0,writable:!0,value:Te()}),Object.defineProperty(this,"_d3Graph",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fillGenerator",{enumerable:!0,configurable:!0,writable:!0,value:(0,de.Z)()}),Object.defineProperty(this,"_strokeGenerator",{enumerable:!0,configurable:!0,writable:!0,value:(0,ge.Z)()})}_afterNew(){this._settings.themeTags=se.mergeTags(this._settings.themeTags,["sankey",this._settings.orientation||"horizontal"]),this._fillGenerator.y0((function(e){return e[3]})),this._fillGenerator.x0((function(e){return e[2]})),this._fillGenerator.y1((function(e){return e[1]})),this._fillGenerator.x1((function(e){return e[0]})),super._afterNew()}makeLink(e){const t=e.get("source"),n=e.get("target"),i=this.links.make();return t.get("unknown")&&(i.addTag("source"),i.addTag("unknown")),n.get("unknown")&&(i.addTag("target"),i.addTag("unknown")),this.linksContainer.children.push(i),i._setDataItem(e),i.set("source",t),i.set("target",n),i.series=this,this.links.push(i),i}updateSankey(){const e=this._d3Graph;e&&(this._d3Sankey.update(e),l.each(this.dataItems,(e=>{const t=e.get("link");t.setPrivate("orientation",this.get("orientation")),t.markDirty()})))}_updateLinkColor(e){super._updateLinkColor(e);const t=this.get("orientation"),n=e.get("link")._fillGradient,i=e.get("link")._strokeGradient;"vertical"==t?(n&&n.set("rotation",90),i&&i.set("rotation",90)):(n&&n.set("rotation",0),i&&i.set("rotation",0))}_getBulletLocation(e){return"vertical"==this.get("orientation")?e.get("locationY",0):e.get("locationX",0)}_prepareChildren(){super._prepareChildren();let e=!1;if("vertical"==this.get("orientation")&&(e=!0),this.isDirty("orientation")||this.isDirty("linkTension")){const t=this.get("linkTension",.5);e?(this._fillGenerator.curve((0,pe.$)(t)),this._strokeGenerator.curve((0,pe.$)(t))):(this._fillGenerator.curve((0,fe.G)(t)),this._strokeGenerator.curve((0,fe.G)(t)))}if((this._valuesDirty||this._sizeDirty||this.isDirty("nodePadding")||this.isDirty("nodeWidth")||this.isDirty("nodeAlign")||this.isDirty("nodeSort")||this.isDirty("orientation")||this.isDirty("linkTension")||this.isDirty("linkSort"))&&this._nodesData.length>0){const t=this._d3Sankey;let n=this.innerWidth(),i=this.innerHeight();switch(e&&([n,i]=[i,n]),t.size([n,i]),t.nodePadding(this.get("nodePadding",10)),t.nodeWidth(this.get("nodeWidth",10)),t.nodeSort(this.get("nodeSort",null)),t.linkSort(this.get("linkSort")),this.get("nodeAlign")){case"right":t.nodeAlign(we);break;case"justify":t.nodeAlign(ve);break;case"center":t.nodeAlign(xe);break;default:t.nodeAlign(_e)}this._d3Graph=t({nodes:this._nodesData,links:this._linksData}),l.each(this.dataItems,(e=>{const t=e.get("link");t.setPrivate("orientation",this.get("orientation")),t.markDirty()}));const s=this._d3Graph;if(s){const t=s.nodes;l.each(t,(t=>{const n=t.dataItem,i=n.get("node");let s,a,r,o;e?(s=t.y0,a=t.y1,r=t.x0,o=t.x1):(s=t.x0,a=t.x1,r=t.y0,o=t.y1),f.isNumber(s)&&f.isNumber(a)&&f.isNumber(r)&&f.isNumber(o)&&(i.setAll({x:s,y:r,width:a-s,height:o-r}),n.get("rectangle").setAll({width:a-s,height:o-r}))}))}}}}Object.defineProperty(Re,"className",{enumerable:!0,configurable:!0,writable:!0,value:"Sankey"}),Object.defineProperty(Re,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:p.classNames.concat([Re.className])});var Me=n(8035);class Ge extends Z{constructor(){super(...arguments),Object.defineProperty(this,"labels",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>K._._new(this._root,{},[this.labels.template]))))}),Object.defineProperty(this,"flow",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dAngle",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"circles",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>Me.C._new(this._root,{themeTags:["shape"]},[this.circles.template]))))})}makeNode(e){const t=super.makeNode(e,"ArcDiagram"),n=t.children.insertIndex(0,this.circles.make());e.set("circle",n),n._setSoft("fill",e.get("fill")),n._setSoft("fillPattern",e.get("fillPattern"));const i=this.labels.make();return this.labels.push(i),i.addTag("flow"),i.addTag("arcdiagram"),i.addTag("node"),t.children.push(i),e.set("label",i),i._setDataItem(e),n._setDataItem(e),t}disposeDataItem(e){super.disposeDataItem(e);let t=e.get("circle");t&&(this.circles.removeValue(t),t.dispose())}_updateNodeColor(e){const t=e.get("circle");t&&(t.set("fill",e.get("fill")),t.set("fillPattern",e.get("fillPattern")))}}Object.defineProperty(Ge,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ArcDiagramNodes"}),Object.defineProperty(Ge,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:Z.classNames.concat([Ge.className])});class Fe extends ne{constructor(){super(...arguments),Object.defineProperty(this,"_p0",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_p1",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_radius",{enumerable:!0,configurable:!0,writable:!0,value:0})}_beforeChanged(){if(super._beforeChanged(),this.isDirty("source")){const e=this.get("source");if(e){const t=e.get("node");this._disposers.push(t.events.on("positionchanged",(()=>{this._markDirtyKey("stroke")})))}}if(this.isDirty("target")){const e=this.get("target");if(e){const t=e.get("node");this._disposers.push(t.events.on("positionchanged",(()=>{this._markDirtyKey("stroke")})))}}if(this.isPrivateDirty("orientation")){const e=this.series,t=this.dataItem;t&&e&&e._updateLinkColor(t)}this.series&&this.dataItem&&this.series._positionBullets(this.dataItem),"gradient"==this.get("strokeStyle")?this.set("isMeasured",!0):this.set("isMeasured",!1)}_changed(){super._changed(),this._clear&&this._draw()}_draw(){const e=this.get("target"),t=this.get("source");if(t&&e){let n=t.get("node"),i=e.get("node");const s=n.x(),a=n.y(),r=i.x(),o=i.y();this._p0={x:s,y:a},this._p1={x:r,y:o};let l=0;if("vertical"==this.getPrivate("orientation")){l=(o-a)/2;let e=1;a>o&&(e=-1),this._display.arc(s,a+l,l*e,-Math.PI/2,Math.PI/2)}else{l=(r-s)/2;let e=1;s>r&&(e=-1),this._display.arc(s+l,a,l*e,-Math.PI,0)}this._radius=l}}getPoint(e){if(this._p0&&this._p1){const t=this._radius;if("vertical"==this.getPrivate("orientation")){let n=180*e-90;return{y:this._p0.y+t+t*J.sin(n),x:t*J.cos(n),angle:n+90}}{let n=180+180*e;return{x:this._p0.x+t+t*J.cos(n),y:t*J.sin(n),angle:n+90}}}return{x:0,y:0,angle:0}}}Object.defineProperty(Fe,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ArcDiagramLink"}),Object.defineProperty(Fe,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:ne.classNames.concat([Fe.className])});class We extends p{constructor(){super(...arguments),Object.defineProperty(this,"links",{enumerable:!0,configurable:!0,writable:!0,value:this.addDisposer(new H.o(X.YS.new({}),(()=>Fe._new(this._root,{themeTags:["link","shape"]},[this.links.template]))))}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:this.children.push(Ge.new(this._root,{}))})}_afterNew(){this._settings.themeTags=se.mergeTags(this._settings.themeTags,["arcdiagram",this._settings.orientation||"horizontal"]),super._afterNew(),this.nodes.children.push(this.bulletsContainer)}makeLink(e){const t=this.nodes.children.moveValue(this.links.make(),0);return this.links.push(t),t._setDataItem(e),t.set("source",e.get("source")),t.set("target",e.get("target")),t.series=this,t}_prepareChildren(){if(super._prepareChildren(),this._valuesDirty||this._sizeDirty||this.isDirty("orientation")){let e=1;const t=this.get("orientation");l.each(this.dataItems,(e=>{e.get("link").setPrivate("orientation",this.get("orientation"))})),e="vertical"==t?this.innerHeight():this.innerWidth();let n=0,i=1/0,s=this.get("radiusKey");"none"!=s&&l.each(this.nodes.dataItems,(e=>{let t=e.get(s+"Working");n+=t,i=Math.min(i,t)}));const a=this.nodes.dataItems.length,r=this.get("nodePadding",10),o=this.get("minRadius",5);e-=a*(r+2*o),e<=0&&(e=0);let c=e/(n-a*i),u=0;const h=this.get("animationDuration",0),d=this.get("animationEasing");l.each(this.nodes.dataItems,(n=>{let l=n.get(s+"Working");const g=n.get("node");let f=o+c*(l-i)/2;if("none"==s&&(f=o+e/a/2),"vertical"==t){g.set("x",0);const e=u+r+f;0==g.y()?g.set("y",e):g.animate({key:"y",to:e,duration:h,easing:d})}else{g.set("y",0);const e=u+r+f;0==g.x()?g.set("x",e):g.animate({key:"x",to:e,duration:h,easing:d})}u=u+r+2*f,n.get("circle").set("radius",f)}))}}_updateLinkColor(e){super._updateLinkColor(e);const t=this.get("orientation"),n=e.get("link")._fillGradient,i=e.get("link")._strokeGradient;"vertical"==t?(n&&n.set("rotation",90),i&&i.set("rotation",90)):(n&&n.set("rotation",0),i&&i.set("rotation",0))}}Object.defineProperty(We,"className",{enumerable:!0,configurable:!0,writable:!0,value:"ArcDiagram"}),Object.defineProperty(We,"classNames",{enumerable:!0,configurable:!0,writable:!0,value:p.classNames.concat([We.className])})},906:function(e,t,n){n.r(t),n.d(t,{am5flow:function(){return i}});const i=n(2924)}},function(e){var t=(906,e(e.s=906)),n=window;for(var i in t)n[i]=t[i];t.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})}]);
|
|
2
|
+
//# sourceMappingURL=flow.js.map
|