{"version":3,"file":"js/app.667723a8.js","mappings":"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","sources":["webpack://portal-vue/./src/components/account/register.vue?25df","webpack://portal-vue/./src/components/account/register.ts","webpack://portal-vue/./src/components/account/register.ts?3088","webpack://portal-vue/./src/components/account/register.vue","webpack://portal-vue/./src/components/connectors/connectors.vue?20ba","webpack://portal-vue/./src/components/connectors/connectors.ts","webpack://portal-vue/./src/components/connectors/connectors.ts?be4d","webpack://portal-vue/./src/components/connectors/connectors.vue","webpack://portal-vue/./src/components/distribution/distribution-tree-amount.vue?196b","webpack://portal-vue/./src/components/distribution/distribution-tree-amount.ts","webpack://portal-vue/./src/components/distribution/distribution-tree-amount.ts?4b3f","webpack://portal-vue/./src/components/distribution/distribution-tree-amount.vue","webpack://portal-vue/./src/components/formatting/number-formatter.vue?df1f","webpack://portal-vue/./src/components/formatting/number-formatter.ts","webpack://portal-vue/./src/components/formatting/number-formatter.ts?8792","webpack://portal-vue/./src/components/formatting/number-formatter.vue","webpack://portal-vue/./src/components/generic-search/generic-search.vue?4dcd","webpack://portal-vue/./src/components/generic-search/generic-search.ts","webpack://portal-vue/./src/components/generic-search/generic-search.ts?7b1a","webpack://portal-vue/./src/components/generic-search/generic-search.vue","webpack://portal-vue/./src/components/graph/svg-graph.vue?1abb","webpack://portal-vue/./src/components/graph/svg-graph.ts","webpack://portal-vue/./src/components/graph/svg-graph.ts?0bfe","webpack://portal-vue/./src/components/graph/svg-graph.vue","webpack://portal-vue/./src/components/grid/grid-actions.vue?596c","webpack://portal-vue/./src/components/grid/grid-actions.ts","webpack://portal-vue/./src/components/grid/grid-actions.ts?34eb","webpack://portal-vue/./src/components/grid/grid-actions.vue","webpack://portal-vue/./src/components/grid/grid-amount-left-filter.vue?1262","webpack://portal-vue/./src/components/grid/grid-amount-left-filter.ts","webpack://portal-vue/./src/components/grid/grid-amount-left-filter.ts?c125","webpack://portal-vue/./src/components/grid/grid-amount-left-filter.vue","webpack://portal-vue/./src/components/grid/grid-html-renderer.vue?66d1","webpack://portal-vue/./src/components/grid/grid-html-renderer.ts","webpack://portal-vue/./src/components/grid/grid-html-renderer.ts?d868","webpack://portal-vue/./src/components/grid/grid-html-renderer.vue","webpack://portal-vue/./src/components/grid/grid-label-value.vue?f784","webpack://portal-vue/./src/components/grid/grid-label-value.ts","webpack://portal-vue/./src/components/grid/grid-label-value.ts?e070","webpack://portal-vue/./src/components/grid/grid-label-value.vue","webpack://portal-vue/./src/components/grid/grid-list.vue?b7a8","webpack://portal-vue/./src/components/grid/grid-list.ts","webpack://portal-vue/./src/components/grid/grid-list.ts?b5f2","webpack://portal-vue/./src/components/grid/grid-list.vue","webpack://portal-vue/./src/components/grid/grid-numeric-editor.vue?9b74","webpack://portal-vue/./src/components/grid/grid-numeric-editor.ts","webpack://portal-vue/./src/components/grid/grid-numeric-editor.ts?5fd1","webpack://portal-vue/./src/components/grid/grid-numeric-editor.vue","webpack://portal-vue/./src/components/grid/grid-percentage.vue?885b","webpack://portal-vue/./src/components/grid/grid-percentage.ts","webpack://portal-vue/./src/components/grid/grid-percentage.ts?b75b","webpack://portal-vue/./src/components/grid/grid-percentage.vue","webpack://portal-vue/./src/components/grid/grid-period-range-filter.vue?7401","webpack://portal-vue/./src/components/grid/grid-period-range-filter.ts","webpack://portal-vue/./src/components/grid/grid-period-range-filter.ts?7104","webpack://portal-vue/./src/components/grid/grid-period-range-filter.vue","webpack://portal-vue/./src/components/grid/grid-popover-element.vue?7c5d","webpack://portal-vue/./src/components/grid/grid-popover-element.ts","webpack://portal-vue/./src/components/grid/grid-popover-element.ts?40ab","webpack://portal-vue/./src/components/grid/grid-popover-element.vue","webpack://portal-vue/./src/components/grid/grid-relation-settings.vue?0293","webpack://portal-vue/./src/components/grid/grid-relation-settings.ts","webpack://portal-vue/./src/components/grid/grid-relation-settings.ts?ca16","webpack://portal-vue/./src/components/grid/grid-relation-settings.vue","webpack://portal-vue/./src/components/grid/grid-router-link.vue?196e","webpack://portal-vue/./src/components/grid/grid-router-link.ts","webpack://portal-vue/./src/components/grid/grid-router-link.ts?95f5","webpack://portal-vue/./src/components/grid/grid-router-link.vue","webpack://portal-vue/./src/components/grid/grid-transfer-direction.vue?5802","webpack://portal-vue/./src/components/grid/grid-transfer-direction.ts","webpack://portal-vue/./src/components/grid/grid-transfer-direction.ts?6da0","webpack://portal-vue/./src/components/grid/grid-transfer-direction.vue","webpack://portal-vue/./src/components/grid/grid-wrapper.vue?75da","webpack://portal-vue/./src/components/grid/grid-wrapper.ts","webpack://portal-vue/./src/components/grid/grid-wrapper.ts?0fa4","webpack://portal-vue/./src/components/grid/grid-wrapper.vue","webpack://portal-vue/./src/components/insights/ecosystem-cash-totals.vue?048a","webpack://portal-vue/./src/components/insights/ecosystem-cash-totals.ts","webpack://portal-vue/./src/components/insights/ecosystem-cash-totals.ts?bab1","webpack://portal-vue/./src/components/insights/ecosystem-cash-totals.vue","webpack://portal-vue/./src/components/insights/ecosystem-co2-totals.vue?e89b","webpack://portal-vue/./src/components/insights/ecosystem-co2-totals.ts","webpack://portal-vue/./src/components/insights/ecosystem-co2-totals.ts?7461","webpack://portal-vue/./src/components/insights/ecosystem-co2-totals.vue","webpack://portal-vue/./src/components/insights/ecosystem-fearless-totals.vue?551c","webpack://portal-vue/./src/components/insights/ecosystem-fearless-totals.ts","webpack://portal-vue/./src/components/insights/ecosystem-fearless-totals.ts?922c","webpack://portal-vue/./src/components/insights/ecosystem-fearless-totals.vue","webpack://portal-vue/./src/components/insights/ecosystem-finance-totals.vue?ecc4","webpack://portal-vue/./src/components/insights/ecosystem-finance-totals.ts","webpack://portal-vue/./src/components/insights/ecosystem-finance-totals.ts?2c15","webpack://portal-vue/./src/components/insights/ecosystem-finance-totals.vue","webpack://portal-vue/./src/components/map/Map.vue?ce14","webpack://portal-vue/./src/components/map/Map.js","webpack://portal-vue/./src/components/map/Map.js?4061","webpack://portal-vue/./src/components/map/Map.vue","webpack://portal-vue/./src/components/member/member-name-native.vue?bf54","webpack://portal-vue/./src/components/member/member-name-native.ts","webpack://portal-vue/./src/components/member/member-name-native.ts?74cc","webpack://portal-vue/./src/components/member/member-name-native.vue","webpack://portal-vue/./src/components/member/member-name.vue?cc41","webpack://portal-vue/./src/components/member/member-name.ts","webpack://portal-vue/./src/components/member/member-name.ts?0c7f","webpack://portal-vue/./src/components/member/member-name.vue","webpack://portal-vue/./src/components/member/members.vue?3cce","webpack://portal-vue/./src/components/member/members.ts","webpack://portal-vue/./src/components/member/members.ts?9b7f","webpack://portal-vue/./src/components/member/members.vue","webpack://portal-vue/./src/components/member/memberships.vue?5685","webpack://portal-vue/./src/components/member/memberships.ts","webpack://portal-vue/./src/components/member/memberships.ts?7d68","webpack://portal-vue/./src/components/member/memberships.vue","webpack://portal-vue/./src/components/modals/amortize-modal.vue?49fe","webpack://portal-vue/./src/components/modals/amortize-modal.ts","webpack://portal-vue/./src/components/modals/amortize-modal.ts?355c","webpack://portal-vue/./src/components/modals/amortize-modal.vue","webpack://portal-vue/./src/components/modals/are-you-sure-modal.vue?5dc7","webpack://portal-vue/./src/components/modals/are-you-sure-modal.ts","webpack://portal-vue/./src/components/modals/are-you-sure-modal.ts?441e","webpack://portal-vue/./src/components/modals/are-you-sure-modal.vue","webpack://portal-vue/./src/components/modals/change-legal-entity-reference-modal.vue?06e3","webpack://portal-vue/./src/components/modals/change-legal-entity-reference-modal.ts","webpack://portal-vue/./src/components/modals/change-legal-entity-reference-modal.ts?44a5","webpack://portal-vue/./src/components/modals/change-legal-entity-reference-modal.vue","webpack://portal-vue/./src/components/modals/create-ledger-account-modal.vue?e46d","webpack://portal-vue/./src/components/modals/create-ledger-account-modal.ts","webpack://portal-vue/./src/components/modals/create-ledger-account-modal.ts?0a32","webpack://portal-vue/./src/components/modals/create-ledger-account-modal.vue","webpack://portal-vue/./src/components/modals/ecosystem-switcher-modal.vue?4aa6","webpack://portal-vue/./src/components/modals/ecosystem-switcher-modal.ts","webpack://portal-vue/./src/components/modals/ecosystem-switcher-modal.ts?6879","webpack://portal-vue/./src/components/modals/ecosystem-switcher-modal.vue","webpack://portal-vue/./src/components/modals/energy-dedication-modal.vue?831a","webpack://portal-vue/./src/components/modals/energy-dedication-modal.ts","webpack://portal-vue/./src/components/modals/energy-dedication-modal.ts?2e97","webpack://portal-vue/./src/components/modals/energy-dedication-modal.vue","webpack://portal-vue/./src/components/modals/import-modal.vue?5445","webpack://portal-vue/./src/components/modals/import-modal.ts","webpack://portal-vue/./src/components/modals/import-modal.ts?eb65","webpack://portal-vue/./src/components/modals/import-modal.vue","webpack://portal-vue/./src/components/modals/move-pl-modal.vue?c7e0","webpack://portal-vue/./src/components/modals/move-pl-modal.ts","webpack://portal-vue/./src/components/modals/move-pl-modal.ts?0a83","webpack://portal-vue/./src/components/modals/move-pl-modal.vue","webpack://portal-vue/./src/components/modals/move-to-account-modal.vue?006f","webpack://portal-vue/./src/components/modals/move-to-account-modal.ts","webpack://portal-vue/./src/components/modals/move-to-account-modal.ts?4356","webpack://portal-vue/./src/components/modals/move-to-account-modal.vue","webpack://portal-vue/./src/components/modals/relation-settings-modal.vue?eb3c","webpack://portal-vue/./src/components/modals/relation-settings-modal.ts","webpack://portal-vue/./src/components/modals/relation-settings-modal.ts?defe","webpack://portal-vue/./src/components/modals/relation-settings-modal.vue","webpack://portal-vue/./src/components/modals/save-attributions-modal.vue?f2ad","webpack://portal-vue/./src/components/modals/save-attributions-modal.ts","webpack://portal-vue/./src/components/modals/save-attributions-modal.ts?ea0b","webpack://portal-vue/./src/components/modals/save-attributions-modal.vue","webpack://portal-vue/./src/components/modals/transfer-modal.vue?c8f0","webpack://portal-vue/./src/components/modals/transfer-modal.ts","webpack://portal-vue/./src/components/modals/transfer-modal.ts?1c7f","webpack://portal-vue/./src/components/modals/transfer-modal.vue","webpack://portal-vue/./src/components/modals/transfer-request-modal.vue?e790","webpack://portal-vue/./src/components/modals/transfer-request-modal.ts","webpack://portal-vue/./src/components/modals/transfer-request-modal.ts?8480","webpack://portal-vue/./src/components/modals/transfer-request-modal.vue","webpack://portal-vue/./src/components/navigation/bar.vue?3bde","webpack://portal-vue/./src/store/modules/notification.ts","webpack://portal-vue/./src/components/navigation/bar.ts","webpack://portal-vue/./src/components/navigation/bar.ts?3a2b","webpack://portal-vue/./src/components/navigation/bar.vue","webpack://portal-vue/./src/components/navigation/breadcrumb.vue?02f4","webpack://portal-vue/./src/components/navigation/breadcrumb.ts","webpack://portal-vue/./src/components/navigation/breadcrumb.ts?3fe6","webpack://portal-vue/./src/components/navigation/breadcrumb.vue","webpack://portal-vue/./src/components/navigation/profile.vue?6acf","webpack://portal-vue/./src/components/navigation/profile.ts","webpack://portal-vue/./src/components/navigation/profile.ts?4a10","webpack://portal-vue/./src/components/navigation/profile.vue","webpack://portal-vue/./src/components/navigation/team.vue?4827","webpack://portal-vue/./src/components/navigation/team.ts","webpack://portal-vue/./src/components/navigation/team.ts?98a8","webpack://portal-vue/./src/components/navigation/team.vue","webpack://portal-vue/./src/components/notification/notifications.vue?9593","webpack://portal-vue/./src/components/notification/item.vue?60ae","webpack://portal-vue/./src/components/notification/general.vue?3b3b","webpack://portal-vue/./src/components/notification/general.ts","webpack://portal-vue/./src/components/notification/general.ts?d706","webpack://portal-vue/./src/components/notification/general.vue","webpack://portal-vue/./src/components/notification/transfer.vue?be5f","webpack://portal-vue/./src/components/notification/transfer.ts","webpack://portal-vue/./src/components/notification/transfer.ts?815e","webpack://portal-vue/./src/components/notification/transfer.vue","webpack://portal-vue/./src/components/notification/item.ts","webpack://portal-vue/./src/components/notification/item.ts?f90c","webpack://portal-vue/./src/components/notification/item.vue","webpack://portal-vue/./src/components/notification/toast.vue?4204","webpack://portal-vue/src/components/notification/toast.vue","webpack://portal-vue/./src/components/notification/toast.vue?17e4","webpack://portal-vue/./src/components/notification/toast.vue","webpack://portal-vue/./src/components/notification/notifications.ts","webpack://portal-vue/./src/components/notification/notifications.ts?111e","webpack://portal-vue/./src/components/notification/notifications.vue","webpack://portal-vue/./src/components/period filter/period-filter.vue?b811","webpack://portal-vue/./src/components/period filter/period-filter.ts","webpack://portal-vue/./src/components/period filter/period-filter.ts?88c5","webpack://portal-vue/./src/components/period filter/period-filter.vue","webpack://portal-vue/./src/components/roles/roles-settings.vue?ee01","webpack://portal-vue/./src/extensions/stringExtensions.ts","webpack://portal-vue/./src/components/roles/roles-settings.ts","webpack://portal-vue/./src/components/roles/roles-settings.ts?d9af","webpack://portal-vue/./src/components/roles/roles-settings.vue","webpack://portal-vue/./src/components/side-actions/create-or-edit-template-action/create-or-edit-template-action.vue?cfaa","webpack://portal-vue/./src/components/side-actions/create-or-edit-template-action/create-or-edit-template-action.ts","webpack://portal-vue/./src/components/side-actions/create-or-edit-template-action/create-or-edit-template-action.ts?15ca","webpack://portal-vue/./src/components/side-actions/create-or-edit-template-action/create-or-edit-template-action.vue","webpack://portal-vue/./src/components/side-actions/ecosystem/create-ecosystem-action.vue?e392","webpack://portal-vue/./src/components/side-actions/ecosystem/create-ecosystem-action.ts","webpack://portal-vue/./src/components/side-actions/ecosystem/create-ecosystem-action.ts?d1e0","webpack://portal-vue/./src/components/side-actions/ecosystem/create-ecosystem-action.vue","webpack://portal-vue/./src/components/side-actions/views/create-or-edit-view-action.vue?e70b","webpack://portal-vue/./src/components/side-actions/views/create-or-edit-view-action.ts","webpack://portal-vue/./src/components/side-actions/views/create-or-edit-view-action.ts?8e53","webpack://portal-vue/./src/components/side-actions/views/create-or-edit-view-action.vue","webpack://portal-vue/./src/components/spinner/spinner.vue?bb8c","webpack://portal-vue/./src/components/spinner/spinner.ts","webpack://portal-vue/./src/components/spinner/spinner.ts?b074","webpack://portal-vue/./src/components/spinner/spinner.vue","webpack://portal-vue/./src/components/transfer/recurring-transfers-grid.vue?e571","webpack://portal-vue/./src/components/transfer/recurring-transfers-grid.ts","webpack://portal-vue/./src/components/transfer/recurring-transfers-grid.ts?e3d7","webpack://portal-vue/./src/components/transfer/recurring-transfers-grid.vue","webpack://portal-vue/./src/components/translate/button.vue?10e7","webpack://portal-vue/./src/components/translate/button.ts","webpack://portal-vue/./src/components/translate/button.ts?3604","webpack://portal-vue/./src/components/translate/button.vue","webpack://portal-vue/./src/components/translate/text-inline.vue?bc67","webpack://portal-vue/./src/components/translate/text-inline.ts","webpack://portal-vue/./src/components/translate/text-inline.ts?c377","webpack://portal-vue/./src/components/translate/text-inline.vue","webpack://portal-vue/./src/components/translate/text.vue?adf3","webpack://portal-vue/./src/components/translate/text.ts","webpack://portal-vue/./src/components/translate/text.ts?b4fa","webpack://portal-vue/./src/components/translate/text.vue","webpack://portal-vue/./src/modules/cells/views/cells.vue?1adb","webpack://portal-vue/./src/modules/cells/models/MapView.ts","webpack://portal-vue/./src/modules/cells/components/prd-svg-canvas.vue?583b","webpack://portal-vue/./src/modules/cells/components/prd-svg-canvas.ts","webpack://portal-vue/./src/modules/cells/svg/HorizontalAlign.ts","webpack://portal-vue/./src/modules/cells/svg/VerticalAlign.ts","webpack://portal-vue/./src/modules/cells/models/CellScore.ts","webpack://portal-vue/./src/modules/cells/models/CellIndicatorScore.ts","webpack://portal-vue/./src/modules/cells/components/prd-svg-canvas.ts?532e","webpack://portal-vue/./src/modules/cells/components/prd-svg-canvas.vue","webpack://portal-vue/./src/modules/cells/svg/SvgRender.ts","webpack://portal-vue/./src/modules/cells/svg/SvgHelper.ts","webpack://portal-vue/./src/modules/cells/models/MapConfig.ts","webpack://portal-vue/./src/modules/cells/models/CellColor.ts","webpack://portal-vue/./src/modules/cells/models/MapCellData.ts","webpack://portal-vue/./src/modules/cells/svg/SvgRenderInfoCell.ts","webpack://portal-vue/./src/modules/cells/svg/SvgLabel.ts","webpack://portal-vue/./src/modules/cells/svg/SvgCircleCell.ts","webpack://portal-vue/./src/modules/cells/svg/SvgRenderCellSpace.ts","webpack://portal-vue/./src/modules/cells/models/MapData.ts","webpack://portal-vue/./src/models/Finance/Api/GroupResultItem.ts","webpack://portal-vue/./src/modules/cells/models/InsightGroupTotals.ts","webpack://portal-vue/./src/modules/cells/store/map.ts","webpack://portal-vue/./src/modules/cells/svg/SvgAnimate.ts","webpack://portal-vue/./src/modules/cells/components/finance-totals.vue?8a9b","webpack://portal-vue/./src/helpers/GridHelper.ts","webpack://portal-vue/./src/modules/cells/components/finance-totals.ts","webpack://portal-vue/./src/modules/cells/components/finance-totals.ts?5f40","webpack://portal-vue/./src/modules/cells/components/finance-totals.vue","webpack://portal-vue/./src/modules/cells/views/cells.ts","webpack://portal-vue/./src/modules/cells/views/cells.ts?28bd","webpack://portal-vue/./src/modules/cells/views/cells.vue","webpack://portal-vue/./src/pages/account/invited/invited.vue?da40","webpack://portal-vue/./src/models/Invite.ts","webpack://portal-vue/./src/models/InviteResponse.ts","webpack://portal-vue/./src/models/Validator/Digit.ts","webpack://portal-vue/./src/models/Validator/LowerCase.ts","webpack://portal-vue/./src/models/Validator/MinLength.ts","webpack://portal-vue/./src/models/Validator/NonAlpha.ts","webpack://portal-vue/./src/models/Validator/UpperCase.ts","webpack://portal-vue/./src/models/Policy/Policies.ts","webpack://portal-vue/./src/helpers/PolicyHelper.ts","webpack://portal-vue/./src/pages/account/invited/invited.ts","webpack://portal-vue/./src/pages/account/invited/invited.ts?adab","webpack://portal-vue/./src/pages/account/invited/invited.vue","webpack://portal-vue/./src/pages/account/profile/profile.vue?31cb","webpack://portal-vue/./src/pages/account/profile/profile.ts","webpack://portal-vue/./src/pages/account/profile/profile.ts?8cde","webpack://portal-vue/./src/pages/account/profile/profile.vue","webpack://portal-vue/./src/pages/dashboard/me.vue?c9f1","webpack://portal-vue/./src/pages/dashboard/me.ts","webpack://portal-vue/./src/pages/dashboard/me.ts?8df7","webpack://portal-vue/./src/pages/dashboard/me.vue","webpack://portal-vue/./src/pages/ecosystem/create-team.vue?ccc2","webpack://portal-vue/./src/pages/ecosystem/create-team.ts","webpack://portal-vue/./src/pages/ecosystem/create-team.ts?2164","webpack://portal-vue/./src/pages/ecosystem/create-team.vue","webpack://portal-vue/./src/pages/ecosystem/directory/components/groups.vue?06dd","webpack://portal-vue/./src/pages/ecosystem/directory/components/groups.ts","webpack://portal-vue/./src/pages/ecosystem/directory/components/groups.ts?6579","webpack://portal-vue/./src/pages/ecosystem/directory/components/groups.vue","webpack://portal-vue/./src/pages/ecosystem/directory/components/map.vue?f63e","webpack://portal-vue/./src/pages/ecosystem/directory/components/map.ts","webpack://portal-vue/./src/pages/ecosystem/directory/components/map.ts?576e","webpack://portal-vue/./src/pages/ecosystem/directory/components/map.vue","webpack://portal-vue/./src/pages/ecosystem/directory/components/members.vue?e173","webpack://portal-vue/./src/pages/ecosystem/directory/components/members.ts","webpack://portal-vue/./src/pages/ecosystem/directory/components/members.ts?8817","webpack://portal-vue/./src/pages/ecosystem/directory/components/members.vue","webpack://portal-vue/./src/pages/ecosystem/directory/components/people.vue?b220","webpack://portal-vue/./src/pages/ecosystem/directory/components/people.ts","webpack://portal-vue/./src/pages/ecosystem/directory/components/people.ts?809e","webpack://portal-vue/./src/pages/ecosystem/directory/components/people.vue","webpack://portal-vue/./src/pages/ecosystem/directory/components/teams.vue?6003","webpack://portal-vue/./src/pages/ecosystem/directory/components/teams.ts","webpack://portal-vue/./src/pages/ecosystem/directory/components/teams.ts?8724","webpack://portal-vue/./src/pages/ecosystem/directory/components/teams.vue","webpack://portal-vue/./src/pages/ecosystem/directory/directory.vue?a60e","webpack://portal-vue/./src/pages/ecosystem/directory/directory.ts","webpack://portal-vue/./src/pages/ecosystem/directory/directory.ts?2c3a","webpack://portal-vue/./src/pages/ecosystem/directory/directory.vue","webpack://portal-vue/./src/pages/ecosystem/finances.vue?7863","webpack://portal-vue/./src/pages/ecosystem/finances.ts","webpack://portal-vue/./src/pages/ecosystem/finances.ts?34ad","webpack://portal-vue/./src/pages/ecosystem/finances.vue","webpack://portal-vue/./src/pages/ecosystem/insights.vue?bee7","webpack://portal-vue/./src/pages/ecosystem/insights.ts","webpack://portal-vue/./src/pages/ecosystem/insights.ts?5ac6","webpack://portal-vue/./src/pages/ecosystem/insights.vue","webpack://portal-vue/./src/pages/ecosystem/overview.vue?f856","webpack://portal-vue/./src/pages/ecosystem/overview.ts","webpack://portal-vue/./src/pages/ecosystem/overview.ts?d6c3","webpack://portal-vue/./src/pages/ecosystem/overview.vue","webpack://portal-vue/./src/pages/ecosystem/settings/components/cross-legal-transactions.vue?cf7f","webpack://portal-vue/./src/pages/ecosystem/settings/components/cross-legal-transactions.ts","webpack://portal-vue/./src/pages/ecosystem/settings/components/cross-legal-transactions.ts?e9e5","webpack://portal-vue/./src/pages/ecosystem/settings/components/cross-legal-transactions.vue","webpack://portal-vue/./src/pages/ecosystem/settings/components/insight-views.vue?1f26","webpack://portal-vue/./src/pages/ecosystem/settings/components/insight-views.ts","webpack://portal-vue/./src/pages/ecosystem/settings/components/insight-views.ts?c5cb","webpack://portal-vue/./src/pages/ecosystem/settings/components/insight-views.vue","webpack://portal-vue/./src/pages/ecosystem/settings/components/ledger-accounts.vue?0433","webpack://portal-vue/./src/pages/ecosystem/settings/components/ledger-accounts.ts","webpack://portal-vue/./src/pages/ecosystem/settings/components/ledger-accounts.ts?aee3","webpack://portal-vue/./src/pages/ecosystem/settings/components/ledger-accounts.vue","webpack://portal-vue/./src/pages/ecosystem/settings/components/relations.vue?265e","webpack://portal-vue/./src/pages/ecosystem/settings/components/relations.ts","webpack://portal-vue/./src/pages/ecosystem/settings/components/relations.ts?4bb8","webpack://portal-vue/./src/pages/ecosystem/settings/components/relations.vue","webpack://portal-vue/./src/pages/ecosystem/settings/settings.vue?60ee","webpack://portal-vue/./src/pages/ecosystem/settings/settings.ts","webpack://portal-vue/./src/pages/ecosystem/settings/settings.ts?81aa","webpack://portal-vue/./src/pages/ecosystem/settings/settings.vue","webpack://portal-vue/./src/pages/ecosystem/subscription/subscription.vue?a171","webpack://portal-vue/./src/pages/ecosystem/subscription/subscription.ts","webpack://portal-vue/./src/pages/ecosystem/subscription/subscription.ts?d57e","webpack://portal-vue/./src/pages/ecosystem/subscription/subscription.vue","webpack://portal-vue/./src/pages/ecosystem/svg-graph.vue?f841","webpack://portal-vue/./src/pages/ecosystem/svg-graph.ts","webpack://portal-vue/./src/pages/ecosystem/svg-graph.ts?c485","webpack://portal-vue/./src/pages/ecosystem/svg-graph.vue","webpack://portal-vue/./src/pages/error/error.vue?e51c","webpack://portal-vue/./src/pages/error/error.ts","webpack://portal-vue/./src/pages/error/error.ts?1897","webpack://portal-vue/./src/pages/error/error.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-ambitions.vue?adf3","webpack://portal-vue/./src/models/Finance/Ambition.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-ambitions.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-ambitions.ts?79a6","webpack://portal-vue/./src/pages/groups/details/components/group-detail-ambitions.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-expense.vue?27d0","webpack://portal-vue/./src/pages/groups/details/components/group-detail-expense.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-expense.ts?8245","webpack://portal-vue/./src/pages/groups/details/components/group-detail-expense.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-income.vue?982a","webpack://portal-vue/./src/pages/groups/details/components/group-detail-income.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-income.ts?a41c","webpack://portal-vue/./src/pages/groups/details/components/group-detail-income.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-insights.vue?3c50","webpack://portal-vue/./src/pages/groups/details/components/group-detail-insights.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-insights.ts?4bb5","webpack://portal-vue/./src/pages/groups/details/components/group-detail-insights.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-members.vue?dc08","webpack://portal-vue/./src/pages/groups/details/components/group-detail-members.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-members.ts?f2f9","webpack://portal-vue/./src/pages/groups/details/components/group-detail-members.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-overview.vue?1203","webpack://portal-vue/./src/pages/groups/details/components/group-detail-overview.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-overview.ts?b5ad","webpack://portal-vue/./src/pages/groups/details/components/group-detail-overview.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-settings.vue?664a","webpack://portal-vue/./src/models/FinancialGroupActivity.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-settings.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-settings.ts?cfce","webpack://portal-vue/./src/pages/groups/details/components/group-detail-settings.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-transfers.vue?ecb4","webpack://portal-vue/./src/models/Finance/TransferRequest.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-transfers.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-transfers.ts?5e44","webpack://portal-vue/./src/pages/groups/details/components/group-detail-transfers.vue","webpack://portal-vue/./src/pages/groups/details/components/group-detail-workspace.vue?d9af","webpack://portal-vue/./src/pages/groups/details/components/group-detail-workspace.ts","webpack://portal-vue/./src/pages/groups/details/components/group-detail-workspace.ts?f0eb","webpack://portal-vue/./src/pages/groups/details/components/group-detail-workspace.vue","webpack://portal-vue/./src/pages/groups/details/details.vue?2f20","webpack://portal-vue/./src/pages/groups/details/details.ts","webpack://portal-vue/./src/pages/groups/details/details.ts?5e68","webpack://portal-vue/./src/pages/groups/details/details.vue","webpack://portal-vue/./src/pages/me/directory/components/groups.vue?0a3b","webpack://portal-vue/./src/pages/me/directory/components/groups.ts","webpack://portal-vue/./src/pages/me/directory/components/groups.ts?af65","webpack://portal-vue/./src/pages/me/directory/components/groups.vue","webpack://portal-vue/./src/pages/me/directory/components/members.vue?4069","webpack://portal-vue/./src/pages/me/directory/components/members.ts","webpack://portal-vue/./src/pages/me/directory/components/members.ts?81ed","webpack://portal-vue/./src/pages/me/directory/components/members.vue","webpack://portal-vue/./src/pages/notfound/notfound.vue?2278","webpack://portal-vue/./src/pages/notfound/notfound.ts","webpack://portal-vue/./src/pages/notfound/notfound.ts?bf87","webpack://portal-vue/./src/pages/notfound/notfound.vue","webpack://portal-vue/./src/pages/settings/translate.vue?a1d0","webpack://portal-vue/./src/pages/settings/translate-group.vue?c1db","webpack://portal-vue/./src/pages/settings/translate-group.ts","webpack://portal-vue/./src/pages/settings/translate-group.ts?d3ae","webpack://portal-vue/./src/pages/settings/translate-group.vue","webpack://portal-vue/./src/pages/settings/translate.ts","webpack://portal-vue/./src/pages/settings/translate.ts?8969","webpack://portal-vue/./src/pages/settings/translate.vue","webpack://portal-vue/./src/pages/teams/directory/add-group.vue?f8e1","webpack://portal-vue/./src/pages/teams/directory/add-group.ts","webpack://portal-vue/./src/pages/teams/directory/add-group.ts?0772","webpack://portal-vue/./src/pages/teams/directory/add-group.vue","webpack://portal-vue/./src/pages/teams/directory/add-member.vue?ea00","webpack://portal-vue/./src/pages/teams/directory/add-member.ts","webpack://portal-vue/./src/pages/teams/directory/add-member.ts?41ad","webpack://portal-vue/./src/pages/teams/directory/add-member.vue","webpack://portal-vue/./src/pages/teams/directory/components/groups.vue?2b8d","webpack://portal-vue/./src/pages/teams/directory/components/groups.ts","webpack://portal-vue/./src/pages/teams/directory/components/groups.ts?25a8","webpack://portal-vue/./src/pages/teams/directory/components/groups.vue","webpack://portal-vue/./src/pages/teams/directory/components/members.vue?5d28","webpack://portal-vue/./src/pages/teams/directory/components/members.ts","webpack://portal-vue/./src/pages/teams/directory/components/members.ts?89c9","webpack://portal-vue/./src/pages/teams/directory/components/members.vue","webpack://portal-vue/./src/pages/teams/directory/components/settings.vue?8fe7","webpack://portal-vue/./src/pages/teams/directory/components/settings.ts","webpack://portal-vue/./src/pages/teams/directory/components/settings.ts?5aa7","webpack://portal-vue/./src/pages/teams/directory/components/settings.vue","webpack://portal-vue/./src/pages/teams/directory/directory.vue?4f29","webpack://portal-vue/./src/pages/teams/directory/directory.ts","webpack://portal-vue/./src/pages/teams/directory/directory.ts?3a4f","webpack://portal-vue/./src/pages/teams/directory/directory.vue","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-expenses.vue?2247","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-expenses.ts","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-expenses.ts?c5e5","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-expenses.vue","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-group-overview.vue?40c9","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-group-overview.ts","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-group-overview.ts?7a47","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-group-overview.vue","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-invoices.vue?c372","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-invoices.ts","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-invoices.ts?d7b6","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-invoices.vue","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-member-overview.vue?d45d","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-member-overview.ts","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-member-overview.ts?fe2f","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-member-overview.vue","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-period.vue?b029","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-period.ts","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-period.ts?4fa7","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-period.vue","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-settings.vue?b799","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-settings.ts","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-settings.ts?1f0e","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-settings.vue","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-transfers.vue?c886","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-transfers.ts","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-transfers.ts?a8fe","webpack://portal-vue/./src/pages/teams/finance/components/team-finance-transfers.vue","webpack://portal-vue/./src/pages/teams/finance/finance.vue?0143","webpack://portal-vue/./src/pages/teams/finance/finance.ts","webpack://portal-vue/./src/pages/teams/finance/finance.ts?3f65","webpack://portal-vue/./src/pages/teams/finance/finance.vue","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-group-results.vue?9166","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-group-results.ts","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-group-results.ts?0ae7","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-group-results.vue","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-member-results.vue?a72b","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-member-results.ts","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-member-results.ts?0b17","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-member-results.vue","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-payment-statusses.vue?c9db","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-payment-detail.vue?65a8","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-payment-detail.ts","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-payment-detail.ts?df52","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-payment-detail.vue","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-payment-statusses.ts","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-payment-statusses.ts?6aeb","webpack://portal-vue/./src/pages/teams/insights/components/team-insights-payment-statusses.vue","webpack://portal-vue/./src/pages/teams/insights/insights.vue?0d4c","webpack://portal-vue/./src/pages/teams/insights/insights.ts","webpack://portal-vue/./src/pages/teams/insights/insights.ts?7cf7","webpack://portal-vue/./src/pages/teams/insights/insights.vue","webpack://portal-vue/./src/pages/teams/joinrequest.vue?e04f","webpack://portal-vue/./src/models/TeamJoinRequest.ts","webpack://portal-vue/./src/pages/teams/joinrequest.ts","webpack://portal-vue/./src/pages/teams/joinrequest.ts?0a86","webpack://portal-vue/./src/pages/teams/joinrequest.vue","webpack://portal-vue/./src/plugin/sideActions/sideActionsComponent.vue?1c32","webpack://portal-vue/./src/plugin/sideActions/sideActionsComponent.ts","webpack://portal-vue/./src/plugin/sideActions/sideActionsComponent.ts?fe88","webpack://portal-vue/./src/plugin/sideActions/sideActionsComponent.vue","webpack://portal-vue/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://portal-vue/./src/components/modals/BaseModal.ts","webpack://portal-vue/./src/components/notification/models/Notification.ts","webpack://portal-vue/./src/components/translate/base.ts","webpack://portal-vue/./src/filters.ts","webpack://portal-vue/./src/helpers/functions.ts","webpack://portal-vue/./src/language/en.ts","webpack://portal-vue/./src/App.vue?9eb9","webpack://portal-vue/./src/components/navmenu/navmenu.vue?3701","webpack://portal-vue/./src/components/release-notes/release-notes.vue?9010","webpack://portal-vue/./src/components/release-notes/release-notes.vue","webpack://portal-vue/./src/components/navmenu/navmenu.ts","webpack://portal-vue/./src/components/navmenu/navmenu.ts?e860","webpack://portal-vue/./src/components/navmenu/navmenu.vue","webpack://portal-vue/./src/App.ts","webpack://portal-vue/./src/App.ts?6970","webpack://portal-vue/./src/App.vue","webpack://portal-vue/./src/pages/Base.vue?5b0a","webpack://portal-vue/./src/pages/Base.ts","webpack://portal-vue/./src/pages/Base.ts?4496","webpack://portal-vue/./src/pages/Base.vue","webpack://portal-vue/./src/router/index.ts","webpack://portal-vue/./src/components/translate/directive.ts","webpack://portal-vue/./src/components/index.ts","webpack://portal-vue/./src/models/NetworkStatus.ts","webpack://portal-vue/./src/helpers/axiosHelper.ts","webpack://portal-vue/./src/helpers/loginHelper.ts","webpack://portal-vue/./src/services/baseService.ts","webpack://portal-vue/./src/services/meService.ts","webpack://portal-vue/./src/services/groupService.ts","webpack://portal-vue/./src/services/personService.ts","webpack://portal-vue/./src/services/teamService.ts","webpack://portal-vue/./src/models/Finance/CrossLegalTransaction.ts","webpack://portal-vue/./src/services/financeService.ts","webpack://portal-vue/./src/services/financeAccountService.ts","webpack://portal-vue/./src/services/attributionService.ts","webpack://portal-vue/./src/services/resultService.ts","webpack://portal-vue/./src/services/compensationService.ts","webpack://portal-vue/./src/services/userRoleService.ts","webpack://portal-vue/./src/models/Period.ts","webpack://portal-vue/./src/services/periodService.ts","webpack://portal-vue/./src/helpers/errorHelper.ts","webpack://portal-vue/./src/helpers/roleHelper.ts","webpack://portal-vue/./src/helpers/teamHelper.ts","webpack://portal-vue/./src/helpers/GroupHelper.ts","webpack://portal-vue/./src/helpers/memberHelper.ts","webpack://portal-vue/./src/helpers/periodFilterHelper.ts","webpack://portal-vue/./src/helpers/navigationHelper.ts","webpack://portal-vue/./src/events/EventBus.ts","webpack://portal-vue/./src/services/loginService.ts","webpack://portal-vue/./src/extensions/numberExtensions.ts","webpack://portal-vue/./src/services/mapService.ts","webpack://portal-vue/./src/services/connectorsService.ts","webpack://portal-vue/./src/services/financeGroupService.ts","webpack://portal-vue/./src/services/transferService.ts","webpack://portal-vue/./src/services/settingService.ts","webpack://portal-vue/./src/helpers/ecosystemHelper.ts","webpack://portal-vue/./src/services/LedgerService.ts","webpack://portal-vue/./src/services/RelationService.ts","webpack://portal-vue/./src/services/templateService.ts","webpack://portal-vue/./src/services/notificationsService.ts","webpack://portal-vue/./src/plugin/sideActions/sideActions.ts","webpack://portal-vue/./src/models/Insights/Lens.ts","webpack://portal-vue/./src/models/Insights/PaymentStatus.ts","webpack://portal-vue/./src/services/insightViewService.ts","webpack://portal-vue/./src/services/ecosystemService.ts","webpack://portal-vue/./src/main.ts","webpack://portal-vue/./src/models/AccountType.ts","webpack://portal-vue/./src/models/Attribution.ts","webpack://portal-vue/./src/models/AttributionType.ts","webpack://portal-vue/./src/models/Compensation.ts","webpack://portal-vue/./src/models/DistributedInvoice.ts","webpack://portal-vue/./src/models/FinanceBase.ts","webpack://portal-vue/./src/models/FinanceGroup.ts","webpack://portal-vue/./src/models/FinanceMe.ts","webpack://portal-vue/./src/models/FinanceTeam.ts","webpack://portal-vue/./src/models/FinanceTotal.ts","webpack://portal-vue/./src/models/Finance/Api/Range.ts","webpack://portal-vue/./src/models/Finance/Api/TeamResultItem.ts","webpack://portal-vue/./src/models/Finance/Api/TeamResults.ts","webpack://portal-vue/./src/models/Finance/AttributionPercentages.ts","webpack://portal-vue/./src/models/Finance/Ledger.ts","webpack://portal-vue/./src/models/Finance/Relation.ts","webpack://portal-vue/./src/models/Finance/Template.ts","webpack://portal-vue/./src/models/Graph/GraphData.ts","webpack://portal-vue/./src/models/Group.ts","webpack://portal-vue/./src/models/GroupAlias.ts","webpack://portal-vue/./src/models/Insights/InsightView.ts","webpack://portal-vue/./src/models/Invoice.ts","webpack://portal-vue/./src/models/InvoiceSource.ts","webpack://portal-vue/./src/models/InvoiceType.ts","webpack://portal-vue/./src/models/Member.ts","webpack://portal-vue/./src/models/PageRender.ts","webpack://portal-vue/./src/models/Person.ts","webpack://portal-vue/./src/models/PrivacyLevel.ts","webpack://portal-vue/./src/models/Register.ts","webpack://portal-vue/./src/models/Team.ts","webpack://portal-vue/./src/models/TeamSettings.ts","webpack://portal-vue/./src/models/Transfer.ts","webpack://portal-vue/./src/models/TransferType.ts","webpack://portal-vue/./src/models/UserRoles.ts","webpack://portal-vue/./src/pages/ecosystem/directory/components/BaseEcosystemDirectory.ts","webpack://portal-vue/./src/pages/groups/details/components/BaseGroupPage.ts","webpack://portal-vue/./src/pages/teams/finance/components/BaseFinancePage.ts","webpack://portal-vue/./src/pages/teams/finance/components/BaseFinanceTeamInvoicePage.ts","webpack://portal-vue/./src/pages/teams/insights/components/BaseInsightsPage.ts","webpack://portal-vue/./src/plugin/sideActions/sideActionBase.ts","webpack://portal-vue/./src/plugin/sideActions/sideActionsEvents.ts","webpack://portal-vue/./src/store/index.ts","webpack://portal-vue/./src/store/modules/filters.ts","webpack://portal-vue/./src/store/modules/ledger.ts","webpack://portal-vue/./src/store/modules/period.ts","webpack://portal-vue/./src/store/modules/profile.ts","webpack://portal-vue/./src/models/Finance/TeamFinanceSettings.ts","webpack://portal-vue/./src/models/Finance/GroupFinanceSettings.ts","webpack://portal-vue/./src/store/modules/settings.ts","webpack://portal-vue/./src/store/modules/teams.ts","webpack://portal-vue/./src/store/modules/lang/default.ts","webpack://portal-vue/./src/store/modules/translate.ts","webpack://portal-vue/webpack/bootstrap","webpack://portal-vue/webpack/runtime/chunk loaded","webpack://portal-vue/webpack/runtime/compat get default export","webpack://portal-vue/webpack/runtime/define property getters","webpack://portal-vue/webpack/runtime/ensure chunk","webpack://portal-vue/webpack/runtime/get javascript chunk filename","webpack://portal-vue/webpack/runtime/get mini-css chunk filename","webpack://portal-vue/webpack/runtime/global","webpack://portal-vue/webpack/runtime/harmony module decorator","webpack://portal-vue/webpack/runtime/hasOwnProperty shorthand","webpack://portal-vue/webpack/runtime/load script","webpack://portal-vue/webpack/runtime/make namespace object","webpack://portal-vue/webpack/runtime/node module decorator","webpack://portal-vue/webpack/runtime/publicPath","webpack://portal-vue/webpack/runtime/jsonp chunk loading","webpack://portal-vue/webpack/startup"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form',{on:{\"submit\":_vm.onSubmit}},[_c('b-form-group',{attrs:{\"id\":\"firstNameGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"FIRST_NAME\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"firstNameInput\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Firstname\"},model:{value:(_vm.model.person.firstName),callback:function ($$v) {_vm.$set(_vm.model.person, \"firstName\", $$v)},expression:\"model.person.firstName\"}})],1),_c('b-form-group',{attrs:{\"id\":\"insertionGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"INSERTION\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"insertionInput\",\"type\":\"text\",\"placeholder\":\"Insertion\"},model:{value:(_vm.model.person.insertion),callback:function ($$v) {_vm.$set(_vm.model.person, \"insertion\", $$v)},expression:\"model.person.insertion\"}})],1),_c('b-form-group',{attrs:{\"id\":\"lastNameGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LAST_NAME\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"lastNameInput\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Lastname\"},model:{value:(_vm.model.person.lastName),callback:function ($$v) {_vm.$set(_vm.model.person, \"lastName\", $$v)},expression:\"model.person.lastName\"}})],1),_c('b-form-group',{attrs:{\"id\":\"emailAdressGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"EMAIL\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"emailRegisterInput\",\"type\":\"email\",\"required\":\"\",\"placeholder\":\"Enter email\",\"disabled\":_vm.getEmailInputDisabled()},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('prd-translate-text',{staticClass:\"form-text text-muted\",attrs:{\"translate-key\":\"EMAIL_DESCRIPTION\",\"translate-group\":\"REGISTER\"}})],1),_c('b-form-group',{attrs:{\"id\":\"passwordGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"PASSWORD\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"passwordRegisterInput\",\"type\":\"password\",\"required\":\"\",\"placeholder\":\"Something incredibly unlogical\"},model:{value:(_vm.model.password),callback:function ($$v) {_vm.$set(_vm.model, \"password\", $$v)},expression:\"model.password\"}}),_c('prd-translate-text',{staticClass:\"form-text text-muted\",attrs:{\"translate-key\":\"PASSWORD_DESCRIPTION\",\"translate-group\":\"REGISTER\"}})],1),_c('b-form-group',{attrs:{\"id\":\"passwordRepeatGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"REAPEAT_PASSWORD\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"passwordRepeatInput\",\"type\":\"password\",\"required\":\"\",\"placeholder\":\"Something incredibly unlogical, again\"},model:{value:(_vm.model.password),callback:function ($$v) {_vm.$set(_vm.model, \"password\", $$v)},expression:\"model.password\"}}),_c('prd-translate-text',{staticClass:\"form-text text-muted\",attrs:{\"translate-key\":\"REPEAT_PASSWORD_DESCRIPTION\",\"translate-group\":\"REGISTER\"}})],1),_vm._t(\"extra-fields\"),_c('div',{staticClass:\"sign-in-link-holder text-center d-block w-100 mt-5\",attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('REGISTER.BUTTON'),expression:\"'REGISTER.BUTTON'\"}],staticClass:\"btn btn-lg btn-primary w-100 d-block\",attrs:{\"type\":\"submit\",\"variant\":\"primary\"}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\nimport Register from '../../models/Register';\r\nimport { teamService } from '@/main';\r\nimport { Membership } from '../../models/Interfaces';\r\n\r\n@Component\r\nexport default class RegisterComponent extends Vue {\r\n public model: Register = new Register();\r\n\r\n @Prop() public email: string = undefined;\r\n @Prop() public isInvite: boolean;\r\n @Prop() public needsAccount: boolean;\r\n @Prop() public team: string;\r\n @Prop() public ecosystem: string;\r\n @Prop() public hijackPost: boolean;\r\n\r\n public getEmail() {\r\n return this.email;\r\n }\r\n public getEmailInputDisabled() {\r\n return this.email !== undefined && this.isInvite;\r\n }\r\n\r\n public created() {\r\n if (this.email !== undefined) {\r\n this.model.person.emailAddress = this.getEmail();\r\n }\r\n }\r\n\r\n public onSubmit(evt: any) {\r\n evt.preventDefault();\r\n this.register();\r\n }\r\n\r\n public register(): void {\r\n const self = this;\r\n\r\n self.model.emailAddress = this.getEmail();\r\n self.model.person.emailAddress = this.getEmail();\r\n self.model.needsAccount = this.needsAccount;\r\n self.model.person.teamMemberships.push({ key: this.team } as Membership);\r\n\r\n if (this.hijackPost) {\r\n self.$emit('hijackPostEvent', self.model);\r\n return;\r\n }\r\n\r\n teamService\r\n .acceptInvite(1, '', self.model)\r\n .then((response: any) => {\r\n self.$emit('registerOnSuccessEvent', response);\r\n })\r\n .catch((error) => {\r\n self.$emit('registerOnFailEvent', error);\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./register.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./register.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./register.vue?vue&type=template&id=128cf461&\"\nimport script from \"./register.ts?vue&type=script&lang=js&\"\nexport * from \"./register.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('spinner'):_c('div',[_vm._l((_vm.connectors),function(connector,index){return [_c('h6',[_vm._v(\"Is \"+_vm._s(_vm.group.name)+\" a \"+_vm._s(connector.name)+\" group?\")]),_c('p',{staticClass:\"mw-600\",domProps:{\"innerHTML\":_vm._s(connector.description)}}),_c('form',{staticClass:\"d-block mw-600\"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"switch\":\"\",\"id\":\"'distributeIncome_' + index\",\"disabled\":connector.selected},model:{value:(connector.selected),callback:function ($$v) {_vm.$set(connector, \"selected\", $$v)},expression:\"connector.selected\"}},[_vm._v(\" Is \"+_vm._s(connector.name)+\" group \")])],1)],1),_c('hr')]}),_c('div',{staticClass:\"btn-group mt-3\"},[_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"action\":_vm.saveConnectors,\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() ||\n (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee() && !_vm.$root.roleHelper.isGroupLead(_vm.group)),\"translate-key\":\"SAVE_SETTINGS\"}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport Connector from '@/models/Connectors/Connector';\r\nimport PageRender from '@/models/PageRender';\r\nimport Group from '@/models/Group';\r\nimport { groupHelper } from '@/main';\r\n\r\n@Component\r\nexport default class ConnectorsGroupComponent extends PageRender {\r\n @Prop({ default: () => [] }) public connectors: Connector[];\r\n @Prop({ default: () => new Group() }) public group: Group;\r\n\r\n public mounted() {\r\n for (const connector of this.connectors) {\r\n connector.selected = this.group.connectors.filter((x) => x.connectorId === connector.connectorId).length > 0;\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async saveConnectors() {\r\n this.showPending('GROUP_CONNECTORS');\r\n\r\n this.group.connectors = this.connectors.filter((x) => x.selected);\r\n\r\n const group = await groupHelper.createOrUpdateGroup(this.group);\r\n if (!group || group.groupId === 0) {\r\n return this.showFailedResponse('GROUP_CONNECTORS_FAILED');\r\n }\r\n\r\n this.clearAndShowSuccess('GROUP_CONNECTORS_SUCCESS');\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./connectors.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./connectors.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./connectors.vue?vue&type=template&id=548d16a0&\"\nimport script from \"./connectors.ts?vue&type=script&lang=js&\"\nexport * from \"./connectors.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{ref:\"td\",staticClass:\"cursor-pointer bg-white k-grid-content-sticky\"},[_c('number-formatter',{attrs:{\"value\":_vm.invoice.invoice.amount,\"render-td\":false}}),_c('span',{staticClass:\"ml-2 k-icon k-i-info cursor-pointer\",attrs:{\"id\":\"externalrate\"},on:{\"mouseenter\":_vm.delayHover,\"mouseleave\":_vm.resetTimer}}),_c('kendo-popup',{attrs:{\"anchor\":'td',\"show\":_vm.show,\"popup-class\":\"popup-content\",\"anchor-align\":_vm.anchorAlign(),\"popup-align\":_vm.popupAlign(),\"animate\":false,\"collision\":_vm.collision},nativeOn:{\"mouseleave\":function($event){_vm.show = false}}},[(_vm.loadingTree)?_c('div',{staticClass:\"text-center\"},[_c('spinner',{staticClass:\"mt-5 mx-auto\",attrs:{\"color\":\"white\"}}),_c('h2',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ALERT_MESSAGES.LOADING_DISTRIBUTIONS'),expression:\"'ALERT_MESSAGES.LOADING_DISTRIBUTIONS'\"}],staticClass:\"mb-4\"})],1):[_c('h4',{staticClass:\"mt-4 ml-4\"},[_vm._v(\"Invoice amount: \"+_vm._s(_vm.getInvoiceAmount()))]),(_vm.treeData.children.length === 0 && !_vm.notAvailable)?_c('p',{staticClass:\"mb-4 mt-2 ml-4\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LOADING_DISTRIBUTIONS_EMPTY\",\"translate-group\":\"ALERT_MESSAGES\"}})],1):(_vm.notAvailable)?_c('p',{staticClass:\"mb-4 mt-2 ml-4\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LOADING_DISTRIBUTIONS_FAILED\",\"translate-group\":\"ALERT_MESSAGES\"}})],1):_c('tree-chart',{key:_vm.update,staticClass:\"tree w-100\",style:(_vm.getHeight()),attrs:{\"data\":_vm.treeData,\"node-text\":\"name\",\"radius\":_vm.radius,\"strokeWidth\":3,\"margin-x\":_vm.marginX,\"nodeTextMargin\":_vm.nodeTextMargin,\"leafTextMargin\":_vm.leafTextMargin}})]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\nimport { teamHelper, financeService, eventBus } from '@/main';\r\nimport to from 'await-to-js';\r\nimport { mixin as clickaway } from 'vue-clickaway';\r\nimport Group from '@/models/Group';\r\nimport DistributedInvoice from '@/models/DistributedInvoice';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport { AccountType } from '@/models/AccountType';\r\n\r\n@Component({\r\n mixins: [clickaway],\r\n})\r\nexport default class DistributionTreeAmount extends Vue {\r\n @Prop({ default: () => new DistributedInvoice() }) public invoice: DistributedInvoice;\r\n @Prop({ default: () => new Group() }) public group: Group;\r\n\r\n public show: boolean = false;\r\n public hovering: boolean = false;\r\n public loadingTree: boolean = true;\r\n public update: number = 0;\r\n public notAvailable: boolean = false;\r\n\r\n public marginX: number = 20;\r\n public nodeTextMargin: number = 20;\r\n public radius: number = 8;\r\n public strokeWidth: number = 6;\r\n public leafTextMargin: number = 20;\r\n\r\n public timer: any = null;\r\n\r\n public collision: any = {\r\n horizontal: 'fit',\r\n vertical: 'flip',\r\n };\r\n\r\n public get _group(){\r\n return this.group;\r\n }\r\n\r\n public treeData: any = {\r\n name: this._group && this._group.groupId !== 0 ? this._group.name : teamHelper.currentTeamId,\r\n children: [],\r\n };\r\n\r\n public created() {\r\n eventBus.$on('close-others', this.close);\r\n }\r\n\r\n public async populateNode(node) {\r\n node.children = [];\r\n\r\n const groupId = node.groupId;\r\n let invoice = null;\r\n if (node.account.accountType === AccountType.GroupIncome) {\r\n const [err, response] = await to(financeService.getInvoice(this.invoice.invoice.invoiceId, groupId));\r\n if (err) {\r\n return;\r\n }\r\n invoice = response.data;\r\n } else if (\r\n node.account.accountType === AccountType.GroupSavings ||\r\n (node.account.accountType === AccountType.Person && this.invoice.invoice.invoiceType !== InvoiceType.Expenses)\r\n ) {\r\n const [err, response] = await to(\r\n financeService.getInvoiceDetails(\r\n this.invoice.invoice.invoiceId,\r\n this.group && this.group.groupId !== 0 ? this.group.groupId : groupId,\r\n node.account.accountId,\r\n ),\r\n );\r\n if (err) {\r\n return;\r\n }\r\n invoice = response.data;\r\n }\r\n\r\n if (!invoice) {\r\n return;\r\n }\r\n\r\n for (const distribution of invoice.distributions) {\r\n if (distribution.amount !== 0 && distribution.account && distribution.account.accountId) {\r\n node.children.push({\r\n name: `${distribution.amount} - ${distribution.account.name}`,\r\n children: [],\r\n groupId,\r\n account: distribution.account,\r\n });\r\n }\r\n }\r\n\r\n if (node.account.accountType === AccountType.GroupSavings || node.account.accountType === AccountType.Person) {\r\n return;\r\n }\r\n\r\n for (const child of node.children) {\r\n await this.populateNode(child);\r\n }\r\n }\r\n\r\n public close() {\r\n this.show = false;\r\n }\r\n\r\n public resetTimer() {\r\n clearTimeout(this.timer);\r\n }\r\n\r\n public delayHover() {\r\n clearTimeout(this.timer);\r\n\r\n this.timer = setTimeout(() => {\r\n // tslint:disable-next-line: no-floating-promises\r\n this.showPopup();\r\n }, 333);\r\n }\r\n\r\n public async showPopup() {\r\n this.loadingTree = true;\r\n eventBus.$emit('close-others');\r\n this.show = true;\r\n this.treeData.children = [];\r\n this.notAvailable = false;\r\n\r\n let invoice = null;\r\n\r\n if (this.group && this.group.groupId > 0) {\r\n invoice = this.invoice;\r\n } else {\r\n const [err, response] = await to(financeService.getInvoice(this.invoice.invoice.invoiceId, this.invoice.invoice.group));\r\n if (err) {\r\n return;\r\n }\r\n\r\n invoice = response.data;\r\n }\r\n\r\n for (const distribution of invoice.distributions) {\r\n if (distribution.amount !== 0 && distribution.account && distribution.account.accountId) {\r\n this.treeData.children.push({\r\n name: `${distribution.amount} - ${distribution.account.name}`,\r\n children: [],\r\n groupId: distribution.account.relatedEntityId,\r\n account: distribution.account,\r\n });\r\n }\r\n }\r\n\r\n const promises = [];\r\n for (const node of this.treeData.children) {\r\n promises.push(this.populateNode(node));\r\n }\r\n\r\n await Promise.all(promises);\r\n\r\n this.loadingTree = false;\r\n this.update++;\r\n }\r\n\r\n public anchorAlign() {\r\n return {\r\n horizontal: 'left',\r\n vertical: 'top',\r\n };\r\n }\r\n\r\n public popupAlign() {\r\n return {\r\n horizontal: 'left',\r\n vertical: 'top',\r\n };\r\n }\r\n\r\n public getHeight() {\r\n let totalGrandChildrend = 0;\r\n for (const node of this.treeData.children) {\r\n totalGrandChildrend += node.children.length;\r\n }\r\n\r\n const test = {\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n height: `${100 + 40 * this.treeData.children.length + totalGrandChildrend * 40}px`,\r\n 'min-width': `${this.getDepth(this.treeData) * 150 + 100}px`,\r\n // width: this.getDepth(this.treeData) * 200,\r\n };\r\n\r\n return test;\r\n }\r\n\r\n public getDepth(obj) {\r\n let depth = 0;\r\n if (obj.children) {\r\n obj.children.forEach((d) => {\r\n const tmpDepth = this.getDepth(d);\r\n if (tmpDepth > depth) {\r\n depth = tmpDepth;\r\n }\r\n });\r\n }\r\n return 1 + depth;\r\n }\r\n\r\n public getInvoiceAmount() {\r\n return Vue.filter('number-format')(this.invoice.invoice.amount);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./distribution-tree-amount.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./distribution-tree-amount.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./distribution-tree-amount.vue?vue&type=template&id=4bfc5364&\"\nimport script from \"./distribution-tree-amount.ts?vue&type=script&lang=js&\"\nexport * from \"./distribution-tree-amount.ts?vue&type=script&lang=js&\"\nimport style0 from \"./distribution-tree-amount.vue?vue&type=style&index=0&id=4bfc5364&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.renderTd)?_c('td',{class:_vm.classNames,domProps:{\"innerHTML\":_vm._s(_vm.getFormattedValue())}}):_c('span',{class:_vm.classNames,domProps:{\"innerHTML\":_vm._s(_vm.getFormattedValue())}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\n\r\n@Component\r\nexport default class NumberFormatter extends Vue {\r\n @Prop({ default: null }) public value: any;\r\n @Prop({ default: '' }) public classNames: string;\r\n @Prop({ default: true }) public renderTd: boolean;\r\n\r\n public getFormattedValue() {\r\n return Vue.filter('number-format')(this.value);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./number-formatter.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./number-formatter.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./number-formatter.vue?vue&type=template&id=7b41ebfe&\"\nimport script from \"./number-formatter.ts?vue&type=script&lang=js&\"\nexport * from \"./number-formatter.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-input-group',[_c('b-input-group-prepend',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],attrs:{\"title\":_vm._f(\"translate\")('SEARCH')}},[_c('b-input-group-text',[_c('i',{staticClass:\"icon-search\"})])],1),_c('b-input',{directives:[{name:\"translate-placeholder\",rawName:\"v-translate-placeholder\",value:('PLACEHOLDER_ANYTHING_YOU_LIKE'),expression:\"'PLACEHOLDER_ANYTHING_YOU_LIKE'\"}],attrs:{\"size\":\"sm\",\"id\":\"free-seach\"},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport Vue from 'vue';\r\nimport { Prop, Watch } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class GenericSearch extends Vue {\r\n @Prop({ default: () => [] }) public dataItems: any[];\r\n @Prop({ default: () => [] }) public properties: string[];\r\n\r\n private query: string = '';\r\n private timeout: any;\r\n\r\n get searchTerm() {\r\n return this.query;\r\n }\r\n\r\n @Watch('query')\r\n public OnQueryChange(val) {\r\n if (val) {\r\n clearTimeout(this.timeout);\r\n\r\n this.timeout = setTimeout(() => {\r\n const dataItems = this.filterDataItems();\r\n this.$emit('finished-search', dataItems);\r\n }, 300);\r\n }\r\n }\r\n\r\n public filterDataItems() {\r\n return this.dataItems.filter((item) => {\r\n for (const property of this.properties) {\r\n if (this.containsVal(item, property)) {\r\n return true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public containsVal(object, key): boolean {\r\n let value = '';\r\n return Object.keys(object).some((k) => {\r\n if (k === key) {\r\n value = object[k];\r\n return (\r\n value\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(this.query.toLowerCase()) > -1\r\n );\r\n }\r\n if (object[k] && typeof object[k] === 'object') {\r\n return this.containsVal(object[k], key);\r\n }\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./generic-search.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./generic-search.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./generic-search.vue?vue&type=template&id=42bf96f5&\"\nimport script from \"./generic-search.ts?vue&type=script&lang=js&\"\nexport * from \"./generic-search.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.editMode)?_c('div',{staticClass:\"prd-map-settings\"},[_c('h2',[_c('prd-translate-text',{attrs:{\"translate-key\":\"SETUP\",\"translate-group\":\"MAP\"}})],1),_c('div',{staticClass:\"prd-map-entities\"},_vm._l((_vm.graphData.vertices),function(vertex,index){return _c('div',{key:'e' + index,staticClass:\"prd-map-entity col-2 pl-0\"},[_c('h4',{staticClass:\"prd-entity-title\"},[_vm._v(_vm._s(vertex.name))]),_c('div',{staticClass:\"prd-group\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"POSITION_LAT\",\"translate-group\":\"MAP\"}}),_c('b-form-input',{attrs:{\"type\":\"text\"},model:{value:(vertex.x),callback:function ($$v) {_vm.$set(vertex, \"x\", $$v)},expression:\"vertex.x\"}})],1),_c('div',{staticClass:\"prd-group\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"POSITION_LNG\",\"translate-group\":\"MAP\"}}),_c('b-form-input',{attrs:{\"type\":\"text\"},model:{value:(vertex.y),callback:function ($$v) {_vm.$set(vertex, \"y\", $$v)},expression:\"vertex.y\"}})],1),_c('div',{staticClass:\"prd-group\"},[_c('label',[_c('prd-translate-text',{attrs:{\"translate-key\":\"RADIUS\",\"translate-group\":\"MAP\"}}),_vm._v(\" (\"+_vm._s(vertex.radius)+\") \")],1),_c('b-form-input',{attrs:{\"type\":\"range\",\"min\":\"1\",\"max\":\"150\"},nativeOn:{\"change\":function($event){return _vm.updateSettings(vertex)}},model:{value:(vertex.radius),callback:function ($$v) {_vm.$set(vertex, \"radius\", $$v)},expression:\"vertex.radius\"}})],1)])}),0)]):_vm._e(),_c('div',[_c('div',{staticClass:\"position-relative\",attrs:{\"id\":\"graph\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"card position-absolute mt-2 ml-2\"},[_c('h5',{staticClass:\"card-title\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TRANSFER\",\"translate-group\":\"MAP\"}})],1),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.content)}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTotals && (_vm.outgoingEdges.length > 0 || _vm.outgoingEdges.length > 0)),expression:\"showTotals && (outgoingEdges.length > 0 || outgoingEdges.length > 0)\"}],staticClass:\"card position-absolute mt-2 ml-2\"},[_c('h5',{staticClass:\"card-title mb-1\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"OUTGOING\",\"translate-group\":\"MAP\"}})],1),_c('ul',{staticClass:\"list-unstyled\"},_vm._l((_vm.outgoingEdges),function(edge){return _c('li',{domProps:{\"innerHTML\":_vm._s(edge)}})}),0),_c('h5',{staticClass:\"card-title mb-1\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"INCOMING\",\"translate-group\":\"MAP\"}})],1),_c('ul',{staticClass:\"list-unstyled\"},_vm._l((_vm.incomingEdges),function(edge){return _c('li',{domProps:{\"innerHTML\":_vm._s(edge)}})}),0)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport GraphData from '@/models/Graph/GraphData';\r\nimport { eventBus } from '@/main';\r\n// @ts-ignore\r\nimport { SVG, Svg } from '@svgdotjs/svg.js';\r\n// @ts-ignore\r\nimport '@svgdotjs/svg.draggable.js';\r\n// @ts-ignore\r\nimport svgPanZoom from 'svg-pan-zoom';\r\n\r\n@Component\r\nexport default class SVGMapComponent extends Vue {\r\n // tslint:disable: restrict-plus-operands\r\n @Prop({ default: () => new GraphData() }) public graphData: GraphData;\r\n @Prop({ default: () => false }) public editMode: boolean;\r\n\r\n public show: boolean = false;\r\n public showTotals: boolean = false;\r\n public incomingEdges: any[] = [];\r\n public outgoingEdges: any[] = [];\r\n public target: string = 'graph';\r\n public content: string = '';\r\n\r\n private canvas: Svg = null;\r\n\r\n public mounted() {\r\n this.canvas = SVG()\r\n .addTo('#graph')\r\n .size(this.calculateGraphWidth(), this.calculateGraphHeight())\r\n .attr('id', 'svg-container')\r\n .addClass('svg-container');\r\n\r\n this.$nextTick(() => {\r\n this.doDraw();\r\n });\r\n\r\n eventBus.$on('redraw', this.doDraw);\r\n }\r\n\r\n public doDraw() {\r\n for (let i = 0; i < this.graphData.vertices.length; i++) {\r\n const vertex = this.graphData.vertices[i];\r\n\r\n if (this.graphData.vertexPaths[vertex.id] == null) {\r\n const group = this.canvas.group();\r\n const vertexCircle = this.canvas.circle(vertex.radius).fill('#0f0');\r\n vertexCircle.attr({ cx: vertex.x, cy: vertex.y, opacity: '0.2' });\r\n vertexCircle.attr('class', 'cursor-pointer');\r\n\r\n if (vertex.icon) {\r\n const img = this.canvas.image(vertex.icon);\r\n img.size(vertex.radius, vertex.radius);\r\n img.attr({ cx: vertex.x, cy: vertex.y });\r\n vertexCircle.attr({fill: img});\r\n }\r\n\r\n const text = this.canvas.text(vertex.name);\r\n const textBbox = text.bbox();\r\n text.move(vertex.x - textBbox.width / 2, vertex.y - textBbox.height - vertex.radius / 2);\r\n\r\n group.add(vertexCircle);\r\n group.add(text);\r\n\r\n group.draggable();\r\n\r\n group.on('dragmove.namespace' + i, () => {\r\n vertex.x = vertexCircle.attr('cx');\r\n vertex.y = vertexCircle.attr('cy');\r\n\r\n for (let j = 0; j < this.graphData.edges.length; j++) {\r\n const edge = this.graphData.edges[j];\r\n this.drawEdge(edge);\r\n }\r\n });\r\n\r\n vertexCircle.on('mouseover', () => {\r\n this.hideEdges(vertex);\r\n this.showVertexTotals();\r\n });\r\n\r\n vertexCircle.on('mouseout', () => {\r\n this.showAllEdges();\r\n this.showTotals = false;\r\n });\r\n\r\n if (vertex.onclick) {\r\n vertexCircle.on('click', vertex.onclick);\r\n }\r\n\r\n this.graphData.vertexPaths[vertex.id] = vertexCircle;\r\n } else {\r\n const vertexPath = this.graphData.vertexPaths[vertex.id];\r\n vertexPath.radius(vertex.radius / 2);\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.graphData.edges.length; i++) {\r\n const edge = this.graphData.edges[i];\r\n this.drawEdge(edge);\r\n }\r\n\r\n svgPanZoom('#svg-container', {\r\n panEnabled: true,\r\n controlIconsEnabled: true,\r\n });\r\n }\r\n\r\n public drawEdge(edge) {\r\n const startx = edge.v1.x;\r\n const starty = edge.v1.y - edge.v1.radius / 3;\r\n\r\n const endx = edge.v2.x;\r\n const endy = edge.v2.y + edge.v2.radius / 3;\r\n\r\n const mpx = (startx + endx) * 0.5;\r\n const mpy = (starty + endy) * 0.5;\r\n\r\n // angle of perpendicular to line:\r\n const theta = Math.atan2(endy - starty, endx - startx) - Math.PI / 2;\r\n\r\n // distance of control point from mid-point of line:\r\n const offset = 30; // random(20, 50);\r\n\r\n // location of control point:\r\n const c1x = mpx + offset * Math.cos(theta);\r\n const c1y = mpy + offset * Math.sin(theta);\r\n\r\n if (this.graphData.edgePaths[edge.edge] == null) {\r\n const path = this.canvas.path(`M${startx} ${starty} Q${c1x} ${c1y} ${endx} ${endy}`);\r\n path.stroke({ color: 'rgba(0,0,0,0.3)', width: 5, linecap: 'round' })\r\n .attr({ fill: 'transparent' })\r\n .attr('id', 'edge-' + edge.edge)\r\n .attr('class', 'cursor-pointer');\r\n\r\n path.on('mouseover', () => {\r\n this.target = 'edge-' + edge.edge;\r\n this.content = `${edge.v2.name} to ${edge.v1.name} | ${edge.weight}`;\r\n this.$nextTick(() => {\r\n this.show = true;\r\n });\r\n path.stroke({ color: `rgba(0,128,0,0.3)` });\r\n });\r\n\r\n path.on('mouseout', () => {\r\n this.show = false;\r\n path.stroke({ color: 'rgba(0,0,0,0.3)' });\r\n });\r\n\r\n this.graphData.edgePaths[edge.edge] = path;\r\n } else {\r\n this.graphData.edgePaths[edge.edge].plot(`M${startx} ${starty} Q${c1x} ${c1y} ${endx} ${endy}`);\r\n }\r\n }\r\n\r\n public hideEdges(vertex) {\r\n this.outgoingEdges = [];\r\n this.incomingEdges = [];\r\n for (let i = 0; i < this.graphData.edges.length; i++) {\r\n const edge = this.graphData.edges[i];\r\n if (edge.v1 !== vertex && edge.v2 !== vertex) {\r\n this.hideEdge(edge);\r\n } else {\r\n this.colorEdge(edge, edge.v1 === vertex);\r\n if (edge.v1 === vertex) {\r\n this.incomingEdges.push(`${edge.v2.name} to ${edge.v1.name} | ${edge.weight}`);\r\n } else {\r\n this.outgoingEdges.push(`${edge.v2.name} to ${edge.v1.name} | ${edge.weight}`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public colorEdge(edge, isPositive: boolean = true) {\r\n const path = this.graphData.edgePaths[edge.edge];\r\n path.stroke({ color: `rgba(${isPositive ? '0' : 255},${isPositive ? '128' : 0},0,0.3)` });\r\n }\r\n\r\n public hideEdge(edge) {\r\n const path = this.graphData.edgePaths[edge.edge];\r\n path.stroke({ color: 'rgba(0,0,0,0)' });\r\n }\r\n\r\n public showVertexTotals() {\r\n this.showTotals = true;\r\n }\r\n\r\n public showAllEdges() {\r\n for (let i = 0; i < this.graphData.edges.length; i++) {\r\n const edge = this.graphData.edges[i];\r\n const path = this.graphData.edgePaths[edge.edge];\r\n path.stroke({ color: 'rgba(0,0,0,0.3)' });\r\n }\r\n }\r\n\r\n public updateSettings(vertex) {\r\n this.$emit('settingsUpdated', vertex);\r\n }\r\n\r\n private calculateGraphHeight() {\r\n return window.innerHeight - 200;\r\n }\r\n\r\n private calculateGraphWidth() {\r\n return window.innerWidth - 350;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./svg-graph.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./svg-graph.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./svg-graph.vue?vue&type=template&id=a5a817ba&\"\nimport script from \"./svg-graph.ts?vue&type=script&lang=js&\"\nexport * from \"./svg-graph.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('kendo-dropdownlist',{staticClass:\"actions-toggle\",class:'toggle-dropdown-' + _vm.propOrientation,attrs:{\"data-items\":_vm.actions,\"auto-width\":true,\"value-render\":_vm.valueRender,\"item-render\":_vm.itemRender,\"popupSettings\":{ width: 'auto', className: 'px-5' }},on:{\"open\":_vm.onSelect,\"close\":_vm.onClose},scopedSlots:_vm._u([{key:\"valueTemplate\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('span',{staticClass:\"px-2 py-2\",class:'icon-more-' + _vm.propOrientation,on:{\"click\":function($event){}}})]}},{key:\"itemTemplate\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('div',{staticClass:\"p-2 k-item cursor-pointer\",class:props.dataItem.disabled ? 'k-state-disabled' : '',on:{\"click\":function($event){return _vm.onSelect(props)}}},[_c('span',{staticClass:\"px-2\"},[_vm._v(_vm._s(props.dataItem.title.toString()))])])]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport VueRouter from 'vue-router';\r\n\r\n@Component\r\nexport default class GridActiosComponent extends Vue {\r\n public text: string = '';\r\n public url: string = '';\r\n\r\n @Prop() public item: any;\r\n @Prop() public actions: any[];\r\n @Prop() public orientation: any;\r\n\r\n public propItem: any = {};\r\n public propActions = [];\r\n public propOrientation = 'horizontal';\r\n public valueRender = 'valueTemplate';\r\n public itemRender = 'itemTemplate';\r\n private router: VueRouter = {} as VueRouter;\r\n\r\n public mounted() {\r\n if (this.orientation) {\r\n this.propOrientation = this.orientation;\r\n }\r\n }\r\n\r\n public async goToUrl() {\r\n await this.router.push(this.url);\r\n }\r\n\r\n public onSelect(e) {\r\n if (e && e.event) {\r\n e.event.preventDefault();\r\n e.event.stopPropagation();\r\n }\r\n\r\n if (e && e.dataItem && !e.dataItem.disabled) {\r\n e.dataItem.function(this.item);\r\n }\r\n }\r\n\r\n public onClose(e) {\r\n e.event.preventDefault();\r\n e.event.stopPropagation();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-actions.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-actions.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-actions.vue?vue&type=template&id=0f8cfc7a&\"\nimport script from \"./grid-actions.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-actions.ts?vue&type=script&lang=js&\"\nimport style0 from \"./grid-actions.vue?vue&type=style&index=0&id=0f8cfc7a&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"k-filtercell\"},[_c('div',{staticClass:\"k-filtercell-wrapper\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],staticClass:\"k-textbox\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.value=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.change]}},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:(_vm.GRID.AMOUNT_ALL),expression:\"GRID.AMOUNT_ALL\"}],attrs:{\"value\":\"\"}}),_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:(_vm.GRID.AMOUNT_FULLY_DISTRIBUTED),expression:\"GRID.AMOUNT_FULLY_DISTRIBUTED\"}],attrs:{\"value\":\"eq\"}}),_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:(_vm.GRID.AMOUNT_NOT_YET_DISTRIBUTED),expression:\"GRID.AMOUNT_NOT_YET_DISTRIBUTED\"}],attrs:{\"value\":\"neq\"}})]),_vm._m(0)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"k-filtercell-operator\"},[_c('button',{staticClass:\"k-button k-button-icon\",attrs:{\"title\":\"Clear\",\"type\":\"button\"}},[_c('span',{staticClass:\"k-icon k-i-filter-clear\"})])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class GridAmountLeftFilterComponent extends Vue {\r\n public value: string = '';\r\n\r\n public change(ev) {\r\n if (!this.value) {\r\n this.reset(ev);\r\n return;\r\n }\r\n\r\n this.$emit('change', { operator: this.value, field: 'amountLeftFilter', value: 0, syntheticEvent: ev });\r\n }\r\n\r\n public reset(ev) {\r\n this.$emit('change', { operator: '', field: '', value: '', syntheticEvent: ev });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-amount-left-filter.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-amount-left-filter.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-amount-left-filter.vue?vue&type=template&id=21d18a99&\"\nimport script from \"./grid-amount-left-filter.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-amount-left-filter.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{domProps:{\"innerHTML\":_vm._s(_vm.getValue())}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class GridGroupFilterComponent extends Vue {\r\n @Prop({ default: '' }) public value: string;\r\n\r\n public getValue() {\r\n return this.value;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-html-renderer.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-html-renderer.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-html-renderer.vue?vue&type=template&id=037f82cc&\"\nimport script from \"./grid-html-renderer.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-html-renderer.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.object && _vm.object.label && _vm.object.value)?_c('div',[_vm._v(\" \"+_vm._s(_vm.object.label)+\" - \"+_vm._s(_vm.object.value)+\" \")]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class LabelValueComponent extends Vue {\r\n @Prop({ default: null }) public object: any;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-label-value.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-label-value.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-label-value.vue?vue&type=template&id=ce2ffd74&\"\nimport script from \"./grid-label-value.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-label-value.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('kendo-dropdownlist',{staticClass:\"toggle-dropdown members-dropdown\",attrs:{\"data-items\":_vm.elements,\"auto-width\":true,\"value-render\":_vm.valueRender,\"item-render\":_vm.itemRender,\"popupSettings\":{ width: 'auto', className: 'px-2' }},on:{\"open\":_vm.onSelect,\"close\":_vm.onClose},scopedSlots:_vm._u([{key:\"valueTemplate\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('div',{staticClass:\"p-1\"},[_c('span',{staticClass:\"icon-box mr-1\"}),_vm._v(\" \"+_vm._s(_vm.elements.length))])]}},{key:\"itemTemplate\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('div',{staticClass:\"p-2 px-2\"},[_c('grid-label-value',{attrs:{\"object\":props.dataItem}})],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class GridListComponent extends Vue {\r\n @Prop({ default: () => [] }) public elements: any;\r\n\r\n public elementsItems: any[] = [];\r\n\r\n public valueRender = 'valueTemplate';\r\n public itemRender = 'itemTemplate';\r\n\r\n public mounted() {\r\n if (this.elements) {\r\n this.elementsItems = this.elements;\r\n }\r\n }\r\n\r\n public get dropdownMembers() {\r\n return this.elementsItems;\r\n }\r\n\r\n public memberDropdownButtonTemplate() {\r\n return `${this.elements.length}`;\r\n }\r\n\r\n public memberDropdownTemplate(item) {\r\n return {\r\n template: Vue.component('grid-label-value'),\r\n templateArgs: { object: item },\r\n };\r\n }\r\n\r\n public onSelect(e) {\r\n e.event.preventDefault();\r\n e.event.stopPropagation();\r\n }\r\n\r\n public onClose(e) {\r\n e.event.preventDefault();\r\n e.event.stopPropagation();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-list.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-list.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-list.vue?vue&type=template&id=b868e1c0&\"\nimport script from \"./grid-list.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-list.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.dataItem['inEdit'])?_c('td',{domProps:{\"innerHTML\":_vm._s(_vm.getFormattedAmount())}}):_c('td',[_c('prd-numeric-input',{staticClass:\"form-control form-control-sm\",attrs:{\"output-dec-seperator\":\",\"},on:{\"updated\":_vm.checkValue,\"keyup\":_vm.gottaSave},model:{value:(_vm.editingValue),callback:function ($$v) {_vm.editingValue=$$v},expression:\"editingValue\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { InvoiceType } from '@/models/InvoiceType';\r\nimport Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport PageRender from '../../models/PageRender';\r\n\r\n@Component\r\nexport default class GridNumericEditorComponent extends PageRender {\r\n @Prop({ default: () => null }) public dataItem: any;\r\n @Prop({ default: () => 0 }) public value: number;\r\n @Prop({ default: () => null }) public prop: string;\r\n @Prop({ default: false }) public isNegative: boolean;\r\n @Prop({ default: false }) public allowNegative: boolean;\r\n @Prop({ default: false }) public appendPercentage: boolean;\r\n\r\n private startValue: number = 0;\r\n private editingValue: number = 0;\r\n\r\n public mounted() {\r\n this.editingValue = this.startValue = this.value;\r\n }\r\n\r\n public getFormattedAmount() {\r\n return `${Vue.filter('number-format')(this.editingValue)}${this.appendPercentage ? '%' : ''}`;\r\n }\r\n\r\n public gottaSave(e) {\r\n if (e.keyCode === 13 && e.key === 'Enter') {\r\n if (!this.validValue()) {\r\n Vue.set(this, 'editingValue', this.startValue);\r\n return this.clearAndShowWarning('Invalid value');\r\n }\r\n this.$emit('saved', { dataItem: this.dataItem, value: this.editingValue, prop: this.prop });\r\n } else if (e.keyCode === 27 && e.key === 'Escape') {\r\n this.undoChange();\r\n }\r\n }\r\n\r\n public undoChange() {\r\n Vue.set(this, 'editingValue', this.startValue);\r\n Vue.set(this.dataItem, 'inEdit', false);\r\n }\r\n\r\n public checkValue() {\r\n if (!this.validValue()) {\r\n Vue.set(this, 'editingValue', this.startValue);\r\n return this.clearAndShowWarning('Invalid value');\r\n }\r\n\r\n this.$emit('changed', { dataItem: this.dataItem, value: this.editingValue, prop: this.prop });\r\n }\r\n\r\n public validValue() {\r\n if (this.dataItem.invoice && this.dataItem.invoice.invoiceType === InvoiceType.Expenses) {\r\n // its allowed to add positive or even negative amounts when its an expense\r\n return true;\r\n }\r\n\r\n return this.allowNegative || this.editingValue < 0 === this.isNegative || this.editingValue === 0;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-numeric-editor.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-numeric-editor.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-numeric-editor.vue?vue&type=template&id=7e0359ee&\"\nimport script from \"./grid-numeric-editor.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-numeric-editor.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[(_vm.action)?_c('span',{staticClass:\"btn-action-link\",on:{\"click\":_vm.action}},[(_vm.text)?[_c('b-button',{attrs:{\"size\":\"sm\"}},[_vm._v(_vm._s(_vm.text))])]:[_vm._v(\" \"+_vm._s(_vm.value)),(_vm.showPercentage)?_c('span',[_vm._v(\"%\")]):_vm._e()]],2):_c('span',[(_vm.text)?[_vm._v(\" \"+_vm._s(_vm.text)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.value)),(_vm.showPercentage)?_c('span',[_vm._v(\"%\")]):_vm._e()]],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class GridPercentageComponent extends Vue {\r\n @Prop({ default: 0 }) public value: number;\r\n @Prop({ default: () => null }) public action: any;\r\n @Prop({ default: true }) public showPercentage: boolean;\r\n @Prop({ default: null }) public text: string;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-percentage.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-percentage.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-percentage.vue?vue&type=template&id=9f0e210e&\"\nimport script from \"./grid-percentage.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-percentage.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"period-range-filter\"},[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"FROM_MONTH\"}}),_c('date-picker',{attrs:{\"type\":\"month\",\"format\":\"YYYY-MM\",\"valueType\":\"format\",\"id\":\"month-filter1\",\"disabled-date\":_vm.notAfterOrBeforeDate},model:{value:(_vm.fromFilterMonth),callback:function ($$v) {_vm.fromFilterMonth=$$v},expression:\"fromFilterMonth\"}}),_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"TO_MONTH\"}}),_c('date-picker',{attrs:{\"type\":\"month\",\"format\":\"YYYY-MM\",\"valueType\":\"format\",\"id\":\"month-filter2\",\"disabled-date\":_vm.notAfterOrBeforeDate},model:{value:(_vm.toFilterMonth),callback:function ($$v) {_vm.toFilterMonth=$$v},expression:\"toFilterMonth\"}}),(!_vm.hideRefresh)?_c('b-button',{attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":_vm.reload}},[_c('span',{staticClass:\"icon-rotate-cw\"})]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import moment from 'moment';\r\nimport PageRender from '@/models/PageRender';\r\nimport Component from 'vue-class-component';\r\nimport { Prop, Watch } from 'vue-property-decorator';\r\nimport { filtersModule } from '@/store/modules/filters';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport PeriodRange from '@/models/PeriodRange';\r\n\r\n@Component\r\nexport default class GridPeriodRangeFilterComponent extends PageRender {\r\n @Prop({ type: Boolean, default: false }) public hideRefresh: boolean;\r\n public disabledDates: any = { to: null, from: null };\r\n public fromFilterMonth: string = null;\r\n public toFilterMonth: string = null;\r\n\r\n @Watch('toFilterMonth')\r\n public async OnToFilterMonthChange(val, oldVal) {\r\n if (val != null && oldVal != null) {\r\n filtersModule.setEndMonth(this.toFilterMonth);\r\n this.onInput();\r\n }\r\n }\r\n\r\n @Watch('fromFilterMonth')\r\n public async OnFromFilterMonthChange(val, oldVal) {\r\n if (val != null && oldVal != null) {\r\n filtersModule.setStartMonth(this.fromFilterMonth);\r\n\r\n const startDate = moment(this.fromFilterMonth, 'YYYY-MM');\r\n const endDate = moment(this.toFilterMonth, 'YYYY-MM');\r\n if (startDate.isAfter(endDate)) {\r\n this.toFilterMonth = this.fromFilterMonth;\r\n filtersModule.setEndMonth(this.fromFilterMonth);\r\n }\r\n this.onInput();\r\n }\r\n }\r\n\r\n public mounted() {\r\n this.disabledDates.from = moment(periodModule.periods[0].startDate, 'YYYY-MM-DD')\r\n .add('month', 1)\r\n .toDate();\r\n this.disabledDates.to = moment(periodModule.periods[periodModule.periods.length - 1].startDate, 'YYYY-MM-DD').toDate();\r\n\r\n if (!this.$store.getters.hasMonths) {\r\n this.fromFilterMonth = this.toFilterMonth = periodModule.selectedPeriod;\r\n filtersModule.setStartMonth(this.fromFilterMonth);\r\n filtersModule.setEndMonth(this.toFilterMonth);\r\n } else {\r\n this.fromFilterMonth = this.$store.getters.startMonth;\r\n this.toFilterMonth = this.$store.getters.endMonth;\r\n }\r\n\r\n this.reload();\r\n }\r\n\r\n public notAfterOrBeforeDate(date: Date) {\r\n return date >= this.disabledDates.from || date < this.disabledDates.to;\r\n }\r\n\r\n public reload() {\r\n const period: PeriodRange = { toFilterMonth: this.toFilterMonth, fromFilterMonth: this.fromFilterMonth };\r\n this.$emit('filter-change', period);\r\n }\r\n\r\n public onInput() {\r\n const period: PeriodRange = { toFilterMonth: this.toFilterMonth, fromFilterMonth: this.fromFilterMonth };\r\n this.$emit('filter-input', period);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-period-range-filter.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-period-range-filter.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-period-range-filter.vue?vue&type=template&id=d1550614&\"\nimport script from \"./grid-period-range-filter.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-period-range-filter.ts?vue&type=script&lang=js&\"\nimport style0 from \"./grid-period-range-filter.vue?vue&type=style&index=0&id=d1550614&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{staticClass:\"bg-white k-grid-content-sticky\"},[_c('span',{directives:[{name:\"b-popover\",rawName:\"v-b-popover.hover\",value:(_vm.popoverConfig),expression:\"popoverConfig\",modifiers:{\"hover\":true}}],staticClass:\"cursor-pointer\",class:_vm.invoice.source == 'PartiallyDistribution' ? 'text-info' : ''},[_vm._v(_vm._s(_vm.invoice.name)+\" \"+_vm._s(_vm.showDescription ? ' - ' + _vm.invoice.description : ''))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { Invoice } from '../../models/Invoice';\r\nimport moment from 'moment';\r\nimport { roleHelper } from '@/main';\r\n@Component\r\nexport default class GridPopoverComponent extends Vue {\r\n @Prop({ default: () => new Invoice() }) public invoice: Invoice;\r\n @Prop({ default: 'grid' }) public grid;\r\n @Prop({ default: false }) public showDescription: boolean;\r\n\r\n public get popoverConfig() {\r\n return {\r\n html: true,\r\n title: this.invoice.name,\r\n content: this.getContent(),\r\n placement: 'topleft',\r\n boundary: 'viewport',\r\n };\r\n }\r\n\r\n public getContent(): string {\r\n let content = `\r\n
\r\n
Client
\r\n

${this.invoice.name}

\r\n\r\n
Description
\r\n

${this.invoice.description}

\r\n `;\r\n\r\n if (this.invoice.reference) {\r\n content += `\r\n
Reference
\r\n

${this.invoice.reference}

\r\n `;\r\n }\r\n\r\n content += `\r\n
Date
\r\n

${this.getDate()}

\r\n `;\r\n\r\n if (this.invoice.originalAmount && this.invoice.parent) {\r\n content +=\r\n `
Original amount
` +\r\n `

${Vue.filter('number-format')(this.invoice.originalAmount)}

`;\r\n }\r\n\r\n if (this.invoice.invoiceAmortization && this.invoice.invoiceAmortization.account) {\r\n content +=\r\n `
Amortization setting
` +\r\n `

Distributes automatically ${this.getAmortizationAmountFormat()} per period to ${\r\n this.invoice.invoiceAmortization.account.name\r\n }

`;\r\n }\r\n\r\n if (roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee()) {\r\n content +=\r\n `
Legal entity reference
` +\r\n `

${!this.invoice.legalEntityReferenceOrigin ? '-' : this.invoice.legalEntityReferenceOrigin}

`;\r\n }\r\n\r\n content += `
Invoice Id
` + `

${this.invoice.invoiceId}

` + '
';\r\n\r\n return content;\r\n }\r\n\r\n public getDate(): string {\r\n return moment(this.invoice.invoiceDate, 'YYYY-MM-DD').format('DD-MM-YYYY');\r\n }\r\n\r\n public getAmortizationAmountFormat() {\r\n if (this.invoice.invoiceAmortization.amortizationAmount) {\r\n return Vue.filter('number-format')(this.invoice.invoiceAmortization.amortizationAmount);\r\n }\r\n\r\n return '0';\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-popover-element.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-popover-element.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-popover-element.vue?vue&type=template&id=1670a9c7&\"\nimport script from \"./grid-popover-element.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-popover-element.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[(_vm.hasActiveSettings())?[_c('b-button',{attrs:{\"variant\":\"link\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.openSettingsModal()}}},[_vm._v(\"Settings\")])]:[_c('b-button',{attrs:{\"variant\":\"link\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.openSettingsModal()}}},[_vm._v(\"No settings yet \"),_c('span',{staticClass:\"k-icon k-i-warning text-warning\"})])],(!_vm.isLoading)?_c('relation-settings-modal',{ref:\"relationModal\",attrs:{\"from\":_vm.from,\"to\":_vm.to,\"entity-name\":\"TEST\",\"intellectual-property-limitations\":_vm.intellectualPropertyLimitations,\"tax-rates\":_vm.taxRates}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Relation, { IntellectualPropertyLimitation, TaxRate } from '@/models/Finance/Relation';\r\nimport Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport RelationSettingsModal from '../modals/relation-settings-modal';\r\n\r\n@Component\r\nexport default class GridRelationSettingsComponent extends Vue {\r\n @Prop({ default: () => null }) public relation: Relation;\r\n @Prop({ default: () => [] }) public intellectualPropertyLimitations: IntellectualPropertyLimitation[];\r\n @Prop({ default: () => [] }) public taxRates: TaxRate[];\r\n public isLoading: boolean = true;\r\n public $refs!: {\r\n relationModal: RelationSettingsModal;\r\n };\r\n\r\n public async mounted() {\r\n this.isLoading = false;\r\n }\r\n\r\n public get from() {\r\n return `${this.relation.originLegalEntityReference ? this.relation.originLegalEntityReference : ''} ${\r\n this.relation.originTeam ? '(team ' + this.relation.originTeam.name + ')' : ''\r\n } ${this.relation.originGroup ? '(group ' + this.relation.originGroup.name + ')' : ''}`;\r\n }\r\n\r\n public get to() {\r\n return `${this.relation.destinationLegalEntityReference ? this.relation.destinationLegalEntityReference : ''} ${\r\n this.relation.destinationTeam ? '(team ' + this.relation.destinationTeam.name + ')' : ''\r\n } ${this.relation.destinationGroup ? '(group ' + this.relation.destinationGroup.name + ')' : ''}`;\r\n }\r\n\r\n public hasActiveSettings() {\r\n return this.relation && this.relation.relationSettings.find((x) => x.current);\r\n }\r\n\r\n public openSettingsModal() {\r\n this.$refs.relationModal.setData(\r\n this.relation,\r\n this.relation.relationSettings.find((x) => x.current),\r\n );\r\n this.$refs.relationModal.show();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-relation-settings.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-relation-settings.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-relation-settings.vue?vue&type=template&id=2dfd092d&\"\nimport script from \"./grid-relation-settings.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-relation-settings.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('router-link',{staticClass:\"btn-action-link\",attrs:{\"to\":_vm.url}},[_vm._v(\" \"+_vm._s(_vm.text)+\" \"),(_vm.entity && _vm.entity.deleted)?_c('b-badge',{staticClass:\"ml-2\",attrs:{\"pill\":\"\",\"variant\":\"warning\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"DELETED\"}})],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class GridRouterLinkComponent extends Vue {\r\n @Prop({ default: '' }) public text: string;\r\n @Prop({ default: '' }) public url: string;\r\n @Prop({ default: () => null }) public entity: any;\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-router-link.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-router-link.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-router-link.vue?vue&type=template&id=3b1a9bb1&\"\nimport script from \"./grid-router-link.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-router-link.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[(_vm.action)?_c('span',{staticClass:\"btn-action-link\",on:{\"click\":function($event){return _vm.action()}}},[_c('span',{class:_vm.getDirectionIcon()})]):_c('span',[_c('span',{class:_vm.getDirectionIcon()})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class GridTransferDirectionComponent extends Vue {\r\n @Prop({ default: () => null }) public action: any;\r\n @Prop({ default: () => false }) public isIncoming: any;\r\n\r\n public getDirectionIcon() {\r\n if (this.isIncoming) {\r\n return 'k-icon k-i-arrow-right text-danger k-icon-24 ';\r\n } else {\r\n return 'k-icon k-i-arrow-left text-success k-icon-24';\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-transfer-direction.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-transfer-direction.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-transfer-direction.vue?vue&type=template&id=f9fbf3e0&\"\nimport script from \"./grid-transfer-direction.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-transfer-direction.ts?vue&type=script&lang=js&\"\nimport style0 from \"./grid-transfer-direction.vue?vue&type=style&index=0&id=f9fbf3e0&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('grid',{ref:\"grid\",staticClass:\"prd-grid-wrapper\",class:{ flat: _vm.flat, 'clickable': !!_vm.$listeners.rowclick },attrs:{\"data-items\":_vm.getData(),\"columns\":_vm.columns,\"pageable\":_vm.pageable,\"skip\":_vm.skip,\"total\":_vm.getTotal(),\"resizable\":_vm.resizable,\"take\":_vm.take,\"orderBy\":_vm.orderBy,\"detail\":_vm.detail,\"expand-field\":'expanded'},on:{\"pagechange\":_vm.pageChangeHandler,\"rowclick\":_vm.rowClicked,\"expandchange\":_vm.expandChange}},[_c('grid-norecords',[_c('prd-translate-text',{attrs:{\"translate-key\":\"NO_RECORDS\",\"translate-group\":\"GRID\",\"inline\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { GridColumnProps, GridGroupableSettings, GridPagerSettings, GridSortSettings } from '@progress/kendo-vue-grid';\r\nimport { CompositeFilterDescriptor, DataResult, GroupDescriptor, SortDescriptor } from '@progress/kendo-data-query';\r\nimport { ScrollMode } from '@progress/kendo-vue-grid/dist/npm/ScrollMode';\r\nimport { orderBy } from '@progress/kendo-data-query';\r\n\r\n@Component\r\nexport default class GridWrapper extends Vue {\r\n @Prop({ type: Boolean }) public flat: boolean;\r\n @Prop({ type: Boolean }) public fixedHeight: boolean;\r\n\r\n // https://www.telerik.com/kendo-vue-ui/components/grid/api/GridProps/\r\n @Prop() public allGroupedItems?: DataResult;\r\n @Prop() public alternatePerGroup?: boolean;\r\n @Prop() public cancel?: CallableFunction;\r\n @Prop() public cellRender?: CallableFunction;\r\n @Prop() public cellClick?: CallableFunction;\r\n @Prop() public columnMenu?: boolean;\r\n @Prop() public columnVirtualization?: boolean;\r\n @Prop() public columnreorder?: CallableFunction;\r\n @Prop() public columnresize?: CallableFunction;\r\n @Prop() public columns?: GridColumnProps[];\r\n @Prop() public dataItems?: any[];\r\n @Prop() public datastatechange?: CallableFunction;\r\n @Prop() public edit?: CallableFunction;\r\n @Prop() public editField?: string;\r\n @Prop() public expandField?: string;\r\n @Prop() public filter?: CompositeFilterDescriptor;\r\n @Prop() public filterCellRender?: CallableFunction;\r\n @Prop() public filterable?: boolean;\r\n @Prop() public filterchange?: CallableFunction;\r\n @Prop() public group?: GroupDescriptor[];\r\n @Prop() public groupable?: GridGroupableSettings | boolean;\r\n @Prop() public groupchange?: CallableFunction;\r\n @Prop() public headerCellRender?: CallableFunction;\r\n @Prop() public headerselectionchange?: CallableFunction;\r\n @Prop() public itemchange?: CallableFunction;\r\n @Prop({ default: 50 }) public pageSize?: number;\r\n @Prop({ default: false }) public pageable?: GridPagerSettings | any;\r\n @Prop() public remove?: CallableFunction;\r\n @Prop() public reorderable?: boolean;\r\n @Prop({ default: true }) public resizable?: boolean;\r\n @Prop({ default: 34 }) public rowHeight?: number;\r\n @Prop() public rowRender?: string | CallableFunction;\r\n @Prop() public save?: CallableFunction;\r\n @Prop() public scrollable?: ScrollMode;\r\n @Prop() public selectedField?: string;\r\n @Prop() public selectionchange?: CallableFunction;\r\n @Prop() public sort?: SortDescriptor;\r\n @Prop() public sortable?: GridSortSettings;\r\n @Prop() public sortchange?: CallableFunction;\r\n @Prop() public detail?: any;\r\n // @Prop() public total?: number;\r\n\r\n @Prop({ default: 0 }) public skip: number;\r\n @Prop({ default: 50 }) public take: number;\r\n\r\n @Prop({ default: () => ({ field: 'id', dir: 'asc' }) }) public orderBy?: SortDescriptor;\r\n\r\n public $refs!: {\r\n grid: any;\r\n };\r\n\r\n private get _dataItems() {\r\n return orderBy(this.dataItems, [this.orderBy]);\r\n }\r\n\r\n public created() {\r\n this.columns.forEach((c) => {\r\n if (c.title && c.title.length) {\r\n c.headerCell = this.translate;\r\n }\r\n });\r\n }\r\n\r\n public mounted() {\r\n this.setHeight();\r\n this.$watch('dataItems', () => {\r\n this.setHeight();\r\n });\r\n }\r\n\r\n public getData() {\r\n if (this.pageable) {\r\n return this._dataItems.slice(this.skip, this.take + this.skip);\r\n }\r\n\r\n return this._dataItems;\r\n }\r\n\r\n public getTotal() {\r\n return this._dataItems ? this._dataItems.length : 0;\r\n }\r\n\r\n public setHeight() {\r\n if (this.detail || !this.fixedHeight) {\r\n return;\r\n }\r\n\r\n let height = 0;\r\n const scrollbarHeight = 25;\r\n const defaultHeight = 65;\r\n const headerHeight: number = this.getHeaderHeight();\r\n const footerHeight: number = this.getFooterHeight();\r\n const rowHeight: number = this.getRowHeight();\r\n\r\n if (this._dataItems && this._dataItems.length) {\r\n height =\r\n headerHeight +\r\n footerHeight +\r\n (this.pageable ? (this._dataItems.length > this.take ? this.take : this._dataItems.length) : this._dataItems.length) * rowHeight;\r\n } else {\r\n height = defaultHeight;\r\n }\r\n\r\n if (this.pageable) {\r\n height += 46;\r\n }\r\n height += scrollbarHeight;\r\n this.$refs.grid.$el.style.height = height.toString() + 'px';\r\n }\r\n\r\n public pageChangeHandler(event: { page: { skip: number; take: number } }) {\r\n this.skip = event.page.skip;\r\n this.take = event.page.take;\r\n }\r\n\r\n public rowClicked(e) {\r\n this.$emit('rowclick', e);\r\n }\r\n\r\n public expandChange(event: any) {\r\n Vue.set(event.dataItem, event.target.$props.expandField, event.value);\r\n }\r\n\r\n protected translate(h, _, props) {\r\n return h(Vue.component('prd-translate-text'), {\r\n props: {\r\n translateKey: props.title,\r\n translateGroup: 'GRID',\r\n column: true,\r\n inline: true,\r\n },\r\n });\r\n }\r\n\r\n private getRowHeight(): number {\r\n if (this.$el && this.$el.querySelector) {\r\n const tableRow = this.$el.querySelector('tbody tr');\r\n return parseFloat(getComputedStyle(tableRow).height);\r\n }\r\n return this.rowHeight;\r\n }\r\n\r\n private getHeaderHeight(): number {\r\n if (this.$el && this.$el.querySelector) {\r\n const headRow = this.$el.querySelector('thead tr');\r\n return parseFloat(getComputedStyle(headRow).height);\r\n }\r\n return 34;\r\n }\r\n\r\n private getFooterHeight(): number {\r\n if (this.$el && this.$el.querySelector) {\r\n const footerRow = this.$el.querySelector('tfoot tr');\r\n if (footerRow) {\r\n return parseFloat(getComputedStyle(footerRow).height);\r\n }\r\n }\r\n return 47;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-wrapper.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./grid-wrapper.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./grid-wrapper.vue?vue&type=template&id=4d408556&\"\nimport script from \"./grid-wrapper.ts?vue&type=script&lang=js&\"\nexport * from \"./grid-wrapper.ts?vue&type=script&lang=js&\"\nimport style0 from \"./grid-wrapper.vue?vue&type=style&index=0&id=4d408556&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-2\"},[_c('h3',[_vm._v(\"Finance Cash\")]),_c('b-card-group',{staticClass:\"mt-2\",attrs:{\"deck\":\"\"}},[_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"CASHFLOW_RESULT\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getCashflowResult())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"CASHFLOW_BALANCE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getCashflowBalance())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"UNPAID_REVENUE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getUnpaidRevenue())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"UNPAID_EXPENSES\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getUnpaidExpenses())}})])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class InsightsEcosystemCashTotalsComponent extends Vue {\r\n @Prop({ default: () => null }) public data: any;\r\n\r\n public getCashflowResult() {\r\n return Vue.filter('number-format')(this.data ? this.data.result : 0);\r\n }\r\n\r\n public getCashflowBalance() {\r\n return Vue.filter('number-format')(this.data ? this.data.balance : 0);\r\n }\r\n\r\n public getUnpaidRevenue() {\r\n return Vue.filter('number-format')(this.data ? this.data.unpaidRevenue : 0);\r\n }\r\n\r\n public getUnpaidExpenses() {\r\n return Vue.filter('number-format')(this.data ? this.data.unpaidExpenses : 0);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-cash-totals.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-cash-totals.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ecosystem-cash-totals.vue?vue&type=template&id=f5d28790&\"\nimport script from \"./ecosystem-cash-totals.ts?vue&type=script&lang=js&\"\nexport * from \"./ecosystem-cash-totals.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-5\"},[_c('h3',[_vm._v(\"CO2 footprint\")]),_c('b-card-group',{staticClass:\"mt-2\",attrs:{\"deck\":\"\"}},[_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"CO2_BALANCE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getCO2Balance())}}),_vm._v(\" Kilograms \")]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"CO2_MUTATION\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getCO2Mutation())}}),_vm._v(\" Kilograms \")]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"CO2_COMPENSATION\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getCO2Compensation())}}),_vm._v(\" Kilograms \")]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"CO2_ONEXPENSES\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getCO2Expenses())}}),_vm._v(\" Kilograms \")]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"CO2_TRANSFERED_TO_REVENUE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getCO2Transfered())}}),_vm._v(\" Kilograms \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class InsightsEcosystemFinanceTotalsComponent extends Vue {\r\n @Prop({ default: () => null }) public data: any;\r\n\r\n public getCO2Balance() {\r\n return Vue.filter('number-format')(this.data && this.data.co2balance ? this.data.co2balance : 113292);\r\n }\r\n\r\n public getCO2Mutation() {\r\n return Vue.filter('number-format')(this.data && this.data.co2mutation ? this.data.co2mutation : 10482);\r\n }\r\n\r\n public getCO2Compensation() {\r\n return Vue.filter('number-format')(this.data && this.data.co2compensation ? this.data.co2compensation : 5000);\r\n }\r\n\r\n public getCO2Expenses() {\r\n return Vue.filter('number-format')(this.data && this.data.co2OnExpenses ? this.data.co2OnExpenses : 5482);\r\n }\r\n\r\n public getCO2Transfered() {\r\n return Vue.filter('number-format')(this.data && this.data.co2Transfered ? this.data.co2Transfered : 4248);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-co2-totals.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-co2-totals.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ecosystem-co2-totals.vue?vue&type=template&id=0352289a&\"\nimport script from \"./ecosystem-co2-totals.ts?vue&type=script&lang=js&\"\nexport * from \"./ecosystem-co2-totals.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-5\"},[_c('h3',[_vm._v(\"Fearless Organization - Psychological safety index\")]),_c('b-card-group',{staticClass:\"mt-2\",attrs:{\"deck\":\"\"}},[_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"PSI\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getPSI())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"OPEN_CONVERSATION\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getConversation())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"WILLINGNESS_TO_HELP\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getWillingness())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"INCLUSION_AND_DIVERSITY\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getInclusion())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"ATTITUDE_TO_RISK_FAILURE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getAttitude())}})])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class InsightsEcosystemFinanceTotalsComponent extends Vue {\r\n @Prop({ default: () => null }) public data: any;\r\n\r\n public getPSI() {\r\n return Vue.filter('number-format')(this.data && this.data.psi ? this.data.psi : 95);\r\n }\r\n\r\n public getConversation() {\r\n return Vue.filter('number-format')(this.data && this.data.conversation ? this.data.conversation : 87);\r\n }\r\n\r\n public getWillingness() {\r\n return Vue.filter('number-format')(this.data && this.data.willingness ? this.data.willingness : 100);\r\n }\r\n\r\n public getInclusion() {\r\n return Vue.filter('number-format')(this.data && this.data.inclusion ? this.data.inclusion : 92);\r\n }\r\n\r\n public getAttitude() {\r\n return Vue.filter('number-format')(this.data && this.data.attitude ? this.data.attitude : 92);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-fearless-totals.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-fearless-totals.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ecosystem-fearless-totals.vue?vue&type=template&id=3b831b3f&\"\nimport script from \"./ecosystem-fearless-totals.ts?vue&type=script&lang=js&\"\nexport * from \"./ecosystem-fearless-totals.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-5\"},[_c('h3',[_vm._v(\"Finance Results\")]),_c('b-card-group',{staticClass:\"mt-2\",attrs:{\"deck\":\"\"}},[_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"START_BALANCE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getStartBalance())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"RESULT\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getResult())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"BALANCE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getBalance())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"EXTERNAL_REVENUE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getExternalRevenue())}})]),_c('b-card',{staticClass:\"mb-3 mb-md-3 \"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"EXPENSES\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getExpenses())}})]),(_vm.team && _vm.team.teamId && _vm.team.teamId > 0)?_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"SAFETY_ZONE\"}})],1),_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.getSafetyZone())}}),_vm._v(\" Months \")]):_vm._e()],1),_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-button',{staticClass:\"w-25 d-block\",attrs:{\"size\":\"sm\",\"variant\":\"link\"},on:{\"click\":function($event){_vm.team.expanded = !_vm.team.expanded}}},[_vm._v(\" \"+_vm._s(!_vm.team.expanded ? 'View all ' + _vm.lense.slug + ' data' : 'Hide all ' + _vm.lense.slug + ' data')+\" \")])],1),_c('prd-grid-wrapper',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.team.expanded),expression:\"team.expanded\"}],attrs:{\"data-items\":[_vm.tableData],\"columns\":_vm.team && _vm.team.teamId && _vm.team.teamId > 0 ? _vm.teamTableColumns : _vm.tableColumns}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class InsightsEcosystemFinanceTotalsComponent extends Vue {\r\n @Prop({ default: () => null }) public data: any;\r\n @Prop({\r\n default: () => {\r\n return { teamId: null, expanded: false };\r\n },\r\n })\r\n public team: any;\r\n @Prop({ default: () => null }) public tableData: any;\r\n @Prop({ default: () => null }) public lense: any;\r\n\r\n public tableColumns: any[] = [\r\n {\r\n filterable: false,\r\n cell: this.renderStartBalance,\r\n title: 'START_BALANCE',\r\n field: 'startBalance',\r\n width: 160,\r\n },\r\n { filterable: false, cell: this.renderBalance, title: 'BALANCE', field: 'balance', width: 160 },\r\n { filterable: false, cell: this.renderResult, title: 'RESULT', width: 160, field: 'result' },\r\n {\r\n filterable: false,\r\n cell: this.renderExpenses,\r\n title: 'EXPENSES_RECURRING',\r\n width: 160,\r\n field: 'expenses',\r\n },\r\n {\r\n filterable: false,\r\n cell: this.renderExtras,\r\n title: 'EXTRA_NON_RECURRING',\r\n width: 160,\r\n field: 'extras',\r\n },\r\n {\r\n filterable: false,\r\n cell: this.renderExternalRevenue,\r\n title: 'EXTERNAL_REVENUE',\r\n width: 160,\r\n field: 'externalRevenue',\r\n },\r\n { filterable: false, cell: this.renderDropDeadRatio, title: 'DROP_DEAD_RATIO', width: 150 },\r\n ];\r\n\r\n public teamTableColumns: any[] = [\r\n {\r\n filterable: false,\r\n cell: this.renderStartBalance,\r\n title: 'START_BALANCE',\r\n field: 'startBalance',\r\n width: 160,\r\n },\r\n { filterable: false, cell: this.renderBalance, title: 'BALANCE', field: 'balance', width: 160 },\r\n { filterable: false, cell: this.renderResult, title: 'RESULT', width: 160, field: 'result' },\r\n {\r\n filterable: false,\r\n cell: this.renderExpenses,\r\n title: 'EXPENSES_RECURRING',\r\n width: 160,\r\n field: 'expenses',\r\n },\r\n {\r\n filterable: false,\r\n cell: this.renderExtras,\r\n title: 'EXTRA_NON_RECURRING',\r\n width: 160,\r\n field: 'extras',\r\n },\r\n {\r\n field: 'openInvoiceAmount',\r\n title: 'OPEN_INVOICES',\r\n filterable: false,\r\n cell: this.renderOpenInvoiceAmount,\r\n width: 160,\r\n },\r\n {\r\n field: 'openExpenseAmount',\r\n title: 'OPEN_EXPENSES',\r\n filterable: false,\r\n cell: this.renderOpenExpensesAmount,\r\n width: 160,\r\n },\r\n {\r\n field: 'groupOpenInvoiceAmount',\r\n title: 'OPEN_INVOICES_GROUP',\r\n filterable: false,\r\n cell: this.renderGroupOpenInvoiceAmount,\r\n width: 160,\r\n },\r\n {\r\n field: 'groupOpenExpenseAmount',\r\n title: 'OPEN_EXPENSES_GROUP',\r\n filterable: false,\r\n cell: this.renderGroupOpenExpensesAmount,\r\n width: 160,\r\n },\r\n {\r\n filterable: false,\r\n cell: this.renderExternalRevenue,\r\n title: 'EXTERNAL_REVENUE',\r\n width: 160,\r\n\r\n field: 'externalRevenue',\r\n },\r\n { filterable: false, cell: this.renderDropDeadRatio, title: 'DROP_DEAD_RATIO', width: 150 },\r\n ];\r\n\r\n public getBalance() {\r\n return Vue.filter('number-format')(this.data ? this.data.balance : 0);\r\n }\r\n\r\n public getStartBalance() {\r\n return Vue.filter('number-format')(this.data ? this.data.startBalance : 0);\r\n }\r\n\r\n public getResult() {\r\n return Vue.filter('number-format')(this.data ? this.data.result : 0);\r\n }\r\n\r\n public getExternalRevenue() {\r\n return Vue.filter('number-format')(this.data ? this.data.externalRevenue : 0);\r\n }\r\n\r\n public getExpenses() {\r\n return Vue.filter('number-format')(this.data ? this.data.expenses : 0);\r\n }\r\n\r\n public getNonRecurringExpenses() {\r\n return Vue.filter('number-format')(this.data ? this.data.nonRecurringExpenses : 0);\r\n }\r\n\r\n public getSafetyZone() {\r\n return Vue.filter('number-format')(this.data ? this.data.safetyZone : 0);\r\n }\r\n\r\n public renderBalance(h, _, row) {\r\n const props = { value: row.dataItem.balance };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderStartBalance(h, _, row) {\r\n const props = { value: row.dataItem.startBalance };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExpenses(h, _, row) {\r\n const props = { value: row.dataItem.expenses };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderResult(h, _, row) {\r\n const props = { value: row.dataItem.result };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExtras(h, _, row) {\r\n const props = { value: row.dataItem.extras };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExternalRevenue(h, _, row) {\r\n const props = { value: row.dataItem.externalRevenue };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderOpenInvoiceAmount(h, _, row) {\r\n const teamOpenInvoices = row.dataItem.openInvoiceAmount as number;\r\n const props = { value: teamOpenInvoices };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderOpenExpensesAmount(h, _, row) {\r\n const teamOpenExpenses = row.dataItem.openExpenseAmount as number;\r\n const props = { value: teamOpenExpenses };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderGroupOpenInvoiceAmount(h, _, row) {\r\n const groupOpenInvoiceAmount = row.dataItem.groupOpenInvoiceAmount as number;\r\n const props = { value: groupOpenInvoiceAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderGroupOpenExpensesAmount(h, _, row) {\r\n const groupOpenExpenseAmount = row.dataItem.groupOpenExpenseAmount as number;\r\n const props = { value: groupOpenExpenseAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderDropDeadRatio(h, _, row) {\r\n if (row.dataItem.safetyZone) {\r\n const props = { value: row.dataItem.safetyZone };\r\n return h(Vue.component('number-formatter'), { props });\r\n } else {\r\n return h('td', ['N/A']);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-finance-totals.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-finance-totals.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ecosystem-finance-totals.vue?vue&type=template&id=bdba36b8&\"\nimport script from \"./ecosystem-finance-totals.ts?vue&type=script&lang=js&\"\nexport * from \"./ecosystem-finance-totals.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.mapData)?_c('div',{staticClass:\"prd-map\"},[_vm._v(\" No map data found \")]):_c('div',{staticClass:\"prd-map\"},[(_vm.editMode)?_c('div',{staticClass:\"prd-map-settings\"},[_c('h2',[_vm._v(\"Map setup\")]),_c('div',{staticClass:\"prd-map-settings-item\"},[_c('div',{staticClass:\"prd-group\"},[_c('label',{attrs:{\"for\":\"\"}},[_vm._v(\"Width\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.width),expression:\"width\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.width)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.width=$event.target.value}}})]),_c('div',{staticClass:\"prd-group\"},[_c('label',{attrs:{\"for\":\"\"}},[_vm._v(\"Height\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.height),expression:\"height\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.height)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.height=$event.target.value}}})])]),_c('div',{staticClass:\"prd-map-entities\"},_vm._l((_vm.mapData.entities),function(entity,index){return _c('div',{key:'e' + index,staticClass:\"prd-map-entity\"},[_c('h4',{staticClass:\"prd-entity-title\"},[_vm._v(_vm._s(entity.name))]),_c('div',{staticClass:\"prd-group\"},[_c('label',{attrs:{\"for\":\"\"}},[_vm._v(\"Position lat\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(entity.pos[0]),expression:\"entity.pos[0]\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(entity.pos[0])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(entity.pos, 0, $event.target.value)}}})]),_c('div',{staticClass:\"prd-group\"},[_c('label',{attrs:{\"for\":\"\"}},[_vm._v(\"Position lng\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(entity.pos[1]),expression:\"entity.pos[1]\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(entity.pos[1])},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(entity.pos, 1, $event.target.value)}}})]),_c('div',{staticClass:\"prd-group\"},[_c('label',{attrs:{\"for\":\"\"}},[_vm._v(\"Radius (\"+_vm._s(entity.radius)+\")\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(entity.radius),expression:\"entity.radius\"}],attrs:{\"type\":\"range\",\"min\":\"1\",\"max\":\"150\"},domProps:{\"value\":(entity.radius)},on:{\"__r\":function($event){return _vm.$set(entity, \"radius\", $event.target.value)}}})]),_c('div',{staticClass:\"prd-group\"},[_c('label',{attrs:{\"for\":\"\"}},[_vm._v(\"Color\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(entity.fillColor),expression:\"entity.fillColor\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(entity.fillColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(entity, \"fillColor\", $event.target.value)}}})]),_c('div',{staticClass:\"prd-map-btn-group\"},[(!_vm.selectedEntity || _vm.selectedEntity.id != entity.id)?_c('button',{staticClass:\"btn\",on:{\"click\":function($event){return _vm.selectEntity(entity)}}},[_vm._v(\" Select \")]):_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearSelectedEntity}},[_vm._v(\" Cancel \")])])])}),0)]):_vm._e(),_c('l-map',{ref:\"prdMap\",style:((\"width: \" + _vm.width + \"px; height: \" + _vm.height + \"px; background: #eee;\")),attrs:{\"crs\":_vm.crs,\"zoom\":2}},[_c('l-circle',{ref:\"tooltipContainer\",attrs:{\"opacity\":_vm.circle.opacity,\"fill\":_vm.circle.fill,\"fill-opacity\":_vm.circle.fillOpacity,\"lat-lng\":_vm.tooltipLatLng,\"stroke\":false,\"radius\":40,\"options\":{ zIndex: 10000, 'z-index': 10000 }}},[_c('l-tooltip',{ref:\"refTooltip\",attrs:{\"visbile\":true,\"lat-lng\":_vm.tooltipLatLng,\"options\":{ permanent: true, direction: 'center' }}},[_c('h3',{domProps:{\"innerHTML\":_vm._s(_vm.contentTitle)}}),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.content)}})])],1),_vm._l((_vm.mapData.entities),function(entity,index){return [_c('l-circle',{key:entity.id,ref:\"circleEntity\",refInFor:true,attrs:{\"lat-lng\":_vm.getEntityPos(entity),\"radius\":_vm.getEntityRadius(entity),\"name\":entity.name,\"stroke\":false,\"fillColor\":entity.fillColor}},[_c('l-tooltip',{attrs:{\"options\":{ permanent: true, direction: 'center', className: 'prd-entity-tooltip' }}},[_c('h3',[_vm._v(_vm._s(entity.name))]),_c('p',[_vm._v(_vm._s(entity.description))])])],1),_vm._l((entity.entities),function(group,index){return _c('l-circle',{key:group.id,attrs:{\"radius\":_vm.getEntityRadius(group),\"lat-lng\":_vm.getEntityPos(group),\"name\":group.name}},[_c('l-tooltip',{attrs:{\"options\":{ permanent: true, direction: 'center', className: 'prd-entity-tooltip' }}},[_c('p',[_vm._v(_vm._s(group.name))])])],1)})]}),_c('l-circle',{attrs:{\"lat-lng\":_vm.mousePosition,\"radius\":_vm.getEntityRadius(_vm.selectedEntity),\"visible\":!!_vm.selectedEntity,\"stroke\":false,\"fillColor\":\"placeHolderFill\"}})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Leaflet, { CRS } from 'leaflet';\r\nimport { LMap, LImageOverlay, LMarker, LPopup, LPolyline, LIcon, LCircle, LTooltip, LLayerGroup, LRectangle } from 'vue2-leaflet';\r\nimport '@elfalem/leaflet-curve';\r\nimport 'leaflet/dist/leaflet.css';\r\nimport Vue from 'vue';\r\n\r\nexport default {\r\n components: {\r\n LMap,\r\n LImageOverlay,\r\n LMarker,\r\n LPopup,\r\n LPolyline,\r\n LIcon,\r\n LCircle,\r\n LRectangle,\r\n LTooltip,\r\n LLayerGroup,\r\n },\r\n props: {\r\n mapData: { Type: Object },\r\n editMode: { type: Boolean },\r\n },\r\n data() {\r\n return {\r\n crs: CRS.Simple,\r\n width: 400,\r\n height: 600,\r\n mousePosition: [0, 0],\r\n selectedEntity: null,\r\n placeHolderFill: '#ccc',\r\n content: '',\r\n contentTitle: '',\r\n circle: {\r\n opacity: 0,\r\n fill: true,\r\n fillOpacity: 0,\r\n },\r\n tooltipLatLng: {\r\n lat: -99999,\r\n lng: -99999,\r\n },\r\n tooltipLatLngArray: [0, 0],\r\n permanent: false,\r\n biggestTotal: 0,\r\n };\r\n },\r\n\r\n mounted() {\r\n this.$watch('editMode', this._watchEditModeChange);\r\n this.$watch('width', this._refreshCanvas);\r\n this.$watch('height', this._refreshCanvas);\r\n\r\n this.mapData.entities.forEach((entity) => {\r\n entity.revenue.forEach((revenue) => {\r\n if (revenue.total > this.biggestTotal) {\r\n this.biggestTotal = revenue.total;\r\n }\r\n });\r\n });\r\n\r\n this.$nextTick(() => {\r\n this._addResizeListener();\r\n this.stretchCanvasWidth();\r\n this.drawRelations();\r\n });\r\n },\r\n methods: {\r\n drawRelations() {\r\n this.mapData.entities.forEach((entity) => {\r\n entity.revenue.forEach((revenue) => {\r\n const sendingTeam = this.mapData.entities.find((entity) => entity.id == revenue.teamId);\r\n this.drawArc(\r\n entity.transferPointReceiving,\r\n sendingTeam.transferPointSending,\r\n this._getMapObject(),\r\n revenue,\r\n entity.name,\r\n sendingTeam.name,\r\n );\r\n });\r\n });\r\n },\r\n drawArc(latlng1, latlng2, map, revenue, to, from) {\r\n const offsetX = latlng2[1] - latlng1[1];\r\n const offsetY = latlng2[0] - latlng1[0];\r\n const r = Math.sqrt(Math.pow(offsetX, 2) + Math.pow(offsetY, 2));\r\n const theta = Math.atan2(offsetY, offsetX);\r\n const thetaOffset = 3.14 / 10;\r\n const r2 = r / 2 / Math.cos(thetaOffset);\r\n const theta2 = theta + thetaOffset;\r\n const midpointX = r2 * Math.cos(theta2) + latlng1[1];\r\n const midpointY = r2 * Math.sin(theta2) + latlng1[0];\r\n const midpointLatLng = [midpointY, midpointX];\r\n const pathOptions = {\r\n color: 'rgba(0, 0, 0, 0.3)',\r\n weight: revenue.total < 1000 ? 5 : revenue.total / (this.biggestTotal / 10) + 5,\r\n title: `${Vue.filter('number-format')(revenue.total)} from ${from} to ${to}`,\r\n transfers: `Total transfers amount: ${Vue.filter('number-format')(revenue.transfers)}`,\r\n attributions: `Total attribution amount: ${Vue.filter('number-format')(revenue.attributions)}`,\r\n };\r\n\r\n const curve = Leaflet.curve(['M', latlng1, 'Q', midpointLatLng, latlng2], pathOptions);\r\n curve.on('mouseover', (e) => this.showTooltip(e));\r\n curve.on('mouseout', (e) => this.hideToolTip(e));\r\n curve.addTo(map);\r\n },\r\n showTooltip(event) {\r\n this.contentTitle = event.target.options.title;\r\n this.content = event.target.options.transfers + '
' + event.target.options.attributions;\r\n this.$refs.tooltipContainer.latlng = event.latlng;\r\n this.tooltipLatLng = event.latlng;\r\n },\r\n hideToolTip(event) {\r\n this.tooltipLatLng = {\r\n lat: -99999,\r\n lng: -99999,\r\n };\r\n },\r\n stretchCanvasWidth() {\r\n this.width = this.$el.clientWidth;\r\n this._refreshCanvas();\r\n },\r\n getEntityPos(entity) {\r\n return [parseFloat(entity.pos[0]), parseFloat(entity.pos[1])];\r\n },\r\n getEntityRadius(entity) {\r\n return entity && entity.radius ? parseFloat(entity.radius) : 10;\r\n },\r\n selectEntity(entity) {\r\n this.selectedEntity = entity;\r\n },\r\n clearSelectedEntity() {\r\n this.selectedEntity = null;\r\n },\r\n _getMapObject() {\r\n if (this.$refs.prdMap && this.$refs.prdMap.mapObject) {\r\n return this.$refs.prdMap.mapObject;\r\n }\r\n },\r\n _watchEditModeChange() {\r\n const map = this._getMapObject();\r\n\r\n if (this.editMode) {\r\n this._disableMapMutations(map);\r\n this._addEventListeners();\r\n } else {\r\n this._enableMapMutations(map);\r\n this._removeEventListeners();\r\n }\r\n },\r\n _addEventListeners() {\r\n const map = this._getMapObject();\r\n\r\n map.on('click', this._setEntityPositionOnClick);\r\n map.on('mousemove', this._setMousePosition);\r\n\r\n this.$refs.circleEntity.forEach((circle) => {\r\n const map = circle.mapObject;\r\n map.on('click', this._selectEntityOnClick);\r\n });\r\n },\r\n _removeEventListeners() {\r\n const map = this._getMapObject();\r\n\r\n map.off('click', this._setEntityPositionOnClick);\r\n map.off('mousemove', this._setMousePosition);\r\n\r\n this.$refs.circleEntity.forEach((circle) => {\r\n const map = circle.mapObject;\r\n map.off('click', this._selectEntityOnClick);\r\n });\r\n },\r\n _disableMapMutations(map) {\r\n map.dragging.disable();\r\n map.touchZoom.disable();\r\n map.doubleClickZoom.disable();\r\n map.scrollWheelZoom.disable();\r\n map.boxZoom.disable();\r\n map.keyboard.disable();\r\n },\r\n _enableMapMutations(map) {\r\n map.dragging.enable();\r\n map.touchZoom.enable();\r\n map.doubleClickZoom.enable();\r\n map.scrollWheelZoom.enable();\r\n map.boxZoom.enable();\r\n map.keyboard.enable();\r\n },\r\n _setEntityPositionOnClick(e) {\r\n if (this.selectedEntity) {\r\n this._setEntityPosition(this.selectedEntity, e);\r\n }\r\n },\r\n _setEntityPosition(entity, mouseEvent) {\r\n entity.pos = [mouseEvent.latlng.lat, mouseEvent.latlng.lng];\r\n this.selectedEntity = null;\r\n },\r\n _setMousePosition(e) {\r\n this.mousePosition = [e.latlng.lat, e.latlng.lng];\r\n },\r\n _selectEntityOnClick(e) {\r\n const self = this;\r\n const center = e.target._latlng;\r\n const entity = this.mapData.entities.find((ent) => {\r\n return ent.pos[0] === center.lat && ent.pos[1] === center.lng;\r\n });\r\n\r\n if (entity) {\r\n setTimeout(() => {\r\n self.selectEntity(entity);\r\n });\r\n }\r\n },\r\n _addResizeListener() {\r\n const self = this;\r\n window.addEventListener('resize', () => {\r\n self.stretchCanvasWidth();\r\n });\r\n },\r\n _refreshCanvas() {\r\n this._getMapObject()._onResize();\r\n },\r\n _groupBy(arr, prop) {\r\n const map = new Map(Array.from(arr, (obj) => [obj[prop], []]));\r\n arr.forEach((obj) => map.get(obj[prop]).push(obj));\r\n return Array.from(map.values());\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./Map.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./Map.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Map.vue?vue&type=template&id=7466e294&\"\nimport script from \"./Map.js?vue&type=script&lang=js&\"\nexport * from \"./Map.js?vue&type=script&lang=js&\"\nimport style0 from \"./Map.css?vue&type=style&index=0&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoaded)?_c('td',{staticClass:\"text-nowrap\"},[(!_vm.memberObj || !_vm.memberObj.personId)?[_vm._v(\" - \")]:[(_vm.memberObj.avatar)?_c('img',{attrs:{\"src\":'/dist/images/' + _vm.memberObj.avatar,\"alt\":\"\"}}):_c('span',{staticClass:\"icon-user mr-2\"}),_vm._v(\" \"+_vm._s(_vm.memberObj.getFullName())+\" \"),(_vm.memberObj.deleted)?_c('b-badge',{staticClass:\"ml-2\",attrs:{\"pill\":\"\",\"variant\":\"warning\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"DELETED\"}})],1):_vm._e()]],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { Person } from '../../models/Person';\r\n\r\n@Component\r\nexport default class MemberNameComponent extends Vue {\r\n @Prop({ default: () => new Person() }) public member: Person;\r\n public memberObj: Person = null;\r\n public isLoaded: boolean = false;\r\n\r\n public mounted() {\r\n this.memberObj = new Person(this.member);\r\n this.isLoaded = true;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./member-name-native.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./member-name-native.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./member-name-native.vue?vue&type=template&id=3c10976a&\"\nimport script from \"./member-name-native.ts?vue&type=script&lang=js&\"\nexport * from \"./member-name-native.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.member.avatar)?_c('img',{attrs:{\"src\":'/dist/images/' + _vm.member.avatar,\"alt\":\"\"}}):_c('span',{staticClass:\"icon-user mr-2\"}),_vm._v(\" \"+_vm._s(_vm.member.getFullName())+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { Person } from '../../models/Person';\r\n\r\n@Component\r\nexport default class MemberNameComponent extends Vue {\r\n @Prop() public member: Person = new Person();\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./member-name.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./member-name.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./member-name.vue?vue&type=template&id=fd1c18a0&\"\nimport script from \"./member-name.ts?vue&type=script&lang=js&\"\nexport * from \"./member-name.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('kendo-dropdownlist',{staticClass:\"members-dropdown\",attrs:{\"data-items\":_vm.dropdownMembers,\"auto-width\":true,\"value-render\":_vm.valueRender,\"item-render\":_vm.itemRender,\"popupSettings\":{ width: 'auto', className: 'px-2' }},on:{\"open\":_vm.loadMembers},scopedSlots:_vm._u([{key:\"valueTemplate\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('div',{staticClass:\"p-1\"},[_c('span',{staticClass:\"icon-users mr-1\"}),_vm._v(\" \"+_vm._s(_vm.lazy ? _vm.memberCount : _vm.members.length))])]}},{key:\"itemTemplate\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('div',{staticClass:\"p-2 px-2\"},[_c('member-name-native',{attrs:{\"member\":props.dataItem}})],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { groupService } from '@/main';\r\nimport to from 'await-to-js';\r\nimport { Member } from '@/models/Member';\r\n\r\n@Component\r\nexport default class MembersComponent extends Vue {\r\n @Prop({ default: () => [] }) public members: any;\r\n @Prop({ default: false }) public lazy: boolean;\r\n @Prop({ default: null }) public groupId: number;\r\n @Prop({ default: null }) public teamId: number;\r\n @Prop({ default: null }) public memberCount: number;\r\n\r\n public memberItems: Member[] = [];\r\n public defaultItem = {\r\n text: this.memberDropdownButtonTemplate(),\r\n };\r\n\r\n public valueRender = 'valueTemplate';\r\n public itemRender = 'itemTemplate';\r\n\r\n public mounted() {\r\n if (this.members) {\r\n this.memberItems = this.members;\r\n }\r\n }\r\n\r\n public get dropdownMembers() {\r\n return this.memberItems;\r\n }\r\n\r\n public memberDropdownButtonTemplate() {\r\n if (this.lazy) {\r\n return `${this.memberCount}`;\r\n }\r\n\r\n return `${this.members.length}`;\r\n }\r\n\r\n public async loadMembers() {\r\n if (this.lazy) {\r\n const [err, response] = await to(groupService.getMembers(this.groupId, this.teamId));\r\n if (!err) {\r\n this.memberItems = response.data;\r\n }\r\n }\r\n }\r\n\r\n public memberDropdownTemplate(item) {\r\n return {\r\n template: Vue.component('member-name'),\r\n templateArgs: { member: item },\r\n };\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./members.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./members.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./members.vue?vue&type=template&id=6e78faa4&\"\nimport script from \"./members.ts?vue&type=script&lang=js&\"\nexport * from \"./members.ts?vue&type=script&lang=js&\"\nimport style0 from \"./members.vue?vue&type=style&index=0&id=6e78faa4&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('kendo-dropdownlist',{staticClass:\"members-dropdown\",attrs:{\"data-items\":_vm.memberships,\"auto-width\":true,\"value-render\":_vm.valueRender,\"item-render\":_vm.itemRender,\"popupSettings\":{ width: 'auto', className: 'px-2' }},on:{\"open\":_vm.onSelect},scopedSlots:_vm._u([{key:\"valueTemplate\",fn:function(ref){\nvar props = ref.props;\nreturn [_c('span',{staticClass:\"px-2 py-1\"},[_vm._v(_vm._s(_vm.memberships.length)+\" \"+_vm._s(_vm.isTeam ? 'team' : 'group')+_vm._s(_vm.memberships.length > 1 ? 's' : ''))])]}},{key:\"itemTemplate\",fn:function(ref){\nvar props = ref.props;\nreturn [(!_vm.disableOnClick)?_c('div',{staticClass:\"p-2 px-2 k-item cursor-pointer\",on:{\"click\":function($event){return _vm.onSelect(props)}}},[_c('span',{staticClass:\"px-2\"},[_vm._v(_vm._s(props.dataItem.name))])]):_c('div',{staticClass:\"p-2 px-2\"},[_c('span',{staticClass:\"px-2\"},[_vm._v(_vm._s(props.dataItem.name))])])]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { $router, teamHelper, ecosystemHelper } from '@/main';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class MembershipComponent extends Vue {\r\n @Prop({ default: () => [] }) public memberships: any;\r\n @Prop({ default: () => false }) public isTeam: boolean;\r\n @Prop({ default: () => false }) public disableOnClick: boolean;\r\n\r\n public valueRender = 'valueTemplate';\r\n public itemRender = 'itemTemplate';\r\n\r\n public async go(key: string, id: number) {\r\n let team = !key ? teamHelper.currentTeam : teamHelper.getTeamByKey(key);\r\n const groupKey = key;\r\n const groupId = id;\r\n\r\n if (this.isTeam) {\r\n team = teamHelper.getTeamByKey(key);\r\n }\r\n\r\n if (this.isTeam) {\r\n return $router.push({\r\n name: 'team-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: team.id.toString(),\r\n teamKey: team.key,\r\n groupkey: groupKey,\r\n groupId: groupId.toString(),\r\n tab: 'groups',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n const params = {\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n groupkey: groupKey,\r\n groupId: groupId.toString(),\r\n tab: 'members',\r\n period: periodModule.selectedPeriod,\r\n };\r\n await $router.push({ name: 'team-directory-group', params });\r\n }\r\n\r\n public memberShipValueTemplate(): string {\r\n return `${this.memberships.length} ${this.isTeam ? 'team' : 'group'}${this.memberships.length > 1 ? 's' : ''}`;\r\n }\r\n\r\n public async onSelect(item) {\r\n if (!this.disableOnClick) {\r\n const membership = item.dataItem;\r\n await this.go(membership.key, membership.id);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./memberships.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./memberships.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./memberships.vue?vue&type=template&id=ce3de096&\"\nimport script from \"./memberships.ts?vue&type=script&lang=js&\"\nexport * from \"./memberships.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"id\":\"amortizeModal\",\"title\":\"Amortize selected invoice\",\"size\":\"lg\"}},[_c('b-form',[(_vm.invoice.invoice.invoiceAmortization && _vm.invoice.invoice.invoiceAmortization.account)?_c('div',[_c('p',{staticClass:\"font-italic mb-4\"},[_c('span',{staticClass:\"k-icon k-i-info align-text-bottom\"}),_c('prd-translate-text',{attrs:{\"translate-key\":\"AMORTIZE_SETTINGS\",\"translate-group\":\"MODALS\"}})],1)]):_vm._e(),_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('label',[_c('strong',[_vm._v(_vm._s(_vm.invoice.invoice.amount))]),_c('prd-translate-text',{attrs:{\"translate-key\":\"FILL_BE_CHARGED_ON\",\"translate-group\":\"MODALS\"}})],1)]),_c('div',{staticClass:\"col-md-8\"},[_c('b-form-select',{attrs:{\"options\":_vm.optionsList},model:{value:(_vm.account),callback:function ($$v) {_vm.account=$$v},expression:\"account\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_PERSON_GROUP'),expression:\"'SELECT_PERSON_GROUP'\"}],domProps:{\"value\":null}})])],2)],1)])]),_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"AMORTIZE_FINISHED_PERIODS\",\"translate-group\":\"MODALS\"}})],1),_c('div',{staticClass:\"col-md-8\"},[_c('b-form-input',{attrs:{\"disabled\":!_vm.account,\"type\":\"number\"},nativeOn:{\"focus\":function($event){_vm.numberOfPeriodsIsDirty = true;\n _vm.amountIsDirty = false;},\"blur\":function($event){_vm.numberOfPeriodsIsDirty = false}},model:{value:(_vm.numberOfPeriods),callback:function ($$v) {_vm.numberOfPeriods=$$v},expression:\"numberOfPeriods\"}})],1)])]),_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"AMORTIZE_PER_PERIOD\",\"translate-group\":\"MODALS\"}})],1),_c('div',{staticClass:\"col-md-8\"},[_c('prd-numeric-input',{staticClass:\"form-control form-control-sm\",attrs:{\"disabled\":!_vm.account,\"output-dec-seperator\":\",\",\"convert-on\":\"input\"},nativeOn:{\"focus\":function($event){_vm.amountIsDirty = true;\n _vm.numberOfPeriodsIsDirty = false;},\"blur\":function($event){_vm.amountIsDirty = false}},model:{value:(_vm.amount),callback:function ($$v) {_vm.amount=$$v},expression:\"amount\"}})],1)])])],1),_c('div',{staticClass:\"mt-5\"},[_c('h4',[_c('prd-translate-text',{attrs:{\"translate-key\":\"AMORTIZE_KEEP_IN_MIND\",\"translate-group\":\"MODALS\"}})],1),_c('ul',{staticClass:\"mb-0\"},[_c('li',[_c('prd-translate-text',{attrs:{\"translate-key\":\"AMORTIZE_1\",\"translate-group\":\"MODALS\"}}),_c('strong',{domProps:{\"innerHTML\":_vm._s(_vm.getAmortizationAmountFormat())}}),_vm._v(\" to \"),_c('strong',[_vm._v(_vm._s(_vm.getAccountName()))]),_vm._v(\". \")],1),_c('li',[_c('prd-translate-text',{attrs:{\"translate-key\":\"AMORTIZE_2\",\"translate-group\":\"MODALS\"}})],1),_c('li',[_c('prd-translate-text',{attrs:{\"translate-key\":\"AMORTIZE_3\",\"translate-group\":\"MODALS\"}})],1),_c('li',[_c('prd-translate-text',{attrs:{\"translate-key\":\"AMORTIZE_4\",\"translate-group\":\"MODALS\"}})],1)])]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.AMORTIZE_INVOICES'),expression:\"'MODALS.AMORTIZE_INVOICES'\"}],attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":!_vm.account},on:{\"click\":function($event){return _vm.setInvoiceAsAmortized()}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\nimport DistributedInvoice from '@/models/DistributedInvoice';\r\nimport to from 'await-to-js';\r\nimport { financeService } from '@/main';\r\nimport Vue from 'vue';\r\n\r\n@Component\r\nexport default class AmortizeModalComponent extends BaseModal {\r\n @Prop({ default: () => false }) public isGroupScope: boolean;\r\n @Prop({ default: () => false }) public isExpense: boolean;\r\n @Prop({ default: () => [] }) public optionsList: any[];\r\n @Prop({ default: () => new DistributedInvoice() }) public invoice: DistributedInvoice;\r\n\r\n public account: any = null;\r\n public amount: any = null;\r\n public numberOfPeriods: number = 24;\r\n\r\n public amountIsDirty = false;\r\n public numberOfPeriodsIsDirty = false;\r\n\r\n public mounted() {\r\n this.amount = this.invoice.invoice.amount / this.numberOfPeriods;\r\n\r\n if (this.invoice.invoice.invoiceAmortization && this.invoice.invoice.invoiceAmortization.account) {\r\n this.account = this.invoice.invoice.invoiceAmortization.account.accountId;\r\n this.amount = this.invoice.invoice.invoiceAmortization.amortizationAmount;\r\n }\r\n\r\n if (this.$refs.modal) {\r\n this.$refs.modal.$on('hidden.bs.BModal', this.onHide);\r\n }\r\n }\r\n\r\n public onHide() {\r\n this.account = null;\r\n }\r\n\r\n public async setInvoiceAsAmortized() {\r\n this.showPending('SETTING_AMORTIZATION');\r\n const [err] = await to(financeService.setInvoiceAmortization(this.invoice.invoice.invoiceId, this.account, this.amount));\r\n if (err) {\r\n return this.clearAndShowError('AMORTIZATION_FAILED', err);\r\n }\r\n\r\n this.invoice.selected = false;\r\n\r\n this.clearAndShowSuccess('AMORIZATION_SUCCESS');\r\n this.$emit('amortization-set', this.invoice);\r\n this.hide();\r\n }\r\n\r\n public getAccountName() {\r\n const account = this.optionsList.find((option) => option.value === this.account);\r\n return account ? account.text : 'select a person/group first';\r\n }\r\n\r\n public getAmortizationAmountFormat() {\r\n if (this.amount) {\r\n return Vue.filter('number-format')(this.amount);\r\n }\r\n\r\n return '0';\r\n }\r\n\r\n @Watch('numberOfPeriods')\r\n public OnNumberChange(val) {\r\n if (val && this.numberOfPeriodsIsDirty && !this.amountIsDirty) {\r\n this.amount = this.invoice.invoice.amount / this.numberOfPeriods;\r\n }\r\n }\r\n\r\n @Watch('amount')\r\n public OnAmountChange(val) {\r\n if (val && this.amountIsDirty && !this.numberOfPeriodsIsDirty) {\r\n this.numberOfPeriods = Math.ceil(this.invoice.invoice.amount / this.amount);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./amortize-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./amortize-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./amortize-modal.vue?vue&type=template&id=4229d813&\"\nimport script from \"./amortize-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./amortize-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"id\":\"create-ledger-account-modal\"}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[(_vm.itemToDelete)?_c('h5',[_c('prd-translate-text',{attrs:{\"translate-key\":\"DELETE\",\"translate-group\":\"MODALS\",\"element\":\"span\"}}),_vm._v(\" \"+_vm._s(_vm.entityName)+\" \"+_vm._s(_vm.itemToDelete[_vm.propertyToCheck])+\" \")],1):_vm._e()]),_c('b-form-group',{attrs:{\"id\":\"input-group-2\",\"label-for\":\"ledger-name\"}},[_c('template',{slot:\"label\"},[_c('p',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'MODALS.DELETE_EXPLANATION', params: { property: _vm.propertyToCheck, entityName: _vm.entityName } }),expression:\"{ key: 'MODALS.DELETE_EXPLANATION', params: { property: propertyToCheck, entityName: entityName } }\"}]})]),_c('b-form-input',{attrs:{\"id\":\"ledger-name\",\"type\":\"text\",\"placeholder\":'Type ' + _vm.propertyToCheck + ' to confirm',\"required\":\"\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],2),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"mr-2\",attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.hide()}}},[_vm._v(\"Cancel\")]),_c('b-button',{attrs:{\"variant\":\"danger\"},on:{\"click\":_vm.deleteEntity}},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'MODALS.DELETE_ENTIITY', params: { entityName: _vm.entityName } }),expression:\"{ key: 'MODALS.DELETE_ENTIITY', params: { entityName: entityName } }\"}]})])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\n\r\n@Component\r\nexport default class AreYouSureModal extends BaseModal {\r\n public value: string = '';\r\n public entityName: string = '';\r\n public itemToDelete: any = null;\r\n public propertyToCheck: string = '';\r\n\r\n public setScope(item: any, property: string, entityName: string) {\r\n this.itemToDelete = item;\r\n this.propertyToCheck = property;\r\n this.entityName = entityName;\r\n }\r\n\r\n public async deleteEntity() {\r\n if (!this.itemToDelete.hasOwnProperty(this.propertyToCheck)) {\r\n return this.showError('PROPERTY_DOENST_EXIST');\r\n }\r\n\r\n if (this.itemToDelete[this.propertyToCheck] !== this.value) {\r\n return this.showError('VALUE_DOESNT_MATCH');\r\n }\r\n\r\n this.$emit('delete-entity', this.itemToDelete);\r\n }\r\n\r\n public onHide() {\r\n this.itemToDelete = null;\r\n this.propertyToCheck = '';\r\n this.entityName = '';\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./are-you-sure-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./are-you-sure-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./are-you-sure-modal.vue?vue&type=template&id=44fa78b0&\"\nimport script from \"./are-you-sure-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./are-you-sure-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"id\":\"ecosystemSwitcherModal\"}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_c('h5',[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEGAL_ENTITY_SWITCH_TITLE\",\"translate-group\":\"MODALS\"}})],1)]),_c('b-form-group',{attrs:{\"id\":\"input-group-2\",\"label-for\":\"legal-name\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEGAL_ENTITY_SWITCH_LABEL\",\"translate-group\":\"MODALS\"}})],1),_c('b-form-input',{attrs:{\"id\":\"legal-name\",\"type\":\"text\",\"placeholder\":\"Legal entity reference\",\"required\":\"\"},model:{value:(_vm.legalEntityReference),callback:function ($$v) {_vm.legalEntityReference=$$v},expression:\"legalEntityReference\"}}),_c('prd-translate-text',{staticClass:\"form-text text-muted\",attrs:{\"translate-key\":\"LEGAL_ENTITY_SWITCH_DESCRIPTION\",\"translate-group\":\"MODALS\"}})],2),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{attrs:{\"variant\":\"secondary\"},on:{\"click\":_vm.hide}},[_vm._v(\"Cancel\")]),_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.updateLegalEntity}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEGAL_ENTITY_SWITCH_BUTTON\",\"translate-group\":\"MODALS\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { financeService } from '@/main';\r\nimport DistributedInvoice from '@/models/DistributedInvoice';\r\nimport to from 'await-to-js';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\n\r\n@Component\r\nexport default class ChangeLegalEntityReferenceModal extends BaseModal {\r\n @Prop({ default: () => [] }) public invoices: DistributedInvoice[];\r\n\r\n public legalEntityReference: string = '';\r\n\r\n public async updateLegalEntity() {\r\n const self = this;\r\n const list = [];\r\n\r\n this.invoices.forEach((invoice: DistributedInvoice) => {\r\n if (invoice) {\r\n list.push({ InvoiceId: invoice.invoice.invoiceId, LegalEntityReference: this.legalEntityReference });\r\n }\r\n });\r\n\r\n this.showPending('UPDATE_LEGAL_ENTITY_PENDING');\r\n const [err] = await to(financeService.setInvoicesLegalEntityReference(list));\r\n if (err) {\r\n return self.clearAndShowError('UPDATE_LEGAL_ENTITY_FAILED', null);\r\n }\r\n self.clearAndShowSuccess('UPDATE_LEGAL_ENTITY_SUCCESS');\r\n this.$emit('invoices-updated');\r\n this.hide();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./change-legal-entity-reference-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./change-legal-entity-reference-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./change-legal-entity-reference-modal.vue?vue&type=template&id=9878b374&\"\nimport script from \"./change-legal-entity-reference-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./change-legal-entity-reference-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"id\":\"create-ledger-account-modal\"}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_c('h5',[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEDGER_ACCOUNT_MODAL_TITLE\",\"translate-group\":\"MODALS\"}})],1)]),_c('b-form-group',{attrs:{\"id\":\"input-group-2\",\"label-for\":\"ledger-name\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEDGER_ACCOUNT_MODAL_NAME\",\"translate-group\":\"MODALS\"}})],1),_c('b-form-input',{attrs:{\"id\":\"ledger-name\",\"type\":\"text\",\"placeholder\":\"Ledger account name\",\"required\":\"\"},model:{value:(_vm.ledger.name),callback:function ($$v) {_vm.$set(_vm.ledger, \"name\", $$v)},expression:\"ledger.name\"}})],2),_c('b-form-group',{attrs:{\"id\":\"input-group-2\",\"label-for\":\"ledger-number\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEDGER_ACCOUNT_MODAL_NUMBER\",\"translate-group\":\"MODALS\"}})],1),_c('b-form-input',{attrs:{\"id\":\"ledger-number\",\"type\":\"text\",\"placeholder\":\"Ledger account number\",\"required\":\"\"},model:{value:(_vm.ledger.value),callback:function ($$v) {_vm.$set(_vm.ledger, \"value\", $$v)},expression:\"ledger.value\"}})],2),_c('b-form-group',{attrs:{\"id\":\"input-group-2\",\"label-for\":\"ledger-description\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEDGER_ACCOUNT_MODAL_DESCRIPTION\",\"translate-group\":\"MODALS\"}})],1),_c('b-form-textarea',{attrs:{\"rows\":\"3\",\"max-rows\":\"6\",\"id\":\"ledger-description\",\"type\":\"text\",\"placeholder\":\"Description\",\"required\":\"\"},model:{value:(_vm.ledger.description),callback:function ($$v) {_vm.$set(_vm.ledger, \"description\", $$v)},expression:\"ledger.description\"}})],2),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"mr-2\",attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.hide()}}},[_vm._v(\"Cancel\")]),_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.createOrUpdateLedgerAccount}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEDGER_ACCOUNT_MODAL_BUTTON\",\"translate-group\":\"MODALS\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ledgerService } from '@/main';\r\nimport Ledger from '@/models/Finance/Ledger';\r\nimport to from 'await-to-js';\r\nimport { Component } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\n\r\n@Component\r\nexport default class CreateLedgerAccountModal extends BaseModal {\r\n private ledger: Ledger = new Ledger();\r\n\r\n public setLedger(ledger: Ledger) {\r\n this.ledger = ledger;\r\n }\r\n\r\n public async createOrUpdateLedgerAccount() {\r\n this.showPending('CREATE_OR_UPDATE_LEDGER_PENDING');\r\n let err = null;\r\n if (this.ledger.ledgerId) {\r\n [err] = await to(ledgerService.updateLedgers(this.ledger));\r\n } else {\r\n [err] = await to(ledgerService.postLedgers(this.ledger));\r\n }\r\n\r\n if (err) {\r\n return this.clearAndShowError('CREATE_OR_UPDATE_LEDGER_FAILED', null);\r\n }\r\n\r\n this.$emit('reload-ledgers');\r\n this.clearAndShowSuccess('CREATE_OR_UPDATE_LEDGER_SUCCESS');\r\n this.hide();\r\n }\r\n\r\n public onHide() {\r\n this.ledger = new Ledger();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-ledger-account-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-ledger-account-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create-ledger-account-modal.vue?vue&type=template&id=31cbfffc&\"\nimport script from \"./create-ledger-account-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./create-ledger-account-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"id\":\"ecosystemSwitcherModal\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"modal-title\",\"translate-key\":\"NEW_ECOSYSTEM_LABEL\",\"translate-group\":\"MODALS\"},slot:\"modal-title\"}),_c('b-form-group',{staticClass:\"mt-5\",attrs:{\"label-cols\":\"6\",\"label-size\":\"sm\",\"label-for\":\"input-sm\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"NEW_ECOSYSTEM_LABEL\",\"translate-group\":\"MODALS\"},slot:\"label\"}),_c('b-form-select',{attrs:{\"options\":_vm.optionListEcosystems()},on:{\"change\":function($event){return _vm.switchToAnotherEcosystem($event)}},model:{value:(_vm.currentEcosystem),callback:function ($$v) {_vm.currentEcosystem=$$v},expression:\"currentEcosystem\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_ECOSYSTEM\"}})],1)])],2),_c('b-button',{attrs:{\"slot\":\"description\",\"size\":\"sm\",\"variant\":\"link\"},on:{\"click\":_vm.openCreateEcosystemSideAction},slot:\"description\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CREATE_ECOSYSTEM\",\"translate-group\":\"MODALS\"}})],1)],1),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ecosystemHelper, loginHelper, teamHelper } from '@/main';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { Component } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\n\r\n@Component\r\nexport default class EcosystemSwitcherModalComponent extends BaseModal {\r\n public currentEcosystem: number = null;\r\n\r\n public optionListEcosystems() {\r\n return loginHelper\r\n .getUser()\r\n .ecosystemMemberships.filter((x) => x.id !== ecosystemHelper.currentEcosystem.id)\r\n .map((ship) => {\r\n return { value: ship.id, text: ship.name };\r\n });\r\n }\r\n\r\n public async switchToAnotherEcosystem(ecosystemId: number, reloadProfile: boolean = false) {\r\n if (reloadProfile) {\r\n await profileModule.loadBrightProfileIfNeeded(true);\r\n const reloadedProfile = await loginHelper.reloadProfile();\r\n profileModule.setBrightProfile(reloadedProfile);\r\n }\r\n\r\n const profile = profileModule.brightProfile;\r\n const ecosystem = profile.ecosystemMemberships.find((x) => x.id === ecosystemId);\r\n\r\n let team = profile.teamMemberships\r\n .filter((x) => x.ecosystem === ecosystem.id)\r\n .find((t) => {\r\n if (profile.primaryTeam) {\r\n return t.id === profile.primaryTeam;\r\n }\r\n });\r\n\r\n if (!team) {\r\n team = profile.teamMemberships.filter((x) => x.ecosystem === ecosystem.id)[0];\r\n }\r\n\r\n if (this.$refs.modal) {\r\n this.$refs.modal.hide();\r\n }\r\n\r\n ecosystemHelper.setEcosystemByEcosystemId(ecosystem.id);\r\n teamHelper.setTeam(team);\r\n await periodModule.init();\r\n\r\n this.currentEcosystem = null;\r\n\r\n if (reloadProfile) {\r\n return this.$router.push({\r\n name: 'team-directory',\r\n params: {\r\n ecosystemId: ecosystem.id.toString(),\r\n ecosystemKey: ecosystem.key,\r\n teamId: team.id.toString(),\r\n teamKey: team.key,\r\n period: periodModule.selectedPeriod,\r\n tab: 'groups',\r\n },\r\n });\r\n }\r\n\r\n return this.$router.push({\r\n name: 'me-finances',\r\n params: {\r\n ecosystemId: ecosystem.id.toString(),\r\n ecosystemKey: ecosystem.key,\r\n teamId: team.id.toString(),\r\n teamKey: team.key,\r\n period: periodModule.selectedPeriod,\r\n tab: 'overview',\r\n },\r\n });\r\n }\r\n\r\n public openCreateEcosystemSideAction() {\r\n this.hide();\r\n\r\n this.$sideActions.push(\r\n 'create-ecosystem-side-action',\r\n {\r\n // options\r\n },\r\n async (ecosystem) => {\r\n await this.switchToAnotherEcosystem(ecosystem.ecosystemId, true);\r\n },\r\n );\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-switcher-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ecosystem-switcher-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ecosystem-switcher-modal.vue?vue&type=template&id=55e13d2e&\"\nimport script from \"./ecosystem-switcher-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./ecosystem-switcher-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"id\":\"edit-energy-dication\",\"title\":\"Edit your energy dedication\",\"size\":\"md\"}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ENERGY_DEDICATION\",\"translate-group\":\"MODALS\"}})],1),_c('b-form',[_vm._l((_vm.energyGroups),function(group,index){return [_c('b-form-group',{attrs:{\"label-cols\":\"\",\"label-for\":'groupenergy_' + index}},[_c('template',{slot:\"label\"},[_vm._v(_vm._s(group.groupKey))]),_c('vue-regex-input',{staticClass:\"form-control\",attrs:{\"list\":\"input-list\",\"regExp\":/^\\d*(\\.\\d{0,2})?$/g,\"placeholder\":\"Enter an energy percentage\"},on:{\"input\":function($event){return _vm.updateEnergy($event, group.groupId)}},model:{value:(group.amount),callback:function ($$v) {_vm.$set(group, \"amount\", _vm._n($$v))},expression:\"group.amount\"}}),_c('b-form-datalist',{attrs:{\"id\":\"input-list\",\"options\":_vm.percentageOptions}})],2)]}),_c('b-form-group',{attrs:{\"label-cols\":\"\",\"label-for\":\"totalenergy\"}},[_c('template',{slot:\"label\"},[_c('b',[_c('prd-translate-text',{attrs:{\"translate-key\":\"ENERGY_DEDICATION_TOTAL\",\"translate-group\":\"MODALS\"}})],1)]),_c('span',[_c('b',[_vm._v(_vm._s(_vm.energySpent)+\"% \")]),_c('prd-translate-text',{attrs:{\"translate-key\":\"ENERGY_DEDICATION_TOTAL\",\"translate-group\":\"MODALS\",\"element\":\"span\"}})],1)],2)],2),_c('div',{staticClass:\"w-100\",attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('p',{staticClass:\"mb-4 cursor-pointer text-info\"},[_c('span',{staticClass:\"k-icon k-i-info\"}),_c('prd-translate-text',{attrs:{\"translate-key\":\"ENERGY_DEDICATION_OVERRIDE\",\"translate-group\":\"MODALS\",\"element\":\"span\"}})],1),_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.ENERGY_DEDICATION_SAVE'),expression:\"'MODALS.ENERGY_DEDICATION_SAVE'\"}],staticClass:\"mb-2 float-right\",attrs:{\"disabled\":_vm.energySpent != 100,\"variant\":\"primary\"},on:{\"click\":_vm.setEnergyDedication}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\nimport { Member } from '@/models/Member';\r\nimport { personService, teamHelper, teamService, roleHelper, loginHelper } from '@/main';\r\nimport Vue from 'vue';\r\nimport EnergyDedication from '@/models/EnergyDedication';\r\nimport { Person } from '@/models/Person';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class EnergyDedicationModalComponent extends BaseModal {\r\n @Prop({ default: () => new Member() }) public member: Member;\r\n\r\n public energyGroups: EnergyDedication[] = [];\r\n public energySpent: number = 0;\r\n\r\n public totalSpent: string;\r\n public energyDedication: string;\r\n\r\n public percentageOptions = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100];\r\n\r\n private _member: Person = new Person();\r\n\r\n public async mounted() {\r\n if (this.member && this.member.memberId > 0) {\r\n await this.setMember(this.member);\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async setMember(member: Member) {\r\n this._member = new Person(member);\r\n if (typeof this._member.groupMemberships === 'undefined' || this._member.groupMemberships.length === 0) {\r\n this._member = await teamService.getMemberById(this._member.personId, periodModule.selectedPeriod);\r\n }\r\n\r\n const energy = await personService.getEnergyDedication(this._member.personId, teamHelper.currentTeamId, periodModule.selectedPeriod);\r\n this.energyGroups.length = 0;\r\n for (const groupShip of this._member.groupMemberships) {\r\n const energyofGroup = energy.find((x) => x.groupKey === groupShip.key);\r\n this.energyGroups.push({\r\n groupKey: groupShip.key,\r\n groupId: groupShip.id,\r\n amount: energyofGroup ? parseInt(energyofGroup.amount.toString()) : 0,\r\n initialAmount: energyofGroup ? parseInt(energyofGroup.amount.toString()) : 0,\r\n });\r\n }\r\n\r\n this.updateEnergy();\r\n }\r\n\r\n public onHide() {\r\n this._member = null;\r\n }\r\n\r\n public handleInput(e) {\r\n console.log(e);\r\n // this.input = this.input.replace(/[0-9]/g, '')\r\n }\r\n\r\n public handleChange(e) {\r\n console.log(e);\r\n // this.input = this.input.replace(/[0-9]/g, '')\r\n }\r\n\r\n public async setEnergyDedication() {\r\n this.showPending('ENERGY_DEDICATION_PENDING');\r\n\r\n let success = false;\r\n\r\n if (roleHelper.isSiteAdmin() && this._member.personId !== loginHelper.getUser().personId) {\r\n success = await this.updateEnergyDedicationForMember();\r\n } else {\r\n success = await this.updateEnergyDedication();\r\n }\r\n\r\n if (success) {\r\n this.clearAndShowSuccess('ENERGY_DEDICATION_SUCCESS');\r\n this.$emit('energy-dedications-updated');\r\n this.hide();\r\n }\r\n }\r\n\r\n public async updateEnergyDedication() {\r\n try {\r\n await teamService.updateEnergyDedicationsForMember(\r\n teamHelper.currentTeamId,\r\n this.energyGroups,\r\n periodModule.selectedPeriod,\r\n loginHelper.getUser().personId,\r\n );\r\n } catch (e) {\r\n this.clearAndShowError('Failed to update energy dedication', e);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async updateEnergyDedicationForMember() {\r\n try {\r\n await teamService.updateEnergyDedicationsForMember(\r\n teamHelper.currentTeamId,\r\n this.energyGroups,\r\n periodModule.selectedPeriod,\r\n this._member.personId,\r\n );\r\n } catch (e) {\r\n this.clearAndShowError('Failed to update energy dedication', e);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public totalEnergySpentPercentage() {\r\n const amount = this.getTotalEnergyDedicationSpent();\r\n return Vue.filter('number-format')(100 - amount);\r\n }\r\n\r\n public getTotalEnergyDedicationSpentString() {\r\n return `${this.getTotalEnergyDedicationSpent()}%`;\r\n }\r\n\r\n public getTotalEnergyDedicationSpent(): number {\r\n return parseInt(this.totalSpent) + parseInt(this.energyDedication);\r\n }\r\n\r\n public updateEnergy(value?: number, groupId?: number) {\r\n this.energySpent = 0;\r\n\r\n if (value && groupId) {\r\n const fGroup = this.energyGroups.find((x) => x.groupId === groupId);\r\n fGroup.amount = value * 1;\r\n }\r\n\r\n for (const group of this.energyGroups) {\r\n if (!group.amount) {\r\n continue;\r\n }\r\n this.energySpent += isNaN(group.amount) ? parseInt(group.amount.toString()) : group.amount;\r\n }\r\n\r\n return this.energySpent;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./energy-dedication-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./energy-dedication-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./energy-dedication-modal.vue?vue&type=template&id=51d5f500&\"\nimport script from \"./energy-dedication-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./energy-dedication-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"size\":\"xl\"},on:{\"hide\":_vm.onHide}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_INVOICES\",\"translate-group\":\"MODALS\"}})],1),_c('div',{staticClass:\"p-0\"},[(_vm.inputMode === 'overview')?_c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"card card-link cursor-pointer mb-3\",on:{\"click\":function($event){_vm.inputMode = 'import'}}},[_c('h3',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_CSV_DELIMITER\",\"translate-group\":\"MODALS\"}})],1),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"translate-key\":\"IMPORT_CSV_DELIMITER_TEXT\",\"translate-group\":\"MODALS\"}})],1)])]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"card card-link cursor-pointer\",on:{\"click\":function($event){_vm.inputMode = 'paste'}}},[_c('h3',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_PASTE_FILE\",\"translate-group\":\"MODALS\"}})],1),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"translate-key\":\"IMPORT_PASTE_FILE_TEXT\",\"translate-group\":\"MODALS\"}})],1)])])]):((_vm.inputMode === 'import' || _vm.inputMode === 'paste') && _vm.lineData.length != 0)?_c('div',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_TEXT\",\"translate-group\":\"MODALS\"}}),_c('table',{staticClass:\"table table-sm table-hover\"},[_c('thead',[_c('tr',[_c('th',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_TABLE_CLIENT\",\"translate-group\":\"MODALS\"}})],1),_c('th',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_TABLE_DESCRIPTION\",\"translate-group\":\"MODALS\"}})],1),_c('th',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_TABLE_REFERENCE\",\"translate-group\":\"MODALS\"}})],1),_c('th',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_TABLE_AMOUNT\",\"translate-group\":\"MODALS\"}})],1),_c('th',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_TABLE_DATE\",\"translate-group\":\"MODALS\"}})],1),_c('th',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_TABLE_LEGAL\",\"translate-group\":\"MODALS\"}})],1),_c('th',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_TABLE_DISTRIBUTIONS\",\"translate-group\":\"MODALS\"}})],1)])]),_c('tbody',_vm._l((_vm.lineData),function(line,index){return _c('tr',[_c('td',[_vm._v(_vm._s(line.client))]),_c('td',[_vm._v(_vm._s(line.description))]),_c('td',[_vm._v(_vm._s(line.reference))]),_c('td',[_vm._v(_vm._s(line.amount))]),_c('td',[_vm._v(_vm._s(line.date))]),_c('td',[_vm._v(_vm._s(line.legalEntityReference))]),_c('td',[_c('b-button',{attrs:{\"id\":'popover-target-' + index}},[_vm._v(\" \"+_vm._s(line.distributions.length)+\" \"),_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"IMPORT_TABLE_DISTRIBUTIONS\",\"translate-group\":\"MODALS\"}})],1),_c('b-popover',{attrs:{\"target\":'popover-target-' + index,\"triggers\":\"hover\",\"placement\":\"bottom\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"IMPORT_TABLE_DISTRIBUTIONS\",\"translate-group\":\"MODALS\"}})]},proxy:true}],null,true)},[_c('ul',{staticClass:\"list-unstyled\"},_vm._l((line.distributions),function(dist){return _c('li',[_c('strong',[_vm._v(_vm._s(dist.value)+\" \")]),_vm._v(\" | \"+_vm._s(_vm.getRelatedEntityName(dist.relatedEntityId))+\" \")])}),0)])],1)])}),0)])],1):(_vm.inputMode === 'import')?_c('div',[(_vm.lineData.length == 0)?_c('div',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_NOTE\",\"translate-group\":\"MODALS\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"translate-key\":\"IMPORT_HEADER_NOTE\",\"translate-group\":\"MODALS\"}}),_c('b-form-group',{attrs:{\"label-for\":\"fileInput\"}},[_c('b-form-file',{ref:\"fileInput\",attrs:{\"id\":\"fileInput\",\"placeholder\":\"Select a .csv\",\"accept\":\".csv\"},on:{\"change\":function($event){return _vm.fileUploaded($event)}}})],1)],1):_vm._e()]):(_vm.inputMode === 'paste')?_c('div',[(_vm.lineData.length == 0)?_c('div',[_c('prd-translate-text',{attrs:{\"translate-key\":\"IMPORT_NOTE_COPY\",\"translate-group\":\"MODALS\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"translate-key\":\"IMPORT_HEADER_NOTE\",\"translate-group\":\"MODALS\"}}),_c('b-form-textarea',{staticClass:\"h-100\",attrs:{\"placeholder\":\"Paste your input here\"},model:{value:(_vm.inputModel),callback:function ($$v) {_vm.inputModel=$$v},expression:\"inputModel\"}}),_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.IMPORT_BUTTON'),expression:\"'MODALS.IMPORT_BUTTON'\"}],staticClass:\"btn-sm float-right mt-3\",attrs:{\"type\":\"submit\",\"variant\":\"primary\"},on:{\"click\":_vm.processPastedInput}})],1):_vm._e()]):_vm._e()]),_c('div',{staticClass:\"w-100 text-right\",attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.IMPORT_EXAMPLE_FILE'),expression:\"'MODALS.IMPORT_EXAMPLE_FILE'\"}],staticClass:\"btn-outline-primary float-left\",attrs:{\"type\":\"submit\"},on:{\"click\":_vm.downloadExample}}),_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.IMPORT_START'),expression:\"'MODALS.IMPORT_START'\"}],staticClass:\"float-right\",attrs:{\"type\":\"submit\",\"variant\":\"primary\",\"disabled\":_vm.lineData.length == 0},on:{\"click\":_vm.importLines}}),_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.IMPORT_CANCEL'),expression:\"'MODALS.IMPORT_CANCEL'\"}],staticClass:\"float-right mr-2\",attrs:{\"type\":\"submit\",\"variant\":\"secondary\"},on:{\"click\":_vm.cancelImport}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\nimport DistributedInvoice from '@/models/DistributedInvoice';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport { financeService, teamHelper, financeAccountService } from '@/main';\r\nimport moment from 'moment';\r\nimport { FinanceAccount } from '@/models/Interfaces';\r\nimport { teamsModule } from '@/store/modules/teams';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport { to } from 'await-to-js';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { InvoiceSource } from '@/models/InvoiceSource';\r\n\r\nexport class InvoiceImportBase {\r\n public client: string = '';\r\n public description: string = '';\r\n public reference: string = '';\r\n public amount: string = '';\r\n public date: string = '';\r\n public group: string = '';\r\n public person: string = '';\r\n public legalEntityReference: string = '';\r\n public distributions: any[] = [];\r\n}\r\n\r\n// tslint:disable-next-line: max-classes-per-file\r\nexport class CsvColumn {\r\n public label: string = '';\r\n public placeholder: string = '';\r\n public property: string = '';\r\n}\r\n\r\n// tslint:disable-next-line: max-classes-per-file\r\n@Component\r\nexport default class ImportParticipantComponent extends BaseModal {\r\n @Prop({ default: () => [] }) public groups: FinanceAccount[];\r\n @Prop({ default: () => [] }) public persons: FinanceAccount[];\r\n @Prop({ default: () => InvoiceType.Income }) public type: InvoiceType;\r\n\r\n public inputModel: string = '';\r\n public inputMode: string = 'overview';\r\n public isUploadingCsv: boolean = false;\r\n public personAccounts: FinanceAccount[] = [];\r\n\r\n public lineData: InvoiceImportBase[] = [];\r\n public mapping: any[] = [];\r\n\r\n private readonly delimiter: string = ';';\r\n private csvColumns: CsvColumn[] = [\r\n { label: 'Client', placeholder: 'Bright Services', property: 'client' },\r\n { label: 'Description', placeholder: 'Annual Licences', property: 'description' },\r\n { label: 'Reference', placeholder: '1234567890', property: 'reference' },\r\n { label: 'Amount', placeholder: '1234.56', property: 'amount' },\r\n { label: 'Date', placeholder: '31/12/2020', property: 'date' },\r\n {\r\n label: 'LegalEntityReference',\r\n placeholder: ' - The name of the legal entity this invoice is referred to, when left blank current legal entity will be filled',\r\n property: 'legalEntityReference',\r\n },\r\n ];\r\n\r\n public async mounted() {\r\n await teamsModule.fetchTeamsIfNeeded();\r\n\r\n if (this.type === InvoiceType.Expenses) {\r\n const [err, response] = await to(\r\n financeAccountService.getAccounts(AccountType.Person, teamHelper.currentTeam.id, periodModule.selectedPeriod),\r\n );\r\n\r\n if (err) {\r\n return this.showFailedResponse('failed to load person accounts');\r\n }\r\n\r\n this.personAccounts = response.data;\r\n }\r\n\r\n this.groups.forEach((x) => {\r\n this.csvColumns.push({\r\n label: `${x.name}`,\r\n placeholder: ` - to create on import a distribution for ${x.name}, matches on full name, only applicable on expenses`,\r\n property: `group_${x.relatedEntityId}`,\r\n });\r\n });\r\n\r\n if (this.type === InvoiceType.Expenses) {\r\n this.persons.forEach((x) => {\r\n if (this.csvColumns.findIndex((y) => y.label === x.name) === -1) {\r\n this.csvColumns.push({\r\n label: `${x.name}`,\r\n placeholder: ` - to create on import a distribution for ${x.name}, matches on full name, only applicable on expenses`,\r\n property: `person_${x.relatedEntityId}`,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onHide() {\r\n this.inputMode = 'overview';\r\n this.lineData = [];\r\n }\r\n\r\n public importLines(): boolean {\r\n const removedDistributionInvoices = [];\r\n const self = this;\r\n self.isUploadingCsv = true;\r\n self.showPending('IMPORT_INVOICE_PENDING');\r\n\r\n const distributedInvoices = self.lineData.map((invoice: any) => {\r\n const distributedInvoice = new DistributedInvoice();\r\n invoice.source = InvoiceSource.Manual;\r\n distributedInvoice.invoice = invoice;\r\n distributedInvoice.invoice.invoiceDate = invoice.date;\r\n distributedInvoice.invoice.name = invoice.client;\r\n distributedInvoice.invoice.invoiceType = this.type;\r\n distributedInvoice.invoice.period = periodModule.selectedPeriodObject;\r\n distributedInvoice.invoice.legalEntityReferenceOrigin = invoice.legalEntityReference;\r\n\r\n distributedInvoice.distributions = invoice.distributions.map((x) => {\r\n const distribution = {\r\n amount: x.value,\r\n account: this.groups.find((g) => g.relatedEntityId === x.relatedEntityId),\r\n };\r\n\r\n if (!distribution.account) {\r\n distribution.account = this.persons.find((p) => p.relatedEntityId === x.relatedEntityId);\r\n }\r\n\r\n return distribution;\r\n });\r\n\r\n const total = distributedInvoice.distributions.reduce((a: number, b) => a + parseInt(b.amount.toString()), 0);\r\n if (Math.abs(total) > Math.abs(distributedInvoice.invoice.amount)) {\r\n delete distributedInvoice.distributions;\r\n removedDistributionInvoices.push(distributedInvoice.invoice.reference);\r\n }\r\n\r\n return distributedInvoice;\r\n });\r\n\r\n financeService\r\n .importInvoice(distributedInvoices, teamHelper.getTeamId(), null)\r\n .then((response) => {\r\n if (response) {\r\n self.isUploadingCsv = false;\r\n self.clearAndShowSuccess('IMPORT_INVOICE_SUCCESS');\r\n\r\n if (removedDistributionInvoices.length > 0) {\r\n self.showWarning(\r\n `Invoices with references ${removedDistributionInvoices.join(\r\n ', ',\r\n )} are not imported because the total distributions are greater than the total amount of the invoice`,\r\n );\r\n }\r\n\r\n this.$emit('invoices-imported', this.type);\r\n this.hide();\r\n }\r\n })\r\n .catch((error) => {\r\n self.isUploadingCsv = false;\r\n self.clearAndShowError('IMPORT_INVOICE_FAILED', error);\r\n });\r\n\r\n return true;\r\n }\r\n\r\n public fileUploaded(event) {\r\n this.loadCSV(event, new InvoiceImportBase());\r\n }\r\n\r\n public downloadExample() {\r\n this.exportExampleCSV(this.csvColumns);\r\n }\r\n\r\n public exportExampleCSV(columns: CsvColumn[]): void {\r\n const properties = [];\r\n const values = [];\r\n const lines = [];\r\n\r\n for (const prop of columns) {\r\n values.push(prop.placeholder);\r\n properties.push(prop.label);\r\n }\r\n\r\n lines.push(properties.join(';'));\r\n lines.push(values.join(';'));\r\n\r\n const blob = new Blob([lines.join('\\n')], { type: 'text/csv' });\r\n const downloadLink = document.createElement('a');\r\n downloadLink.download = 'ExampleImport.csv';\r\n downloadLink.href = window.URL.createObjectURL(blob);\r\n downloadLink.style.display = 'none';\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }\r\n\r\n public loadCSV(e: any, object: T): void {\r\n const self = this;\r\n if ((window as any).FileReader) {\r\n const reader = new FileReader();\r\n reader.readAsText(e.target.files[0]);\r\n reader.onload = (event) => {\r\n const csv = (event.target as any).result;\r\n self.processInput(csv, self.delimiter);\r\n };\r\n\r\n reader.onerror = (evt) => {\r\n if ((evt.target as any).error.name === 'NotReadableError') {\r\n alert('Cannot read file !');\r\n }\r\n };\r\n\r\n reader.onloadend = () => {\r\n return object;\r\n };\r\n } else {\r\n alert('FileReader are not supported in this browser.');\r\n }\r\n }\r\n\r\n public processPastedInput(): void {\r\n this.processInput(this.inputModel, '\\t');\r\n }\r\n\r\n public processInput(input: string, delimiter: string) {\r\n const self = this;\r\n const lines = input.split('\\n');\r\n const mapping = []; // Once to be used by a mailchimp style importer?\r\n\r\n const headers = lines[0].split(delimiter).map((header) => {\r\n return header.replace('\\r', '');\r\n });\r\n\r\n for (let i = 0; i < this.csvColumns.length; i++) {\r\n const matchingColumn = headers.findIndex((h) => {\r\n return h.length > 3 && h.toLowerCase() === this.csvColumns[i].label.toLowerCase();\r\n });\r\n\r\n if (matchingColumn !== -1) {\r\n mapping.push({ index: matchingColumn, property: this.csvColumns[i].property });\r\n }\r\n }\r\n\r\n this.mapping = mapping;\r\n\r\n for (let li = 1; li < lines.length; li++) {\r\n // Skip first line\r\n if (lines[li] == null || lines[li] === '') {\r\n continue;\r\n }\r\n\r\n const columns = lines[li].replace('\\r', '').replace('\"', '').split(delimiter);\r\n const itemLine = { distributions: [] } as InvoiceImportBase;\r\n\r\n for (let m = 0; m < mapping.length; m++) {\r\n const currentMap = mapping[m];\r\n let value = columns[currentMap.index];\r\n\r\n if (currentMap.property === 'amount') {\r\n const nanCheck = value;\r\n // @ts-ignore\r\n if (isNaN(1 * nanCheck)) {\r\n value = value.replace('.', '').replace(',', '.');\r\n }\r\n value = parseFloat(value).toString();\r\n }\r\n\r\n if (currentMap.property === 'date') {\r\n if (!value || value === '') {\r\n value = moment().format('YYYY-MM-DD');\r\n } else {\r\n value = moment(value, 'DD/MM/YYYY').format('YYYY-MM-DD');\r\n }\r\n }\r\n\r\n if (currentMap.property === 'legalEntityReference') {\r\n if (!value || value === '') {\r\n value = teamsModule.current.legalEntityReference;\r\n }\r\n }\r\n\r\n if (currentMap.property.startsWith('group_') || currentMap.property.startsWith('person_')) {\r\n if (!value || value === '' || value === '0') {\r\n continue;\r\n }\r\n\r\n const nanCheck = value;\r\n // @ts-ignore\r\n if (isNaN(1 * nanCheck)) {\r\n value = value.replace('.', '').replace(',', '.');\r\n }\r\n value = parseFloat(value).toString();\r\n\r\n itemLine.distributions.push({\r\n relatedEntityId: parseInt(currentMap.property.split('_')[1]),\r\n value,\r\n });\r\n\r\n continue;\r\n }\r\n\r\n itemLine[currentMap.property] = value.replace('\"', '');\r\n }\r\n\r\n self.lineData.push(itemLine);\r\n }\r\n }\r\n\r\n public cancelImport(): void {\r\n this.hide();\r\n }\r\n\r\n public getRelatedEntityName(relatedEntityId: number) {\r\n let entity = this.groups.find((x) => x.relatedEntityId === relatedEntityId);\r\n\r\n if (!entity) {\r\n entity = this.persons.find((x) => x.relatedEntityId === relatedEntityId);\r\n }\r\n\r\n return entity.name;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./import-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./import-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./import-modal.vue?vue&type=template&id=69999fc2&\"\nimport script from \"./import-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./import-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",on:{\"hide\":_vm.onHide}},[_c('prd-translate-text',{attrs:{\"slot\":\"modal-title\",\"element\":\"h4\",\"translate-key\":\"REMOVE_MEMBER\",\"translate-group\":\"MODALS\"},slot:\"modal-title\"}),_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"info\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"REMOVE_MEMBER_PL_EXPLANATION\",\"translate-group\":\"MODALS\"}})],1),(_vm.memberResult)?_c('div',[_c('p',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'MODALS.CURRENT_PL', params: { value: _vm.memberResult.balance, name: _vm.memberResult.member.name } }),expression:\"{ key: 'MODALS.CURRENT_PL', params: { value: memberResult.balance, name: memberResult.member.name } }\"}],staticClass:\"font-weight-bold\"}),_c('prd-translate-text',{staticClass:\"mb-2\",attrs:{\"translate-key\":\"RESPONSIBLE_GROUP_PL\",\"translate-group\":\"MODALS\"}}),_c('b-form-select',{attrs:{\"options\":_vm.optionListGroups()},model:{value:(_vm.plGroup),callback:function ($$v) {_vm.plGroup=$$v},expression:\"plGroup\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SELET_A_GROUP\",\"translate-group\":\"DROPDOWN\"}})],1)])],2),_c('prd-translate-text',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'MODALS.REMOVE_MEMBER_PL_ACTION', params: { name: _vm.memberResult.member.name } }),expression:\"{ key: 'MODALS.REMOVE_MEMBER_PL_ACTION', params: { name: memberResult.member.name } }\"}],staticClass:\"mt-5\",attrs:{\"element\":\"p\"}})],1):_vm._e(),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('div',{staticClass:\"add-member-button text-center\"},[_c('prd-translate-button',{staticClass:\"d-inline-block px-2 text-primary\",attrs:{\"disabled\":!_vm.plGroup,\"type\":\"submit\",\"translate-key\":\"REMOVE_FROM_TEAM\",\"translate-group\":\"MODALS\"},on:{\"click\":_vm.transferPLAndRemoveMember}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\nimport to from 'await-to-js';\r\nimport {\r\n teamHelper,\r\n financeAccountService,\r\n resultService,\r\n attributionService,\r\n transferService,\r\n loginHelper,\r\n groupService,\r\n teamService,\r\n} from '@/main';\r\nimport { FinanceAccount } from '@/models/Interfaces';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { Person } from '@/models/Person';\r\nimport AttributionPercentages from '@/models/Finance/AttributionPercentages';\r\nimport { AttributionType } from '@/models/AttributionType';\r\nimport Transfer from '@/models/Transfer';\r\nimport Team from '@/models/Team';\r\nimport moment from 'moment';\r\nimport { translateModule } from '@/store/modules/translate';\r\n\r\n@Component\r\nexport default class MovePLModalComponent extends BaseModal {\r\n public memberToRemove: Person = null;\r\n public memberResult: any = null;\r\n public groupAccounts: FinanceAccount[] = [];\r\n public plGroup: any = null;\r\n public attributionPercentages: AttributionPercentages = new AttributionPercentages();\r\n public attributionsAreLoading: boolean = false;\r\n\r\n public async init(item: Person) {\r\n this.memberToRemove = item;\r\n const results = await resultService.getMemberResults(teamHelper.currentTeamId, periodModule.selectedPeriod, periodModule.selectedPeriod);\r\n\r\n const result = results.items[0].item.memberResults.find((x) => x.member.personId === item.personId);\r\n this.memberResult = result;\r\n\r\n const financeGroupAccounts = await this.getFinanceGroupAccounts(teamHelper.currentTeamId);\r\n this.groupAccounts = financeGroupAccounts;\r\n }\r\n\r\n public async transferPLAndRemoveMember() {\r\n this.showPending('TRANSFERRING_PENDING');\r\n\r\n await this.loadAttributions();\r\n const amount = this.calculateFromPenLTariff(this.memberResult.balance);\r\n const transfer = new Transfer();\r\n transfer.amount = amount > 0 ? amount * -1 : amount;\r\n transfer.senderTeam = new Team({ teamId: teamHelper.currentTeam.id });\r\n transfer.receiverTeam = new Team({ teamId: teamHelper.currentTeam.id });\r\n transfer.sender = this.groupAccounts.find((x) => x.accountId === this.plGroup);\r\n transfer.reason = translateModule.value('TRANSFER_PL_CONTENT');\r\n transfer.group = transfer.sender.relatedEntityId;\r\n transfer.initiator = loginHelper.getUser().personId;\r\n transfer.invoiceType = InvoiceType.InternalIncome;\r\n transfer.period = periodModule.selectedPeriodObject.periodId;\r\n\r\n transfer.receiver = await financeAccountService.getAccount(\r\n teamHelper.currentTeamId,\r\n this.memberToRemove.personId,\r\n periodModule.selectedPeriod,\r\n );\r\n\r\n const [transferErr] = await to(transferService.doTransfer(transfer));\r\n if (transferErr) {\r\n return this.clearAndShowError('Failed to transfer P&L', transferErr);\r\n }\r\n\r\n const groups = await groupService.getGroups(teamHelper.currentTeamId, periodModule.selectedPeriod);\r\n const foundGroup = groups.data.find((x) => x.groupLead && x.groupLead.memberId === this.memberToRemove.personId);\r\n if (foundGroup) {\r\n return this.clearAndShowError(`The member you're trying to remove is still a group lead (${foundGroup.name})`, null);\r\n }\r\n this.clearNotifications();\r\n this.showPending('REMOVING_MEMBER_PENDING');\r\n const [err] = await to(\r\n teamService.removeMemberFromTeam(\r\n this.memberToRemove.personId,\r\n teamHelper.currentTeamId,\r\n moment(periodModule.selectedPeriodObject.startDate, 'YYYY-MM-DD')\r\n .add(1, 'months')\r\n .format('YYYY-MM'),\r\n ),\r\n );\r\n if (err) {\r\n return this.clearAndShowError(`REMOVING_MEMBER_FAILED`, err);\r\n }\r\n\r\n this.clearAndShowSuccess(`REMOVING_MEMBER_SUCCESS`);\r\n this.$emit('finished');\r\n this.hide();\r\n }\r\n\r\n public onHide() {\r\n this.memberToRemove = null;\r\n this.memberResult = null;\r\n this.groupAccounts = [];\r\n this.plGroup = null;\r\n\r\n this.attributionPercentages = new AttributionPercentages();\r\n }\r\n\r\n public calculateFromPenLTariff(amount) {\r\n return (\r\n amount /\r\n (1 - this.attributionPercentages.teamAttributionsPercentage / 100 / (1 - this.attributionPercentages.groupAttributionsPercentage / 100))\r\n );\r\n }\r\n\r\n public async getFinanceGroupAccounts(team: number) {\r\n const [err, response] = await to(financeAccountService.getAccounts(AccountType.GroupSavings, team, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('Failed to load group accounts', null);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public optionListGroups(): any[] {\r\n const list = this.groupAccounts.map((sender) => {\r\n return { value: sender.accountId, text: sender.name };\r\n });\r\n return list;\r\n }\r\n\r\n public async loadAttributions() {\r\n this.attributionsAreLoading = true;\r\n\r\n const groupId = this.groupAccounts.find((x) => x.accountId === this.plGroup).relatedEntityId;\r\n const [groupAttributions, groupRemittances, teamAttributions] = await Promise.all([\r\n this.getGroupAttributions(teamHelper.currentTeamId, groupId),\r\n this.getGroupRemittances(teamHelper.currentTeamId, groupId),\r\n this.getTeamAttributions(teamHelper.currentTeamId),\r\n ]);\r\n this.attributionPercentages.teamAttributionsPercentage = this.attributionPercentages.groupRemittancePercentage = this.attributionPercentages.groupAttributionsPercentage = 0;\r\n\r\n groupRemittances.forEach((attr) => {\r\n this.attributionPercentages.groupRemittancePercentage += attr.percentage;\r\n });\r\n\r\n // only do this when check box in settings is checked\r\n groupAttributions.forEach((attr) => {\r\n this.attributionPercentages.groupAttributionsPercentage += attr.percentage;\r\n });\r\n\r\n teamAttributions.forEach((attr) => {\r\n this.attributionPercentages.teamAttributionsPercentage += attr.percentage;\r\n });\r\n\r\n this.attributionsAreLoading = false;\r\n }\r\n\r\n public async getGroupAttributions(teamId: number, groupId: number) {\r\n const self = this;\r\n const [err, response] = await to(\r\n attributionService.getAttributions(AttributionType.GroupAttribution, teamId, periodModule.selectedPeriod, groupId),\r\n );\r\n if (err) {\r\n this.showFailedResponse('Failed to load group attributions', null);\r\n }\r\n\r\n self.attributionPercentages.groupAttributionsPercentage = 0;\r\n\r\n response.data.forEach((attr) => {\r\n self.attributionPercentages.groupAttributionsPercentage += attr.percentage;\r\n });\r\n\r\n return response.data;\r\n }\r\n\r\n public async getGroupRemittances(teamId: number, groupId: number) {\r\n const self = this;\r\n const [err, response] = await to(\r\n attributionService.getAttributions(AttributionType.GroupRemittance, teamId, periodModule.selectedPeriod, groupId),\r\n );\r\n if (err) {\r\n this.showFailedResponse('Failed to load group remittances', null);\r\n }\r\n\r\n self.attributionPercentages.groupRemittancePercentage = 0;\r\n\r\n response.data.forEach((attr) => {\r\n self.attributionPercentages.groupRemittancePercentage += attr.percentage;\r\n });\r\n\r\n return response.data;\r\n }\r\n\r\n public async getTeamAttributions(teamId: number) {\r\n const self = this;\r\n const [err, response] = await to(attributionService.getAttributions(AttributionType.TeamAttribution, teamId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('Failed to load team attributions', null);\r\n }\r\n\r\n self.attributionPercentages.teamAttributionsPercentage = 0;\r\n response.data.forEach((attr) => {\r\n self.attributionPercentages.teamAttributionsPercentage += attr.percentage;\r\n });\r\n\r\n return response.data;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./move-pl-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./move-pl-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./move-pl-modal.vue?vue&type=template&id=93355b4c&\"\nimport script from \"./move-pl-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./move-pl-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",on:{\"hide\":_vm.onHide}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ACOUNT_SEND_INVOICES\",\"translate-group\":\"MODALS\"}})],1),(_vm.isLoaded)?_c('b-form',[_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"RECEIVER\"}})],1),_c('div',{staticClass:\"col-md-8\"},[_c('b-form-select',{attrs:{\"options\":_vm.optionsList},model:{value:(_vm.account),callback:function ($$v) {_vm.account=$$v},expression:\"account\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_RECEIVER'),expression:\"'SELECT_RECEIVER'\"}],domProps:{\"value\":null}})])],2)],1)])])],1):_vm._e(),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('DISTRIBUTE'),expression:\"'DISTRIBUTE'\"}],attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":!_vm.account},on:{\"click\":function($event){return _vm.moveSelectedInvoicesToAccount()}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\nimport DistributedInvoice from '@/models/DistributedInvoice';\r\nimport to from 'await-to-js';\r\nimport { financeService, teamHelper, financeAccountService } from '@/main';\r\nimport { Distribution, FinanceAccount } from '@/models/Interfaces';\r\nimport Group from '@/models/Group';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class MoveToAccountModalComponent extends BaseModal {\r\n @Prop({ default: () => false }) public isExpense: boolean;\r\n @Prop({ default: () => [] }) public optionsList: any[];\r\n @Prop({ default: () => [] }) public selectedInvoices: DistributedInvoice[];\r\n @Prop({ default: () => new Group() }) public group: Group;\r\n\r\n public account: number = null;\r\n public financeGroupAccounts: FinanceAccount[];\r\n public isLoaded: boolean = false;\r\n\r\n public async mounted() {\r\n if (this.group && this.group.groupId > 0) {\r\n this.financeGroupAccounts = await this.loadGroupFinanceAccounts();\r\n }\r\n\r\n if (this.$refs.modal) {\r\n this.$refs.modal.$on('hidden.bs.BModal', this.onHide);\r\n }\r\n\r\n this.isLoaded = true;\r\n }\r\n\r\n public onHide() {\r\n this.account = null;\r\n }\r\n\r\n public async moveSelectedInvoicesToAccount() {\r\n this.showPending('DISTRIBUTING_INVOICES_PENDING');\r\n // tslint:disable-next-line: no-dead-store\r\n let [err] = [null];\r\n let account = null;\r\n if (this.group && this.group.groupId > 0 && this.financeGroupAccounts.length > 0) {\r\n // check if is group scope and check if its move out of current group\r\n account = this.financeGroupAccounts.find((x) => x.accountId === this.account);\r\n if (account) {\r\n const teamInvoices = await this.loadTeamInvoices(this.isExpense ? InvoiceType.Expenses : InvoiceType.Income);\r\n const invoiceIds = this.selectedInvoices.map((invoice) => invoice.invoice.invoiceId);\r\n const moveOutInvoices = teamInvoices.filter((tInvoice) => invoiceIds.indexOf(tInvoice.invoice.invoiceId) > -1);\r\n\r\n moveOutInvoices.forEach((invoice: DistributedInvoice) => {\r\n const groupDistribution = invoice.distributions.find(\r\n (distribution) => distribution.account.accountId === this.group.accountIncome.accountId,\r\n );\r\n if (groupDistribution) {\r\n groupDistribution.account = account;\r\n }\r\n });\r\n [err] = await to(financeService.saveDistributions(moveOutInvoices, teamHelper.getTeamId()));\r\n }\r\n }\r\n\r\n if (!account) {\r\n // when this account check is empty its a 'normal' in group/team distribution\r\n this.selectedInvoices.forEach((invoice: DistributedInvoice) => {\r\n invoice.distributions.forEach((d: Distribution) => {\r\n d.amount = 0;\r\n });\r\n\r\n const distribution = invoice.distributions.find((x) => x.account.accountId === this.account);\r\n distribution.amount = invoice.invoice.amount;\r\n });\r\n\r\n [err] = await to(financeService.saveDistributions(this.selectedInvoices, teamHelper.getTeamId(), this.group.groupId));\r\n }\r\n\r\n if (err) {\r\n return this.clearAndShowError('DISTRIBUTING_INVOICES_FAILED', null);\r\n }\r\n\r\n this.selectedInvoices.forEach((invoice) => (invoice.selected = false));\r\n this.clearAndShowSuccess('DISTRIBUTING_INVOICES_SUCCESS');\r\n\r\n this.$emit('invoice-moved', this.isExpense ? InvoiceType.Expenses : InvoiceType.Income);\r\n\r\n this.hide();\r\n }\r\n\r\n private async loadTeamInvoices(type: InvoiceType) {\r\n const invoices = await financeService.getInvoices(teamHelper.getTeamId(), null, type, null, periodModule.selectedPeriod);\r\n return invoices;\r\n }\r\n\r\n private async loadGroupFinanceAccounts() {\r\n const self = this;\r\n const [err, response] = await to(\r\n financeAccountService.getAccounts(AccountType.GroupIncome, teamHelper.currentTeam.id, periodModule.selectedPeriod),\r\n );\r\n if (err) {\r\n this.showFailedResponse('Failed to load group accounts', null);\r\n }\r\n\r\n return response.data.filter((item: FinanceAccount) => {\r\n return item.relatedEntityId !== self.group.groupId;\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./move-to-account-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./move-to-account-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./move-to-account-modal.vue?vue&type=template&id=028597d4&\"\nimport script from \"./move-to-account-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./move-to-account-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"size\":\"sm\"}},[(_vm.relationEditMode)?[_c('prd-translate-text',{attrs:{\"slot\":\"modal-title\",\"translate-key\":\"DEFINE_RELATIONSHIP\",\"translate-group\":\"MODALS\"},slot:\"modal-title\"}),_c('p',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'MODALS.DEFINE_RELATIONSHIP_EXPLANATION', params: { from: _vm.from, to: _vm.to } }),expression:\"{ key: 'MODALS.DEFINE_RELATIONSHIP_EXPLANATION', params: { from: from, to: to } }\"}],staticClass:\"mb-4\"},[_vm._v(\" Define relationship for transfers from \"),_c('b',[_vm._v(_vm._s(_vm.from))]),_vm._v(\" to \"),_c('b',[_vm._v(_vm._s(_vm.to))])])]:[_c('prd-translate-text',{attrs:{\"slot\":\"modal-title\",\"translate-key\":\"VIEW_RELATIONSHIP_SETTINGS\",\"translate-group\":\"MODALS\"},slot:\"modal-title\"})],_c('b-form-group',[_c('prd-translate-text',{attrs:{\"translate-key\":\"SALES_LEDGER_ACCOUNT\",\"translate-group\":\"MODALS\"}}),_c('b-form-select',{attrs:{\"options\":_vm.getOptionListLedgers(),\"disabled\":!_vm.relationEditMode},model:{value:(_vm.settings.salesLedger.ledgerId),callback:function ($$v) {_vm.$set(_vm.settings.salesLedger, \"ledgerId\", $$v)},expression:\"settings.salesLedger.ledgerId\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_OPTION'),expression:\"'SELECT_OPTION'\"}],domProps:{\"value\":null}})])],2)],1),_c('b-form-group',[_c('prd-translate-text',{attrs:{\"translate-key\":\"PURCHASE_LEDGER_ACCOUNT\",\"translate-group\":\"MODALS\"}}),_c('b-form-select',{attrs:{\"options\":_vm.getOptionListLedgers(),\"disabled\":!_vm.relationEditMode},model:{value:(_vm.settings.purchaseLedger.ledgerId),callback:function ($$v) {_vm.$set(_vm.settings.purchaseLedger, \"ledgerId\", $$v)},expression:\"settings.purchaseLedger.ledgerId\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_OPTION'),expression:\"'SELECT_OPTION'\"}],domProps:{\"value\":null}})])],2)],1),_c('b-form-group',[_c('prd-translate-text',{attrs:{\"translate-key\":\"INTELECTUAL_PROPERTY_LIMITATION\",\"translate-group\":\"MODALS\"}}),_c('b-form-select',{attrs:{\"options\":_vm.getOptionListIPL(),\"disabled\":!_vm.relationEditMode},model:{value:(_vm.settings.intellectualPropertyLimitation.intellectualPropertyLimitationId),callback:function ($$v) {_vm.$set(_vm.settings.intellectualPropertyLimitation, \"intellectualPropertyLimitationId\", $$v)},expression:\"settings.intellectualPropertyLimitation.intellectualPropertyLimitationId\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_OPTION'),expression:\"'SELECT_OPTION'\"}],domProps:{\"value\":null}})])],2)],1),_c('b-form-group',[_c('prd-translate-text',{attrs:{\"translate-key\":\"TAX_RATE\",\"translate-group\":\"MODALS\"}}),_c('b-form-select',{attrs:{\"options\":_vm.getOptionListTaxRates(),\"disabled\":!_vm.relationEditMode},model:{value:(_vm.settings.taxRateId),callback:function ($$v) {_vm.$set(_vm.settings, \"taxRateId\", $$v)},expression:\"settings.taxRateId\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_OPTION'),expression:\"'SELECT_OPTION'\"}],domProps:{\"value\":null}})])],2)],1),(_vm.relationEditMode)?[_c('b-button',{attrs:{\"slot\":\"modal-footer\",\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$refs.modal.hide()}},slot:\"modal-footer\"},[_vm._v(\"Cancel\")]),_c('b-button',{attrs:{\"slot\":\"modal-footer\",\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.updateSettings},slot:\"modal-footer\"},[_vm._v(\"Save\")])]:[_c('b-button',{attrs:{\"slot\":\"modal-footer\",\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$refs.modal.hide()}},slot:\"modal-footer\"},[_vm._v(\"Close\")])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { relationService } from '@/main';\r\nimport Relation, { IntellectualPropertyLimitation, RelationSettings, TaxRate } from '@/models/Finance/Relation';\r\nimport { ledgerModule } from '@/store/modules/ledger';\r\nimport to from 'await-to-js';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\n\r\n@Component\r\nexport default class RelationSettingsModal extends BaseModal {\r\n @Prop() public entityName: string;\r\n @Prop() public from: string;\r\n @Prop() public to: string;\r\n @Prop({ default: true }) public relationEditMode: boolean;\r\n @Prop({ default: () => [] }) public intellectualPropertyLimitations: IntellectualPropertyLimitation[];\r\n @Prop({ default: () => [] }) public taxRates: TaxRate[];\r\n\r\n public settings: RelationSettings = new RelationSettings();\r\n\r\n public salesLedger: any = null;\r\n public purchaseLedger: any = null;\r\n public relation: Relation = null;\r\n public taxRate: any = null;\r\n\r\n public async created() {\r\n await ledgerModule.fetchLedgersIfNeeded();\r\n }\r\n\r\n public setData(relation: Relation, settings?: RelationSettings) {\r\n if (settings) {\r\n this.settings = new RelationSettings(settings);\r\n } else {\r\n this.settings = new RelationSettings();\r\n }\r\n\r\n this.relation = relation;\r\n }\r\n\r\n public getOptionListLedgers() {\r\n return ledgerModule.ledgers.map((ledger) => {\r\n return { value: ledger.ledgerId, text: ledger.name };\r\n });\r\n }\r\n\r\n public getOptionListIPL() {\r\n return this.intellectualPropertyLimitations.map((ledger) => {\r\n return { value: ledger.intellectualPropertyLimitationId, text: ledger.name };\r\n });\r\n }\r\n\r\n public getOptionListTaxRates() {\r\n return this.taxRates.map((taxRate) => {\r\n return { value: taxRate.taxRateId, text: taxRate.description };\r\n });\r\n }\r\n\r\n public async updateSettings() {\r\n this.showPending('SAVING_RELATION_SETTINGS_PENDING');\r\n const [err] = await to(relationService.createOrUpdateSettings(this.relation.relationId, this.settings));\r\n if (err) {\r\n this.clearAndShowError('SAVING_RELATION_SETTINGS_FAILED', err);\r\n }\r\n\r\n this.hide();\r\n this.clearAndShowSuccess('SAVING_RELATION_SETTINGS_SUCCESS');\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./relation-settings-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./relation-settings-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./relation-settings-modal.vue?vue&type=template&id=5ccf7af5&\"\nimport script from \"./relation-settings-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./relation-settings-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"title\":\"Save settings\"},on:{\"hide\":_vm.onHide}},[(_vm.isLoaded)?_c('b-form',[_c('b-form-group',[_c('div',{staticClass:\"row mb-5\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\"In which period do the new attributions need to take effect?\")])]),_c('div',{staticClass:\"col-md-12\"},[_c('b-form-select',{attrs:{\"options\":_vm.optionsList()},model:{value:(_vm.period),callback:function ($$v) {_vm.period=$$v},expression:\"period\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SELECT_PERIOD\"}})],1)])],2)],1)])])],1):_vm._e(),_c('div',[_c('p',[_c('strong',[_vm._v(\"Changing your team attributions may have a big impact on your finance.\")]),_vm._v(\" We always advice to make the changes effect in the next period. \")]),_c('p',[_vm._v(\"When changing attributions always keep in mind of the following:\")]),_c('ul',[_c('li',[_vm._v(\" Invoices already distributed since the selected period won't be redistributed. So the current attributions of these transaction are still distributed to the 'old' attribution groups. \")]),_c('li',[_vm._v(\"For transfers the above also applies.\")]),_c('li',[_vm._v(\"Finance totals of groups and teams will be misrepresented in the overviews.\")]),_c('li',[_vm._v(\"Actual data will be correct\")])]),_c('strong',[_vm._v(\"Possible fix(es):\")]),_c('ul',[_c('li',[_vm._v(\" After changing the attributions the 'issues' above can be solved by re-do the distributions or the transfers. \")])])]),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('prd-translate-button',{attrs:{\"action\":_vm.saveSettings,\"disabled\":!_vm.period,\"translate-key\":\"SAVE_SETTINGS\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\nimport { teamHelper, attributionService } from '@/main';\r\nimport Attribution from '@/models/Attribution';\r\nimport moment from 'moment';\r\nimport { AttributionType } from '@/models/AttributionType';\r\nimport Group from '@/models/Group';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class SaveAttributionsModalComponent extends BaseModal {\r\n @Prop({ default: () => new Group() }) public group: Group;\r\n\r\n @Prop({ default: () => [] }) public groupAttributions: Attribution[];\r\n @Prop({ default: () => [] }) public resourceAttributions: Attribution[];\r\n @Prop({ default: () => [] }) public servicesAttributions: Attribution[];\r\n // tslint:disable-next-line: no-empty\r\n @Prop({ default: () => {} }) public groupFinanceSettings: any;\r\n\r\n public isLoaded: boolean = false;\r\n public period: number = 9999;\r\n public isTeamScope: boolean = false;\r\n\r\n public async mounted() {\r\n this.period = periodModule.periods[0].periodId + 1;\r\n this.isTeamScope = !this.group || this.group.groupId === 0;\r\n this.isLoaded = true;\r\n }\r\n\r\n public onHide() {\r\n this.period = periodModule.periods[0].periodId + 1;\r\n }\r\n\r\n public optionsList() {\r\n const periods = periodModule.periods;\r\n\r\n const list = periods.map((period) => {\r\n return {\r\n text: moment(period.startDate).format(`MMMM 'YY`),\r\n value: period.periodId,\r\n apiFormat: moment(period.startDate).format(`YYYY-MM`),\r\n };\r\n });\r\n\r\n list.unshift({\r\n text: `Next period (${moment()\r\n .add(1, 'months')\r\n .format(`MMMM 'YY`)})`,\r\n value: periodModule.periods[0].periodId + 1,\r\n apiFormat: `${moment()\r\n .add(1, 'months')\r\n .format(`YYYY-MM`)}`,\r\n });\r\n\r\n return list;\r\n }\r\n public async saveSettings() {\r\n let postResourcesModel = [];\r\n let postGroupModel = [];\r\n let postModel = [];\r\n const errors = [];\r\n const periodString = this.optionsList().find((x) => x.value === this.period).apiFormat;\r\n\r\n this.showPending('SAVING_ATTRIBUTIONS_PENDING');\r\n\r\n if (!this.isTeamScope) {\r\n postResourcesModel = this.resourceAttributions.map((item) => {\r\n return {\r\n attributionId: item.attributionId,\r\n attributionType: AttributionType.GroupAttribution,\r\n percentage: !isNaN(item.percentage) ? parseFloat(item.percentage) : item.percentage,\r\n team: teamHelper.getTeamId(),\r\n group: this.group.groupId,\r\n targetGroup: item.targetGroupModel.groupId,\r\n targetTeam: item.targetTeamModel.teamId,\r\n };\r\n });\r\n\r\n try {\r\n await attributionService.saveAttributions(\r\n postResourcesModel,\r\n AttributionType.GroupAttribution,\r\n teamHelper.currentTeam.id,\r\n periodString,\r\n this.group.groupId,\r\n );\r\n } catch (e) {\r\n console.error(e);\r\n errors.push('Could not save group attributions.');\r\n }\r\n }\r\n\r\n if (!this.isTeamScope) {\r\n postGroupModel = this.groupAttributions.map((item) => {\r\n return {\r\n attributionId: item.attributionId,\r\n attributionType: AttributionType.GroupRemittance,\r\n percentage: !isNaN(item.percentage) ? parseFloat(item.percentage) : item.percentage,\r\n team: teamHelper.currentTeam.id,\r\n group: this.group.groupId,\r\n name: item.name,\r\n targetGroup: this.group.groupId,\r\n };\r\n });\r\n\r\n try {\r\n await attributionService.saveAttributions(\r\n postGroupModel,\r\n AttributionType.GroupRemittance,\r\n teamHelper.currentTeam.id,\r\n periodString,\r\n this.group.groupId,\r\n );\r\n } catch (e) {\r\n console.error(e);\r\n errors.push('Could not save remmittance.');\r\n }\r\n }\r\n\r\n if (this.isTeamScope) {\r\n postModel = this.servicesAttributions.map((item) => {\r\n return {\r\n attributionId: item.attributionId,\r\n attributionType: AttributionType.TeamAttribution,\r\n percentage: !isNaN(item.percentage) ? parseFloat(item.percentage) : item.percentage,\r\n team: teamHelper.currentTeam.id,\r\n targetGroup: item.targetGroupModel.groupId,\r\n targetTeam: item.targetTeamModel.teamId,\r\n };\r\n });\r\n\r\n try {\r\n await attributionService.saveAttributions(postModel, AttributionType.TeamAttribution, teamHelper.getTeamId(), periodString);\r\n } catch (e) {\r\n console.error(e);\r\n errors.push('Could not save service attributions.');\r\n }\r\n }\r\n\r\n if (errors.length === 0) {\r\n this.$emit('settings-saved');\r\n this.clearAndShowSuccess('SUCCESS');\r\n this.hide();\r\n } else {\r\n this.clearAndShowError(errors.join('
'), null);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./save-attributions-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./save-attributions-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./save-attributions-modal.vue?vue&type=template&id=4e148320&\"\nimport script from \"./save-attributions-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./save-attributions-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"hide-footer\":\"\"},on:{\"hide\":_vm.onHide}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_vm._v(_vm._s(_vm.title))]),(_vm.editIsLoading)?_c('prd-loader',{attrs:{\"center\":\"\"}},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-form',[(_vm.type === 'PersonToPerson' && !_vm.meScope)?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\"Your team member\")])]),_c('div',{staticClass:\"col-md-12\"},[_c('b-form-select',{class:{ 'is-invalid': !_vm.isTransferValid.receiver },attrs:{\"disabled\":_vm.editMode,\"options\":_vm.optionListReceivers()},model:{value:(_vm.transfer.receiverId),callback:function ($$v) {_vm.$set(_vm.transfer, \"receiverId\", $$v)},expression:\"transfer.receiverId\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SELECT_RECEIVER\"}})],1)])],2)],1)])]):_vm._e(),(\n (_vm.teams && !_vm.memberCompensation && _vm.type !== 'PersonToPerson') ||\n (_vm.type === 'PersonToPerson' && !_vm.meScope && _vm.transfer.receiver && _vm.transfer.receiverId > 0) ||\n (_vm.type === 'PersonToPerson' && _vm.meScope)\n )?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\"Receiving team\")])]),_c('div',{staticClass:\"col-md-12\"},[_c('b-form-select',{class:{ 'is-invalid': !_vm.isTransferValid.team },attrs:{\"disabled\":_vm.editMode || _vm.readonly,\"options\":_vm.optionListOtherTeams()},model:{value:(_vm.transfer.receiverTeam.teamId),callback:function ($$v) {_vm.$set(_vm.transfer.receiverTeam, \"teamId\", $$v)},expression:\"transfer.receiverTeam.teamId\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_TEAM\"}})],1)])],2)],1)])]):_vm._e(),(_vm.type === 'GroupToPerson' || _vm.type === 'GroupToGroup')?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\"Receiver\")])]),_c('div',{staticClass:\"col-md-12\"},[_c('b-form-select',{class:{ 'is-invalid': !_vm.isTransferValid.receiver },attrs:{\"disabled\":_vm.editMode || _vm.readonly,\"options\":_vm.optionListReceivers()},model:{value:(_vm.transfer.receiverId),callback:function ($$v) {_vm.$set(_vm.transfer, \"receiverId\", $$v)},expression:\"transfer.receiverId\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SELECT_RECEIVER\"}})],1)])],2)],1)])]):_vm._e(),(_vm.type === 'PersonToPerson' && _vm.transfer.receiverTeam && _vm.transfer.receiverTeam.teamId > 0)?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('p',{staticClass:\"col-md-12 mt-4 text-info font-italic font-weight-bold\"},[(_vm.meScope)?_c('span',[_vm._v(\"Your\")]):_c('span',[_vm._v(_vm._s(this.transfer.sender.name))]),_vm._v(\" current balance is \"+_vm._s(_vm.getCurrentBalance())+\". \"),(_vm.currentBalance > 0)?_c('span',[_vm._v(\" This is the maximum you can transfer. \")]):_c('span',[_vm._v(\" With this balance a transfer isn't possible. \")])]),_c('p',{staticClass:\"col-md-12 text-info font-italic font-weight-bold\"},[_c('span',[_vm._v(\"Amount left to transfer \"+_vm._s(_vm.getBalanceWithoutAmount()))])])])]):_vm._e(),(\n (_vm.type === 'PersonToPerson' && _vm.currentBalance > 0 && _vm.transfer.receiverTeam && _vm.transfer.receiverTeam.teamId > 0) ||\n _vm.type !== 'PersonToPerson'\n )?[(_vm.attributionsAreLoading)?_c('div',{staticClass:\"d-flex justify-content-center p-2\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('div',[_c('b-form-group',[(!_vm.PersonToPerson)?_c('label',[_vm._v(\" Invoice amount (external rate) \"),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:('Tooltip?'),expression:\"'Tooltip?'\"}],staticClass:\"icon-info\"})]):(_vm.PersonToPerson)?_c('label',[_vm._v(\" Amount \"),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:('Tooltip?'),expression:\"'Tooltip?'\"}],staticClass:\"icon-info\"})]):_vm._e(),_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('prd-numeric-input',{staticClass:\"form-control form-control-sm\",class:{ 'is-invalid': !_vm.isTransferValid.amount },attrs:{\"output-dec-seperator\":\",\",\"convert-on\":\"input\",\"disabled\":!_vm.transfer.receiverId || _vm.readonly},nativeOn:{\"focus\":function($event){_vm.amountIsDirty = true;\n _vm.internalAmountIsDirty = false;},\"blur\":function($event){_vm.amountIsDirty = false}},model:{value:(_vm.amount),callback:function ($$v) {_vm.amount=$$v},expression:\"amount\"}})],1)],1),(_vm.GroupToPerson || (_vm.GroupToGroup && !this.applyMissingAttributions))?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\" Invoice amount (ecosystem rate) \"),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:('Tooltip?'),expression:\"'Tooltip?'\"}],staticClass:\"icon-info\"})])]),_c('div',{staticClass:\"col-md-12\"},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('prd-numeric-input',{staticClass:\"form-control form-control-sm\",class:{ 'is-invalid': !_vm.isTransferValid.internalAmount },attrs:{\"output-dec-seperator\":\",\",\"convert-on\":\"input\",\"disabled\":!_vm.transfer.receiverId || _vm.GroupToPerson || _vm.readonly},nativeOn:{\"focus\":function($event){_vm.internalAmountIsDirty = true;\n _vm.amountIsDirty = false;},\"blur\":function($event){_vm.internalAmountIsDirty = false}},model:{value:(_vm.internalAmount),callback:function ($$v) {_vm.internalAmount=$$v},expression:\"internalAmount\"}})],1)],1)])]):_vm._e(),(_vm.GroupToGroup && this.applyMissingAttributions)?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\"Group Attribution\")])]),_c('div',{staticClass:\"col-md-8\"},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-input',{attrs:{\"size\":\"sm\",\"disabled\":true},model:{value:(_vm.groupAttribution),callback:function ($$v) {_vm.groupAttribution=$$v},expression:\"groupAttribution\"}})],1)],1)])]):_vm._e(),(_vm.GroupToPerson && this.applyMissingAttributions)?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\"Group Remittance\")])]),_c('div',{staticClass:\"col-md-12\"},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-input',{attrs:{\"size\":\"sm\",\"disabled\":true},model:{value:(_vm.groupRemittance),callback:function ($$v) {_vm.groupRemittance=$$v},expression:\"groupRemittance\"}})],1)],1)])]):_vm._e(),(_vm.GroupToPerson)?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\"Team attributions\")])]),_c('div',{staticClass:\"col-md-12\"},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('b-form-input',{attrs:{\"size\":\"sm\",\"disabled\":true},model:{value:(_vm.teamAttribution),callback:function ($$v) {_vm.teamAttribution=$$v},expression:\"teamAttribution\"}})],1)],1)])]):_vm._e(),(_vm.GroupToPerson)?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('label',[_vm._v(\"Amount received on P&L\")])]),_c('div',{staticClass:\"col-md-12\"},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('prd-numeric-input',{staticClass:\"form-control form-control-sm\",attrs:{\"output-dec-seperator\":\",\",\"convert-on\":\"input\",\"disabled\":!_vm.transfer.receiverId},nativeOn:{\"focus\":function($event){_vm.penlAmmountIsDirty = true;\n _vm.amountIsDirty = false;},\"blur\":function($event){_vm.penlAmmountIsDirty = false}},model:{value:(_vm.penlAmmount),callback:function ($$v) {_vm.penlAmmount=$$v},expression:\"penlAmmount\"}})],1)],1)])]):_vm._e()],1),_c('b-form-group',[_c('prd-translate-text',{attrs:{\"translate-key\":\"DESCRIPTION\"}}),_c('b-form-textarea',{class:{ 'is-invalid': !_vm.isTransferValid.reason },attrs:{\"disabled\":_vm.readonly},model:{value:(_vm.transfer.reason),callback:function ($$v) {_vm.$set(_vm.transfer, \"reason\", $$v)},expression:\"transfer.reason\"}})],1),_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"disabled\":_vm.readonly},model:{value:(_vm.isRecurring),callback:function ($$v) {_vm.isRecurring=$$v},expression:\"isRecurring\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"RECURRING_TRANSFER\"}})],1)],1),(_vm.isRecurring)?_c('b-form-group',[_c('prd-translate-text',{attrs:{\"translate-key\":\"RECURS_EVERY\"}}),_c('b-form-select',{attrs:{\"disabled\":_vm.readonly},model:{value:(_vm.transferSchedule),callback:function ($$v) {_vm.transferSchedule=$$v},expression:\"transferSchedule\"}},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MONTHLY'),expression:\"'MONTHLY'\"}],attrs:{\"value\":\"Monthly\"}}),_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('QUARTERLY'),expression:\"'QUARTERLY'\"}],attrs:{\"value\":\"Quarterly\"}})])],1):_vm._e()]:_vm._e()],2),(!_vm.readonly)?_c('div',{staticClass:\"modal-footer justify-content-between align-items-start px-0 pb-2\"},[(_vm.applyMissingAttributions)?_c('p',{staticClass:\"mb-0 text-info d-inline text-left mr-10\"},[_c('span',{staticClass:\"k-icon k-i-info\"}),_vm._v(\" On this transfer missing attributions will be applied. \")]):_vm._e(),(_vm.type === 'GroupToPerson' && !_vm.applyMissingAttributions)?_c('p',{staticClass:\"mb-2 cursor-pointer text-info\",on:{\"click\":_vm.goToGroupTransfers}},[_vm._v(\" Want to make transfer to another group? \"),_c('br')]):_vm._e(),(_vm.type === 'GroupToGroup' && !_vm.applyMissingAttributions)?_c('p',{staticClass:\"mb-2 cursor-pointer text-info\",on:{\"click\":function($event){return _vm.goToGroupOverview()}}},[_vm._v(\" Want to compensate a member in \"+_vm._s(_vm.group.name)+\"? \"),_c('br')]):_vm._e(),_c('p',[_vm._v(\" \")]),(_vm.isRecurring)?_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"action\":_vm.createRecurringTransfer,\"translate-key\":\"MODALS.CREATE_RECURRING_TRANSFER\"}}):_c('prd-action-btn',{attrs:{\"disabled\":_vm.type === 'PersonToPerson' && _vm.currentBalance <= 0,\"variant\":\"primary\",\"action\":_vm.doTransfer}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\nimport {\r\n teamHelper,\r\n attributionService,\r\n financeAccountService,\r\n teamService,\r\n memberHelper,\r\n loginHelper,\r\n transferService,\r\n periodService,\r\n} from '@/main';\r\nimport Transfer from '@/models/Transfer';\r\nimport { FinanceAccount } from '@/models/Interfaces';\r\nimport Group from '@/models/Group';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport to from 'await-to-js';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport { AttributionType } from '@/models/AttributionType';\r\nimport AttributionPercentages from '@/models/Finance/AttributionPercentages';\r\nimport { TransferType } from '@/models/TransferType';\r\nimport Vue from 'vue';\r\nimport Team from '@/models/Team';\r\nimport { Person } from '@/models/Person';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport IRecurringTransferRequest from '@/interfaces/IRecurringTransferRequest';\r\nimport IRecurringTransfer from '@/interfaces/IRecurringTransfer';\r\nimport { translateModule } from '@/store/modules/translate';\r\n\r\n@Component\r\nexport default class TransferModalComponent extends BaseModal {\r\n @Prop({ default: () => 'Make transfer' }) public title: string;\r\n @Prop({ default: () => 'Finalize transfer' }) public buttonText: string;\r\n @Prop({ default: () => new Group() }) public group: Group;\r\n @Prop({ default: () => new Transfer() }) public transfer: Transfer;\r\n @Prop({ default: () => null }) public selectedTeamId: number;\r\n @Prop({ default: () => null }) public selectedGroupId: number;\r\n @Prop({ default: () => TransferType.Unknown }) public type;\r\n @Prop({ default: false }) public meScope;\r\n @Prop({ default: null }) public recurringTransfer: IRecurringTransfer;\r\n @Prop({ default: false }) public readonly: boolean;\r\n @Prop({ default: false }) public memberCompensation: boolean;\r\n\r\n public receivingAccounts: FinanceAccount[] = [];\r\n public sendingAccounts: FinanceAccount[] = [];\r\n\r\n public editMode: boolean = false;\r\n public editIsLoading: boolean = false;\r\n\r\n public receivingTeams: Team[] = [];\r\n public teams: Team[] = [];\r\n\r\n public amountIsDirty: boolean = false;\r\n public amount: number = 0;\r\n\r\n public internalAmountIsDirty: boolean = false;\r\n public internalAmount: number = 0;\r\n\r\n public penlAmmountIsDirty: boolean = false;\r\n public penlAmmount: number = 0;\r\n\r\n public calculatedAmount: number = 0;\r\n public groupRemittance: number = 0;\r\n public teamAttribution: number = null;\r\n public groupAttribution: number = null;\r\n\r\n public attributionPercentages: AttributionPercentages = new AttributionPercentages();\r\n\r\n public attributionsAreLoading: boolean = false;\r\n\r\n public GroupToGroup: boolean = false;\r\n public GroupToPerson: boolean = false;\r\n public PersonToPerson: boolean = false;\r\n public currentBalance: number = 0;\r\n public selectedPerson: Person = null;\r\n\r\n public applyMissingAttributions: boolean = false;\r\n\r\n public otherTeamKey: string = null;\r\n public otherTeam: Team = null;\r\n\r\n public isTransferValid: any = {\r\n amount: true,\r\n sender: true,\r\n receiver: true,\r\n reason: true,\r\n internalAmount: true,\r\n team: true,\r\n };\r\n public isRecurring: boolean = false;\r\n public transferSchedule: string = '';\r\n\r\n @Watch('transfer.receiverTeam.teamId', { deep: true, immediate: true })\r\n public async onTeamSelected(val: number, oldVal: number) {\r\n if (val && val !== oldVal && !this.isRecurring) {\r\n const team = this.teams.find((t) => t.teamId === val);\r\n\r\n if (team) {\r\n const teamPeriods = await periodService.getPeriods(team.teamId);\r\n const teamPeriod = teamPeriods.find((x) => x.periodId === periodModule.selectedPeriodObject.periodId);\r\n if (teamPeriod && teamPeriod.closed) {\r\n this.showWarning('OTHER_TEAM_PERIOD_CLOSED_WARNING');\r\n return;\r\n } else {\r\n this.clearNotifications();\r\n }\r\n\r\n if (this.group && this.group.groupId > 0) {\r\n if (this.type === TransferType.GroupToGroup) {\r\n const financeGroupAccounts = await this.getFinanceGroupAccounts(team.teamId);\r\n this.receivingAccounts = financeGroupAccounts;\r\n }\r\n\r\n if (this.type === TransferType.GroupToPerson && this.memberCompensation) {\r\n const financePersonAccounts = await this.getFinancePersonsAccounts(team.teamId, this.group.groupId);\r\n this.receivingAccounts = financePersonAccounts;\r\n }\r\n this.setReceiverTransferTeam(team);\r\n }\r\n\r\n if (!this.editMode && this.type !== TransferType.PersonToPerson) {\r\n this.transfer.receiverId = null;\r\n }\r\n } else {\r\n const newTeam = new Team();\r\n this.setReceiverTransferTeam(newTeam);\r\n this.receivingAccounts = [];\r\n }\r\n }\r\n }\r\n\r\n @Watch('transfer.receiverId')\r\n public async onReceiverSelected(val) {\r\n if (!val && this.isRecurring) {\r\n return;\r\n }\r\n\r\n if (!this.editMode) {\r\n this.amount = 0;\r\n this.internalAmount = 0;\r\n\r\n this.transfer.receiver = this.receivingAccounts.find((account) => account.accountId === this.transfer.receiverId);\r\n\r\n if (this.type === TransferType.PersonToPerson && !this.meScope) {\r\n this.transfer.sender = this.transfer.receiver;\r\n }\r\n\r\n this.setTransferDirections();\r\n\r\n if (this.type === TransferType.GroupToGroup || this.type === TransferType.GroupToPerson) {\r\n this.attributionsAreLoading = true;\r\n\r\n const [groupAttributions, groupRemittances, teamAttributions] = await Promise.all([\r\n this.getGroupAttributions(\r\n this.transfer.receiverTeam.teamId,\r\n this.GroupToGroup ? this.transfer.receiver.relatedEntityId : this.group.groupId,\r\n ),\r\n this.getGroupRemittances(\r\n this.transfer.receiverTeam.teamId,\r\n this.GroupToGroup ? this.transfer.receiver.relatedEntityId : this.group.groupId,\r\n ),\r\n this.getTeamAttributions(this.transfer.receiverTeam.teamId),\r\n ]);\r\n this.attributionPercentages.teamAttributionsPercentage = this.attributionPercentages.groupRemittancePercentage = this.attributionPercentages.groupAttributionsPercentage = 0;\r\n\r\n groupRemittances.forEach((attr) => {\r\n this.attributionPercentages.groupRemittancePercentage += attr.percentage;\r\n });\r\n\r\n // only do this when check box in settings is checked\r\n groupAttributions.forEach((attr) => {\r\n this.attributionPercentages.groupAttributionsPercentage += attr.percentage;\r\n });\r\n\r\n teamAttributions.forEach((attr) => {\r\n this.attributionPercentages.teamAttributionsPercentage += attr.percentage;\r\n });\r\n\r\n this.attributionsAreLoading = false;\r\n }\r\n\r\n if (this.PersonToPerson) {\r\n await this.getPersonalAmountToSpent();\r\n\r\n if (!this.meScope) {\r\n const [err, response] = await to(teamService.getMembers(teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (err) {\r\n return this.clearAndShowError('Failed to load teammemberships', err);\r\n }\r\n this.selectedPerson = response.find((x) => x.personId === this.transfer.sender.relatedEntityId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n @Watch('amount')\r\n public onAmountChanged(val: any) {\r\n if (!this.internalAmountIsDirty && !this.penlAmmountIsDirty) {\r\n // this only works cuz output of prd-numeric-input is ,\r\n if (isNaN(val)) {\r\n val = parseFloat(val.replace(',', '.').toString());\r\n }\r\n const result = this.calculateTariff(val, true);\r\n this.internalAmount = result;\r\n\r\n if (this.GroupToPerson || (this.GroupToGroup && this.applyMissingAttributions)) {\r\n this.calculateAttributions(val);\r\n }\r\n }\r\n }\r\n @Watch('internalAmount')\r\n public onInternalAmountChanged(val: any) {\r\n if (!this.amountIsDirty) {\r\n // this only works cuz output of prd-numeric-input is ,\r\n if (isNaN(val)) {\r\n val = parseFloat(val.replace(',', '.').toString());\r\n }\r\n const result = this.calculateTariff(val, false);\r\n this.amount = result;\r\n\r\n if (this.GroupToPerson) {\r\n this.calculateAttributions(val, false);\r\n }\r\n }\r\n }\r\n\r\n @Watch('penlAmmount')\r\n public onPenLAmountChanged(val: any) {\r\n if (!this.amountIsDirty) {\r\n // this only works cuz output of prd-numeric-input is ,\r\n if (isNaN(val)) {\r\n val = parseFloat(val.replace(',', '.').toString());\r\n }\r\n\r\n const result = this.calculateFromPenLTariff(val);\r\n this.internalAmount = result;\r\n\r\n if (this.GroupToPerson) {\r\n this.calculateAttributions(val, false);\r\n }\r\n }\r\n }\r\n\r\n public async init() {\r\n this.editIsLoading = true;\r\n this.show();\r\n\r\n this.teams = await teamService.getTeams();\r\n\r\n if (this.selectedTeamId) {\r\n this.transfer.senderTeam = { ...this.teams.find((x) => x.teamId === this.selectedTeamId) };\r\n }\r\n\r\n if (this.group && this.group.groupId > 0) {\r\n this.sendingAccounts = await this.getFinanceGroupSavingAccounts(teamHelper.currentTeamId);\r\n this.transfer.sender = this.group.account;\r\n this.transfer.senderId = this.group.account.accountId;\r\n this.setReceiverTransferTeam(this.transfer.senderTeam);\r\n\r\n const attributionSettings = await this.getAttributionsSettings(this.group.groupId);\r\n this.applyMissingAttributions = attributionSettings.applyMissingAttributionsOnTransfer;\r\n this.transfer.includeMissingAttributions = this.applyMissingAttributions;\r\n this.transfer.invoiceType = this.applyMissingAttributions ? InvoiceType.Income : InvoiceType.InternalIncome;\r\n }\r\n\r\n if (this.type === TransferType.PersonToPerson && !this.meScope) {\r\n const financePersonAccounts = await this.getFinancePersonsAccounts(teamHelper.currentTeamId);\r\n const members = await memberHelper.getMembers(true);\r\n const list = financePersonAccounts.filter((acc) => {\r\n const member = members.find((m) => m.personId === acc.relatedEntityId);\r\n if (member && member.teamMemberships.length > 1) {\r\n return acc;\r\n }\r\n });\r\n this.receivingAccounts = list;\r\n }\r\n\r\n if (this.type === TransferType.PersonToPerson && this.meScope) {\r\n const currentUser = loginHelper.getUser();\r\n const period = periodModule.selectedPeriod;\r\n const financeAccount = await financeAccountService.getAccount(teamHelper.currentTeam.id, currentUser.personId, period);\r\n\r\n this.receivingAccounts = [financeAccount];\r\n\r\n this.transfer.sender = financeAccount;\r\n this.transfer.senderId = financeAccount.accountId;\r\n this.transfer.receiver = financeAccount;\r\n this.transfer.receiverId = financeAccount.accountId;\r\n this.transfer.senderTeam = this.teams.find((x) => x.teamId === teamHelper.currentTeamId);\r\n\r\n await this.getPersonalAmountToSpent();\r\n }\r\n\r\n this.editIsLoading = false;\r\n }\r\n\r\n public async initTransfer(transfer: Transfer) {\r\n await this.init();\r\n\r\n Object.assign(this.transfer, { ...transfer });\r\n\r\n this.transfer.receiverId = this.transfer.receiver.accountId;\r\n this.transfer.senderId = this.transfer.sender.accountId;\r\n\r\n this.applyMissingAttributions = this.transfer.invoiceType === InvoiceType.Income;\r\n\r\n this.setTransferDirections();\r\n\r\n this.attributionsAreLoading = true;\r\n\r\n if (this.transfer.receiver.accountType === AccountType.GroupIncome) {\r\n await this.getGroupAttributions(this.transfer.receiverTeam.teamId, this.transfer.receiver.relatedEntityId);\r\n }\r\n\r\n if (this.transfer.receiver.accountType === AccountType.Person) {\r\n await this.getGroupAttributions(\r\n this.transfer.receiverTeam.teamId,\r\n this.GroupToGroup ? this.transfer.receiver.relatedEntityId : this.group.groupId,\r\n );\r\n await this.getGroupRemittances(\r\n this.transfer.receiverTeam.teamId,\r\n this.GroupToGroup ? this.transfer.receiver.relatedEntityId : this.group.groupId,\r\n );\r\n await this.getTeamAttributions(this.transfer.receiverTeam.teamId);\r\n }\r\n\r\n if (this.GroupToPerson) {\r\n this.amountIsDirty = true;\r\n this.amount = this.calculateTariff(this.transfer.amount, false);\r\n this.$nextTick(() => {\r\n this.amountIsDirty = false;\r\n });\r\n } else {\r\n if (this.applyMissingAttributions) {\r\n this.amountIsDirty = true;\r\n this.amount = this.transfer.amount;\r\n this.amountIsDirty = false;\r\n } else {\r\n this.internalAmountIsDirty = true;\r\n this.internalAmount = this.transfer.amount;\r\n this.internalAmountIsDirty = false;\r\n }\r\n }\r\n\r\n if (this.type === TransferType.PersonToPerson) {\r\n this.currentBalance = await this.getPersonalAmountToSpent();\r\n }\r\n\r\n this.attributionsAreLoading = false;\r\n }\r\n\r\n public async initRecurringTransfer(transfer: IRecurringTransfer) {\r\n this.isRecurring = true;\r\n\r\n Object.assign(this.transfer, { ...transfer });\r\n\r\n this.transferSchedule = this.recurringTransfer.schedule;\r\n this.transfer.reason = this.recurringTransfer.description;\r\n this.transfer.internalAmount = this.recurringTransfer.amount;\r\n\r\n this.teams = await teamService.getTeams();\r\n\r\n this.transfer.receiverId = transfer.receiverAccount.accountId;\r\n this.transfer.senderId = transfer.senderAccount.accountId;\r\n // this.transfer.receiverTeam = transfer.receiverTeam;\r\n\r\n this.receivingAccounts = [transfer.receiverAccount];\r\n this.amount = transfer.amount;\r\n\r\n this.show();\r\n }\r\n\r\n public async onHide() {\r\n this.transfer.receiver = null;\r\n this.transfer.receiverId = null;\r\n const emptyTeam = new Team();\r\n this.setReceiverTransferTeam(emptyTeam);\r\n\r\n if (this.selectedTeamId) {\r\n this.setReceiverTransferTeam(this.teams.find((x) => x.teamId === this.selectedTeamId));\r\n } else if (!this.group || this.group.groupId === 0) {\r\n this.setReceiverTransferTeam(emptyTeam);\r\n }\r\n\r\n if (this.group && this.group.groupId > 0) {\r\n const attributionSettings = await this.getAttributionsSettings(this.group.groupId);\r\n this.applyMissingAttributions = attributionSettings.applyMissingAttributionsOnTransfer;\r\n }\r\n\r\n this.transfer.reason = '';\r\n delete this.transfer.transferId;\r\n this.internalAmount = 0;\r\n this.amount = 0;\r\n this.editMode = false;\r\n }\r\n\r\n public async doTransfer() {\r\n if (!this.validateTransfer(true)) {\r\n return;\r\n }\r\n\r\n this.checkTransferAmount();\r\n this.transfer.period = periodModule.selectedPeriodObject;\r\n\r\n this.showPending('TRANSFERRING_PENDING');\r\n\r\n if (this.editMode && this.transfer && this.transfer.transferId > 0) {\r\n transferService\r\n .updateTransfer(this.transfer)\r\n .then(() => {\r\n if (this.$appInsights) {\r\n this.$appInsights.trackEvent({ name: 'transfer-success' });\r\n }\r\n this.clearAndShowSuccess('TRANSFERRING_SUCCESS');\r\n this.$emit('transfer-completed');\r\n this.hide();\r\n })\r\n .catch((e) => {\r\n if (e.response && e.response.status && e.response.status === 400) {\r\n const transferResponse = e.response.data;\r\n this.clearAndShowError(`${transferResponse.title}.

Reason:
${transferResponse.detail}`, e);\r\n } else {\r\n this.clearAndShowError(e, e);\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n await transferService\r\n .doTransfer(this.transfer)\r\n .then(() => {\r\n if (this.$appInsights) {\r\n this.$appInsights.trackEvent({ name: 'transfer-success' });\r\n }\r\n this.clearAndShowSuccess('TRANSFERRING_SUCCESS');\r\n this.$emit('transfer-completed');\r\n this.hide();\r\n })\r\n .catch((e) => {\r\n if (e.response && e.response.status && e.response.status === 400) {\r\n const transferResponse = e.response.data;\r\n this.clearAndShowError(`${transferResponse.title}.

Reason:
${transferResponse.detail}`, e);\r\n } else {\r\n this.clearAndShowError(e, e);\r\n }\r\n });\r\n }\r\n\r\n public async createRecurringTransfer() {\r\n if (!this.validateTransfer(true)) {\r\n return;\r\n }\r\n\r\n this.checkTransferAmount();\r\n const team = parseInt(this.$route.params.teamId);\r\n const group = parseInt(this.$route.params.groupId);\r\n const recurringTransfer: IRecurringTransferRequest = {\r\n description: this.transfer.reason,\r\n amount: this.transfer.amount,\r\n schedule: this.transferSchedule,\r\n senderTeam: team,\r\n receiverTeam: this.transfer.receiverTeam.teamId,\r\n invoiceType: this.transfer.invoiceType,\r\n };\r\n\r\n if (this.GroupToGroup || this.GroupToPerson) {\r\n recurringTransfer.senderAccount = this.transfer.sender.accountId;\r\n recurringTransfer.receiverAccount = this.transfer.receiverId;\r\n recurringTransfer.senderGroup = group;\r\n }\r\n\r\n if (this.PersonToPerson) {\r\n recurringTransfer.receiverAccount = this.transfer.receiverId;\r\n recurringTransfer.receiverPerson = this.transfer.receiver.relatedEntityId;\r\n recurringTransfer.senderAccount = this.transfer.sender.accountId;\r\n recurringTransfer.senderPerson = this.transfer.sender.relatedEntityId;\r\n }\r\n\r\n if (this.GroupToGroup) {\r\n recurringTransfer.receiverGroup = this.transfer.receiver.relatedEntityId;\r\n }\r\n\r\n if (this.GroupToPerson) {\r\n recurringTransfer.receiverPerson =\r\n this.transfer.receiver.accountType === AccountType.Person ? this.transfer.receiver.relatedEntityId : null;\r\n }\r\n\r\n const [err] = await to(transferService.createRecurringTransfer(recurringTransfer));\r\n if (err) {\r\n return this.clearAndShowError('CREATE_RECURRING_TRANSFER_FAILED', null);\r\n } else {\r\n this.$refs.modal.hide();\r\n this.$emit('transfer-completed', recurringTransfer);\r\n return this.clearAndShowSuccess('CREATE_RECURRING_TRANSFER_SUCCESS');\r\n }\r\n }\r\n\r\n public optionListSenders(): any[] {\r\n const list = this.sendingAccounts.map((sender) => {\r\n return { value: sender.accountId, text: sender.name };\r\n });\r\n return list;\r\n }\r\n\r\n public optionListReceivers(): any[] {\r\n if (!this.receivingAccounts) {\r\n return [];\r\n }\r\n\r\n const list = this.receivingAccounts.map((sender) => {\r\n return { value: sender.accountId, text: sender.name };\r\n });\r\n\r\n return list;\r\n }\r\n\r\n public optionListOtherTeams(): any[] {\r\n const includeOwn = !this.PersonToPerson;\r\n\r\n let list = this.teams.filter((team) => includeOwn || team.teamId !== teamHelper.currentTeamId);\r\n\r\n if (this.selectedPerson && !this.meScope) {\r\n list = list.filter((x) => {\r\n for (const ship of this.selectedPerson.teamMemberships) {\r\n if (ship.id === x.teamId) {\r\n return x;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return list.map((team) => {\r\n return { value: team.teamId, text: team.name };\r\n });\r\n }\r\n\r\n public optionListExternalReceivers(): any[] {\r\n const list = this.receivingAccounts.map((sender) => {\r\n return { value: sender.accountId, text: sender.name };\r\n });\r\n return list;\r\n }\r\n\r\n public async getAttributionsSettings(groupId: number) {\r\n const [err, response] = await to(attributionService.getAttributionSetting(groupId));\r\n if (err) {\r\n this.showFailedResponse('Failed to load attribution settings', null);\r\n }\r\n return response.data;\r\n }\r\n\r\n public disableInternal() {\r\n this.amountIsDirty = true;\r\n }\r\n\r\n public disableAmount() {\r\n this.internalAmountIsDirty = true;\r\n }\r\n\r\n public calculateAttributions(val: number, isExternal: boolean = true) {\r\n if (!isExternal) {\r\n val = this.calculateTariff(val, false);\r\n }\r\n\r\n let groupResult = 0;\r\n let teamResult = 0;\r\n let groupAttrResult = 0;\r\n let penlResult = 0;\r\n\r\n if (!this.applyMissingAttributions) {\r\n groupResult = val * (1 - this.attributionPercentages.groupAttributionsPercentage / 100);\r\n teamResult =\r\n (val *\r\n (1 - this.attributionPercentages.groupAttributionsPercentage / 100) *\r\n (this.attributionPercentages.teamAttributionsPercentage / 100)) /\r\n (1 - this.attributionPercentages.groupAttributionsPercentage / 100);\r\n groupAttrResult = val * (this.attributionPercentages.groupAttributionsPercentage / 100);\r\n penlResult = val - teamResult - groupAttrResult;\r\n }\r\n\r\n if (this.applyMissingAttributions) {\r\n groupResult =\r\n val *\r\n (1 - this.attributionPercentages.groupAttributionsPercentage / 100) *\r\n (this.attributionPercentages.groupRemittancePercentage / 100);\r\n teamResult =\r\n (val *\r\n (1 - this.attributionPercentages.groupAttributionsPercentage / 100) *\r\n (1 - this.attributionPercentages.groupRemittancePercentage / 100) *\r\n (this.attributionPercentages.teamAttributionsPercentage / 100)) /\r\n (1 - this.attributionPercentages.groupAttributionsPercentage / 100);\r\n groupAttrResult = val * (this.attributionPercentages.groupAttributionsPercentage / 100);\r\n penlResult = val - teamResult - groupAttrResult - groupResult;\r\n }\r\n\r\n this.groupRemittance = parseFloat(groupResult.toFixed(2));\r\n this.teamAttribution = parseFloat(teamResult.toFixed(2));\r\n this.groupAttribution = parseFloat(groupAttrResult.toFixed(2));\r\n\r\n if (this.GroupToPerson && !this.penlAmmountIsDirty) {\r\n this.penlAmmount = parseFloat(penlResult.toFixed(2));\r\n }\r\n }\r\n\r\n public setTransferDirections() {\r\n if (this.transfer.receiverId && this.transfer.receiver.accountId) {\r\n this.GroupToGroup =\r\n this.transfer.receiver.accountType === AccountType.GroupIncome && this.transfer.sender.accountType === AccountType.GroupSavings;\r\n this.GroupToPerson =\r\n this.transfer.receiver.accountType === AccountType.Person && this.transfer.sender.accountType === AccountType.GroupSavings;\r\n this.PersonToPerson =\r\n this.transfer.receiver.accountType === AccountType.Person && this.transfer.sender.accountType === AccountType.Person;\r\n }\r\n }\r\n\r\n public setReceiverTransferTeam(team: Team) {\r\n this.transfer.receiverTeam.teamId = team.teamId;\r\n this.transfer.receiverTeam.teamKey = team.teamKey;\r\n this.transfer.receiverTeam.name = team.name;\r\n\r\n if (team.groups) {\r\n this.transfer.receiverTeam.groups = team.groups;\r\n }\r\n if (team.periods) {\r\n this.transfer.receiverTeam.periods = team.periods;\r\n }\r\n }\r\n\r\n public calculateTariff(amount: number, isExternal: boolean = true) {\r\n let result = 0;\r\n if (isExternal) {\r\n result = amount * (1 - this.attributionPercentages.groupAttributionsPercentage / 100);\r\n } else {\r\n result = amount / (1 - this.attributionPercentages.groupAttributionsPercentage / 100);\r\n }\r\n return parseFloat(result.toFixed(2));\r\n }\r\n\r\n public calculateFromPenLTariff(amount) {\r\n return (\r\n amount /\r\n (1 - this.attributionPercentages.teamAttributionsPercentage / 100 / (1 - this.attributionPercentages.groupAttributionsPercentage / 100))\r\n );\r\n }\r\n\r\n public async goToGroupTransfers() {\r\n const params = this.$route.params;\r\n params.tab = 'transfers';\r\n await this.$router.push({ name: 'team-finances-group', params });\r\n }\r\n\r\n public async goToGroupOverview() {\r\n const params = this.$route.params;\r\n params.tab = 'overview';\r\n await this.$router.push({ name: 'team-finances-group', params });\r\n }\r\n\r\n public async getPersonalAmountToSpent() {\r\n if (!this.transfer.sender || !this.transfer.senderTeam || this.transfer.sender.accountId === 0 || this.transfer.senderTeam.teamId === 0) {\r\n return 0;\r\n }\r\n\r\n const [err, response] = await to(\r\n financeAccountService.getBalance(\r\n this.transfer.sender.accountId,\r\n periodModule.selectedPeriod,\r\n this.transfer.senderTeam.teamId,\r\n AccountType.Person,\r\n ),\r\n );\r\n\r\n if (err) {\r\n this.showFailedResponse('Failed to load balance');\r\n return 0;\r\n }\r\n\r\n if (!response || !response.items || response.items.length === 0) {\r\n return 0;\r\n }\r\n\r\n return (this.currentBalance = response.items[0].item.totalBalance);\r\n }\r\n\r\n public getCurrentBalance() {\r\n return Vue.filter('number-format')(this.currentBalance);\r\n }\r\n\r\n public getBalanceWithoutAmount() {\r\n return Vue.filter('number-format')(this.currentBalance - this.amount);\r\n }\r\n\r\n public validateTransfer(isBetweenTeams: boolean = false): boolean {\r\n const errors = [];\r\n const minLengthReason = 1;\r\n const transfer = this.transfer;\r\n\r\n this.isTransferValid.amount = true;\r\n this.isTransferValid.sender = true;\r\n this.isTransferValid.receiver = true;\r\n this.isTransferValid.reason = true;\r\n this.isTransferValid.internalAmount = true;\r\n this.isTransferValid.team = true;\r\n\r\n if (transfer.receiverTeam == null && isBetweenTeams) {\r\n this.isTransferValid.team = false;\r\n errors.push(translateModule.value('SELECT_A_TEAM', 'DROPDOWN'));\r\n }\r\n\r\n if (transfer.senderId == null) {\r\n this.isTransferValid.sender = false;\r\n errors.push(translateModule.value('SELECT_SENDER'));\r\n }\r\n\r\n if (transfer.receiverId == null) {\r\n this.isTransferValid.receiver = false;\r\n errors.push(translateModule.value('SELECT_RECEIVER'));\r\n }\r\n\r\n if (transfer.reason.length < minLengthReason) {\r\n this.isTransferValid.reason = false;\r\n errors.push(translateModule.value('RECOMMEND_DESCRIPTION'));\r\n }\r\n\r\n if (errors.length > 0) {\r\n this.showValidationErrors(errors);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async getFinanceGroupSavingAccounts(team: number) {\r\n const [err, response] = await to(financeAccountService.getAccounts(AccountType.GroupSavings, team, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('Failed to load group accounts', null);\r\n }\r\n\r\n if (team === teamHelper.currentTeam.id) {\r\n this.group.account = response.data.find((item: FinanceAccount) => {\r\n return item.relatedEntityId === this.group.groupId;\r\n });\r\n }\r\n\r\n return response.data.filter((item: FinanceAccount) => {\r\n return item.relatedEntityId !== this.group.groupId;\r\n });\r\n }\r\n\r\n public async getFinanceGroupAccounts(team: number) {\r\n const [err, response] = await to(financeAccountService.getAccounts(AccountType.GroupIncome, team, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('Failed to load group accounts', null);\r\n }\r\n\r\n if (team === teamHelper.currentTeam.id) {\r\n this.group.accountIncome = response.data.find((item: FinanceAccount) => {\r\n return item.relatedEntityId === this.group.groupId;\r\n });\r\n }\r\n\r\n return response.data.filter((item: FinanceAccount) => {\r\n return item.relatedEntityId !== this.group.groupId;\r\n });\r\n }\r\n\r\n public async getFinancePersonsAccounts(team: number, groupId?: number) {\r\n const [err, response] = await to(financeAccountService.getAccounts(AccountType.Person, team, periodModule.selectedPeriod, groupId));\r\n if (err) {\r\n this.showFailedResponse('FINANCE_PERSONS_FAILED', null);\r\n }\r\n return response.data;\r\n }\r\n\r\n public async getGroupAttributions(teamId: number, groupId: number) {\r\n const self = this;\r\n const [err, response] = await to(\r\n attributionService.getAttributions(AttributionType.GroupAttribution, teamId, periodModule.selectedPeriod, groupId),\r\n );\r\n if (err) {\r\n this.showFailedResponse('Failed to load group attributions', null);\r\n }\r\n\r\n self.attributionPercentages.groupAttributionsPercentage = 0;\r\n\r\n response.data.forEach((attr) => {\r\n self.attributionPercentages.groupAttributionsPercentage += attr.percentage;\r\n });\r\n\r\n return response.data;\r\n }\r\n\r\n public async getGroupRemittances(teamId: number, groupId: number) {\r\n const self = this;\r\n const [err, response] = await to(\r\n attributionService.getAttributions(AttributionType.GroupRemittance, teamId, periodModule.selectedPeriod, groupId),\r\n );\r\n if (err) {\r\n this.showFailedResponse('Failed to load group remittances', null);\r\n }\r\n\r\n self.attributionPercentages.groupRemittancePercentage = 0;\r\n\r\n response.data.forEach((attr) => {\r\n self.attributionPercentages.groupRemittancePercentage += attr.percentage;\r\n });\r\n\r\n return response.data;\r\n }\r\n\r\n public async getTeamAttributions(teamId: number) {\r\n const self = this;\r\n const [err, response] = await to(attributionService.getAttributions(AttributionType.TeamAttribution, teamId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('Failed to load team attributions', null);\r\n }\r\n\r\n self.attributionPercentages.teamAttributionsPercentage = 0;\r\n response.data.forEach((attr) => {\r\n self.attributionPercentages.teamAttributionsPercentage += attr.percentage;\r\n });\r\n\r\n return response.data;\r\n }\r\n\r\n private checkTransferAmount() {\r\n if ((this.applyMissingAttributions && this.GroupToGroup) || this.PersonToPerson) {\r\n if (isNaN(this.amount) && this.amount.toString().indexOf(',')) {\r\n const amount = this.amount.toString().replace(',', '.');\r\n this.transfer.amount = parseFloat(amount);\r\n } else {\r\n this.transfer.amount = this.amount;\r\n }\r\n } else {\r\n if (isNaN(this.internalAmount) && this.internalAmount.toString().indexOf(',')) {\r\n const amount = this.internalAmount.toString().replace(',', '.');\r\n this.transfer.amount = parseFloat(amount);\r\n } else {\r\n this.transfer.amount = this.internalAmount;\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./transfer-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./transfer-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./transfer-modal.vue?vue&type=template&id=3df586d0&\"\nimport script from \"./transfer-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./transfer-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-modal',{ref:\"modal\",attrs:{\"scrollable\":\"\",\"hide-footer\":_vm.readonly},on:{\"hide\":_vm.onHide}},[(!_vm.transferRequest)?_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_vm._v(_vm._s(_vm.title))]):_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_vm._v(_vm._s(_vm.acceptTitle))]),(_vm.isLoading)?_c('prd-loader',{attrs:{\"center\":\"\"}},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-form',[(!_vm.isRequestReceiver)?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-4\"},[_c('b-form-select',{class:{ 'is-invalid': !_vm.isTransferValid.receiver },attrs:{\"disabled\":_vm.transferRequest != null,\"options\":_vm.optionListTeams(),\"size\":\"sm\"},on:{\"change\":_vm.teamChanged},model:{value:(_vm.selectedTeam),callback:function ($$v) {_vm.selectedTeam=$$v},expression:\"selectedTeam\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_TEAM\"}})],1)])],2)],1),(_vm.transferRequest == null)?_c('div',{staticClass:\"col-8\"},[_c('p',{staticClass:\"cursor-pointer d-inline-block mt-1\",on:{\"click\":function($event){}}},[_vm._v(\" Team not here? Make a friendship request \")])]):_vm._e()])]):_vm._e(),(!_vm.isRequestReceiver)?_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-4\"},[_c('b-form-select',{class:{ 'is-invalid': !_vm.isTransferValid.receiver },attrs:{\"disabled\":!_vm.selectedTeam || _vm.selectedMember != null || _vm.transferRequest != null,\"options\":_vm.optionListGroups(),\"size\":\"sm\"},on:{\"change\":_vm.groupChanged},model:{value:(_vm.selectedGroup),callback:function ($$v) {_vm.selectedGroup=$$v},expression:\"selectedGroup\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_GROUP\"}})],1)])],2)],1),_c('div',{staticClass:\"col-4 text-center\"},[_c('b',{staticClass:\"d-inline-block mt-1\"},[_vm._v(\"Or\")])]),_c('div',{staticClass:\"col-4\"},[_c('b-form-select',{class:{ 'is-invalid': !_vm.isTransferValid.receiver },attrs:{\"disabled\":true,\"options\":_vm.optionListMembers(),\"size\":\"sm\"},on:{\"change\":_vm.memberChanged},model:{value:(_vm.selectedMember),callback:function ($$v) {_vm.selectedMember=$$v},expression:\"selectedMember\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_MEMBER\"}})],1)])],2)],1)])]):_vm._e(),_c('hr'),(_vm.selectedTeam && (_vm.selectedGroup || _vm.selectedMember))?[_c('b-form-group',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('label',[_vm._v(\" Invoice amount (external rate) \"),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:('Tooltip?'),expression:\"'Tooltip?'\"}],staticClass:\"icon-info\"})])]),_c('div',{staticClass:\"col-12\"},[_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('prd-numeric-input',{staticClass:\"form-control form-control-sm\",class:{ 'is-invalid': !_vm.isTransferValid.amount },attrs:{\"disabled\":_vm.isRequestReceiver || _vm.readonly,\"output-dec-seperator\":\",\",\"convert-on\":\"input\"},on:{\"keyup\":_vm.amountChange},nativeOn:{\"focus\":function($event){_vm.externalAmountIsDirty = true;\n _vm.ecoAmountIsDirty = false;},\"blur\":function($event){_vm.externalAmountIsDirty = false}},model:{value:(_vm.transfer.amount),callback:function ($$v) {_vm.$set(_vm.transfer, \"amount\", $$v)},expression:\"transfer.amount\"}})],1)],1)])]),(!_vm.applyMissingAttributions)?_c('b-form-group',[_c('label',[_vm._v(\" Invoice amount (ecosystem rate) \"),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\",value:('Tooltip?'),expression:\"'Tooltip?'\"}],staticClass:\"icon-info\"})]),_c('b-input-group',{attrs:{\"size\":\"sm\"}},[_c('prd-numeric-input',{staticClass:\"form-control form-control-sm\",class:{ 'is-invalid': !_vm.isTransferValid.internalAmount },attrs:{\"disabled\":_vm.isRequestReceiver || _vm.readonly,\"output-dec-seperator\":\",\",\"convert-on\":\"input\"},on:{\"keyup\":_vm.amountChange},nativeOn:{\"focus\":function($event){_vm.ecoAmountIsDirty = true;\n _vm.externalAmountIsDirty = false;},\"blur\":function($event){_vm.ecoAmountIsDirty = false}},model:{value:(_vm.transfer.internalAmount),callback:function ($$v) {_vm.$set(_vm.transfer, \"internalAmount\", $$v)},expression:\"transfer.internalAmount\"}})],1)],1):_vm._e(),_c('b-form-group',{attrs:{\"label\":\"Description\"}},[_c('b-form-textarea',{class:{ 'is-invalid': !_vm.isTransferValid.reason },attrs:{\"disabled\":_vm.readonly},model:{value:(_vm.transfer.reason),callback:function ($$v) {_vm.$set(_vm.transfer, \"reason\", $$v)},expression:\"transfer.reason\"}})],1)]:_vm._e(),(_vm.selectedGroup)?_c('b-form-group',{staticClass:\"mb-0\",attrs:{\"label\":'Recipients',\"disabled\":_vm.transferRequest != null}},[(_vm.groupLeadName)?_c('b-form-checkbox',{attrs:{\"checked\":\"true\",\"disabled\":true}},[_vm._v(_vm._s(_vm.groupLeadName)+\" (Group lead)\")]):_vm._e(),_c('b-form-checkbox-group',{attrs:{\"id\":\"recipients\",\"options\":_vm.receipientsOptions,\"name\":\"recipients\",\"stacked\":\"\",\"disabled\":_vm.readonly},model:{value:(_vm.selectedRecipients),callback:function ($$v) {_vm.selectedRecipients=$$v},expression:\"selectedRecipients\"}})],1):_vm._e()],2),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[(_vm.applyMissingAttributions)?_c('p',{staticClass:\"mb-0 text-info d-inline text-left mr-2\"},[_c('span',{staticClass:\"k-icon k-i-info\"}),_vm._v(\" Missing attributions will be applied on this transfer. \")]):_vm._e(),(!_vm.transferRequest)?_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"action\":_vm.sendRequest,\"translate-key\":\"SEND_REQUEST\"}}):_vm._e(),(_vm.transferRequest && _vm.transferRequest.status === 'New')?[(_vm.isRequestReceiver)?[(_vm.hasReceiverRights)?[_c('prd-translate-button',{staticClass:\"mr-2\",attrs:{\"variant\":\"warning\",\"action\":_vm.rejectRequest,\"translate-key\":\"REJECT_REQUEST\"}}),_c('prd-translate-button',{attrs:{\"variant\":\"success\",\"action\":_vm.acceptRequest,\"translate-key\":\"ACCEPT_REQUEST\"}})]:_vm._e()]:[(_vm.hasSenderRights)?[_c('prd-translate-button',{attrs:{\"variant\":\"warning\",\"action\":_vm.withdrawRequest,\"translate-key\":\"WITHDRAW_REQUEST\"}}),_c('prd-translate-button',{staticClass:\"ml-2\",attrs:{\"variant\":\"success\",\"action\":_vm.updateRequest,\"translate-key\":\"UPDATE_REQUEST\"}})]:_vm._e()]]:_vm._e()],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport BaseModal from './BaseModal';\r\n// import DistributedInvoice from '@/models/DistributedInvoice';\r\n// import { InvoiceType } from '@/models/InvoiceType';\r\nimport {\r\n periodFilterHelper,\r\n transferService,\r\n teamHelper,\r\n teamService,\r\n groupHelper,\r\n attributionService,\r\n financeAccountService,\r\n personService,\r\n loginHelper,\r\n roleHelper,\r\n} from '@/main';\r\n// import Group from '@/models/Group';\r\n// import moment from 'moment';\r\nimport Transfer from '@/models/Transfer';\r\nimport { FinanceAccount } from '@/models/Interfaces';\r\nimport to from 'await-to-js';\r\nimport Group from '@/models/Group';\r\nimport { Person } from '@/models/Person';\r\nimport { AttributionType } from '@/models/AttributionType';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport TransferRequest from '@/models/Finance/TransferRequest';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport Team from '@/models/Team';\r\nimport { Member } from '@/models/Member';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { profileModule } from '@/store/modules/profile';\r\n\r\n@Component\r\nexport default class TransferRequestModalComponent extends BaseModal {\r\n @Prop({ default: () => 'Create a transfer' }) public title: string;\r\n @Prop({ default: () => new Group() }) public group: Group;\r\n @Prop({ default: () => [] }) public receivingAccounts: FinanceAccount[];\r\n @Prop({ default: () => null }) public transferRequest: TransferRequest;\r\n @Prop({ type: Boolean }) public readonly: boolean;\r\n\r\n public applyMissingAttributions: boolean = false;\r\n public transfer: Transfer = new Transfer({\r\n includeMissingAttributions: this.applyMissingAttributions,\r\n invoiceType: this.applyMissingAttributions ? InvoiceType.Income : InvoiceType.InternalIncome,\r\n });\r\n public editMode: boolean = false;\r\n public externalAmountIsDirty: boolean = false;\r\n public ecoAmountIsDirty: boolean = false;\r\n public editIsLoading: boolean = false;\r\n\r\n public receivingTeams: Team[] = [];\r\n public teams: Team[] = [];\r\n public memberAccounts: FinanceAccount[] = [];\r\n public groupAccounts: FinanceAccount[] = [];\r\n public team: any = null;\r\n public selectedTeam: any = null;\r\n public selectedGroup: any = null;\r\n public selectedMember: any = null;\r\n\r\n public selectedRecipients: any = [];\r\n public groupLeadName: string = '';\r\n public isExpense: boolean = false;\r\n public recurring: boolean = null;\r\n public acceptTitle: string = '';\r\n\r\n public attributionsPercentage: number = 0;\r\n\r\n public currentUserId = profileModule.brightProfile.personId;\r\n\r\n get isRequestReceiver(): boolean {\r\n return this.transferRequest && this.transferRequest.receiverGroup === this.group.groupId;\r\n }\r\n\r\n get isRequestSender(): boolean {\r\n return this.transferRequest && this.transferRequest.senderGroup === this.group.groupId;\r\n }\r\n\r\n get isRecipient(): boolean {\r\n return this.transferRequest && this.transferRequest.recipients.find((x) => x.personId === loginHelper.getUser().personId);\r\n }\r\n\r\n get hasReceiverRights(): boolean {\r\n let group = null;\r\n const team = this.teams.find((x) => x.teamId === this.transferRequest.transfer.senderTeam.teamId);\r\n if (team) {\r\n group = team.groups.find((x) => x.groupId === this.transferRequest.receiverGroup);\r\n }\r\n\r\n if (roleHelper.isAccountant() || roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee() || (group && roleHelper.isGroupLead(group))) {\r\n return true;\r\n }\r\n\r\n if (this.isRecipient) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get hasSenderRights(): boolean {\r\n const team = this.teams.find((x) => x.teamId === this.transferRequest.transfer.receiverTeam.teamId);\r\n const group = team.groups.find((x) => x.groupId === this.transferRequest.receiverGroup);\r\n\r\n if (roleHelper.isAccountant() || roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee() || roleHelper.isGroupLead(group)) {\r\n return true;\r\n }\r\n\r\n if (this.isRecipient) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isTransferValid: any = {\r\n amount: true,\r\n sender: true,\r\n receiver: true,\r\n reason: true,\r\n internalAmount: true,\r\n team: true,\r\n };\r\n\r\n private receipientsOptions: any[] = [];\r\n\r\n public async mounted() {\r\n this.teams = await teamService.getTeams();\r\n this.transfer.group = this.group.groupId;\r\n this.transfer.receiver = await financeAccountService.getGroupAccount(\r\n teamHelper.currentTeam.id,\r\n this.group.groupId,\r\n AccountType.GroupIncome,\r\n periodModule.selectedPeriod,\r\n );\r\n\r\n this.transfer.period = periodFilterHelper.getSelectedPeriodObject();\r\n\r\n if (this.transferRequest && this.transferRequest.transferRequestId) {\r\n await this.initRequest();\r\n }\r\n\r\n this.attributionsPercentage = 0;\r\n const groupAttributions = await this.getGroupAttributions(teamHelper.getTeamId(), this.group.groupId);\r\n groupAttributions.forEach((attr) => {\r\n this.attributionsPercentage += attr.percentage;\r\n });\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async initRequest() {\r\n this.isLoading = true;\r\n if (this.isRequestSender) {\r\n this.selectedTeam = this.transferRequest.transfer.senderTeam.teamId;\r\n await this.teamChanged();\r\n this.selectedGroup = this.transferRequest.receiverGroup;\r\n await this.groupChanged();\r\n } else {\r\n this.selectedTeam = this.transferRequest.transfer.receiverTeam.teamId;\r\n await this.teamChanged();\r\n this.selectedGroup = this.transferRequest.senderGroup;\r\n await this.groupChanged();\r\n }\r\n\r\n this.transfer = Object.assign(this.transfer, this.transferRequest.transfer);\r\n\r\n this.selectedRecipients = this.transferRequest.recipients.map((x) => x.personId);\r\n\r\n if (!this.applyMissingAttributions) {\r\n this.ecoAmountIsDirty = true;\r\n this.amountChange({ target: { value: this.transfer.amount } });\r\n this.transfer.internalAmount = this.calculateTariff(this.transfer.amount, true);\r\n this.ecoAmountIsDirty = false;\r\n }\r\n\r\n const team = this.teams.find((x) => x.teamId === this.selectedTeam);\r\n const group = team.groups.find((x) => x.groupId === this.selectedGroup);\r\n const person = await personService.getPerson(this.transferRequest.initiator, periodModule.selectedPeriod);\r\n\r\n if (!this.isRequestSender) {\r\n this.acceptTitle = `Accept transfer request from ${team.name} - ${group.name} (${person.getFullName()})`;\r\n } else {\r\n this.acceptTitle = `Transfer request details`;\r\n }\r\n this.isLoading = false;\r\n }\r\n\r\n public optionListTeams() {\r\n const list = this.teams.map((team: Team) => {\r\n return { value: team.teamId, text: team.name };\r\n });\r\n\r\n return list;\r\n }\r\n\r\n public optionListGroups() {\r\n return this.groupAccounts\r\n .filter((x) => x.relatedEntityId !== this.group.groupId)\r\n .map((group: FinanceAccount) => {\r\n return { value: group.relatedEntityId, text: group.name };\r\n });\r\n }\r\n\r\n public async teamChanged() {\r\n const team = this.teams.find((x) => x.teamId === this.selectedTeam);\r\n // this.memberAccounts = await financeAccountService.getTeamAccounts(AccountType.Person, team.key, periodModule.selectedPeriod);\r\n this.groupAccounts = await financeAccountService.getTeamAccounts(AccountType.GroupSavings, team.teamId, periodModule.selectedPeriod);\r\n this.selectedGroup = this.selectedMember = null;\r\n this.selectedRecipients = [];\r\n }\r\n\r\n public getGroupLeadName() {\r\n const team = this.teams.find((x) => x.teamId === this.selectedTeam);\r\n const group = team.groups.find((x) => x.groupId === this.selectedGroup);\r\n if (group) {\r\n return group.groupLead.name;\r\n }\r\n }\r\n\r\n public amountChange(a) {\r\n let val = a.target.value;\r\n // this only works cuz output of prd-numeric-input is ,\r\n if (isNaN(val)) {\r\n val = parseFloat(val.replace(',', '.').toString());\r\n }\r\n if (this.ecoAmountIsDirty) {\r\n this.transfer.amount = this.calculateTariff(val, false);\r\n }\r\n\r\n if (this.externalAmountIsDirty) {\r\n this.transfer.internalAmount = this.calculateTariff(val);\r\n }\r\n }\r\n\r\n public calculateTariff(amount: number, isExternal: boolean = true) {\r\n let result = 0;\r\n\r\n if (isExternal) {\r\n result = amount * (1 - this.attributionsPercentage / 100);\r\n } else {\r\n result = amount / (1 - this.attributionsPercentage / 100);\r\n }\r\n return parseFloat(result.toFixed(2));\r\n }\r\n\r\n public async groupChanged() {\r\n this.receipientsOptions = [];\r\n this.selectedRecipients = [];\r\n const team = this.teams.find((x) => x.teamId === this.selectedTeam);\r\n const group = team.groups.find((x) => x.groupId === this.selectedGroup);\r\n if (group) {\r\n const apiGroup = await groupHelper.getGroup(this.isRequestReceiver ? this.group.groupId : this.selectedGroup);\r\n const list = apiGroup.members.map((member: Member) => {\r\n if (apiGroup.groupLead && member.memberId === apiGroup.groupLead.memberId) {\r\n return;\r\n }\r\n\r\n let parts = [member.firstName, member.insertion, member.lastName];\r\n\r\n parts = parts.filter((value) => {\r\n return !!value;\r\n });\r\n\r\n return { value: member.memberId, text: parts.join(' ') };\r\n });\r\n this.receipientsOptions.push(...list.filter((x) => x && x.value));\r\n\r\n if (apiGroup.groupLead) {\r\n this.selectedRecipients.push(apiGroup.groupLead.memberId);\r\n this.groupLeadName = new Person(apiGroup.groupLead).getFullName();\r\n } else {\r\n this.groupLeadName = '';\r\n }\r\n\r\n if (this.transferRequest) {\r\n const settings = await this.getAttributionsSettings(!this.isRequestSender ? this.group.groupId : this.selectedGroup);\r\n this.applyMissingAttributions = settings.applyMissingAttributionsOnTransfer;\r\n\r\n this.attributionsPercentage = 0;\r\n const groupAttributions = await this.getGroupAttributions(\r\n this.isRequestSender ? teamHelper.getTeamId() : this.selectedTeam,\r\n this.isRequestSender ? this.group.groupId : this.selectedGroup,\r\n );\r\n groupAttributions.forEach((attr) => {\r\n this.attributionsPercentage += attr.percentage;\r\n });\r\n\r\n this.transfer.includeMissingAttributions = this.applyMissingAttributions;\r\n this.transfer.invoiceType = this.applyMissingAttributions ? InvoiceType.Income : InvoiceType.InternalIncome;\r\n } else {\r\n const settings = await this.getAttributionsSettings(this.selectedGroup);\r\n this.applyMissingAttributions = settings.applyMissingAttributionsOnTransfer;\r\n\r\n this.transfer.includeMissingAttributions = this.applyMissingAttributions;\r\n this.transfer.invoiceType = this.applyMissingAttributions ? InvoiceType.Income : InvoiceType.InternalIncome;\r\n }\r\n\r\n this.transfer.sender = this.groupAccounts.find((x) => x.relatedEntityId === this.selectedGroup);\r\n }\r\n }\r\n\r\n public async getGroupAttributions(teamId: number, groupId: number) {\r\n const [err, response] = await to(\r\n attributionService.getAttributions(AttributionType.GroupAttribution, teamId, periodModule.selectedPeriod, groupId),\r\n );\r\n if (err) {\r\n this.showFailedResponse('Failed to load group attributions', null);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async memberChanged() {\r\n // do stuff\r\n }\r\n\r\n public optionListMembers() {\r\n return this.memberAccounts.map((member: FinanceAccount) => {\r\n return { value: member.relatedEntityId, text: member.name };\r\n });\r\n }\r\n\r\n public async onHide() {\r\n this.transfer = new Transfer({\r\n includeMissingAttributions: this.applyMissingAttributions,\r\n invoiceType: this.applyMissingAttributions ? InvoiceType.Income : InvoiceType.InternalIncome,\r\n });\r\n\r\n this.selectedTeam = this.selectedMember = this.selectedGroup = null;\r\n this.selectedRecipients = [];\r\n\r\n this.attributionsPercentage = 0;\r\n const groupAttributions = await this.getGroupAttributions(teamHelper.getTeamId(), this.group.groupId);\r\n groupAttributions.forEach((attr) => {\r\n this.attributionsPercentage += attr.percentage;\r\n });\r\n }\r\n\r\n public async sendRequest() {\r\n if (!this.validateTransferRequest()) {\r\n return;\r\n }\r\n\r\n if (this.selectedRecipients.length === 0) {\r\n this.showValidationErrors(['Select at least one recipient']);\r\n return;\r\n }\r\n\r\n this.showPending('TRANSFER_REQUEST_PENDING');\r\n\r\n if (!this.transfer.receiver || this.transfer.receiver.accountId === 0) {\r\n this.transfer.receiver = await financeAccountService.getGroupAccount(\r\n teamHelper.currentTeam.id,\r\n this.group.groupId,\r\n AccountType.GroupIncome,\r\n periodModule.selectedPeriod,\r\n );\r\n }\r\n\r\n let amount = this.transfer.internalAmount;\r\n if (this.applyMissingAttributions) {\r\n amount = this.transfer.amount;\r\n }\r\n\r\n if (!this.transfer.group) {\r\n this.transfer.group = this.group.groupId;\r\n }\r\n\r\n this.transfer.senderTeam = this.teams.find((x) => x.teamId === this.selectedTeam);\r\n this.transfer.receiverTeam = this.teams.find((x) => x.teamId === teamHelper.getTeamId());\r\n\r\n await transferService.createTransferRequest({ transfer: this.transfer, recipients: this.selectedRecipients }, amount, teamHelper.getTeamId());\r\n this.$emit('reload-transfer-requests');\r\n this.hide();\r\n }\r\n\r\n public async updateRequest() {\r\n if (!this.validateTransferRequest()) {\r\n return;\r\n }\r\n\r\n let amount = this.transfer.internalAmount;\r\n if (this.applyMissingAttributions) {\r\n amount = this.transfer.amount;\r\n }\r\n\r\n const model = {\r\n transfer: this.transferRequest.transfer,\r\n senderGroup: this.transferRequest.senderGroup,\r\n receiverGroup: this.transferRequest.receiverGroup,\r\n initiator: this.transferRequest.initiator,\r\n transferRequestId: this.transferRequest.transferRequestId,\r\n recipients: this.transferRequest.recipients.map((x) => x.personId),\r\n };\r\n\r\n model.transfer.amount = amount;\r\n\r\n const success = await transferService.updateTransferRequest(model, teamHelper.getTeamId());\r\n if (success) {\r\n this.$emit('reload-transfer-requests');\r\n }\r\n }\r\n\r\n public async acceptRequest(transferRequestId?: number) {\r\n const trId = transferRequestId ? transferRequestId : this.transferRequest.transferRequestId;\r\n const success = await transferService.acceptTransferRequest(trId);\r\n if (success) {\r\n this.$emit('transfer-request-status-changed', { transferRequestId: trId, accepted: true });\r\n }\r\n }\r\n\r\n public async withdrawRequest(transferRequestId?: number) {\r\n const trId = transferRequestId ? transferRequestId : this.transferRequest.transferRequestId;\r\n const success = await transferService.withdrawRequest(trId);\r\n if (success) {\r\n this.$emit('transfer-request-status-changed', { transferRequestId: trId, accepted: false });\r\n }\r\n }\r\n\r\n public async rejectRequest(transferRequestId?: number) {\r\n const trId = transferRequestId ? transferRequestId : this.transferRequest.transferRequestId;\r\n const success = await transferService.rejectTransferRequest(trId);\r\n if (success) {\r\n this.$emit('transfer-request-status-changed', { transferRequestId: trId, accepted: false });\r\n }\r\n }\r\n\r\n public validateTransferRequest(): boolean {\r\n const errors = [];\r\n // const minLengthReason = 10;\r\n const transfer = this.transfer;\r\n\r\n this.isTransferValid.amount = true;\r\n this.isTransferValid.sender = true;\r\n this.isTransferValid.receiver = true;\r\n this.isTransferValid.reason = true;\r\n this.isTransferValid.internalAmount = true;\r\n this.isTransferValid.team = true;\r\n\r\n if (transfer.receiverTeam == null) {\r\n this.isTransferValid.team = false;\r\n errors.push('Select a team.');\r\n }\r\n\r\n if (transfer.senderId == null) {\r\n this.isTransferValid.sender = false;\r\n errors.push('Select a sender.');\r\n }\r\n\r\n if (transfer.amount == null) {\r\n this.isTransferValid.amount = false;\r\n errors.push('Fill in a valid amount');\r\n }\r\n\r\n if (transfer.internalAmount == null) {\r\n this.isTransferValid.internalAmount = false;\r\n errors.push('Fill in a valid amount');\r\n }\r\n\r\n if (errors.length > 0) {\r\n this.showValidationErrors(errors);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async getAttributionsSettings(groupId: number) {\r\n const [err, response] = await to(attributionService.getAttributionSetting(groupId));\r\n if (err) {\r\n this.showFailedResponse('Failed to load attribution settings', null);\r\n }\r\n return response.data;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./transfer-request-modal.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./transfer-request-modal.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./transfer-request-modal.vue?vue&type=template&id=ea4c1588&\"\nimport script from \"./transfer-request-modal.ts?vue&type=script&lang=js&\"\nexport * from \"./transfer-request-modal.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('prd-navigation-bar',[_c('navigation-team',{key:_vm.$route.fullPath}),_c('navigation-breadcrumb',{staticClass:\"d-none d-sm-flex align-items-center\"}),_c('navigation-profile',{attrs:{\"slot\":\"right\"},slot:\"right\"}),_c('period-filter',{attrs:{\"slot\":\"right\"},slot:\"right\"}),_c('b-button',{staticClass:\"btn-with-icon notification-button\",attrs:{\"slot\":\"right\",\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$refs.notifications.show()}},slot:\"right\"},[_c('i',{staticClass:\"icon-bell\"}),(_vm.hasUnreadNotifications())?_c('span',{staticClass:\"alert-badge\"}):_vm._e()]),_c('bright-notifications',{ref:\"notifications\",attrs:{\"title\":\"Notifications\",\"notificationService\":_vm.notificationService}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { VuexModule, Module, Mutation, Action } from 'vuex-class-modules';\r\nimport store from '../index';\r\n\r\n@Module\r\nclass NotificationModule extends VuexModule {\r\n private _visible: boolean = false;\r\n\r\n public get visible() {\r\n return this._visible;\r\n }\r\n\r\n @Action\r\n public toggleVisibility() {\r\n this.SET_VISIBILITY(!this.visible);\r\n }\r\n\r\n @Mutation\r\n private SET_VISIBILITY(payload: boolean) {\r\n this._visible = payload;\r\n }\r\n}\r\n\r\nexport const notificationModule = new NotificationModule({ store, name: 'notification' });\r\n","import Component from 'vue-class-component';\r\nimport Vue from 'vue';\r\nimport { navigationHelper, notificationsService, transferService } from '@/main';\r\nimport { notificationModule } from '@/store/modules/notification';\r\nimport Notification from '@/models/Notification/Notification';\r\nimport { NotificationsService } from '@/services/notificationsService';\r\n\r\n@Component\r\nexport default class BarComponent extends Vue {\r\n public isLoading: boolean = true;\r\n public notificationService = null;\r\n public notificationsService: NotificationsService = null;\r\n\r\n public $refs!: {\r\n notifications;\r\n };\r\n\r\n public hasUnreadNotifications() {\r\n return this.$refs.notifications && this.$refs.notifications.hasUnreadNotifications();\r\n }\r\n\r\n public toggleNavMenu() {\r\n navigationHelper.toggleNavigation();\r\n }\r\n\r\n public toggleNotification() {\r\n notificationModule.toggleVisibility();\r\n }\r\n\r\n public async mounted() {\r\n this.$root.$off('notification-approve');\r\n this.$root.$on('notification-approve', this.approve);\r\n this.$root.$off('notification-deny');\r\n this.$root.$on('notification-deny', this.deny);\r\n\r\n this.notificationService = notificationsService;\r\n this.$nextTick(this.$refs.notifications.fetch);\r\n this.isLoading = false;\r\n }\r\n\r\n public async approve(notification: Notification) {\r\n if (notification.notificationTemplate === 'transfer-request-sent') {\r\n await transferService.acceptTransferRequest(parseInt(notification.externalIdentifier));\r\n }\r\n }\r\n\r\n public async deny(notification: Notification) {\r\n if (notification.notificationTemplate === 'transfer-request-sent') {\r\n await transferService.rejectTransferRequest(parseInt(notification.externalIdentifier));\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./bar.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./bar.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./bar.vue?vue&type=template&id=10248673&\"\nimport script from \"./bar.ts?vue&type=script&lang=js&\"\nexport * from \"./bar.ts?vue&type=script&lang=js&\"\nimport style0 from \"./bar.vue?vue&type=style&index=0&id=10248673&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',[_c('b-dd',{staticClass:\"p-0 mr-2 btn-with-icon bg-white\",attrs:{\"variant\":_vm.variant,\"size\":\"sm\",\"no-caret\":\"\",\"left\":\"\",\"split\":\"\"}},[_c('template',{slot:\"button-content\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":_vm.scope}})],1),_c('b-dd-item',{on:{\"click\":function($event){return _vm.me()}}},[_c('span',{staticClass:\"icon-user\"}),_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ME'),expression:\"'ME'\"}]})]),_c('b-dd-item',{on:{\"click\":function($event){return _vm.team()}}},[_c('span',{staticClass:\"icon-users\"}),_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM'),expression:\"'TEAM'\"}]})]),_c('b-dd-item',{on:{\"click\":function($event){return _vm.ecology()}}},[_c('span',{staticClass:\"icon-box\"}),_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ECOLOGY'),expression:\"'ECOLOGY'\"}]})]),_c('b-dd-item',{on:{\"click\":function($event){return _vm.settings()}}},[_c('span',{staticClass:\"icon-settings\"}),_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SETTINGS'),expression:\"'SETTINGS'\"}]})])],2),(_vm.breadcrumb)?_c('b-dd',{staticClass:\"p-0 btn-with-icon bg-white\",attrs:{\"variant\":_vm.variant,\"size\":\"sm\",\"no-caret\":\"\",\"left\":\"\",\"split\":\"\",\"split-href\":_vm.splitHref}},[_c('template',{slot:\"button-content\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":_vm.breadcrumb.text}})],1),_vm._l((_vm.breadcrumbItems),function(route,i){return _c('router-link',{directives:[{name:\"translate\",rawName:\"v-translate\",value:(route.text),expression:\"route.text\"}],key:'br_' + i + '_' + route.name,staticClass:\"dropdown-item\",attrs:{\"to\":route.route}})})],2):_vm._e(),(_vm.$root.navigationHelper.isGroup)?_c('span',{staticClass:\"ml-2\"},[_vm._v(\" \"+_vm._s(_vm.getGroupKey())+\" \")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport Vue from 'vue';\r\nimport { ecosystemHelper, navigationHelper, roleHelper, teamHelper } from '@/main';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class TopBarBreadcrumb extends Vue {\r\n public getCurrentTeamName() {\r\n const team = teamHelper.currentTeam;\r\n return team ? team.name : '';\r\n }\r\n\r\n public getGroupKey() {\r\n return this.$route.params.groupKey;\r\n }\r\n\r\n public getRouteObject() {\r\n const tab =\r\n this.$route.meta.section === 'directory' ? 'groups' : this.$route.meta.section === 'finances' ? 'group-overview' : 'group-results';\r\n\r\n return {\r\n name: navigationHelper.scope + '-' + navigationHelper.section,\r\n params: {\r\n ecosystemId: this.$route.params.ecosystemId,\r\n ecosystemKey: this.$route.params.ecosystemKey,\r\n teamId: this.$route.params.teamId,\r\n teamKey: this.$route.params.teamKey,\r\n tab,\r\n period: this.$route.params.period,\r\n },\r\n };\r\n }\r\n\r\n public toggleNavMenu() {\r\n navigationHelper.toggleNavigation();\r\n }\r\n\r\n public me() {\r\n return this.$router.push({\r\n name: 'me-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'groups',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n public team() {\r\n return this.$router.push({\r\n name: 'team-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'groups',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n public ecology() {\r\n return this.$router.push({\r\n name: 'ecosystem-overview',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n public settings() {\r\n return this.$router.push({ name: 'settings-base' });\r\n }\r\n\r\n public get variant() {\r\n if (this.$route.meta.scope === 'ecosystem') {\r\n return 'success-light';\r\n }\r\n if (this.$route.path.indexOf('/team/') > -1) {\r\n return 'warning-light';\r\n }\r\n if (this.$route.meta.scope === 'settings') {\r\n return 'dark-light';\r\n }\r\n return 'primary-light';\r\n }\r\n\r\n public get scope() {\r\n if (this.$route.meta.scope === 'ecosystem') {\r\n return 'ECOLOGY';\r\n }\r\n if (this.$route.path.indexOf('/team/') > -1) {\r\n return 'TEAM';\r\n }\r\n if (this.$route.meta.scope === 'settings') {\r\n return 'SETTINGS';\r\n }\r\n return 'ME';\r\n }\r\n\r\n public get breadcrumb() {\r\n return this.$route.meta && this.$route.meta.breadcrumb ? this.$route.meta.breadcrumb : {};\r\n }\r\n\r\n public get breadcrumbItems() {\r\n const items = [];\r\n if (this.breadcrumb && this.breadcrumb.items) {\r\n this.breadcrumb.items.forEach((routeName) => {\r\n const resolved = this.$router.resolve({ name: routeName, params: this.$route.params });\r\n if (resolved && resolved.route.meta && resolved.route.meta.breadcrumb) {\r\n if (routeName === 'team-insights' && !roleHelper.isSiteAdmin()) {\r\n return;\r\n }\r\n\r\n items.push({\r\n text: resolved.route.meta.breadcrumb.text,\r\n route: resolved.route,\r\n path: resolved.href,\r\n });\r\n }\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n\r\n public get splitHref() {\r\n if (!this.breadcrumb.split) {\r\n return '';\r\n }\r\n\r\n const route = this.$router.resolve({\r\n name: this.breadcrumb.split,\r\n params: {\r\n ecosystemId: this.$route.params.ecosystemId,\r\n ecosystemKey: this.$route.params.ecosystemKey,\r\n period: this.$route.params.period,\r\n teamId: this.$route.params.teamId,\r\n },\r\n });\r\n return route.href;\r\n }\r\n\r\n public goTo(resolvedRoute) {\r\n return this.$router.push(resolvedRoute);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./breadcrumb.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./breadcrumb.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./breadcrumb.vue?vue&type=template&id=6fca1ed2&\"\nimport script from \"./breadcrumb.ts?vue&type=script&lang=js&\"\nexport * from \"./breadcrumb.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('b-dd',{staticClass:\"p-0 btn-with-icon\",attrs:{\"size\":\"sm\",\"no-caret\":\"\",\"right\":\"\"}},[_c('template',{slot:\"button-content\"},[_c('i',{staticClass:\"icon-user\"}),_c('span',{staticClass:\"d-none d-md-inline-block\"},[_vm._v(_vm._s(_vm.currentUser))]),_c('i',{staticClass:\"icon-chevron-down\"})]),_c('b-dd-text',[_vm._v(_vm._s(_vm.currentUser))]),(_vm.$root.inEditMode)?_c('div',{staticClass:\"dropdown-item\"},[_c('prd-translate-text-inline',{attrs:{\"translate-key\":\"PROFILE\"}})],1):_c('router-link',{staticClass:\"dropdown-item\",attrs:{\"to\":{ name:'me-profile', params: _vm.profileParams }}},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('PROFILE'),expression:\"'PROFILE'\"}]})]),(_vm.$root.roleHelper.isSiteAdmin())?_c('b-dd-item',{attrs:{\"active\":_vm.editModeActive},on:{\"click\":_vm.toggleEditMode}},[(_vm.editModeActive)?_c('span',[_vm._v(\"Turn edit mode off\")]):_c('span',[_vm._v(\"Turn edit mode on\")])]):_vm._e(),(_vm.profile.ecosystemMemberships.length > 1)?_c('b-dd-item',{on:{\"click\":_vm.openEcosystemSwitcherModal}},[_c('span',[_vm._v(\"Swith to another ecosystem\")])]):_vm._e(),_c('b-dd-item',{on:{\"click\":function($event){return _vm.logOut()}}},[_vm._v(\"Log out\")]),_c('b-dd-divider'),_c('b-dd-text',[_vm._v(\"Language\")]),_c('div',{staticClass:\"btn-group mx-3\"},_vm._l((_vm.languages),function(lang,index){return _c('b-button',{key:'lang' + index,attrs:{\"variant\":lang == _vm.activeLanguage ? 'primary' : 'secondary',\"size\":\"sm\"},on:{\"click\":function($event){return _vm.setLanguage(lang)}}},[_vm._v(\" \"+_vm._s(lang)+\" \")])}),1)],2),_c('ecosystem-switcher-modal',{ref:\"ecosystemSwitcherModal\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport { loginHelper, teamHelper, eventBus, ecosystemHelper, $router } from '@/main';\r\nimport { Route } from 'vue-router';\r\nimport PageRender from '@/models/PageRender';\r\nimport { Person } from '@/models/Person';\r\nimport { translateModule } from '@/store/modules/translate';\r\nimport { Membership } from '@/models/Interfaces';\r\nimport EcosystemSwitcherModalComponent from '../modals/ecosystem-switcher-modal';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class TopBarTeamSwitch extends PageRender {\r\n public key: number = 0;\r\n public profile: Person = null;\r\n\r\n public $refs!: {\r\n ecosystemSwitcherModal: EcosystemSwitcherModalComponent;\r\n };\r\n\r\n public mounted() {\r\n this.profile = loginHelper.getUser();\r\n eventBus.$on('onPeriodChanged', this.updateTeamSwith);\r\n }\r\n\r\n public updateTeamSwith() {\r\n const profile = loginHelper.getUser();\r\n this.profile.teamMemberships = profile.teamMemberships;\r\n this.profile.ecosystemMemberships = profile.ecosystemMemberships;\r\n this.key++;\r\n }\r\n\r\n public get currentUser(): string {\r\n this.profile = loginHelper.getUser();\r\n if (this.profile) {\r\n let parts = [this.profile.firstName, this.profile.insertion, this.profile.lastName];\r\n parts = parts.filter((value) => !!value);\r\n return parts.join(' ');\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public get currentTeam() {\r\n this.profile = loginHelper.getUser();\r\n if (this.profile && this.profile.teamMemberships) {\r\n return this.profile.teamMemberships.find((membership: Membership) => {\r\n return membership.id === teamHelper.currentTeamId;\r\n });\r\n }\r\n\r\n return {} as Membership;\r\n }\r\n\r\n public async switchTo(team: Membership): Promise {\r\n teamHelper.setTeam(team);\r\n await periodModule.init();\r\n const route = this.$route;\r\n const params = Object.assign({}, route.params);\r\n params.teamId = teamHelper.currentTeam.id.toString();\r\n params.teamKey = teamHelper.currentTeam.key;\r\n if (typeof route.params.groupKey !== 'undefined') {\r\n const sub =\r\n this.$route.fullPath.indexOf('finance') > -1\r\n ? 'finances'\r\n : this.$route.fullPath.indexOf('insights') > -1\r\n ? 'insights'\r\n : 'directory';\r\n const tab =\r\n this.$route.fullPath.indexOf('finance') > -1\r\n ? 'group-overview'\r\n : this.$route.fullPath.indexOf('insights') > -1\r\n ? 'group-results'\r\n : 'groups';\r\n params.tab = tab;\r\n return this.$router.push({\r\n name: `team-${sub}`,\r\n params,\r\n });\r\n }\r\n return this.$router.push({\r\n name: route.name,\r\n params,\r\n });\r\n }\r\n\r\n public openEcosystemSwitcherModal() {\r\n return this.$refs.ecosystemSwitcherModal.show();\r\n }\r\n public toggleEditMode() {\r\n translateModule.toggleEditMode();\r\n }\r\n\r\n public get editModeActive() {\r\n return translateModule.inEditMode;\r\n }\r\n\r\n public get languages() {\r\n return translateModule.languages;\r\n }\r\n\r\n public get profileParams() {\r\n return {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n id: loginHelper.getUser().personId.toString(),\r\n team: teamHelper.teamParam,\r\n };\r\n }\r\n\r\n public get activeLanguage() {\r\n return translateModule.activeLanguage;\r\n }\r\n\r\n public async setLanguage(lang: string) {\r\n await translateModule.setLanguage(lang);\r\n }\r\n\r\n public async logOut() {\r\n await loginHelper.logOut();\r\n await $router.push({\r\n name: 'login',\r\n params: {\r\n lang: translateModule.activeLanguage,\r\n },\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./profile.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./profile.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./profile.vue?vue&type=template&id=65e1222f&\"\nimport script from \"./profile.ts?vue&type=script&lang=js&\"\nexport * from \"./profile.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isEcoScope)?_c('div',{key:_vm.teamChanged,staticClass:\"team-switch-wrap\"},[(_vm.otherTeams && _vm.otherTeams.length === 1)?_c('span',{staticClass:\"p-2\"},[_c('i',{staticClass:\"icon-users ml-md-2 mr-2\"}),_vm._v(\" \"+_vm._s(_vm.currentTeam().name)+\" \")]):_c('b-dd',{attrs:{\"size\":\"sm\",\"no-caret\":\"\",\"left\":\"\"}},[_c('div',{staticClass:\"nav-team-switch\",attrs:{\"slot\":\"button-content\"},slot:\"button-content\"},[_c('i',{staticClass:\"icon-users ml-md-2\"}),_c('span',{staticClass:\"team-name\"},[_vm._v(\" \"+_vm._s(_vm.currentTeam().name)+\" \")]),_c('i',{staticClass:\"icon-chevron-down\"})]),_c('b-dd-text',[_c('prd-translate-text-inline',{attrs:{\"translate-key\":\"SWITCH_TEAM\"}})],1),_vm._l((_vm.otherTeams),function(team,teamIndex){return _c('b-dd-item',{key:'team_' + teamIndex,attrs:{\"active\":_vm.currentTeam && _vm.currentTeam.name === team.name},on:{\"click\":function($event){return _vm.switchTo(team)}}},[_vm._v(\" \"+_vm._s(team.name)+\" \")])}),(_vm.leftTeams)?_c('b-dd-item',{attrs:{\"disabled\":\"\"}},[_c('hr')]):_vm._e(),_vm._l((_vm.leftTeams),function(team,teamIndex){return _c('b-dd-item',{key:'team_left_' + teamIndex,attrs:{\"active\":_vm.currentTeam && _vm.currentTeam.name === team.name},on:{\"click\":function($event){return _vm.switchTo(team)}}},[_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(team.name))])])})],2)],1):_c('div',{staticClass:\"p-0 team-switch-wrap\",attrs:{\"no-caret\":\"\",\"left\":\"\"}},[_c('div',{staticClass:\"nav-team-switch\"},[_c('i',{staticClass:\"icon-box ml-md-2\"}),_c('span',{staticClass:\"d-none d-md-inline-block team-name\"},[_vm._v(\" \"+_vm._s(_vm.$root.ecosystemHelper.currentEcosystem.name)+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { teamHelper, ecosystemHelper, roleHelper } from '@/main';\r\nimport { Membership } from '@/models/Interfaces';\r\nimport { Route } from 'vue-router';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport moment from 'moment';\r\n\r\n@Component\r\nexport default class NavigationTeam extends Vue {\r\n public isEcoScope: boolean = false;\r\n public teamChanged: number = 1;\r\n\r\n public created() {\r\n this.isEcoScope = this.$route.meta.scope === 'ecosystem';\r\n }\r\n\r\n public updated() {\r\n this.isEcoScope = this.$route.meta.scope === 'ecosystem';\r\n }\r\n\r\n public currentTeam() {\r\n if (profileModule.brightProfile && profileModule.brightProfile.teamMemberships) {\r\n return profileModule.brightProfile.teamMemberships.find((membership: Membership) => {\r\n return membership.key === teamHelper.currentTeam.key;\r\n });\r\n }\r\n\r\n return {} as Membership;\r\n }\r\n\r\n public get otherTeams(): any[] {\r\n if (profileModule.brightProfile && roleHelper.isAccountant()) {\r\n return profileModule.brightProfile.teamMemberships;\r\n }\r\n\r\n if (\r\n !profileModule.brightProfile ||\r\n !profileModule.brightProfile.teamMemberships.filter(\r\n (x) =>\r\n x.ecosystem === ecosystemHelper.currentEcosystem.id &&\r\n x.accessFrom >= periodModule.selectedPeriodObject.periodId &&\r\n (!x.accessUntil || x.accessUntil >= periodModule.selectedPeriodObject.periodId),\r\n )\r\n ) {\r\n return [];\r\n }\r\n\r\n return profileModule.brightProfile.teamMemberships.filter(\r\n (x) =>\r\n x.ecosystem === ecosystemHelper.currentEcosystem.id &&\r\n x.accessFrom <= periodModule.selectedPeriodObject.periodId &&\r\n (!x.accessUntil || x.accessUntil >= periodModule.selectedPeriodObject.periodId),\r\n );\r\n }\r\n\r\n public get leftTeams() {\r\n return profileModule.brightProfile.teamMemberships.filter(\r\n (x) => x.ecosystem === ecosystemHelper.currentEcosystem.id && x.accessUntil < periodModule.selectedPeriodObject.periodId,\r\n );\r\n }\r\n\r\n public async switchTo(team: Membership): Promise {\r\n ecosystemHelper.setEcosystemByEcosystemId(team.ecosystem);\r\n teamHelper.setTeam(team);\r\n\r\n await periodModule.init();\r\n\r\n const route = this.$route;\r\n const params = Object.assign({}, route.params);\r\n params.teamKey = team.key;\r\n params.teamId = team.id.toString();\r\n\r\n const ecosystem = profileModule.brightProfile.ecosystemMemberships.find((x) => x.id === team.ecosystem);\r\n params.ecosystemKey = ecosystem.key;\r\n params.ecosystemId = ecosystem.id.toString();\r\n\r\n if (team.accessUntil && periodModule.selectedPeriodObject.periodId > team.accessUntil) {\r\n const period = periodModule.allPeriods.find((x) => x.periodId === team.accessUntil);\r\n params.period = moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM');\r\n }\r\n\r\n if (typeof route.params.groupKey !== 'undefined') {\r\n const sub =\r\n this.$route.fullPath.indexOf('finance') > -1 ? 'finances' : this.$route.fullPath.indexOf('insights') > -1 ? 'insights' : 'directory';\r\n const tab =\r\n this.$route.fullPath.indexOf('finance') > -1\r\n ? 'group-overview'\r\n : this.$route.fullPath.indexOf('insights') > -1\r\n ? 'group-results'\r\n : 'groups';\r\n\r\n params.tab = tab;\r\n return this.$router.push({\r\n name: `team-${sub}`,\r\n params,\r\n });\r\n }\r\n\r\n this.teamChanged++;\r\n\r\n return this.$router.push({\r\n name: route.name,\r\n params,\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team.vue?vue&type=template&id=815912ce&\"\nimport script from \"./team.ts?vue&type=script&lang=js&\"\nexport * from \"./team.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('transition',{attrs:{\"name\":\"fade-in-from-right\"}},[(_vm.visible)?_c('div',{staticClass:\"prd-notifications\"},[_c('div',{staticClass:\"prd-notifications-header\"},[_c('h5',[_vm._v(_vm._s(_vm.title))]),_c('button',{staticClass:\"btn btn-sm btn-secondary\",on:{\"click\":_vm.fetch}},[_c('i',{staticClass:\"icon-rotate-cw\"})])]),_c('div',{staticClass:\"prd-notifications-body\"},[(_vm.isLoading)?_c('p',[_vm._v(\"Loading notifications\")]):[(_vm.notifications.length == 0)?_c('div',{staticClass:\"prd-notification-general\"},[_c('div',{staticClass:\"prd-notification-indicator done\"},[_c('span',{staticClass:\"k-icon k-i-heart\"})]),_c('div',{staticClass:\"prd-notification-text text-decoration-none text-black\"},[_c('b',[_vm._v(\"All done!\")]),_c('div',[_vm._v(\"No open notifications\")])])]):_vm._l((_vm.notifications),function(item,index){return _c('item',{key:\"notification_\" + index,attrs:{\"notification\":item,\"notification-service\":_vm.notificationService},on:{\"delete\":_vm.deleteNotification}})})]],2),_c('div',{staticClass:\"prd-notifications-lastupdate\"},[_vm._v(\"Last updated: \"+_vm._s(_vm.lastUpdatedText))]),_c('div',{staticClass:\"prd-notifications-footer\"},[_c('button',{staticClass:\"btn btn-sm btn-primary\",on:{\"click\":_vm.readAll}},[_c('strong',[_vm._v(\"Mark all as read\")])])])]):_vm._e()]),_c('toast',{ref:\"toaster\",attrs:{\"notification\":_vm.toastNotification}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.getType(),{tag:\"component\",attrs:{\"notification\":_vm.notification,\"notification-service\":_vm.notificationService},on:{\"delete-notification\":_vm.deleteNotification}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"prd-notification-general\"},[_c('div',{staticClass:\"prd-notification-indicator\",class:{ new: !_vm.handled() }},[_c('span')]),(_vm.notification.deepLink)?_c('div',{staticClass:\"prd-notification-text cursor-pointer text-decoration-none text-black\",on:{\"click\":_vm.openLink}},[_c('b',[_vm._v(_vm._s(_vm.notification.title))]),_c('div',[_vm._v(_vm._s(_vm.notification.subtitle))]),_c('div',{staticClass:\"time\"},[_vm._v(_vm._s(_vm.notification.dateString))])]):_c('div',[_c('b',[_vm._v(_vm._s(_vm.notification.title))]),_c('div',[_vm._v(_vm._s(_vm.notification.subtitle))]),_c('div',{staticClass:\"time\"},[_vm._v(_vm._s(_vm.notification.dateString))])]),_c('div',[_c('div',{staticClass:\"prd-notification-indicator\"},[_c('a',{staticClass:\"delete-button btn btn-sm\",on:{\"click\":_vm.deleteNotification}},[_c('i',{staticClass:\"icon-cancel k-icon\"})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\nimport Notification from './models/Notification';\r\nimport { INotificationsService } from './models/Interface/INotifcationService';\r\n@Component\r\nexport default class GeneralNotificationsComponent extends Vue {\r\n @Prop({ default: () => null }) public notification: Notification;\r\n @Prop() public notificationService: INotificationsService;\r\n\r\n public handled() {\r\n return this.notification.handled;\r\n }\r\n\r\n public async openLink() {\r\n this.notificationService.markAsHandled(this.notification);\r\n this.notification.handled = true;\r\n\r\n window.open(this.notification.deepLink, '_blank');\r\n }\r\n\r\n public deleteNotification() {\r\n this.$emit('delete-notification', this.notification);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./general.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./general.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./general.vue?vue&type=template&id=5072b256&\"\nimport script from \"./general.ts?vue&type=script&lang=js&\"\nexport * from \"./general.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"prd-notification-general\"},[_c('div',{staticClass:\"prd-notification-indicator\",class:{ new: !_vm.handled() }},[_c('span')]),_c('div',{staticClass:\"prd-notification-text cursor-pointer text-decoration-none text-black\",on:{\"click\":_vm.openLink}},[_c('b',[_vm._v(_vm._s(_vm.notification.title))]),_c('div',{staticClass:\"prd-notification-link\"},[_vm._v(\"Go to transfer request\")]),_c('div',{staticClass:\"time\"},[_vm._v(_vm._s(_vm.notification.dateString))])]),_c('div',{staticClass:\"prd-notification-indicator\"},[_c('a',{staticClass:\"prd-notification-delete-button btn btn-sm\",on:{\"click\":_vm.deleteNotification}},[_c('i',{staticClass:\"icon-cancel k-icon\"})])]),(!_vm.handled() && _vm.isSent())?_c('div',{staticClass:\"prd-notification-actions\"},[_c('a',{staticClass:\"btn btn-sm btn-success rounded-circle mr-2\",on:{\"click\":_vm.approve}},[_c('i',{staticClass:\"icon-check1\"})]),_c('a',{staticClass:\"btn btn-sm btn-warning rounded-circle\",on:{\"click\":_vm.deny}},[_c('i',{staticClass:\"icon-cancel\"})])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\nimport Notification from './models/Notification';\r\nimport { INotificationsService } from './models/Interface/INotifcationService';\r\n\r\n@Component\r\nexport default class TransferSentNotificationsComponent extends Vue {\r\n @Prop({ default: () => null }) public notification: Notification;\r\n @Prop() public notificationService: INotificationsService;\r\n\r\n public handled() {\r\n return this.notification.handled;\r\n }\r\n\r\n public isSent() {\r\n return this.notification.notificationTemplate === 'transfer-request-sent';\r\n }\r\n\r\n public async approve() {\r\n this.$root.$emit('notification-approve', this.notification);\r\n this.notification.handled = true;\r\n }\r\n\r\n public async deny() {\r\n this.$root.$emit('notification-deny', this.notification);\r\n this.notification.handled = true;\r\n }\r\n\r\n public deleteNotification() {\r\n this.$emit('delete-notification', this.notification);\r\n }\r\n\r\n public async openLink() {\r\n this.notificationService.markAsHandled(this.notification);\r\n this.notification.handled = true;\r\n\r\n window.open(this.notification.deepLink, '_blank');\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./transfer.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./transfer.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./transfer.vue?vue&type=template&id=e5429d88&\"\nimport script from \"./transfer.ts?vue&type=script&lang=js&\"\nexport * from \"./transfer.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Component, Prop } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\nimport General from './general.vue';\r\nimport TransferRequestSent from './transfer.vue';\r\nimport TransferRequestRejected from './transfer.vue';\r\nimport TransferRequestAccepted from './transfer.vue';\r\nimport Notification from './models/Notification';\r\nimport { INotificationsService } from './models/Interface/INotifcationService';\r\n\r\n@Component({\r\n components: {\r\n General,\r\n TransferRequestSent,\r\n TransferRequestRejected,\r\n TransferRequestAccepted,\r\n },\r\n})\r\nexport default class ItemNotificationsComponent extends Vue {\r\n @Prop({ default: () => null }) public notification: Notification;\r\n @Prop() public notificationService: INotificationsService;\r\n\r\n private availableNotificationTypes = ['transfer-request-sent', 'transfer-request-rejected', 'transfers-request-accepted'];\r\n\r\n public mounted() {\r\n this.$off('delete-notification');\r\n this.$on('delete-notification', this.deleteNotification);\r\n }\r\n\r\n public getType() {\r\n if (this.notification.notificationTemplate) {\r\n const template = this.availableNotificationTypes.find((x) => x === this.notification.notificationTemplate);\r\n if (template) {\r\n return template;\r\n }\r\n }\r\n\r\n return 'general';\r\n }\r\n\r\n public deleteNotification(notification: Notification) {\r\n this.$emit('delete', notification);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./item.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./item.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./item.vue?vue&type=template&id=d0fa8f2c&\"\nimport script from \"./item.ts?vue&type=script&lang=js&\"\nexport * from \"./item.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade-in-from-right\"}},[(_vm.visible)?_c('div',{staticClass:\"prd-notification-toast\",on:{\"mouseover\":_vm.cancelHide,\"mouseleave\":_vm.hide}},[(_vm.notification)?_c('item',{attrs:{\"notification\":_vm.notification}}):_c('span',[_vm._v(\"Notification property is empty...\")])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./toast.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./toast.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./toast.vue?vue&type=template&id=032d3a41&\"\nimport script from \"./toast.vue?vue&type=script&lang=js&\"\nexport * from \"./toast.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { BFormCheckbox } from 'bootstrap-vue';\r\nimport Item from './item.vue';\r\n// @ts-ignore\r\nimport toast from './toast.vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\nimport Notification from './models/Notification';\r\nimport { INotificationsService } from './models/Interface/INotifcationService';\r\n\r\n@Component({\r\n components: {\r\n BFormCheckbox,\r\n toast,\r\n Item,\r\n },\r\n})\r\nexport default class NotificationsComponent extends Vue {\r\n @Prop() public title: string;\r\n @Prop() public duration: number;\r\n @Prop() public hideTimeout: number;\r\n @Prop() public notificationService: INotificationsService;\r\n\r\n public $refs!: {\r\n toaster;\r\n };\r\n\r\n public canDisturb: boolean = false;\r\n public showToast: boolean = false;\r\n public visible: boolean = false;\r\n public lock: boolean = false;\r\n public isLoading: boolean = true;\r\n public toastNotification: any = {};\r\n public lastUpdated: Date = null;\r\n public lastUpdatedText: string = 'never';\r\n public notifications: Notification[] = [];\r\n\r\n public hasUnreadNotifications() {\r\n return this.notifications.filter((x) => !x.handled).length > 0;\r\n }\r\n\r\n public toast(item) {\r\n if (this.showToast) {\r\n return;\r\n }\r\n this.showToast = true;\r\n this.toastNotification = item;\r\n this.$refs.toaster.show();\r\n this.hideTimeout = setTimeout(() => {\r\n this.showToast = false;\r\n this.$refs.toaster.hide();\r\n }, this.duration);\r\n }\r\n\r\n public show() {\r\n if (!this.visible && !this.lock) {\r\n this.lock = true;\r\n document.addEventListener('click', this.mouseClick);\r\n setTimeout(() => {\r\n this.visible = true;\r\n this.lastUpdatedText = this.getLastUpdatedText();\r\n });\r\n }\r\n }\r\n\r\n public hide() {\r\n document.removeEventListener('click', this.mouseClick);\r\n this.visible = false;\r\n this.$nextTick(() => {\r\n this.lock = false;\r\n });\r\n }\r\n\r\n public mouseClick(e) {\r\n const outside = !this.$el.contains(e.target);\r\n if (outside && this.visible) {\r\n this.hide();\r\n }\r\n }\r\n\r\n public async fetch() {\r\n this.lastUpdated = new Date();\r\n this.lastUpdatedText = this.getLastUpdatedText();\r\n if (this.notificationService) {\r\n const notifications = await this.notificationService.getNotifications();\r\n this.addNotifcations(notifications);\r\n this.$emit('notifications-fetched');\r\n } else {\r\n console.error('There is not fetch action specified');\r\n }\r\n }\r\n\r\n public addNotifcations(notifications: any[]) {\r\n if (!notifications || notifications.length === 0) {\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.notifications = notifications.map((x) => new Notification(x));\r\n this.isLoading = false;\r\n }\r\n\r\n public readAll() {\r\n this.notifications.forEach(async (not: Notification) => {\r\n this.notificationService.markAsHandled(not);\r\n not.handled = true;\r\n });\r\n }\r\n\r\n public getLastUpdatedText() {\r\n if (this.lastUpdated != null) {\r\n const diff = new Date().getTime() - this.lastUpdated.getTime();\r\n const seconds = Math.ceil(diff / 1000);\r\n const minutes = Math.ceil(seconds / 60);\r\n const hours = Math.ceil(minutes / 60);\r\n\r\n if (seconds < 60) {\r\n return `a few seconds ago`;\r\n }\r\n if (minutes < 60) {\r\n return `${minutes} minutes ago`;\r\n }\r\n return `${hours} hours ago`;\r\n }\r\n return 'never';\r\n }\r\n\r\n public async deleteNotification(notification: Notification) {\r\n await this.notificationService.deleteNotification(notification);\r\n this.notifications = this.notifications.filter((x) => x.id !== notification.id);\r\n this.show();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./notifications.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./notifications.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./notifications.vue?vue&type=template&id=100aabba&\"\nimport script from \"./notifications.ts?vue&type=script&lang=js&\"\nexport * from \"./notifications.ts?vue&type=script&lang=js&\"\nimport style0 from \"./notifications.vue?vue&type=style&index=0&id=100aabba&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-dd',{key:_vm.componentKey,staticClass:\"p-0 btn-with-icon\",attrs:{\"size\":\"sm\",\"no-caret\":\"\",\"right\":\"\"}},[_c('template',{slot:\"button-content\"},[_c('i',{staticClass:\"icon-calendar\"}),_vm._v(_vm._s(_vm.getFancyDate(_vm.selectedPeriodObject()))),(_vm.selectedPeriodObject() && _vm.selectedPeriodObject().closed)?_c('span',[_vm._v(\"(closed)\")]):_vm._e(),_c('i',{staticClass:\"icon-chevron-down\"})]),_c('b-dd-text',[_c('prd-translate-text-inline',{attrs:{\"translate-key\":\"PERIOD\"}})],1),_vm._l((_vm.periods),function(period,index){return _c('b-dd-item',{key:'period_' + index,attrs:{\"active\":period == _vm.$store.state.period._selectedPeriodObject},on:{\"click\":function($event){return _vm.selectPeriod(period)}}},[_vm._v(\" \"+_vm._s(_vm.getFancyDate(period))+\" \")])}),(_vm.closedPeriods && _vm.closedPeriods.length)?_c('b-dd-item',{attrs:{\"disabled\":\"\"},nativeOn:{\"mouseover\":function($event){_vm.hover = true}}},[_c('span',{staticClass:\"text-muted\"},[_vm._v(\" Closed \"),_c('i',{staticClass:\"mt-1 float-right icon-chevron-down\"})])]):_vm._e(),_vm._l((_vm.closedPeriods),function(period,index){return (_vm.hover)?_c('b-dd-item',{key:'period_closed_' + index,attrs:{\"active\":period == _vm.$store.state.period._selectedPeriodObject},on:{\"click\":function($event){return _vm.selectPeriod(period)}}},[_c('span',{class:{'text-muted' : period !== _vm.$store.state.period._selectedPeriodObject }},[_vm._v(_vm._s(_vm.getFancyDate(period))+\" (closed)\")])]):_vm._e()})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport { $router, eventBus, loginHelper } from '@/main';\r\nimport Period from '../../models/Period';\r\nimport moment from 'moment';\r\nimport to from 'await-to-js';\r\nimport PageRender from '@/models/PageRender';\r\nimport { filtersModule } from '@/store/modules/filters';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { periodModule } from '@/store/modules/period';\r\n@Component\r\nexport default class PeriodFilter extends PageRender {\r\n public componentKey: number = 0;\r\n public hover: boolean = false;\r\n\r\n public created() {\r\n eventBus.$on('teamChange', this.forceRerender);\r\n\r\n if (\r\n periodModule.selectedPeriodObject &&\r\n periodModule.selectedPeriodObject.periodId &&\r\n this.closedPeriods.find((x) => x.periodId === periodModule.selectedPeriodObject.periodId)\r\n ) {\r\n this.hover = true;\r\n }\r\n }\r\n\r\n public get periods() {\r\n return periodModule.periods.filter((x) => !x.closed);\r\n }\r\n\r\n public get closedPeriods() {\r\n return periodModule.periods.filter((x) => x.closed);\r\n }\r\n\r\n public selectedPeriodObject() {\r\n return periodModule.selectedPeriodObject;\r\n }\r\n\r\n public async selectPeriod(period: Period) {\r\n const dateString = this.getDateString(period);\r\n\r\n if (dateString) {\r\n periodModule.SET_SELECTEDPERIOD(dateString);\r\n\r\n const params = this.$route.params;\r\n params.period = periodModule.selectedPeriod;\r\n\r\n filtersModule.setStartMonth(dateString);\r\n filtersModule.setEndMonth(dateString);\r\n\r\n const [err, response] = await to(loginHelper.reloadProfile());\r\n if (err) {\r\n this.clearAndShowError('Failed to reload profile', err);\r\n await $router.push({ name: 'login' });\r\n return loginHelper.logOut();\r\n }\r\n\r\n profileModule.setBrightProfile(response);\r\n if (typeof params.teamId !== 'undefined' && params.teamId) {\r\n const hasActiveMembership = response.teamMemberships.find((x) => x.id === parseInt(params.teamId));\r\n if (!hasActiveMembership) {\r\n params.teamKey = response.teamMemberships[0].key;\r\n params.teamId = response.teamMemberships[0].id.toString();\r\n this.showWarning(`This team didn't exist on ${dateString}, switched to team ${response.teamMemberships[0].name}`);\r\n }\r\n }\r\n\r\n await $router.push({ name: this.$route.name, params });\r\n\r\n this.forceRerender();\r\n eventBus.$emit('onPeriodChanged');\r\n }\r\n }\r\n\r\n public getFancyDate(period: Period) {\r\n if (period && period.startDate) {\r\n return moment(period.startDate, 'YYYY-MM-DD').format(`MMMM 'YY`);\r\n }\r\n }\r\n\r\n public getDateString(period: Period) {\r\n return moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM');\r\n }\r\n\r\n public forceRerender() {\r\n this.componentKey += 1;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./period-filter.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./period-filter.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./period-filter.vue?vue&type=template&id=ad31a724&\"\nimport script from \"./period-filter.ts?vue&type=script&lang=js&\"\nexport * from \"./period-filter.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"p-3\"},[_c('h4',{staticClass:\"mb-5\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ROLE_MANAGEMENT\"}})],1),_c('div',{staticClass:\"d-block\"},[_c('prd-grid-wrapper',{attrs:{\"flat\":\"\",\"data-items\":_vm.members,\"columns\":_vm.gridColumns,\"row-height\":40}})],1),_c('b-modal',{ref:\"rolesModal\"},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"EDIT_ROLES_OF\",\"translate-group\":\"MODALS\",\"inline\":true}}),_vm._v(\" \"+_vm._s(_vm.modalUser.emailAddress)+\" \")],1),_c('b-form-group',[_c('b-form-checkbox-group',{attrs:{\"stacked\":\"\",\"id\":\"checkbox-group-1\",\"options\":_vm.roleOptions},model:{value:(_vm.modalUser.roles),callback:function ($$v) {_vm.$set(_vm.modalUser, \"roles\", $$v)},expression:\"modalUser.roles\"}})],1),_c('b-button',{attrs:{\"slot\":\"modal-footer\",\"variant\":\"primary\"},on:{\"click\":_vm.updateRoles},slot:\"modal-footer\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"UPDATE_ROLES\",\"translate-group\":\"MODALS\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","declare global {\r\n interface String {\r\n /**\r\n * Returns the string with the first character changed to uppercase.\r\n */\r\n firstCharToUpper(): string;\r\n\r\n replaceAt(index: number, replacement: string): string;\r\n }\r\n}\r\n\r\nString.prototype.firstCharToUpper = function f(this: string): string {\r\n if (!!this && !!this[0]) {\r\n return this[0].toUpperCase() + this.slice(1);\r\n }\r\n\r\n return '';\r\n};\r\n\r\nString.prototype.replaceAt = function(this: string, index, replacement) {\r\n return `${this.substr(0, index)}${replacement}${this.substr(index + replacement.length)}`;\r\n};\r\n\r\nexport {};\r\n","import Component from 'vue-class-component';\r\nimport { Provide, Vue } from 'vue-property-decorator';\r\nimport { UserRoles } from '@/models/UserRoles';\r\nimport { userRoleService, memberHelper } from '@/main';\r\nimport PageRender from '@/models/PageRender';\r\nimport '@/extensions/stringExtensions';\r\nimport to from 'await-to-js';\r\nimport { BModal } from 'bootstrap-vue';\r\nimport { Person } from '@/models/Person';\r\nimport { Member } from '@/models/Member';\r\nimport { translateModule } from '@/store/modules/translate';\r\n\r\n/**\r\n * Encompasses a control that allows changing the admins for a team, group or other entities that can later be added.\r\n */\r\n@Component({\r\n filters: {\r\n firstCharToUpper: (value: string) => value.firstCharToUpper(),\r\n },\r\n})\r\nexport default class RolesSettings extends PageRender {\r\n // Properties used in HTML\r\n @Provide() public admins: Person[] = [];\r\n @Provide() public financeEmployees: Person[] = [];\r\n public roles: any[] = [{ id: 3, role: UserRoles.FinanceEmployee }, { id: 1, role: UserRoles.SiteAdmin }];\r\n public members: Person[] = [];\r\n\r\n public externalIdentifier: string = null;\r\n public role: UserRoles = null;\r\n public modalUser: Member = new Member();\r\n public oldRoles: any[] = [];\r\n\r\n public gridColumns: any[] = [\r\n { title: 'NAME', cell: this.renderMemberOfTeam },\r\n { field: 'emailAddress', title: 'EMAIL' },\r\n { title: 'ACTIONS', cell: this.renderActions, width: 120 },\r\n ];\r\n\r\n public $refs!: {\r\n rolesModal: BModal;\r\n };\r\n\r\n public async mounted() {\r\n await this.loadMembers();\r\n }\r\n\r\n public async loadMembers() {\r\n const [err, response] = await to(memberHelper.getMembers());\r\n if (err) {\r\n return this.showFailedResponse('Failed to retrieve members', null);\r\n }\r\n\r\n this.members = response.filter((member: Person) => {\r\n return member.externalIdentifier;\r\n });\r\n }\r\n\r\n public addRoleToMemberPopup(role: UserRoles) {\r\n this.$refs.rolesModal.show();\r\n this.role = role;\r\n }\r\n\r\n public get roleOptions() {\r\n return this.roles.map((role) => {\r\n return {\r\n text: role.role,\r\n value: role.id,\r\n };\r\n });\r\n }\r\n\r\n public async saveRole() {\r\n const self = this;\r\n self.showPending('SAVE_ROLE_PENDING');\r\n const [err] = await to(userRoleService.setUserRole(self.externalIdentifier, self.role));\r\n if (err) {\r\n return self.clearAndShowError('SAVE_ROLE_FAILED', null);\r\n }\r\n\r\n self.clearAndShowSuccess('SAVE_ROLE_SUCCESS');\r\n if (self.role === UserRoles.SiteAdmin) {\r\n self.admins.push(\r\n self.members.find((filteredMember) => {\r\n return filteredMember.externalIdentifier === self.externalIdentifier;\r\n }),\r\n );\r\n }\r\n\r\n if (self.role === UserRoles.FinanceEmployee) {\r\n self.financeEmployees.push(\r\n self.members.find((filteredMember) => {\r\n return filteredMember.externalIdentifier === self.externalIdentifier;\r\n }),\r\n );\r\n }\r\n self.$refs.rolesModal.hide();\r\n }\r\n\r\n public openRolesModal(member: Member) {\r\n this.modalUser = member;\r\n this.oldRoles = member.roles;\r\n this.$refs.rolesModal.show();\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n const actions = [{ title: translateModule.value('UPDATE_ROLES', 'MODALS'), function: this.openRolesModal }];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n public renderMemberOfTeam(h, _, row): any {\r\n return this.renderMember(h, row.dataItem);\r\n }\r\n\r\n public async updateRoles() {\r\n this.showPending('UPDATING_ROLES_PENDING');\r\n const removedRoles = [];\r\n const addedRoles = [];\r\n\r\n for (const role of this.oldRoles) {\r\n if (this.modalUser.roles.indexOf(role) === -1) {\r\n removedRoles.push(role);\r\n }\r\n }\r\n\r\n for (const role of this.modalUser.roles) {\r\n if (this.oldRoles.indexOf(role) === -1) {\r\n addedRoles.push(role);\r\n }\r\n }\r\n\r\n for (const addedRole of addedRoles) {\r\n const [err] = await to(userRoleService.setUserRole(this.modalUser.externalIdentifier, addedRole));\r\n if (err) {\r\n return this.clearAndShowError('UPDATING_ROLES_FAILED', err);\r\n }\r\n }\r\n\r\n for (const removedRole of removedRoles) {\r\n const [err] = await to(userRoleService.deleteUserRole(this.modalUser.externalIdentifier, removedRole));\r\n if (err) {\r\n return this.clearAndShowError('UPDATING_ROLES_FAILED', err);\r\n }\r\n }\r\n\r\n this.clearAndShowSuccess('UPDATING_ROLES_SUCCEEDED');\r\n this.$refs.rolesModal.hide();\r\n\r\n this.isLoading = true;\r\n await this.loadMembers();\r\n this.isLoading = false;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./roles-settings.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./roles-settings.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./roles-settings.vue?vue&type=template&id=0436267f&\"\nimport script from \"./roles-settings.ts?vue&type=script&lang=js&\"\nexport * from \"./roles-settings.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',{staticClass:\"mb-3\",attrs:{\"header-tag\":\"header\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [(!_vm.isEdit)?_c('h2',{staticClass:\"mb-0\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CREATE_TEMPLATE\"}})],1):(!_vm.isLoading)?_c('h2',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'EDIT_TEMPLATE', params: { name: _vm.template.name } }),expression:\"{ key: 'EDIT_TEMPLATE', params: { name: template.name } }\"}],staticClass:\"mb-0\"}):_vm._e()]},proxy:true}])},[(_vm.isLoading)?_c('spinner',{attrs:{\"color\":\"white\"}}):_c('b-card-body',[_c('form',{staticClass:\"d-block \"},[_c('b-form-group',{attrs:{\"id\":\"groupNameGroup\",\"label-cols\":\"3\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"element\":\"span\",\"translate-key\":\"TEMPLATE_NAME_DESCRIPTION\"},slot:\"description\"}),_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"for\":\"groupNameInput\",\"element\":\"span\",\"translate-key\":\"TEMPLATE_NAME_LABEL\"},slot:\"label\"}),_c('b-form-input',{class:{ 'border-danger': _vm.$v.template.name.$invalid && _vm.submitted },attrs:{\"id\":\"groupNameInput\",\"type\":\"text\",\"placeholder\":\"Development\"},model:{value:(_vm.template.name),callback:function ($$v) {_vm.$set(_vm.template, \"name\", $$v)},expression:\"template.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"groupNameGroup\",\"label-cols\":\"3\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"for\":\"groupPurposeInput\",\"element\":\"span\",\"translate-key\":\"TEMPLATE_NAME_LABEL\"},slot:\"label\"}),_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"element\":\"span\",\"translate-key\":\"TEMPLATE_DESCRIPTION_DESCRIPTION\"},slot:\"description\"}),_c('b-form-textarea',{class:{ 'border-danger': _vm.$v.template.description.$invalid && _vm.submitted },attrs:{\"id\":\"groupPurposeInput\",\"type\":\"text\",\"rows\":3,\"max-rows\":6},model:{value:(_vm.template.description),callback:function ($$v) {_vm.$set(_vm.template, \"description\", $$v)},expression:\"template.description\"}})],1)],1)])],1),_c('b-card',{staticClass:\"mb-3\",scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('prd-translate-text',{attrs:{\"element\":\"h4\",\"translate-key\":\"GROUP_ATTRIBUTIONS\"}})]},proxy:true}])},[_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"GROUP_ATTRIBUTIONS_CHANGE_MESSAGE\"}}),(_vm.isLoading)?_c('spinner',{attrs:{\"color\":\"white\"}}):_c('b-card-body',[_c('form',{staticClass:\"d-block \"},[_vm._l((_vm.groupAttributions),function(attribution){return _c('div',{key:attribution.id,staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(attribution.targetTeamModel),expression:\"attribution.targetTeamModel\"}],staticClass:\"form-control\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(attribution, \"targetTeamModel\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.teamChange(attribution)}]}},[_c('option',{attrs:{\"value\":\"\"}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_TEAM\"}})],1),_vm._l((_vm.teams),function(team){return _c('option',{key:team.name,domProps:{\"value\":team}},[_vm._v(\" \"+_vm._s(team.name)+\" \")])})],2)]),_c('div',{staticClass:\"col-md-4\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(attribution.targetGroupModel),expression:\"attribution.targetGroupModel\"}],staticClass:\"form-control\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(attribution, \"targetGroupModel\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"\"}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_GROUP\"}})],1),_vm._l((attribution.groups),function(group){return _c('option',{key:group.name,domProps:{\"value\":group}},[_vm._v(\" \"+_vm._s(group.name)+\" \")])})],2)]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"input-group\"},[_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent\"},[_vm._v(\"%\")])]),_c('prd-numeric-input',{staticClass:\"form-control text-right border-left-0\",attrs:{\"output-dec-seperator\":\",\"},model:{value:(attribution.percentage),callback:function ($$v) {_vm.$set(attribution, \"percentage\", $$v)},expression:\"attribution.percentage\"}})],1)]),_c('div',{staticClass:\"col-md-1\"},[(\n _vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee() || _vm.$root.roleHelper.isGroupLead(_vm.group)\n )?_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.deleteGroupAttribution(attribution)}}},[_c('i',{staticClass:\"icon-trash-2\"})]):_vm._e()])])])}),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee() || _vm.$root.roleHelper.isGroupLead(_vm.group))?_c('div',{staticClass:\"form-row\"},[(!_vm.copingLoading)?[_c('prd-translate-button',{staticClass:\"float-left\",attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"translate-key\":\"ADD_ATTRIBUTION\"},on:{\"click\":function($event){return _vm.addGroupAttribution()}}}),_c('prd-translate-text',{staticClass:\"float-left my-2 mx-3\",attrs:{\"translate-key\":\"OR\"}}),_c('div',{staticClass:\"input-group col-md-6 float-left\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.importGroupAttributionGroupId),expression:\"importGroupAttributionGroupId\"}],staticClass:\"form-control\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.importGroupAttributionGroupId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.groups),function(group){return _c('option',{key:group.name,domProps:{\"value\":group.groupId}},[_vm._v(\" \"+_vm._s(group.name)+\" \")])}),0),_c('prd-translate-button',{staticClass:\"input-group-append\",attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"disabled\":!_vm.importGroupAttributionGroupId,\"translate-key\":\"COPY_FROM\"},on:{\"click\":_vm.importGroupAttribution}})],1)]:_c('spinner',{attrs:{\"color\":\"white\"}})],2):_vm._e()],2),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"REMITTANCE_PERCENTAGE\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"REMITTANCE_PERCENTAGE_TEXT\"}}),_c('form',{staticClass:\"d-block \"},[_vm._l((_vm.remittances),function(remmitance){return _c('div',{key:remmitance.id,staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-8\"},[_c('div',{staticClass:\"input-group\"},[_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent\"},[_vm._v(\"%\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(remmitance.percentage),expression:\"remmitance.percentage\"}],staticClass:\"form-control text-right border-left-0\",attrs:{\"type\":\"text\"},domProps:{\"value\":(remmitance.percentage)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(remmitance, \"percentage\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md-3\"},[_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.deleteRemittanceAttribution(remmitance)}}},[_c('i',{staticClass:\"icon-trash-2\"})])])])])}),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee() || _vm.$root.roleHelper.isGroupLead(_vm.group))?_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"translate-key\":\"ADD_ATTRIBUTION\"},on:{\"click\":function($event){return _vm.addRemittanceAttribution()}}}):_vm._e()],2)],1)],1),_c('b-card',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('prd-translate-text',{attrs:{\"element\":\"h4\",\"translate-key\":\"FINANCE_SETTINGS\"}})]},proxy:true}])},[_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"FINANCE_SETTINGS_TEXT\"}}),(_vm.isLoading)?_c('spinner',{attrs:{\"color\":\"white\"}}):_c('b-card-body',[_c('form',{staticClass:\"d-block mt-5\"},[_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"PERSONAL_GROUP_FINANCE\"}}),_c('prd-translate-text',{staticClass:\"text-muted font-italic\",attrs:{\"element\":\"p\",\"translate-key\":\"PERSONAL_GROUP_FINANCE_TEXT\",\"params\":{ level: _vm.teamFinanceSettings.defaultGroupPrivacyLevel }}}),_c('b-form-group',{attrs:{\"label-for\":\"defaultGroupPrivacyLevel\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"ACCESSABLE_FROM_AND_UP\"},slot:\"description\"}),_c('b-form-select',{class:{ 'border-danger': _vm.$v.template.privacyLevel.$invalid && _vm.submitted },attrs:{\"id\":\"defaultGroupPrivacyLevel\",\"options\":_vm.roleOptions},model:{value:(_vm.template.privacyLevel),callback:function ($$v) {_vm.$set(_vm.template, \"privacyLevel\", $$v)},expression:\"template.privacyLevel\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_ROLE'),expression:\"'SELECT_ROLE'\"}],domProps:{\"value\":'Unknown'}})])],2)],1)],1),_c('hr'),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"APPLIED_MISSING_ATTRIBUTIONS\"}}),_c('prd-translate-text',{staticClass:\"text-muted \",attrs:{\"element\":\"p\",\"translate-key\":\"APPLIED_MISSING_ATTRIBUTIONS_TEXT\"}}),_c('form',{staticClass:\"d-block \"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"serviceAttributions\"},model:{value:(_vm.template.applyMissingAttributionsOnTransfer),callback:function ($$v) {_vm.$set(_vm.template, \"applyMissingAttributionsOnTransfer\", $$v)},expression:\"template.applyMissingAttributionsOnTransfer\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"APPLIED_MISSING_ATTRIBUTIONS\"}})],1)],1)],1),_c('hr'),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"INCOME_DISTRIBUTION\"}}),_c('prd-translate-text',{staticClass:\"text-muted \",attrs:{\"element\":\"p\",\"translate-key\":\"INCOME_DISTRIBUTION_TEXT\"}}),_c('form',{staticClass:\"d-block \"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"distributeIncome\"},model:{value:(_vm.template.autoDistributeIncomeToSavings),callback:function ($$v) {_vm.$set(_vm.template, \"autoDistributeIncomeToSavings\", $$v)},expression:\"template.autoDistributeIncomeToSavings\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"DISTRIBUTE_INCOME_AUTO\"}})],1)],1)],1),_c('hr'),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"EXPENSES_DISTRIBUTION\"}}),_c('prd-translate-text',{staticClass:\"text-muted \",attrs:{\"element\":\"p\",\"translate-key\":\"EXPENSES_DISTRIBUTION_TEXT\"}}),_c('form',{staticClass:\"d-block \"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"distributeExpenses\"},model:{value:(_vm.template.autoDistributeExpensesToSavings),callback:function ($$v) {_vm.$set(_vm.template, \"autoDistributeExpensesToSavings\", $$v)},expression:\"template.autoDistributeExpensesToSavings\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"DISTRIBUTE_EXPENSE_AUTO\"}})],1)],1)],1),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"COMPENSATE_GROUP_MEMBERS\"}}),_c('prd-translate-text',{staticClass:\"text-muted \",attrs:{\"element\":\"p\",\"translate-key\":\"COMPENSATE_GROUP_MEMBERS_TEXT\"}}),_c('form',{staticClass:\"d-block \"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"compensateGroupMembers\"},model:{value:(_vm.template.autoCompensateGroupMembers),callback:function ($$v) {_vm.$set(_vm.template, \"autoCompensateGroupMembers\", $$v)},expression:\"template.autoCompensateGroupMembers\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"COMPENSATE_MEMBERS_AUTO\"}})],1)],1)],1),_c('div',{staticClass:\"d-flex justify-content-end mt-5\"},[(_vm.isEdit)?_c('prd-translate-button',{staticClass:\"mr-2\",attrs:{\"translate-key\":\"DELETE\",\"variant\":\"danger\",\"action\":_vm.deleteTemplate}}):_vm._e(),_c('prd-translate-button',{staticClass:\"mr-2\",attrs:{\"translate-key\":\"CANCEL\"},on:{\"click\":_vm.cancel}}),_c('prd-translate-button',{attrs:{\"action\":_vm.createTemplate,\"translate-key\":\"SAVE\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { attributionService, groupService, teamHelper, teamService, templateService } from '@/main';\r\nimport Attribution from '@/models/Attribution';\r\nimport { AttributionType } from '@/models/AttributionType';\r\nimport Template from '@/models/Finance/Template';\r\nimport Group from '@/models/Group';\r\nimport { PrivacyLevel } from '@/models/PrivacyLevel';\r\nimport Team from '@/models/Team';\r\nimport TeamSettings from '@/models/TeamSettings';\r\nimport SideActionBase from '@/plugin/sideActions/sideActionBase';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { settingsModule } from '@/store/modules/settings';\r\nimport to from 'await-to-js';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { required, minValue, maxValue, not } from 'vuelidate/lib/validators';\r\n\r\n@Component({\r\n validations: {\r\n template: {\r\n name: { required },\r\n description: { required },\r\n privacyLevel: {\r\n not: not((model) => {\r\n return model === PrivacyLevel.Unknown;\r\n }),\r\n },\r\n\r\n attributions: {\r\n $each: {\r\n percentage: { required, minValue: minValue(0.01), maxValue: maxValue(100) },\r\n // targetTeamModel: { required },\r\n // targetGroupModel: { required },\r\n },\r\n },\r\n },\r\n },\r\n} as any)\r\nexport default class TemplateActionComponent extends SideActionBase {\r\n public isEdit: boolean = false;\r\n public isLoading: boolean = true;\r\n public submitted: boolean = false;\r\n\r\n public template: Template = new Template();\r\n\r\n public teams: Team[] = [];\r\n public groups: Group[] = [];\r\n public copingLoading: boolean = false;\r\n public importGroupAttributionGroupId?: number = null;\r\n\r\n public remittances: Attribution[] = [];\r\n public groupAttributions: Attribution[] = [];\r\n\r\n public teamFinanceSettings: TeamSettings = {\r\n defaultGroupPrivacyLevel: PrivacyLevel.Unknown,\r\n allExpensesPrivacyLevel: PrivacyLevel.Unknown,\r\n memberResultsPrivacyLevel: PrivacyLevel.Unknown,\r\n };\r\n\r\n public roleOptions: any[] = [\r\n { text: 'Site Admin', value: 'SiteAdmin' },\r\n { text: 'Finance Employee', value: 'FinanceEmployee' },\r\n { text: 'Group Lead', value: 'GroupLead' },\r\n { text: 'Member', value: 'Member' },\r\n ];\r\n\r\n public async mounted() {\r\n this.isEdit = this.options.template && this.options.template.financeGroupTemplateId && this.options.template.financeGroupTemplateId > 0;\r\n\r\n this.teams = await teamService.getTeams();\r\n\r\n await this.loadTeamFinanceSettings();\r\n\r\n this.groups = this.teams.find((x) => x.teamId === teamHelper.getTeamId()).groups;\r\n\r\n if (this.isEdit) {\r\n Object.assign(this.template, this.options.template);\r\n\r\n const groupAttributions = this.options.template.attributions.filter((x) => x.attributionType === AttributionType.GroupAttribution);\r\n const attrs = groupAttributions.map((item) => {\r\n const attr = new Attribution(0);\r\n Object.assign(attr, item);\r\n\r\n attr.targetTeamModel = this.teams.find((team) => {\r\n if (item.targetTeam) {\r\n return team.teamId === item.targetTeam;\r\n }\r\n\r\n return team.teamId === teamHelper.getTeamId();\r\n });\r\n\r\n return attr;\r\n });\r\n\r\n attrs.forEach(async (attribution) => {\r\n attribution.groups = await this.getTeamGroups(attribution.targetTeamModel);\r\n\r\n attribution.targetGroupModel = attribution.groups.find((group) => {\r\n return group.groupId === attribution.targetGroup;\r\n });\r\n });\r\n\r\n this.groupAttributions = attrs;\r\n\r\n this.remittances = this.options.template.attributions.filter((x) => x.attributionType === AttributionType.GroupRemittance);\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async addGroupAttribution() {\r\n const attribution = new Attribution(0);\r\n attribution.attributionType = AttributionType.GroupAttribution;\r\n attribution.targetTeamModel = this.teams.find((team) => {\r\n return team.teamId === teamHelper.getTeamId();\r\n });\r\n\r\n attribution.groups = await this.getTeamGroups(attribution.targetTeamModel);\r\n\r\n this.groupAttributions.push(attribution);\r\n }\r\n\r\n public addRemittanceAttribution(): any {\r\n const attribution = new Attribution(0);\r\n attribution.attributionType = AttributionType.GroupRemittance;\r\n this.remittances.push(attribution);\r\n }\r\n\r\n public deleteRemittanceAttribution(item: Attribution) {\r\n this.remittances.splice(this.remittances.indexOf(item), 1);\r\n }\r\n\r\n public deleteGroupAttribution(item: Attribution) {\r\n this.groupAttributions.splice(this.groupAttributions.indexOf(item), 1);\r\n }\r\n\r\n public async teamChange(attribution: Attribution) {\r\n attribution.targetGroup = null;\r\n attribution.groups = await this.getTeamGroups(attribution.targetTeamModel);\r\n }\r\n\r\n public async getTeamGroups(team: Team) {\r\n const [err, response] = await to(groupService.getGroups(team.teamId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse(`Failed to load groups for team ${team.teamKey}`, null);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async importGroupAttribution() {\r\n this.copingLoading = true;\r\n const currentTeamId = teamHelper.getTeamId(teamHelper.currentTeamId);\r\n\r\n await attributionService\r\n .getAttributions(AttributionType.GroupAttribution, currentTeamId, periodModule.selectedPeriod, this.importGroupAttributionGroupId)\r\n .then((result) => {\r\n result.data.forEach(async (attribution: Attribution) => {\r\n attribution.attributionId = undefined;\r\n // attribution.group = self.group.groupId;\r\n const foundTeam = this.teams.find((team) => team.teamId === attribution.targetTeam);\r\n attribution.targetTeamModel = foundTeam;\r\n const groups = (await teamService.getGroups(foundTeam.teamId, periodModule.selectedPeriod)).data;\r\n attribution.targetGroupModel = groups.find((group) => group.groupId === attribution.targetGroup);\r\n attribution.groups = groups;\r\n\r\n this.groupAttributions.push(attribution);\r\n });\r\n });\r\n\r\n this.copingLoading = false;\r\n }\r\n\r\n public async loadTeamFinanceSettings() {\r\n const currentTeamId = teamHelper.getTeamId(teamHelper.currentTeamId);\r\n await settingsModule.fetchTeamSettingsIfNeeded(currentTeamId);\r\n return (this.teamFinanceSettings = settingsModule.findTeamFinanceSettings(currentTeamId));\r\n }\r\n\r\n public async createTemplate(e) {\r\n this.submitted = true;\r\n\r\n this.template.attributions = [];\r\n\r\n this.groupAttributions.forEach((x) => {\r\n x.targetTeam = x.targetTeamModel.teamId;\r\n x.targetGroup = x.targetGroupModel.groupId;\r\n });\r\n\r\n this.template.attributions.push(...this.groupAttributions);\r\n\r\n this.remittances.forEach((x) => {\r\n x.targetGroup = null;\r\n x.targetTeam = null;\r\n x.targetAccount = null;\r\n x.targetTeamModel = null;\r\n x.targetGroupModel = null;\r\n });\r\n\r\n this.template.attributions.push(...this.remittances);\r\n\r\n this.template.attributions.forEach((x) => {\r\n x.percentage = parseFloat(x.percentage);\r\n });\r\n\r\n this.template.teamId = teamHelper.currentTeam.id;\r\n\r\n if ((this as any).$v.template.$invalid) {\r\n return;\r\n }\r\n\r\n this.showPending('SAVING_TEMPLATE');\r\n\r\n if (this.isEdit) {\r\n const [errU] = await to(templateService.updateTemplate(this.template));\r\n if (errU) {\r\n return this.clearAndShowError('ERROR_SAVING_TEMPLATE', errU);\r\n }\r\n } else {\r\n const [err] = await to(templateService.createTemplate(this.template));\r\n if (err) {\r\n return this.clearAndShowError('ERROR_SAVING_TEMPLATE', err);\r\n }\r\n }\r\n\r\n this.clearNotifications();\r\n this.finished(e);\r\n }\r\n\r\n public async deleteTemplate(e) {\r\n this.showPending('DELETING_TEMPLATE');\r\n const [err] = await to(templateService.deleteTemplate(this.template));\r\n if (err) {\r\n return this.clearAndShowError('ERROR_DELETING_TEMPLATE', err);\r\n }\r\n\r\n this.clearNotifications();\r\n this.finished(e);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-or-edit-template-action.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-or-edit-template-action.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create-or-edit-template-action.vue?vue&type=template&id=082ef73f&\"\nimport script from \"./create-or-edit-template-action.ts?vue&type=script&lang=js&\"\nexport * from \"./create-or-edit-template-action.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',{staticClass:\"mb-3\",attrs:{\"header-tag\":\"header\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h2',{staticClass:\"mb-0\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CREATE_ECOSYSTEM\",\"translate-group\":\"SIDE_ACTIONS\"}})],1)]},proxy:true}])},[(_vm.isLoading)?_c('spinner',{attrs:{\"color\":\"white\"}}):_c('b-card-body',[_c('form',{staticClass:\"d-block \"},[_c('b-form-group',{attrs:{\"id\":\"ecosystemName\",\"label-for\":\"ecosystemNameInput\",\"label-cols\":\"3\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"CREATE_ECOSYSTEM_ECOSYSTEM_LABEL\",\"translate-group\":\"SIDE_ACTIONS\"},slot:\"label\"}),_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"CREATE_ECOSYSTEM_ECOSYSTEM_DESCRIPTION\",\"translate-group\":\"SIDE_ACTIONS\"},slot:\"description\"}),_c('b-form-input',{class:{ 'border-danger': _vm.$v.ecosystem.ecosystemName.$invalid && _vm.submitted },attrs:{\"id\":\"ecosystemNameInput\",\"type\":\"text\",\"placeholder\":\"Desert\"},model:{value:(_vm.ecosystem.ecosystemName),callback:function ($$v) {_vm.$set(_vm.ecosystem, \"ecosystemName\", $$v)},expression:\"ecosystem.ecosystemName\"}})],1),_c('b-form-group',{attrs:{\"id\":\"teamName\",\"label-for\":\"teamNameInput\",\"label-cols\":\"3\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"CREATE_ECOSYSTEM_TEAM_LABEL\",\"translate-group\":\"SIDE_ACTIONS\"},slot:\"label\"}),_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"CREATE_ECOSYSTEM_TEAM_DESCRIPTION\",\"translate-group\":\"SIDE_ACTIONS\"},slot:\"description\"}),_c('b-form-input',{class:{ 'border-danger': _vm.$v.ecosystem.teamName.$invalid && _vm.submitted },attrs:{\"id\":\"teamNameInput\",\"type\":\"text\",\"placeholder\":\"Lizards\"},model:{value:(_vm.ecosystem.teamName),callback:function ($$v) {_vm.$set(_vm.ecosystem, \"teamName\", $$v)},expression:\"ecosystem.teamName\"}})],1)],1),_c('div',{staticClass:\"float-right\"},[_c('b-button',{staticClass:\"mt-5 mr-2\",on:{\"click\":function($event){return _vm.cancel()}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CANCEL\"}})],1),_c('b-button',{staticClass:\"mt-5\",attrs:{\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.createEcosystem()}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CREATE\"}})],1)],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ecosystemService, teamService } from '@/main';\r\nimport SideActionBase from '@/plugin/sideActions/sideActionBase';\r\nimport to from 'await-to-js';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { required } from 'vuelidate/lib/validators';\r\n\r\n@Component({\r\n validations: {\r\n ecosystem: {\r\n ecosystemName: { required },\r\n teamName: { required },\r\n // groupName: { required },\r\n },\r\n },\r\n} as any)\r\nexport default class TemplateActionComponent extends SideActionBase {\r\n public isEdit: boolean = false;\r\n public isLoading: boolean = true;\r\n public submitted: boolean = false;\r\n\r\n public ecosystem: any = {\r\n ecosystemName: '',\r\n teamName: '',\r\n groupName: 'Activity one',\r\n };\r\n\r\n public async mounted() {\r\n this.isLoading = false;\r\n }\r\n\r\n public async createEcosystem() {\r\n this.submitted = true;\r\n\r\n if ((this as any).$v.ecosystem.$invalid) {\r\n return;\r\n }\r\n\r\n this.showPending('CREATING_ECOSYSTEM');\r\n\r\n const createdEcosystem = await ecosystemService.createEcosytem(this.ecosystem.ecosystemName);\r\n if (createdEcosystem && createdEcosystem.ecosystemId > 0) {\r\n await to(\r\n teamService.createTeam(\r\n {\r\n name: this.ecosystem.teamName,\r\n ecosystem: createdEcosystem.ecosystemKey,\r\n legalEntityReference: this.ecosystem.teamName,\r\n },\r\n createdEcosystem.ecosystemId,\r\n ),\r\n );\r\n\r\n this.clearNotifications();\r\n return this.finished(createdEcosystem);\r\n }\r\n\r\n this.clearAndShowError('CREATING_ECOSYSTEM_FAILED', null);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-ecosystem-action.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-ecosystem-action.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create-ecosystem-action.vue?vue&type=template&id=9758bbb2&\"\nimport script from \"./create-ecosystem-action.ts?vue&type=script&lang=js&\"\nexport * from \"./create-ecosystem-action.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',{staticClass:\"mb-3\",attrs:{\"header-tag\":\"header\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [(!_vm.isEdit)?_c('h2',{staticClass:\"mb-0\"},[_vm._v(\"Create view\")]):_c('h2',{staticClass:\"mb-0\"},[_vm._v(\"Edit view '\"+_vm._s(_vm.view.name)+\"'\")])]},proxy:true}])},[(_vm.isLoading)?_c('spinner',{attrs:{\"color\":\"white\"}}):_c('b-card-body',[_c('form',{staticClass:\"d-block\"},[_c('b-form-group',{attrs:{\"id\":\"groupNameGroup\",\"label\":\"View name\",\"label-for\":\"groupNameInput\",\"description\":\"The view name\",\"label-cols\":\"3\"}},[_c('b-form-input',{class:{ 'border-danger': _vm.$v.view.name.$invalid && _vm.submitted },attrs:{\"id\":\"groupNameInput\",\"type\":\"text\",\"placeholder\":\"Development\"},model:{value:(_vm.view.name),callback:function ($$v) {_vm.$set(_vm.view, \"name\", $$v)},expression:\"view.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"allTeams\",\"label\":\"Included own teams\",\"label-cols\":\"3\",\"label-for\":\"own-teams\"}},[_c('b-form-checkbox',{staticClass:\"mt-1\",attrs:{\"name\":\"check-button\",\"id\":\"own-teams\",\"switch\":\"\"},model:{value:(_vm.view.includeOwnTeams),callback:function ($$v) {_vm.$set(_vm.view, \"includeOwnTeams\", $$v)},expression:\"view.includeOwnTeams\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"INCLUDE_OWN_TEAMS\"}})],1)],1),(!_vm.view.includeOwnTeams)?_c('b-form-group',{attrs:{\"id\":\"teams\",\"label\":\"Included teams\",\"label-for\":\"checkbox-group-1\",\"label-cols\":\"3\"}},[_c('b-form-checkbox-group',{attrs:{\"stacked\":\"\",\"id\":\"checkbox-group-1\",\"options\":_vm.teamOptions(),\"name\":\"flavour-1\"},model:{value:(_vm.selectedTeams),callback:function ($$v) {_vm.selectedTeams=$$v},expression:\"selectedTeams\"}})],1):_vm._e(),_c('b-form-group',{attrs:{\"id\":\"members\",\"label\":\"Included persons\",\"label-for\":\"checkbox-group-2\",\"label-cols\":\"3\"}},[_c('b-form-checkbox-group',{attrs:{\"stacked\":\"\",\"id\":\"checkbox-group-2\",\"options\":_vm.memberOptions(),\"name\":\"flavour-2\"},model:{value:(_vm.selectedMembers),callback:function ($$v) {_vm.selectedMembers=$$v},expression:\"selectedMembers\"}})],1),_c('b-form-group',{attrs:{\"id\":\"roles\",\"label\":\"Included roles\",\"label-for\":\"checkbox-group-3\",\"label-cols\":\"3\"}},[_c('b-form-checkbox-group',{attrs:{\"stacked\":\"\",\"id\":\"checkbox-group-3\",\"options\":_vm.roleOptions,\"name\":\"flavour-3\"},model:{value:(_vm.selectedRoles),callback:function ($$v) {_vm.selectedRoles=$$v},expression:\"selectedRoles\"}})],1)],1),_c('div',{staticClass:\"float-right\"},[(_vm.isEdit)?_c('b-button',{staticClass:\"mt-5 mr-2\",attrs:{\"variant\":\"danger\"},on:{\"click\":function($event){return _vm.deleteView()}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"DELETE\"}})],1):_vm._e(),_c('b-button',{staticClass:\"mt-5 mr-2\",on:{\"click\":function($event){return _vm.cancel()}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CANCEL\"}})],1),_c('b-button',{staticClass:\"mt-5\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.createTemplate}},[(_vm.isEdit)?_c('prd-translate-text',{attrs:{\"translate-key\":\"UPDATE\"}}):_c('prd-translate-text',{attrs:{\"translate-key\":\"SAVE\"}})],1)],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { groupService, teamService, insightService } from '@/main';\r\nimport Attribution from '@/models/Attribution';\r\nimport InsightView from '@/models/Insights/InsightView';\r\nimport { Member } from '@/models/Member';\r\nimport { Person } from '@/models/Person';\r\nimport Team from '@/models/Team';\r\nimport SideActionBase from '@/plugin/sideActions/sideActionBase';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport to from 'await-to-js';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { required } from 'vuelidate/lib/validators';\r\n\r\n@Component({\r\n validations: {\r\n view: {\r\n name: { required },\r\n },\r\n },\r\n} as any)\r\nexport default class TemplateActionComponent extends SideActionBase {\r\n public isEdit: boolean = false;\r\n public isLoading: boolean = true;\r\n public submitted: boolean = false;\r\n\r\n public view: InsightView = new InsightView();\r\n\r\n public teams: Team[] = [];\r\n public members: Member[] = [];\r\n public copingLoading: boolean = false;\r\n public importGroupAttributionGroupId?: number = null;\r\n\r\n public selectedTeams: any[] = [];\r\n public selectedRoles: any[] = [];\r\n public selectedMembers: any[] = [];\r\n\r\n public roleOptions: any[] = [\r\n { text: 'Accountant', value: 'BE_Accountant' },\r\n { text: 'Site Admin', value: 'BE_SiteAdmin' },\r\n { text: 'Member', value: 'BE_Member' },\r\n ];\r\n\r\n public async mounted() {\r\n this.isEdit = this.options.view && this.options.view.insightViewId && this.options.view.insightViewId > 0;\r\n\r\n this.teams = await teamService.getTeams();\r\n const members = [];\r\n for (const team of this.teams) {\r\n const apiMembers = await teamService.getMembers(team.teamId);\r\n\r\n for (const member of apiMembers) {\r\n const fMember = members.find((x) => x.id === member.personId);\r\n if (fMember) {\r\n fMember.groupMemberships.push(...member.groupMemberships);\r\n } else {\r\n this.members.push(new Member(member));\r\n }\r\n }\r\n }\r\n\r\n if (this.isEdit) {\r\n Object.assign(this.view, this.options.view);\r\n }\r\n\r\n if (this.view.teams.length > 0) {\r\n this.selectedTeams = this.view.teams.filter((x) => x.teamId).map((x) => x.teamId);\r\n }\r\n if (this.view.persons.length > 0) {\r\n this.selectedMembers = this.view.persons.map((x) => x.personId);\r\n }\r\n\r\n if (this.view.teams.length > 0) {\r\n this.selectedRoles = this.view.roles.map((x) => x.role);\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async teamChange(attribution: Attribution) {\r\n attribution.targetGroup = null;\r\n attribution.groups = await this.getTeamGroups(attribution.targetTeamModel);\r\n }\r\n\r\n public async getTeamGroups(team: Team) {\r\n const [err, response] = await to(groupService.getGroups(team.teamId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse(`Failed to load groups for team ${team.teamKey}`, null);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public memberOptions() {\r\n return this.members\r\n .map((member) => {\r\n return { text: member.getFullName(), value: member.memberId };\r\n })\r\n .filter((item, index, array) => {\r\n return array.findIndex((x) => x.value === item.value) === index;\r\n });\r\n }\r\n\r\n public teamOptions() {\r\n return this.teams.map((team) => {\r\n return { text: team.name, value: team.teamId };\r\n });\r\n }\r\n\r\n public async createTemplate(e) {\r\n this.submitted = true;\r\n\r\n if ((this as any).$v.view.$invalid) {\r\n return;\r\n }\r\n\r\n this.showPending('SAVING_VIEW');\r\n\r\n this.view.persons = this.selectedMembers.map((x) => {\r\n return { personId: x } as Person;\r\n });\r\n\r\n this.view.roles = this.selectedRoles.map((x) => {\r\n return { role: x };\r\n });\r\n\r\n if (this.selectedTeams && this.selectedTeams.length) {\r\n this.view.teams = this.selectedTeams.map((x) => {\r\n return { teamId: x, teamKey: this.teams.find((y) => y.teamId === x).teamKey } as Team;\r\n });\r\n }\r\n\r\n if (this.isEdit) {\r\n const [errU] = await to(insightService.updateView(this.view));\r\n if (errU) {\r\n return this.clearAndShowError('ERROR_SAVING_VIEW', errU);\r\n }\r\n\r\n this.clearNotifications();\r\n this.finished(e);\r\n return;\r\n }\r\n\r\n const [err] = await to(insightService.createView(this.view));\r\n if (err) {\r\n return this.clearAndShowError('ERROR_SAVING_VIEW', err);\r\n }\r\n\r\n this.clearNotifications();\r\n this.finished(e);\r\n }\r\n\r\n public async deleteView(e) {\r\n this.showPending('DELETING_VIEW');\r\n const [err] = await to(insightService.deleteView(this.view));\r\n if (err) {\r\n return this.clearAndShowError('ERROR_DELETING_VIEW', err);\r\n }\r\n\r\n this.clearNotifications();\r\n this.finished(e);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-or-edit-view-action.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-or-edit-view-action.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create-or-edit-view-action.vue?vue&type=template&id=5e6335c7&\"\nimport script from \"./create-or-edit-view-action.ts?vue&type=script&lang=js&\"\nexport * from \"./create-or-edit-view-action.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.center)?_c('div',{staticClass:\"d-flex align-items-center justify-content-center p-3 w-100\"},[_c('img',{style:((\"height: \" + _vm.spinnerHeight)),attrs:{\"src\":_vm.src,\"alt\":\"Loading...\"}})]):_c('img',{style:((\"height: \" + _vm.spinnerHeight)),attrs:{\"src\":_vm.src,\"alt\":\"Loading...\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Prop, Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class SpinnerComponent extends Vue {\r\n @Prop({ default: 50 }) public height: number| string;\r\n @Prop({ type: String, default: 'blue' }) public color: string;\r\n @Prop() public center: boolean;\r\n public src: string = '';\r\n public spinnerHeight: string = '50px';\r\n public spinnerColor: string = 'blue';\r\n\r\n public mounted() {\r\n if (this.height) {\r\n if (typeof(this.height) === 'number') {\r\n this.spinnerHeight = `${this.height}px`;\r\n } else {\r\n this.spinnerHeight = this.height;\r\n }\r\n }\r\n\r\n if (this.color) {\r\n this.spinnerColor = this.color;\r\n }\r\n\r\n this.src = `/img/bright-loading-spinner-${this.spinnerColor}.gif`;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./spinner.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./spinner.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./spinner.vue?vue&type=template&id=efb773f0&\"\nimport script from \"./spinner.ts?vue&type=script&lang=js&\"\nexport * from \"./spinner.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.recurringTransfersLoading)?_c('spinner'):_c('div',[(_vm.showIfEmpty || _vm.transfers.length > 0)?_c('div',[(_vm.showTitle)?_c('h3',[(_vm.compensations)?_c('prd-translate-text',{attrs:{\"translate-key\":\"RECURRING_COMPENSATIONS\"}}):_c('prd-translate-text',{attrs:{\"translate-key\":\"RECURRING_TRANSFERS\"}})],1):_vm._e(),_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.transfers,\"columns\":_vm.columns}}),_c('transfer-modal',{ref:\"transferModal\",attrs:{\"recurringTransfer\":_vm.selectedTransfer,\"title\":\"View recurring transfer\",\"selectedTeamId\":_vm.teamId,\"type\":_vm.transferModalType,\"readonly\":true}})],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport IRecurringTransfer from '@/interfaces/IRecurringTransfer';\r\nimport { transferService } from '@/main';\r\nimport PageRender from '@/models/PageRender';\r\nimport to from 'await-to-js';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport TransferModalComponent from '../modals/transfer-modal';\r\nimport { TransferType } from '@/models/TransferType';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport moment from 'moment';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class RecurringTransfersGrid extends PageRender {\r\n @Prop() public teamId: number;\r\n @Prop() public groupId: number;\r\n @Prop() public personId: number;\r\n @Prop() public period: string;\r\n @Prop({ default: true }) public showTitle: boolean;\r\n @Prop({ default: false }) public compensations: boolean;\r\n @Prop({ default: false }) public showIfEmpty: boolean;\r\n\r\n public recurringTransfersLoading: boolean = true;\r\n public transfers: IRecurringTransfer[] = [];\r\n public selectedTransfer: IRecurringTransfer = null;\r\n public columns = [\r\n { title: 'AMOUNT', field: 'amount', width: 100 },\r\n { title: 'SENDER', field: 'senderAccount.name', cell: this.renderSender, width: 250 },\r\n { title: 'RECEIVER', field: 'receiverAccount.name', cell: this.renderReceiver, width: 250 },\r\n { title: 'DESCRIPTION', field: 'description' },\r\n { title: 'INITIATOR', field: 'initiator.name', width: 250 },\r\n { title: 'SCHEDULE', field: 'schedule', width: 100 },\r\n { title: 'CREATED', cell: this.renderCreated, width: 150 },\r\n { title: 'ACTIONS', cell: this.renderActions, width: 100 },\r\n ];\r\n\r\n public $refs!: {\r\n transferModal: TransferModalComponent;\r\n };\r\n\r\n public async mounted() {\r\n await this.refreshData();\r\n }\r\n\r\n public async refreshData() {\r\n this.recurringTransfersLoading = true;\r\n this.transfers = await this.getTransfers();\r\n this.recurringTransfersLoading = false;\r\n }\r\n\r\n public get teams() {\r\n return this.selectedTransfer ? [this.selectedTransfer.senderTeam, this.selectedTransfer.receiverTeam] : [];\r\n }\r\n\r\n public get transferModalType() {\r\n return TransferType.GroupToGroup;\r\n }\r\n\r\n private async getTransfers() {\r\n const [err, response] = await to(transferService.getReucrringTransfers(this.period, this.teamId, this.groupId));\r\n\r\n if (err) {\r\n this.clearAndShowError('Failed to load transfers.', null);\r\n return [];\r\n }\r\n return this.filterTransfers(response.data);\r\n }\r\n\r\n private filterTransfers(transfers: IRecurringTransfer[]) {\r\n return transfers.filter((transfer: IRecurringTransfer) => {\r\n if (this.compensations) {\r\n return transfer.receiverAccount.accountType === AccountType.Person;\r\n } else if (!this.compensations && this.groupId && !this.personId) {\r\n return transfer.senderAccount.accountType === AccountType.GroupSavings;\r\n } else if (!this.compensations && !this.groupId && !this.personId) {\r\n return transfer.senderAccount.accountType === AccountType.Person && transfer.receiverAccount.accountType === AccountType.Person;\r\n }\r\n });\r\n }\r\n\r\n private renderSender(h, _, row: { dataItem: IRecurringTransfer }) {\r\n const transfer = row.dataItem;\r\n const senders = [transfer.senderTeam ? transfer.senderTeam.name : '', transfer.senderGroup ? transfer.senderGroup.name : ''].filter(\r\n (v) => !!v,\r\n );\r\n\r\n if (transfer.receiverAccount.accountType === AccountType.Person) {\r\n senders.push(transfer.receiverAccount.name);\r\n }\r\n return h('td', senders.join(' - '));\r\n }\r\n\r\n private renderReceiver(h, _, row) {\r\n const transfer: IRecurringTransfer = row.dataItem;\r\n const receivers = [transfer.receiverTeam ? transfer.receiverTeam.name : '', transfer.receiverGroup ? transfer.receiverGroup.name : ''].filter(\r\n (v) => !!v,\r\n );\r\n if (transfer.receiverAccount.accountType === AccountType.Person) {\r\n receivers.push(transfer.receiverAccount.name);\r\n }\r\n return h('td', receivers.join(' - '));\r\n }\r\n\r\n private renderCreated(h, _, row) {\r\n const transfer: IRecurringTransfer = row.dataItem;\r\n return h('td', moment(transfer.dateCreated).format('DD-MM-YYYY'));\r\n }\r\n\r\n private renderActions(h, _, row) {\r\n const actions = [{ title: 'view', function: this.viewRecurringTransfer }, { title: 'stop', function: this.stopRecurringTransfer }];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n private async stopRecurringTransfer(transfer: IRecurringTransfer) {\r\n let period = this.period;\r\n\r\n if (!period) {\r\n period = periodModule.selectedPeriod;\r\n }\r\n\r\n this.showPending('STOP_RECURRING_TRANSFER_PENDING');\r\n const [err] = await to(transferService.stopRecurringTransfer(transfer.recurringTransferId, period));\r\n if (err) {\r\n this.clearAndShowError('STOP_RECURRING_TRANSFER_FAILED', null);\r\n } else {\r\n this.clearAndShowSuccess('STOP_RECURRING_TRANSFER_SUCCESS');\r\n await this.refreshData();\r\n }\r\n }\r\n\r\n private viewRecurringTransfer(transfer: IRecurringTransfer) {\r\n this.selectedTransfer = transfer;\r\n this.$nextTick(async () => {\r\n this.$refs.transferModal.editMode = true;\r\n await this.$refs.transferModal.initRecurringTransfer(transfer);\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./recurring-transfers-grid.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./recurring-transfers-grid.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./recurring-transfers-grid.vue?vue&type=template&id=71235016&\"\nimport script from \"./recurring-transfers-grid.ts?vue&type=script&lang=js&\"\nexport * from \"./recurring-transfers-grid.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.inEditMode && _vm.action)?_c('prd-action-btn',{attrs:{\"variant\":_vm.variant,\"size\":_vm.size,\"action\":_vm.action,\"disabled\":_vm.disabled}},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:(_vm.translateKey),expression:\"translateKey\"}]})]):(!_vm.inEditMode)?_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:(_vm.translateKey),expression:\"translateKey\"}],attrs:{\"variant\":_vm.variant,\"size\":_vm.size,\"disabled\":_vm.disabled},on:{\"click\":_vm.clicked}}):_c('b-button',{attrs:{\"variant\":_vm.variant,\"size\":_vm.size}},[_c('prd-translate-text',{attrs:{\"translate-key\":_vm.translateKey,\"variant\":_vm.variant}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport TranslateBase from './base';\r\nimport PrdActionBtn from '@prd/shared-ui/src/components/Form/ActionButton.vue';\r\n\r\n@Component({\r\n components: {\r\n PrdActionBtn,\r\n }\r\n})\r\nexport default class TranslateButton extends TranslateBase {\r\n @Prop() public variant: string;\r\n @Prop() public size: string;\r\n @Prop() public action: CallableFunction;\r\n @Prop({ type: Boolean, default: false }) public disabled: boolean;\r\n\r\n public clicked(e) {\r\n this.$emit('click', e);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./button.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./button.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./button.vue?vue&type=template&id=b323286e&\"\nimport script from \"./button.ts?vue&type=script&lang=js&\"\nexport * from \"./button.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode && _vm.inEditMode)?_c('b-input-group',[_c('b-input',{on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }return _vm.onSpace.apply(null, arguments)}},model:{value:(_vm.virtualValue),callback:function ($$v) {_vm.virtualValue=$$v},expression:\"virtualValue\"}}),_c('b-button',{attrs:{\"size\":\"sm\"},on:{\"click\":_vm.save}},[_c('i',{staticClass:\"icon-check\"})])],1):_c('div',{staticClass:\"prd-translate\",class:[{'inline': _vm.inline, 'edit-mode': _vm.inEditMode}, _vm.variant]},[_c('span',[_vm._v(_vm._s(_vm.value))]),(_vm.inEditMode)?_c('div',{staticClass:\"edit-toggle\",on:{\"click\":_vm.edit}},[_c('i',{staticClass:\"icon-pencil\"})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport TranslateBase from './base';\r\n\r\n@Component\r\nexport default class TranslateTextInline extends TranslateBase {\r\n @Prop({ default: () => '' }) public variant;\r\n\r\n public onClick(e) {\r\n this.$emit('click', e);\r\n }\r\n\r\n public onSpace(e) {\r\n e.preventDefault();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./text-inline.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./text-inline.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./text-inline.vue?vue&type=template&id=54092728&\"\nimport script from \"./text-inline.ts?vue&type=script&lang=js&\"\nexport * from \"./text-inline.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.inEditMode)?_c(_vm.element,{tag:\"component\",class:[{'inline': _vm.inline, 'column': _vm.column}, _vm.variant],domProps:{\"innerHTML\":_vm._s(_vm.value)}}):_c(_vm.element,{tag:\"component\",staticClass:\"prd-translate\",class:[{'inline': _vm.inline, 'edit-mode': _vm.inEditMode, 'column': _vm.column}, _vm.variant],attrs:{\"id\":_vm.id}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.value)}}),(_vm.inEditMode)?_c('div',{staticClass:\"edit-toggle\",on:{\"click\":_vm.edit}},[_c('i',{staticClass:\"icon-pencil\"})]):_vm._e(),(_vm.inEditMode)?_c('b-popover',{attrs:{\"target\":_vm.id,\"show\":_vm.editMode,\"placement\":\"bottom\"},on:{\"update:show\":function($event){_vm.editMode=$event}}},[_c('b-input-group',[_c('b-input',{ref:\"input\",attrs:{\"value\":_vm.rawValue,\"size\":\"sm\"},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.save.apply(null, arguments)},\"input\":_vm.setValue}}),_c('b-button',{attrs:{\"size\":\"sm\"},on:{\"click\":_vm.save}},[_c('i',{staticClass:\"icon-check\"})])],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport TranslateBase from './base';\r\n\r\n@Component\r\nexport default class TranslateText extends TranslateBase {\r\n @Prop({ default: () => '' }) public variant;\r\n @Prop({ default: () => 'div' }) public element;\r\n\r\n public onSpace(e) {\r\n e.preventDefault();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./text.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./text.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./text.vue?vue&type=template&id=de866454&\"\nimport script from \"./text.ts?vue&type=script&lang=js&\"\nexport * from \"./text.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('prd-detail-layout',[_c('prd-toolbar',{staticClass:\"mb-3\",attrs:{\"space-between\":\"\",\"stretch\":\"\"}},[_c('template',{slot:\"left\"},[_c('div',{staticStyle:{\"width\":\"250px\"}},[(_vm.loading)?_c('b-skeleton'):_c('prd-multiselect',{attrs:{\"placeholder\":\"Select a view\",\"options\":_vm.views,\"label\":\"name\",\"disabled\":_vm.loadingGraph},on:{\"select\":_vm.onSelectView},model:{value:(_vm.insight),callback:function ($$v) {_vm.insight=$$v},expression:\"insight\"}})],1)]),(!_vm.loading)?_c('template',{slot:\"right\"},[_c('grid-period-range-filter',{attrs:{\"hide-refresh\":\"\",\"disabled\":_vm.loadingGraph},on:{\"filter-input\":_vm.periodChanged}}),_c('b-btn',{attrs:{\"size\":\"sm\",\"disabled\":_vm.loadingGraph},on:{\"click\":function($event){return _vm.fetchAndDraw(true)}}},[_c('i',{staticClass:\"icon-rotate-cw\"})])],1):_vm._e()],2),(_vm.insight)?_c('b-card',{attrs:{\"no-body\":\"\"}},[_c('div',{staticClass:\"graph-grid\"},[_c('div',{staticClass:\"graph-grid-column\"},[_c('div',{staticClass:\"graph-grid-title\"},[(_vm.canGoUp)?_c('b-btn',{attrs:{\"size\":\"sm\"},on:{\"click\":_vm.goUp}},[_vm._v(\"Back\")]):_vm._e()],1),_c('div',{staticClass:\"graph-grid-svg\"},[_c('prd-svg-canvas',{ref:\"svgPrimaryCanvas\",on:{\"resized\":_vm.onResize}}),(_vm.loadingGraph)?_c('prd-loader',{staticClass:\"bg-white\",attrs:{\"cover\":\"\",\"text\":\"Loading insights\"}},[_c('spinner',{attrs:{\"color\":\"white\",\"height\":\"100px\"}})],1):_vm._e()],1)]),_c('div',{staticClass:\"graph-grid-column\"},[_c('div',{staticClass:\"graph-grid-title justify-content-end\"},[_c('b-btn',{attrs:{\"size\":\"sm\"},on:{\"click\":function($event){return _vm.onZoom(1)}}},[_c('i',{staticClass:\"icon-rotate-ccw\"})]),_c('b-btn-group',[_c('b-btn',{attrs:{\"size\":\"sm\"},on:{\"click\":function($event){return _vm.onZoom(_vm.zoom * 0.75)}}},[_c('i',{staticClass:\"icon-zoom-out\"})]),_c('b-btn',{attrs:{\"size\":\"sm\"},on:{\"click\":function($event){return _vm.onZoom(_vm.zoom / 0.75)}}},[_c('i',{staticClass:\"icon-zoom-in\"})])],1),_c('b-dd',{staticClass:\"p-0\",attrs:{\"size\":\"sm\",\"no-caret\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('i',{staticClass:\"icon-settings\"})]},proxy:true}],null,false,2616120342)},[_c('b-dd-form',[_c('b-form-group',{attrs:{\"label\":\"Rotate\",\"description\":(\"(\" + _vm.rotate + \" graden)\")}},[_c('b-input',{attrs:{\"type\":\"range\",\"min\":\"-180\",\"max\":\"180\"},on:{\"input\":_vm.updateGraphSettings},model:{value:(_vm.rotate),callback:function ($$v) {_vm.rotate=$$v},expression:\"rotate\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Margin\",\"description\":(\"(\" + _vm.margin + \")\")}},[_c('b-input',{attrs:{\"type\":\"range\",\"min\":\"10\",\"max\":\"200\"},on:{\"input\":_vm.updateGraphSettings},model:{value:(_vm.margin),callback:function ($$v) {_vm.margin=$$v},expression:\"margin\"}})],1)],1)],1)],1),_c('div',{staticStyle:{\"height\":\"20rem\",\"margin\":\"0 1.25rem\"}},[_c('prd-svg-canvas',{ref:\"svgSecondaryCanvas\"})],1),_c('div',{staticClass:\"graph-grid-info\"},[(_vm.incoming.length)?_c('div',{staticClass:\"mb-5\"},[_c('h5',[_vm._v(_vm._s(_vm._f(\"translate\")('INCOMING_FROM')))]),_c('table',{staticClass:\"table table-sm table-borderless\"},_vm._l((_vm.incoming),function(edge,indexI){return _c('tr',{key:(\"incoming_\" + (edge.origin) + \"_\" + indexI)},[_c('td',[_vm._v(_vm._s(_vm.nodeName(edge.origin)))]),_c('td',{staticClass:\"text-right\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('b',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(edge.label)))]),_c('span',{staticClass:\"k-icon\",class:{ 'k-i-arrow-60-up text-success': edge.label > 0, ' k-i-arrow-60-down text-danger': edge.label < 0 }})])])}),0)]):_vm._e(),(_vm.outgoing.length)?_c('div',{staticClass:\"mb-5\"},[_c('h5',[_vm._v(_vm._s(_vm._f(\"translate\")('OUTGOING_TO')))]),_c('table',{staticClass:\"table table-sm table-borderless\"},_vm._l((_vm.outgoing),function(edge,indexO){return _c('tr',{key:(\"outgoing_\" + (edge.destination) + \"_\" + indexO)},[_c('td',[_vm._v(_vm._s(_vm.nodeName(edge.destination)))]),_c('td',{staticClass:\"text-right\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('b',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(edge.label)))]),_c('span',{staticClass:\"k-icon\",class:{ 'k-i-arrow-60-up text-success': edge.label < 0, ' k-i-arrow-60-down text-danger': edge.label > 0 }})])])}),0)]):_vm._e()])])])]):_vm._e(),(_vm.insight && _vm.ecologyTotals)?_c('prd-card',{staticClass:\"mt-3\",attrs:{\"title\":\"Insights totals\"}},[_c('finance-totals',{attrs:{\"totals\":[_vm.ecologyTotals]}})],1):_vm._e(),(_vm.insight && _vm.teamTotals)?[_c('div',{staticClass:\"mt-3\"}),_vm._l((_vm.teamTotals),function(totals){return _c('prd-card',{key:totals.teamId,staticClass:\"mb-3\",attrs:{\"title\":totals.name}},[_c('finance-totals',{attrs:{\"totals\":[totals],\"expanded\":\"\"}})],1)})]:_vm._e(),(_vm.insight && _vm.activityTotals)?[_c('div',{staticClass:\"mt-3\"}),_vm._l((_vm.activityTotals),function(totals){return _c('prd-card',{key:totals.id,staticClass:\"mb-3\",attrs:{\"title\":totals.name}},[_c('finance-totals',{attrs:{\"totals\":totals.totals}})],1)})]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum MapView {\r\n Ecology = 'Ecology',\r\n Team = 'Team',\r\n Activity = 'Activity',\r\n Member = 'Member',\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"prd-canvas\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { SVG, Svg } from '@svgdotjs/svg.js';\r\nimport Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class PrdCanvasComponent extends Vue {\r\n public canvas: Svg = null;\r\n\r\n public mounted() {\r\n this.canvas = SVG().addTo(this.getContainer());\r\n this.fitContainer();\r\n\r\n this.$emit('loaded', this.canvas);\r\n window.addEventListener('resize', this.onResized);\r\n }\r\n\r\n public beforeDestroy() {\r\n window.removeEventListener('resize', this.onResized);\r\n }\r\n\r\n private onResized() {\r\n this.fitContainer();\r\n if (this.canvas) {\r\n this.$emit('resized', this.canvas);\r\n }\r\n }\r\n\r\n private fitContainer() {\r\n const container: HTMLElement = this.getContainer();\r\n const rect = container.getBoundingClientRect();\r\n const height = rect.height;\r\n const width = rect.width;\r\n\r\n if (this.canvas) {\r\n this.canvas.size(width, height);\r\n }\r\n }\r\n\r\n private getContainer(): HTMLElement {\r\n return this.$el as HTMLElement;\r\n }\r\n}\r\n","export enum HorizontalAlign {\r\n Center = 'Center',\r\n Right = 'Right',\r\n Left = 'Left',\r\n};\r\n","export enum VerticalAlign {\r\n Top = 'Top',\r\n Bottom = 'Bottom',\r\n Center = 'Center',\r\n};\r\n","export enum CellScore {\r\n Bad = 0,\r\n BelowAvarage = 1,\r\n AboveAvarage = 2,\r\n Ambigious = 3,\r\n Unknown = 4,\r\n}\r\n","export enum CellIndicatorScore {\r\n Negative = 0,\r\n Positive = 1,\r\n Unkown = 2\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./prd-svg-canvas.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./prd-svg-canvas.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./prd-svg-canvas.vue?vue&type=template&id=29a9832c&\"\nimport script from \"./prd-svg-canvas.ts?vue&type=script&lang=js&\"\nexport * from \"./prd-svg-canvas.ts?vue&type=script&lang=js&\"\nimport style0 from \"./prd-svg-canvas.vue?vue&type=style&index=0&id=29a9832c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { G, Svg } from '@svgdotjs/svg.js';\r\nimport MapNode from '../models/MapNode';\r\n\r\nexport default class SvgRender {\r\n public id = '';\r\n public type = '';\r\n public canvas: Svg = null;\r\n public container: G = null;\r\n public allNodes: MapNode[] = [];\r\n public empty: boolean = true;\r\n protected minScale = 0;\r\n private callbacks: { [key: string]: CallableFunction } = {};\r\n private zoomBy: number = 1;\r\n\r\n public render() {\r\n return;\r\n }\r\n\r\n public redraw() {\r\n this.render();\r\n }\r\n\r\n public clear() {\r\n this.canvas.clear();\r\n this.empty = true;\r\n }\r\n\r\n public fit() {\r\n const smallest = Math.min(+this.canvas.width(), +this.canvas.height());\r\n const ratio = smallest / (+this.container.bbox().width);\r\n const scale = (ratio >= this.minScale ? ratio : this.minScale) * this.zoomBy;\r\n this.container.transform({ scale });\r\n }\r\n\r\n public setSize(width: number, height: number) {\r\n this.canvas.size(width, height);\r\n }\r\n\r\n public on(name: string, callback) {\r\n this.callbacks[name] = callback;\r\n }\r\n\r\n public zoom(zoom: number) {\r\n this.zoomBy = zoom;\r\n }\r\n\r\n public setId(id: string) {\r\n this.id = id;\r\n }\r\n\r\n protected fire(name: string, params: any) {\r\n if (this.callbacks[name]) {\r\n this.callbacks[name](params);\r\n }\r\n }\r\n}\r\n","import { Element, G, Svg } from '@svgdotjs/svg.js';\r\nimport { HorizontalAlign } from './HorizontalAlign';\r\nimport { VerticalAlign } from './VerticalAlign';\r\n\r\nexport default class SvgHelper {\r\n public static hAlign(node: Element, align: HorizontalAlign) {\r\n const box = this.getParentBox(node);\r\n switch (align) {\r\n case HorizontalAlign.Center:\r\n node.x((box.width - +node.bbox().width) / 2);\r\n break;\r\n case HorizontalAlign.Right:\r\n node.x(box.width - node.bbox().width);\r\n break;\r\n case HorizontalAlign.Left:\r\n node.x(0);\r\n break;\r\n }\r\n }\r\n\r\n public static vAlign(node: Element, align: VerticalAlign) {\r\n const box = this.getParentBox(node);\r\n switch(align) {\r\n case VerticalAlign.Center:\r\n node.y((box.height - node.bbox().height) / 2);\r\n break;\r\n }\r\n }\r\n\r\n public static center(node: Element) {\r\n this.hAlign(node, HorizontalAlign.Center);\r\n this.vAlign(node, VerticalAlign.Center);\r\n }\r\n\r\n public static stackChildren(node: Element, align: HorizontalAlign) {\r\n let y = 0;\r\n node.children().forEach((child: Element) => {\r\n child.y(y);\r\n this.hAlign(child, align);\r\n y += child.bbox().height;\r\n });\r\n }\r\n\r\n public static verticalCenter(node: Element, parent: Element) {\r\n node.move(node.x(), (+parent.height() - +node.height()) / 2);\r\n }\r\n\r\n public static lines(container: G, lines: string[], align: HorizontalAlign, font: any = null) {\r\n lines.forEach((line) => {\r\n const text = container.text(line);\r\n if (font) {\r\n text.font(font);\r\n }\r\n });\r\n this.stackChildren(container, align);\r\n }\r\n\r\n private static getParentBox(node: Element) {\r\n if (!node.parent()) {\r\n throw Error('No parent specified');\r\n }\r\n\r\n if (node.parent().type === 'svg') {\r\n const parent = node.parent() as Svg;\r\n return { width: +parent.width(), height: +parent.height(), x: +parent.x(), y: +parent.y() };\r\n }\r\n return (node.parent() as Element).bbox();\r\n }\r\n}\r\n","import MapCellConfig from './MapCellConfig';\r\n\r\nexport default class MapConfig {\r\n public static animationTime = 200;\r\n public static maxNodes = 100;\r\n public static maxEdges = 1000;\r\n\r\n public static fontSize = 12;\r\n public static title = { size: 32, weight: 'bold' };\r\n public static subTitle = { size: 24 };\r\n public static text = { size: 20 };\r\n public static textMutedColor = '#495057';\r\n public static padding = 16;\r\n public static green = '#11AA6F';\r\n public static lightGreen = '#B4DFCC';\r\n public static orange = '#ffbc00';\r\n public static lightOrange = '#FBE8AB'\r\n public static red = '#ff0026';\r\n public static lightRed = '#F2A7B2';\r\n public static purple = '#7011AA';\r\n public static lightPurple = '#DCB4DF';\r\n public static blue = '#228be6';\r\n public static lightBlue = '#B7D4F3';\r\n\r\n // Main cell\r\n public static containerBg = '#fff';\r\n public static mainCellBg = 'transparent';\r\n public static mainCellStroke = { color: '#f2f6f9', width: 6 };\r\n\r\n // Cell\r\n public static cell: MapCellConfig = {\r\n radius: 15,\r\n fill: '#D9EBF9',\r\n stroke: { color: '#1F75D5', width: 2 },\r\n };\r\n\r\n // Edges\r\n public static edgeStroke = { color: '#ced4da', width: 3, linecap: 'round' };\r\n public static edgeStrokeGreen = { color: '#11AA6F' };\r\n public static edgeStrokeRed = { color: '#ff0026' };\r\n\r\n // External cells\r\n public static externalCell: MapCellConfig = {\r\n radius: 20,\r\n fill: '#adb5bd',\r\n stroke: { color: '#495057', width: 2 },\r\n };\r\n}\r\n","import { CellScore } from './CellScore';\r\nimport MapConfig from './MapConfig';\r\n\r\nexport default class CellColor {\r\n public static score(score: CellScore) {\r\n const map = {\r\n [CellScore.Bad]: { light: MapConfig.lightRed, dark: MapConfig.red },\r\n [CellScore.BelowAvarage]: { light: MapConfig.lightOrange, dark: MapConfig.orange },\r\n [CellScore.AboveAvarage]: { light: MapConfig.lightGreen, dark: MapConfig.green },\r\n [CellScore.Ambigious]: { light: MapConfig.lightPurple, dark: MapConfig.purple },\r\n [CellScore.Unknown]: { light: MapConfig.lightBlue, dark: MapConfig.blue },\r\n }\r\n\r\n return map[score];\r\n }\r\n}\r\n","import { CellIndicatorScore } from './CellIndicatorScore';\r\nimport { CellScore } from './CellScore';\r\n\r\nexport default class MapCellData {\r\n public id?: number | string = null;\r\n public name = '';\r\n public subtitle = '';\r\n public title = '';\r\n public labels: string[] = [];\r\n public values: string[] = [];\r\n public indicatorScore: CellIndicatorScore = CellIndicatorScore.Unkown;\r\n public colorScore: CellScore = CellScore.Unknown;\r\n}\r\n","import { Container, G, Svg } from '@svgdotjs/svg.js';\r\nimport { HorizontalAlign } from './HorizontalAlign';\r\nimport SvgRender from './SvgRender';\r\nimport SvgHelper from './SvgHelper';\r\nimport CellColor from '../models/CellColor';\r\nimport MapConfig from '../models/MapConfig';\r\nimport MapCellData from '../models/MapCellData';\r\nimport { CellIndicatorScore } from '../models/CellIndicatorScore';\r\n\r\nexport default class SvgRenderInfoCell extends SvgRender {\r\n public type = 'InfoCell';\r\n public canvas: Svg = null;\r\n private data: MapCellData = new MapCellData();\r\n\r\n constructor(canvas?: Svg) {\r\n super();\r\n this.canvas = canvas;\r\n }\r\n\r\n public setData(data: MapCellData) {\r\n this.data = data;\r\n }\r\n\r\n public getId() {\r\n return this.data.id;\r\n }\r\n\r\n public render() {\r\n this.canvas.clear();\r\n this.container = this.canvas.group();\r\n this.container.addClass('cursor-pointer');\r\n this.container.click(() => this.fire('navigate', true));\r\n\r\n const circleBackground = this.container.group();\r\n const circleContent = this.container.group();\r\n this.drawHeader(circleContent.group().id('header'));\r\n this.drawTextContainer(circleContent);\r\n SvgHelper.stackChildren(circleContent, HorizontalAlign.Center);\r\n\r\n const size = Math.max(+this.container.width() / 2, +this.container.height() / 2);\r\n this.drawCircle(circleBackground, size);\r\n\r\n SvgHelper.center(circleContent);\r\n SvgHelper.center(this.container);\r\n }\r\n\r\n private drawHeader(header: G): G {\r\n const title = header.group().id('title');\r\n title.text(this.data.name).font(MapConfig.text);\r\n const t = title.text(this.data.title).font(MapConfig.title);\r\n SvgHelper.stackChildren(title, HorizontalAlign.Center);\r\n t.dy(24);\r\n\r\n const subtitle = header.group().id('subtitle');\r\n const subtitleText = subtitle.text(this.data.subtitle).font(MapConfig.subTitle);\r\n const indicator = this.indicator(subtitle, subtitleText.bbox().height / 2)\r\n .fill(MapConfig.red)\r\n .move(subtitleText.bbox().width + 8, -subtitleText.bbox().height / 2);\r\n\r\n if (this.data.indicatorScore === CellIndicatorScore.Positive) {\r\n indicator.rotate(180).fill(MapConfig.green);\r\n }\r\n\r\n SvgHelper.stackChildren(header, HorizontalAlign.Center);\r\n return header;\r\n }\r\n\r\n private drawTextContainer(container: G) {\r\n const textContainer = container.group();\r\n const labels = textContainer.group().id('labels');\r\n const values = textContainer.group().id('values');\r\n\r\n SvgHelper.lines(labels, this.data.labels, HorizontalAlign.Right, MapConfig.text);\r\n labels.font(MapConfig.text).fill(MapConfig.textMutedColor);\r\n\r\n SvgHelper.lines(values, this.data.values, HorizontalAlign.Left, MapConfig.text);\r\n values.font(MapConfig.text);\r\n\r\n const width = Math.max(labels.bbox().width, values.bbox().width);\r\n const height = Math.max(labels.bbox().height, values.bbox().height);\r\n\r\n values.dx(width + 16);\r\n labels.dx(width - labels.bbox().width);\r\n textContainer.rect(width * 2, height + 48).dy(-24).fill('transparent');\r\n return textContainer;\r\n }\r\n\r\n private drawCircle(container: G, size: number) {\r\n const radius = Math.sqrt(size**2 + size**2) + MapConfig.padding;\r\n const circle = container.circle(radius * 2);\r\n circle.stroke(MapConfig.cell.stroke);\r\n\r\n const colors = CellColor.score(this.data.colorScore);\r\n circle.fill(colors.light);\r\n circle.stroke({ color: colors.dark });\r\n }\r\n\r\n private indicator(container: Container, size: number) {\r\n return container.polyline(`0,0 ${size / 2},${size} ${size},0`);\r\n }\r\n}\r\n","import { Container } from '@svgdotjs/svg.js';\r\nimport ISvgElement from './ISvgElement';\r\n\r\nexport default class SvgLabel implements ISvgElement {\r\n private paddingY = 4;\r\n private paddingX = 8;\r\n private radius = 4;\r\n private fill = '#fff';\r\n private stroke = { width: 1, color: '#f2f6f9' };\r\n private container: Container;\r\n\r\n constructor(container: Container) {\r\n this.container = container;\r\n }\r\n\r\n public draw(content: string) {\r\n const label = this.container.group();\r\n const text = label.text(content).move(0, 0);\r\n const rect = label.rect(text.bbox().width + this.paddingX, text.bbox().height + this.paddingY);\r\n rect.fill(this.fill).stroke(this.stroke);\r\n rect.x(-this.paddingX / 2).y(-this.paddingY / 2);\r\n rect.insertBefore(text);\r\n rect.radius(this.radius, this.radius);\r\n\r\n return label;\r\n }\r\n}\r\n","import { Circle, Container, Element, G } from '@svgdotjs/svg.js';\r\nimport MapCellConfig from '../models/MapCellConfig';\r\nimport ISvgElement from './ISvgElement';\r\nimport SvgLabel from './SvgLabel';\r\n\r\nexport default class SvgCircleCell implements ISvgElement {\r\n private container: Container;\r\n private cellGroup: G;\r\n private circle: Circle;\r\n\r\n constructor(container: Container) {\r\n this.container = container;\r\n }\r\n\r\n public draw(parent: Circle, angle: number, config: MapCellConfig): Element {\r\n const parentRadius = parent.bbox().width / 2;\r\n const x = +parent.x() + parentRadius + (Math.cos(angle) * parentRadius) - config.radius;\r\n const y = +parent.y() + parentRadius + (Math.sin(angle) * parentRadius) - config.radius;\r\n const group = this.container.group();\r\n const circle = group.circle(config.radius * 2);\r\n circle.fill(config.fill);\r\n circle.stroke(config.stroke);\r\n circle.id(`cell-${config.id}`);\r\n group.move(x, y);\r\n\r\n this.cellGroup = group;\r\n this.circle = circle;\r\n return circle;\r\n }\r\n\r\n public label(content: string): Element {\r\n if (!this.circle || !this.cellGroup) {\r\n throw new Error('The cell must be drawn before the label');\r\n }\r\n\r\n const l = new SvgLabel(this.cellGroup).draw(content);\r\n const textX = (this.circle.bbox().width - l.bbox().width) / 2;\r\n l.x(+this.circle.x() + textX);\r\n l.y(+this.circle.y() - l.bbox().height - 4);\r\n\r\n return l;\r\n }\r\n\r\n public getGroup() {\r\n return this.cellGroup;\r\n }\r\n}\r\n","import { Circle, Container, G, Svg } from '@svgdotjs/svg.js';\r\nimport CellColor from '../models/CellColor';\r\nimport { CellScore } from '../models/CellScore';\r\nimport MapCell from '../models/MapCell';\r\nimport MapCellConfig from '../models/MapCellConfig';\r\nimport MapConfig from '../models/MapConfig';\r\nimport MapData from '../models/MapData';\r\nimport MapEdge from '../models/MapEdge';\r\nimport MapNode from '../models/MapNode';\r\nimport SvgCircleCell from './SvgCircleCell';\r\nimport SvgHelper from './SvgHelper';\r\nimport SvgRender from './SvgRender';\r\n\r\nexport default class SvgRenderCellSpace extends SvgRender {\r\n public type = 'CellSpace';\r\n public selectedId: number | string = 0;\r\n public extGroup: G;\r\n public edgesGroup: G;\r\n public cellsGroup: G;\r\n protected minScale = 0;\r\n private cells: MapCell[] = [];\r\n private nodes: MapNode[] = [];\r\n private edges: MapEdge[] = [];\r\n private externalNodes: MapNode[] = [];\r\n private rotateBy = 45;\r\n private margin = 100;\r\n\r\n constructor(canvas?: Svg) {\r\n super();\r\n this.canvas = canvas;\r\n }\r\n\r\n public setData(data: MapData) {\r\n if (data.nodes.length > MapConfig.maxNodes) {\r\n console.warn(`To much nodes, only ${MapConfig.maxNodes} are rendered`);\r\n }\r\n\r\n if (data.edges.length > MapConfig.maxEdges) {\r\n console.warn(`To much edges, only ${MapConfig.maxEdges} are rendered`);\r\n }\r\n\r\n this.nodes = data.nodes.slice(0, MapConfig.maxNodes);\r\n this.edges = data.edges.slice(0, MapConfig.maxEdges);\r\n this.externalNodes = data.external;\r\n this.allNodes = [...this.nodes, ...this.externalNodes];\r\n }\r\n\r\n public render() {\r\n this.empty = false;\r\n this.canvas.clear();\r\n this.canvas.click(() => this.resetHighlight());\r\n\r\n this.container = this.canvas.group().draggable();\r\n this.edgesGroup = this.container.group();\r\n this.extGroup = this.container.group();\r\n this.cellsGroup = this.container.group();\r\n this.cells = [];\r\n\r\n const mainRadius = this.calculateMainCircleRadius(this.nodes.length);\r\n const externalRadius = this.calculateExternalCircleRadius(mainRadius);\r\n const mainCircle = this.renderMain(this.container, mainRadius);\r\n const externalCircle = this.renderExternal(this.container, externalRadius);\r\n mainCircle.insertBefore(this.edgesGroup);\r\n externalCircle.insertBefore(this.edgesGroup);\r\n\r\n SvgHelper.center(mainCircle);\r\n SvgHelper.center(externalCircle);\r\n SvgHelper.center(this.container);\r\n\r\n this.nodes.forEach((node: MapNode, index: number) => {\r\n const degree = this.rotateBy + (360 / this.nodes.length) * index;\r\n const config = MapConfig.cell;\r\n const colors = CellColor.score(node.data ? node.data.colorScore : CellScore.Unknown);\r\n config.id = `cell-${node.id}`;\r\n config.fill = colors.light;\r\n config.stroke.color = colors.dark;\r\n const mapCell = this.renderCell(this.cellsGroup, mainCircle, node, degree, config);\r\n mapCell.group.click((e: Event) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.resetHighlight();\r\n this.fire('navigate', node.id);\r\n });\r\n this.cells.push(mapCell);\r\n });\r\n\r\n this.externalNodes.forEach((node: MapNode, index: number) => {\r\n const degree = -45 + (360 / this.externalNodes.length) * index;\r\n const config = MapConfig.externalCell;\r\n config.id = `external-${node.id}`;\r\n const mapCell = this.renderCell(this.extGroup, externalCircle, node, degree, config);\r\n mapCell.group.click((e: Event) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n this.cells.push(mapCell);\r\n });\r\n\r\n this.renderEdges(this.edgesGroup, this.edges, this.cells);\r\n }\r\n\r\n public redraw() {\r\n this.render();\r\n if (this.selectedId) {\r\n this.highlight(this.selectedId);\r\n }\r\n }\r\n\r\n public rotate(degree: number) {\r\n this.rotateBy = degree;\r\n }\r\n\r\n public setMargin(margin: number) {\r\n this.margin = margin;\r\n }\r\n\r\n private renderMain(container: Container, radius: number) {\r\n const circle = container.circle(radius * 2);\r\n circle.stroke(MapConfig.mainCellStroke);\r\n circle.fill(MapConfig.mainCellBg);\r\n return circle;\r\n }\r\n\r\n private renderExternal(container: Container, radius: number) {\r\n const circle = container.circle(radius * 2);\r\n circle.fill('transparent');\r\n return circle;\r\n }\r\n\r\n private renderCell(group: G, mainCircle: Circle, node: MapNode, degree: number, config: MapCellConfig): MapCell {\r\n const angle = (degree * Math.PI) / 180;\r\n const cell = new SvgCircleCell(group);\r\n const circle = cell.draw(mainCircle, angle, config);\r\n const cellGroup = cell.getGroup();\r\n cell.label(node.title);\r\n\r\n let timeout = null;\r\n cellGroup.mouseenter(() => {\r\n clearTimeout(timeout);\r\n cellGroup.transform({ scale: 1.1 });\r\n this.highlight(node.id);\r\n });\r\n cellGroup.mouseleave(() => {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n cellGroup.transform({ scale: 1 });\r\n this.resetHighlight();\r\n }, 50);\r\n });\r\n cellGroup.attr({ class: 'cursor-pointer' });\r\n\r\n return {\r\n id: node.id,\r\n degree,\r\n circle,\r\n group: cellGroup,\r\n };\r\n }\r\n\r\n private renderEdges(container: G, edges: MapEdge[], cells: MapCell[]) {\r\n if (cells.length < 1) {\r\n return;\r\n }\r\n\r\n container.clear();\r\n for (let i = 0; i < edges.length; i++) {\r\n const origin = this.findCell(cells, edges[i].origin);\r\n const destination = this.findCell(cells, edges[i].destination);\r\n const edge = edges[i];\r\n\r\n if (!origin || !destination) {\r\n console.warn('Destination or origin cell could not be found', edge);\r\n } else {\r\n edge.path = this.renderEdge(container, origin, destination);\r\n }\r\n }\r\n }\r\n\r\n private renderEdge(container: G, v1: MapCell, v2: MapCell) {\r\n const angle = Math.atan((v2.circle.cy() - v1.circle.cy()) / (v2.circle.cx() - v1.circle.cx()));\r\n const degree = (angle * 180) / Math.PI;\r\n const inverse = v1.degree > v2.degree ? 1 : 0;\r\n let rotateY = 0;\r\n if (Math.abs(v1.degree - v2.degree) < 45) {\r\n rotateY = inverse ? 30 : 25;\r\n } else {\r\n rotateY = inverse ? 10 : 5;\r\n }\r\n const path = container.path(\r\n `M ${v1.circle.cx()} ${v1.circle.cy()} A 30 ${rotateY}, ${degree}, 0 ${inverse}, ${v2.circle.cx()} ${v2.circle.cy()}`,\r\n );\r\n path.attr({ 'fill-opacity': 0 });\r\n path.stroke(MapConfig.edgeStroke);\r\n return path;\r\n }\r\n\r\n private highlight(id: number | string) {\r\n this.select(id);\r\n const cellIds = [id];\r\n\r\n const external_incoming = ['external_revenue'];\r\n const external_outgoing = ['member_cost', 'activity_expenses'];\r\n const external_incoming_outgoing = ['transfers_outside'];\r\n\r\n this.edges.forEach((edge: MapEdge) => {\r\n if (!edge.path) {\r\n return;\r\n }\r\n\r\n if (edge.destination === id || edge.origin === id) {\r\n cellIds.push(edge.destination);\r\n cellIds.push(edge.origin);\r\n }\r\n\r\n if (edge.valueColorOverride) {\r\n // plz don't ask, here doesn't the direction determine the color, but combination of external outgoing/incoming with a positive/negative value\r\n if (edge.origin === id) {\r\n if (external_incoming.indexOf(edge.origin as string) > -1) {\r\n edge.path.stroke(edge.value > 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n } else if (external_outgoing.indexOf(edge.origin as string) > -1) {\r\n edge.path.stroke(edge.value < 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n } else if (external_incoming.indexOf(edge.destination as string) > -1) {\r\n edge.path.stroke(edge.value > 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n } else if (external_outgoing.indexOf(edge.destination as string) > -1) {\r\n edge.path.stroke(edge.value < 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n } else if (external_incoming_outgoing.indexOf(edge.destination as string) > -1) {\r\n edge.path.stroke(edge.value < 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n }\r\n }\r\n\r\n if (edge.destination === id) {\r\n if (external_incoming.indexOf(edge.destination as string) > -1) {\r\n edge.path.stroke(edge.value < 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n } else if (external_outgoing.indexOf(edge.destination as string) > -1) {\r\n edge.path.stroke(edge.value < 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n } else if (external_incoming.indexOf(edge.origin as string) > -1) {\r\n edge.path.stroke(edge.value > 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n } else if (external_outgoing.indexOf(edge.origin as string) > -1) {\r\n edge.path.stroke(edge.value < 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n } else if (external_incoming_outgoing.indexOf(edge.destination as string) > -1) {\r\n edge.path.stroke(edge.value > 0 ? MapConfig.edgeStrokeGreen : MapConfig.edgeStrokeRed);\r\n }\r\n }\r\n } else if (edge.destination === id && !edge.valueColorOverride) {\r\n edge.path.stroke(MapConfig.edgeStrokeGreen);\r\n } else if (edge.origin === id && !edge.valueColorOverride) {\r\n edge.path.stroke(MapConfig.edgeStrokeRed);\r\n } else {\r\n edge.path.stroke(MapConfig.edgeStroke);\r\n edge.path.opacity(0.2);\r\n }\r\n });\r\n\r\n this.cells.forEach((cell: MapCell) => {\r\n if (cellIds.indexOf(cell.id) > -1) {\r\n cell.group.opacity(1);\r\n } else {\r\n cell.group.opacity(0.2);\r\n }\r\n });\r\n }\r\n\r\n private resetHighlight() {\r\n this.select(null);\r\n this.edges.forEach((edge: MapEdge) => {\r\n if (edge.path) {\r\n edge.path.stroke(MapConfig.edgeStroke);\r\n edge.path.opacity(1);\r\n }\r\n });\r\n this.cells.forEach((cell: MapCell) => {\r\n cell.group.opacity(1);\r\n });\r\n }\r\n\r\n private select(id: number | string) {\r\n this.selectedId = id;\r\n this.fire('select', id);\r\n }\r\n\r\n private calculateMainCircleRadius(cells: number) {\r\n const outline = (MapConfig.cell.radius * 2 + this.margin) * cells;\r\n const radius = outline / (2 * Math.PI);\r\n return radius;\r\n }\r\n\r\n private calculateExternalCircleRadius(mainRadius: number) {\r\n const outerBorder = mainRadius + MapConfig.cell.radius;\r\n return Math.sqrt(outerBorder ** 2 + outerBorder ** 2) + this.margin;\r\n }\r\n\r\n private findCell(cells: MapCell[], id: string | number) {\r\n return cells.find((cell: MapCell) => cell.id === id);\r\n }\r\n}\r\n","import InsightGroupTotals from './InsightGroupTotals';\r\nimport InsightTotals from './InsightTotals';\r\nimport MapCellData from './MapCellData';\r\nimport MapEdge from './MapEdge';\r\nimport MapNode from './MapNode';\r\n\r\nexport default class MapData {\r\n public nodes: MapNode[] = [];\r\n public edges: MapEdge[] = [];\r\n public external: MapNode[] = [];\r\n public total?: MapCellData = null;\r\n public insightTotals?: InsightTotals;\r\n public groupTotals?: InsightGroupTotals[];\r\n}\r\n","export default class GroupResultItem {\r\n public group: any;\r\n public balance: number = 0;\r\n public result: number = 0;\r\n public expenses: number = 0;\r\n public extras: number = 0;\r\n public externalRevenue: number = 0;\r\n public startBalance: number = 0;\r\n public openExpenseAmount: number = 0;\r\n public openInvoiceAmount: number = 0;\r\n public name: string = '';\r\n public groupKey: string = '';\r\n}\r\n","import GroupResultItem from '@/models/Finance/Api/GroupResultItem';\r\n\r\nexport default class InsightGroupTotals {\r\n public id: number;\r\n public name: string;\r\n public totals: GroupResultItem[] = [];\r\n\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n}\r\n","import { groupService, insightService, resultService } from '@/main';\r\nimport GraphData from '@/models/Graph/GraphData';\r\nimport GraphNode from '@/models/Graph/Node';\r\nimport InsightView from '@/models/Insights/InsightView';\r\nimport PeriodRange from '@/models/PeriodRange';\r\nimport to from 'await-to-js';\r\nimport { Module, Mutation, VuexModule } from 'vuex-class-modules';\r\nimport MapData from '../models/MapData';\r\nimport store from '@/store/index';\r\nimport Group from '@/models/Group';\r\nimport InsightTotals from '../models/InsightTotals';\r\nimport InsightResponse from '../models/InsightResponse';\r\nimport { Member } from '@/models/Member';\r\nimport InsightTeamTotals from '../models/InsightTeamTotals';\r\nimport RangeItem from '@/models/Finance/Api/RangeItem';\r\nimport TeamResultItem from '@/models/Finance/Api/TeamResultItem';\r\nimport GroupResultItem from '@/models/Finance/Api/GroupResultItem';\r\nimport MapCellData from '../models/MapCellData';\r\nimport { CellScore } from '../models/CellScore';\r\nimport { CellIndicatorScore } from '../models/CellIndicatorScore';\r\nimport { numberFormat } from '@/filters';\r\nimport GraphEdge from '@/models/Graph/GraphEdge';\r\nimport InsightGroupTotals from '../models/InsightGroupTotals';\r\n\r\n@Module\r\nclass InsightStoreModule extends VuexModule {\r\n private cache: { [key: string]: MapData } = {};\r\n\r\n public async getTeamsInsight(insight: InsightView, dates: PeriodRange, refresh: boolean): Promise {\r\n return this.getCachedOrFetch(insight.insightViewId, 'teams', dates, refresh, async () => {\r\n return await this.getTeamsData(insight, dates);\r\n });\r\n }\r\n\r\n public async getActivitiesInsight(teamId: number, dates: PeriodRange, refresh: boolean): Promise {\r\n return this.getCachedOrFetch(teamId, 'activities', dates, refresh, async () => {\r\n return await this.getActivitiesData(teamId, dates);\r\n });\r\n }\r\n\r\n public async getMembersInsight(activityId: number, dates: PeriodRange, refresh: boolean) {\r\n return this.getCachedOrFetch(activityId, 'activities', dates, refresh, async () => {\r\n return await this.getMembersData(activityId, dates.fromFilterMonth);\r\n });\r\n }\r\n\r\n private async getTeamsData(insight: InsightView, dates: PeriodRange): Promise {\r\n const [err, response] = await to(insightService.getLens('ecosystem-finance', insight.insightViewId, dates, null));\r\n\r\n if (err) {\r\n throw Error('Unable to fetch insight');\r\n }\r\n\r\n const data = response.data as InsightResponse;\r\n const { graph, table, totals } = data;\r\n const mapData = new MapData();\r\n mapData.edges = (graph as GraphData).edges.map((edge: GraphEdge) => {\r\n return {\r\n origin: edge.origin,\r\n destination: edge.destination,\r\n label: edge.total,\r\n };\r\n });\r\n mapData.nodes = graph.nodes.map((node: GraphNode) => {\r\n const nodeTotals = totals.teamTotals.find((t: InsightTeamTotals) => t.teamId === node.id);\r\n const cellData = this.getEcologyOrTeamTotals(nodeTotals);\r\n cellData.name = node.name;\r\n return {\r\n id: node.id,\r\n title: node.name,\r\n data: cellData,\r\n };\r\n });\r\n mapData.external = [\r\n { id: 'member_cost', title: 'Member costs' },\r\n { id: 'transfers_outside', title: 'Transfers outside insight' },\r\n { id: 'activity_expenses', title: 'Activity expenses' },\r\n { id: 'external_revenue', title: 'External revenue' },\r\n ];\r\n\r\n totals.teamTotals.forEach((team) => {\r\n const destinations = {\r\n member_cost:\r\n this.getTableValue(table, team.teamId, 'memberExpenses') + this.getTableValue(table, team.teamId, 'memberNonRecurringExpenses'),\r\n activity_expenses:\r\n this.getTableValue(table, team.teamId, 'groupExpenses') + this.getTableValue(table, team.teamId, 'groupNonRecurringExpenses'),\r\n transfers_outside: this.getTableValue(table, team.teamId, 'transfers'),\r\n };\r\n\r\n const origins = {\r\n external_revenue: this.getTableValue(table, team.teamId, 'externalRevenue'),\r\n };\r\n\r\n Object.keys(destinations).forEach((key: string) => {\r\n if (destinations[key]) {\r\n mapData.edges.push({\r\n origin: team.teamId,\r\n destination: key,\r\n label: destinations[key],\r\n valueColorOverride: true,\r\n value: destinations[key],\r\n });\r\n }\r\n });\r\n\r\n Object.keys(origins).forEach((key: string) => {\r\n if (origins[key]) {\r\n mapData.edges.push({\r\n destination: team.teamId,\r\n origin: key,\r\n label: origins[key],\r\n valueColorOverride: true,\r\n value: origins[key],\r\n });\r\n }\r\n });\r\n });\r\n mapData.total = this.getEcologyOrTeamTotals(totals);\r\n mapData.insightTotals = totals;\r\n return mapData;\r\n }\r\n\r\n // Activities\r\n private async getActivitiesData(teamId: number, dates: PeriodRange): Promise {\r\n const mapData = new MapData();\r\n mapData.groupTotals = [];\r\n mapData.external = [\r\n { id: 'member_cost', title: 'Member costs' },\r\n { id: 'transfers_outside', title: 'Transfers outside insight' },\r\n { id: 'activity_expenses', title: 'Activity expenses' },\r\n { id: 'external_revenue', title: 'External revenue' },\r\n ];\r\n\r\n const results = await resultService.getGroupResults(teamId, dates.fromFilterMonth, dates.toFilterMonth);\r\n const groupResults: { [key: string]: GroupResultItem[] } = {};\r\n\r\n results.items.forEach((result: RangeItem) => {\r\n result.item.groupResults.forEach((groupResult: GroupResultItem) => {\r\n const id = groupResult.group.groupId;\r\n if (groupResult.group.deleted) {\r\n return;\r\n }\r\n if (!groupResults[id]) {\r\n groupResults[id] = [];\r\n }\r\n groupResults[id].push(groupResult);\r\n\r\n let groupTotal = mapData.groupTotals.find((totals: InsightGroupTotals) => {\r\n return totals.id === id;\r\n });\r\n if (!groupTotal) {\r\n groupTotal = new InsightGroupTotals({\r\n id,\r\n name: groupResult.group.name,\r\n });\r\n mapData.groupTotals.push(groupTotal);\r\n }\r\n groupTotal.totals.push(groupResult);\r\n });\r\n });\r\n\r\n Object.keys(groupResults).forEach((groupId: string) => {\r\n const agregate = new GroupResultItem();\r\n agregate.startBalance = null;\r\n groupResults[groupId].forEach((result: GroupResultItem) => {\r\n if (!agregate.startBalance === null) {\r\n agregate.startBalance = result.startBalance ? result.startBalance : 0;\r\n }\r\n agregate.expenses += result.expenses;\r\n agregate.externalRevenue += result.externalRevenue;\r\n agregate.result += result.result;\r\n agregate.balance = result.balance;\r\n agregate.group = result.group;\r\n });\r\n\r\n mapData.nodes.push({\r\n id: groupId,\r\n title: agregate.group.name,\r\n data: this.getActivityTotals(agregate),\r\n });\r\n });\r\n return mapData;\r\n }\r\n\r\n // Member data\r\n private async getMembersData(activityId: number, period) {\r\n const response = await groupService.getGroup(activityId, period);\r\n const group: Group = response.data;\r\n const mapData = new MapData();\r\n mapData.nodes = group.members.map((member: Member) => {\r\n return { id: member.memberId, title: [member.firstName, member.insertion, member.lastName].join(' ') };\r\n });\r\n return mapData;\r\n }\r\n\r\n private getTableValue(table: any, teamId: number, property: string) {\r\n let total = 0;\r\n table.results.items.forEach((item) => {\r\n const teamResult = item.item.teamResults.find((x: any) => x.teamId === teamId);\r\n total += teamResult[property];\r\n });\r\n return total;\r\n }\r\n\r\n private getEcologyOrTeamTotals(totals: InsightTotals | InsightTeamTotals): MapCellData {\r\n if (!totals) {\r\n return new MapCellData();\r\n }\r\n\r\n const data = new MapCellData();\r\n if (totals.externalRevenue && totals.result) {\r\n const percent = (totals.result / totals.externalRevenue) * 100;\r\n data.colorScore =\r\n percent <= -10 ? CellScore.Bad : percent <= 0 ? CellScore.BelowAvarage : percent <= 20 ? CellScore.AboveAvarage : CellScore.Ambigious;\r\n }\r\n data.title = numberFormat(totals.balance);\r\n data.subtitle = numberFormat(totals.result);\r\n\r\n data.labels = ['Start balance', 'Balance', 'Result', 'Expenses', 'External revenue', 'Transfers'];\r\n data.values = [totals.startBalance, totals.balance, totals.result, totals.expenses, totals.externalRevenue, totals.transfers].map((value) =>\r\n numberFormat(value),\r\n );\r\n data.indicatorScore = totals.result > 0 ? CellIndicatorScore.Positive : CellIndicatorScore.Negative;\r\n return data;\r\n }\r\n\r\n private getActivityTotals(totals: GroupResultItem): MapCellData {\r\n const data = new MapCellData();\r\n if (totals.result && totals.externalRevenue) {\r\n const percent = (totals.result / totals.externalRevenue) * 100;\r\n data.colorScore =\r\n percent <= -10 ? CellScore.Bad : percent <= 0 ? CellScore.BelowAvarage : percent <= 20 ? CellScore.AboveAvarage : CellScore.Ambigious;\r\n }\r\n data.name = totals.group.name;\r\n data.title = numberFormat(totals.balance);\r\n data.subtitle = numberFormat(totals.result);\r\n data.labels = ['Start balance', 'Balance', 'Result', 'Expenses', 'External revenue'];\r\n data.values = [totals.startBalance, totals.balance, totals.result, totals.expenses, totals.externalRevenue].map((value) =>\r\n numberFormat(value),\r\n );\r\n data.indicatorScore = totals.result > 0 ? CellIndicatorScore.Positive : CellIndicatorScore.Negative;\r\n return data;\r\n }\r\n\r\n private async getCachedOrFetch(id: string | number, entity: string, dates: PeriodRange, refresh: boolean, callback) {\r\n let mapData = this.getCachedMapData(id, entity, dates);\r\n if (refresh || !mapData) {\r\n mapData = await callback();\r\n this.SET_CACHE({ id, entity, dates, mapData });\r\n }\r\n return mapData;\r\n }\r\n\r\n private getCacheKey(id: string | number, entity: string, dates: PeriodRange) {\r\n return [id, entity, dates.fromFilterMonth, dates.toFilterMonth].join('_');\r\n }\r\n\r\n @Mutation\r\n private SET_CACHE(payload: { id: string | number; entity: string; dates: PeriodRange; mapData: MapData }) {\r\n this.cache[this.getCacheKey(payload.id, payload.entity, payload.dates)] = payload.mapData;\r\n }\r\n\r\n private getCachedMapData(id: string | number, entity: string, dates: PeriodRange): MapData {\r\n if (this.cache[this.getCacheKey(id, entity, dates)]) {\r\n return this.cache[this.getCacheKey(id, entity, dates)];\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport const insightStoreModule = new InsightStoreModule({ store, name: 'map-store-module' });\r\n","import { Container, Element } from '@svgdotjs/svg.js';\r\n\r\nexport default class SvgAnimate {\r\n public static duration = 500;\r\n\r\n public static appear(container: Container): Promise {\r\n return new Promise((resolve) => {\r\n let done = 0;\r\n const children = container.children();\r\n children.forEach((child: Element) => {\r\n const { factor, delay, duration } = this.randomTimes();\r\n child.transform({ scale: factor })\r\n .attr({ opacity: 0 })\r\n .animate(duration, delay, 'now')\r\n .attr({ opacity: 1 })\r\n .transform({ scale: 1 })\r\n .after(() => {\r\n done++;\r\n if (done === children.length) {\r\n resolve();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n public static disappear(container: Container): Promise {\r\n return new Promise((resolve) => {\r\n let done = 0;\r\n const children = container.children();\r\n children.forEach((child: Element) => {\r\n const { delay, duration } = this.randomTimes();\r\n child.transform({ scale: 1 })\r\n .attr({ opacity: 1 })\r\n .animate(duration / 5, delay, 'now')\r\n .attr({ opacity: 0 })\r\n .transform({ scale: 1.2 })\r\n .after(() => {\r\n done++;\r\n if (done === children.length) {\r\n resolve();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n public static fadeIn(container: Container) {\r\n const children = container.children();\r\n children.forEach((child: Element) => {\r\n const { delay, duration } = this.randomTimes();\r\n child.attr({ opacity: 0 }).animate(duration, delay).attr({ opacity: 1 });\r\n });\r\n }\r\n\r\n public static fadeOut(container: Container) {\r\n const children = container.children();\r\n children.forEach((child: Element) => {\r\n const { delay, duration } = this.randomTimes();\r\n child.attr({ opacity: 1 }).animate(duration, delay).attr({ opacity: 0 });\r\n });\r\n }\r\n\r\n private static randomTimes(): { factor: number, delay: number, duration: number } {\r\n const factor = Math.ceil(Math.random() * 100) / 100;\r\n const delay = Math.ceil(Math.random() * 250);\r\n const duration = factor * this.duration;\r\n\r\n return { factor, delay, duration };\r\n }\r\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card-group',{attrs:{\"deck\":\"\"}},[_c('prd-card',{attrs:{\"flat\":\"\",\"title\":_vm._f(\"translate\")('START_BALANCE')}},[_c('h3',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(_vm.aggregates ? _vm.aggregates.startBalance : 0)))])]),_c('prd-card',{attrs:{\"flat\":\"\",\"title\":_vm._f(\"translate\")('RESULT')}},[_c('h3',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(_vm.aggregates ? _vm.aggregates.result : 0)))])]),_c('prd-card',{attrs:{\"flat\":\"\",\"title\":_vm._f(\"translate\")('BALANCE')}},[_c('h3',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(_vm.aggregates ? _vm.aggregates.balance : 0)))])]),_c('prd-card',{attrs:{\"flat\":\"\",\"title\":_vm._f(\"translate\")('EXTERNAL_REVENUE')}},[_c('h3',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(_vm.aggregates ? _vm.aggregates.externalRevenue : 0)))])]),_c('prd-card',{attrs:{\"flat\":\"\",\"title\":_vm._f(\"translate\")('EXPENSES')}},[_c('h3',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(_vm.aggregates ? _vm.aggregates.expenses : 0)))])])],1),_c('hr'),_c('div',{staticClass:\"text-center\"},[_c('b-btn',{attrs:{\"variant\":\"link\"},on:{\"click\":function($event){_vm.showDetails = !_vm.showDetails}}},[_c('i',{staticClass:\"icon-eye mr-2\"}),(!_vm.showDetails)?_c('span',[_vm._v(\"Show finance details\")]):_c('span',[_vm._v(\"Hide finance details\")])])],1),(_vm.showDetails)?_c('prd-grid-wrapper',{staticClass:\"mt-3\",attrs:{\"data-items\":_vm.totals,\"columns\":_vm.columns,\"flat\":\"\",\"auto-height\":\"\"}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\n\r\nexport default class GridHelper {\r\n public static renderNumber(h, value) {\r\n return h('td', Vue.filter('number-format')(value));\r\n }\r\n}\r\n","import GridHelper from '@/helpers/GridHelper';\r\nimport Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport Totals from '../models/Totals';\r\n\r\n@Component\r\nexport default class FinanceTotals extends Vue {\r\n @Prop() public totals: Totals[];\r\n @Prop({ type: Boolean }) public expanded: boolean;\r\n public showDetails = false;\r\n private expandedColumns = [\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.startBalance), title: 'START_BALANCE' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.balance), title: 'BALANCE', field: 'balance' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.result), title: 'RESULT', field: 'result' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.expenses), title: 'EXPENSES_RECURRING' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.nonRecurringExpenses), title: 'EXTRA_NON_RECURRING' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.transfers), title: 'TRANSFERS' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.openInvoiceAmount), title: 'OPEN_INVOICES' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.openExpenseAmount), title: 'OPEN_EXPENSES' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.groupOpenInvoiceAmount), title: 'OPEN_INVOICES_GROUP' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.groupOpenExpenseAmount), title: 'OPEN_EXPENSES_GROUP' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.externalRevenue), title: 'EXTERNAL_REVENUE' },\r\n { cell: this.renderDropDeadRatio, title: 'DROP_DEAD_RATIO' },\r\n ];\r\n private defaultColumsn = [\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.startBalance), title: 'START_BALANCE' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.balance), title: 'BALANCE', field: 'balance' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.result), title: 'RESULT', field: 'result' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.expenses), title: 'EXPENSES_RECURRING' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.extras), title: 'EXTRA_NON_RECURRING' },\r\n { cell: (h, _, row) => GridHelper.renderNumber(h, row.dataItem.externalRevenue), title: 'EXTERNAL_REVENUE' },\r\n { cell: this.renderDropDeadRatio, title: 'DROP_DEAD_RATIO' },\r\n ];\r\n\r\n public get columns() {\r\n if (this.expanded) {\r\n return this.expandedColumns;\r\n }\r\n return this.defaultColumsn;\r\n }\r\n\r\n public get aggregates() {\r\n return this.totals.reduce((totals: Totals, value: Totals) => {\r\n return {\r\n startBalance: totals.startBalance,\r\n balance: value.balance,\r\n result: totals.result + value.result,\r\n expenses: totals.expenses + value.expenses,\r\n extras: totals.extras + value.extras,\r\n openInvoiceAmount: totals.openInvoiceAmount + value.openInvoiceAmount,\r\n openExpenseAmount: totals.openExpenseAmount + value.openExpenseAmount,\r\n groupOpenInvoiceAmount: totals.groupOpenInvoiceAmount + value.groupOpenInvoiceAmount,\r\n groupOpenExpenseAmount: totals.groupOpenExpenseAmount + value.groupOpenExpenseAmount,\r\n externalRevenue: totals.externalRevenue + value.externalRevenue,\r\n };\r\n });\r\n }\r\n\r\n private renderDropDeadRatio(h, _, row) {\r\n if (row.dataItem.safetyZone) {\r\n const props = { value: row.dataItem.safetyZone };\r\n return h(Vue.component('number-formatter'), { props });\r\n } else {\r\n return h('td', ['N/A']);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./finance-totals.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./finance-totals.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./finance-totals.vue?vue&type=template&id=0c8ce686&\"\nimport script from \"./finance-totals.ts?vue&type=script&lang=js&\"\nexport * from \"./finance-totals.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import GraphEdge from '@/models/Graph/GraphEdge';\r\nimport { Svg } from '@svgdotjs/svg.js';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { MapView } from '../models/MapView';\r\nimport { insightService, loginHelper } from '@/main';\r\nimport PeriodRange from '@/models/PeriodRange';\r\nimport PageRender from '@/models/PageRender';\r\nimport MapNode from '../models/MapNode';\r\nimport InsightView from '@/models/Insights/InsightView';\r\nimport { teamsModule } from '@/store/modules/teams';\r\nimport PrdSvgCanvasVue from '../components/prd-svg-canvas.vue';\r\nimport PrdCanvasComponent from '../components/prd-svg-canvas';\r\nimport SvgRender from '../svg/SvgRender';\r\nimport SvgRenderInfoCell from '../svg/SvgRenderInfoCell';\r\nimport SvgRenderCellSpace from '../svg/SvgRenderCellSpace';\r\nimport { insightStoreModule } from '../store/map';\r\nimport MapData from '../models/MapData';\r\nimport SvgAnimate from '../svg/SvgAnimate';\r\nimport financeTotalsVue from '../components/finance-totals.vue';\r\nimport InsightTeamTotals from '../models/InsightTeamTotals';\r\nimport { Membership } from '@/models/Interfaces';\r\n@Component({\r\n components: {\r\n PrdSvgCanvas: PrdSvgCanvasVue,\r\n FinanceTotals: financeTotalsVue,\r\n },\r\n})\r\nexport default class CellsPage extends PageRender {\r\n public mapData = new MapData();\r\n public primarySvg: SvgRender = new SvgRender();\r\n public secondarySvg: SvgRenderInfoCell = new SvgRenderInfoCell();\r\n public canvas: Svg = null;\r\n public renderTiemout = null;\r\n public selectedId: string | number = null;\r\n public view: MapView = MapView.Team;\r\n public dates: PeriodRange = { toFilterMonth: '', fromFilterMonth: '' };\r\n public views: InsightView[] = [];\r\n public insight: InsightView = null;\r\n public loading = true;\r\n public loadingGraph = false;\r\n public rotate: number = 0;\r\n public margin: number = 100;\r\n public zoom: number = 1;\r\n\r\n public $refs!: {\r\n svgPrimaryCanvas: PrdCanvasComponent;\r\n svgSecondaryCanvas: PrdCanvasComponent;\r\n };\r\n\r\n public get incoming(): GraphEdge[] {\r\n return this.mapData.edges.filter((edge: GraphEdge) => edge.destination === this.selectedId);\r\n }\r\n\r\n public get outgoing(): GraphEdge[] {\r\n return this.mapData.edges.filter((edge: GraphEdge) => edge.origin === this.selectedId);\r\n }\r\n\r\n public get nodes(): MapNode[] {\r\n return [...this.mapData.nodes, ...this.mapData.external];\r\n }\r\n\r\n public get ecology() {\r\n return this.$route.query && this.$route.query.ecology ? this.$route.query.ecology : null;\r\n }\r\n\r\n public get ecologyTotals() {\r\n if (this.view === MapView.Ecology) {\r\n return this.mapData.insightTotals;\r\n }\r\n return null;\r\n }\r\n\r\n public get teamId() {\r\n return this.$route.query && this.$route.query.team ? +this.$route.query.team : null;\r\n }\r\n\r\n public get teamTotals() {\r\n if (this.view === MapView.Team) {\r\n if (!this.mapData.insightTotals) {\r\n return [];\r\n }\r\n\r\n return this.mapData.insightTotals.teamTotals.map((value: InsightTeamTotals) => {\r\n const mapped: any = { ...value };\r\n mapped.name = this.mapData.nodes.find((node: MapNode) => node.id === value.teamId)?.title;\r\n return mapped;\r\n });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public get activityId() {\r\n return this.$route.query && this.$route.query.activity ? +this.$route.query.activity : null;\r\n }\r\n\r\n public get activityTotals() {\r\n if (this.view === MapView.Activity) {\r\n return this.mapData.groupTotals;\r\n }\r\n return null;\r\n }\r\n\r\n public get canGoUp() {\r\n return Object.keys(this.$route.query).length > 1;\r\n }\r\n\r\n public async mounted() {\r\n this.loading = true;\r\n this.views = await insightService.getViews(true);\r\n this.insight = this.getInsight();\r\n await teamsModule.fetchTeamsIfNeeded();\r\n this.loading = false;\r\n\r\n this.$watch('$route.query', () => this.fetchAndDraw(false), { immediate: true, deep: true });\r\n }\r\n\r\n public nodeName(id: string | number) {\r\n const node = this.nodes.find((n: MapNode) => n.id === id);\r\n return node ? node.title : '';\r\n }\r\n\r\n public periodChanged(dates: PeriodRange) {\r\n this.dates = dates;\r\n }\r\n\r\n public async fetchAndDraw(refresh = false) {\r\n if (!this.insight) {\r\n return;\r\n }\r\n\r\n this.view = this.getView();\r\n await this.drawSecondary();\r\n this.selectedId = null;\r\n\r\n if (this.view === MapView.Ecology) {\r\n await this.drawEcology(refresh);\r\n } else {\r\n await this.drawCellspace(this.view, refresh);\r\n }\r\n }\r\n\r\n public async drawCellspace(view: MapView, refresh: boolean) {\r\n const callback = {\r\n [MapView.Team]: async () => await insightStoreModule.getTeamsInsight(this.insight, this.dates, refresh),\r\n [MapView.Activity]: async () => await insightStoreModule.getActivitiesInsight(this.teamId, this.dates, refresh),\r\n [MapView.Member]: async () => await insightStoreModule.getMembersInsight(this.activityId, this.dates, refresh),\r\n };\r\n\r\n if (!callback[view]) {\r\n throw new Error(`Callback for ${view} not defined`);\r\n }\r\n\r\n this.loadingGraph = true;\r\n const mapData = await callback[view]();\r\n this.mapData = mapData;\r\n const svg = new SvgRenderCellSpace(this.$refs.svgPrimaryCanvas.canvas);\r\n svg.on('select', this.onSelect);\r\n svg.on('navigate', this.onNavigate);\r\n svg.setData(mapData);\r\n svg.render();\r\n svg.fit();\r\n this.primarySvg = svg;\r\n this.loadingGraph = false;\r\n\r\n SvgAnimate.appear(svg.cellsGroup);\r\n SvgAnimate.appear(svg.extGroup);\r\n SvgAnimate.fadeIn(svg.edgesGroup);\r\n }\r\n\r\n public async drawEcology(refresh: boolean) {\r\n this.loadingGraph = true;\r\n const mapData = await insightStoreModule.getTeamsInsight(this.insight, this.dates, refresh);\r\n this.mapData = mapData;\r\n const svg = new SvgRenderInfoCell(this.$refs.svgPrimaryCanvas.canvas);\r\n svg.on('navigate', this.onNavigate);\r\n svg.setData(mapData.total);\r\n svg.render();\r\n this.primarySvg = svg;\r\n this.$refs.svgSecondaryCanvas.canvas.clear();\r\n this.loadingGraph = false;\r\n\r\n SvgAnimate.appear(svg.container);\r\n }\r\n\r\n public async drawSecondary() {\r\n if (this.secondarySvg.getId() === this.selectedId) {\r\n return;\r\n }\r\n\r\n const node = this.nodes.find((n: MapNode) => n.id === this.selectedId);\r\n if (node.data) {\r\n const svg = new SvgRenderInfoCell(this.$refs.svgSecondaryCanvas.canvas);\r\n svg.setData(node.data);\r\n svg.render();\r\n svg.fit();\r\n this.secondarySvg = svg;\r\n } else {\r\n this.secondarySvg = new SvgRenderInfoCell(this.$refs.svgSecondaryCanvas.canvas);\r\n this.$refs.svgSecondaryCanvas.canvas.clear();\r\n }\r\n }\r\n\r\n public onResize() {\r\n this.updateGraphSettings();\r\n }\r\n\r\n public async onSelectView(view: InsightView) {\r\n const query = { ...this.$route.query };\r\n query.insight = view.insightViewId.toString();\r\n await this.$router.replace({ query });\r\n }\r\n\r\n public async goUp() {\r\n const order = [MapView.Ecology, MapView.Team, MapView.Activity, MapView.Member];\r\n const level = order.findIndex((key) => key === this.view);\r\n const query = { ...this.$route.query };\r\n const prop = order[level - 1];\r\n delete query[prop.toLowerCase()];\r\n await this.$router.push({ query });\r\n }\r\n\r\n public updateGraphSettings() {\r\n if (this.primarySvg.type === 'CellSpace') {\r\n const svg = this.primarySvg as SvgRenderCellSpace;\r\n svg.zoom(+this.zoom);\r\n svg.rotate(+this.rotate);\r\n svg.setMargin(+this.margin);\r\n svg.redraw();\r\n svg.fit();\r\n } else {\r\n const svg = this.primarySvg as SvgRenderInfoCell;\r\n svg.redraw();\r\n svg.fit();\r\n }\r\n\r\n if (this.secondarySvg && !this.secondarySvg.empty) {\r\n const svg2 = this.secondarySvg as SvgRenderInfoCell;\r\n svg2.redraw();\r\n svg2.fit();\r\n }\r\n }\r\n\r\n public onZoom(zoom: number) {\r\n this.zoom = zoom;\r\n this.updateGraphSettings();\r\n }\r\n\r\n private getView(): MapView {\r\n if (this.activityId) {\r\n return MapView.Member;\r\n }\r\n\r\n if (this.teamId) {\r\n return MapView.Activity;\r\n }\r\n\r\n if (this.ecology) {\r\n return MapView.Team;\r\n }\r\n\r\n return MapView.Ecology;\r\n }\r\n\r\n private getInsight(): InsightView | null {\r\n if (this.$route.query && this.$route.query.insight) {\r\n return this.views.find((view) => view.insightViewId === +this.$route.query.insight) as InsightView;\r\n }\r\n return null;\r\n }\r\n\r\n private async onSelect(id: number | string) {\r\n if (id) {\r\n this.selectedId = id;\r\n await this.drawSecondary();\r\n }\r\n }\r\n\r\n private async onNavigate(id: number | string) {\r\n const query = { ...this.$route.query };\r\n const allowed = [MapView.Ecology, MapView.Team, MapView.Activity];\r\n\r\n if (this.primarySvg.type === 'InfoCell') {\r\n await SvgAnimate.disappear(this.primarySvg.container);\r\n }\r\n\r\n if (!allowed.includes(this.view)) {\r\n return;\r\n }\r\n\r\n if (!this.hasAccesToNextRoute(this.view, id)) {\r\n return this.clearAndShowWarning('INSIGHTS_NO_ACCESS');\r\n }\r\n\r\n query[this.view.toLowerCase()] = id.toString();\r\n this.loadingGraph = true;\r\n await this.$router.push({ query });\r\n }\r\n\r\n private hasAccesToNextRoute(view: MapView, id: number | string) {\r\n if (view === MapView.Team) {\r\n const user = loginHelper.getUser();\r\n const teamIndex = user.teamMemberships.findIndex((memberShip: Membership) => {\r\n return memberShip.id === id;\r\n });\r\n return teamIndex > -1;\r\n }\r\n return true;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./cells.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./cells.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./cells.vue?vue&type=template&id=7abc1dd7&scoped=true&\"\nimport script from \"./cells.ts?vue&type=script&lang=js&\"\nexport * from \"./cells.ts?vue&type=script&lang=js&\"\nimport style0 from \"./cells.vue?vue&type=style&index=0&id=7abc1dd7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7abc1dd7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('prd-loader',{attrs:{\"cover\":\"\",\"text\":\"Loading..\"}}):_c('div',{staticClass:\"mw-600 mx-auto my-5\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[(_vm.invite)?_c('h2',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'REGISTER.WELCOME_TEXT', params: { fullname: _vm.getInvitePersonFullname(), teamName: _vm.getTeamName() } }),expression:\"{ key: 'REGISTER.WELCOME_TEXT', params: { fullname: getInvitePersonFullname(), teamName: getTeamName() } }\"}],staticClass:\"mb-5\"}):_vm._e(),_c('div',[_c('b-form',{on:{\"submit\":_vm.onSubmit}},[_c('b-form-group',{attrs:{\"id\":\"firstNameGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"FIRST_NAME\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"firstNameInput\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Firstname\"},model:{value:(_vm.model.person.firstName),callback:function ($$v) {_vm.$set(_vm.model.person, \"firstName\", $$v)},expression:\"model.person.firstName\"}})],1),_c('b-form-group',{attrs:{\"id\":\"insertionGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"INSERTION\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"insertionInput\",\"type\":\"text\",\"placeholder\":\"Name affix\"},model:{value:(_vm.model.person.insertion),callback:function ($$v) {_vm.$set(_vm.model.person, \"insertion\", $$v)},expression:\"model.person.insertion\"}})],1),_c('b-form-group',{attrs:{\"id\":\"lastNameGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LAST_NAME\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"lastNameInput\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Lastname\"},model:{value:(_vm.model.person.lastName),callback:function ($$v) {_vm.$set(_vm.model.person, \"lastName\", $$v)},expression:\"model.person.lastName\"}})],1),_c('b-form-group',{attrs:{\"id\":\"emailAdressGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"EMAIL\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"emailRegisterInput\",\"type\":\"email\",\"required\":\"\",\"autocomplete\":\"email address\",\"placeholder\":\"Enter email\",\"disabled\":true},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('prd-translate-text',{staticClass:\"form-text text-muted\",attrs:{\"translate-key\":\"EMAIL_DESCRIPTION\",\"translate-group\":\"REGISTER\"}})],1),_c('b-form-group',{attrs:{\"id\":\"passwordGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"PASSWORD\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"passwordRegisterInput\",\"type\":\"password\",\"required\":\"\",\"autocomplete\":\"new-password\",\"placeholder\":\"Something incredibly unlogical\"},on:{\"focus\":function($event){_vm.showPolicy = true},\"blur\":function($event){_vm.showPolicy = false}},model:{value:(_vm.model.password),callback:function ($$v) {_vm.$set(_vm.model, \"password\", $$v)},expression:\"model.password\"}}),_c('prd-translate-text',{staticClass:\"form-text text-muted\",attrs:{\"translate-key\":\"PASSWORD_DESCRIPTION\",\"translate-group\":\"REGISTER\"}}),(_vm.showPolicy)?_c('div',[_c('ul',{staticClass:\"list-unstyled\"},_vm._l((_vm.policies),function(policy,index){return _c('li',{key:(\"policy_\" + index)},[(_vm.model.password && policy.valid(_vm.model.password))?_c('i',{staticClass:\"icon-check\"}):_c('i',{staticClass:\"icon-cancel\"}),_vm._v(\" \"+_vm._s(policy.message)+\" \")])}),0)]):_vm._e()],1),_c('b-form-group',{attrs:{\"id\":\"passwordRepeatGroup\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"REAPEAT_PASSWORD\",\"translate-group\":\"REGISTER\"}}),_c('b-form-input',{attrs:{\"id\":\"passwordRepeatInput\",\"type\":\"password\",\"required\":\"\",\"autocomplete\":\"repeat-password\",\"placeholder\":\"Something incredibly unlogical, again\"},model:{value:(_vm.model.passwordRepeat),callback:function ($$v) {_vm.$set(_vm.model, \"passwordRepeat\", $$v)},expression:\"model.passwordRepeat\"}}),_c('prd-translate-text',{staticClass:\"form-text text-muted\",attrs:{\"translate-key\":\"REPEAT_PASSWORD_DESCRIPTION\",\"translate-group\":\"REGISTER\"}})],1),_vm._t(\"extra-fields\"),_c('div',{staticClass:\"sign-in-link-holder text-center d-block w-100 mt-5\",attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"btn btn-lg btn-primary w-100 d-block\",attrs:{\"type\":\"submit\",\"variant\":\"primary\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"BUTTON\",\"translate-group\":\"REGISTER\"}})],1)],1)],2)],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { InviteInterface } from './Interfaces';\r\n\r\nexport default class Invite implements InviteInterface {\r\n public id: number;\r\n public email: string;\r\n public valid: boolean;\r\n public fromPerson: number;\r\n public key: string;\r\n public team: number;\r\n}\r\n","import { InviteResponseInterface } from './Interfaces';\r\nimport { Person } from './Person';\r\nimport Invite from './Invite';\r\nimport Team from './Team';\r\n\r\nexport default class InviteResponse implements InviteResponseInterface {\r\n public sender: Person = new Person();\r\n public receiver: Person = new Person();\r\n public team: Team = new Team();\r\n public invite: Invite = new Invite();\r\n}\r\n","import IValidation from './IValidation';\r\n\r\nexport default class Digit implements IValidation {\r\n public valid(value: string) {\r\n return !!value.match(/[0-9]/g);\r\n }\r\n\r\n public get message() {\r\n return 'Must contain a digit';\r\n }\r\n}\r\n","import IValidation from './IValidation';\r\n\r\nexport default class LowerCase implements IValidation {\r\n public valid(value: string) {\r\n return !!value.match(/[a-z]/g);\r\n }\r\n\r\n public get message() {\r\n return 'Must contain a lowercase character';\r\n }\r\n}\r\n","import IValidation from './IValidation';\r\n\r\nexport default class MinLength implements IValidation {\r\n private length: number = 10;\r\n\r\n constructor(length: number) {\r\n this.length = length;\r\n }\r\n\r\n public valid(value: string) {\r\n return value.length >= this.length;\r\n }\r\n\r\n public get message() {\r\n return `Must contain at least ${this.length} characters`;\r\n }\r\n}\r\n","import IValidation from './IValidation';\r\n\r\nexport default class NonAlpha implements IValidation {\r\n public valid(value: string) {\r\n return !!value.match(/[\\W_]+/g);\r\n }\r\n\r\n public get message() {\r\n return 'Must contain a non-alphanumeric character';\r\n }\r\n}\r\n","import IValidation from './IValidation';\r\n\r\nexport default class UpperCase implements IValidation {\r\n public valid(value: string) {\r\n return !!value.match(/[A-Z]/g);\r\n }\r\n\r\n public get message() {\r\n return 'Must contain a uppercase character';\r\n }\r\n}\r\n","import Digit from '../Validator/Digit';\r\nimport IValidation from '../Validator/IValidation';\r\nimport LowerCase from '../Validator/LowerCase';\r\nimport MinLength from '../Validator/MinLength';\r\nimport NonAlpha from '../Validator/NonAlpha';\r\nimport UpperCase from '../Validator/UpperCase';\r\n\r\nexport default class Policies {\r\n public static Default: IValidation[] = [Policies.MinLength(), Policies.NonAlpha()];\r\n public static Password: IValidation[] = [\r\n Policies.MinLength(),\r\n Policies.NonAlpha(),\r\n Policies.LowerCase(),\r\n Policies.UpperCase(),\r\n Policies.Digit(),\r\n ];\r\n\r\n public static MinLength(length: number = 8): IValidation {\r\n return new MinLength(length);\r\n }\r\n\r\n public static NonAlpha(): IValidation {\r\n return new NonAlpha();\r\n }\r\n\r\n public static LowerCase(): IValidation {\r\n return new LowerCase();\r\n }\r\n\r\n public static UpperCase(): IValidation {\r\n return new UpperCase();\r\n }\r\n\r\n public static Digit(): IValidation {\r\n return new Digit();\r\n }\r\n}\r\n","import Policies from '@/models/Policy/Policies';\r\nimport IValidation from '@/models/Validator/IValidation';\r\n\r\nexport default class PolicyHelper {\r\n private options: IValidation[] = [];\r\n\r\n constructor(options: IValidation[] = Policies.Default) {\r\n this.options = options;\r\n }\r\n\r\n public validate(password: string) {\r\n return this.options.filter((policy) => {\r\n return !policy.valid(password);\r\n }).length <= 0;\r\n }\r\n\r\n public get policies() {\r\n return this.options;\r\n }\r\n}\r\n","import { Component } from 'vue-property-decorator';\r\nimport { teamService } from '@/main';\r\nimport InviteResponse from '../../../models/InviteResponse';\r\nimport SelectItem from '../../../models/SelectItem';\r\nimport Register from '../../../models/Register';\r\nimport { Person } from '../../../models/Person';\r\nimport { Membership } from '../../../models/Interfaces';\r\nimport PageRender from '@/models/PageRender';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport to from 'await-to-js';\r\nimport Policies from '@/models/Policy/Policies';\r\nimport PolicyHelper from '@/helpers/PolicyHelper';\r\n\r\n@Component\r\nexport default class InvitedComponent extends PageRender {\r\n public key: string = '';\r\n public team: string = '';\r\n public teamId: number = 0;\r\n public teamOptions: SelectItem[] = [];\r\n public selectedTeams: string[] = [];\r\n public invite: InviteResponse = new InviteResponse();\r\n public model: Register = new Register();\r\n public email: string = '';\r\n public needsAccount: boolean = true;\r\n public showPolicy: boolean = false;\r\n private passwordPolicyHelper = new PolicyHelper(Policies.Password);\r\n\r\n public get policies() {\r\n return this.passwordPolicyHelper.policies;\r\n }\r\n\r\n public async created() {\r\n this.key = this.$route.params.key;\r\n this.teamId = parseInt(this.$route.params.teamId);\r\n const period = this.$route.params.period;\r\n const ecosystem = this.$route.params.ecosystemId;\r\n\r\n const [err, inviteResponse] = await to(teamService.getInvite(this.key, this.teamId, period, ecosystem));\r\n if (!err) {\r\n this.invite = inviteResponse.data;\r\n this.invite.sender = new Person(inviteResponse.data.sender);\r\n this.email = this.invite.invite.email;\r\n\r\n if (inviteResponse.data.receiver) {\r\n this.model.person = this.invite.receiver = new Person(inviteResponse.data.receiver);\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public getInvitePersonFullname() {\r\n return this.invite.sender.getFullName();\r\n }\r\n\r\n public getTeamName() {\r\n return this.invite.team.name;\r\n }\r\n\r\n public registerPost(model: Register) {\r\n const self = this;\r\n\r\n model.period = periodModule.selectedPeriod;\r\n\r\n self.showPending('REGISTRATION_PENDING');\r\n\r\n teamService\r\n .acceptInvite(this.teamId, self.key, model)\r\n .then((response: any) => {\r\n if (response) {\r\n self.clearAndShowSuccess('REGISTRATION_SUCCESS');\r\n\r\n setTimeout(() => {\r\n return self.$router.push({\r\n name: 'login',\r\n });\r\n }, 3000);\r\n }\r\n })\r\n .catch((error) => {\r\n self.clearAndShowError('REGISTRATION_FAILED', error);\r\n });\r\n }\r\n\r\n public onSubmit(evt: any) {\r\n evt.preventDefault();\r\n this.register();\r\n }\r\n\r\n public register(): void {\r\n const self = this;\r\n const valid = this.passwordPolicyHelper.validate(self.model.password);\r\n if (!valid) {\r\n return this.clearAndShowWarning(`Make sure your password meets the requirements.`);\r\n }\r\n\r\n if (self.model.password !== self.model.passwordRepeat) {\r\n return this.clearAndShowWarning(`Passwords aren't equal`);\r\n }\r\n\r\n this.clearNotifications();\r\n self.model.emailAddress = self.email;\r\n self.model.person.emailAddress = self.email;\r\n self.model.needsAccount = self.needsAccount;\r\n self.model.person.teamMemberships.length = 0;\r\n self.model.person.teamMemberships.push({ key: this.team } as Membership);\r\n\r\n self.registerPost(self.model);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./invited.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./invited.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./invited.vue?vue&type=template&id=a136b4ce&\"\nimport script from \"./invited.ts?vue&type=script&lang=js&\"\nexport * from \"./invited.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('spinner'):_c('div',[_c('div',[_c('h1',{staticClass:\"title\"},[_vm._v(\"My profile\")]),_c('b-tabs',[_c('b-tab',{attrs:{\"title\":\"My Bright identity\",\"active\":\"\"}},[_c('div',{staticClass:\"card-deck\"},[_c('b-card',{staticClass:\"mb-3 mb-md-0\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\"Name\")]),_c('b-card-body',{staticClass:\"pt-3\"},[_c('b-form-group',{attrs:{\"label-cols\":\"4\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\",\"label\":\"First name\",\"label-for\":\"input-sm\"}},[_c('b-form-input',{attrs:{\"id\":\"input-sm\",\"size\":\"sm\",\"disabled\":true},model:{value:(_vm.profile.firstName),callback:function ($$v) {_vm.$set(_vm.profile, \"firstName\", $$v)},expression:\"profile.firstName\"}})],1),_c('b-form-group',{attrs:{\"label-cols\":\"4\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\",\"label\":\"insertion\",\"label-for\":\"input-sm\"}},[_c('b-form-input',{attrs:{\"id\":\"input-sm\",\"size\":\"sm\",\"disabled\":true},model:{value:(_vm.profile.insertion),callback:function ($$v) {_vm.$set(_vm.profile, \"insertion\", $$v)},expression:\"profile.insertion\"}})],1),_c('b-form-group',{attrs:{\"label-cols\":\"4\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\",\"label\":\"Last name\",\"label-for\":\"input-sm\"}},[_c('b-form-input',{attrs:{\"id\":\"input-sm\",\"size\":\"sm\",\"disabled\":true},model:{value:(_vm.profile.lastName),callback:function ($$v) {_vm.$set(_vm.profile, \"lastName\", $$v)},expression:\"profile.lastName\"}})],1),_c('b-form-group',{attrs:{\"label-cols\":\"4\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\",\"description\":\"Only visible in Bright. Your email address you use to login won't change.\",\"label\":\"Email address \",\"label-for\":\"input-sm\"}},[_c('b-form-input',{attrs:{\"id\":\"input-sm\",\"size\":\"sm\",\"disabled\":true},model:{value:(_vm.profile.emailAddress),callback:function ($$v) {_vm.$set(_vm.profile, \"emailAddress\", $$v)},expression:\"profile.emailAddress\"}})],1),_c('b-form-group',{attrs:{\"label-cols\":\"4\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\",\"label\":\"Phone number\",\"label-for\":\"input-sm\"}},[_c('b-form-input',{attrs:{\"id\":\"input-sm\",\"size\":\"sm\",\"disabled\":true},model:{value:(_vm.profile.phoneNumber),callback:function ($$v) {_vm.$set(_vm.profile, \"phoneNumber\", $$v)},expression:\"profile.phoneNumber\"}})],1)],1)],1),_c('b-card',{staticClass:\"mb-3 mb-md-0\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\"Handy links\")]),_c('b-card-body',{staticClass:\"pt-3\"},[_c('b-form-group',{attrs:{\"label-cols\":\"9\",\"label-cols-lg\":\"9\",\"label-size\":\"sm\",\"label\":\"Want to change your password?\",\"label-for\":\"input-sm\"}},[_c('b-button',{attrs:{\"variant\":\"primary\",\"id\":\"input-sm\",\"size\":\"sm\"},on:{\"click\":_vm.goToManangePassword}},[_vm._v(\"Manage password\")])],1),_c('b-form-group',{attrs:{\"label-cols\":\"9\",\"label-cols-lg\":\"9\",\"label-size\":\"sm\",\"label\":\"Want to change information on your profile?\",\"label-for\":\"input-sm\"}},[_c('b-button',{attrs:{\"variant\":\"primary\",\"id\":\"input-sm\",\"size\":\"sm\"},on:{\"click\":_vm.goToManangeProfile}},[_vm._v(\"Manage profile\")])],1)],1)],1)],1)]),_c('b-tab',{attrs:{\"title\":\"Preferences\"}},[_c('div',{staticClass:\"card-deck\"},[_c('b-card',{staticClass:\"mb-3 mb-md-0\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(\"Primary ecosystem and team\")]),_c('b-card-body',{staticClass:\"pt-3\"},[_c('b-form-group',{attrs:{\"label-cols\":\"4\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\",\"label\":\"Primary ecosystem\",\"label-for\":\"input-sm\",\"description\":\"When you're a member of multiple ecosystems select a preferred ecosystem so this will used as default when opening Bright without direct destination\"}},[_c('b-form-select',{class:{ 'is-invalid': !_vm.profile.primaryEcosystem },attrs:{\"options\":_vm.optionListEcosystems()},model:{value:(_vm.profile.primaryEcosystem),callback:function ($$v) {_vm.$set(_vm.profile, \"primaryEcosystem\", $$v)},expression:\"profile.primaryEcosystem\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_ECOSYSTEM\"}})],1)])],2)],1),_c('b-form-group',{attrs:{\"label-cols\":\"4\",\"label-cols-lg\":\"2\",\"label-size\":\"sm\",\"label\":\"Primary team\",\"label-for\":\"input-sm\",\"description\":\"When you're a member of multiple teams select a preferred team so this will used as default when opening Bright without direct destination\"}},[_c('b-form-select',{class:{ 'is-invalid': !_vm.profile.primaryTeam },attrs:{\"options\":_vm.optionListTeams()},model:{value:(_vm.profile.primaryTeam),callback:function ($$v) {_vm.$set(_vm.profile, \"primaryTeam\", $$v)},expression:\"profile.primaryTeam\"}},[_c('template',{slot:\"first\"},[_c('option',{domProps:{\"value\":null}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_TEAM\"}})],1)])],2)],1)],1),_c('b-button',{staticClass:\"btn btn-sm btn-primary float-right\",attrs:{\"type\":\"submit\",\"variant\":\"primary\"},on:{\"click\":_vm.saveProfile}},[_vm._v(\"Save\")])],1)],1)])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { loginHelper, meService } from '@/main';\r\nimport { Person } from '@/models/Person';\r\nimport to from 'await-to-js';\r\nimport PageRender from '@/models/PageRender';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport Vue from 'vue';\r\n@Component\r\nexport default class ProfileComponent extends PageRender {\r\n public profile: Person = null;\r\n public isLoading: boolean = true;\r\n\r\n public created() {\r\n this.profile = profileModule.brightProfile;\r\n this.isLoading = false;\r\n }\r\n\r\n public async saveProfile() {\r\n this.showPending('SAVE_PROFILE_PENDING');\r\n const [err] = await to(\r\n meService.updatePreferences(\r\n this.profile.primaryEcosystem,\r\n this.profile.primaryTeam,\r\n ),\r\n );\r\n if (err) {\r\n return this.clearAndShowError('SAVE_PROFILE_FAILED', err);\r\n }\r\n\r\n const reloadProfileResponse = await loginHelper.reloadProfile();\r\n profileModule.setBrightProfile(reloadProfileResponse);\r\n this.profile = new Person(reloadProfileResponse);\r\n\r\n return this.clearAndShowSuccess('SAVE_PROFILE_SUCCESS');\r\n }\r\n\r\n public optionListEcosystems() {\r\n return this.profile.ecosystemMemberships.map((ship) => {\r\n return { value: ship.id, text: ship.name };\r\n });\r\n }\r\n\r\n public optionListTeams() {\r\n return this.profile.teamMemberships.map((ship) => {\r\n return { value: ship.id, text: ship.name };\r\n });\r\n }\r\n\r\n public goToManangePassword() {\r\n window.open(`${Vue.$env().identityEndpoint}Manage/ChangePassword`, '_blank');\r\n }\r\n\r\n public goToManangeProfile() {\r\n window.open(`${Vue.$env().identityEndpoint}Manage`, '_blank');\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./profile.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./profile.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./profile.vue?vue&type=template&id=4353fb79&\"\nimport script from \"./profile.ts?vue&type=script&lang=js&\"\nexport * from \"./profile.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h2',[_vm._v(\"Me dashboard\")])])}]\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class MeDashboardComponent extends Vue {\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./me.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./me.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./me.vue?vue&type=template&id=f1883ec8&\"\nimport script from \"./me.ts?vue&type=script&lang=js&\"\nexport * from \"./me.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form',[_c('b-card',{staticClass:\"w-50\",attrs:{\"title\":\"Create team\"}},[_c('b-card-body',[_c('b-form-group',{attrs:{\"id\":\"input-group-1\",\"label\":\"Team name:\",\"label-for\":\"team-name\",\"description\":\"Enter the name corret, this cant be changed later\"}},[_c('b-form-input',{attrs:{\"id\":\"team-name\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Enter name\"},model:{value:(_vm.newTeam.name),callback:function ($$v) {_vm.$set(_vm.newTeam, \"name\", $$v)},expression:\"newTeam.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"input-group-2\",\"label\":\"Legal Entity Reference:\",\"label-for\":\"legal-name\",\"description\":\"The name of your legal entity, eg: 'Bright Ecology B.V.'\"}},[_c('b-form-input',{attrs:{\"id\":\"legal-name\",\"type\":\"text\",\"required\":\"\",\"placeholder\":\"Enter legal entity reference\"},model:{value:(_vm.newTeam.legalEntityReference),callback:function ($$v) {_vm.$set(_vm.newTeam, \"legalEntityReference\", $$v)},expression:\"newTeam.legalEntityReference\"}})],1)],1),_c('b-card-footer',[_c('b-form-group',[_c('b-button',{staticClass:\"mr-2 \",attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.createTeam}},[_vm._v(\"Create team\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import PageRender from '@/models/PageRender';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { teamService, ecosystemHelper, loginHelper } from '@/main';\r\nimport to from 'await-to-js';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { profileModule } from '@/store/modules/profile';\r\n\r\n@Component\r\nexport default class EcosystemCreateTeamComponent extends PageRender {\r\n public newTeam: any = {\r\n name: '',\r\n legalEntityReference: '',\r\n ecosystem: ecosystemHelper.currentEcosystem.name,\r\n teamLeadId: loginHelper.getUser().personId,\r\n };\r\n\r\n public async createTeam() {\r\n this.showPending('CREATE_TEAM_PENDING');\r\n\r\n const [err] = await to(teamService.createTeam(this.newTeam));\r\n if (err) {\r\n return this.clearAndShowError('CREATE_TEAM_FAILED', err);\r\n }\r\n this.clearAndShowSuccess('CREATE_TEAM_SUCCESS');\r\n\r\n await profileModule.loadBrightProfileIfNeeded(true);\r\n\r\n await this.$router.push({\r\n name: 'ecosystem-overview',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-team.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./create-team.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./create-team.vue?vue&type=template&id=7dde60b0&\"\nimport script from \"./create-team.ts?vue&type=script&lang=js&\"\nexport * from \"./create-team.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('prd-loader',{attrs:{\"absolute\":\"\"}}):_c('div',[_c('prd-toolbar',{attrs:{\"space-between\":\"\"}},[_c('generic-search',{attrs:{\"slot\":\"left\",\"data-items\":_vm.allGroups,\"properties\":['purpose', 'team', 'firstName', 'lastName', 'name', 'team']},on:{\"finished-search\":_vm.updateGridData},slot:\"left\"})],1),_c('prd-grid-wrapper',{key:_vm.refreshGrid,attrs:{\"data-items\":_vm.groups,\"columns\":_vm.groupsColumns,\"row-height\":36}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { teamHelper, teamService, ecosystemHelper } from '@/main';\r\nimport BaseEcosystemDirectory from './BaseEcosystemDirectory';\r\nimport Group from '@/models/Group';\r\nimport { orderBy } from '@progress/kendo-data-query';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class EcosystemGroupsComponent extends BaseEcosystemDirectory {\r\n public allGroups: Group[] = [];\r\n public groupsColumns: any[] = [\r\n { field: 'name', title: 'NAME', width: 300 },\r\n { cell: this.renderTeam, title: 'TEAM', width: 300 },\r\n { field: 'purpose', title: 'GROUP_PURPOSE' },\r\n { cell: this.renderMembersEcosystem, title: 'GROUP_MEMBERS', width: 125 },\r\n { cell: this.renderGroupLead, title: 'GROUP_LEAD', width: 300 },\r\n ];\r\n\r\n public async created() {\r\n const self = this;\r\n\r\n this.teams = await teamService.getTeams();\r\n\r\n for (const team of this.teams) {\r\n team.groups.forEach((group) => {\r\n group.teamId = team.teamId;\r\n this.groups.push(group);\r\n });\r\n }\r\n\r\n this.allGroups = this.groups = orderBy(this.groups, [{ field: 'name', dir: 'asc' }]);\r\n self.isLoading = false;\r\n }\r\n\r\n public updateGridData(dataItems) {\r\n this.groups = orderBy(dataItems, [{ field: 'name', dir: 'asc' }]);\r\n this.refreshGrid++;\r\n }\r\n\r\n public renderGroupLead(h, _, row): any {\r\n if (!row.dataItem.groupLead) {\r\n return h('td', 'Not yet set');\r\n }\r\n\r\n return this.renderMember(h, row.dataItem.groupLead);\r\n }\r\n\r\n public renderMembersEcosystem(h, _, row): any {\r\n const props = { teamId: row.dataItem.teamId, groupId: row.dataItem.groupId, lazy: true, memberCount: row.dataItem.memberCount };\r\n return h(Vue.component('members-component'), { props });\r\n }\r\n\r\n public renderRounterLink(h, _, row) {\r\n const routeUrl = this.$router.resolve({\r\n name: 'team-directory-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n groupKey: row.dataItem.groupKey,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'members',\r\n period: periodModule.selectedPeriod,\r\n },\r\n }).href;\r\n\r\n const props = {\r\n text: row.dataItem.name,\r\n url: routeUrl,\r\n };\r\n\r\n return h(Vue.component('grid-router-link'), { props });\r\n }\r\n\r\n public fullname(member: any): string {\r\n return `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n }\r\n\r\n public renderFullname(h, _, row) {\r\n const member = row.dataItem;\r\n const name = `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n return h('td', [name]);\r\n }\r\n\r\n public renderTeam(h, _, row) {\r\n return h('td', this.teams.find((x) => x.teamId === row.dataItem.teamId).name);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./groups.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./groups.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./groups.vue?vue&type=template&id=c04149b2&\"\nimport script from \"./groups.ts?vue&type=script&lang=js&\"\nexport * from \"./groups.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isLoading)?_c('spinner'):_c('div',[_c('h3',[(_vm.teamKey || _vm.groupKey)?_c('b-button',{staticClass:\"my-2 mr-5 \",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.goUp}},[_c('span',{staticClass:\"k-icon k-i-arrow-left align-text-bottom\"}),_vm._v(\" Up one level\")]):_vm._e(),(!_vm.teamKey && !_vm.groupKey)?_c('span',[_vm._v(\"All teams of \"+_vm._s(_vm.getEcosystemName()))]):_vm._e(),(_vm.teamKey && !_vm.groupKey)?_c('span',[_vm._v(\"Groups of \"+_vm._s(_vm.team.name))]):_vm._e(),(_vm.teamKey && _vm.groupKey)?_c('span',[_vm._v(\"Members of \"+_vm._s(_vm.group.name))]):_vm._e()],1),_c('svg-graph',{attrs:{\"graphData\":_vm.graph}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport to from 'await-to-js';\r\nimport { mapService, $router, groupService, teamService, ecosystemHelper } from '@/main';\r\nimport GraphData from '@/models/Graph/GraphData';\r\nimport IMapSetting from '@/models/Map/IMapSettings';\r\nimport Group from '@/models/Group';\r\nimport Team from '@/models/Team';\r\nimport { Person } from '@/models/Person';\r\nimport BaseEcosystemDirectory from './BaseEcosystemDirectory';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class EcosystemMapComponent extends BaseEcosystemDirectory {\r\n public graph = new GraphData();\r\n public teamId: number = null;\r\n public team: Team = new Team();\r\n public groupKey: string = '';\r\n public groupId: number = null;\r\n public group: Group = new Group();\r\n\r\n private mapSettings: IMapSetting[] = [];\r\n\r\n public created() {\r\n this.teamId = parseInt(this.$route.params.teamId);\r\n this.groupKey = this.$route.params.group;\r\n this.groupId = parseInt(this.$route.params.groupId);\r\n }\r\n\r\n public async mounted() {\r\n if (typeof this.groupKey !== 'undefined') {\r\n const [err, response] = await to(groupService.getGroup(this.groupId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('Failed to load group', err);\r\n }\r\n\r\n this.group = response.data;\r\n }\r\n\r\n this.teams = await teamService.getTeams();\r\n if (typeof this.teamId !== 'undefined') {\r\n this.team = this.teams.find((x) => x.teamId === this.teamId);\r\n this.mapSettings = await mapService.getSettings(this.teamId);\r\n } else {\r\n this.mapSettings = await mapService.getSettings();\r\n }\r\n\r\n if (this.group && this.group.groupId > 0) {\r\n await this.handleGroupScope();\r\n } else if (this.team && this.team.teamId > 0) {\r\n await this.handleTeamScope();\r\n } else {\r\n await this.handleEcosystemScope();\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async handleGroupScope() {\r\n for (const [index, member] of this.group.members.entries()) {\r\n let settings = null; // this.mapSettings.find((x) => x.member === member.groupId);\r\n\r\n if (!settings) {\r\n const rows = Math.ceil(Math.sqrt(this.group.members.length));\r\n const x = 0 + (index % rows) * 100;\r\n const y = 0 + Math.floor(index / rows) * 100;\r\n\r\n settings = { x, y, radius: 40, team: null, group: this.group.groupId, member: member.memberId };\r\n }\r\n\r\n this.graph.vertices.push({\r\n id: member.memberId,\r\n name: new Person(member).getFullName(),\r\n x: settings.x,\r\n y: settings.y,\r\n radius: settings.radius,\r\n // onclick: () => this.goToGroup(this.team.key, group.groupKey),\r\n });\r\n }\r\n }\r\n\r\n public async handleTeamScope() {\r\n for (const [index, group] of this.team.groups.entries()) {\r\n let settings = this.mapSettings.find((x) => x.group === group.groupId);\r\n if (!settings) {\r\n settings = { x: 20 * index, y: 20, radius: 20, team: null, group: group.groupId };\r\n }\r\n\r\n this.graph.vertices.push({\r\n id: group.groupId,\r\n name: group.name,\r\n x: settings.x,\r\n y: settings.y,\r\n radius: settings.radius,\r\n onclick: () => this.goToGroup(this.team, group),\r\n });\r\n }\r\n }\r\n\r\n public async handleEcosystemScope() {\r\n for (const team of this.teams) {\r\n const settings = this.mapSettings.find((x) => x.team === team.teamId);\r\n this.graph.vertices.push({\r\n id: team.teamId,\r\n key: team.teamKey,\r\n name: team.name,\r\n x: settings.x,\r\n y: settings.y,\r\n radius: settings.radius,\r\n onclick: () => this.goToTeam(team),\r\n });\r\n }\r\n }\r\n\r\n public async goUp() {\r\n if (this.group && this.group.groupId > 0) {\r\n return this.goToTeam(this.team);\r\n }\r\n\r\n await $router.push({\r\n name: 'ecosystem-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n period: periodModule.selectedPeriod,\r\n tab: 'map',\r\n },\r\n });\r\n }\r\n\r\n public async goToTeam(team: Team) {\r\n await $router.push({\r\n name: 'ecosystem-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n period: periodModule.selectedPeriod,\r\n tab: 'map',\r\n teamId: team.teamId.toString(),\r\n teamKey: team.teamKey,\r\n },\r\n });\r\n }\r\n\r\n public async goToGroup(team: Team, group: Group) {\r\n await $router.push({\r\n name: 'ecosystem-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n period: periodModule.selectedPeriod,\r\n tab: 'map',\r\n teamId: team.teamId.toString(),\r\n teamKey: team.teamKey,\r\n groupId: group.groupId.toString(),\r\n groupKey: group.groupKey,\r\n },\r\n });\r\n }\r\n\r\n public getEcosystemName() {\r\n return ecosystemHelper.currentEcosystem.name;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./map.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./map.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./map.vue?vue&type=template&id=2c403423&\"\nimport script from \"./map.ts?vue&type=script&lang=js&\"\nexport * from \"./map.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('prd-loader',{attrs:{\"absolute\":\"\"}}):_c('div',[_c('prd-toolbar',{attrs:{\"space-between\":\"\"}},[_c('generic-search',{attrs:{\"slot\":\"left\",\"data-items\":_vm.allMembers,\"properties\":['firstName', 'phoneNumber', 'emailAddress', 'lastName', 'name', 'team']},on:{\"finished-search\":_vm.updateGridData},slot:\"left\"})],1),_c('prd-grid-wrapper',{key:_vm.refreshGrid,attrs:{\"data-items\":_vm.members,\"columns\":_vm.memberColumns,\"row-height\":36}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { ecosystemHelper, teamService } from '@/main';\r\nimport { ecosystemService } from '@/main';\r\nimport { Member } from '@/models/Member';\r\nimport BaseEcosystemDirectory from './BaseEcosystemDirectory';\r\nimport { orderBy } from '@progress/kendo-data-query';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class MembersComponent extends BaseEcosystemDirectory {\r\n public allMembers: Member[] = [];\r\n public isLoading: boolean = true;\r\n\r\n public memberColumns: any[] = [\r\n { cell: this.renderMemberWithIcon, title: 'NAME', field: 'firstName' },\r\n { cell: this.renderTeamMemberships, title: 'MEMBERS_OF', field: 'firstName' },\r\n { cell: this.renderMemberships, title: 'MEMBERS_OF', field: 'firstName' },\r\n { title: 'EMAIL', field: 'emailAddress' },\r\n { title: 'PHONE', field: 'phoneNumber' },\r\n { title: 'ACTIONS', cell: this.renderActions, width: 120 },\r\n ];\r\n\r\n public updateGridData(dataItems) {\r\n this.members = orderBy(dataItems, [{ field: 'firstName', dir: 'asc' }]);\r\n this.refreshGrid++;\r\n }\r\n\r\n public async created() {\r\n const self = this;\r\n\r\n this.teams = await teamService.getTeams();\r\n const members = await ecosystemService.getMembers();\r\n const membersDataSorted = orderBy(members, [{ field: 'firstName', dir: 'asc' }]);\r\n self.allMembers = self.members = membersDataSorted;\r\n self.isLoading = false;\r\n }\r\n\r\n public renderMemberWithIcon(h, _, row) {\r\n return this.renderMember(h, row.dataItem);\r\n }\r\n\r\n public renderFullname(h, _, row) {\r\n const member = row.dataItem;\r\n const name = `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n return h('td', [name]);\r\n }\r\n public async removeFromEcosystem(item) {\r\n this.showPending('REMOVING_MEMBER_PENDING_ECO');\r\n const [err] = await to(ecosystemService.removeMember(item.personId, ecosystemHelper.currentEcosystem.id, periodModule.selectedPeriod));\r\n if (err) {\r\n return this.clearAndShowError(`REMOVING_MEMBER_FAILED_ECO`, err);\r\n }\r\n\r\n this.clearAndShowSuccess(`REMOVING_MEMBER_SUCCESS_ECO`);\r\n await this.refreshMembersGrid();\r\n }\r\n\r\n public async refreshMembersGrid() {\r\n\r\n const members = await ecosystemService.getMembers();\r\n const membersDataSorted = orderBy(members, [{ field: 'firstName', dir: 'asc' }]);\r\n this.allMembers = this.members = membersDataSorted;\r\n\r\n this.refreshGrid++;\r\n }\r\n\r\n public renderActions(h, _, row) {\r\n const member = row.dataItem;\r\n\r\n if (!member.teamMemberships.length) {\r\n const actions = [{ title: 'Remove account', function: this.removeFromEcosystem }];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n return h('td');\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./members.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./members.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./members.vue?vue&type=template&id=6d90cb07&\"\nimport script from \"./members.ts?vue&type=script&lang=js&\"\nexport * from \"./members.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isLoading)?_c('spinner'):_c('div')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import PageRender from '@/models/PageRender';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class EcosystemPeopleComponent extends PageRender {\r\n public async mounted() {\r\n this.isLoading = false;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./people.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./people.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./people.vue?vue&type=template&id=45b86bf7&\"\nimport script from \"./people.ts?vue&type=script&lang=js&\"\nexport * from \"./people.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('prd-loader',{attrs:{\"absolute\":\"\"}}):_c('div',[_c('prd-toolbar',{attrs:{\"space-between\":\"\"}},[_c('generic-search',{attrs:{\"slot\":\"left\",\"data-items\":_vm.allTeams,\"properties\":['name', 'key']},on:{\"finished-search\":_vm.updateGridData},slot:\"left\"}),_c('router-link',{attrs:{\"slot\":\"right\",\"to\":{ name: 'ecosystem-ceate-team', params: { ecosystem: _vm.$root.ecosystemHelper.ecosystemParam, period: _vm.$store.state.period._selectedPeriod } }},slot:\"right\"},[_c('b-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\"}},[_vm._v(\"Add team \")])],1)],1),_c('prd-grid-wrapper',{key:_vm.refreshGrid,attrs:{\"data-items\":_vm.teams,\"columns\":_vm.teamsColumns,\"row-height\":36}}),_c('are-you-sure-modal',{ref:\"areYouSureModal\",on:{\"delete-entity\":_vm.deleteTeam}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { teamHelper, teamService, ecosystemHelper } from '@/main';\r\nimport BaseEcosystemDirectory from './BaseEcosystemDirectory';\r\nimport { orderBy } from '@progress/kendo-data-query';\r\nimport Team from '@/models/Team';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport AreYouSureModal from '@/components/modals/are-you-sure-modal';\r\n\r\n@Component\r\nexport default class EcosystemTeamsComponent extends BaseEcosystemDirectory {\r\n public allTeams: Team[] = [];\r\n public teamsColumns: any[] = [\r\n { field: 'name', title: 'NAME' },\r\n { cell: this.renderEcosystem, title: 'ECOSYSTEM', width: 300 },\r\n { cell: this.renderGroups, title: 'GROUPS', width: 125 },\r\n { cell: this.renderActions, title: 'ACTIONS', width: 125 },\r\n ];\r\n\r\n public $refs!: {\r\n areYouSureModal: AreYouSureModal;\r\n };\r\n\r\n public async created() {\r\n const self = this;\r\n\r\n this.teams = await teamService.getTeams();\r\n this.allTeams = this.teams = orderBy(this.teams, [{ field: 'name', dir: 'asc' }]);\r\n\r\n self.isLoading = false;\r\n }\r\n\r\n public updateGridData(dataItems) {\r\n this.teams = orderBy(dataItems, [{ field: 'name', dir: 'asc' }]);\r\n this.refreshGrid++;\r\n }\r\n\r\n public renderGroupLead(h, _, row): any {\r\n return this.renderMember(h, row.dataItem.groupLead);\r\n }\r\n\r\n public renderRounterLink(h, _, row) {\r\n const routeUrl = this.$router.resolve({\r\n name: 'team-directory-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n groupKey: row.dataItem.groupKey,\r\n groupId: row.dataItem.groupId,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'members',\r\n period: periodModule.selectedPeriod,\r\n },\r\n }).href;\r\n\r\n const props = {\r\n text: row.dataItem.name,\r\n url: routeUrl,\r\n };\r\n\r\n return h(Vue.component('grid-router-link'), { props });\r\n }\r\n\r\n public fullname(member: any): string {\r\n return `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n }\r\n\r\n public renderFullname(h, _, row) {\r\n const member = row.dataItem;\r\n const name = `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n return h('td', [name]);\r\n }\r\n\r\n public renderEcosystem(h) {\r\n return h('td', ecosystemHelper.currentEcosystem.name);\r\n }\r\n\r\n public showDeleteTeamModal(item) {\r\n this.$refs.areYouSureModal.setScope(item, 'name', 'Team');\r\n this.$refs.areYouSureModal.show();\r\n }\r\n\r\n public async deleteTeam(team: Team) {\r\n this.showPending('DELETE_TEAM_PENDING');\r\n const success = await teamService.deleteTeam(team.teamId);\r\n if (!success) {\r\n return;\r\n }\r\n\r\n this.clearAndShowSuccess('DELETE_TEAM_SUCCESS');\r\n this.$refs.areYouSureModal.hide();\r\n\r\n this.isLoading = true;\r\n this.teams = await teamService.getTeams();\r\n this.allTeams = this.teams = orderBy(this.teams, [{ field: 'name', dir: 'asc' }]);\r\n this.isLoading = false;\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n const actions = [{ title: 'Delete team', function: this.showDeleteTeamModal }];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./teams.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./teams.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./teams.vue?vue&type=template&id=d7d65a36&\"\nimport script from \"./teams.ts?vue&type=script&lang=js&\"\nexport * from \"./teams.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ul',{staticClass:\"nav nav-tabs\",attrs:{\"role\":\"tablist\"}},[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link teams\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ALL_TEAMS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ALL_TEAMS'),expression:\"'ALL_TEAMS'\"}],staticClass:\"nav-link teams\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('teams')}}})]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link groups\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ALL_GROUPS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ALL_GROUPS'),expression:\"'ALL_GROUPS'\"}],staticClass:\"nav-link groups\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('groups')}}})]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link members\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ALL_MEMBERS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ALL_MEMBERS'),expression:\"'ALL_MEMBERS'\"}],staticClass:\"nav-link members\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('members')}}})])]),_c('div',{staticClass:\"tab-content\"},[_c(_vm.currentTabComponent,{tag:\"component\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { $router } from '@/main';\r\nimport jQuery from 'jquery';\r\nimport PageRender from '@/models/PageRender';\r\n\r\n@Component\r\nexport default class EcosytemDirectoryComponent extends PageRender {\r\n public tab: string = null;\r\n public currentTabComponent: string = '';\r\n public tabs: string[] = [\r\n 'teams',\r\n 'groups',\r\n 'members',\r\n ];\r\n\r\n public async mounted() {\r\n await this.checkPeriodParam();\r\n await this.changeTab(this.$route.params.tab);\r\n }\r\n\r\n public async changeTab(tab: string): Promise {\r\n if (this.tabs.indexOf(tab) < 0) {\r\n tab = this.tabs[0];\r\n }\r\n\r\n if (tab !== this.$route.params.tab) {\r\n const params = this.$route.params;\r\n params.tab = tab;\r\n\r\n await $router.push({ name: 'ecosystem-directory', params });\r\n } else {\r\n this.doActiveClass(tab);\r\n this.currentTabComponent = 'ecosystem-directory-' + tab;\r\n }\r\n }\r\n\r\n public doActiveClass(tab: string) {\r\n this.$nextTick(() => {\r\n jQuery('.' + tab).addClass('active');\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./directory.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./directory.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./directory.vue?vue&type=template&id=2b708a8a&\"\nimport script from \"./directory.ts?vue&type=script&lang=js&\"\nexport * from \"./directory.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('spinner'):_c('div',[(_vm.teams)?_c('div',[_c('div',[_c('ul',{staticClass:\"nav nav-tabs\",attrs:{\"role\":\"tablist\"}},[[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link invoices\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"INVOICES\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('INVOICES'),expression:\"'INVOICES'\"}],staticClass:\"nav-link invoices active\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('invoices')}}})]),_vm._l((_vm.teams),function(team,index){return _c('li',{key:'eco_finance_' + index,staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{class:'nav-link ' + team.teamKey,attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab(team.teamKey)}}},[_vm._v(_vm._s(team.name))])])}),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link totals\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTALS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TOTALS'),expression:\"'TOTALS'\"}],staticClass:\"nav-link totals\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('totals')}}})])]],2)]),(_vm.currentTab != 'invoices')?_c('b-card',{staticClass:\"mb-3\"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"PERIOD\"}})],1),_c('grid-period-range-filter',{on:{\"filter-change\":_vm.recalculateResultsIncome}})],1):_c('b-card',{staticClass:\"mb-3\"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"PERIOD\"}})],1),_c('grid-period-range-filter',{on:{\"filter-change\":_vm.reloadInvoices}})],1),(_vm.currentTab == 'totals')?_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"TEAMS_INCLUDED_IN_TOTALS\"}})],1),_c('b-form-group',[_c('b-form-checkbox-group',{attrs:{\"id\":\"checkbox-group-1\",\"options\":_vm.teamOptions(),\"name\":\"flavour-1\"},model:{value:(_vm.selectedTeams),callback:function ($$v) {_vm.selectedTeams=$$v},expression:\"selectedTeams\"}})],1)],1):_vm._e(),(_vm.currentTab == 'invoices')?_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"LEGAL_ENTITIES\"}})],1),_c('b-form-group',[_c('b-form-radio-group',{attrs:{\"id\":\"checkbox-group-legal-entities\",\"options\":_vm.legalEntitiesOptions(),\"name\":\"legal-entities\"},model:{value:(_vm.selectedLegalEntity),callback:function ($$v) {_vm.selectedLegalEntity=$$v},expression:\"selectedLegalEntity\"}})],1)],1):_vm._e(),(_vm.currentTab == 'invoices')?_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"TEAMS\"}})],1),_c('b-form-group',[_c('b-form-radio-group',{attrs:{\"id\":\"checkbox-group-teams\",\"options\":_vm.teamOptions(),\"name\":\"teams\"},model:{value:(_vm.selectedTeam),callback:function ($$v) {_vm.selectedTeam=$$v},expression:\"selectedTeam\"}})],1)],1):_vm._e(),(_vm.currentTab != 'totals' && _vm.currentTab != 'invoices')?_c('div',{staticClass:\"tab-content\"},[_c('div',{staticClass:\"row row-eq-height mb-4\"},[_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"TEAM_RESULT\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.getTeamResult())}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"TEAM_BALANCE\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.getTeamBalance())}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"OPEN_INVOICES\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.getTeamOpenInvocies())}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"OPEN_EXPENSES\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.getTeamOpenExpenses())}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"EXPENSES\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.getTeamExpenses())}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"EXTRAS\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.getTeamExtras())}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"DROP_DEAD_RATIO\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getDropDeadRatio())}})])])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"TOTAL_GROUP_OPEN_INVOICES\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.getGroupOpenInvoices())}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"TOTAL_GROUP_OPEN_EXPENSES\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.getGroupOpenExpenses())}})])],1)],1)]),(!_vm.loadingGrids)?[_c('prd-grid-wrapper',{key:'groups_' + _vm.reloadGrids,staticClass:\"mb-5\",attrs:{\"data-items\":_vm.groupsData,\"columns\":_vm.groupsDataColumns,\"row-height\":34}}),_c('prd-grid-wrapper',{key:'members_' + _vm.reloadGrids,staticClass:\"mb-5\",attrs:{\"data-items\":_vm.membersData,\"columns\":_vm.membersDataColumns,\"row-height\":34}})]:_vm._e()],2):_vm._e(),(_vm.currentTab == 'totals')?_c('div',{key:_vm.updateTotals,staticClass:\"tab-content\"},[_c('div',{staticClass:\"row row-eq-height\"},[_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-3\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"FINANCES_RESULT\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.totalResult)}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-0\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"FINANCES_BALANCE\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.totalBalance)}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-0\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"FINANCE_EXTERNAL_REVENUE\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.totalExternalRevenue)}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-0\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_EXPENSES\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.totalExpenses)}})])],1)],1),_c('div',{staticClass:\"col-md-3\"},[_c('b-card',{staticClass:\"mb-3 mb-md-0\"},[_c('h5',{staticClass:\"pb-2\",attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_EXTRAS\"}})],1),(_vm.reloadingResults)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('b-card-body',{staticClass:\"py-3\"},[(_vm.numberOfMonths == 1)?_c('h6',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.$root.periodFilterHelper.currentMonth(\"MMMM 'YY\")))]):_vm._e(),_c('h1',{staticClass:\"mb-3\",domProps:{\"innerHTML\":_vm._s(_vm.totalExtras)}})])],1)],1)]),_c('div',{staticClass:\"row mt-5\"},[_c('div',{staticClass:\"col-md-12\"},[(_vm.reloadingResults)?[_c('spinner')]:_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.getEcologyOverviewData(),\"columns\":_vm.overviewTeamColumns,\"row-height\":34}})],2)])]):_vm._e(),(_vm.currentTab == 'invoices')?_c('div',{staticClass:\"tab-content\"},[_c('div',{staticClass:\"row mt-5\"},[_c('div',{staticClass:\"col-md-12\"},[(_vm.reloadingResults)?[_c('spinner')]:[_c('prd-toolbar',{staticClass:\"justify-content-between\"},[_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('b-button',{staticClass:\"mr-3 d-inline\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.reloadInvoices(_vm.currentDates)}}},[_c('span',{staticClass:\"icon-rotate-cw\"})]),_c('div',[_c('b-form-checkbox',{staticClass:\"mt-1\",attrs:{\"name\":\"check-button\",\"switch\":\"\"},model:{value:(_vm.expensesType),callback:function ($$v) {_vm.expensesType=$$v},expression:\"expensesType\"}},[_vm._v(\" Expenses \")])],1),_c('div',{staticClass:\"ml-3\"},[_c('b-form-checkbox',{staticClass:\"mt-1\",attrs:{\"name\":\"check-button\",\"switch\":\"\"},model:{value:(_vm.includeDistributions),callback:function ($$v) {_vm.includeDistributions=$$v},expression:\"includeDistributions\"}},[_vm._v(\" Include distributions \")])],1),(_vm.selectedLegalEntity || _vm.selectedTeam)?[_c('span',{staticClass:\"mt-1 ml-2\"},[_vm._v(\"Scope: \")]),(_vm.selectedLegalEntity)?[_c('b-badge',{staticClass:\"mt-1 ml-2\"},[_vm._v(_vm._s(_vm.selectedLegalEntity)+\" \"),_c('span',{staticClass:\"k-icon k-i-close\",on:{\"click\":function($event){_vm.selectedLegalEntity = null}}})])]:_vm._e(),(_vm.selectedTeam)?[_c('b-badge',{staticClass:\"mt-1 ml-2\"},[_vm._v(_vm._s(_vm.teams.find(function (x) { return x.teamId === _vm.selectedTeam; }).name)+\" \"),_c('span',{staticClass:\"k-icon k-i-close\",on:{\"click\":function($event){_vm.selectedTeam = null}}})])]:_vm._e()]:_vm._e()],2),_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"translate-key\":\"EXPORT_INVOICES\"},on:{\"click\":_vm.exportInvoices}})],1),_c('prd-grid-wrapper',{key:_vm.invoicesGrid,attrs:{\"data-items\":_vm.invoices,\"columns\":_vm.invoicesColumns,\"row-height\":34}})]],2)])]):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport to from 'await-to-js';\r\nimport { resultService, teamService, $router, roleHelper, periodService, loginHelper, ecosystemHelper, teamHelper, financeService } from '@/main';\r\nimport PageRender from '../../models/PageRender';\r\nimport jQuery from 'jquery';\r\nimport TeamResults from '@/models/Finance/Api/TeamResults';\r\nimport { orderBy } from '@progress/kendo-data-query';\r\nimport Team from '@/models/Team';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport EcosystemResults from '@/models/Finance/Api/TeamResults';\r\nimport { Invoice } from '@/models/Invoice';\r\nimport { saveExcel } from '@progress/kendo-vue-excel-export';\r\nimport moment from 'moment';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\n\r\n@Component\r\nexport default class EcosystemResultsComponent extends PageRender {\r\n public ecosystemResults: EcosystemResults = null;\r\n\r\n public currentTabComponent: string;\r\n public currentTab: string = null;\r\n public currentTeamData: any = new TeamResults();\r\n public previousCurrentTeamData: any = null;\r\n public isLoading: boolean = true;\r\n public numberOfMonths: number = 1;\r\n\r\n public teams: Team[] = [];\r\n\r\n public totalBalance: string = '';\r\n public totalResult: string = '';\r\n public totalExternalRevenue: string = '';\r\n public totalExtras: string = '';\r\n public totalExpenses: string = '';\r\n public expensesType: boolean = false;\r\n public includeDistributions: boolean = false;\r\n\r\n public previousTotalBalance: string = '';\r\n public previousTotalResult: string = '';\r\n public previousTotalExternalRevenue: string = '';\r\n public previousTotalExpenses: string = '';\r\n public previousTotalExtras: string = '';\r\n\r\n public reloadingResults: boolean = true;\r\n public reloadGrids: number = 0;\r\n public loadingGrids: boolean = false;\r\n\r\n public selectedTeams: number[] = [];\r\n public selectedTeam: number = null;\r\n public selectedLegalEntity: string = null;\r\n\r\n public updateTotals: number = 0;\r\n public teamPeriodStatusses: any = [];\r\n\r\n public invoicesColumns = [\r\n { title: 'INVOICE_ID', field: 'invoiceId' },\r\n { title: 'NAME', field: 'name', width: 300 },\r\n { title: 'DESCRIPTION', field: 'description', width: 300 },\r\n { title: 'AMOUNT', field: 'amount', cell: this.formatAmount },\r\n { title: 'REFERENCE', field: 'reference' },\r\n { title: 'INVOICE_DATE', field: 'invoiceDate', cell: this.renderInvoiceDate }, // cell: this.renderInvoiceDate },\r\n { title: 'INVOICE_TYPE', field: 'invoiceType' },\r\n { title: 'IS_RECURRING', field: 'isRecurring' },\r\n { title: 'LEGAL_ENTITY_REF', field: 'legalEntityReferenceOrigin', width: 180 },\r\n { title: 'PERIOD', field: 'periodId' },\r\n { title: 'SOURCE', field: 'source' },\r\n { title: 'TEAM', field: 'team' },\r\n ];\r\n\r\n public exportInvoicesGridColumns = [\r\n { title: 'INVOICE_ID', field: 'invoiceId' },\r\n { title: 'AMOUNT', field: 'amount' },\r\n { title: 'NAME', field: 'name' },\r\n { title: 'DESCRIPTION', field: 'description' },\r\n { title: 'REFERENCE', field: 'reference' },\r\n { title: 'INVOICE_DATE', field: 'invoiceDate' },\r\n { title: 'INVOICE_TYPE', field: 'invoiceType' },\r\n { title: 'IS_RECURRING', field: 'isRecurring' },\r\n { title: 'LEGAL_ENTITY_REF', field: 'legalEntityReferenceOrigin' },\r\n { title: 'PERIOD', field: 'periodId' },\r\n { title: 'SOURCE', field: 'source' },\r\n { title: 'TEAM', field: 'team' },\r\n ];\r\n\r\n public exportDistributedInvoicesGridColumns = [\r\n { title: 'INVOICE_ID', field: 'invoiceId' },\r\n { title: 'AMOUNT', field: 'amount' },\r\n { title: 'NAME', field: 'name' },\r\n { title: 'DESCRIPTION', field: 'description' },\r\n { title: 'REFERENCE', field: 'reference' },\r\n { title: 'INVOICE_DATE', field: 'invoiceDate' },\r\n { title: 'INVOICE_TYPE', field: 'invoiceType' },\r\n { title: 'IS_RECURRING', field: 'isRecurring' },\r\n { title: 'LEGAL_ENTITY_REF', field: 'legalEntityReferenceOrigin' },\r\n { title: 'PERIOD', field: 'periodId' },\r\n { title: 'SOURCE', field: 'source' },\r\n { title: 'TEAM', field: 'team' },\r\n { title: 'GROUP', field: 'group' },\r\n { title: 'OPEN_AMOUNT', field: 'openAmount' },\r\n ];\r\n\r\n public invoices: Invoice[] = [];\r\n public invoicesGrid: number = 0;\r\n\r\n public groupsData: any = [];\r\n public groupsDataColumns = [\r\n { field: 'group.name', title: 'GROUP_NAME', cell: this.renderEcosystemGroupLink, width: 300, locked: true },\r\n { field: 'startBalance', format: '{0:n2}', title: 'START_BALANCE', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'balance', format: '{0:n2}', title: 'BALANCE', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'income', format: '{0:n2}', title: 'INCOME', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'totalCosts', format: '{0:n2}', title: 'TOTAL_COSTS', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'result', format: '{0:n2}', title: 'RESULT', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'expenses', format: '{0:n2}', title: 'EXPENSES', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'nonRecurringExpenses', format: '{0:n2}', title: 'EXTRAS', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'openInvoiceAmount', format: '{0:n2}', title: 'OPEN_INVOICES', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'openExpenseAmount', format: '{0:n2}', title: 'OPEN_EXPENSES', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'externalRevenue', format: '{0:n2}', title: 'EXTERNAL_REVENUE', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'attributions', format: '{0:n2}', title: 'ATTRIBUTIONS', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'compensations', format: '{0:n2}', title: 'COMPENSATIONS', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n { field: 'transferredAmount', format: '{0:n2}', title: 'TRANSFERRED_AMOUNT', width: 150, footerCell: this.renderGroupResultsFooterCellSum },\r\n ];\r\n\r\n public membersData: any = [];\r\n public membersDataColumns = [\r\n { field: 'member', cell: this.renderMemberResult, title: 'MEMBER', width: 300, locked: true },\r\n { field: 'income', format: '{0:n2}', title: 'INCOME', width: 150, footerCell: this.renderMemberResultsFooterCellSum },\r\n { field: 'totalCosts', format: '{0:n2}', title: 'TOTAL_COSTS', width: 150, footerCell: this.renderMemberResultsFooterCellSum },\r\n { field: 'result', format: '{0:n2}', title: 'RESULT', width: 150, footerCell: this.renderMemberResultsFooterCellSum },\r\n { field: 'balance', format: '{0:n2}', title: 'BALANCE', width: 150, footerCell: this.renderMemberResultsFooterCellSum },\r\n { field: 'extras', format: '{0:n2}', title: 'EXTRAS', width: 150, footerCell: this.renderMemberResultsFooterCellSum },\r\n { field: 'expenses', format: '{0:n2}', title: 'EXPENSES', width: 150, footerCell: this.renderMemberResultsFooterCellSum },\r\n ];\r\n\r\n public overviewTeamColumns: any[] = [\r\n { field: 'teamName', title: 'TEAM', width: 300, filterable: false, cell: this.renderTeamNameWithPeriod, locked: true, className: 'bg-white' },\r\n {\r\n filterable: false,\r\n cell: this.renderStartBalance,\r\n title: 'START_BALANCE',\r\n field: 'startBalance',\r\n width: 160,\r\n footerCell: this.renderFooterCellSum,\r\n },\r\n { filterable: false, cell: this.renderBalance, title: 'BALANCE', field: 'balance', width: 160, footerCell: this.renderFooterCellSum },\r\n { filterable: false, cell: this.renderResult, title: 'RESULT', width: 160, footerCell: this.renderFooterCellSum, field: 'result' },\r\n {\r\n filterable: false,\r\n cell: this.renderExpenses,\r\n title: 'EXPENSES_RECURRING',\r\n width: 160,\r\n footerCell: this.renderFooterCellSum,\r\n field: 'expenses',\r\n },\r\n {\r\n filterable: false,\r\n cell: this.renderExtras,\r\n title: 'EXTRA_NON_RECURRING',\r\n width: 160,\r\n footerCell: this.renderFooterCellSum,\r\n field: 'extras',\r\n },\r\n {\r\n field: 'openInvoiceAmount',\r\n title: 'OPEN_INVOICES',\r\n filterable: false,\r\n cell: this.renderOpenInvoiceAmount,\r\n width: 160,\r\n footerCell: this.renderFooterCellSum,\r\n },\r\n {\r\n field: 'openExpenseAmount',\r\n title: 'OPEN_EXPENSES',\r\n filterable: false,\r\n cell: this.renderOpenExpensesAmount,\r\n width: 160,\r\n footerCell: this.renderFooterCellSum,\r\n },\r\n {\r\n field: 'groupOpenInvoiceAmount',\r\n title: 'OPEN_INVOICES_GROUP',\r\n filterable: false,\r\n cell: this.renderGroupOpenInvoiceAmount,\r\n width: 160,\r\n footerCell: this.renderFooterCellSum,\r\n },\r\n {\r\n field: 'groupOpenExpenseAmount',\r\n title: 'OPEN_EXPENSES_GROUP',\r\n filterable: false,\r\n cell: this.renderGroupOpenExpensesAmount,\r\n width: 160,\r\n footerCell: this.renderFooterCellSum,\r\n },\r\n {\r\n filterable: false,\r\n cell: this.renderExternalRevenue,\r\n title: 'EXTERNAL_REVENUE',\r\n width: 160,\r\n footerCell: this.renderFooterCellSum,\r\n field: 'externalRevenue',\r\n },\r\n { filterable: false, cell: this.renderDropDeadRatio, title: 'DROP_DEAD_RATIO', width: 150 },\r\n ];\r\n\r\n private currentDates: any = null;\r\n\r\n public async created() {\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee()) {\r\n await $router.push({ name: 'not-found' });\r\n }\r\n\r\n this.teams = await teamService.getTeams();\r\n\r\n this.teamPeriodStatusses = await periodService.getTeamPeriodStatusses();\r\n\r\n this.currentTab = 'invoices';\r\n this.isLoading = false;\r\n }\r\n\r\n public async recalculateResultsIncome(dates) {\r\n this.reloadingResults = true;\r\n this.currentDates = dates;\r\n\r\n const results = await resultService.getEcosystemResults(dates.fromFilterMonth, dates.toFilterMonth, this.selectedTeams);\r\n if (dates.fromFilterMonth !== dates.toFilterMonth) {\r\n this.numberOfMonths = 0;\r\n }\r\n\r\n this.ecosystemResults = results;\r\n this.reloadingResults = false;\r\n this.setTotals();\r\n\r\n this.loadGridData(this.currentTab);\r\n }\r\n\r\n public async reloadInvoices(dates) {\r\n this.reloadingResults = true;\r\n if (this.currentTab !== 'invoices') {\r\n return;\r\n }\r\n\r\n this.currentDates = dates;\r\n\r\n const results = await financeService.searchInvoices(\r\n dates.fromFilterMonth,\r\n dates.toFilterMonth,\r\n this.selectedTeam,\r\n this.selectedLegalEntity,\r\n this.expensesType ? InvoiceType.Expenses : InvoiceType.Income,\r\n this.includeDistributions,\r\n );\r\n\r\n if (this.includeDistributions && !this.invoicesColumns.find((x) => x.field === 'openAmount')) {\r\n this.invoicesColumns.splice(4, 0, {\r\n title: 'Open',\r\n field: 'openAmount',\r\n cell: this.renderOpenAmount,\r\n });\r\n } else if (!this.includeDistributions) {\r\n this.invoicesColumns = this.invoicesColumns.filter((x) => x.field !== 'openAmount');\r\n }\r\n\r\n this.invoices = results;\r\n this.reloadingResults = false;\r\n this.invoicesGrid++;\r\n }\r\n\r\n public async exportInvoices() {\r\n if (this.includeDistributions) {\r\n return this.exportDistributedInvoices();\r\n }\r\n\r\n saveExcel({\r\n data: this.invoices,\r\n fileName: `Team-${teamHelper.currentTeamId}-invoices-${moment().format('YYYY-MM-DD HH:mm:')}`,\r\n columns: this.exportInvoicesGridColumns,\r\n });\r\n }\r\n\r\n public exportDistributedInvoices() {\r\n const invoices = [];\r\n\r\n this.invoices.forEach((invoice) => {\r\n invoice.distributions.forEach((dist: any) => {\r\n invoices.push({\r\n ...invoice,\r\n group: dist.groupName,\r\n openAmount: dist.openAmount,\r\n });\r\n });\r\n });\r\n\r\n saveExcel({\r\n data: invoices,\r\n fileName: `Team-${teamHelper.currentTeamId}-invoices-${moment().format('YYYY-MM-DD HH:mm:')}`,\r\n columns: this.exportDistributedInvoicesGridColumns,\r\n });\r\n }\r\n\r\n public filterOnMembership(teams: Team[]) {\r\n const member = loginHelper.getUser();\r\n const myTeams = [];\r\n\r\n for (const team of teams) {\r\n if (member.teamMemberships.find((x) => x.id === team.teamId)) {\r\n myTeams.push(team);\r\n }\r\n }\r\n\r\n return myTeams;\r\n }\r\n\r\n public setTotals() {\r\n this.totalBalance = Vue.filter('number-format')(this.ecosystemResults.balance);\r\n this.totalResult = Vue.filter('number-format')(this.ecosystemResults.result);\r\n this.totalExternalRevenue = Vue.filter('number-format')(this.ecosystemResults.externalRevenue);\r\n this.totalExpenses = Vue.filter('number-format')(this.ecosystemResults.expenses);\r\n this.totalExtras = Vue.filter('number-format')(this.ecosystemResults.extras);\r\n }\r\n\r\n public renderBalance(h, _, row) {\r\n const props = { value: row.dataItem.balance };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderStartBalance(h, _, row) {\r\n const props = { value: row.dataItem.startBalance };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExpenses(h, _, row) {\r\n const props = { value: row.dataItem.expenses };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderResult(h, _, row) {\r\n const props = { value: row.dataItem.result };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExtras(h, _, row) {\r\n const props = { value: row.dataItem.extras };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExternalRevenue(h, _, row) {\r\n const props = { value: row.dataItem.externalRevenue };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderOpenInvoiceAmount(h, _, row) {\r\n const teamOpenInvoices = row.dataItem.openInvoiceAmount as number;\r\n const props = { value: teamOpenInvoices };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderOpenExpensesAmount(h, _, row) {\r\n const teamOpenExpenses = row.dataItem.openExpenseAmount as number;\r\n const props = { value: teamOpenExpenses };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderGroupOpenInvoiceAmount(h, _, row) {\r\n const groupOpenInvoiceAmount = row.dataItem.groupOpenInvoiceAmount as number;\r\n const props = { value: groupOpenInvoiceAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderGroupOpenExpensesAmount(h, _, row) {\r\n const groupOpenExpenseAmount = row.dataItem.groupOpenExpenseAmount as number;\r\n const props = { value: groupOpenExpenseAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderDropDeadRatio(h, _, row) {\r\n if (row.dataItem.safetyZone) {\r\n const props = { value: row.dataItem.safetyZone };\r\n return h(Vue.component('number-formatter'), { props });\r\n } else {\r\n return h('td', ['N/A']);\r\n }\r\n }\r\n\r\n public async getTeamPeriods(teamId: number) {\r\n const [err, periods] = await to(periodService.getPeriods(teamId));\r\n if (err) {\r\n this.showFailedResponse('Failed to load team periods', null);\r\n }\r\n\r\n return periods;\r\n }\r\n\r\n public loadGridData(currentTab: string) {\r\n if (currentTab === 'totals' || currentTab === 'invoices') {\r\n return;\r\n }\r\n\r\n const foundTeam = this.teams.find((x) => x.teamKey === currentTab);\r\n this.currentTeamData = this.ecosystemResults.teamResults.find((team) => team.teamId === foundTeam.teamId);\r\n\r\n if (this.currentTeamData) {\r\n const groupDataSorted = orderBy(this.currentTeamData.groupResults, [{ field: 'name', dir: 'asc' }]);\r\n this.groupsData = groupDataSorted;\r\n\r\n const memberDataSorted = orderBy(this.currentTeamData.memberResults, [{ field: 'name', dir: 'asc' }]);\r\n this.membersData = memberDataSorted;\r\n } else {\r\n this.membersData = [];\r\n this.groupsData = [];\r\n }\r\n\r\n this.loadingGrids = false;\r\n }\r\n\r\n public teamOptions() {\r\n return this.teams.map((team) => {\r\n return { text: team.name, value: team.teamId };\r\n });\r\n }\r\n\r\n public legalEntitiesOptions() {\r\n const teams = this.teams.filter((x) => x.legalEntityReference);\r\n\r\n const list = [];\r\n\r\n teams.forEach((team) => {\r\n if (!list.find((y) => y.value === team.legalEntityReference)) {\r\n list.push({ text: `${team.legalEntityReference}`, value: team.legalEntityReference });\r\n }\r\n });\r\n\r\n return list;\r\n }\r\n\r\n public getEcologyOverviewData() {\r\n this.ecosystemResults.teamResults.forEach((team) => {\r\n const apiTeam = this.teams.find((x) => x.teamId === team.teamId);\r\n if (apiTeam) {\r\n team.name = apiTeam.name;\r\n } else {\r\n team.name = `team name non-found (teamId: ${team.teamId})`;\r\n }\r\n });\r\n\r\n return orderBy(this.ecosystemResults.teamResults, [{ field: 'name', dir: 'asc' }]);\r\n }\r\n\r\n public getTeamBalance() {\r\n return Vue.filter('number-format')(this.currentTeamData ? this.currentTeamData.balance : 0);\r\n }\r\n\r\n public getTeamResult() {\r\n return Vue.filter('number-format')(this.currentTeamData ? this.currentTeamData.result : 0);\r\n }\r\n\r\n public getTeamOpenInvocies() {\r\n return Vue.filter('number-format')(this.currentTeamData ? this.currentTeamData.openInvoiceAmount : 0);\r\n }\r\n\r\n public getTeamOpenExpenses() {\r\n return Vue.filter('number-format')(this.currentTeamData ? this.currentTeamData.openExpenseAmount * -1 : 0);\r\n }\r\n\r\n public getTeamExpenses() {\r\n return Vue.filter('number-format')(this.currentTeamData ? this.currentTeamData.expenses * -1 : 0);\r\n }\r\n\r\n public getGroupOpenExpenses() {\r\n return Vue.filter('number-format')(this.currentTeamData ? this.currentTeamData.groupOpenExpenseAmount * -1 : 0);\r\n }\r\n\r\n public getGroupOpenInvoices() {\r\n return Vue.filter('number-format')(this.currentTeamData ? this.currentTeamData.groupOpenInvoiceAmount : 0);\r\n }\r\n\r\n public getTeamExtras() {\r\n return Vue.filter('number-format')(this.currentTeamData ? this.currentTeamData.extras * -1 : 0);\r\n }\r\n\r\n public getDropDeadRatio() {\r\n if (this.currentTeamData && this.currentTeamData.safetyZone) {\r\n return Vue.filter('number-format')(this.currentTeamData.safetyZone);\r\n }\r\n\r\n return 'N/A';\r\n }\r\n\r\n public async changeTab(tab: string) {\r\n if (!this.teams) {\r\n return;\r\n }\r\n\r\n this.doActiveClass(tab);\r\n this.currentTab = tab;\r\n this.loadingGrids = true;\r\n\r\n if (this.currentTab !== 'invoices') {\r\n if (!this.ecosystemResults) {\r\n await this.recalculateResultsIncome(this.currentDates);\r\n }\r\n }\r\n\r\n if (this.currentTab !== 'totals' && this.currentTab !== 'invoices') {\r\n this.$nextTick(() => {\r\n this.loadGridData(this.currentTab);\r\n });\r\n } else {\r\n this.reloadGrids++;\r\n this.loadingGrids = false;\r\n }\r\n }\r\n\r\n public doActiveClass(tab: string) {\r\n this.$nextTick(() => {\r\n jQuery('.nav-link').removeClass('active');\r\n jQuery('.' + tab).addClass('active');\r\n });\r\n }\r\n\r\n public renderMemberResult(h, _row, item: any): any {\r\n return h('td', [item.dataItem.name]);\r\n }\r\n\r\n public calculateGroupGridHeight() {\r\n return { height: `${100 + (this.currentTeamData ? this.currentTeamData.groupResults.length : 1) * 40}px` };\r\n }\r\n\r\n public calculateMemberGridHeight() {\r\n return { height: `${100 + (this.currentTeamData ? this.currentTeamData.memberResults.length : 1) * 40}px` };\r\n }\r\n\r\n public calculateTotalsHeight() {\r\n return { height: `${100 + this.ecosystemResults.teamResults.length * 40}px` };\r\n }\r\n\r\n public renderFooterCellSum(h, _, row) {\r\n const total = this.ecosystemResults.teamResults.reduce((acc: number, current) => acc + (current[row.field] as number), 0);\r\n const props = { value: total };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderMemberResultsFooterCellSum(h, _, row) {\r\n const total = this.membersData.reduce((acc: number, current) => acc + (current[row.field] as number), 0);\r\n const props = { value: total };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderGroupResultsFooterCellSum(h, _, row) {\r\n const total = this.groupsData.reduce((acc: number, current) => acc + (current[row.field] as number), 0);\r\n const props = { value: total };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderOpenAmount(h, _, row) {\r\n let openAmount = 0;\r\n\r\n openAmount = row.dataItem.distributions.reduce((a, b) => a + b.openAmount, 0);\r\n\r\n const props = { value: openAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public formatAmount(h, _, row) {\r\n const props = { value: row.dataItem.amount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderInvoiceDate(h, _, row) {\r\n return h('td', [moment(row.dataItem.invoiceDate, 'YYYY-MM-DD').format('DD-MM-YYYY')]);\r\n }\r\n\r\n private renderTeamNameWithPeriod(h, _, row) {\r\n const teamId = row.dataItem.teamId;\r\n const periodStatus = this.teamPeriodStatusses.find((team) => team.teamId === teamId);\r\n const foundTeam = this.teams.find((team) => team.teamId === teamId);\r\n\r\n if (!periodStatus || !foundTeam) {\r\n return h('td', [`Team not found (teamId: ${teamId})`]);\r\n }\r\n\r\n return h('td', [`${foundTeam.name} ${periodStatus && periodStatus.closed ? '(closed)' : '(open)'}`]);\r\n }\r\n\r\n private renderEcosystemGroupLink(h, _, row): any {\r\n const groupId = row.dataItem.groupId;\r\n const groupName = row.dataItem.name;\r\n const groupKey = row.dataItem.groupKey;\r\n let group;\r\n\r\n let team = this.teams.find((x) => {\r\n return x.groups.filter((y) => y.groupId === groupId).length > 0;\r\n });\r\n\r\n if (team) {\r\n group = team.groups.find((x) => x.groupId === groupId);\r\n } else {\r\n team = this.teams.find((x) => x.teamKey === this.currentTab);\r\n }\r\n\r\n teamHelper.setTeamByTeamId(team.teamId);\r\n\r\n const routeUrl = $router.resolve({\r\n name: 'team-finances-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n groupKey: groupKey ? groupKey : group ? group.groupKey : `not-found`,\r\n groupId,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'insights',\r\n period: periodModule.selectedPeriod,\r\n },\r\n }).href;\r\n\r\n const props = {\r\n text: groupName ? groupName : group ? group.name : `Group not found (id: ${groupId})`,\r\n url: routeUrl,\r\n };\r\n\r\n return h(Vue.component('grid-router-link'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./finances.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./finances.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./finances.vue?vue&type=template&id=061328b8&\"\nimport script from \"./finances.ts?vue&type=script&lang=js&\"\nexport * from \"./finances.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('prd-toolbar',{staticClass:\"justify-content-between\"},[_c('div',{staticClass:\"col-2\"},[_c('multiselect',{attrs:{\"options\":_vm.views,\"placeholder\":\"Select a view\",\"track-by\":\"insightViewId\",\"label\":\"name\",\"hideSelected\":true,\"showLabels\":false,\"allowEmpty\":false,\"disabled\":_vm.isLoading},model:{value:(_vm.selectedView),callback:function ($$v) {_vm.selectedView=$$v},expression:\"selectedView\"}})],1),_c('grid-period-range-filter',{on:{\"filter-change\":_vm.reloadInsights}}),_c('div',{staticClass:\"col-2\"},[_c('multiselect',{attrs:{\"options\":_vm.lenses,\"multiple\":true,\"placeholder\":\"Select a lens\",\"track-by\":\"slug\",\"label\":\"name\",\"disabled\":!_vm.selectedView,\"showLabels\":false},model:{value:(_vm.selectedLenses),callback:function ($$v) {_vm.selectedLenses=$$v},expression:\"selectedLenses\"}})],1)],1),(_vm.lensesData.length === 0 && !_vm.isLoading)?_c('div',[_c('b-card',{staticClass:\"w-100 text-center\"},[_c('p',{staticClass:\"mb-5\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"INSIGHTS_INTRO\"}})],1),_c('pre',{staticStyle:{\"line-height\":\"0.5\",\"overflow-y\":\"hidden\"}},[_vm._v(\" 88 88 88 \\n \\\"\\\" \\\"\\\" 88 ,d \\n 88 88 \\n 88 8b,dPPYba, ,adPPYba, 88 ,adPPYb,d8 88,dPPYba, MM88MMM ,adPPYba, \\n 88 88P' `\\\"8a I8[ \\\"\\\" 88 a8\\\" `Y88 88P' \\\"8a 88 I8[ \\\"\\\" \\n 88 88 88 `\\\"Y8ba, 88 8b 88 88 88 88 `\\\"Y8ba, \\n 88 88 88 aa ]8I 88 \\\"8a, ,d88 88 88 88, aa ]8I \\n 88 88 88 `\\\"YbbdP\\\"' 88 `\\\"YbbdP\\\"Y8 88 88 \\\"Y888 `\\\"YbbdP\\\"' \\n aa, ,88 \\n \\\"Y8bbdP\\\" \\n \")])])],1):_vm._e(),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-10 min-vh-25\",attrs:{\"id\":\"graph\"}}),_c('div',{staticClass:\"col-2\"},[(_vm.lensesData.length > 0 && !_vm.isLoading)?_c('b-card',{staticClass:\"w-100 h-100\",scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h3',[_vm._v(_vm._s(_vm.content))])]},proxy:true}],null,false,237156266)},[_c('b-card-body',[(_vm.edgesToShowContentOfDestination.length > 0)?_c('h6',{staticClass:\"font-italic\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"INCOMING_FROM\"}})],1):_vm._e(),_vm._l((_vm.edgesToShowContentOfDestination),function(edge){return _c('div',[_vm._v(\" \"+_vm._s(_vm.getOriginName(edge.origin))+\" | \"),_c('strong',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(edge.total)))]),_c('span',{staticClass:\"k-icon k-i-arrow-60-up text-success\"})])}),(_vm.edgesToShowContentOfOrigin.length > 0)?_c('h6',{staticClass:\"font-italic\",class:{ 'mt-5': _vm.edgesToShowContentOfDestination.length > 0 }},[_c('prd-translate-text',{attrs:{\"translate-key\":\"OUTGOING_TO\"}})],1):_vm._e(),_vm._l((_vm.edgesToShowContentOfOrigin),function(edge){return _c('div',[_vm._v(\" \"+_vm._s(_vm.getDestinationName(edge.destination))+\" | \"),_c('strong',[_vm._v(_vm._s(_vm._f(\"numberFormat\")(edge.total)))]),_c('span',{staticClass:\"k-icon k-i-arrow-60-down text-error\"})])})],2)],1):_vm._e()],1)]),(_vm.isLoading && _vm.selectedLenses.length > 0)?_c('div',[_c('h2',{staticClass:\"text-center\"},[_c('spinner',{attrs:{\"center\":\"true\"}}),_vm._v(\" Gathering insights...\")],1)]):_vm._e(),(!_vm.isLoading && _vm.selectedLenses.length > 0)?[(_vm.lensesData.length > 0)?_c('div',{staticClass:\"w-100\"},[_c('b-card',{staticClass:\"my-5\"},[_c('b-card-header',[_c('h2',[_vm._v(\"Insight Totals\")])]),_vm._l((_vm.lensesData),function(lense){return [(lense.slug === 'ecosystem-cash')?_c('multiselect',{staticClass:\"w-25 float-right\",attrs:{\"options\":_vm.paymentTerms,\"placeholder\":\"Select a payment terms\",\"track-by\":\"value\",\"label\":\"name\",\"showLabels\":false},model:{value:(_vm.paymentTerm),callback:function ($$v) {_vm.paymentTerm=$$v},expression:\"paymentTerm\"}}):_vm._e(),_c(_vm.getComponentName(lense.slug),{key:'component_' + lense.slug + '_totals',tag:\"component\",attrs:{\"data\":_vm.getLenseData(lense.slug),\"table-data\":_vm.getTableData(lense.slug),\"lense\":lense}})]}),(_vm.hasCO2LenseSelected)?_c('ecosystem-co2-totals'):_vm._e(),(_vm.multiplePeriodsSelected)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-button',{staticClass:\"w-25 d-block\",attrs:{\"size\":\"sm\",\"variant\":\"link\"},on:{\"click\":function($event){_vm.showVisuals = !_vm.showVisuals}}},[_vm._v(\" \"+_vm._s(!_vm.showVisuals ? 'View visualizations' : 'Hide visualizations')+\" \")])],1):_vm._e(),(_vm.multiplePeriodsSelected && _vm.showVisuals)?_c('div',{staticClass:\"row\"},[(_vm.hasFinanceLenseSelected)?_c('div',{staticClass:\"col-6\"},[_c('b-card',[_c('GChart',{attrs:{\"type\":\"LineChart\",\"data\":_vm.getChartDataForLens('ecosystem-finance', null, ['result', 'balance', 'externalRevenue']),\"options\":{\n title: 'Finance',\n interpolateNulls: true,\n height: 400,\n }}})],1)],1):_vm._e(),_c('div',{staticClass:\"col-6\"},[_c('b-card',[_c('GChart',{attrs:{\"type\":\"BarChart\",\"data\":_vm.getTeamRevenueParts('ecosystem-finance', null, ['safetyZone']),\"options\":{\n title: 'External revenue team distribution',\n interpolateNulls: true,\n height: 400,\n legend: { position: 'top', maxLines: 3 },\n bar: { groupWidth: '75%' },\n isStacked: true,\n }}})],1)],1)]):_vm._e()],2),_vm._l((_vm.availableTeams),function(team){return _c('b-card',{key:team.teamId,staticClass:\"my-5\"},[_c('b-card-header',[_c('h2',[_vm._v(_vm._s(_vm.getTeamName(team.teamId)))])]),_vm._l((_vm.lensesData),function(lense){return [_c(_vm.getComponentName(lense.slug),{key:'component_' + lense.slug + '_' + team.teamId,tag:\"component\",attrs:{\"data\":_vm.getLenseData(lense.slug, team.teamId),\"team\":team,\"table-data\":_vm.getTableData(lense.slug, team.teamId),\"lense\":lense}})]}),(_vm.hasFearlessLenseSelected)?_c('ecosystem-fearless-totals',{attrs:{\"data\":_vm.getLenseData('ecosystem-fearless', team.teamId)}}):_vm._e(),(_vm.multiplePeriodsSelected)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('b-button',{staticClass:\"w-25 d-block\",attrs:{\"size\":\"sm\",\"variant\":\"link\"},on:{\"click\":function($event){team.visuals = !team.visuals}}},[_vm._v(\" \"+_vm._s(!team.visuals ? 'View visualizations' : 'Hide visualizations')+\" \")])],1):_vm._e(),(_vm.multiplePeriodsSelected && team.visuals)?_c('div',{staticClass:\"row\"},[(_vm.hasFinanceLenseSelected)?_c('div',{staticClass:\"col-6\"},[_c('b-card',[_c('GChart',{attrs:{\"type\":\"LineChart\",\"data\":_vm.getChartDataForLens('ecosystem-finance', team.teamId, ['result', 'balance', 'externalRevenue']),\"options\":{\n title: 'Finance',\n interpolateNulls: true,\n height: 400,\n }}})],1)],1):_vm._e(),_c('div',{staticClass:\"col-6\"},[_c('b-card',[_c('GChart',{attrs:{\"type\":\"LineChart\",\"data\":_vm.getChartDataForLens('ecosystem-finance', team.teamId, ['safetyZone']),\"options\":{\n title: 'Financial Safety zone',\n interpolateNulls: true,\n height: 400,\n }}})],1)],1)]):_vm._e()],2)})],2):_vm._e()]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import PageRender from '@/models/PageRender';\r\nimport { Svg } from '@svgdotjs/svg.js';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\nimport { Component } from 'vue-property-decorator';\r\nimport '@svgdotjs/svg.draggable.js';\r\nimport moment from 'moment';\r\nimport svgPanZoom from 'svg-pan-zoom';\r\nimport { insightService, mapService, teamService } from '@/main';\r\nimport Team from '@/models/Team';\r\nimport IMapSetting from '@/models/Map/IMapSettings';\r\nimport GraphData from '@/models/Graph/GraphData';\r\nimport { translateModule } from '@/store/modules/translate';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class InsightsComponent extends PageRender {\r\n public teams: Team[] = [];\r\n public canvas: Svg = null;\r\n public panZoomInstance: SvgPanZoom.Instance = null;\r\n public point: SvgPanZoom.Point = null;\r\n public selectedView: any = null;\r\n public selectedLenses: any[] = [];\r\n public views: any[] = [];\r\n public lenses: any[] = [];\r\n public graphData: GraphData = new GraphData();\r\n public lensesData: any[] = [];\r\n public chartData: any[] = [];\r\n public showVisuals: boolean = false;\r\n\r\n public lines = [\r\n { text: 'Results', value: 'results' },\r\n { text: 'Balance', value: 'balance' },\r\n { text: 'Safety Zone', value: 'safetyZone' },\r\n { text: 'External Revenue', value: 'externalRevenue' },\r\n { text: 'Expenses', value: 'expenses' },\r\n ];\r\n\r\n public selectedLines: any[] = [];\r\n public chartsLib = null;\r\n public chartsLibBar = null;\r\n public multiplePeriodsSelected: boolean = false;\r\n public target: string = '';\r\n public content: string = translateModule.value('HOVER_INSIGHTS');\r\n public edgesToShowContentOfDestination: any[] = [];\r\n public edgesToShowContentOfOrigin: any[] = [];\r\n public availableTeamsList = [];\r\n public paymentTerm: any = { value: 0, name: 'Zero days' };\r\n\r\n private mapSettings: IMapSetting[] = [];\r\n\r\n public get hasFinanceLenseSelected() {\r\n return this.selectedLenses.find((x) => x.slug === 'ecosystem-finance');\r\n }\r\n\r\n public get hasCO2LenseSelected() {\r\n return this.selectedLenses.find((x) => x.slug === 'co2');\r\n }\r\n\r\n public get hasFearlessLenseSelected() {\r\n return this.selectedLenses.find((x) => x.slug === 'fearless');\r\n }\r\n\r\n public get paymentTerms() {\r\n return [\r\n { value: 0, name: 'Zero days' },\r\n { value: 14, name: '14 Days' },\r\n { value: 30, name: '30 Days' },\r\n { value: 60, name: '60 Days' },\r\n { value: 90, name: '90 Days' },\r\n ];\r\n }\r\n\r\n public get availableTeams() {\r\n if (!this.lensesData) {\r\n return [{ teamId: null, expanded: false, visuals: false }];\r\n }\r\n\r\n return this.availableTeamsList;\r\n }\r\n\r\n public chartOptionsBar() {\r\n if (!this.chartsLibBar) {\r\n return null;\r\n }\r\n\r\n return this.chartsLibBar.charts.Bar.convertOptions({\r\n chart: {\r\n title: 'Ecosystem Team Finances',\r\n subtitle: 'Result, balance, etc per period',\r\n },\r\n height: 800,\r\n });\r\n }\r\n\r\n public createBarChart(el, google) {\r\n this.chartsLibBar = google;\r\n return new this.chartsLibBar.charts.Bar(el);\r\n }\r\n\r\n public createLineChart(el, google) {\r\n this.chartsLib = google;\r\n return new this.chartsLib.charts.Line(el);\r\n }\r\n\r\n public async mounted() {\r\n await this.loadPersonalViews();\r\n await this.loadLenses();\r\n this.mapSettings = await mapService.getSettings();\r\n this.teams = await teamService.getTeams();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async reloadInsights(dates) {\r\n this.isLoading = true;\r\n\r\n this.multiplePeriodsSelected = dates.fromFilterMonth !== dates.toFilterMonth;\r\n\r\n await this.loadLens(dates);\r\n\r\n if (this.lensesData.length === 0) {\r\n return;\r\n }\r\n\r\n if (this.panZoomInstance) {\r\n this.panZoomInstance.destroy();\r\n delete this.panZoomInstance;\r\n\r\n this.canvas.clear();\r\n }\r\n this.initCanvas();\r\n this.baseStructure();\r\n this.plotTeams();\r\n this.plotRevenue();\r\n\r\n this.$nextTick(() => {\r\n this.panZoomInstance = svgPanZoom('#svg-container', {\r\n panEnabled: true,\r\n controlIconsEnabled: true,\r\n });\r\n\r\n this.panZoomInstance.zoom(1.2);\r\n });\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public showRelatedElements(id) {\r\n this.content = '';\r\n\r\n this.edgesToShowContentOfDestination = [];\r\n this.edgesToShowContentOfOrigin = [];\r\n\r\n this.graphData.edgePaths.forEach((x) => {\r\n x.stroke({ color: 'rgba(0,0,0,0)' });\r\n });\r\n\r\n this.graphData.edges\r\n .filter((x) => x.origin === id || x.destination === id)\r\n .forEach((edge) => {\r\n const path = this.graphData.edgePaths.find((x) => x.id() === `edge-${edge.origin}-${edge.destination}`);\r\n if (path) {\r\n if (edge.destination === id) {\r\n path.stroke({ color: `rgba(0,128,0,0.3)` });\r\n } else {\r\n path.stroke({ color: `rgba(255,0,0,0.3)` });\r\n }\r\n }\r\n\r\n let name = this.getOriginName(id);\r\n if (!name) {\r\n name = this.getDestinationName(id);\r\n }\r\n\r\n this.content = name;\r\n\r\n if (edge.destination === id) {\r\n this.edgesToShowContentOfDestination.push(edge);\r\n } else {\r\n this.edgesToShowContentOfOrigin.push(edge);\r\n }\r\n });\r\n }\r\n\r\n public showAllEdges() {\r\n this.graphData.edgePaths.forEach((x) => {\r\n x.stroke({ color: 'rgba(0,0,0,0.3)' });\r\n });\r\n }\r\n\r\n public plotTeams() {\r\n this.graphData.edges = [];\r\n this.graphData.edgePaths = [];\r\n\r\n for (let j = 0; j < this.lensesData.length; j++) {\r\n const lense = this.lensesData[j];\r\n\r\n if (lense && lense.graph) {\r\n for (let i = 0; i < lense.graph.nodes.length; i++) {\r\n const vertex = lense.graph.nodes[i];\r\n const teamSettings = this.mapSettings.find((x) => x.team === vertex.id);\r\n\r\n vertex.x = teamSettings.x;\r\n vertex.y = teamSettings.y;\r\n vertex.radius = teamSettings.radius;\r\n\r\n const group = this.canvas.group();\r\n\r\n const vertexCircle = this.canvas.circle(vertex.radius).fill('#0f0');\r\n vertexCircle.attr({ cx: vertex.x, cy: vertex.y, opacity: '0.2', name: vertex.name, id: vertex.id, class: 'cursor-pointer' });\r\n\r\n const text = this.canvas.text(vertex.name);\r\n const textBbox = text.bbox();\r\n text.move(vertex.x - textBbox.width / 2, vertex.y - textBbox.height - vertex.radius / 2);\r\n\r\n group.add(vertexCircle);\r\n group.add(text);\r\n\r\n group.on('mouseover', () => {\r\n this.showRelatedElements(vertexCircle.id());\r\n });\r\n group.on('mouseout', () => {\r\n this.showAllEdges();\r\n });\r\n\r\n this.graphData.vertices[vertex.id] = vertex;\r\n this.graphData.vertexPaths[vertex.id] = group;\r\n }\r\n\r\n for (let i = 0; i < lense.graph.edges.length; i++) {\r\n const edge = lense.graph.edges[i];\r\n this.drawEdge(edge);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public drawEdge(edge) {\r\n const v1 = this.graphData.vertices[edge.origin];\r\n const v2 = this.graphData.vertices[edge.destination];\r\n\r\n if (!v1 || !v2) {\r\n return;\r\n }\r\n\r\n const startx = v1.x;\r\n const starty = v1.y - v1.radius / 3;\r\n\r\n const endx = v2.x;\r\n // tslint:disable: restrict-plus-operands\r\n const endy = v2.y + v2.radius / 3;\r\n\r\n const mpx = (startx + endx) * 0.5;\r\n const mpy = (starty + endy) * 0.5;\r\n\r\n // angle of perpendicular to line:\r\n const theta = Math.atan2(endy - starty, endx - startx) - Math.PI / 2;\r\n\r\n // distance of control point from mid-point of line:\r\n const offset = 30; // random(20, 50);\r\n\r\n // location of control point:\r\n const c1x = mpx + offset * Math.cos(theta);\r\n const c1y = mpy + offset * Math.sin(theta);\r\n\r\n const path = this.canvas.path(`M${startx} ${starty} Q${c1x} ${c1y} ${endx} ${endy}`);\r\n path.stroke({ color: 'rgba(0,0,0,0.3)', width: 5, linecap: 'round' })\r\n .attr({ fill: 'transparent' })\r\n .attr('id', `edge-${edge.origin}-${edge.destination}`);\r\n\r\n this.graphData.edges.push(edge);\r\n this.graphData.edgePaths.push(path);\r\n }\r\n\r\n public plotRevenue() {\r\n this.lensesData.forEach((lense) => {\r\n if (lense && lense.totals) {\r\n lense.totals.teamTotals.forEach((team) => {\r\n const externalRevenue = this.getTableValue(team.teamId, 'externalRevenue');\r\n if (externalRevenue) {\r\n this.drawEdge({ destination: team.teamId, origin: 'ext_revenue', total: externalRevenue });\r\n }\r\n\r\n const memberCosts = this.getTableValue(team.teamId, 'memberExpenses');\r\n const memberCostsExtra = this.getTableValue(team.teamId, 'memberNonRecurringExpenses');\r\n if (memberCosts || memberCostsExtra) {\r\n this.drawEdge({ origin: team.teamId, destination: 'member_costs', total: memberCosts + memberCostsExtra });\r\n }\r\n\r\n const groupCosts = this.getTableValue(team.teamId, 'groupExpenses');\r\n const groupCostsExtra = this.getTableValue(team.teamId, 'groupNonRecurringExpenses');\r\n if (groupCosts || groupCostsExtra) {\r\n this.drawEdge({ origin: team.teamId, destination: 'group_costs', total: groupCosts + groupCostsExtra });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public async loadPersonalViews() {\r\n if (this.views.length === 0) {\r\n this.views = await insightService.getViews(true);\r\n }\r\n }\r\n\r\n public async loadLenses() {\r\n this.lenses = await insightService.getLenses();\r\n\r\n this.lenses.push({ slug: 'co2', name: 'CO2 footprint' });\r\n this.lenses.push({ slug: 'fearless', name: 'Fearless PSI (demo)' });\r\n }\r\n\r\n public async loadLens(dates) {\r\n if (this.selectedLenses.length > 0) {\r\n this.lensesData = [];\r\n\r\n for (let i = 0; i < this.selectedLenses.length; i++) {\r\n if (this.selectedLenses[i].slug === 'co2' || this.selectedLenses[i].slug === 'fearless') {\r\n continue;\r\n }\r\n\r\n const lense = await insightService.getLens(\r\n this.selectedLenses[i].slug,\r\n this.selectedView.insightViewId,\r\n dates,\r\n this.selectedLenses[i].slug === 'ecosystem-cash' ? this.paymentTerm.value : null,\r\n );\r\n this.lensesData.push(lense.data);\r\n\r\n if (i === 0) {\r\n this.availableTeamsList = [];\r\n lense.data.totals.teamTotals.forEach((x) => {\r\n this.availableTeamsList.push({\r\n teamId: x.teamId,\r\n expanded: false,\r\n visuals: false,\r\n });\r\n });\r\n\r\n if (\r\n !this.availableTeamsList.length &&\r\n lense.data.table.results &&\r\n lense.data.table.results.items &&\r\n lense.data.table.results.items.length > 0\r\n ) {\r\n lense.data.table.results.items[0].item.teamResults.forEach((x) => {\r\n this.availableTeamsList.push({\r\n teamId: x.teamId,\r\n expanded: false,\r\n visuals: false,\r\n });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public initCanvas() {\r\n if (!this.canvas) {\r\n this.canvas = SVG()\r\n .addTo('#graph')\r\n .size(this.calculateGraphWidth(), this.calculateGraphHeight())\r\n .attr('id', 'svg-container')\r\n .addClass('svg-container');\r\n } else {\r\n this.canvas.clear();\r\n }\r\n }\r\n\r\n public baseStructure() {\r\n const petriCircle = this.canvas.circle(2000);\r\n petriCircle.attr({ cx: 0, cy: 0, 'fill-opacity': 0, stroke: '#32e875', 'stroke-width': 5 });\r\n\r\n const group = this.canvas.group();\r\n\r\n const elipse = this.canvas\r\n .ellipse(400, 200)\r\n .fill('#f06')\r\n .attr({ opacity: '0.1', id: 'ext_revenue', class: 'cursor-pointer' })\r\n .move(-1400, -100);\r\n const externalRevenueText = this.canvas.text('External revenue').attr({ 'font-size': 30 });\r\n const externalRevenueTextBox = externalRevenueText.bbox();\r\n externalRevenueText.move(\r\n (elipse.x() as number) + (elipse.width() as number) / 2 - externalRevenueTextBox.width / 2,\r\n (elipse.y() as number) + (elipse.height() as number) / 2 - externalRevenueTextBox.height / 2,\r\n );\r\n\r\n group.add(externalRevenueText);\r\n group.add(elipse);\r\n\r\n group.on('mouseover', () => {\r\n this.showRelatedElements(elipse.id());\r\n });\r\n group.on('mouseout', () => {\r\n this.showAllEdges();\r\n });\r\n\r\n const group2 = this.canvas.group();\r\n const elipse2 = this.canvas\r\n .ellipse(400, 200)\r\n .fill('#f06')\r\n .attr({ opacity: '0.1', id: 'member_costs', class: 'cursor-pointer' })\r\n .move(750, -800);\r\n const memberCostsText = this.canvas.text('Member costs').attr({ 'font-size': 30 });\r\n const memberCostsTextBox = memberCostsText.bbox();\r\n memberCostsText.move(\r\n (elipse2.x() as number) + (elipse2.width() as number) / 2 - memberCostsTextBox.width / 2,\r\n (elipse2.y() as number) + (elipse2.height() as number) / 2 - memberCostsTextBox.height / 2,\r\n );\r\n\r\n group2.add(memberCostsText);\r\n group2.add(elipse2);\r\n\r\n group2.on('mouseover', () => {\r\n this.showRelatedElements(elipse2.id());\r\n });\r\n group2.on('mouseout', () => {\r\n this.showAllEdges();\r\n });\r\n\r\n const group3 = this.canvas.group();\r\n const elipse3 = this.canvas\r\n .ellipse(400, 200)\r\n .fill('#f06')\r\n .attr({ opacity: '0.1', id: 'group_costs', class: 'cursor-pointer' })\r\n .move(750, 600);\r\n const groupCostsText = this.canvas.text('Group costs').attr({ 'font-size': 30 });\r\n const groupCostsTextBox = groupCostsText.bbox();\r\n groupCostsText.move(\r\n (elipse3.x() as number) + (elipse3.width() as number) / 2 - groupCostsTextBox.width / 2,\r\n (elipse3.y() as number) + (elipse3.height() as number) / 2 - groupCostsTextBox.height / 2,\r\n );\r\n\r\n group3.add(groupCostsText);\r\n group3.add(elipse3);\r\n\r\n group3.on('mouseover', () => {\r\n this.showRelatedElements(elipse3.id());\r\n });\r\n group3.on('mouseout', () => {\r\n this.showAllEdges();\r\n });\r\n\r\n // tslint:disable: no-string-literal\r\n this.graphData.vertexPaths['ext_revenue'] = elipse;\r\n this.graphData.vertices['ext_revenue'] = {\r\n id: 'ext_revenue',\r\n x: (elipse.x() as number) + 400,\r\n y: (elipse.y() as number) + 100,\r\n name: 'External revenue',\r\n radius: 0,\r\n };\r\n\r\n this.graphData.vertexPaths['member_costs'] = elipse2;\r\n this.graphData.vertices['member_costs'] = {\r\n id: 'member_costs',\r\n x: elipse2.x(),\r\n y: (elipse2.y() as number) + 100,\r\n name: 'Member costs',\r\n radius: 0,\r\n };\r\n this.graphData.vertexPaths['group_costs'] = elipse3;\r\n this.graphData.vertices['group_costs'] = {\r\n id: 'group_costs',\r\n x: elipse3.x(),\r\n y: (elipse3.y() as number) + 100,\r\n name: 'Group costs',\r\n radius: 0,\r\n };\r\n }\r\n\r\n public getComponentName(slug) {\r\n return `${slug}-totals`;\r\n }\r\n\r\n public getLenseData(slug, teamId?: number) {\r\n let tableData:any;\r\n\r\n if (slug === 'ecosystem-finance') {\r\n const lenseData = this.lensesData.find((x) => x.slug === slug);\r\n if (!teamId) {\r\n if (lenseData) {\r\n tableData = lenseData.totals;\r\n }\r\n\r\n return tableData;\r\n }\r\n\r\n if (lenseData) {\r\n tableData = lenseData.totals.teamTotals.find((y) => y.teamId === teamId);\r\n }\r\n\r\n return tableData;\r\n }\r\n\r\n const lens = this.lensesData.find((x) => x.slug === slug);\r\n if (lens && lens.table && lens.table.results && lens.table.results.items && lens.table.results.items.length > 0) {\r\n if (!teamId) {\r\n tableData = lens.table.results.items[0].item;\r\n tableData.startBalance = lens.table.results.items[lens.table.results.items.length - 1].item.startBalance;\r\n } else {\r\n tableData = lens.table.results.items[0].item.teamResults.find((y) => y.teamId === teamId);\r\n tableData.startBalance = lens.table.results.items[lens.table.results.items.length - 1].item.startBalance;\r\n }\r\n }\r\n\r\n return tableData;\r\n }\r\n\r\n public getTableData(slug, teamId) {\r\n let tableData: any;\r\n const lens = this.lensesData.find((x) => x.slug === slug);\r\n if (lens && lens.table && lens.table.results && lens.table.results.items && lens.table.results.items.length > 0) {\r\n if (!teamId) {\r\n tableData = lens.table.results.items[0].item;\r\n tableData.startBalance = lens.table.results.items[lens.table.results.items.length - 1].item.startBalance;\r\n } else {\r\n tableData = lens.table.results.items[0].item.teamResults.find((y) => y.teamId === teamId);\r\n tableData.startBalance = lens.table.results.items[lens.table.results.items.length - 1].item.startBalance;\r\n }\r\n }\r\n\r\n return tableData;\r\n }\r\n\r\n public getOriginName(origin) {\r\n if (origin === 'ext_revenue') {\r\n return 'External revenue';\r\n }\r\n\r\n if (origin === 'group_costs') {\r\n return 'Group costs';\r\n }\r\n\r\n if (origin === 'member_costs') {\r\n return 'Member costs';\r\n }\r\n\r\n return this.graphData.vertices.find((x) => x && x.id === origin).name;\r\n }\r\n\r\n public getDestinationName(destination) {\r\n if (destination === 'group_costs') {\r\n return 'Group costs';\r\n }\r\n\r\n if (destination === 'member_costs') {\r\n return 'Member costs';\r\n }\r\n\r\n if (destination === 'ext_revenue') {\r\n return 'External revenue';\r\n }\r\n\r\n return this.graphData.vertices.find((x) => x && x.id === destination).name;\r\n }\r\n\r\n public getTableValue(teamId: number, property: string) {\r\n const ecosystemFinanceLenseData = this.lensesData.find((x) => x.slug === 'ecosystem-finance');\r\n let total = 0;\r\n if (ecosystemFinanceLenseData) {\r\n const table = ecosystemFinanceLenseData.table;\r\n table.results.items.forEach((item) => {\r\n const teamResult = item.item.teamResults.find((x) => x.teamId === teamId);\r\n\r\n total += teamResult[property];\r\n });\r\n }\r\n\r\n return total;\r\n }\r\n\r\n public getTeamRevenueParts() {\r\n const data = [];\r\n const lines = ['Period'];\r\n\r\n const lensTable = this.lensesData.find((x) => x.slug === 'ecosystem-finance').table;\r\n\r\n for (let i = lensTable.results.items.length - 1; i >= 0; i--) {\r\n const element = lensTable.results.items[i];\r\n const periodData = [];\r\n const period = periodModule.allPeriods.find((x) => x.periodId === element.periodId);\r\n periodData.push(moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM'));\r\n\r\n const ecologyTotalRevenue = element.item.externalRevenue;\r\n\r\n for (let j = 0; j < element.item.teamResults.length; j++) {\r\n const teamRevenue = element.item.teamResults[j].externalRevenue;\r\n const value = (teamRevenue / ecologyTotalRevenue) * 100;\r\n\r\n if (i === 0) {\r\n const team = this.teams.find((x) => x.teamId === element.item.teamResults[j].teamId);\r\n lines.push(team ? team.name : element.item.teamResults[j].teamId);\r\n }\r\n\r\n if (typeof value !== 'undefined' || !isNaN(value)) {\r\n periodData.push(value);\r\n } else {\r\n periodData.push(null);\r\n }\r\n }\r\n\r\n data.push(periodData);\r\n }\r\n\r\n data.unshift(lines);\r\n\r\n return data;\r\n }\r\n\r\n public getChartDataForLens(slug, teamId, props) {\r\n const data = [];\r\n const lines = ['Period'];\r\n\r\n lines.push(...props);\r\n\r\n if (slug === 'ecosystem-finance') {\r\n const lensTable = this.lensesData.find((x) => x.slug === slug).table;\r\n\r\n for (let i = lensTable.results.items.length - 1; i >= 0; i--) {\r\n const element = lensTable.results.items[i];\r\n const periodData = [];\r\n const period = periodModule.allPeriods.find((x) => x.periodId === element.periodId);\r\n\r\n periodData.push(moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM'));\r\n\r\n for (let j = 0; j < props.length; j++) {\r\n const prop = props[j];\r\n let value = 0;\r\n if (!teamId) {\r\n value = element.item[prop];\r\n } else {\r\n value = element.item.teamResults.find((x) => x.teamId === teamId)[prop];\r\n }\r\n if (typeof value !== 'undefined') {\r\n periodData.push(value);\r\n } else {\r\n periodData.push(null);\r\n }\r\n }\r\n\r\n data.push(periodData);\r\n }\r\n\r\n data.unshift(lines);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n public getTeamName(teamId: number) {\r\n const team = this.teams.find((x) => x.teamId === teamId);\r\n return team ? team.name : 'N/A';\r\n }\r\n\r\n public getTableDataForLens(lens) {\r\n const list = [];\r\n\r\n if (lens.slug === 'ecosystem-finance') {\r\n const flattendData = [];\r\n\r\n lens.table.results.items.forEach((x) => {\r\n x.item.periodId = x.periodId;\r\n\r\n x.item.teamResults.forEach((y) => {\r\n y.periodId = x.periodId;\r\n flattendData.push(y);\r\n });\r\n });\r\n\r\n list.push(...flattendData);\r\n }\r\n\r\n return list;\r\n }\r\n\r\n private calculateGraphHeight() {\r\n const height = window.innerHeight - 190;\r\n return height;\r\n }\r\n\r\n private calculateGraphWidth() {\r\n return '100%';\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./insights.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./insights.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./insights.vue?vue&type=template&id=17ee8160&\"\nimport script from \"./insights.ts?vue&type=script&lang=js&\"\nexport * from \"./insights.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isLoading)?_c('spinner'):_c('div',[_c('h3',[(_vm.teamId || _vm.groupId)?_c('b-button',{staticClass:\"my-2 mr-5 \",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.goUp}},[_c('span',{staticClass:\"k-icon k-i-arrow-left align-text-bottom\"}),_vm._v(\" Up one level \")]):_vm._e(),(!_vm.teamId && !_vm.groupId)?_c('span',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"ALL_TEAMS_OF\"}}),_vm._v(\" \"+_vm._s(_vm.getEcosystemName())+\" \"),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?[(_vm.$root.inEditMode)?_c('prd-translate-button',{staticClass:\"ml-2 \",attrs:{\"translate-key\":\"ADD_TEAM\",\"variant\":\"primary\",\"size\":\"sm\"}}):_c('router-link',{attrs:{\"to\":{\n name: 'ecosystem-ceate-team',\n params: { ecosystem: _vm.$root.ecosystemHelper.ecosystemParam, period: _vm.$store.state.period._selectedPeriod },\n }}},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ADD_TEAM'),expression:\"'ADD_TEAM'\"}],staticClass:\"ml-2 \",attrs:{\"variant\":\"primary\",\"size\":\"sm\"}})],1)]:_vm._e()],2):_vm._e(),(_vm.teamId && !_vm.groupId)?_c('span',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"ALL_GROUPS_OF\"}}),_vm._v(\" \"+_vm._s(_vm.team.name)+\" \")],1):_vm._e(),(_vm.teamId && _vm.groupId)?_c('span',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"ALL_MEMBERS_OF\"}}),_vm._v(\" \"+_vm._s(_vm.group.name)+\" \")],1):_vm._e(),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?[(_vm.$root.inEditMode)?[_c('prd-translate-button',{staticClass:\"ml-2\",attrs:{\"translate-key\":\"EDIT_MAP\",\"variant\":\"primary\",\"size\":\"sm\"}}),(_vm.$root.inEditMode)?_c('prd-translate-button',{staticClass:\"mx-2\",attrs:{\"translate-key\":\"CANCEL\",\"variant\":\"secondary\",\"size\":\"sm\"}}):_vm._e(),(_vm.$root.inEditMode)?_c('prd-translate-button',{attrs:{\"translate-key\":\"SAVE\",\"variant\":\"primary\",\"size\":\"sm\"}}):_vm._e()]:[(!_vm.editMode)?[_c('b-button',{staticClass:\"ml-2\",attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":function($event){_vm.editMode = true}}},[_c('span',{staticClass:\"k-icon k-i-edit mr-1\"}),_vm._v(\" \"),_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('EDIT_MAP'),expression:\"'EDIT_MAP'\"}]})])]:[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('CANCEL'),expression:\"'CANCEL'\"}],staticClass:\"mx-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){_vm.editMode = false}}}),_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SAVE'),expression:\"'SAVE'\"}],attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.saveMapSettings}})]]]:_vm._e()],2),_c('svg-graph',{attrs:{\"graphData\":_vm.graph,\"editMode\":_vm.editMode},on:{\"settingsUpdated\":_vm.updateSettings}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport to from 'await-to-js';\r\nimport { mapService, $router, groupService, teamService, eventBus, ecosystemHelper } from '@/main';\r\nimport GraphData from '@/models/Graph/GraphData';\r\nimport IMapSetting from '@/models/Map/IMapSettings';\r\nimport Group from '@/models/Group';\r\nimport Team from '@/models/Team';\r\nimport { Person } from '@/models/Person';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport BaseEcologyDirectory from './directory/components/BaseEcosystemDirectory';\r\n\r\n@Component\r\nexport default class EcosystemOverviewComponent extends BaseEcologyDirectory {\r\n public graph = new GraphData();\r\n public teamId: number = 0;\r\n public team: Team = new Team();\r\n public groupId: number = null;\r\n public group: Group = new Group();\r\n public isTeamScope: boolean = false;\r\n\r\n private mapSettings: IMapSetting[] = [];\r\n\r\n public created() {\r\n this.isTeamScope = typeof this.$route.params.teamId !== 'undefined';\r\n this.teamId = parseInt(this.$route.params.teamId);\r\n this.groupId = parseInt(this.$route.params.groupId);\r\n }\r\n\r\n public async mounted() {\r\n if (!isNaN(this.groupId)) {\r\n const [err, response] = await to(groupService.getGroup(this.groupId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('LOADING_GROUP_FAILED', err);\r\n }\r\n\r\n this.group = response.data;\r\n }\r\n\r\n this.teams = await teamService.getTeams();\r\n if (!isNaN(this.teamId) && this.teamId > 0) {\r\n this.team = this.teams.find((x) => x.teamId === this.teamId);\r\n this.mapSettings = await mapService.getSettings(this.team.teamId);\r\n } else {\r\n this.mapSettings = await mapService.getSettings();\r\n }\r\n\r\n if (this.group && this.group.groupId > 0) {\r\n await this.handleGroupScope();\r\n } else if (this.team && this.team.teamId > 0) {\r\n await this.handleTeamScope();\r\n } else {\r\n await this.handleEcosystemScope();\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async handleGroupScope() {\r\n for (const [index, member] of this.group.members.entries()) {\r\n let settings = null; // this.mapSettings.find((x) => x.member === member.groupId);\r\n\r\n if (!settings) {\r\n const rows = Math.ceil(Math.sqrt(this.group.members.length));\r\n const x = 0 + (index % rows) * 100;\r\n const y = 0 + Math.floor(index / rows) * 100;\r\n\r\n settings = { x, y, radius: 40, team: null, group: this.group.groupId, member: member.memberId };\r\n }\r\n\r\n this.graph.vertices.push({\r\n id: member.memberId,\r\n name: new Person(member).getFullName(),\r\n x: settings.x,\r\n y: settings.y,\r\n radius: settings.radius,\r\n // onclick: () => this.goToGroup(this.team.key, group.groupKey),\r\n });\r\n }\r\n }\r\n\r\n public async handleTeamScope() {\r\n for (const [index, group] of this.team.groups.entries()) {\r\n let settings = this.mapSettings.find((x) => x.group === group.groupId);\r\n if (!settings) {\r\n settings = { x: 20 * index, y: 20, radius: 20, team: null, group: group.groupId };\r\n }\r\n\r\n this.graph.vertices.push({\r\n id: group.groupId,\r\n name: group.name,\r\n x: settings.x,\r\n y: settings.y,\r\n radius: settings.radius,\r\n onclick: () => this.goToGroup(this.team, group),\r\n });\r\n }\r\n }\r\n\r\n public async handleEcosystemScope() {\r\n for (const [index, team] of this.teams.entries()) {\r\n let settings = this.mapSettings.find((x) => x.team === team.teamId);\r\n if (!settings) {\r\n settings = { x: 20 * index, y: 20, radius: 20, team: team.teamId, group: null };\r\n }\r\n\r\n this.graph.vertices.push({\r\n id: team.teamId,\r\n key: team.teamKey,\r\n name: team.name,\r\n icon: team.logoUrl,\r\n x: settings.x,\r\n y: settings.y,\r\n radius: settings.radius,\r\n onclick: () => this.goToTeam(team),\r\n });\r\n }\r\n }\r\n\r\n public async goUp() {\r\n if (this.group && this.group.groupId > 0) {\r\n return this.goToTeam(this.team);\r\n }\r\n\r\n await $router.push({\r\n name: 'ecosystem-overview',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n public async goToTeam(team: Team) {\r\n if (this.editMode) {\r\n return;\r\n }\r\n\r\n await $router.push({\r\n name: 'ecosystem-overview-team',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: team.teamId.toString(),\r\n teamKey: team.teamKey,\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n public async goToGroup(team: Team, group: Group) {\r\n if (this.editMode) {\r\n return;\r\n }\r\n\r\n await $router.push({\r\n name: 'ecosystem-overview-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: team.teamId.toString(),\r\n teamKey: team.teamKey,\r\n period: periodModule.selectedPeriod,\r\n groupId: group.groupId.toString(),\r\n groupKey: group.groupKey,\r\n },\r\n });\r\n }\r\n\r\n public getEcosystemName() {\r\n return ecosystemHelper.currentEcosystem.name;\r\n }\r\n\r\n public updateSettings(vertex) {\r\n const settings = this.mapSettings.find((x) => x.team === vertex.id);\r\n settings.radius = vertex.radius;\r\n eventBus.$emit('redraw');\r\n }\r\n\r\n public async saveMapSettings() {\r\n this.showPending('SAVE_MAP_PENDING');\r\n this.graph.vertices.forEach((vertex: any) => {\r\n let setting = this.mapSettings.find((s: IMapSetting) => {\r\n return (s.team === vertex.id && !this.team.teamId) || (s.group === vertex.id && s.team === this.team.teamId);\r\n });\r\n\r\n if (!setting) {\r\n setting = { x: parseInt(vertex.x), y: parseInt(vertex.y), radius: vertex.radius, group: null, team: null };\r\n\r\n if (this.isTeamScope) {\r\n setting.team = this.team.teamId;\r\n setting.group = vertex.id;\r\n } else {\r\n setting.team = vertex.id;\r\n }\r\n this.mapSettings.push(setting);\r\n } else {\r\n setting.x = parseInt(vertex.x);\r\n setting.y = parseInt(vertex.y);\r\n setting.radius = vertex.radius;\r\n }\r\n });\r\n\r\n const [err] = await to(mapService.saveSettings(this.mapSettings));\r\n if (err) {\r\n this.clearAndShowError('SAVE_MAP_FAILED', err);\r\n }\r\n\r\n this.clearAndShowSuccess('SAVE_MAP_SUCCESS');\r\n this.editMode = false;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./overview.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./overview.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./overview.vue?vue&type=template&id=38f52c48&\"\nimport script from \"./overview.ts?vue&type=script&lang=js&\"\nexport * from \"./overview.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('prd-toolbar',[_c('generic-search',{ref:\"searchBox\",attrs:{\"data-items\":_vm.allTransactions,\"properties\":[\n 'matchId',\n 'amount',\n 'destinationLegalEntityReference',\n 'legalEntityReference',\n 'destinationGroup',\n 'name',\n 'destinationTeam',\n 'description',\n 'originLegalEntityReference',\n 'originGroup',\n 'originTeamId' ]},on:{\"finished-search\":_vm.updateGridData}}),_c('b-form-checkbox',{staticClass:\"ml-2\",on:{\"change\":_vm.filterRelations},model:{value:(_vm.onlyWithoutSettings),callback:function ($$v) {_vm.onlyWithoutSettings=$$v},expression:\"onlyWithoutSettings\"}},[_vm._v(\" Show transactions without settings \")])],1),(_vm.isLoading)?_c('prd-loader',[_c('spinner')],1):_c('prd-grid-wrapper',{key:_vm.refreshGrid,attrs:{\"data-items\":_vm.transactions,\"columns\":_vm.columns,\"row-height\":35,\"pageable\":true,\"orderBy\":{ field: 'dateCreated', dir: 'desc' }}}),(!_vm.isLoading)?_c('relation-settings-modal',{ref:\"relationModal\",attrs:{\"relation-edit-mode\":false,\"intellectual-property-limitations\":_vm.intellectualPropertyLimitations,\"tax-rates\":_vm.taxRates}}):_vm._e(),_c('b-modal',{ref:\"invoiceInfoModal\",attrs:{\"size\":\"sm\"}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_vm._v(\" Invoice details \")]),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.getContent())}}),_c('b-button',{attrs:{\"slot\":\"modal-footer\",\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$refs.invoiceInfoModal.hide()}},slot:\"modal-footer\"},[_vm._v(\"Close\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import RelationSettingsModal from '@/components/modals/relation-settings-modal';\r\nimport { financeService, relationService, roleHelper } from '@/main';\r\nimport CrossLegalTransaction from '@/models/Finance/CrossLegalTransaction';\r\nimport { IntellectualPropertyLimitation, RelationSettings, TaxRate } from '@/models/Finance/Relation';\r\nimport PageRender from '@/models/PageRender';\r\nimport { Component } from 'vue-property-decorator';\r\nimport moment from 'moment';\r\nimport { BModal } from 'bootstrap-vue';\r\nimport { Invoice } from '@/models/Invoice';\r\nimport Vue from 'vue';\r\nimport GenericSearch from '@/components/generic-search/generic-search';\r\n\r\n@Component\r\nexport default class EcosystemSettingsTransactions extends PageRender {\r\n public isLoading: boolean = true;\r\n public refreshGrid: number = 0;\r\n public onlyWithoutSettings: boolean = true;\r\n\r\n public columns: any = [\r\n { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_MATCH_ID', field: 'matchId', width: 100 },\r\n { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_AMOUNT', field: 'amount', width: 100 },\r\n // { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_INVOICE', field: 'invoice.invoiceId', width: 100 },\r\n { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_FROM', field: 'originTeam.name', cell: this.renderFrom },\r\n { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_TO', field: 'originTeam.name', cell: this.renderTo },\r\n { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_DATE_HANDLED', field: 'dateHandled', cell: this.renderInvoiceDate },\r\n { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_DATE_CREATED', field: 'dateCreated', cell: this.renderDateCreated },\r\n { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_STATUS', field: 'status', width: 100 },\r\n { title: 'CROSS_LEGAL_ENITIY_TRANSACTION_SETTINGS', field: 'relationSettings', width: 150, cell: this.viewSettings },\r\n { title: 'INVOICE', field: 'relationSettings', width: 150, cell: this.viewInvoice },\r\n ];\r\n public transactions: CrossLegalTransaction[] = [];\r\n public allTransactions: CrossLegalTransaction[] = [];\r\n public invoice: Invoice = new Invoice();\r\n public intellectualPropertyLimitations: IntellectualPropertyLimitation[] = [];\r\n public taxRates: TaxRate[] = [];\r\n\r\n public $refs!: {\r\n relationModal: RelationSettingsModal;\r\n invoiceInfoModal: BModal;\r\n searchBox: GenericSearch;\r\n };\r\n\r\n public async created() {\r\n this.allTransactions = await financeService.getCrossLegalTransactions();\r\n this.filterRelations();\r\n const data = (await relationService.getRelationProperties()).data;\r\n this.intellectualPropertyLimitations = data.intellectualPropertyLimitations;\r\n this.taxRates = data.taxRates;\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public filterRelations() {\r\n if (this.onlyWithoutSettings) {\r\n this.transactions = this.allTransactions.filter((x) => !x.relationSettings);\r\n } else {\r\n this.transactions = this.allTransactions;\r\n }\r\n\r\n this.refreshGrid++;\r\n }\r\n\r\n public async updateGridData(dataItems) {\r\n if (!dataItems || !dataItems.length) {\r\n // do search\r\n this.transactions = await financeService.getCrossLegalTransactions(this.$refs.searchBox.searchTerm);\r\n\r\n if (this.transactions.length) {\r\n this.showSuccess(`Found ${this.transactions.length} matching transaction(s) in other periods`);\r\n }\r\n this.refreshGrid++;\r\n return;\r\n }\r\n\r\n this.transactions = dataItems;\r\n\r\n this.refreshGrid++;\r\n }\r\n\r\n public openSettingsModal(settings: RelationSettings) {\r\n if (settings) {\r\n this.$refs.relationModal.setData(null, settings);\r\n this.$refs.relationModal.show();\r\n }\r\n }\r\n\r\n public openInvoiceModal(invoice: Invoice) {\r\n if (invoice) {\r\n this.invoice = invoice;\r\n this.$refs.invoiceInfoModal.show();\r\n }\r\n }\r\n\r\n public renderFrom(h, _, row) {\r\n let from = '';\r\n\r\n if (row.dataItem.originLegalEntityReference) {\r\n from += row.dataItem.originLegalEntityReference;\r\n }\r\n\r\n if (row.dataItem.originTeam ) {\r\n from += ` - ${row.dataItem.originTeam.name ? row.dataItem.originTeam.name : '(no team)'}`;\r\n }\r\n\r\n if (row.dataItem.originGroup && row.dataItem.originGroup.name) {\r\n from += ` - ${row.dataItem.originGroup.name ? row.dataItem.originGroup.name : '(no group)'}`;\r\n }\r\n\r\n return h('td', [from]);\r\n }\r\n\r\n public renderTo(h, _, row) {\r\n let from = '';\r\n\r\n if (row.dataItem.destinationLegalEntityReference) {\r\n from += row.dataItem.destinationLegalEntityReference;\r\n }\r\n\r\n if (row.dataItem.destinationTeam) {\r\n from += ` - ${row.dataItem.destinationTeam.name ? row.dataItem.destinationTeam.name : '(no team)'}`;\r\n }\r\n\r\n if (row.dataItem.destinationGroup) {\r\n from += ` - ${row.dataItem.destinationGroup.name ? row.dataItem.destinationGroup.name : '(no group)'}`;\r\n }\r\n\r\n return h('td', [from]);\r\n }\r\n\r\n public renderDateCreated(h, _, row) {\r\n return h('td', [moment(row.dataItem.dateCreated, 'YYYY-MM-DD HH:mm:ss').format('DD-MM-YYYY HH:mm:ss')]);\r\n }\r\n\r\n public renderInvoiceDate(h, _, row) {\r\n return h('td', [moment(row.dataItem.dateHandled, 'YYYY-MM-DD HH:mm:ss').format('DD-MM-YYYY HH:mm:ss')]);\r\n }\r\n\r\n public viewInvoice(h, _, props) {\r\n return h(\r\n 'td',\r\n {\r\n class: 'btn-link cursor-pointer',\r\n on: {\r\n click: () => {\r\n this.openInvoiceModal(props.dataItem.invoice);\r\n },\r\n },\r\n },\r\n [props.dataItem.invoice.invoiceId],\r\n );\r\n }\r\n\r\n public viewSettings(h, _, props) {\r\n return h(\r\n 'td',\r\n {\r\n class: 'btn-link cursor-pointer',\r\n on: {\r\n click: () => {\r\n this.openSettingsModal(props.dataItem.relationSettings);\r\n },\r\n },\r\n },\r\n [props.dataItem.relationSettings ? 'Set (view)' : 'Not set'],\r\n );\r\n }\r\n\r\n public getContent(): string {\r\n let content = `\r\n
\r\n
Client
\r\n

${this.invoice.name}

\r\n\r\n
Description
\r\n

${this.invoice.description}

\r\n `;\r\n\r\n if (this.invoice.reference) {\r\n content += `\r\n
Reference
\r\n

${this.invoice.reference}

\r\n `;\r\n }\r\n\r\n content += `\r\n
Date
\r\n

${this.getDate()}

\r\n `;\r\n\r\n if (this.invoice.originalAmount && this.invoice.parent) {\r\n content += `
Original amount
` + `

${Vue.filter('number-format')(this.invoice.originalAmount)}

`;\r\n }\r\n\r\n if (this.invoice.invoiceAmortization && this.invoice.invoiceAmortization.account) {\r\n content +=\r\n `
Amortization setting
` +\r\n `

Distributes automatically ${this.getAmortizationAmountFormat()} per period to ${\r\n this.invoice.invoiceAmortization.account.name\r\n }

`;\r\n }\r\n\r\n if (roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee()) {\r\n content +=\r\n `
Legal entity reference
` +\r\n `

${!this.invoice.legalEntityReferenceOrigin ? '-' : this.invoice.legalEntityReferenceOrigin}

`;\r\n }\r\n\r\n content += `
Invoice Id
` + `

${this.invoice.invoiceId}

` + '
';\r\n\r\n return content;\r\n }\r\n\r\n public getDate(): string {\r\n return moment(this.invoice.invoiceDate, 'YYYY-MM-DD').format('DD-MM-YYYY');\r\n }\r\n\r\n public getAmortizationAmountFormat() {\r\n if (this.invoice.invoiceAmortization.amortizationAmount) {\r\n return Vue.filter('number-format')(this.invoice.invoiceAmortization.amortizationAmount);\r\n }\r\n\r\n return '0';\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./cross-legal-transactions.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./cross-legal-transactions.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./cross-legal-transactions.vue?vue&type=template&id=09328457&\"\nimport script from \"./cross-legal-transactions.ts?vue&type=script&lang=js&\"\nexport * from \"./cross-legal-transactions.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('prd-toolbar',[(_vm.$root.inEditMode)?_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"translate-key\":\"ADD_VIEW\"}}):_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ADD_VIEW'),expression:\"'ADD_VIEW'\"}],attrs:{\"size\":\"sm\",\"variant\":\"primary\"},on:{\"click\":_vm.opeSideActionCreateView}})],1),(_vm.isLoading)?_c('prd-loader',[_c('spinner')],1):_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.views,\"columns\":_vm.columns,\"row-height\":41},on:{\"rowclick\":_vm.opeSideActionCreateViewRow}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import CreateLedgerAccountModal from '@/components/modals/create-ledger-account-modal';\r\nimport { insightService } from '@/main';\r\nimport InsightView from '@/models/Insights/InsightView';\r\nimport PageRender from '@/models/PageRender';\r\nimport Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class EcosystemSettingsInsightViews extends PageRender {\r\n public isLoading: boolean = true;\r\n public columns: any = [\r\n { title: 'ID', field: 'insightViewId' },\r\n { title: 'NAME', field: 'name' },\r\n { title: 'TEAMS', field: 'name', cell: this.renderTeams },\r\n { title: 'PERSONS', field: 'name', cell: this.renderPersons },\r\n { title: 'ROLES', field: 'name', cell: this.renderRoles },\r\n { title: 'ACTIONS', cell: this.renderActions, width: 100 },\r\n ];\r\n\r\n public views: InsightView[] = [];\r\n\r\n public $refs: {\r\n create: CreateLedgerAccountModal;\r\n };\r\n\r\n public async created() {\r\n await this.loadViews();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async loadViews() {\r\n this.views = await insightService.getViews();\r\n }\r\n\r\n public renderTeams(h, _, row) {\r\n const elements = row.dataItem.teams.map((x) => {\r\n return { label: x.teamKey, value: x.teamId };\r\n });\r\n const props = { elements };\r\n\r\n return h(Vue.component('grid-list'), { props });\r\n }\r\n\r\n public renderRoles(h, _, row) {\r\n const elements = row.dataItem.roles.map((x) => {\r\n return { value: x.role, label: x.role };\r\n });\r\n const props = { elements };\r\n\r\n return h(Vue.component('grid-list'), { props });\r\n }\r\n\r\n public renderPersons(h, _, row) {\r\n const elements = row.dataItem.persons.map((x) => {\r\n return { value: 'name', label: x.personId };\r\n });\r\n const props = { elements };\r\n\r\n return h(Vue.component('grid-list'), { props });\r\n }\r\n\r\n public opeSideActionCreateViewRow(row) {\r\n this.opeSideActionCreateView(row.dataItem);\r\n }\r\n\r\n public opeSideActionCreateView(item?: InsightView) {\r\n this.$sideActions.push(\r\n 'create-or-edit-view-side-action',\r\n {\r\n // options\r\n view: item ? item : null,\r\n },\r\n async () => {\r\n await this.loadViews();\r\n },\r\n );\r\n }\r\n\r\n public editView(item?: InsightView) {\r\n if (item) {\r\n this.opeSideActionCreateView(item);\r\n }\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n const actions = [{ title: 'Edit view', function: this.editView }];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./insight-views.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./insight-views.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./insight-views.vue?vue&type=template&id=088be4db&\"\nimport script from \"./insight-views.ts?vue&type=script&lang=js&\"\nexport * from \"./insight-views.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('prd-toolbar',[(_vm.$root.inEditMode)?_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"translate-key\":\"ADD_LEDGER_ACCOUNT\"}}):_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ADD_LEDGER_ACCOUNT'),expression:\"'ADD_LEDGER_ACCOUNT'\"}],attrs:{\"size\":\"sm\",\"variant\":\"primary\"},on:{\"click\":_vm.openLedgerCreateModal}})],1),(_vm.isLoading)?_c('prd-loader',[_c('spinner')],1):_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.ledgers,\"columns\":_vm.columns,\"row-height\":41}}),_c('create-ledger-account-modal',{ref:\"createLeaderModal\",on:{\"reload-ledgers\":_vm.reloadLedgers}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import CreateLedgerAccountModal from '@/components/modals/create-ledger-account-modal';\r\nimport Ledger from '@/models/Finance/Ledger';\r\nimport PageRender from '@/models/PageRender';\r\nimport { ledgerModule } from '@/store/modules/ledger';\r\nimport Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class EcosystemSettingsLedgerAccounts extends PageRender {\r\n public isLoading: boolean = true;\r\n public columns: any = [\r\n { title: 'NAME', field: 'name' },\r\n { title: 'VALUE', field: 'value' },\r\n { title: 'DESCRIPTION', field: 'description' },\r\n { title: 'ACTIONS', cell: this.renderActions, width: 100 },\r\n ];\r\n\r\n public $refs: {\r\n createLeaderModal: CreateLedgerAccountModal;\r\n };\r\n\r\n public async created() {\r\n await ledgerModule.fetchLedgersIfNeeded();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public get ledgers() {\r\n return ledgerModule.ledgers;\r\n }\r\n\r\n public async mounted() {\r\n this.isLoading = false;\r\n }\r\n\r\n public async reloadLedgers() {\r\n await ledgerModule.fetch();\r\n }\r\n\r\n public openLedgerCreateModal() {\r\n this.$refs.createLeaderModal.show();\r\n }\r\n\r\n public editLedger(item?: Ledger) {\r\n if (item) {\r\n this.$refs.createLeaderModal.setLedger(item);\r\n }\r\n\r\n this.openLedgerCreateModal();\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n const actions = [{ title: 'Edit ledger', function: this.editLedger }];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ledger-accounts.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ledger-accounts.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ledger-accounts.vue?vue&type=template&id=1f77feaf&\"\nimport script from \"./ledger-accounts.ts?vue&type=script&lang=js&\"\nexport * from \"./ledger-accounts.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_c('prd-translate-text',{attrs:{\"translate-key\":\"RELATIONS_TITLE\"}})],1),_c('p',[_c('prd-translate-text',{attrs:{\"translate-key\":\"RELATIONS_DESCRIPTION\"}})],1),_c('prd-toolbar',{attrs:{\"space-between\":\"\"}},[_c('template',{slot:\"left\"},[_c('multiselect',{staticStyle:{\"min-width\":\"400px\"},attrs:{\"options\":_vm.origins,\"placeholder\":\"Select a origin\",\"showLabels\":true,\"label\":\"label\",\"track-by\":\"relationId\",\"disabled\":_vm.isLoading},on:{\"remove\":_vm.reloadRelations,\"select\":_vm.reloadRelations},model:{value:(_vm.selectedOrigin),callback:function ($$v) {_vm.selectedOrigin=$$v},expression:\"selectedOrigin\"}}),_c('multiselect',{staticStyle:{\"min-width\":\"400px\"},attrs:{\"options\":_vm.destinations,\"placeholder\":\"Select a destination\",\"track-by\":\"relationId\",\"showLabels\":true,\"label\":\"label\",\"disabled\":_vm.isLoading},on:{\"remove\":_vm.reloadRelations,\"select\":_vm.reloadRelations},model:{value:(_vm.selectedDestination),callback:function ($$v) {_vm.selectedDestination=$$v},expression:\"selectedDestination\"}})],1),_c('template',{slot:\"right\"},[_c('b-form-checkbox',{staticClass:\"mt-2 mr-2 mb-0 text-nowrap d-inline-block\",on:{\"change\":_vm.reloadRelations},model:{value:(_vm.onlyWithoutSettings),callback:function ($$v) {_vm.onlyWithoutSettings=$$v},expression:\"onlyWithoutSettings\"}},[_vm._v(\" Show relations without settings \")]),_c('b-form-checkbox',{staticClass:\"mt-2 mr-2 mb-0 text-nowrap d-inline-block\",on:{\"change\":_vm.reloadWithDeletedRelations},model:{value:(_vm.includeDeletedRelations),callback:function ($$v) {_vm.includeDeletedRelations=$$v},expression:\"includeDeletedRelations\"}},[_vm._v(\" Show ignored relations \")])],1)],2),(_vm.isLoading)?_c('prd-loader',[_c('spinner')],1):_c('prd-grid-wrapper',{key:_vm.relationsGridKey,attrs:{\"data-items\":_vm.relations,\"columns\":_vm.columns,\"row-height\":43}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { relationService } from '@/main';\r\nimport Relation, { IntellectualPropertyLimitation, TaxRate } from '@/models/Finance/Relation';\r\nimport PageRender from '@/models/PageRender';\r\nimport Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class TeamFinanceRelations extends PageRender {\r\n public columns: any = [\r\n { title: 'Legal entity', field: 'originLegalEntityReference' },\r\n { title: 'Team', field: 'originTeam', cell: this.renderTeamName, filterable: true },\r\n { title: 'Group', field: 'originTeam', cell: this.renderGroupName },\r\n { title: 'Legal entity', field: 'destinationLegalEntityReference' },\r\n { title: 'Team', field: 'destinationTeam', cell: this.renderDestinationTeamName, filterable: true },\r\n { title: 'Group', field: 'destinationGroup', cell: this.renderDestinationGroupName },\r\n { title: 'Settings', cell: this.renderSettingsLink },\r\n { title: 'ACTIONS', cell: this.renderActions, width: 100 },\r\n ];\r\n\r\n public $refs!: {\r\n relationModal: any;\r\n };\r\n\r\n public onlyWithoutSettings: boolean = true;\r\n public includeDeletedRelations: boolean = false;\r\n public relations: Relation[] = [];\r\n public allRelations: Relation[] = [];\r\n public intellectualPropertyLimitations: IntellectualPropertyLimitation[] = [];\r\n public taxRates: TaxRate[] = [];\r\n public relationsGridKey: number = 0;\r\n public origins: { relationId: number; legalEntity: string; team: string; group: string; label: string }[] = [];\r\n public destinations: { relationId: number; legalEntity: string; team: string; group: string; label: string }[] = [];\r\n public selectedOrigin: { relationId: number; legalEntity: string; team: string; group: string; label: string } | null = null;\r\n public selectedDestination: { relationId: number; legalEntity: string; team: string; group: string; label: string } | null = null;\r\n\r\n public async mounted() {\r\n await this.loadRelations(this.includeDeletedRelations);\r\n const data = (await relationService.getRelationProperties()).data;\r\n this.intellectualPropertyLimitations = data.intellectualPropertyLimitations;\r\n this.taxRates = data.taxRates;\r\n\r\n this.populateDropdowns();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public populateDropdowns() {\r\n this.origins = [];\r\n this.destinations = [];\r\n\r\n this.relations.forEach((relation) => {\r\n this.origins.push({\r\n relationId: relation.relationId,\r\n legalEntity: relation.originLegalEntityReference,\r\n team: relation.originTeam?.name,\r\n group: relation.originGroup?.name,\r\n label: `${relation.originLegalEntityReference} - ${relation.originTeam?.name ? relation.originTeam.name : '(no team)'} - ${relation.originGroup?.name ? relation.originGroup.name : '(no group)'}`,\r\n });\r\n\r\n this.destinations.push({\r\n relationId: relation.relationId,\r\n legalEntity: relation.destinationLegalEntityReference,\r\n team: relation.destinationTeam?.name,\r\n group: relation.destinationGroup?.name,\r\n label: `${relation.destinationLegalEntityReference} - ${relation.destinationTeam?.name ? relation.destinationTeam.name : '(no team)'} - ${relation.destinationGroup?.name ? relation.destinationGroup.name : '(no group)'}`,\r\n });\r\n });\r\n }\r\n\r\n public reloadRelations() {\r\n this.relations = this.filterRelations();\r\n this.populateDropdowns();\r\n\r\n this.relationsGridKey++;\r\n }\r\n\r\n public async loadRelations(includeDeleted: boolean) {\r\n this.allRelations = await relationService.getRelations(includeDeleted);\r\n this.relations = this.filterRelations();\r\n }\r\n\r\n public async reloadWithDeletedRelations() {\r\n await this.loadRelations(this.includeDeletedRelations);\r\n this.reloadRelations();\r\n }\r\n\r\n private filterRelations() {\r\n let relations = this.allRelations;\r\n if (this.selectedOrigin) {\r\n relations = relations.filter(\r\n (x) =>\r\n x.originLegalEntityReference === this.selectedOrigin.legalEntity &&\r\n x.originTeam?.name === this.selectedOrigin.team &&\r\n x.originGroup?.name === this.selectedOrigin.group,\r\n );\r\n }\r\n\r\n if (this.selectedDestination) {\r\n relations = relations.filter(\r\n (x) =>\r\n x.destinationLegalEntityReference === this.selectedDestination.legalEntity &&\r\n x.destinationTeam?.name === this.selectedDestination.team &&\r\n x.destinationGroup?.name === this.selectedDestination.group,\r\n );\r\n }\r\n\r\n if (this.onlyWithoutSettings) {\r\n return relations.filter((x) => x.relationSettings.length === 0);\r\n }\r\n return relations;\r\n }\r\n\r\n private renderTeamName(h, _, row) {\r\n if (row.dataItem.originTeam && row.dataItem.destinationTeam && row.dataItem.originTeam.teamId === row.dataItem.destinationTeam.teamId) {\r\n return h('td');\r\n }\r\n\r\n return h('td', row.dataItem.originTeam ? row.dataItem.originTeam.name : '');\r\n }\r\n\r\n private renderGroupName(h, _, row) {\r\n return h('td', row.dataItem.originGroup ? row.dataItem.originGroup.name : '');\r\n }\r\n\r\n private renderDestinationTeamName(h, _, row) {\r\n return h('td', row.dataItem.destinationTeam ? row.dataItem.destinationTeam.name : '');\r\n }\r\n\r\n private renderDestinationGroupName(h, _, row) {\r\n return h('td', row.dataItem.destinationGroup ? row.dataItem.destinationGroup.name : '');\r\n }\r\n\r\n private renderSettingsLink(h, _, row) {\r\n const props = { relation: row.dataItem, intellectualPropertyLimitations: this.intellectualPropertyLimitations, taxRates: this.taxRates };\r\n return h(Vue.component('grid-relation-settings'), { props });\r\n }\r\n\r\n private async deleteRelation(item: Relation): Promise {\r\n const success = await relationService.deleteRelation(item.relationId);\r\n\r\n if (success) {\r\n this.clearAndShowSuccess('RELATION_DELETED_SUCCESS');\r\n } else {\r\n this.clearAndShowError('RELATION_DELETED_FAILED');\r\n }\r\n\r\n await this.loadRelations(this.includeDeletedRelations);\r\n this.reloadRelations();\r\n }\r\n\r\n private renderActions(h, _, row: { dataItem: Relation }): any {\r\n const actions = [{ title: 'Delete relation', function: this.deleteRelation }];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./relations.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./relations.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./relations.vue?vue&type=template&id=4e2cf925&\"\nimport script from \"./relations.ts?vue&type=script&lang=js&\"\nexport * from \"./relations.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ul',{staticClass:\"nav nav-tabs\",attrs:{\"role\":\"tablist\"}},[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link ledger-accounts\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ECO_LEDGER_ACCOUNTS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ECO_LEDGER_ACCOUNTS'),expression:\"'ECO_LEDGER_ACCOUNTS'\"}],staticClass:\"nav-link ledger-accounts\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('ledger-accounts')}}})]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link cross-legal-transactions\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ECO_CROSS_LEGAL_TRANSACTIONS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ECO_CROSS_LEGAL_TRANSACTIONS'),expression:\"'ECO_CROSS_LEGAL_TRANSACTIONS'\"}],staticClass:\"nav-link cross-legal-transactions\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('cross-legal-transactions')}}})]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link relations\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_RELATIONS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_FINANCE_RELATIONS'),expression:\"'TEAM_FINANCE_RELATIONS'\"}],staticClass:\"nav-link relations\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('relations')}}})]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link insight-views\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ECOSYSTEM_INSIGHT_VIEWS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ECOSYSTEM_INSIGHT_VIEWS'),expression:\"'ECOSYSTEM_INSIGHT_VIEWS'\"}],staticClass:\"nav-link insight-views\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('insight-views')}}})])]),_c('div',{staticClass:\"tab-content\"},[_c(_vm.currentTabComponent,{tag:\"component\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { $router } from '@/main';\r\nimport jQuery from 'jquery';\r\nimport PageRender from '@/models/PageRender';\r\n\r\n@Component\r\nexport default class EcosystemSettings extends PageRender {\r\n public tab: string = null;\r\n public currentTabComponent: string = '';\r\n public tabs: string[] = [\r\n 'ledger-accounts',\r\n 'cross-legal-transactions',\r\n 'relations',\r\n 'insight-views',\r\n ];\r\n\r\n public async mounted() {\r\n await this.checkPeriodParam();\r\n await this.changeTab(this.$route.params.tab);\r\n }\r\n\r\n public async changeTab(tab: string): Promise {\r\n if (this.tabs.indexOf(tab) < 0) {\r\n tab = this.tabs[0];\r\n }\r\n if (tab !== this.$route.params.tab) {\r\n const params = this.$route.params;\r\n params.tab = tab;\r\n\r\n await $router.push({ name: 'ecosystem-settings', params });\r\n } else {\r\n this.doActiveClass(tab);\r\n this.currentTabComponent = 'ecosystem-settings-' + tab;\r\n }\r\n }\r\n\r\n public doActiveClass(tab: string) {\r\n this.$nextTick(() => {\r\n jQuery('.' + tab).addClass('active');\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./settings.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./settings.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./settings.vue?vue&type=template&id=4b794886&\"\nimport script from \"./settings.ts?vue&type=script&lang=js&\"\nexport * from \"./settings.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('prd-toolbar'),(_vm.isLoading)?_c('prd-loader',[_c('spinner')],1):_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.subscriptionNodes,\"columns\":_vm.columns}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ecosystemHelper, ecosystemService } from '@/main';\r\nimport { Member } from '@/models/Member';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport BaseEcologyDirectory from '../directory/components/BaseEcosystemDirectory';\r\n\r\n@Component\r\nexport default class EcosystemSettingsLedgerAccounts extends BaseEcologyDirectory {\r\n public isLoading: boolean = true;\r\n public info: any = null;\r\n public allMembers: Member[] = [];\r\n\r\n public columns: any = [\r\n { title: 'TYPE_OF_NODES', field: 'name', footerCell: this.renderTotalLabel },\r\n { title: 'NODES_IN_USE', field: 'value', footerCell: this.renderFooterCellSum },\r\n { title: 'INFORMATION', cell: this.renderLink },\r\n // { title: 'ACTIONS', cell: this.renderActions, width: 100 },\r\n ];\r\n\r\n public get subscriptionNodes() {\r\n if (!this.info) {\r\n return [];\r\n }\r\n\r\n const rows = [];\r\n for (const property in this.info) {\r\n rows.push({\r\n name: property === 'groupCount' ? 'Groups' : 'Members',\r\n type: property,\r\n value: this.info[property],\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n\r\n public async created() {\r\n this.info = await ecosystemService.getSubscriptionInfo();\r\n this.isLoading = false;\r\n }\r\n\r\n public renderLink(h, _, row: any): any {\r\n const type = row.dataItem.type === 'groupCount' ? 'groups' : 'members';\r\n const routeUrl = this.$router.resolve({\r\n name: 'ecosystem-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n tab: type,\r\n period: periodModule.selectedPeriod,\r\n },\r\n }).href;\r\n\r\n const props = {\r\n text: row.dataItem.type === 'groupCount' ? 'See all groups' : 'See all members',\r\n url: routeUrl,\r\n };\r\n\r\n return h(Vue.component('grid-router-link'), { props });\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n const actions = [];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n public renderTotalLabel(h) {\r\n return h('td', 'Total active nodes');\r\n }\r\n\r\n public renderFooterCellSum(h, _, row) {\r\n const total = this.subscriptionNodes.reduce((acc: number, current) => acc + (current[row.field] as number), 0);\r\n return h('td', total);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./subscription.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./subscription.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./subscription.vue?vue&type=template&id=162d17b6&\"\nimport script from \"./subscription.ts?vue&type=script&lang=js&\"\nexport * from \"./subscription.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isLoading)?_c('p',[_vm._v(\"Loading map data...\")]):_c('svg-graph',{attrs:{\"graphData\":_vm.graph}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import PageRender from '@/models/PageRender';\r\nimport { Component } from 'vue-property-decorator';\r\nimport IMapSetting from '@/models/Map/IMapSettings';\r\nimport { mapService, teamService, financeService, groupService, financeAccountService, roleHelper, $router, ecosystemHelper } from '@/main';\r\nimport to from 'await-to-js';\r\nimport GraphData from '@/models/Graph/GraphData';\r\nimport Team from '@/models/Team';\r\nimport Group from '@/models/Group';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class MapSVGDashboardComponent extends PageRender {\r\n // tslint:disable: restrict-plus-operands\r\n public isLoading: boolean = true;\r\n public editMode: boolean = false;\r\n public isTeamScope: boolean = false;\r\n public team: Team = new Team();\r\n public teams: Team[] = [];\r\n public groups: Group[] = [];\r\n public teamRevenue: any[] = [];\r\n public ecosystemevenue = [];\r\n public graph = new GraphData();\r\n\r\n private mapSettings: IMapSetting[] = [];\r\n\r\n public async created() {\r\n this.isTeamScope = typeof this.$route.params.teamId !== 'undefined';\r\n if (this.isTeamScope) {\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee()) {\r\n await $router.push({ name: 'not-found' });\r\n }\r\n }\r\n }\r\n\r\n public async mounted() {\r\n if (this.isTeamScope) {\r\n const respose = await teamService.getTeam(parseInt(this.$route.params.teamId), periodModule.selectedPeriod);\r\n this.team = respose.data;\r\n }\r\n\r\n this.mapSettings = await mapService.getSettings(this.team.teamId);\r\n\r\n if (!this.isTeamScope) {\r\n await this.handleEcosystemScope();\r\n } else {\r\n await this.handleTeamScope();\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async handleEcosystemScope() {\r\n this.teams = await teamService.getTeams();\r\n this.ecosystemevenue = await this.getEcosystemRevenue();\r\n\r\n for (const [index, team] of this.teams.entries()) {\r\n let settings = this.mapSettings.find((x) => x.team === team.teamId);\r\n\r\n if (!settings) {\r\n settings = { x: 20 * index, y: 20, radius: 20, team: team.teamId, group: null };\r\n }\r\n\r\n this.graph.vertices.push({\r\n id: team.teamId,\r\n key: team.teamKey,\r\n name: team.name,\r\n x: settings.x,\r\n y: settings.y,\r\n radius: settings.radius,\r\n onclick: () => this.goToTeam(team),\r\n });\r\n }\r\n\r\n for (const transfer of this.ecosystemevenue) {\r\n const v1 = this.graph.vertices.find((v) => v.id === transfer.teamId);\r\n\r\n if (!v1) {\r\n continue;\r\n }\r\n\r\n for (const revenue of transfer.revenue) {\r\n const v2 = this.graph.vertices.find((v) => v.id === revenue.teamId);\r\n\r\n if (!v2) {\r\n continue;\r\n }\r\n\r\n this.graph.edges.push({ edge: `${v1.id}${v2.id}`, v1, v2, weight: revenue.total });\r\n }\r\n }\r\n }\r\n\r\n public goToTeam(team: Team) {\r\n if (this.editMode || team.groups.length === 0) {\r\n return;\r\n }\r\n\r\n if (roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee()) {\r\n // tslint:disable-next-line: no-floating-promises\r\n $router.push({\r\n name: 'ecosystem-graph',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n period: periodModule.selectedPeriod,\r\n teamId: team.teamId.toString(),\r\n },\r\n });\r\n }\r\n }\r\n\r\n public async handleTeamScope() {\r\n this.groups = await this.getTeamGroups(this.team.teamId);\r\n\r\n const groupsIcomeAccountIds = (await financeAccountService.getAccounts(\r\n AccountType.GroupIncome,\r\n this.team.teamId,\r\n periodModule.selectedPeriod,\r\n )).data;\r\n this.groups.forEach((item: Group) => {\r\n return (item.accountIncome = groupsIcomeAccountIds.find((account) => {\r\n return account.relatedEntityId === item.groupId;\r\n }));\r\n });\r\n\r\n this.teamRevenue = await this.getTeamRevenue(this.team.teamId);\r\n\r\n for (const [index, group] of this.groups.entries()) {\r\n let settings = this.mapSettings.find((x) => x.group === group.groupId);\r\n if (!settings) {\r\n settings = { x: 20 * index, y: 20, radius: 20, team: null, group: group.groupId };\r\n }\r\n this.graph.vertices.push({ id: group.groupId, name: group.name, x: settings.x, y: settings.y, radius: settings.radius });\r\n }\r\n\r\n for (const transfer of this.teamRevenue) {\r\n const v1 = this.graph.vertices.find((v) => v.id === transfer.teamId);\r\n\r\n if (!v1) {\r\n continue;\r\n }\r\n\r\n for (const revenue of transfer.revenue) {\r\n const v2 = this.graph.vertices.find((v) => v.id === revenue.teamId);\r\n\r\n if (!v2) {\r\n continue;\r\n }\r\n\r\n this.graph.edges.push({ edge: `${v1.id}${v2.id}`, v1, v2, weight: revenue.total });\r\n }\r\n }\r\n }\r\n\r\n public async getTeamGroups(teamId: number) {\r\n const [err, response] = await to(groupService.getGroups(teamId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse(`Failed to load groups for team ${teamId}`, null);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async getTeamRevenue(teamId: number) {\r\n const [err, response] = await to(financeService.getTeamRevenue(periodModule.selectedPeriod, teamId));\r\n if (err) {\r\n this.showFailedResponse('Failed to load group intra revenue on team level', null);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async getEcosystemRevenue() {\r\n const [err, response] = await to(financeService.getEcosystemRevenue(periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('Failed to load team intra revenue on ecosystem level', null);\r\n }\r\n\r\n return response.data;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./svg-graph.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./svg-graph.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./svg-graph.vue?vue&type=template&id=01a87fa4&\"\nimport script from \"./svg-graph.ts?vue&type=script&lang=js&\"\nexport * from \"./svg-graph.ts?vue&type=script&lang=js&\"\nimport style0 from \"./svg-graph.vue?vue&type=style&index=0&id=01a87fa4&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mw-600 mx-auto my-5\"},[_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"danger\"}},[_c('h1',{staticClass:\"alert-heading\"},[_vm._v(\"An error has occured\")]),_c('p',[_vm._v(_vm._s(_vm.message))])]),(_vm.returnUrl)?_c('form',{attrs:{\"action\":_vm.returnUrl}},[_c('b-button',{staticClass:\"btn btn-lg\",attrs:{\"type\":\"submit\",\"variant\":\"primary\"}},[_vm._v(\"Continue\")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport Vue from 'vue';\r\n\r\n@Component\r\nexport default class ErrorComponent extends Vue {\r\n public message: string = '';\r\n public returnUrl: string = null;\r\n\r\n public mounted() {\r\n this.message = this.$route.params.message as string;\r\n\r\n const r = this.$route.params.returnUrl as string;\r\n if (r !== undefined) {\r\n this.returnUrl = r;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./error.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./error.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./error.vue?vue&type=template&id=59922523&\"\nimport script from \"./error.ts?vue&type=script&lang=js&\"\nexport * from \"./error.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-translate-text',{staticClass:\"mb-2\",attrs:{\"translate-key\":\"AMBITIONS\",\"element\":\"h2\"}}),_c('div',{staticClass:\"row mb-4\"},[_c('div',{staticClass:\"col-4\"},[_c('b-card',[_c('table',{staticClass:\"table table-sm table-borderless\"},[_c('tr',[_c('td',{staticClass:\"pb-4 font-italic\",attrs:{\"colspan\":\"4\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ACTUAL_VS_EXPECTED\"}})],1)]),_c('tr',[_c('prd-translate-text',{attrs:{\"element\":\"td\",\"translate-key\":\"RESULT\"}}),_c('td',{staticClass:\"text-left\",domProps:{\"innerHTML\":_vm._s(_vm.getActualGroupResult())}}),_c('td',{staticClass:\"text-right\",staticStyle:{\"width\":\"30px\"}},[_vm._v(\"vs.\")]),_c('td',{staticClass:\"text-right\",domProps:{\"innerHTML\":_vm._s(_vm.getExpectedGroupResult())}})],1),_c('tr',[_c('prd-translate-text',{attrs:{\"element\":\"td\",\"translate-key\":\"FEE\"}}),_c('td',{staticClass:\"text-left\",domProps:{\"innerHTML\":_vm._s(_vm.getExpectedGroupFee())}}),_c('td',{staticClass:\"text-right\",staticStyle:{\"width\":\"30px\"}},[_vm._v(\"vs.\")]),_c('td',{staticClass:\"text-right\",domProps:{\"innerHTML\":_vm._s(_vm.getActualGroupFee())}})],1)])])],1)]),_c('div',{staticClass:\"k-toolbar k-widget k-toolbar-resizable d-block\"},[_c('div',{staticClass:\"d-flex justify-content-between align-items-start\"},[_c('grid-period-range-filter',{on:{\"filter-change\":_vm.recalculateInternalIncome}})],1)]),_c('grid',{key:_vm.ambitionsUpdated,style:(_vm.calculateHeight()),attrs:{\"data-items\":_vm.ambitions,\"columns\":_vm.ambitionsColumns,\"edit-field\":'inEdit',\"resizable\":true},on:{\"rowclick\":_vm.rowClick,\"changed\":_vm.updateAmbition}},[_c('grid-norecords',[_c('p',[_vm._v(\"No claimed or distributed invoices\")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Member } from '../Member';\r\n\r\nexport default class Ambition {\r\n public member: Member;\r\n public internalRevenueAmbition: any = 0;\r\n public actualInternalRevenue: number = 0;\r\n public actualExternalRevenue: number = 0;\r\n public cost: number = 0;\r\n public actualCompensations: number = 0;\r\n public guidancePercentage: number = 0;\r\n\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n\r\n get externalRevenueGoal(): number {\r\n return this.cost;\r\n }\r\n\r\n get actualMargin(): number {\r\n return this.actualInternalRevenue - this.actualCompensations;\r\n }\r\n\r\n get actualFee(): number {\r\n return (this.actualCompensations * this.guidancePercentage) / 100;\r\n }\r\n\r\n get actualResult(): number {\r\n return this.actualFee + this.actualMargin;\r\n }\r\n\r\n get expectedMargin(): number {\r\n return this.internalRevenueAmbition - this.cost;\r\n }\r\n\r\n get expectedFee(): number {\r\n return (this.cost * this.guidancePercentage) / 100;\r\n }\r\n\r\n get expectedResult(): number {\r\n return this.expectedFee + this.expectedMargin;\r\n }\r\n}\r\n","import BaseGroupPage from './BaseGroupPage';\r\nimport { periodFilterHelper, teamHelper, roleHelper, compensationService, ecosystemHelper } from '@/main';\r\nimport { FinanceAccount } from '../../../../models/Interfaces';\r\nimport Component from 'vue-class-component';\r\nimport Vue from 'vue';\r\nimport Ambition from '@/models/Finance/Ambition';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport moment from 'moment';\r\nimport to from 'await-to-js';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class GroupDetailAmbitions extends BaseGroupPage {\r\n public isLoaded: boolean = false;\r\n public financeAccounts: FinanceAccount[] = [];\r\n public ambitions: Ambition[] = [];\r\n public editID: number = null;\r\n public compensations: any[] = [];\r\n public ambitionsUpdated: number = 0;\r\n\r\n public ambitionsColumns: any[] = [\r\n {\r\n field: 'member',\r\n cell: this.renderMemberRevenue,\r\n title: 'Member',\r\n className: 'bg-white',\r\n locked: true,\r\n width: 180,\r\n },\r\n { field: 'externalRevenueGoal', title: 'Client rate goal', width: 165, cell: this.renderExternalRevenueGoal },\r\n { field: 'internalRevenueAmbition', title: 'Ecosystem rate ambition', width: 185, cell: this.renderBla },\r\n { field: 'actualRevenueGoal', title: 'Actual client rate revenue', width: 175, cell: this.renderActualInternalRevenue },\r\n { field: 'actualExternalRevenue', title: 'Actual ecosystem rate revenue', width: 175, cell: this.renderActualExternalRevenue },\r\n { field: 'cost', title: 'Cost (Needed compensation for member based on energy and fixed cost)', width: 200, cell: this.renderCosts },\r\n { field: 'actualCompensations', title: 'Actual compensation for member (transfers)', width: 200, cell: this.renderActualCompensations },\r\n { field: 'guidancePercentage', title: 'Guidance percentage', width: 160, cell: this.renderBla },\r\n { field: 'expertedMargin', title: 'Expected margin', width: 135, cell: this.renderExpectedMargin },\r\n { field: 'expectedFee', title: 'Expected guidance fee (guild mode)', width: 160, cell: this.renderExpectedFee },\r\n { field: 'expectedResult', title: 'Expected Result', width: 130, cell: this.renderExpectedResult },\r\n { field: 'actualMargin', title: 'Actual margin', width: 120, cell: this.renderActualMargin },\r\n { field: 'actualFee', title: 'Actual guidance fee (guild mode)', width: 160, cell: this.renderActualFee },\r\n { field: 'actualResult', title: 'Actual result', width: 115, cell: this.renderActualResult },\r\n ];\r\n\r\n public async mounted() {\r\n await this.initInvoicesOrExpensesGroup(InvoiceType.Income);\r\n\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee() && !roleHelper.isGroupLead(this.group)) {\r\n await this.$router.push({\r\n name: 'team-finances-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n groupKey: this.group.groupKey,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'overview',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n await this.initAttributions();\r\n\r\n this.isLoaded = true;\r\n }\r\n\r\n public async recalculateInternalIncome(dates) {\r\n this.invoicesReloading = true;\r\n this.showPending('CALCULATING_REVENUE_PENDING');\r\n\r\n this.invoices = [];\r\n this.compensations = [];\r\n\r\n const startPeriod = periodModule.periods.find((x) => moment(x.startDate, 'YYYY-MM-DD').format('YYYY-MM') === dates.fromFilterMonth);\r\n const endPeriod = periodModule.periods.find((x) => moment(x.startDate, 'YYYY-MM-DD').format('YYYY-MM') === dates.toFilterMonth);\r\n\r\n if (startPeriod && endPeriod) {\r\n for (let i = startPeriod.periodId; i <= endPeriod.periodId; i++) {\r\n const period = periodModule.periods.find((x) => x.periodId === i);\r\n\r\n const invoices = await this.loadInvoices(InvoiceType.Income, moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM'));\r\n const compensations = await this.loadGroupCompensations(moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM'));\r\n\r\n this.invoices.push(...invoices);\r\n this.compensations.push(...compensations);\r\n }\r\n }\r\n\r\n await this.calculateRevenue();\r\n\r\n this.populateGrid();\r\n this.clearNotifications();\r\n this.invoicesReloading = false;\r\n this.ambitionsUpdated++;\r\n }\r\n\r\n public populateGrid() {\r\n this.ambitions = [];\r\n for (const member of this.group.members) {\r\n const ambition = new Ambition({ member });\r\n\r\n const personIncome = this.personIncomes.find((x) => x.member.id === member.memberId);\r\n if (personIncome) {\r\n ambition.actualInternalRevenue = personIncome.totalAmount;\r\n ambition.actualExternalRevenue = personIncome.totalExternalAmount;\r\n }\r\n\r\n const personCompensations = this.compensations.filter((x) => x.member.personId === member.memberId);\r\n for (const pc of personCompensations) {\r\n ambition.cost += pc.costs;\r\n ambition.actualCompensations += pc.compensation;\r\n }\r\n\r\n this.ambitions.push(ambition);\r\n }\r\n }\r\n\r\n public updateAmbition(a) {\r\n const ambition = a.dataItem;\r\n ambition[a.prop] = a.value;\r\n\r\n Vue.set(ambition, 'inEdit', false);\r\n }\r\n\r\n public async loadGroupCompensations(period?: string) {\r\n const [err, response] = await to(\r\n compensationService.getCompensations(this.teamId, this.group.groupId, period ? period : periodModule.selectedPeriod),\r\n );\r\n if (err) {\r\n this.showFailedResponse('Failed to load compensations');\r\n }\r\n\r\n return response.data.memberCompensations;\r\n }\r\n\r\n public renderBla(h, _, row, listeners) {\r\n const column = this.ambitionsColumns[row.columnIndex];\r\n const props = {\r\n value: row.dataItem[column.field],\r\n prop: column.field,\r\n dataItem: row.dataItem,\r\n allowNegative: true,\r\n appendPercentage: column.field === 'guidancePercentage',\r\n };\r\n\r\n return h(Vue.component('grid-numeric-editor'), {\r\n props,\r\n on: {\r\n saved: (a) => {\r\n listeners.saved(a);\r\n },\r\n changed: (a) => {\r\n listeners.changed(a);\r\n },\r\n },\r\n });\r\n }\r\n\r\n public getActualGroupResult() {\r\n let count = 0;\r\n this.ambitions.forEach((x) => (count += x.actualResult));\r\n return Vue.filter('number-format')(count);\r\n }\r\n public getActualGroupFee() {\r\n let count = 0;\r\n this.ambitions.forEach((x) => (count += x.actualFee));\r\n return Vue.filter('number-format')(count);\r\n }\r\n public getExpectedGroupResult() {\r\n let count = 0;\r\n this.ambitions.forEach((x) => (count += x.expectedResult));\r\n return Vue.filter('number-format')(count);\r\n }\r\n public getExpectedGroupFee() {\r\n let count = 0;\r\n this.ambitions.forEach((x) => (count += x.expectedFee));\r\n return Vue.filter('number-format')(count);\r\n }\r\n\r\n public renderExternalRevenueGoal(h, _, row) {\r\n const props = { value: row.dataItem.externalRevenueGoal, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderActualInternalRevenue(h, _, row) {\r\n const amount = row.dataItem.actualInternalRevenue;\r\n const props = { value: amount, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderActualExternalRevenue(h, _, row) {\r\n const amount = row.dataItem.actualExternalRevenue;\r\n const props = { value: amount, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderCosts(h, _, row) {\r\n const amount = row.dataItem.cost;\r\n const props = { value: amount, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderActualCompensations(h, _, row) {\r\n const props = { value: row.dataItem.actualCompensations, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderActualMargin(h, _, row) {\r\n const amount = row.dataItem.actualMargin;\r\n const props = { value: amount, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderActualFee(h, _, row) {\r\n const props = { value: row.dataItem.actualFee, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderActualResult(h, _, row) {\r\n const amount = row.dataItem.actualResult;\r\n const props = { value: amount, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExpectedMargin(h, _, row) {\r\n const amount = row.dataItem.expectedMargin;\r\n const props = { value: amount, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExpectedFee(h, _, row) {\r\n const props = { value: row.dataItem.expectedFee, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderExpectedResult(h, _, row) {\r\n const amount = row.dataItem.expectedResult;\r\n const props = { value: amount, classNames: 'bg-secondary' };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public rowClick(e) {\r\n if (periodFilterHelper.isCurrentPeriodClosed()) {\r\n return;\r\n }\r\n\r\n const ambition = this.ambitions.find((i) => i.member.memberId === this.editID);\r\n this.ambitions.forEach((expense) => (expense[this.selectedField] = false));\r\n\r\n if (ambition) {\r\n Vue.set(ambition, 'inEdit', false);\r\n }\r\n\r\n this.editID = e.dataItem.member.id;\r\n Vue.set(e.dataItem, 'inEdit', true);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-ambitions.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-ambitions.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-ambitions.vue?vue&type=template&id=1a840725&\"\nimport script from \"./group-detail-ambitions.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-ambitions.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('div',{staticClass:\"card-deck mb-3\"},[_c('b-card',{staticClass:\"col-6\"},[_c('b-card-title',[_c('prd-translate-text',{attrs:{\"translate-key\":\"DISTRIBUTED_EXPENSES_AMOUNT\",\"element\":\"span\"}}),_c('span',{staticClass:\"float-right font-weight-bold\",domProps:{\"innerHTML\":_vm._s(_vm.getDistributedInvoiceAmount())}})],1)],1),_c('b-card',{staticClass:\"col-6\"},[_c('b-card-title',[_c('prd-translate-text',{attrs:{\"translate-key\":\"GROUP_OPEN_EXPENSES_AMOUNT\",\"element\":\"span\"}}),_c('span',{staticClass:\"float-right font-weight-bold\",domProps:{\"innerHTML\":_vm._s(_vm.getOpenInvoiceAmount())}})],1)],1)],1),_c('prd-toolbar',{staticClass:\"justify-content-between\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('prd-translate-text',{staticClass:\"text\",attrs:{\"translate-key\":\"SEARCH\",\"element\":\"span\"}}),_c('b-input',{directives:[{name:\"translate-placeholder\",rawName:\"v-translate-placeholder\",value:('PLACEHOLDER_ANYTHING_YOU_LIKE'),expression:\"'PLACEHOLDER_ANYTHING_YOU_LIKE'\"}],attrs:{\"id\":\"free-seach\"},model:{value:(_vm.textSearch),callback:function ($$v) {_vm.textSearch=$$v},expression:\"textSearch\"}})],1),_c('div',[_c('b-form-checkbox',{staticClass:\"mr-2 text-nowrap d-inline-block\",model:{value:(_vm.onlyNotYetDistributed),callback:function ($$v) {_vm.onlyNotYetDistributed=$$v},expression:\"onlyNotYetDistributed\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SHOW_NOT_YET_DISTRIBUTED\",\"element\":\"span\"}})],1),_c('b-form-checkbox',{staticClass:\"mr-2 text-nowrap d-inline-block\",model:{value:(_vm.onlyRecurring),callback:function ($$v) {_vm.onlyRecurring=$$v},expression:\"onlyRecurring\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SHOW_NON_RECURRING\",\"element\":\"span\"}})],1),(_vm.group)?_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length > 0),expression:\"getSelectedInvoices().length > 0\"}],staticClass:\"btn btn-sm btn-primary ml-2\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed()},on:{\"click\":_vm.openModalMultiDistribution}},[_vm._v(\" Move selected income to an account \")]):_vm._e(),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length == 1),expression:\"getSelectedInvoices().length == 1\"}],staticClass:\"btn btn-sm btn-primary ml-2\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() ||\n (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.openAmortizeModal}},[_vm._v(\" Amortize expense \")]),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.reloadGrid(_vm.invoiceType)}}},[_c('i',{staticClass:\"icon-rotate-cw\"})])],1)]),(_vm.invoicesReloading)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{staticClass:\"mt-5 d-inline-block\"})],1):_c('grid',{key:_vm.reloadInvoicesGrid,style:(_vm.calculateGridHeight()),attrs:{\"data-items\":_vm.getData(),\"columns\":_vm.invoiceColumns,\"edit-field\":'inEdit',\"pageable\":true,\"row-height\":40,\"skip\":_vm.skip,\"take\":_vm.take,\"total\":_vm.getTotal(),\"resizable\":true,\"selected-field\":_vm.selectedField,\"disabled\":_vm.disableGrid},on:{\"rowclick\":_vm.rowClick,\"pagechange\":_vm.pageChangeHandler,\"selectionchange\":_vm.onSelectionChange,\"headerselectionchange\":_vm.onHeaderSelectionChange,\"saved\":_vm.saveRow,\"changed\":_vm.updateDistribution}}),(_vm.getSelectedInvoices().length > 0)?_c('move-to-account-modal',{ref:\"multiIncomeDistributionModal\",attrs:{\"options-list\":_vm.optionListReceivers(),\"selected-invoices\":_vm.getSelectedInvoices(),\"group\":_vm.group,\"is-expense\":\"true\"},on:{\"invoice-moved\":_vm.reloadGrid}}):_vm._e(),(_vm.selectedInvoice)?_c('amortize-modal',{ref:\"amortizeModal\",attrs:{\"invoice\":_vm.selectedInvoice,\"is-expense\":true,\"optionsList\":_vm.optionListReceivers()},on:{\"amortization-set\":_vm.removeAndSaveCurrentDistributions}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport BaseGroupPage from './BaseGroupPage';\r\nimport { functions } from '../../../../helpers/functions';\r\nimport Vue from 'vue';\r\nimport { teamHelper, financeService } from '@/main';\r\nimport { InvoiceType } from '../../../../models/InvoiceType';\r\nimport to from 'await-to-js';\r\nimport { enMessages } from '@/language/en';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport { AccountType } from '@/models/AccountType';\r\n\r\n@Component\r\nexport default class GroupDetailExpense extends BaseGroupPage {\r\n public invoiceType: InvoiceType = InvoiceType.Expenses;\r\n\r\n @Watch('onlyRecurring')\r\n public onRecurringFilterChange() {\r\n this.filterInvoices();\r\n }\r\n\r\n @Watch('onlyNotYetDistributed')\r\n public onFailureFilterChange() {\r\n this.filterInvoices();\r\n }\r\n\r\n @Watch('textSearch')\r\n public onTextFilterChange(val, oldVal) {\r\n if ((val && val.length > 2) || (oldVal && oldVal.length > val.length)) {\r\n this.filterInvoices();\r\n }\r\n }\r\n\r\n public async mounted() {\r\n const self = this;\r\n\r\n this.invoiceColumns.push({\r\n title: 'IS_RECURRING',\r\n width: 125,\r\n field: 'invoice.isRecurring',\r\n locked: true,\r\n cell: this.renderRecurring,\r\n headerCell: this.translate,\r\n });\r\n\r\n await this.initInvoicesOrExpensesGroup(InvoiceType.Expenses);\r\n\r\n self.isLoaded = true;\r\n }\r\n\r\n public async openModalMultiDistribution() {\r\n const modal = this.$refs.multiIncomeDistributionModal;\r\n modal.show();\r\n }\r\n\r\n public async saveRow(a) {\r\n const self = this;\r\n\r\n const distributedInvoice = a.dataItem;\r\n const split = a.prop.split('_');\r\n let accountType = AccountType.Person;\r\n if (split[0].indexOf('group') > -1) {\r\n accountType = AccountType.GroupSavings;\r\n }\r\n\r\n const distribution = distributedInvoice.distributions.find(\r\n (d) =>\r\n d.account && d.account.relatedEntityId && d.account.relatedEntityId === parseInt(split[1]) && d.account.accountType === accountType,\r\n );\r\n distribution.amount = a.value;\r\n const amount = functions.amountLeft(distributedInvoice, distributedInvoice.invoice.amount < 0);\r\n if ((amount >= 0 && distributedInvoice.invoice.amount > 0) || (distributedInvoice.invoice.amount < 0 && amount <= 0)) {\r\n self.showPending('DISTRIBUTING_INVOICES_PENDING');\r\n const [err] = await to(financeService.saveDistribution(distributedInvoice, teamHelper.getTeamId(), this.group.groupId));\r\n if (err) {\r\n self.clearAndShowError('DISTRIBUTING_INVOICES_FAILED', err);\r\n } else {\r\n self.clearAndShowSuccess('DISTRIBUTING_INVOICES_SUCCESS');\r\n\r\n Vue.set(distributedInvoice, 'inEdit', false);\r\n Vue.set(distributedInvoice, 'amountLeftFilter', distributedInvoice.amountLeft);\r\n\r\n this.editID = null;\r\n\r\n await this.reloadGrid(InvoiceType.Expenses);\r\n await this.calculateRevenue();\r\n }\r\n } else {\r\n return self.showError(enMessages.notAllowedToDistribute);\r\n }\r\n }\r\n\r\n public renderRecurring(h, _, row) {\r\n return h('td', { class: 'bg-white k-grid-content-sticky' }, [row.dataItem.invoice.isRecurring ? 'Yes' : 'No']);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-expense.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-expense.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-expense.vue?vue&type=template&id=72381a85&\"\nimport script from \"./group-detail-expense.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-expense.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('div',{staticClass:\"card-deck mb-3\"},[_c('b-card',{staticClass:\"col-6\"},[_c('b-card-title',[_c('prd-translate-text',{attrs:{\"translate-key\":\"DISTRIBUTED_INVOICES_AMOUNT\",\"element\":\"span\"}}),_c('span',{staticClass:\"float-right font-weight-bold\",domProps:{\"innerHTML\":_vm._s(_vm.getDistributedInvoiceAmount())}})],1)],1),_c('b-card',{staticClass:\"col-6\"},[_c('b-card-title',[_c('prd-translate-text',{attrs:{\"translate-key\":\"GROUP_OPEN_INVOICES_AMOUNT\",\"element\":\"span\"}}),_c('span',{staticClass:\"float-right font-weight-bold\",domProps:{\"innerHTML\":_vm._s(_vm.getOpenInvoiceAmount())}})],1)],1)],1),_c('prd-toolbar',{staticClass:\"justify-content-between\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('prd-translate-text',{staticClass:\"text\",attrs:{\"translate-key\":\"SEARCH\",\"element\":\"span\"}}),_c('b-input',{directives:[{name:\"translate-placeholder\",rawName:\"v-translate-placeholder\",value:('PLACEHOLDER_ANYTHING_YOU_LIKE'),expression:\"'PLACEHOLDER_ANYTHING_YOU_LIKE'\"}],attrs:{\"id\":\"free-seach\"},model:{value:(_vm.textSearch),callback:function ($$v) {_vm.textSearch=$$v},expression:\"textSearch\"}})],1),_c('div',[_c('b-form-checkbox',{staticClass:\"mr-2 text-nowrap d-inline-block\",model:{value:(_vm.onlyNotYetDistributed),callback:function ($$v) {_vm.onlyNotYetDistributed=$$v},expression:\"onlyNotYetDistributed\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SHOW_NOT_YET_DISTRIBUTED\",\"element\":\"span\"}})],1),(_vm.group)?_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length > 0),expression:\"getSelectedInvoices().length > 0\"}],staticClass:\"btn btn-sm btn-primary mr-2\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed()},on:{\"click\":_vm.openModalMultiDistribution}},[_vm._v(\" Move selected income to an account \")]):_vm._e(),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length == 1),expression:\"getSelectedInvoices().length == 1\"}],staticClass:\"btn btn-sm btn-primary mr-2\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() || (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.openAmortizeModal}},[_vm._v(\" Amortize income \")]),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.reloadGrid(_vm.invoiceType)}}},[_c('i',{staticClass:\"icon-rotate-cw\"})])],1)]),(_vm.invoicesReloading)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{staticClass:\"mt-5 d-inline-block\"})],1):_c('grid',{key:_vm.reloadInvoicesGrid,style:(_vm.calculateGridHeight()),attrs:{\"data-items\":_vm.getData(),\"columns\":_vm.invoiceColumns,\"edit-field\":'inEdit',\"pageable\":true,\"row-height\":40,\"skip\":_vm.skip,\"take\":_vm.take,\"total\":_vm.getTotal(),\"resizable\":true,\"selected-field\":_vm.selectedField,\"disabled\":_vm.disableGrid},on:{\"rowclick\":_vm.rowClick,\"pagechange\":_vm.pageChangeHandler,\"selectionchange\":_vm.onSelectionChange,\"headerselectionchange\":_vm.onHeaderSelectionChange,\"saved\":_vm.saveRow,\"changed\":_vm.updateDistribution}}),(!_vm.hideCalculatedIncome)?[_c('prd-translate-text',{staticClass:\"my-5 mr-3 d-inline-block\",attrs:{\"element\":\"h3\",\"translate-key\":\"CALCULATED_INCOME\"}}),_c('prd-grid-wrapper',{style:(_vm.calculateRevenueGridHeight()),attrs:{\"data-items\":_vm.personIncomes,\"columns\":_vm.personIncomesColumns}})]:_vm._e(),(_vm.getSelectedInvoices().length > 0)?_c('move-to-account-modal',{ref:\"multiIncomeDistributionModal\",attrs:{\"options-list\":_vm.optionListReceivers(),\"selected-invoices\":_vm.getSelectedInvoices(),\"group\":_vm.group},on:{\"invoice-moved\":_vm.reloadGrid}}):_vm._e(),(_vm.selectedInvoice)?_c('amortize-modal',{ref:\"amortizeModal\",attrs:{\"invoice\":_vm.selectedInvoice,\"optionsList\":_vm.optionListReceivers()},on:{\"amortization-set\":_vm.removeAndSaveCurrentDistributions}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport BaseGroupPage from './BaseGroupPage';\r\nimport { InvoiceType } from '../../../../models/InvoiceType';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport { roleHelper } from '@/main';\r\n\r\n@Component\r\nexport default class GroupDetailIncome extends BaseGroupPage {\r\n public invoiceType: InvoiceType = InvoiceType.Income;\r\n\r\n @Watch('onlyNotYetDistributed')\r\n public onFailureFilterChange() {\r\n this.filterInvoices();\r\n }\r\n\r\n @Watch('textSearch')\r\n public onTextFilterChange(val, oldVal) {\r\n if ((val && val.length > 2) || (oldVal && oldVal.length > val.length)) {\r\n this.filterInvoices();\r\n }\r\n }\r\n\r\n public async mounted() {\r\n const self = this;\r\n\r\n await this.initInvoicesOrExpensesGroup(InvoiceType.Income);\r\n await this.initAttributions();\r\n await self.calculateRevenue();\r\n\r\n self.isLoaded = true;\r\n }\r\n\r\n public async openModalMultiDistribution() {\r\n const modal = this.$refs.multiIncomeDistributionModal;\r\n modal.show();\r\n }\r\n\r\n get hideCalculatedIncome() {\r\n return !roleHelper.checkAccess(this.groupFinanceSettings.privacyLevel, this.group);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-income.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-income.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-income.vue?vue&type=template&id=2ac208d4&\"\nimport script from \"./group-detail-income.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-income.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-translate-text',{staticClass:\"mb-2\",attrs:{\"element\":\"h2\",\"translate-key\":\"CALCULATED_INCOME\"}}),_c('div',{staticClass:\"k-toolbar k-widget k-toolbar-resizable d-block\"},[_c('div',{staticClass:\"d-flex justify-content-between align-items-start\"},[_c('grid-period-range-filter',{on:{\"filter-change\":_vm.recalculateInternalIncome}})],1)]),_c('prd-grid-wrapper',{key:_vm.invoicesReloaded,attrs:{\"data-items\":_vm.personIncomes,\"columns\":_vm.personIncomesColumns,\"row-height\":34}},[_c('grid-norecords',[_c('prd-translate-text',{attrs:{\"translate-key\":\"NO_CLAIMED_DISTRIBUTED_INVOICES\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import BaseGroupPage from './BaseGroupPage';\r\nimport Vue from 'vue';\r\nimport DistributedInvoice from '../../../../models/DistributedInvoice';\r\nimport { teamHelper, roleHelper, ecosystemHelper, compensationService } from '@/main';\r\nimport { InvoiceType } from '../../../../models/InvoiceType';\r\nimport { Member } from '../../../../models/Member';\r\nimport moment from 'moment';\r\nimport { FinanceAccount } from '../../../../models/Interfaces';\r\nimport Component from 'vue-class-component';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport to from 'await-to-js';\r\nimport Compensation from '@/models/Compensation';\r\n\r\n@Component\r\nexport default class GroupDetailAnalytics extends BaseGroupPage {\r\n public invoices: DistributedInvoice[] = [];\r\n public compensations: Compensation[] = [];\r\n public members: Member[] = [];\r\n public isLoaded: boolean = false;\r\n public financeAccounts: FinanceAccount[] = [];\r\n public invoicesReloading: boolean = false;\r\n public invoicesReloaded: number = 0;\r\n\r\n public async mounted() {\r\n const self = this;\r\n const groupKey = this.$route.params.groupKey;\r\n\r\n await this.initInvoicesOrExpensesGroup(InvoiceType.Income);\r\n\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee() && !roleHelper.isGroupLead(this.group)) {\r\n await this.$router.push({\r\n name: 'team-finances-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n groupKey,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'overview',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n this.personIncomesColumns.push(\r\n { title: 'Compensation', cell: this.formatNumber('compensation') },\r\n { title: 'Result', cell: this.formatNumber('result') },\r\n { title: 'ROI', cell: this.formatField('roi', (x: number) => `${x.toFixed()}%`, 0) });\r\n\r\n await this.initAttributions();\r\n\r\n self.isLoaded = true;\r\n }\r\n\r\n public async recalculateInternalIncome(dates) {\r\n this.invoicesReloading = true;\r\n this.showPending('CALCULATING_REVENUE_PENDING');\r\n\r\n this.invoices = [];\r\n this.compensations = [];\r\n\r\n const startPeriod = periodModule.periods.find((x) => moment(x.startDate, 'YYYY-MM-DD').format('YYYY-MM') === dates.fromFilterMonth);\r\n const endPeriod = periodModule.periods.find((x) => moment(x.startDate, 'YYYY-MM-DD').format('YYYY-MM') === dates.toFilterMonth);\r\n\r\n if (startPeriod && endPeriod) {\r\n for (let i = startPeriod.periodId; i <= endPeriod.periodId; i++) {\r\n const period = periodModule.periods.find((x) => x.periodId === i);\r\n\r\n const invoices = await this.loadInvoices(InvoiceType.Income, moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM'));\r\n const compensations = await this.loadCompensations(moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM'));\r\n this.invoices.push(...invoices);\r\n this.compensations.push(...compensations);\r\n }\r\n }\r\n\r\n await this.calculateRevenue();\r\n await this.calculateCompensations();\r\n this.clearNotifications();\r\n this.invoicesReloading = false;\r\n this.invoicesReloaded++;\r\n }\r\n\r\n public async calculateCompensations() {\r\n for (let i = 0; i < this.members.length; i++) {\r\n const member = this.members[i];\r\n const personIncome = this.personIncomes.find((x) => x.member.memberId === member.memberId);\r\n const compensation = this.getTotalCompensations(member.memberId);\r\n const result = personIncome.totalAmount - compensation;\r\n personIncome.compensation = compensation;\r\n personIncome.costs = this.getTotalCosts(member.memberId);\r\n personIncome.result = result;\r\n personIncome.roi = result && compensation\r\n ? (result / compensation) * 100\r\n : 0;\r\n }\r\n }\r\n\r\n public calculateFromPenLTariff(amount) {\r\n return (\r\n amount /\r\n (1 - this.attributionPercentages.teamAttributionsPercentage / 100 / (1 - this.attributionPercentages.groupAttributionsPercentage / 100))\r\n );\r\n }\r\n\r\n public getTotalCompensations(personId: number) {\r\n const compensations = this.compensations.filter((x) => x.member.personId === personId);\r\n const total = compensations.reduce((x, y) => {\r\n return x + y.compensation;\r\n }, 0);\r\n\r\n return this.calculateFromPenLTariff(total);\r\n }\r\n\r\n public getTotalCosts(personId: number) {\r\n const compensations = this.compensations.filter((x) => x.member.personId === personId);\r\n const total = compensations.reduce((x, y) => {\r\n return x + y.costs;\r\n }, 0);\r\n\r\n return this.calculateFromPenLTariff(total);\r\n }\r\n\r\n public async loadCompensations(period: string) {\r\n const [err, response] = await to(compensationService.getCompensations(this.teamId, this.group.groupId, period));\r\n if (err) {\r\n this.clearAndShowError('FAILED', err);\r\n return [];\r\n }\r\n return response.data.memberCompensations.map((x) => new Compensation(x));\r\n }\r\n\r\n public renderMemberRevenue(h, _, row: any) {\r\n const props = { member: row.dataItem.member };\r\n return h(Vue.component('member-name-native'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-insights.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-insights.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-insights.vue?vue&type=template&id=57c32cc8&\"\nimport script from \"./group-detail-insights.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-insights.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('prd-loader',{attrs:{\"center\":\"\"}},[_c('spinner')],1):_c('div',[_c('prd-toolbar',{attrs:{\"space-between\":\"\"}},[_c('div',{staticClass:\"d-none d-md-block\",attrs:{\"slot\":\"right\"},slot:\"right\"},[(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee() || _vm.isGroupLead)?_c('prd-translate-button',{staticClass:\"ml-2\",attrs:{\"size\":\"sm\",\"type\":\"button\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed(),\"translate-key\":\"ADD_MEMBER\"},on:{\"click\":_vm.addMemberToGroup}}):_vm._e(),_c('prd-translate-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isMember),expression:\"!isMember\"}],staticClass:\"ml-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed(),\"translate-key\":\"JOIN_GROUP\"},on:{\"click\":_vm.openModalJoinGroup}}),_c('prd-translate-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isMember && !_vm.isGroupLead),expression:\"isMember && !isGroupLead\"}],staticClass:\"ml-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed(),\"translate-key\":\"LEAVE_GROUP\"},on:{\"click\":_vm.openModalLeaveGroup}}),_c('prd-translate-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isGroupLead || _vm.$root.roleHelper.isSiteAdmin()),expression:\"isGroupLead || $root.roleHelper.isSiteAdmin()\"}],staticClass:\"ml-2\",attrs:{\"size\":\"sm\",\"variant\":\"warning\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed(),\"translate-key\":\"TRANSFER_GROUP_LEAD\"},on:{\"click\":_vm.openModalTransferGroupLead}})],1)]),_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.members,\"columns\":_vm.memberColumns,\"auto-height\":\"\"}}),_c('b-modal',{ref:\"leaveGroup\",attrs:{\"id\":\"leave-group\",\"title\":\"Leave group\",\"size\":\"sm\"}},[_c('div',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'GROUP.LEAVE_TITLE', params: { name: _vm.group.name } }),expression:\"{ key: 'GROUP.LEAVE_TITLE', params: { name: group.name } }\"}],attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"}),_c('prd-translate-text',{attrs:{\"translate-key\":\"LEAVE_QUESTION\",\"translate-group\":\"GROUP\",\"element\":\"p\"}}),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"d-inline-block px-2\",attrs:{\"variant\":\"danger\"},on:{\"click\":_vm.unenroll}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEAVE_GROUP\",\"translate-group\":\"GROUP\"}})],1)],1)],1),_c('b-modal',{ref:\"joinGroup\",attrs:{\"id\":\"join-group\",\"title\":\"Join group\",\"size\":\"sm\"}},[_c('div',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'GROUP.JOIN_TITLE', params: { name: _vm.group.name } }),expression:\"{ key: 'GROUP.JOIN_TITLE', params: { name: group.name } }\"}],attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"}),_c('prd-translate-text',{attrs:{\"translate-key\":\"JOIN_QUESTION\",\"translate-group\":\"GROUP\",\"element\":\"p\"}}),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"d-inline-block px-2\",attrs:{\"variant\":\"success\"},on:{\"click\":_vm.enroll}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"JOIN_GROUP\",\"translate-group\":\"GROUP\"}})],1)],1)],1),_c('b-modal',{ref:\"transferGroupLead\",attrs:{\"id\":\"transfer-group-lead\",\"size\":\"sm\"}},[_c('div',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'GROUP.TRANSFER_LEAD_TITLE', params: { name: _vm.group.name } }),expression:\"{ key: 'GROUP.TRANSFER_LEAD_TITLE', params: { name: group.name } }\"}],attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"}),_c('b-form-group',{attrs:{\"id\":\"groupLeadGroup\",\"label-for\":\"persons\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"element\":\"span\",\"translate-key\":\"TRANSFER_LEAD_DESCRIPTION\",\"translate-group\":\"GROUP\"},slot:\"description\"}),_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"for\":\"groupNameInput\",\"element\":\"span\",\"translate-key\":\"TRANSFER_LEAD_LABEL\",\"translate-group\":\"GROUP\"},slot:\"label\"}),_c('b-form-select',{staticClass:\"mb-3 form-control\",attrs:{\"id\":\"persons\",\"required\":\"\",\"options\":_vm.optionListMembers()},model:{value:(_vm.transferGroupLeadForm.newLeader),callback:function ($$v) {_vm.$set(_vm.transferGroupLeadForm, \"newLeader\", $$v)},expression:\"transferGroupLeadForm.newLeader\"}})],1),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"d-inline-block px-2\",attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.transferLeadership}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TRANSFER_LEAD\",\"translate-group\":\"GROUP\"}})],1)],1)],1),_c('b-modal',{ref:\"addMemberModal\",attrs:{\"id\":\"add-member\",\"title\":\"Add member to group\",\"size\":\"sm\"}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_vm._v(\"Add member to group to \"+_vm._s(_vm.group.name))]),_c('b-form-group',{attrs:{\"id\":\"memberGroup\",\"label\":\"Select member\",\"label-for\":\"members\",\"description\":\"Add a member to this group\"}},[_c('b-form-select',{staticClass:\"mb-3\",attrs:{\"id\":\"members\",\"required\":\"\",\"options\":_vm.optionListNotMembers()},model:{value:(_vm.newMember),callback:function ($$v) {_vm.newMember=$$v},expression:\"newMember\"}})],1),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"d-inline-block px-2\",attrs:{\"variant\":\"info\"},on:{\"click\":_vm.addMember}},[_vm._v(\"Add member to \"+_vm._s(_vm.group.name))])],1)],1),_c('b-modal',{ref:\"kickConfirm\",attrs:{\"id\":\"kickConfirm\",\"title\":\"Confirm remove\",\"size\":\"sm\"}},[_vm._v(\" Are you sure you want to remove this member? \"),_c('br'),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"d-inline-block\",attrs:{\"variant\":\"success\"},on:{\"click\":_vm.confirmKick}},[_vm._v(\"Yes\")]),_c('b-button',{staticClass:\"d-inline-block\",attrs:{\"variant\":\"danger\"},on:{\"click\":_vm.cancelKick}},[_vm._v(\"No\")])],1)]),_c('energy-dedication-modal',{ref:\"energyDedicationEdit\",on:{\"energy-dedications-updated\":_vm.reloadEnergyMembers}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport Vue from 'vue';\r\nimport { Member } from '@/models/Member';\r\nimport {\r\n memberHelper,\r\n loginHelper,\r\n financeAccountService,\r\n groupService,\r\n teamHelper,\r\n meService,\r\n financeService,\r\n roleHelper,\r\n ecosystemHelper,\r\n} from '@/main';\r\nimport { FinanceAccount } from '@/models/Interfaces';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport BaseGroupPage from './BaseGroupPage';\r\nimport to from 'await-to-js';\r\nimport { AxiosResponse } from 'axios';\r\nimport FinancialActivity from '@/models/FinancialActivity';\r\nimport { Route } from 'vue-router';\r\nimport { Person } from '@/models/Person';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { translateModule } from '@/store/modules/translate';\r\n\r\n@Component\r\nexport default class GroupDetailMembers extends BaseGroupPage {\r\n public members: Member[] = [];\r\n public allMembers: Person[] = [];\r\n public notMembers: Person[] = [];\r\n public isMember: boolean = false;\r\n public isGroupLead: boolean = false;\r\n public sendingAccounts: FinanceAccount[] = []; // current group saving account + current group member accounts\r\n public receivingAccounts: FinanceAccount[] = []; // all gourp incoome acounts + current group member accounts\r\n public transferGroupLeadForm: any = { newLeader: null };\r\n public newMember: number = null;\r\n public kickedMember: number = null;\r\n public totalEnergySpent: number = 0;\r\n\r\n public memberColumns: any[] = [\r\n { cell: this.renderFullname, title: 'Name', field: 'firstName' },\r\n { cell: this.renderGrouprole, title: 'Grouprole', field: 'firstName' },\r\n { cell: this.renderEnergyDedication, title: 'Energy dedication' },\r\n { title: 'E-mail', field: 'emailAddress' },\r\n ];\r\n\r\n public async created() {\r\n const self = this;\r\n this.isGroupLead = roleHelper.isGroupLead(this.group);\r\n\r\n if (this.isGroupLead || roleHelper.isSiteAdmin()) {\r\n this.memberColumns.push({ title: 'Actions', cell: this.renderActions, width: 150 });\r\n }\r\n\r\n const membersEnergyResponse = await groupService.getEnergyDedication(\r\n teamHelper.currentTeamId,\r\n self.group.groupId,\r\n periodModule.selectedPeriod,\r\n );\r\n\r\n const members = this.group.members;\r\n for (let i = 0; i < members.length; i++) {\r\n const energy = membersEnergyResponse.data.find((memb) => memb.personId === members[i].memberId);\r\n members[i].energyDedication = energy ? energy.amount : 0;\r\n this.members.push(members[i]);\r\n }\r\n\r\n this.isMember =\r\n this.members.filter((item: Member) => {\r\n return item.memberId === loginHelper.getUser().personId;\r\n }).length > 0;\r\n\r\n if (this.group) {\r\n this.sendingAccounts.push(this.group.account);\r\n }\r\n\r\n const groupAccounts = (await financeAccountService.getAccounts(\r\n AccountType.GroupIncome,\r\n teamHelper.currentTeam.id,\r\n periodModule.selectedPeriod,\r\n )).data;\r\n this.receivingAccounts = this.receivingAccounts.concat(groupAccounts);\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async reloadEnergyMembers() {\r\n const membersEnergyResponse = await groupService.getEnergyDedication(\r\n teamHelper.currentTeamId,\r\n this.group.groupId,\r\n periodModule.selectedPeriod,\r\n );\r\n\r\n for (const member of this.members) {\r\n const energy = membersEnergyResponse.data.find((memb) => memb.personId === member.memberId);\r\n member.energyDedication = energy ? energy.amount : 0;\r\n }\r\n }\r\n\r\n public async confirmKick() {\r\n const self = this;\r\n this.showPending('REMOVING_MEMBER_PENDING');\r\n\r\n const [err] = await to(groupService.kickMember(this.group.groupId, this.kickedMember, teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (err) {\r\n return this.clearAndShowError('REMOVING_MEMBER_FAILED', err);\r\n }\r\n\r\n self.$refs.kickConfirm.hide();\r\n this.clearAndShowSuccess('REMOVING_MEMBER_SUCCESS');\r\n }\r\n\r\n public cancelKick() {\r\n this.$refs.kickConfirm.hide();\r\n }\r\n\r\n public async checkValidKick(memberId) {\r\n const [err, response] = await to>(\r\n financeService.getPersonFinancialActiviy(teamHelper.getTeamId(), this.group.groupId, memberId, periodModule.selectedPeriod),\r\n );\r\n if (err) {\r\n this.clearAndShowError('Failed to check financial activity for this member.', err);\r\n return false;\r\n }\r\n\r\n return !response.data.isCompensated;\r\n }\r\n\r\n public async kickMember(item: Member) {\r\n const result = await this.checkValidKick(item.memberId);\r\n if (result) {\r\n this.kickedMember = item.memberId;\r\n this.$refs.kickConfirm.show();\r\n } else {\r\n this.clearAndShowError(`There are financial activities in this period for this person. You aren't allowed to remove this person.`, null);\r\n }\r\n }\r\n\r\n public renderEnergyDedication(h, _, row) {\r\n const props = {\r\n value: row.dataItem.energyDedication,\r\n showPercentage: true,\r\n action: null,\r\n };\r\n\r\n if (roleHelper.isGroupLead(this.group) || roleHelper.isSiteAdmin()) {\r\n props.action = async () => {\r\n await this.openEditEnergyEdicationModal(row.dataItem);\r\n };\r\n }\r\n return h(Vue.component('grid-percentage'), { props });\r\n }\r\n\r\n public async openEditEnergyEdicationModal(member: Member) {\r\n const self = this;\r\n const modal = self.$refs.energyDedicationEdit;\r\n\r\n await modal.setMember(member);\r\n modal.show();\r\n }\r\n\r\n public hideEnergyDedicationModal() {\r\n this.$refs.energyDedicationEdit.hide();\r\n }\r\n\r\n public renderFullname(h, _, row) {\r\n const member = row.dataItem;\r\n const name = `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n return h('td', [name]);\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n const actions = [\r\n { title: 'Remove member from group', function: this.kickMember },\r\n { title: 'Edit energy dedication', function: this.openEditEnergyEdicationModal },\r\n ];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n public renderGrouprole(h, _, row: { dataItem: Member }) {\r\n const role = typeof this.group.groupLead !== 'undefined' && this.group.groupLead.memberId === row.dataItem.memberId ? 'Group lead' : 'Member';\r\n return h('td', [role]);\r\n }\r\n\r\n public exploreAllGroups(): Promise {\r\n return this.$router.push({\r\n name: 'team-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n team: teamHelper.teamParam,\r\n },\r\n });\r\n }\r\n\r\n public openModalJoinGroup(): void {\r\n const self = this;\r\n const modal = self.$refs.joinGroup;\r\n modal.show();\r\n }\r\n\r\n public async openModalLeaveGroup() {\r\n const self = this;\r\n const result = await this.checkValidKick(loginHelper.getUser().personId);\r\n\r\n if (result) {\r\n const modal = self.$refs.leaveGroup;\r\n modal.show();\r\n } else {\r\n this.clearAndShowError(\r\n `There are financial activities in this period for this person. You aren't allowed to leave this group in this period.`,\r\n null,\r\n );\r\n }\r\n }\r\n\r\n public openModalTransferGroupLead(): void {\r\n const self = this;\r\n const modal = self.$refs.transferGroupLead;\r\n modal.show();\r\n }\r\n\r\n public optionListMembers(): any[] {\r\n const filteredMembers = [{ value: null, text: translateModule.value('SELECT_A_MEMBER', 'DROPDOWN') }];\r\n\r\n this.members.forEach((member) => {\r\n if (!this.group.groupLead || (this.group.groupLead && member.memberId !== this.group.groupLead.memberId)) {\r\n filteredMembers.push({\r\n value: member.memberId,\r\n text: member.firstName + ' ' + (member.insertion ? member.insertion + ' ' : '') + member.lastName,\r\n });\r\n }\r\n });\r\n\r\n return filteredMembers;\r\n }\r\n\r\n public optionListNotMembers(): any[] {\r\n const list = this.notMembers.map((member) => {\r\n return { value: member.personId, text: member.firstName + ' ' + (member.insertion ? member.insertion + ' ' : '') + member.lastName };\r\n });\r\n\r\n list.unshift({ value: null, text: translateModule.value('SELECT_A_MEMBER', 'DROPDOWN') });\r\n\r\n return list;\r\n }\r\n\r\n public optionListSenders(): any[] {\r\n const list = this.sendingAccounts.map((sender) => {\r\n return { value: sender.accountId, text: sender.name };\r\n });\r\n\r\n list.unshift({ value: null, text: 'Select an account' });\r\n\r\n return list;\r\n }\r\n\r\n public grouprole(member: any): string {\r\n return typeof this.group.groupLead !== 'undefined' && this.group.groupLead.memberId === member.id ? 'Group lead' : 'Member';\r\n }\r\n\r\n public async transferLeadership(evt: any) {\r\n const self = this;\r\n evt.preventDefault();\r\n const modal = self.$refs.transferGroupLead;\r\n\r\n if (!this.transferGroupLeadForm.newLeader) {\r\n return this.showError('Select a valid member');\r\n }\r\n\r\n self.showPending('TRANSFER_LEADERSHIP_PENDING');\r\n const [err] = await to(\r\n groupService.transferLeadership(\r\n teamHelper.currentTeamId,\r\n this.group.groupId,\r\n { newLeader: this.transferGroupLeadForm.newLeader },\r\n periodModule.selectedPeriod,\r\n ),\r\n );\r\n if (err) {\r\n return self.clearAndShowError('TRANSFER_LEADERSHIP_FAILED', err);\r\n }\r\n\r\n self.clearAndShowSuccess('TRANSFER_LEADERSHIP_SUCCESS');\r\n modal.hide();\r\n self.isGroupLead = self.transferGroupLeadForm.newLeader === loginHelper.getUser().personId;\r\n\r\n const newLeader = self.members.find((item: Member) => {\r\n return item.memberId === self.transferGroupLeadForm.newLeader;\r\n });\r\n\r\n if (newLeader) {\r\n self.group.groupLead.memberId = newLeader.memberId;\r\n self.group.groupLead.firstName = newLeader.firstName;\r\n self.group.groupLead.insertion = newLeader.insertion;\r\n self.group.groupLead.lastName = newLeader.lastName;\r\n self.transferGroupLeadForm.oldLeader = newLeader.memberId;\r\n }\r\n }\r\n\r\n public async enroll() {\r\n const self = this;\r\n self.showPending('JOINING_GROUP_PENDING');\r\n const [err] = await to(groupService.enroll(this.group.groupId, teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n\r\n if (err) {\r\n return self.clearAndShowError('JOINING_GROUP_FAILED', err);\r\n }\r\n\r\n const modal = self.$refs.joinGroup;\r\n const [profErr, profileResponse] = await to(meService.profile());\r\n if (profErr) {\r\n console.log(profErr);\r\n }\r\n const profile = profileResponse;\r\n self.isMember = true;\r\n self.members.push(new Member(profile));\r\n self.clearAndShowSuccess('JOINING_GROUP_SUCCESS');\r\n modal.hide();\r\n }\r\n\r\n public async unenroll() {\r\n const self = this;\r\n self.showPending('LEAVING_GROUP_PENDING');\r\n const [err] = await to(groupService.unenroll(this.group.groupId, teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n\r\n if (err) {\r\n return self.clearAndShowError('LEAVING_GROUP_FAILED', err);\r\n }\r\n\r\n const modal = self.$refs.leaveGroup;\r\n const myself = self.members.findIndex((item: Member) => item.memberId === loginHelper.getUser().personId);\r\n self.members.splice(myself, 1);\r\n self.isMember = false;\r\n self.clearAndShowSuccess('LEAVING_GROUP_SUCCESS');\r\n modal.hide();\r\n }\r\n\r\n public fullName(item: any): string {\r\n const member = new Member(item);\r\n return member.getFullName();\r\n }\r\n\r\n public async addMemberToGroup() {\r\n const self = this;\r\n self.allMembers = await memberHelper.getMembers(true);\r\n self.notMembers = self.allMembers.filter((member: Person) => {\r\n return !member.inGroup(self.group.groupId);\r\n });\r\n\r\n const modal = self.$refs.addMemberModal;\r\n modal.show();\r\n }\r\n\r\n public async addMember() {\r\n const self = this;\r\n self.showPending('JOINING_GROUP_PENDING');\r\n\r\n const [err] = await to(groupService.addMember(this.newMember, this.group.groupId, teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (err) {\r\n return this.clearAndShowError('JOINING_GROUP_FAILED', err);\r\n }\r\n\r\n const member = this.notMembers.find((m) => m.personId === this.newMember);\r\n\r\n const profile = member;\r\n\r\n this.members.push(new Member(profile));\r\n\r\n self.clearAndShowSuccess('JOINING_GROUP_SUCCESS');\r\n\r\n const modal = self.$refs.addMemberModal;\r\n modal.hide();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-members.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-members.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-members.vue?vue&type=template&id=46801d92&\"\nimport script from \"./group-detail-members.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-members.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6 col-lg-5 col-xl-4\"},[_c('h3',{staticClass:\"mb-2\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"GROUP_RESULT\"}})],1),_c('b-card',[(!_vm.isLoaded)?_c('div',{staticClass:\"d-flex justify-content-center p-4\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('table',{staticClass:\"table table-sm table-borderless\"},[_c('tr',[_c('td',{staticClass:\"pb-4 font-weight-bold\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"PREVIOUS_BUDGET\"}})],1),_c('td',{staticClass:\"pb-4 text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.startBalance)))])]),_c('tr',[_c('td',{staticClass:\"pb-4\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_INCOME\"}})],1),_c('td',{staticClass:\"pb-4 text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.income)))])]),_c('tr',[_c('td',[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_COMPENSATIONS\"}})],1),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.compensations)))])]),_c('tr',[_c('td',[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_ATTRIBUTIONS\"}})],1),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.attributions)))])]),_c('tr',[_c('td',[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_EXPENSES\"}})],1),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.expenses)))])]),_c('tr',[_c('td',[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_NON_RECURRING_EXPENSES\"}})],1),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.nonRecurringExpenses)))])]),_c('tr',[_c('td',[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_OUTGOING_TRANSFERS\"}})],1),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.transferredAmount)))])]),_c('tr',[_c('td',{attrs:{\"colspan\":\"3\"}},[_c('hr',{staticClass:\"mb-0 mt-0\"})])]),_c('tr',[_c('td',[_c('prd-translate-text',{attrs:{\"translate-key\":\"TOTAL_COSTS\"}})],1),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.totalCosts)))])]),_c('tr',[_c('td',{staticClass:\"pt-4 font-weight-bold\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"RESULT\"}})],1),_c('td',{staticClass:\"pt-4 text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.result)))])]),_c('tr',[_c('td',{staticClass:\"pt-4 font-weight-bold\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"NEW_BUDGET\"}})],1),_c('td',{staticClass:\"pt-4 text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.currentBalance)))])]),_c('tr',[_c('td',{attrs:{\"colspan\":\"3\"}},[_c('hr')])]),_c('tr',[_c('td',{staticClass:\"pt-4\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"GROUP_OPEN_INVOICES\"}})],1),_c('td',{staticClass:\"pt-4 text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.openInvoiceAmount)))])]),_c('tr',[_c('td',[_c('prd-translate-text',{attrs:{\"translate-key\":\"GROUP_OPEN_EXPENSES\"}})],1),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.openExpenseAmount)))])]),_c('tr',[_c('td',{staticClass:\"pt-4 font-weight-bold\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"GROUP_SAFETY_ZONE\"}})],1),_c('td',{staticClass:\"pt-4 text-right\",attrs:{\"colspan\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"formatNumber\")(_vm.groupResults.safetyZone))+\" \"),_c('prd-translate-text',{attrs:{\"translate-key\":\"MONTHS\",\"element\":\"span\"}})],1)])])])],1),(_vm.isLoaded && !_vm.isBuitenBeschouwingGroup && !_vm.hideMemberCompensations)?_c('div',{staticClass:\"col-xl-8\"},[_c('h3',{staticClass:\"mt-5 mt-xl-0 mb-2\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"COMPENSATIONS\"}})],1),_c('prd-toolbar',[((_vm.$root.roleHelper.isGroupLead(_vm.group)) || _vm.$root.roleHelper.isSiteAdmin(_vm.group))?_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"action\":_vm.compensateMembers,\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed(),\"translate-key\":\"COMPENSATE_ALL_MEMBERS\"}}):_vm._e()],1),_c('prd-grid-wrapper',{style:({ height: '533px' }),attrs:{\"data-items\":_vm.groupCompensations,\"columns\":_vm.compensationColumns}})],1):_vm._e(),(_vm.isLoaded && !_vm.isBuitenBeschouwingGroup && !_vm.hideMemberCompensations)?_c('div',{staticClass:\"col-xl-12\"},[_c('h3',{staticClass:\"mt-5 mb-2\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"MEMBER_COMPENSATIONS\"}})],1),_c('prd-toolbar',[(_vm.$root.inEditMode)?_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"translate-key\":\"ADD_COMPENSATION\"}}):_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ADD_COMPENSATION'),expression:\"'ADD_COMPENSATION'\"}],staticClass:\"btn btn-sm btn-primary\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed()},on:{\"click\":function($event){return _vm.$refs.newTransferModal.init()}}})],1),_c('prd-grid-wrapper',{key:_vm.transferGridUpdate,attrs:{\"data-items\":_vm.personTranfers,\"row-height\":40,\"columns\":_vm.transferColumns}}),_c('recurring-transfers-grid',{ref:\"recurringTransfers\",staticClass:\"mt-5\",attrs:{\"compensations\":true,\"teamId\":_vm.teamId,\"groupId\":_vm.$route.params.groupId}})],1):_vm._e(),(_vm.isLoaded && !_vm.isBuitenBeschouwingGroup)?_c('div',[_c('transfer-modal',{ref:\"newTransferModal\",attrs:{\"member-compensation\":true,\"title\":_vm.transferTitle,\"group\":_vm.group,\"button-text\":'Compensate member',\"transfer\":_vm.transfer,\"selectedTeamId\":_vm.teamId,\"type\":_vm.transferModalType},on:{\"transfer-completed\":_vm.reloadData}})],1):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport FinanceGroup from '../../../../models/FinanceGroup';\r\nimport {\r\n periodFilterHelper,\r\n loginHelper,\r\n teamHelper,\r\n roleHelper,\r\n groupService,\r\n compensationService,\r\n financeGroupService,\r\n transferService,\r\n} from '@/main';\r\nimport FinanceTotal from '../../../../models/FinanceTotal';\r\nimport Transfer from '../../../../models/Transfer';\r\nimport Vue from 'vue';\r\nimport BaseGroupPage from './BaseGroupPage';\r\nimport { Member } from '../../../../models/Member';\r\nimport { to } from 'await-to-js';\r\nimport { FinanceAccount } from '@/models/Interfaces';\r\nimport { TransferType } from '@/models/TransferType';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component({\r\n filters: {\r\n formatNumber(n: any) {\r\n if (!n || typeof n === 'undefined' || n == null) {\r\n return 0;\r\n }\r\n\r\n if (n > -1000 && n < 1000) {\r\n return n.round(2).replace('.', ',');\r\n }\r\n\r\n const parts = n.round(2).split('.');\r\n const chars = [];\r\n let i = 0;\r\n\r\n if (parts.length === 2) {\r\n chars.push(`,${parts[1]}`);\r\n }\r\n\r\n parts[0]\r\n .split('')\r\n .reverse()\r\n .forEach((c) => {\r\n chars.push(c);\r\n i++;\r\n if (i > 0 && i % 3 === 0) {\r\n chars.push(' ');\r\n }\r\n });\r\n\r\n return chars.reverse().join('');\r\n },\r\n },\r\n})\r\nexport default class GroupDetailOverview extends BaseGroupPage {\r\n public compensations: any = null;\r\n public groupFinance: FinanceGroup = new FinanceGroup();\r\n public isLoaded: boolean = false;\r\n\r\n public members: Member[] = null;\r\n public groupCompensations: any = [];\r\n\r\n public transferGridUpdate: number = 0;\r\n public transfer: Transfer = new Transfer();\r\n public transferModalType: TransferType = TransferType.GroupToPerson;\r\n public teamId: number = null;\r\n\r\n public receivingAccounts: FinanceAccount[] = [];\r\n\r\n public compensationColumns: any[] = [\r\n { title: 'Member', field: 'member' },\r\n { title: 'Compensation', field: 'compensation', cell: this.formatCompensationValue },\r\n { title: 'Energy dedication', field: 'energyDedication', cell: this.renderEnergyDedication },\r\n { title: 'Financial compensation', field: 'financialCompensation', cell: this.renderPercentageCompensation },\r\n ];\r\n\r\n public calculatedAmount: number = 0;\r\n public teamAttribution: number = 0;\r\n public groupResults: any = null;\r\n\r\n public editMode: boolean = false;\r\n public editIsLoading: boolean = false;\r\n\r\n get transferTitle() {\r\n return `Compensate member of ${this.group.name}`;\r\n }\r\n\r\n public async mounted() {\r\n await this.loadGroupFinanceSettings();\r\n this.isBuitenBeschouwingGroup = this.groupFinanceSettings && this.groupFinanceSettings.applyMissingAttributionsOnTransfer;\r\n\r\n const financeTotal = new FinanceTotal(this.teamId);\r\n try {\r\n this.groupFinance = await financeTotal.getGroupFinance(this.group, periodModule.selectedPeriod);\r\n this.groupResults = await this.getGroupResults();\r\n } catch (e) {\r\n this.groupFinance = {} as FinanceGroup;\r\n this.clearAndShowError('Could not get group finance', e);\r\n }\r\n\r\n if (this.isBuitenBeschouwingGroup) {\r\n this.$emit('activate-class');\r\n this.isLoaded = true;\r\n return;\r\n }\r\n\r\n this.members = this.group.members.map((member: any) => new Member(member));\r\n const membersEnergyResponse = await groupService.getEnergyDedication(\r\n teamHelper.currentTeamId,\r\n this.group.groupId,\r\n periodModule.selectedPeriod,\r\n );\r\n membersEnergyResponse.data.forEach((energy) => {\r\n const foundMember = this.group.members.find((member) => member.memberId === energy.personId);\r\n if (foundMember) {\r\n foundMember.energyDedication = energy.amount;\r\n }\r\n });\r\n\r\n if (this.groupFinance.compensations) {\r\n await this.mutateGridCompensationData(this.groupFinance.compensations);\r\n }\r\n\r\n this.$emit('activate-class');\r\n\r\n this.teamId = teamHelper.getTeamId();\r\n this.isLoaded = true;\r\n }\r\n\r\n get personTranfers() {\r\n return this.groupFinance.transfers.filter((x) => x.transferType === 'GroupToPerson');\r\n }\r\n\r\n get hideMemberCompensations() {\r\n return !roleHelper.checkAccess(this.groupFinanceSettings.privacyLevel, this.group);\r\n }\r\n\r\n public async reloadData() {\r\n this.isLoaded = false;\r\n\r\n const financeTotal = new FinanceTotal(this.teamId);\r\n try {\r\n this.groupFinance = await financeTotal.getGroupFinance(this.group, periodModule.selectedPeriod);\r\n this.groupResults = await this.getGroupResults();\r\n } catch (e) {\r\n this.groupFinance = {} as FinanceGroup;\r\n this.clearAndShowError('Could not get group finance', e);\r\n }\r\n\r\n if (this.isBuitenBeschouwingGroup) {\r\n this.$emit('activate-class');\r\n this.isLoaded = true;\r\n return;\r\n }\r\n\r\n if (this.groupFinance.compensations) {\r\n await this.mutateGridCompensationData(this.groupFinance.compensations);\r\n }\r\n\r\n this.isLoaded = true;\r\n\r\n if (this.$refs.recurringTransfers) {\r\n await this.$refs.recurringTransfers.refreshData();\r\n }\r\n this.transfer = new Transfer();\r\n }\r\n\r\n public async getGroupResults() {\r\n const [err, response] = await to(financeGroupService.getGroupResults(this.group.groupId, periodModule.selectedPeriod));\r\n if (err) {\r\n console.error(err);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async compensateMembers() {\r\n this.showPending('COMPENSATE_MEMBERS_PENDING');\r\n\r\n const [err] = await to(financeGroupService.compenstateCosts(this.group.groupId, teamHelper.currentTeamId));\r\n if (err) {\r\n return this.clearAndShowError('COMPENSATE_MEMBERS_FAILED', err);\r\n }\r\n\r\n await this.reloadGridCompensationData();\r\n await this.reloadData();\r\n this.clearAndShowSuccess('COMPENSATE_MEMBERS_SUCCCESS');\r\n this.transferGridUpdate++;\r\n }\r\n\r\n public getAccount(accounts, id) {\r\n return accounts.find((account) => {\r\n return account.accountId === id;\r\n });\r\n }\r\n\r\n public renderMemberInitiator(h, _, row) {\r\n let member = row.dataItem.initiatorPerson;\r\n\r\n if (!member) {\r\n member = this.members.find((m: Member) => m.memberId === row.dataItem.initiator);\r\n }\r\n\r\n if (!member) {\r\n member = new Member();\r\n member.firstName = 'Not available';\r\n }\r\n\r\n return this.renderMember(h, member);\r\n }\r\n\r\n public calculateTransferGridHeight() {\r\n if (this.groupFinance.transfers.length < 25) {\r\n return { height: `${39 + this.groupFinance.transfers.length * 47}px` };\r\n }\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n let actions = [];\r\n const userId = loginHelper.getUser().personId;\r\n const initiator = row.dataItem && typeof row.dataItem.initiator !== 'undefined' ? parseInt(row.dataItem.initiator) : 0;\r\n\r\n if (initiator === userId || roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee()) {\r\n actions = [\r\n { title: 'Edit', function: this.editCompensation, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n { title: 'Delete', function: this.removeCompensation, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n ];\r\n }\r\n\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n public renderPercentageCompensation(h, _, row) {\r\n let additionalPercentages = 0;\r\n\r\n const attribition = this.teamAttributions.find((x) => x.targetGroup === this.group.groupId);\r\n if (attribition) {\r\n additionalPercentages += attribition.percentage;\r\n }\r\n\r\n return h('td', [\r\n isNaN(row.dataItem.financialCompensation)\r\n ? row.dataItem.financialCompensation\r\n : // tslint:disable-next-line: restrict-plus-operands\r\n `${(row.dataItem.financialCompensation + additionalPercentages).toFixed(2)}%`,\r\n ]);\r\n }\r\n\r\n public formatCompensationValue(h, _, row) {\r\n const props = { value: row.dataItem.compensation };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public async editCompensation(item) {\r\n Vue.nextTick(async () => {\r\n this.$refs.newTransferModal.editMode = true;\r\n await this.$refs.newTransferModal.initTransfer(item);\r\n });\r\n }\r\n\r\n public async removeCompensation(item) {\r\n await transferService.deleteTransfer(item.transferId);\r\n\r\n const transfer = this.groupFinance.transfers.findIndex((t: Transfer) => {\r\n return t.transferId === item.transferId;\r\n });\r\n\r\n this.groupFinance.transfers.splice(transfer, 1);\r\n this.transferGridUpdate++;\r\n await this.reloadGridCompensationData();\r\n }\r\n\r\n private async mutateGridCompensationData(compensations) {\r\n this.groupCompensations = [];\r\n\r\n this.groupFinance.setCompensations(compensations);\r\n await this.groupFinance.recalculateTotals();\r\n\r\n compensations.forEach((compensation: any) => {\r\n const member = this.group.members.find((m) => m.memberId === compensation.member.personId);\r\n const energyDedication = member ? (member.energyDedication ? member.energyDedication : 0) : 0;\r\n const totalCompensations = parseFloat(compensation.compensation) + parseFloat(compensation.invoiceIncome);\r\n\r\n const financialCompensation = (totalCompensations / (compensation.costs * (energyDedication / 100))) * 100;\r\n this.groupCompensations.push({\r\n member: compensation.member.name,\r\n memberObj: compensation.member,\r\n compensation: totalCompensations,\r\n costs: compensation.costs,\r\n energyDedication,\r\n financialCompensation:\r\n isNaN(totalCompensations) || totalCompensations === 0\r\n ? 'Missing compensations'\r\n : isFinite(financialCompensation)\r\n ? financialCompensation\r\n : 'Costs or energy dedication zero',\r\n });\r\n });\r\n }\r\n\r\n private async reloadGridCompensationData() {\r\n const [errC, responseC] = await to(\r\n compensationService.getCompensations(teamHelper.currentTeam.id, this.group.groupId, periodModule.selectedPeriod),\r\n );\r\n if (errC) {\r\n this.clearAndShowError(errC, errC);\r\n }\r\n await this.mutateGridCompensationData(responseC.data.memberCompensations);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-overview.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-overview.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-overview.vue?vue&type=template&id=419c944a&\"\nimport script from \"./group-detail-overview.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-overview.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('prd-loader',[_c('spinner')],1):_c('div',[_c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-tabs',{attrs:{\"vertical\":\"\",\"no-nav-style\":\"\",\"nav-wrapper-class\":\"border-right\",\"nav-class\":\"nav-tabs-vertical\",\"content-class\":\"\"}},[(_vm.section == 'directory' && (_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isGroupLead(_vm.group)))?[_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"GROUP_CONNECTORS\"},slot:\"title\"}),_c('div',{staticClass:\"py-3 px-3 pt-1\"},[_c('connectors',{attrs:{\"connectors\":_vm.connectors,\"group\":_vm.group}})],1)],1),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"DELETE_GROUP\"},slot:\"title\"}),_c('div',{staticClass:\"py-3 px-3\"},[_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"DELETE_GROUP\"}}),_c('prd-translate-text',{staticClass:\"mb-3\",attrs:{\"element\":\"p\",\"translate-key\":\"DELETE_GROUP_INFO\"}}),_c('ul',{staticClass:\"mt-2\"},[_c('li',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"DELETE_GROUP_NO_EXPENSES\"}}),(_vm.financialGroupActivity.expensesInvoiceCount === 0)?_c('span',[_c('span',{staticClass:\"k-icon k-i-check text-success\"})]):_c('span',[_c('span',{staticClass:\"k-icon k-i-close text-danger\"})])],1),_c('li',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"DELETE_GROUP_NO_INVOICES\"}}),(_vm.financialGroupActivity.incomeInvoicesCount === 0)?_c('span',[_c('span',{staticClass:\"k-icon k-i-check text-success\"})]):_c('span',[_c('span',{staticClass:\"k-icon k-i-close text-danger\"})])],1),_c('li',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"DELETE_GROUP_ZERO_BALANCE\"}}),(_vm.financialGroupActivity.savingBalance === 0)?_c('span',[_c('span',{staticClass:\"k-icon k-i-check text-success\"})]):_c('span',[_c('span',{staticClass:\"k-icon k-i-close text-danger\"})])],1),_c('li',[(!_vm.financialGroupActivity.attributionSources || _vm.financialGroupActivity.attributionSources.length === 0)?[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"DELETE_GROUP_NO_ATTRIBUTION\"}}),_c('span',{staticClass:\"k-icon k-i-check text-success\"})]:[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"DELETE_GROUP_HAS_ATTRIBUTION\"}}),_c('span',{staticClass:\"k-icon k-i-close text-danger\"}),_c('ul',{staticClass:\"mt-2\"},_vm._l((_vm.financialGroupActivity.attributionSources),function(source){return _c('li',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(source.groupName)+\" (\"+_vm._s(source.teamName)+\") \")])}),0),_c('ul',{staticClass:\"list-unstyled mt-2\"},[_c('li',[_c('prd-translate-button',{staticClass:\"mt-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"translate-key\":\"DELETE_GROUP_POINTED_TO_ME\"},on:{\"click\":_vm.showRemoveAllAttributionsPointedToMeModal}})],1)])]],2)]),_c('prd-translate-text',{staticClass:\"mb-3\",attrs:{\"element\":\"p\",\"translate-key\":\"DELETE_GROUP_APP_CONDITIONS\"}}),_c('ul',[_c('li',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"DELETE_GROUP_PERIODS_CLOSED\"}}),(_vm.$root.periodFilterHelper.areAllPreviousPeriodsClosed())?_c('span',[_c('span',{staticClass:\"k-icon k-i-check text-success\"})]):_c('span',[_c('span',{staticClass:\"k-icon k-i-close text-danger\"})])],1),_c('li',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"DELETE_GROUP_CURRENT_PERIOD_OPEN\"}}),(!_vm.$root.periodFilterHelper.isCurrentPeriodClosed())?_c('span',[_c('span',{staticClass:\"k-icon k-i-check text-success\"})]):_c('span',[_c('span',{staticClass:\"k-icon k-i-close text-danger\"})])],1)]),_c('b-form',{staticClass:\"mt-5\"},[_c('prd-translate-button',{attrs:{\"variant\":\"danger\",\"disabled\":!_vm.$root.periodFilterHelper.areAllPreviousPeriodsClosed() ||\n _vm.$root.periodFilterHelper.isCurrentPeriodClosed() ||\n (!_vm.$root.roleHelper.isSiteAdmin() &&\n _vm.$root.roleHelper.isFinanceEmployee() &&\n _vm.$root.roleHelper.isGroupLead(_vm.group)),\"translate-key\":\"DELETE_WITH_ICON\"},on:{\"click\":_vm.deleteGroup}})],1)],1)],1)]:_vm._e(),(_vm.section == 'finances')?[_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"GROUP_ATTRIBUTIONS\"},slot:\"title\"}),(_vm.groupAttributionsLoading || _vm.resourceAttributionsLoading)?_c('div',{staticClass:\"d-flex justify-content-center py-5\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('div',{staticClass:\"py-3 px-3\"},[_c('div',{staticClass:\"mw-600 mb-5\"},[_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"GROUP_BASE_TEMPLATE\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"GROUP_BASE_TEMPLATE_DESCRIPTION\"}}),(_vm.derivedFromTemplate)?_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"info\"}},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'GROUP_ATTRIBUTIONS_INHERETED', params: { templateName: _vm.getTemplateName() } }),expression:\"{ key: 'GROUP_ATTRIBUTIONS_INHERETED', params: { templateName: getTemplateName() } }\"}]})]):_vm._e(),_c('prd-multiselect',{staticClass:\"mb-3\",attrs:{\"options\":_vm.templates,\"placeholder\":\"Select a template\",\"label\":\"name\",\"allowEmpty\":false,\"disabled\":_vm.isLoading},on:{\"select\":function($event){_vm.templateEdited = true;}},model:{value:(_vm.selectedTemplate),callback:function ($$v) {_vm.selectedTemplate=$$v},expression:\"selectedTemplate\"}}),(_vm.templateEdited)?_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"warning\"}},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'GROUP_ATTRIBUTIONS_EXPLANATION_CHANGE' }),expression:\"{ key: 'GROUP_ATTRIBUTIONS_EXPLANATION_CHANGE' }\"}]})]):_vm._e(),(_vm.templateEdited)?_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"translate-key\":\"GROUP_BASE_TEMPLATE_UPDATE\"},on:{\"click\":_vm.updateTemplate}}):_vm._e()],1),(!_vm.derivedFromTemplate)?[_c('hr',{staticClass:\"mt-5\"}),_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"GROUP_ATTRIBUTIONS\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"GROUP_ATTRIBUTIONS_CHANGE_MESSAGE\"}}),_c('form',{staticClass:\"d-block mw-600\"},[_vm._l((_vm.resourceAttributions),function(attribution){return _c('div',{key:attribution.id,staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(attribution.targetTeamModel),expression:\"attribution.targetTeamModel\"}],staticClass:\"form-control\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(attribution, \"targetTeamModel\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.teamChange(attribution)}]}},[_c('option',{attrs:{\"value\":\"\"}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_TEAM\"}})],1),_vm._l((_vm.teams),function(team){return _c('option',{key:team.name,domProps:{\"value\":team}},[_vm._v(\" \"+_vm._s(team.name)+\" \")])})],2)]),_c('div',{staticClass:\"col-md-4\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(attribution.targetGroupModel),expression:\"attribution.targetGroupModel\"}],staticClass:\"form-control\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(attribution, \"targetGroupModel\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"\"}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_GROUP\"}})],1),_vm._l((attribution.groups),function(group){return _c('option',{key:group.name,domProps:{\"value\":group}},[_vm._v(\" \"+_vm._s(group.name)+\" \")])})],2)]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"input-group\"},[_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent\"},[_vm._v(\"%\")])]),_c('prd-numeric-input',{staticClass:\"form-control text-right border-left-0\",attrs:{\"output-dec-seperator\":\",\"},model:{value:(attribution.percentage),callback:function ($$v) {_vm.$set(attribution, \"percentage\", $$v)},expression:\"attribution.percentage\"}})],1)]),_c('div',{staticClass:\"col-md-1\"},[(\n _vm.$root.roleHelper.isSiteAdmin() ||\n _vm.$root.roleHelper.isFinanceEmployee() ||\n _vm.$root.roleHelper.isGroupLead(_vm.group)\n )?_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.deleteServiceAttribution(attribution)}}},[_c('i',{staticClass:\"icon-trash-2\"})]):_vm._e()])])])}),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee() || _vm.$root.roleHelper.isGroupLead(_vm.group))?_c('div',{staticClass:\"form-row\"},[(!_vm.copingLoading)?[_c('prd-translate-button',{staticClass:\"float-left\",attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"translate-key\":\"ADD_ATTRIBUTION\"},on:{\"click\":function($event){return _vm.addServiceAttribution()}}}),_c('prd-translate-text',{staticClass:\"float-left my-2 mx-3\",attrs:{\"translate-key\":\"OR\"}}),_c('div',{staticClass:\"input-group col-md-6 float-left\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.importServiceAttributionGroupId),expression:\"importServiceAttributionGroupId\"}],staticClass:\"form-control\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.importServiceAttributionGroupId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.groups),function(group){return _c('option',{key:group.name,domProps:{\"value\":group.groupId}},[_vm._v(\" \"+_vm._s(group.name)+\" \")])}),0),_c('prd-translate-button',{staticClass:\"input-group-append\",attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"disabled\":!_vm.importServiceAttributionGroupId,\"translate-key\":\"COPY_FROM\"},on:{\"click\":_vm.importServiceAttribution}})],1)]:_c('spinner')],2):_vm._e()],2),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"REMITTANCE_PERCENTAGE\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"REMITTANCE_PERCENTAGE_TEXT\"}}),_c('form',{staticClass:\"d-block mw-600\"},[_vm._l((_vm.groupAttributions),function(remmitance){return _c('div',{key:remmitance.id,staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-5\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(remmitance.name),expression:\"remmitance.name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\"},domProps:{\"value\":(remmitance.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(remmitance, \"name\", $event.target.value)}}})]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"input-group\"},[_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent\"},[_vm._v(\"%\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(remmitance.percentage),expression:\"remmitance.percentage\"}],staticClass:\"form-control text-right border-left-0\",attrs:{\"type\":\"text\"},domProps:{\"value\":(remmitance.percentage)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(remmitance, \"percentage\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md-3\"},[_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.deleteGroupAttribution(remmitance)}}},[_c('i',{staticClass:\"icon-trash-2\"})])])])])}),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee() || _vm.$root.roleHelper.isGroupLead(_vm.group))?_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"translate-key\":\"ADD_ATTRIBUTION\"},on:{\"click\":function($event){return _vm.addGroupAttribution()}}}):_vm._e()],2),_c('div',{staticClass:\"btn-group mt-3\"},[_c('prd-translate-button',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() ||\n (!_vm.$root.roleHelper.isSiteAdmin() &&\n !_vm.$root.roleHelper.isFinanceEmployee() &&\n !_vm.$root.roleHelper.isGroupLead(_vm.group)),\"translate-key\":\"SAVE_SETTINGS\"},on:{\"click\":function($event){return _vm.openSaveAttributionsModal()}}})],1)]:_vm._e()],2)],1),((_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isGroupLead(_vm.group)))?_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"GROUP_ALIASES\"},slot:\"title\"}),(_vm.group)?_c('div',{staticClass:\"py-3 px-3 col-4\"},[_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"GROUP_ALIASES\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"GROUP_ALIASES_TEXT\",\"params\":{ name: _vm.group.name }}}),_c('form',{staticClass:\"d-block mw-600\"},[_vm._l((_vm.aliases),function(alias,index){return _c('div',{key:'alias_' + index,staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-10\"},[_c('b-form-input',{model:{value:(alias.text),callback:function ($$v) {_vm.$set(alias, \"text\", $$v)},expression:\"alias.text\"}})],1),_c('div',{staticClass:\"col-md-2\"},[(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.deleteGroupAlias(alias)}}},[_c('i',{staticClass:\"icon-trash-2\"})]):_vm._e()])])])}),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"translate-key\":\"ADD_ALIAS\"},on:{\"click\":function($event){return _vm.addGroupAlias()}}}):_vm._e()],2),_c('div',{staticClass:\"btn-group mt-3\"},[_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"action\":_vm.saveAliases,\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() ||\n (!_vm.$root.roleHelper.isSiteAdmin() &&\n !_vm.$root.roleHelper.isFinanceEmployee() &&\n !_vm.$root.roleHelper.isGroupLead(_vm.group)),\"translate-key\":\"SAVE_ALIASES\"}})],1)],1):_vm._e()],1):_vm._e(),(!_vm.derivedFromTemplate)?[((_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isGroupLead(_vm.group)))?_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"COLLABORATION_MODE\"},slot:\"title\"}),(_vm.group)?_c('div',{staticClass:\"py-3 px-3 col-4\"},[_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"COLLABORATION_MODE\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"COLLABORATION_MODE_TEXT\",\"params\":{ name: _vm.group.name }}}),_c('form',{staticClass:\"d-block mw-600\"},[_c('b-form-group',[_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"COLLABORATION_MODE_DESCRIPTION\"},slot:\"description\"}),_c('b-form-select',{attrs:{\"options\":[{ text: 'Guild', value: 'Guild' }, { text: 'Expert', value: 'Expert' }]},model:{value:(_vm.group.collaborationMode),callback:function ($$v) {_vm.$set(_vm.group, \"collaborationMode\", $$v)},expression:\"group.collaborationMode\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_MODE'),expression:\"'SELECT_MODE'\"}],domProps:{\"value\":'Unknown'}})])],2)],1)],1),_c('div',{staticClass:\"btn-group mt-3\"},[_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"action\":_vm.saveCollaborationMode,\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() ||\n (!_vm.$root.roleHelper.isSiteAdmin() &&\n !_vm.$root.roleHelper.isFinanceEmployee() &&\n !_vm.$root.roleHelper.isGroupLead(_vm.group)),\"translate-key\":\"SAVE_COLLABORATION_MODE\"}})],1)],1):_vm._e()],1):_vm._e(),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"FINANCE_SETTINGS\"},slot:\"title\"}),(_vm.groupAttributionsLoading || _vm.resourceAttributionsLoading)?_c('div',{staticClass:\"d-flex justify-content-center py-5\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('div',{staticClass:\"py-3 px-3 mw-600\"},[_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"FINANCE_SETTINGS\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"FINANCE_SETTINGS_TEXT\"}}),_c('hr'),_c('form',{staticClass:\"d-block mw-600 mt-5\"},[_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"PERSONAL_GROUP_FINANCE\"}}),_c('prd-translate-text',{staticClass:\"text-muted font-italic\",attrs:{\"element\":\"p\",\"translate-key\":\"PERSONAL_GROUP_FINANCE_TEXT\",\"params\":{ level: _vm.teamFinanceSettings.defaultGroupPrivacyLevel }}}),_c('b-form-group',{attrs:{\"label-for\":\"defaultGroupPrivacyLevel\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"ACCESSABLE_FROM_AND_UP\"},slot:\"description\"}),_c('b-form-select',{attrs:{\"id\":\"defaultGroupPrivacyLevel\",\"options\":_vm.roleOptions},model:{value:(_vm.groupFinanceSettings.privacyLevel),callback:function ($$v) {_vm.$set(_vm.groupFinanceSettings, \"privacyLevel\", $$v)},expression:\"groupFinanceSettings.privacyLevel\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_ROLE'),expression:\"'SELECT_ROLE'\"}],domProps:{\"value\":'Unknown'}})])],2)],1)],1),_c('hr'),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"APPLIED_MISSING_ATTRIBUTIONS\"}}),_c('prd-translate-text',{staticClass:\"text-muted mw-600\",attrs:{\"element\":\"p\",\"translate-key\":\"APPLIED_MISSING_ATTRIBUTIONS_TEXT\"}}),_c('form',{staticClass:\"d-block mw-600\"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"serviceAttributions\"},model:{value:(_vm.groupFinanceSettings.applyMissingAttributionsOnTransfer),callback:function ($$v) {_vm.$set(_vm.groupFinanceSettings, \"applyMissingAttributionsOnTransfer\", $$v)},expression:\"groupFinanceSettings.applyMissingAttributionsOnTransfer\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"APPLIED_MISSING_ATTRIBUTIONS\"}})],1)],1)],1),_c('hr'),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"INCOME_DISTRIBUTION\"}}),_c('prd-translate-text',{staticClass:\"text-muted mw-600\",attrs:{\"element\":\"p\",\"translate-key\":\"INCOME_DISTRIBUTION_TEXT\"}}),_c('form',{staticClass:\"d-block mw-600\"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"distributeIncome\"},model:{value:(_vm.groupFinanceSettings.autoDistributeIncomeToSavings),callback:function ($$v) {_vm.$set(_vm.groupFinanceSettings, \"autoDistributeIncomeToSavings\", $$v)},expression:\"groupFinanceSettings.autoDistributeIncomeToSavings\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"DISTRIBUTE_INCOME_AUTO\"}})],1)],1)],1),_c('hr'),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"EXPENSES_DISTRIBUTION\"}}),_c('prd-translate-text',{staticClass:\"text-muted mw-600\",attrs:{\"element\":\"p\",\"translate-key\":\"EXPENSES_DISTRIBUTION_TEXT\"}}),_c('form',{staticClass:\"d-block mw-600\"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"distributeExpenses\"},model:{value:(_vm.groupFinanceSettings.autoDistributeExpensesToSavings),callback:function ($$v) {_vm.$set(_vm.groupFinanceSettings, \"autoDistributeExpensesToSavings\", $$v)},expression:\"groupFinanceSettings.autoDistributeExpensesToSavings\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"DISTRIBUTE_EXPENSE_AUTO\"}})],1)],1)],1),_c('prd-translate-text',{staticClass:\"mt-4\",attrs:{\"element\":\"h6\",\"translate-key\":\"COMPENSATE_GROUP_MEMBERS\"}}),_c('prd-translate-text',{staticClass:\"text-muted mw-600\",attrs:{\"element\":\"p\",\"translate-key\":\"COMPENSATE_GROUP_MEMBERS_TEXT\"}}),_c('form',{staticClass:\"d-block mw-600\"},[_c('b-form-group',[_c('b-form-checkbox',{attrs:{\"id\":\"compensateGroupMembers\"},model:{value:(_vm.groupFinanceSettings.autoCompensateGroupMembers),callback:function ($$v) {_vm.$set(_vm.groupFinanceSettings, \"autoCompensateGroupMembers\", $$v)},expression:\"groupFinanceSettings.autoCompensateGroupMembers\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"COMPENSATE_MEMBERS_AUTO\"}})],1)],1)],1),_c('div',{staticClass:\"btn-group mt-3\"},[_c('prd-translate-button',{staticClass:\"btn btn-sm btn-primary\",attrs:{\"variant\":\"primary\",\"action\":_vm.saveFinanceSettings,\"disabled\":!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee() && !_vm.$root.roleHelper.isGroupLead(_vm.group),\"translate-key\":\"SAVE_SETTINGS\"}})],1)],1)],1)]:_vm._e()]:_vm._e()],2)],1),(_vm.group)?_c('save-attributions-modal',{ref:\"saveAttributionsModal\",attrs:{\"resourceAttributions\":_vm.resourceAttributions,\"groupAttributions\":_vm.groupAttributions,\"group\":_vm.group,\"groupFinanceSettings\":_vm.groupFinanceSettings},on:{\"settings-saved\":_vm.updateTemplateOfGroup}}):_vm._e(),_c('b-modal',{ref:\"deleteConfirm\",attrs:{\"id\":\"deleteConfirm\",\"title\":\"Confirm deletion\",\"size\":\"sm\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CONFIRM_GROUP_DELETE\"}}),_c('br'),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('prd-translate-button',{staticClass:\"d-inline-block mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"success\",\"translate-key\":\"YES\"},on:{\"click\":_vm.confirmDelete}}),_c('prd-translate-button',{staticClass:\"d-inline-block mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"danger\",\"translate-key\":\"NO\"},on:{\"click\":_vm.cancelDelete}})],1)],1),_c('b-modal',{ref:\"templateEditWarning\"},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"COUPLE_LOOSE_TEMPLATE\",\"translate-group\":\"MODALS\"}})],1),_c('prd-translate-text',{attrs:{\"translate-key\":\"COUPLE_LOOSE_TEMPLATE_EXPLANATION\",\"translate-group\":\"MODALS\"}}),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('prd-translate-button',{staticClass:\"d-inline-block mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"translate-key\":\"CANCEL\"},on:{\"click\":function($event){return _vm.$refs.templateEditWarning.hide()}}}),_c('prd-translate-button',{staticClass:\"d-inline-block mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"translate-key\":\"CONTINUE_SAVING_ATTRIBUTIONS\",\"translate-group\":\"MODALS\"},on:{\"click\":function($event){_vm.$refs.saveAttributionsModal.show();_vm.$refs.templateEditWarning.hide();}}})],1)],1),_c('b-modal',{ref:\"confirmRemoveAttributions\",attrs:{\"id\":\"confirmRemoveAttributions\",\"size\":\"sm\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"modal-title\",\"translate-key\":\"CONFIRM_GROUP_ATTRIBUTIONS_DELETE_TITLE\",\"translate-group\":\"MODALS\"},slot:\"modal-title\"}),_c('prd-translate-text',{attrs:{\"translate-key\":\"CONFIRM_GROUP_ATTRIBUTIONS_DELETE\",\"translate-group\":\"MODALS\"}}),_c('br'),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('prd-translate-button',{staticClass:\"d-inline-block mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"danger\",\"translate-key\":\"NO\"},on:{\"click\":_vm.cancelAttributionsDelete}}),_c('prd-translate-button',{staticClass:\"d-inline-block mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"success\",\"translate-key\":\"YES\"},on:{\"click\":_vm.confirmDeleteAttributions}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class FinancialGroupActivity {\r\n public hasActivity: boolean = false;\r\n public incomeInvoicesCount: number = 0;\r\n public expensesInvoiceCount: number = 0;\r\n public savingBalance: number = 0;\r\n public isAttributionGroup: boolean = false;\r\n\r\n /**\r\n *\r\n */\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n}\r\n","import Component from 'vue-class-component';\r\nimport Attribution from '../../../../models/Attribution';\r\nimport {\r\n attributionService,\r\n teamHelper,\r\n groupService,\r\n teamService,\r\n financeService,\r\n ecosystemHelper,\r\n templateService,\r\n groupHelper,\r\n financeGroupService,\r\n} from '@/main';\r\nimport { AttributionType } from '../../../../models/AttributionType';\r\nimport BaseGroupPage from './BaseGroupPage';\r\nimport to from 'await-to-js';\r\nimport Team from '@/models/Team';\r\nimport GroupAlias from '@/models/GroupAlias';\r\nimport { AxiosResponse } from 'axios';\r\nimport FinancialGroupActivity from '@/models/FinancialGroupActivity';\r\nimport TeamSettings from '@/models/TeamSettings';\r\nimport { PrivacyLevel } from '@/models/PrivacyLevel';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class GroupDetailSettings extends BaseGroupPage {\r\n public teams: Team[] = [];\r\n\r\n public groupAttributionsLoading: boolean = true;\r\n public resourceAttributionsLoading: boolean = true;\r\n\r\n public groupAttributions: Attribution[] = [];\r\n public resourceAttributions: Attribution[] = [];\r\n\r\n public teamFinanceSettings: TeamSettings = null;\r\n\r\n public importServiceAttributionGroupId?: number = null;\r\n public copingLoading: boolean = false;\r\n public aliases: any[] = [];\r\n\r\n public groupType: any = 'Experts';\r\n public templates: any[] = [];\r\n public selectedTemplate: any = null;\r\n public templateEdited: boolean = false;\r\n\r\n public financialGroupActivity: FinancialGroupActivity = new FinancialGroupActivity();\r\n\r\n public groupFinanceSettings: any = {\r\n applyMissingAttributionsOnTransfer: false,\r\n autoDistributeIncomeToSavings: false,\r\n autoDistributeExpensesToSavings: false,\r\n autoCompensateGroupMembers: false,\r\n privacyLevel: PrivacyLevel.Unknown,\r\n };\r\n\r\n public roleOptions: any[] = [\r\n { text: 'Site Admin', value: 'SiteAdmin' },\r\n { text: 'Finance Employee', value: 'FinanceEmployee' },\r\n { text: 'Group Lead', value: 'GroupLead' },\r\n { text: 'Member', value: 'Member' },\r\n ];\r\n\r\n public get derivedFromTemplate() {\r\n return this.group.baseTemplate && this.group.baseTemplate > 0;\r\n }\r\n\r\n public async created() {\r\n const self = this;\r\n this.section = this.$route.meta.section;\r\n\r\n await this.initSettingsGroup();\r\n\r\n if (this.section === 'directory') {\r\n if (this.group.isConnectorMember(this.connectors.find((x) => x.connectorId === 1))) {\r\n this.financialGroupActivity = await this.checkValidDelete();\r\n }\r\n }\r\n\r\n self.teams = await teamService.getTeams();\r\n\r\n const groupAttributionResponse = await attributionService.getAttributions(\r\n AttributionType.GroupRemittance,\r\n teamHelper.currentTeam.id,\r\n periodModule.selectedPeriod,\r\n this.group.groupId,\r\n );\r\n self.groupAttributions = groupAttributionResponse.data;\r\n self.groupAttributionsLoading = false;\r\n\r\n const resourceAttributionsResponse = await attributionService.getAttributions(\r\n AttributionType.GroupAttribution,\r\n teamHelper.currentTeam.id,\r\n periodModule.selectedPeriod,\r\n this.group.groupId,\r\n );\r\n\r\n const attrs = resourceAttributionsResponse.data.map((item) => {\r\n const attr = new Attribution(0);\r\n Object.assign(attr, item);\r\n\r\n attr.targetTeamModel = self.teams.find((team) => {\r\n if (item.targetTeam) {\r\n return team.teamId === item.targetTeam;\r\n }\r\n\r\n return team.teamId === teamHelper.getTeamId();\r\n });\r\n\r\n return attr;\r\n });\r\n\r\n attrs.forEach(async (attribution) => {\r\n attribution.groups = await financeGroupService.getGroups(attribution.targetTeamModel.teamId);\r\n\r\n attribution.targetGroupModel = attribution.groups.find((group) => {\r\n return group.groupId === attribution.targetGroup;\r\n });\r\n });\r\n\r\n self.resourceAttributions = attrs;\r\n self.resourceAttributionsLoading = false;\r\n\r\n await this.loadGroupFinanceSettings();\r\n await this.loadTeamFinanceSettings();\r\n await this.loadTemplates();\r\n\r\n if (this.group.baseTemplate) {\r\n this.selectedTemplate = this.templates.find((x) => x.financeGroupTemplateId === this.group.baseTemplate);\r\n }\r\n\r\n this.group.aliases = await this.getGroupAliases(this.group.groupId);\r\n if (!this.group.aliases) {\r\n this.group.aliases = new GroupAlias({ teamKey: teamHelper.currentTeam.key, groupKey: this.group.groupKey });\r\n }\r\n this.aliases = this.getGroupAliasesFromGroup();\r\n\r\n this.groups = this.teams.find((x) => x.teamId === teamHelper.getTeamId()).groups;\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async addGroupAttribution() {\r\n this.groupAttributions.push(new Attribution(0));\r\n }\r\n\r\n public async loadTemplates() {\r\n this.templates = await templateService.getTemplates(teamHelper.currentTeam.id);\r\n }\r\n\r\n public getTemplateName() {\r\n const template = this.templates.find((x) => x.financeGroupTemplateId === this.group.baseTemplate);\r\n return template ? template.name : 'n/a';\r\n }\r\n\r\n public getGroupAliasesFromGroup() {\r\n if (!this.group.aliases) {\r\n return [];\r\n }\r\n\r\n return this.group.aliases.aliases.map((alias) => {\r\n return { text: alias, teamKey: this.group.aliases.teamKey, groupKey: this.group.aliases.groupKey };\r\n });\r\n }\r\n\r\n public async getGroupAliases(groupId: number) {\r\n const [err, response] = await to>(financeService.getGroupAliases(groupId));\r\n if (err) {\r\n this.clearAndShowError('Failed to update group', null);\r\n return new GroupAlias();\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public deleteGroupAlias(alias) {\r\n this.aliases.splice(this.aliases.indexOf(alias), 1);\r\n }\r\n\r\n public addGroupAlias() {\r\n this.aliases.push({ text: '', teamKey: this.group.aliases.teamKey, groupKey: this.group.aliases.groupKey });\r\n }\r\n\r\n public async saveAliases() {\r\n this.showPending('SAVE_ALIASES_PENDING');\r\n const aliases = this.group.aliases;\r\n aliases.aliases = this.aliases.map((x) => x.text);\r\n const [errAlias] = await to(financeService.upsertGroupAliases(this.group.groupId, aliases));\r\n if (errAlias) {\r\n return this.clearAndShowError('SAVE_ALIASES_FAILED', null);\r\n }\r\n\r\n this.clearAndShowSuccess('SAVE_ALIASES_SUCCESS');\r\n }\r\n\r\n public async addServiceAttribution() {\r\n const attribution = new Attribution(0);\r\n attribution.targetTeamModel = this.teams.find((team) => {\r\n return team.teamId === teamHelper.getTeamId();\r\n });\r\n attribution.groups = await financeGroupService.getGroups(attribution.targetTeamModel.teamId);\r\n\r\n this.resourceAttributions.push(attribution);\r\n }\r\n\r\n public deleteGroupAttribution(item: Attribution) {\r\n this.groupAttributions.splice(this.groupAttributions.indexOf(item), 1);\r\n }\r\n\r\n public deleteServiceAttribution(item: Attribution) {\r\n this.resourceAttributions.splice(this.resourceAttributions.indexOf(item), 1);\r\n }\r\n\r\n public async teamChange(attribution: Attribution) {\r\n attribution.targetGroup = null;\r\n attribution.groups = await financeGroupService.getGroups(attribution.targetTeamModel.teamId);\r\n }\r\n\r\n public async getTeamGroups(team: Team) {\r\n const [err, response] = await to(groupService.getGroups(team.teamId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse(`Failed to load groups for team ${team.teamKey}`, null);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async importServiceAttribution() {\r\n const self = this;\r\n\r\n this.copingLoading = true;\r\n const currentTeamId = teamHelper.getTeamId(teamHelper.currentTeamId);\r\n\r\n await attributionService\r\n .getAttributions(AttributionType.GroupAttribution, currentTeamId, periodModule.selectedPeriod, this.importServiceAttributionGroupId)\r\n .then((result) => {\r\n result.data.forEach(async (attribution: Attribution) => {\r\n attribution.attributionId = undefined;\r\n attribution.group = self.group.groupId;\r\n const foundTeam = self.teams.find((team) => team.teamId === attribution.targetTeam);\r\n attribution.targetTeamModel = foundTeam;\r\n const groups = (await teamService.getGroups(foundTeam.teamId, periodModule.selectedPeriod)).data;\r\n attribution.targetGroupModel = groups.find((group) => group.groupId === attribution.targetGroup);\r\n attribution.groups = groups;\r\n\r\n self.resourceAttributions.push(attribution);\r\n });\r\n });\r\n\r\n this.copingLoading = false;\r\n }\r\n\r\n public async saveCollaborationMode() {\r\n this.showPending('SAVE_COLLABORATION_PENDING');\r\n const [errAlias] = await to(financeService.saveCollaborationMode(this.group.groupId, this.group.collaborationMode));\r\n if (errAlias) {\r\n return this.clearAndShowError('SAVE_COLLABORATION_FAILED', null);\r\n }\r\n\r\n this.clearAndShowSuccess('SAVE_COLLABORATION_SUCCESS');\r\n }\r\n\r\n public async openSaveAttributionsModal() {\r\n let invalid = false;\r\n this.resourceAttributions.forEach((attr) => {\r\n if (\r\n typeof attr.targetGroupModel === 'undefined' ||\r\n attr.targetGroupModel === null ||\r\n !attr.targetGroupModel ||\r\n typeof attr.targetTeamModel === 'undefined' ||\r\n !attr.targetTeamModel ||\r\n attr.targetTeamModel === null ||\r\n !attr.percentage ||\r\n attr.percentage < 0 ||\r\n attr.percentage > 100\r\n ) {\r\n invalid = true;\r\n }\r\n });\r\n\r\n this.groupAttributions.forEach((attr) => {\r\n if (!attr.name || !attr.percentage || attr.percentage < 0 || attr.percentage > 100) {\r\n invalid = true;\r\n }\r\n });\r\n\r\n if (invalid) {\r\n return this.clearAndShowWarning('Current state of attributions not valid, please fill in all fields');\r\n }\r\n\r\n if (this.group.baseTemplate) {\r\n this.$refs.templateEditWarning.show();\r\n } else {\r\n this.$refs.saveAttributionsModal.show();\r\n }\r\n }\r\n\r\n public async checkValidDelete() {\r\n const [err, response] = await to>(\r\n financeService.getGroupFinancialActiviy(teamHelper.getTeamId(), this.group.groupId, periodModule.selectedPeriod),\r\n );\r\n if (err) {\r\n this.clearAndShowError('Failed to check financial activity for this group.', err);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async saveFinanceSettings() {\r\n this.showPending('SAVE_FINANCE_SETTINGS_PENDING');\r\n const [err] = await to(\r\n attributionService.saveAttributionSetting(\r\n this.group.groupId,\r\n this.groupFinanceSettings.applyMissingAttributionsOnTransfer,\r\n this.groupFinanceSettings.autoDistributeIncomeToSavings,\r\n this.groupFinanceSettings.autoDistributeExpensesToSavings,\r\n this.groupFinanceSettings.autoCompensateGroupMembers,\r\n this.groupFinanceSettings.privacyLevel,\r\n ),\r\n );\r\n\r\n if (err) {\r\n return this.clearAndShowError('SAVE_FINANCE_SETTINGS_FAILED', err);\r\n }\r\n\r\n this.clearAndShowSuccess('SAVE_FINANCE_SETTINGS_SUCCESS');\r\n }\r\n\r\n public async deleteGroup() {\r\n const result = await this.checkValidDelete();\r\n if (!result.hasActivity) {\r\n this.$refs.deleteConfirm.show();\r\n } else {\r\n let errorMessage = `Conditions to delete this group aren't met.

Failed on:`;\r\n\r\n if (result.isAttributionGroup) {\r\n errorMessage += `
- Group is used as an attribution group`;\r\n }\r\n if (result.expensesInvoiceCount) {\r\n errorMessage += `
- Group has expenses`;\r\n }\r\n if (result.incomeInvoicesCount) {\r\n errorMessage += `
- Group has invoices`;\r\n }\r\n if (result.savingBalance) {\r\n errorMessage += `
- Group balance isn't zero`;\r\n }\r\n\r\n this.clearAndShowError(errorMessage, null);\r\n }\r\n }\r\n\r\n public async updateTemplate(showMessages: boolean = true) {\r\n if (showMessages) {\r\n this.showPending('SAVE_GROUP_PENDING');\r\n }\r\n this.group.baseTemplate = this.selectedTemplate.financeGroupTemplateId;\r\n\r\n const group = await groupHelper.createOrUpdateGroup(this.group);\r\n\r\n if ((!group || group.groupId === 0) && showMessages) {\r\n return this.clearAndShowError('SAVE_GROUP_FAILED', null);\r\n }\r\n\r\n this.templateEdited = false;\r\n if (showMessages) {\r\n this.clearAndShowSuccess('SAVE_GROUP_SUCCESS');\r\n }\r\n }\r\n\r\n public async updateTemplateOfGroup() {\r\n if (this.group.baseTemplate) {\r\n await this.updateTemplate(false);\r\n }\r\n }\r\n\r\n public async confirmDelete() {\r\n const self = this;\r\n this.showPending('DELETE_GROUP_PENDING');\r\n\r\n const [err] = await to(groupService.deleteGroup(this.group.groupId, teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (err) {\r\n return this.clearAndShowError('DELETE_GROUP_FAILED', err);\r\n }\r\n\r\n self.$refs.deleteConfirm.hide();\r\n\r\n this.clearAndShowSuccess('DELETE_GROUP_SUCCESS');\r\n return this.$router.push({\r\n name: 'team-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'groups',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n public showRemoveAllAttributionsPointedToMeModal() {\r\n this.$refs.confirmRemoveAttributions.show();\r\n }\r\n\r\n public cancelAttributionsDelete() {\r\n this.$refs.confirmRemoveAttributions.hide();\r\n }\r\n\r\n public async confirmDeleteAttributions() {\r\n const success = await attributionService.removeAttributionSources(teamHelper.currentTeamId, this.group.groupId);\r\n if (success) {\r\n this.financialGroupActivity = await this.checkValidDelete();\r\n this.$refs.confirmRemoveAttributions.hide();\r\n }\r\n }\r\n\r\n public cancelDelete() {\r\n this.$refs.deleteConfirm.hide();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-settings.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-settings.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-settings.vue?vue&type=template&id=4101e49a&\"\nimport script from \"./group-detail-settings.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-settings.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('spinner'):_c('div',[(_vm.incomingTransferRequests.length > 0)?[_c('prd-translate-text',{staticClass:\"mb-0\",attrs:{\"translate-key\":\"INCOMING\",\"element\":\"h3\"}}),_c('p',[_c('prd-translate-text',{attrs:{\"translate-key\":\"REQUEST_FROM_OTHER_GROUPS\",\"element\":\"span\"}}),_c('i',{domProps:{\"innerHTML\":_vm._s(_vm.getActionLabel)}})],1),_c('prd-toolbar',{staticClass:\"justify-content-start\"},[_c('div',{staticClass:\"d-inline\"},[_c('b-form-select',{attrs:{\"size\":\"sm\",\"options\":[{ text: 'New', value: 'New' }, { text: 'Fulfilled', value: 'Fulfilled' }, { text: 'Rejected', value: 'Rejected' }]},on:{\"change\":_vm.statusChanged},model:{value:(_vm.selectedStatus),callback:function ($$v) {_vm.selectedStatus=$$v},expression:\"selectedStatus\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SHOW_ALL'),expression:\"'SHOW_ALL'\"}],domProps:{\"value\":null}})])],2)],1)]),_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.incomingTransferRequests,\"columns\":_vm.transferRequestColumns,\"auto-height\":\"\"}})]:_vm._e(),(!_vm.isBuitenBeschouwingGroup)?[_c('prd-translate-text',{staticClass:\"mb-0 mt-5\",attrs:{\"translate-key\":\"OUTGOING\",\"element\":\"h3\"}}),_c('p',[_c('prd-translate-text',{attrs:{\"translate-key\":\"REQUEST_TO_OTHER_GROUPS\",\"element\":\"span\"}}),_c('i',{domProps:{\"innerHTML\":_vm._s(_vm.getActionOutgoingLabel)}})],1),_c('prd-toolbar',{staticClass:\"justify-content-between\"},[_c('div',{staticClass:\"d-inline\"},[_c('b-form-select',{attrs:{\"size\":\"sm\",\"options\":[{ text: 'New', value: 'New' }, { text: 'Fulfilled', value: 'Fulfilled' }, { text: 'Rejected', value: 'Rejected' }]},on:{\"change\":_vm.statusChanged},model:{value:(_vm.selectedStatus),callback:function ($$v) {_vm.selectedStatus=$$v},expression:\"selectedStatus\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SHOW_ALL'),expression:\"'SHOW_ALL'\"}],domProps:{\"value\":null}})])],2)],1),_c('div',{staticClass:\"d-inline\"},[_c('prd-translate-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isGroupLead || _vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee()),expression:\"isGroupLead || $root.roleHelper.isSiteAdmin() || $root.roleHelper.isFinanceEmployee()\"}],staticClass:\"ml-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed(),\"translate-key\":\"SEND_TRANSFER_REQUEST\"},on:{\"click\":function($event){return _vm.openTransferRequestModal(true)}}})],1)]),_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.outgoingTransferRequests,\"columns\":_vm.transferRequestColumns,\"auto-height\":\"\"},on:{\"rowclick\":_vm.openTransferRequest}})]:_vm._e(),_c('h3',{staticClass:\"mt-5\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TRANSFERS\"}})],1),_c('prd-toolbar',[_c('prd-translate-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isGroupLead || _vm.$root.roleHelper.isSiteAdmin()),expression:\"isGroupLead || $root.roleHelper.isSiteAdmin()\"}],staticClass:\"ml-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed(),\"translate-key\":\"MAKE_TRANSFER\"},on:{\"click\":_vm.openTransferModal}})],1),_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.transfers,\"columns\":_vm.transferColumns,\"auto-height\":\"\"},on:{\"rowclick\":_vm.openTransfer}}),_c('recurring-transfers-grid',{staticClass:\"mt-5\",attrs:{\"teamId\":_vm.$route.params.teamId,\"groupId\":_vm.$route.params.groupId}}),(!_vm.isLoading)?_c('transfer-modal',{ref:\"newTransferModal\",attrs:{\"title\":_vm.transferTitle,\"group\":_vm.group,\"button-text\":'Finalize transfer',\"transfer\":_vm.transfer,\"selectedTeamId\":_vm.teamId,\"type\":_vm.transferModalType,\"readonly\":_vm.transferReadOnly},on:{\"transfer-completed\":_vm.reloadData}}):_vm._e(),(!_vm.isLoading)?_c('transfer-request-modal',{ref:\"transferRequestModal\",attrs:{\"title\":'Send new transfer request',\"group\":_vm.group,\"readonly\":_vm.transferReadOnly,\"transferRequest\":_vm.transferRequest},on:{\"transfer-request-status-changed\":_vm.statusChangedEvent,\"reload-transfer-requests\":_vm.reloadTransfers}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Transfer from '../Transfer';\r\n\r\nexport default class TransferRequest {\r\n public transferRequestId: number;\r\n public senderGroup: number;\r\n public receiverGroup: number;\r\n\r\n public direction: string;\r\n public status: string;\r\n public initiator: number;\r\n public dateCreated: string;\r\n\r\n public transfer: Transfer = new Transfer();\r\n public recipients: any[];\r\n\r\n}\r\n","import BaseGroupPage from './BaseGroupPage';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { roleHelper, transferService, periodFilterHelper, loginHelper, teamHelper, teamService } from '@/main';\r\nimport Transfer from '@/models/Transfer';\r\nimport TransferRequest from '@/models/Finance/TransferRequest';\r\nimport Vue from 'vue';\r\nimport moment from 'moment';\r\nimport to from 'await-to-js';\r\nimport { Person } from '@/models/Person';\r\nimport { TransferType } from '@/models/TransferType';\r\nimport { Member } from '@/models/Member';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { profileModule } from '@/store/modules/profile';\r\n\r\n@Component\r\nexport default class GroupDetailTransfers extends BaseGroupPage {\r\n public transferRequests: TransferRequest[] = [];\r\n public allTransferRequests: TransferRequest[] = [];\r\n public allIncomingTransferRequests: TransferRequest[] = [];\r\n public allOutgoingTransferRequests: TransferRequest[] = [];\r\n public transferRequest: TransferRequest = new TransferRequest();\r\n public transfers: Transfer[] = [];\r\n public transferRequestColumns: any[] = [\r\n { field: 'amount', title: 'Amount', cell: this.formatImportedInvoiceAmountValue, width: 100 },\r\n { cell: this.renderRequestMaker, title: 'Receiver', editable: false, width: 250 },\r\n { title: 'Description', field: 'transfer.reason' },\r\n { field: 'status', title: 'Status', width: 250 },\r\n { cell: this.renderCreatedDate, title: 'Date', width: 120 },\r\n { cell: this.renderTransferRequestActions, title: 'Actions', width: 120 },\r\n ];\r\n public isGroupLead: boolean;\r\n public selectedStatus: any = null;\r\n public refreshModal: number = 0;\r\n public transfer: Transfer = new Transfer();\r\n public transferGridUpdate: number = 0;\r\n public teamId: number = null;\r\n public transferModalType: TransferType = TransferType.GroupToGroup;\r\n\r\n public get transferTitle() {\r\n return `Make a transfer from ${this.group.name}`;\r\n }\r\n\r\n public get transferReadOnly() {\r\n return periodFilterHelper.isCurrentPeriodClosed();\r\n }\r\n\r\n public async mounted() {\r\n this.members = this.group.members;\r\n this.isGroupLead = roleHelper.isGroupLead(this.group);\r\n\r\n const transferRequests = await transferService.getTransfersRequests(this.group.groupId);\r\n this.allTransferRequests = this.transferRequests = transferRequests.filter((x) => x.transfer && x.recipients.length > 0);\r\n\r\n this.teamId = teamHelper.getTeamId();\r\n this.teams = await teamService.getTeams();\r\n\r\n await this.getTransfers();\r\n\r\n this.isLoading = false;\r\n\r\n if (this.$route.query && this.$route.query['transfer-request']) {\r\n this.transferRequest = transferRequests.find((x) => x.transferRequestId === parseInt(this.$route.query['transfer-request'] as string));\r\n\r\n if (this.transferRequest) {\r\n Vue.nextTick(() => this.openTransferRequestModal());\r\n }\r\n }\r\n }\r\n\r\n public async getTransfers() {\r\n const [err, response] = await to(transferService.getTransfers(this.teamId, this.group.groupId, null, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse('Failed to load transfers');\r\n return [];\r\n }\r\n\r\n return (this.transfers = response.filter((x) => x.transferType === 'GroupToGroup'));\r\n }\r\n\r\n public async reloadTransfers() {\r\n this.isLoading = true;\r\n const tranferRequestsReloaded = await transferService.getTransfersRequests(this.group.groupId);\r\n this.allTransferRequests = this.transferRequests = tranferRequestsReloaded.filter((x) => x.transfer && x.recipients.length > 0);\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async reloadData() {\r\n this.isLoading = true;\r\n\r\n await this.getTransfers();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async openTransferRequest(item) {\r\n await this.openRequest(item.dataItem);\r\n }\r\n\r\n public async openTransfer(item) {\r\n await this.editTransfer(item.dataItem);\r\n }\r\n\r\n public openTransferRequestModal(resetTransferRequest?: boolean) {\r\n if (resetTransferRequest) {\r\n this.transferRequest = null;\r\n }\r\n this.$refs.transferRequestModal.show();\r\n }\r\n\r\n public async openTransferModal() {\r\n await this.$refs.newTransferModal.init();\r\n }\r\n\r\n get incomingTransferRequests() {\r\n return this.transferRequests.filter((x) => x.direction === 'Receiving');\r\n }\r\n\r\n get outgoingTransferRequests() {\r\n return this.transferRequests.filter((x) => x.direction === 'Sending');\r\n }\r\n\r\n get getActionLabel() {\r\n return this.incomingTransferRequests.filter((x) => x.status === 'New').length > 0\r\n ? '(action required)'\r\n : '(you\\'re all done!)';\r\n }\r\n\r\n get getActionOutgoingLabel() {\r\n return this.outgoingTransferRequests.filter((x) => x.status === 'New').length > 0 ? '(waiting on their response)' : '';\r\n }\r\n\r\n public statusChangedEvent(transferRequestStatusChangedEvent) {\r\n const request = this.transferRequests.find((x) => x.transferRequestId === transferRequestStatusChangedEvent.transferRequestId);\r\n request.status = transferRequestStatusChangedEvent.accepted ? 'Fulfilled' : 'Rejected';\r\n\r\n this.$refs.transferRequestModal.hide();\r\n this.transferRequest = new TransferRequest();\r\n }\r\n\r\n public statusChanged() {\r\n if (this.selectedStatus === null) {\r\n return (this.transferRequests = this.allTransferRequests);\r\n }\r\n\r\n return (this.transferRequests = this.allTransferRequests.filter((x) => x.status === this.selectedStatus));\r\n }\r\n\r\n public renderRequestMaker(h, _, row) {\r\n let team = null;\r\n let group = null;\r\n\r\n if (row.dataItem.direction !== 'Receiving') {\r\n team = this.teams.find((x) => x.teamId === row.dataItem.transfer.senderTeam.teamId);\r\n group = team.groups.find((x) => x.groupId === row.dataItem.receiverGroup);\r\n } else {\r\n team = this.teams.find((x) => x.teamId === row.dataItem.transfer.receiverTeam.teamId);\r\n group = team.groups.find((x) => x.groupId === row.dataItem.senderGroup);\r\n }\r\n\r\n return h('td', `${team.name} - ${group.name}`);\r\n }\r\n\r\n public formatImportedInvoiceAmountValue(h, _, row) {\r\n const props = { value: row.dataItem.transfer.amount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public async rejectRequest(item: TransferRequest) {\r\n await this.$refs.transferRequestModal.rejectRequest(item.transferRequestId);\r\n }\r\n\r\n public async withdrawRequest(item: TransferRequest) {\r\n await this.$refs.transferRequestModal.withdrawRequest(item.transferRequestId);\r\n }\r\n\r\n public async acceptRequest(item: TransferRequest) {\r\n await this.$refs.transferRequestModal.acceptRequest(item.transferRequestId);\r\n }\r\n\r\n public async openRequest(item: TransferRequest) {\r\n this.transferRequest = item;\r\n this.$refs.transferRequestModal.show();\r\n Vue.nextTick(async () => {\r\n await this.$refs.transferRequestModal.initRequest();\r\n });\r\n }\r\n\r\n public renderCreatedDate(h, _, row) {\r\n return h('td', [moment(row.dataItem.dateCreated, 'YYYY-MM-DD').format('DD-MM-YYYY')]);\r\n }\r\n\r\n public isRequestReceiver(transferRequest: TransferRequest): boolean {\r\n return transferRequest && transferRequest.receiverGroup === this.group.groupId;\r\n }\r\n\r\n public isRequestSender(transferRequest: TransferRequest): boolean {\r\n return transferRequest && transferRequest.senderGroup === this.group.groupId;\r\n }\r\n\r\n public renderTransferRequestActions(h, _, row) {\r\n let actions = [];\r\n const userId = profileModule.brightProfile.personId;\r\n const initiator = row.dataItem && typeof row.dataItem.initiator !== 'undefined' ? parseInt(row.dataItem.initiator) : 0;\r\n if (\r\n this.isRequestSender(row.dataItem) &&\r\n row.dataItem.status === 'New' &&\r\n (initiator === userId || roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee() || this.isGroupLead)\r\n ) {\r\n actions = [\r\n { title: 'Withdraw', function: this.withdrawRequest, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n { title: 'Open', function: this.openRequest, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n ];\r\n } else if (\r\n this.isRequestReceiver(row.dataItem) &&\r\n row.dataItem.status === 'New' &&\r\n (initiator === userId ||\r\n roleHelper.isSiteAdmin() ||\r\n roleHelper.isFinanceEmployee() ||\r\n this.isGroupLead ||\r\n row.dataItem.recipients.find((x) => x.personId === userId))\r\n ) {\r\n actions = [\r\n { title: 'Reject', function: this.rejectRequest, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n { title: 'Open', function: this.openRequest, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n { title: 'Accept', function: this.acceptRequest, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n ];\r\n } else {\r\n return h('td');\r\n }\r\n\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n public renderDirection(h, _, row) {\r\n const props = {\r\n action: () => this.openRequest(row.dataItem),\r\n isIncoming: row.dataItem.direction === 'Receiving',\r\n };\r\n\r\n return h(Vue.component('grid-transfer-direction'), { props });\r\n }\r\n\r\n public renderMemberInitiator(h, _, row) {\r\n let member = row.dataItem.initiatorPerson;\r\n\r\n if (!member) {\r\n member = this.members.find((m: Member) => m.memberId === row.dataItem.initiator);\r\n }\r\n\r\n if (!member) {\r\n member = new Person();\r\n member.firstName = 'Not available';\r\n }\r\n\r\n return this.renderMember(h, member);\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n let actions = [];\r\n const userId = loginHelper.getUser().personId;\r\n const initiator = row.dataItem && typeof row.dataItem.initiator !== 'undefined' ? parseInt(row.dataItem.initiator) : 0;\r\n\r\n if (initiator === userId || roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee()) {\r\n actions = [\r\n { title: 'View', function: this.editTransfer },\r\n { title: 'Delete', function: this.removeTransfer, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n ];\r\n }\r\n\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n public async editTransfer(item) {\r\n this.$refs.newTransferModal.show();\r\n Vue.nextTick(async () => {\r\n this.$refs.newTransferModal.editMode = true;\r\n await this.$refs.newTransferModal.initTransfer(item);\r\n });\r\n }\r\n\r\n public async removeTransfer(item) {\r\n await transferService.deleteTransfer(item.transferId);\r\n\r\n const transfer = this.transfers.findIndex((t: Transfer) => {\r\n return t.transferId === item.transferId;\r\n });\r\n\r\n this.transfers.splice(transfer, 1);\r\n this.transferGridUpdate++;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-transfers.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-transfers.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-transfers.vue?vue&type=template&id=0bdf5637&\"\nimport script from \"./group-detail-transfers.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-transfers.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('prd-loader',{attrs:{\"center\":\"\"}},[_c('spinner')],1):_c('div',[_c('b-card',[(!_vm.editMode)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.group.readMe)}}):_c('b-form-group',{staticClass:\"mb-0\"},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"NO_USEFULL_INFO\"},slot:\"label\"}),_c('vue-editor',{attrs:{\"editorToolbar\":_vm.customControls},model:{value:(_vm.group.readMe),callback:function ($$v) {_vm.$set(_vm.group, \"readMe\", $$v)},expression:\"group.readMe\"}})],1),_c('div',[(!_vm.editMode)?_c('div',{staticClass:\"btn-group mr-2 float-right\"},[_c('b-button',{attrs:{\"disabled\":!_vm.isInGroup,\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.edit()}}},[_vm._v(\"Edit \"),_c('span',{staticClass:\"k-icon k-i-edit\"})])],1):_c('div',{staticClass:\"btn-group mt-2 mr-2 float-right\"},[_c('b-button',{staticClass:\"mr-2\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.cancelEdit()}}},[_vm._v(\" Cancel \"),_c('span',{staticClass:\"k-icon k-i-close\"})]),_c('b-button',{attrs:{\"variant\":\"success\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.saveWorkspace()}}},[_vm._v(\"Save \"),_c('span',{staticClass:\"k-icon k-i-save\"})])],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import BaseGroupPage from './BaseGroupPage';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { VueEditor } from 'vue2-editor';\r\nimport { loginHelper, groupHelper } from '@/main';\r\n\r\n@Component({\r\n components: {\r\n VueEditor,\r\n },\r\n})\r\nexport default class GroupDetailWorkspace extends BaseGroupPage {\r\n public customControls: any = [\r\n [{ header: [false, 1, 2, 3] }],\r\n ['bold', 'italic', 'underline'],\r\n [{ align: '' }, { align: 'center' }, { align: 'right' }, { align: 'justify' }],\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n ['link'],\r\n ['clean'],\r\n ];\r\n\r\n public isInGroup: boolean = false;\r\n\r\n public async mounted() {\r\n await this.initSettingsGroup();\r\n this.isInGroup = this.group.members.filter((member) => member.memberId === loginHelper.getUser().personId).length > 0;\r\n this.isLoading = false;\r\n }\r\n\r\n public async saveWorkspace() {\r\n this.showPending('SAVING_WORKSPACE_PENDING');\r\n const group = await groupHelper.createOrUpdateGroup(this.group);\r\n if (!group || group.groupId === 0) {\r\n return this.clearAndShowError('SAVING_WORKSPACE_FAILED', null);\r\n }\r\n\r\n this.editMode = false;\r\n this.clearAndShowSuccess('SAVING_WORKSPACE_SUCCESS');\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-workspace.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./group-detail-workspace.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./group-detail-workspace.vue?vue&type=template&id=2d814a5a&\"\nimport script from \"./group-detail-workspace.ts?vue&type=script&lang=js&\"\nexport * from \"./group-detail-workspace.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.group)?_c('div',[_c('div',{staticClass:\"group-title\"},[(!_vm.editMode)?_c('div',{staticClass:\"group-title-text\"},[((_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isGroupLead(_vm.group)))?_c('b-button',{staticClass:\"border\",attrs:{\"variant\":\"secondary\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.edit()}}},[_c('i',{staticClass:\"icon-pencil\"})]):_vm._e(),_c('h1',{staticClass:\"d-flex align-items-center\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"GROUP_NAME\",\"params\":{ name: _vm.group.name },\"element\":\"span\"}}),(_vm.group.deleted)?_c('b-badge',{staticClass:\"ml-2\",attrs:{\"pill\":\"\",\"variant\":\"warning\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"DELETED\"}})],1):_vm._e()],1)],1):_c('h1',[_c('div',{staticClass:\"input-group border rounded\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.group.name),expression:\"group.name\"}],staticClass:\"border-0 rounded px-2\",attrs:{\"type\":\"text\",\"placeholder\":\"Name\"},domProps:{\"value\":(_vm.group.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.group, \"name\", $event.target.value)}}}),_c('div',{staticClass:\"input-group-append\"},[_c('b-button',{attrs:{\"size\":\"sm\"},on:{\"click\":_vm.cancel}},[_c('div',{staticClass:\"k-icon k-i-cancel\"})])],1),_c('div',{staticClass:\"input-group-append\"},[_c('b-button',{attrs:{\"size\":\"sm\"},on:{\"click\":_vm.saveGroup}},[_c('div',{staticClass:\"k-icon k-i-save\"})])],1)])]),(!_vm.editMode)?_c('div',[_vm._v(_vm._s(_vm.group.purpose))]):_c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-12\"},[_c('small',{staticClass:\"font-italic\"},[_vm._v(\"Purpose\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.group.purpose),expression:\"group.purpose\"}],staticClass:\"form-control\",attrs:{\"cols\":\"30\",\"rows\":\"3\",\"placeholder\":\"Purpose\"},domProps:{\"value\":(_vm.group.purpose)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.group, \"purpose\", $event.target.value)}}})])])]),_c('div',{},[_c('ul',{staticClass:\"nav nav-tabs d-flex align-items-start\",attrs:{\"role\":\"tablist\"}},[(_vm.section == 'directory')?[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link workspace\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('workspace')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"WORKSPACE\"}})],1)])]:_vm._e(),(_vm.section == 'directory')?[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link members\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('members')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"MEMBERS\"}})],1)])]:_vm._e(),(_vm.section == 'finances')?[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link overview\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('overview')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"OVERVIEW_TITLE\"}})],1)]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link income\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('income')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ALL_INCOME\"}})],1)]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link expense\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('expense')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ALL_EXPENSES\"}})],1)]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link transfers\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('transfers')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TRANSFERS\"}})],1)]),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee() || _vm.$root.roleHelper.isGroupLead(_vm.group))?_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link ambitions\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('ambitions')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"AMBITIONS\"}})],1)]):_vm._e(),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee() || _vm.$root.roleHelper.isGroupLead(_vm.group))?_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link insights\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('insights')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ANALYTICS_TITLE\"}})],1)]):_vm._e()]:_vm._e(),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[_c('span',{staticClass:\"nav-link settings\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('settings')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SETTINGS_TITLE\"}})],1)])],2)]),_c('div',{staticClass:\"tab-content\"},[_c(_vm.currentTabComponent,{tag:\"component\",attrs:{\"group\":_vm.group}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport Group from '../../../models/Group';\r\nimport { groupHelper, $router, teamHelper, roleHelper, ecosystemHelper } from '@/main';\r\nimport jQuery from 'jquery';\r\nimport BaseGroupPage from './components/BaseGroupPage';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class GroupDetailComponent extends BaseGroupPage {\r\n public currentTabComponent: string = '';\r\n public editMode: boolean = false;\r\n public currentTab: string;\r\n public tabs: string[] = ['workspace', 'members', 'overview', 'income', 'expense', 'transfers', 'ambitions', 'insights', 'relations', 'settings'];\r\n\r\n public async created() {\r\n await this.checkPeriodParam();\r\n await this.loadTeamFinanceSettings();\r\n await this.loadGroupFinanceSettings();\r\n\r\n const groupId = parseInt(this.$route.params.groupId);\r\n const group = await groupHelper.getGroup(groupId);\r\n Object.assign(this.group, group);\r\n\r\n if (!this.group || this.group.groupId === 0) {\r\n const params = this.$route.params;\r\n params.tab = 'group-overview';\r\n await this.$router.push({ name: 'team-finances', params });\r\n }\r\n\r\n this.currentTab = this.$route.params.tab;\r\n if (this.currentTab === 'transfer-requests') {\r\n this.currentTab = 'transfers';\r\n }\r\n\r\n this.section = this.$route.meta.section;\r\n if (!this.tabs.indexOf(this.currentTab)) {\r\n this.currentTab = this.section === 'finances' ? 'overview' : 'workspace';\r\n }\r\n this.changeTab(this.currentTab);\r\n }\r\n\r\n public changeTab(tab: string): void {\r\n if (!this.group) {\r\n return;\r\n }\r\n\r\n let name = 'group-directory-';\r\n if (this.section === 'finances') {\r\n name = 'group-finance-';\r\n }\r\n\r\n if (tab !== this.$route.params.tab) {\r\n const params = this.$route.params;\r\n params.tab = tab;\r\n if (this.section === 'finances') {\r\n // tslint:disable: no-floating-promises\r\n $router.push({ name: 'team-finances-group', params, query: this.$route.query });\r\n } else {\r\n $router.push({ name: 'team-directory-group', params, query: this.$route.query });\r\n }\r\n } else {\r\n this.doActiveClass(tab);\r\n this.currentTabComponent = name + tab;\r\n }\r\n }\r\n\r\n public changeSection(section) {\r\n const params = this.$route.params;\r\n this.section = section;\r\n\r\n if (this.section === 'finances') {\r\n params.tab = 'overview';\r\n params.period = periodModule.selectedPeriod;\r\n } else {\r\n params.tab = 'workspace';\r\n }\r\n\r\n if (this.currentTab === 'settings') {\r\n params.tab = this.currentTab;\r\n }\r\n\r\n params.period = periodModule.selectedPeriod;\r\n\r\n $router.push({ name: `team-${this.section}-group`, params });\r\n }\r\n\r\n public doActiveClass(tab: string) {\r\n this.$nextTick(() => {\r\n jQuery('.' + tab).addClass('active');\r\n });\r\n }\r\n\r\n get hideAmbitions() {\r\n return !roleHelper.checkAccess(this.groupFinanceSettings.privacyLevel, this.group);\r\n }\r\n\r\n get hideInsights() {\r\n return !roleHelper.checkAccess(this.groupFinanceSettings.privacyLevel, this.group);\r\n }\r\n\r\n public edit() {\r\n this.editMode = true;\r\n }\r\n\r\n public cancel() {\r\n this.editMode = false;\r\n }\r\n\r\n public async saveGroup() {\r\n const self = this;\r\n this.showPending('SAVE_GROUP_PENDING');\r\n\r\n const group = await groupHelper.createOrUpdateGroup(this.group);\r\n if (!group || group.groupId === 0) {\r\n return this.clearAndShowError('SAVE_GROUP_FAILED', null);\r\n }\r\n\r\n this.editMode = false;\r\n if (this.group.groupKey !== group.groupKey) {\r\n this.clearAndShowSuccess('SAVE_GROUP_SUCCESS');\r\n setTimeout(async () => {\r\n await $router.push({\r\n name: self.$route.name,\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n groupKey: group.groupKey,\r\n groupId: group.groupId.toString(),\r\n },\r\n });\r\n }, 1500);\r\n } else {\r\n this.clearAndShowSuccess('SAVE_GROUP_SUCCESS');\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./details.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./details.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./details.vue?vue&type=template&id=a31cae10&\"\nimport script from \"./details.ts?vue&type=script&lang=js&\"\nexport * from \"./details.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-toolbar',[_c('prd-translate-button',{staticClass:\"d-none d-md-inline-block\",attrs:{\"translate-key\":\"EXPLORE_ALL_GROUPS\",\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.exploreAllGroups}})],1),_c('prd-grid-wrapper',{key:_vm.reloadKey,attrs:{\"data-items\":_vm.groups,\"columns\":_vm.groupsColumns,\"row-height\":40}}),_c('energy-dedication-modal',{ref:\"energyDedicationEdit\",on:{\"energy-dedications-updated\":_vm.reloadEnergyDedications}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { meService, periodFilterHelper, teamHelper, loginHelper, ecosystemHelper } from '@/main';\r\nimport to from 'await-to-js';\r\nimport PageRender from '@/models/PageRender';\r\nimport Group from '@/models/Group';\r\nimport { Route } from 'vue-router';\r\nimport EnergyDedicationModalComponent from '@/components/modals/energy-dedication-modal';\r\nimport { Member } from '@/models/Member';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class GroupsComponent extends PageRender {\r\n public isLoaded: boolean = false;\r\n public groups: Group[] = [];\r\n public $refs!: {\r\n energyDedicationEdit: EnergyDedicationModalComponent;\r\n };\r\n\r\n public groupUsedInModal: Group = {} as Group;\r\n public totalEnergySpent: number = 0;\r\n public reloadKey: number = 0;\r\n\r\n public groupsColumns: any[] = [\r\n { cell: this.renderRouterLink, title: 'GROUP_NAME', width: 300 },\r\n { cell: this.renderEnergyDedication, title: 'ENERGY_DEDICATION', width: 175 },\r\n { field: 'purpose', title: 'GROUP_PURPOSE' },\r\n { cell: this.renderMembers, title: 'GROUP_MEMBERS', width: 125 },\r\n { cell: this.renderGroupLead, title: 'GROUP_LEAD', width: 300 },\r\n { cell: this.renderActions, title: 'ACTIONS', width: 125 },\r\n ];\r\n\r\n public async mounted() {\r\n await this.checkPeriodParam();\r\n const self = this;\r\n const [err, response] = await to(meService.getGroups(teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (err) {\r\n self.showFailedResponse('Could not get groups.', err);\r\n }\r\n const groups = response.data;\r\n\r\n const [errEnergy, responseEnergy] = await to(\r\n meService.getEnergyDedications(teamHelper.currentTeamId, periodModule.selectedPeriod),\r\n );\r\n if (errEnergy) {\r\n self.showFailedResponse('Could not get energy dedication.', errEnergy);\r\n }\r\n\r\n responseEnergy.data.forEach((energy) => {\r\n const group = groups.find((item: any) => {\r\n return item.groupKey === energy.groupKey.toLowerCase();\r\n });\r\n if (group) {\r\n group.energyDedication = energy.amount;\r\n self.totalEnergySpent += energy.amount;\r\n }\r\n });\r\n\r\n self.groups = groups;\r\n this.isLoaded = true;\r\n }\r\n\r\n public async reloadEnergyDedications() {\r\n const [errEnergy, responseEnergy] = await to(\r\n meService.getEnergyDedications(teamHelper.currentTeamId, periodModule.selectedPeriod),\r\n );\r\n if (errEnergy) {\r\n this.showFailedResponse('Could not get energy dedication.', errEnergy);\r\n }\r\n\r\n this.groups.forEach((x) => (x.energyDedication = 0));\r\n\r\n responseEnergy.data.forEach((energy) => {\r\n const group = this.groups.find((item: any) => {\r\n return item.groupKey === energy.groupKey.toLowerCase();\r\n });\r\n if (group) {\r\n group.energyDedication = energy.amount;\r\n }\r\n });\r\n\r\n this.reloadKey++;\r\n }\r\n\r\n public renderFullname(h, _, row) {\r\n const member = row.dataItem;\r\n const name = `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n return h('td', [name]);\r\n }\r\n\r\n public renderEnergyDedication(h, _, row) {\r\n const props = {\r\n value: row.dataItem.energyDedication,\r\n showPercentage: true,\r\n action: async () => {\r\n await this.openEditEnergyEdicationModal();\r\n },\r\n };\r\n return h(Vue.component('grid-percentage'), { props });\r\n }\r\n\r\n public renderGroupLead(h, _, row): any {\r\n return this.renderMember(h, row.dataItem.groupLead);\r\n }\r\n\r\n public renderMemberName(h, _, row): any {\r\n return this.renderMember(h, row.dataItem);\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n const actions = [\r\n { title: 'Overview', function: this.exploreAllGroups },\r\n {\r\n title: 'Edit energy dedication',\r\n function: this.openEditEnergyEdicationModal,\r\n disabled: periodFilterHelper.isCurrentPeriodClosed(),\r\n },\r\n ];\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n public renderRouterLink(h, _, row) {\r\n const routeUrl = this.$router.resolve({\r\n name: 'team-directory-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n groupKey: row.dataItem.groupKey,\r\n groupId: row.dataItem.groupId,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'workspace',\r\n period: periodModule.selectedPeriod,\r\n },\r\n }).href;\r\n\r\n const props = {\r\n text: row.dataItem.name,\r\n url: routeUrl,\r\n };\r\n\r\n return h(Vue.component('grid-router-link'), { props });\r\n }\r\n\r\n public renderPercentage(item: any): any {\r\n const self = this;\r\n return {\r\n template: Vue.component('grid-percentage-component'),\r\n templateArgs: (Object as any).assign(\r\n {},\r\n {\r\n value: item.energyDedication,\r\n async action() {\r\n await self.openEditEnergyEdicationModal();\r\n },\r\n },\r\n {},\r\n ),\r\n };\r\n }\r\n\r\n public exploreAllGroups(): Promise {\r\n return this.$router.push({\r\n name: 'team-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n team: teamHelper.teamParam,\r\n },\r\n });\r\n }\r\n\r\n public async openEditEnergyEdicationModal() {\r\n const self = this;\r\n const modal = self.$refs.energyDedicationEdit;\r\n const memberObj = new Member(loginHelper.getUser());\r\n await modal.setMember(memberObj);\r\n modal.show();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./groups.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./groups.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./groups.vue?vue&type=template&id=6574a5ac&\"\nimport script from \"./groups.ts?vue&type=script&lang=js&\"\nexport * from \"./groups.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-toolbar',[_c('prd-translate-button',{attrs:{\"translate-key\":\"EXPLORE_ALL_MEMBERS\",\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.exploreAllMembers}})],1),_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.members,\"columns\":_vm.memberColumns,\"row-height\":36}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { ecosystemHelper, meService, teamHelper } from '@/main';\r\nimport to from 'await-to-js';\r\nimport PageRender from '@/models/PageRender';\r\nimport { Route } from 'vue-router';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { Person } from '@/models/Person';\r\n\r\n@Component\r\nexport default class MembersComponent extends PageRender {\r\n public isLoaded: boolean = false;\r\n public members: Person[] = [];\r\n\r\n public memberColumns: any[] = [\r\n { cell: this.renderMemberName, title: 'NAME', field: 'firstName' },\r\n { cell: this.renderMemberships, title: 'MEMBERS_OF', field: 'firstName', width: 200 },\r\n { title: 'EMAIL', field: 'emailAddress' },\r\n { title: 'PHONE', field: 'phoneNumber' },\r\n ];\r\n\r\n public async mounted() {\r\n await this.checkPeriodParam();\r\n const self = this;\r\n\r\n const [errMembers, responseMembers] = await to(meService.getMembers(teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (errMembers) {\r\n self.showFailedResponse('Could not get members.', errMembers);\r\n }\r\n\r\n this.members = responseMembers.data.map((x) => new Person(x));\r\n this.isLoaded = true;\r\n }\r\n\r\n public renderFullname(h, _, row) {\r\n const member = row.dataItem;\r\n const name = `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n return h('td', [name]);\r\n }\r\n\r\n public renderMemberName(h, _, row): any {\r\n return this.renderMember(h, row.dataItem);\r\n }\r\n\r\n public exploreAllMembers(): Promise {\r\n return this.$router.push({\r\n name: 'team-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n team: teamHelper.teamParam,\r\n },\r\n });\r\n }\r\n\r\n public fullname(member: any): string {\r\n return `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./members.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./members.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./members.vue?vue&type=template&id=1153eab4&\"\nimport script from \"./members.ts?vue&type=script&lang=js&\"\nexport * from \"./members.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"p-10 h-100\"},[_vm._m(0),_c('b-alert',{staticClass:\"mw-600 mx-auto my-14\",attrs:{\"show\":\"\",\"variant\":\"warning\"}},[_c('h1',{staticClass:\"alert-heading text-center\"},[_vm._v(\"Woops, you're not in such bright place!\")])]),_c('div',{staticClass:\"d-block mx-auto my-5 text-center\"},[_c('b-button',{staticClass:\"btn btn-lg\",attrs:{\"type\":\"submit\",\"variant\":\"primary\"},on:{\"click\":function($event){return _vm.goToRoot()}}},[_vm._v(\"Head back to a brighter place\")])],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center my-5\"},[_c('span',{staticClass:\"k-icon k-i-brightness-contrast my-14\",staticStyle:{\"color\":\"#ffc107\",\"font-size\":\"10rem\"}})])}]\n\nexport { render, staticRenderFns }","import Component from 'vue-class-component';\r\nimport Vue from 'vue';\r\nimport { $router, teamHelper } from '@/main';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class NotFoundComponent extends Vue {\r\n public async goToRoot() {\r\n await $router.push({\r\n name: 'me-finances',\r\n params: {\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'overview',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./notfound.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./notfound.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./notfound.vue?vue&type=template&id=5b491944&\"\nimport script from \"./notfound.ts?vue&type=script&lang=js&\"\nexport * from \"./notfound.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-tabs',[_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"SETTINGS_TRANSLATE_LANGUAGE\"},slot:\"title\"}),_c('prd-toolbar',[(_vm.$root.inEditMode)?_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"translate-key\":\"SETTINGS_ADD_LANGUAGE\"}}):_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SETTINGS_ADD_LANGUAGE'),expression:\"'SETTINGS_ADD_LANGUAGE'\"}],attrs:{\"variant\":\"primary\",\"size\":\"sm\"},on:{\"click\":_vm.showAddLanguage}})],1),_c('ul',{staticClass:\"list-group mt-3\"},_vm._l((_vm.languages),function(lang,index){return _c('li',{key:'l-' + index,staticClass:\"list-group-item\"},[_vm._v(\" \"+_vm._s(lang)+\" \")])}),0)],1),_c('b-tab',[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SETTINGS_TRANSLATE_GENERAL'),expression:\"'SETTINGS_TRANSLATE_GENERAL'\"}]})]),_c('translate-group')],1),_c('b-tab',[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SETTINGS_ALERT_MESSAGES'),expression:\"'SETTINGS_ALERT_MESSAGES'\"}]})]),_c('translate-group',{attrs:{\"group\":\"ALERT_MESSAGES\"}})],1),_c('b-tab',[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SETTINGS_REGISTER_MESSAGES'),expression:\"'SETTINGS_REGISTER_MESSAGES'\"}]})]),_c('translate-group',{attrs:{\"group\":\"REGISTER\"}})],1),_c('b-tab',[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SETTINGS_MAP_MESSAGES'),expression:\"'SETTINGS_MAP_MESSAGES'\"}]})]),_c('translate-group',{attrs:{\"group\":\"MAP\"}})],1),_c('b-tab',[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SETTINGS_MODAL_MESSAGES'),expression:\"'SETTINGS_MODAL_MESSAGES'\"}]})]),_c('translate-group',{attrs:{\"group\":\"MODALS\"}})],1),_c('b-tab',[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SETTINGS_GRID_MESSAGES'),expression:\"'SETTINGS_GRID_MESSAGES'\"}]})]),_c('translate-group',{attrs:{\"group\":\"GRID\"}})],1)],1),_c('b-modal',{ref:\"addLanguageModal\",attrs:{\"size\":\"sm\"}},[_c('h5',{attrs:{\"slot\":\"modal-header\"},slot:\"modal-header\"},[_vm._v(\"Add language\")]),_c('b-form-group',{attrs:{\"label\":\"Key\"}},[_c('b-input',{model:{value:(_vm.newLanguage),callback:function ($$v) {_vm.newLanguage=$$v},expression:\"newLanguage\"}})],1),_c('b-button',{attrs:{\"slot\":\"modal-footer\",\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$refs.addLanguageModal.hide()}},slot:\"modal-footer\"},[_vm._v(\" Cancel \")]),_c('b-button',{attrs:{\"slot\":\"modal-footer\",\"size\":\"sm\",\"variant\":\"primary\"},on:{\"click\":_vm.addLanguage},slot:\"modal-footer\"},[_vm._v(\" Save \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-form-group',[_c('b-input',{model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.items.length))])],1),_c('b-card',[_c('table',{staticClass:\"table table-sm table-hover\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Key\")]),_c('th',[_vm._v(\"Value\")])])]),_vm._l((_vm.items),function(key,index){return _c('tr',{key:'alert-' + index},[_c('td',{staticStyle:{\"width\":\"30%\"}},[_vm._v(_vm._s(key))]),_c('td',[_c('prd-translate-text-inline',{attrs:{\"translate-key\":key,\"translate-group\":_vm.group,\"inline\":true}})],1)])})],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { translateModule } from '@/store/modules/translate';\r\nimport Vue from 'vue';\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class TranslateGroupSetting extends Vue {\r\n @Prop() public group?: string;\r\n public search: string = '';\r\n\r\n public get items() {\r\n const search = this.search.toLowerCase();\r\n const messages = this.group && this.group !== '' ? this.grouped : this.ungrouped;\r\n return Object.keys(messages).filter((k) => {\r\n const value = messages[k].toLowerCase();\r\n const key = k.toLowerCase();\r\n return search ? (value.indexOf(search) > -1 || key.indexOf(search) > -1) : true;\r\n });\r\n }\r\n\r\n public get grouped() {\r\n return translateModule.value(this.group);\r\n }\r\n\r\n public get ungrouped() {\r\n const messages = {};\r\n const all = translateModule.all;\r\n Object.keys(all).forEach((key) => {\r\n if (typeof(all[key]) === 'string') {\r\n messages[key] = all[key];\r\n }\r\n });\r\n return messages;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./translate-group.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./translate-group.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./translate-group.vue?vue&type=template&id=906f80e6&\"\nimport script from \"./translate-group.ts?vue&type=script&lang=js&\"\nexport * from \"./translate-group.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { translateModule } from '@/store/modules/translate';\r\nimport { BModal } from 'bootstrap-vue';\r\nimport TranslateGroup from './translate-group.vue';\r\n\r\n@Component({\r\n components: {\r\n TranslateGroup,\r\n },\r\n})\r\nexport default class LanguagePage extends Vue {\r\n public newLanguage: string = '';\r\n public searchAlertMessage: string = '';\r\n public $refs!: {\r\n addLanguageModal: BModal,\r\n };\r\n\r\n public get languages() {\r\n return translateModule.languages;\r\n }\r\n\r\n public showAddLanguage() {\r\n this.$refs.addLanguageModal.show();\r\n }\r\n\r\n public async addLanguage() {\r\n translateModule.addLanguage(this.newLanguage.toLowerCase());\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./translate.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./translate.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./translate.vue?vue&type=template&id=fb9782a6&\"\nimport script from \"./translate.ts?vue&type=script&lang=js&\"\nexport * from \"./translate.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isLoading)?_c('prd-loader',{attrs:{\"absolute\":\"\"}}):_c('b-tabs',{attrs:{\"fill\":\"\",\"pills\":\"\"},on:{\"activate-tab\":_vm.moveToTab},model:{value:(_vm.stepIndex),callback:function ($$v) {_vm.stepIndex=$$v},expression:\"stepIndex\"}},[_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_GROUP_STEP_1\"},slot:\"title\"}),_c('prd-card',{staticClass:\"mt-3\"},[_c('prd-translate-text',{attrs:{\"slot\":\"header\",\"element\":\"h5\",\"translate-key\":\"SET_UP_GENERIC_PROPERTIES\"},slot:\"header\"}),_c('b-form-group',{attrs:{\"label-cols\":\"3\",\"label-for\":\"period\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ADD_IN_PERIOD\",\"element\":\"span\"}}),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],staticClass:\"icon-info ml-2\",attrs:{\"title\":_vm._f(\"translate\")('ADD_IN_PERIOD_INFO')}})],1),_c('prd-multiselect',{attrs:{\"options\":_vm.periods,\"label\":\"name\",\"placeholder\":_vm._f(\"translate\")('SELECT_PERIOD')},model:{value:(_vm.selectedPeriod),callback:function ($$v) {_vm.selectedPeriod=$$v},expression:\"selectedPeriod\"}})],2),_c('b-form-group',{attrs:{\"id\":\"groupLeadGroup\",\"label\":\"Group lead\",\"label-for\":\"persons\",\"label-cols\":\"3\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"CREATE_GROUP_GROUPLEAD_LABEL\"},slot:\"label\"}),_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"CREATE_GROUP_GROUPLEAD_DESCRIPTION\"},slot:\"description\"}),_c('prd-multiselect',{attrs:{\"options\":_vm.memberOptions,\"label\":\"fullName\",\"placeholder\":_vm._f(\"translate\")('DROPDOWN.SELET_A_MEMBER'),\"is-valid\":!_vm.submitted || !_vm.$v.selectedGroupLead.$invalid},on:{\"input\":_vm.updateMemberList},model:{value:(_vm.selectedGroupLead),callback:function ($$v) {_vm.selectedGroupLead=$$v},expression:\"selectedGroupLead\"}})],1),_c('b-form-group',{attrs:{\"id\":\"groupNameGroup\",\"label\":\"Group name\",\"label-for\":\"groupNameInput\",\"description\":\"The group name\",\"label-cols\":\"3\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"CREATE_GROUP_NAME_DESCRIPTION\"},slot:\"description\"}),_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"CREATE_GROUP_NAME_LABEL\"},slot:\"label\"}),_c('b-form-input',{class:{ 'border-danger': _vm.$v.createGroupForm.name.$invalid && _vm.submitted },attrs:{\"id\":\"groupNameInput\",\"type\":\"text\",\"placeholder\":\"Development\"},model:{value:(_vm.createGroupForm.name),callback:function ($$v) {_vm.$set(_vm.createGroupForm, \"name\", $$v)},expression:\"createGroupForm.name\"}})],1),_c('b-form-group',{attrs:{\"id\":\"groupNameGroup\",\"label\":\"Group purpose\",\"label-for\":\"groupPurposeInput\",\"label-cols\":\"3\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"CREATE_GROUP_PURPOSE_DESCRIPTION\"},slot:\"description\"}),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.createGroupForm.purpose),expression:\"createGroupForm.purpose\"},{name:\"translate\",rawName:\"v-translate:placeholder\",value:('CREATE_GROUP_PURPOSE_PLACEHOLDER'),expression:\"'CREATE_GROUP_PURPOSE_PLACEHOLDER'\",arg:\"placeholder\"}],staticClass:\"form-control\",class:{ 'border-danger': _vm.$v.createGroupForm.purpose.$invalid && _vm.submitted },staticStyle:{\"resize\":\"none\",\"overflow-y\":\"scroll\"},attrs:{\"id\":\"groupPurposeInput\",\"type\":\"text\",\"rows\":\"3\",\"max-rows\":\"6\"},domProps:{\"value\":(_vm.createGroupForm.purpose)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.createGroupForm, \"purpose\", $event.target.value)}}})],1),_c('prd-translate-button',{attrs:{\"slot\":\"footer-buttons\",\"variant\":\"primary\",\"translate-key\":\"FORWARD_ONE_STEP\"},on:{\"click\":_vm.next},slot:\"footer-buttons\"})],1)],1),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_GROUP_STEP_2\"},slot:\"title\"}),_c('prd-card',{staticClass:\"mt-3\"},[_c('prd-translate-text',{attrs:{\"slot\":\"header\",\"translate-key\":\"SET_UP_MEMBERS\"},slot:\"header\"}),_c('b-form-group',[_c('b-form-checkbox-group',{attrs:{\"stacked\":\"\",\"options\":_vm.members},model:{value:(_vm.selectMemberIds),callback:function ($$v) {_vm.selectMemberIds=$$v},expression:\"selectMemberIds\"}})],1),_c('b-alert',{attrs:{\"variant\":\"warning\",\"show\":_vm.$v.selectMemberIds.$invalid && _vm.submitted}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CREATE_GROUP_MEMBERS_ADD_AT_LEAST_ONE\"}})],1),_c('template',{slot:\"footer-buttons\"},[_c('prd-translate-button',{attrs:{\"translate-key\":\"BACK_ONE_STEP\"},on:{\"click\":_vm.back}}),_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"translate-key\":\"FORWARD_ONE_STEP\"},on:{\"click\":_vm.next}})],1)],2)],1),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_GROUP_STEP_3\"},slot:\"title\"}),_c('prd-card',{staticClass:\"mt-3\"},[_c('prd-translate-text',{attrs:{\"slot\":\"header\",\"translate-key\":\"SET_UP_WORKSPACE\"},slot:\"header\"}),_c('b-form-group',{attrs:{\"id\":\"groupWorkspace\",\"label\":\"Worksapce\",\"label-for\":\"groupWorkspaceInput\",\"description\":\"Specify default external links or other important notes on this section\",\"label-cols\":\"3\"}},[_c('prd-richtext-editor',{model:{value:(_vm.createGroupForm.readMe),callback:function ($$v) {_vm.$set(_vm.createGroupForm, \"readMe\", $$v)},expression:\"createGroupForm.readMe\"}})],1),_c('template',{slot:\"footer-buttons\"},[_c('prd-translate-button',{attrs:{\"translate-key\":\"BACK_ONE_STEP\"},on:{\"click\":_vm.back}}),_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"translate-key\":\"FORWARD_ONE_STEP\"},on:{\"click\":_vm.next}})],1)],2)],1),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_GROUP_STEP_4\"},slot:\"title\"}),_c('prd-card',{staticClass:\"mt-3\"},[_c('prd-translate-text',{attrs:{\"slot\":\"header\",\"translate-key\":\"SET_UP_CONNECTORS\"},slot:\"header\"}),_c('b-form-group',{attrs:{\"label\":\"Group connectors\",\"label-cols\":\"3\",\"description\":\"Enable connectors if you want to activate this group automatically in theses sections\"}},[_c('b-form-checkbox-group',{staticClass:\"mb-2\",attrs:{\"options\":_vm.connectorOptions,\"name\":\"connectors\",\"stacked\":\"\",\"switches\":\"\"},model:{value:(_vm.selectedConnectors),callback:function ($$v) {_vm.selectedConnectors=$$v},expression:\"selectedConnectors\"}})],1),_c('template',{slot:\"footer-buttons\"},[_c('prd-translate-button',{attrs:{\"translate-key\":\"BACK_ONE_STEP\"},on:{\"click\":_vm.back}}),_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"translate-key\":\"FORWARD_ONE_STEP\"},on:{\"click\":_vm.next}})],1)],2)],1),(_vm.hasFinanceConnector)?_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_GROUP_STEP_5\"},slot:\"title\"}),(_vm.stepIndex == 4)?[_c('prd-translate-text',{staticClass:\"my-3\",attrs:{\"element\":\"h5\",\"translate-key\":\"SET_UP_TEMPLATES\"}}),(!_vm.templates || _vm.templates.length == 0)?_c('prd-card',[_c('prd-translate-text',{attrs:{\"translate-key\":\"CREATE_GROUP_NO_TEMPLATES\"}}),_c('router-link',{attrs:{\"to\":_vm.teamFinanceSettingsRoute}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CREATE_GROUP_CONFIGURE_TEMPLATES\"}})],1)],1):[_c('b-card-group',{attrs:{\"deck\":\"\"}},[_vm._l((_vm.templates),function(template,templateIndex){return [_c('prd-card',{key:(\"template_\" + templateIndex),staticClass:\"cursor-pointer text-center\",class:template.financeGroupTemplateId === _vm.selectedTemplateId ? 'border-primary' : '',staticStyle:{\"min-width\":\"18rem\",\"max-width\":\"18rem\"},attrs:{\"title\":template.name},nativeOn:{\"click\":function($event){return _vm.selectTemplate(template)}}},[_vm._v(\" \"+_vm._s(template.description)+\" \")])]})],2),_c('prd-toolbar',{staticClass:\"mt-3\"},[_c('prd-translate-button',{attrs:{\"translate-key\":\"BACK_ONE_STEP\"},on:{\"click\":_vm.back}}),_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"translate-key\":\"FORWARD_ONE_STEP\"},on:{\"click\":_vm.next}})],1)]]:_vm._e()],2):_vm._e(),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_GROUP_STEP_8\"},slot:\"title\"}),_c('prd-card',{staticClass:\"mt-3\"},[_c('prd-translate-text',{attrs:{\"slot\":\"header\",\"translate-key\":\"CREATE_GROUP_SUMMARY_TITLE\"},slot:\"header\"}),_c('prd-translate-text',{attrs:{\"element\":\"p\",\"translate-key\":\"CREATE_GROUP_SUMMARY\"}}),_c('b-form-group',{attrs:{\"label-cols\":\"2\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"GROUP_NAME\",\"element\":\"label\"},slot:\"label\"}),_c('p',[_vm._v(_vm._s(_vm.createGroupForm.name))])],1),_c('b-form-group',{attrs:{\"label-cols\":\"2\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"DESCRIPTION\",\"element\":\"label\"},slot:\"label\"}),_c('p',[_vm._v(_vm._s(_vm.createGroupForm.purpose))])],1),_c('b-form-group',{attrs:{\"label\":\"Members to be add\",\"label-cols\":\"2\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"CREATE_GROUP_MEMBERS_ADD\",\"element\":\"label\"},slot:\"label\"}),_c('p',[_vm._v(_vm._s(_vm.memberNames))])],1),_c('b-form-group',{attrs:{\"label\":\"Connector\",\"label-cols\":\"2\"}},[(_vm.selectedConnectors.length > 0)?[_c('p',[_vm._v(\" \"+_vm._s(_vm.connectorNames)+\" \")])]:_c('prd-translate-text',{attrs:{\"element\":\"p\",\"translate-key\":\"CREATE_GROUP_SUMMARY_NO_CONNECTORS\"}})],2),_c('b-form-group',{attrs:{\"label\":\"Default settings\",\"label-cols\":\"2\"}},[(_vm.selectedTemplateId > 0)?[_c('prd-translate-text',{attrs:{\"translate-key\":\"CREATE_GROUP_SUMMERY_APPLIED\",\"params\":{ templateName: _vm.templateName },\"element\":\"p\"}})]:_c('p',[_c('prd-translate-text',{attrs:{\"element\":\"p\",\"translate-key\":\"CREATE_GROUP_SUMMARY_NO_TEMPLATE\"}})],1)],2),_c('template',{slot:\"footer-buttons\"},[_c('prd-translate-button',{attrs:{\"translate-key\":\"BACK_ONE_STEP\"},on:{\"click\":_vm.back}}),_c('prd-translate-button',{attrs:{\"action\":_vm.finalize,\"variant\":\"primary\",\"translate-key\":\"CREATE_GROUP\"}})],1)],2)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport PageRender from '../../../models/PageRender';\r\nimport {\r\n groupHelper,\r\n roleHelper,\r\n memberHelper,\r\n connectorService,\r\n templateService,\r\n teamHelper,\r\n groupService,\r\n teamService,\r\n ecosystemHelper,\r\n} from '@/main';\r\nimport moment from 'moment';\r\nimport Group from '@/models/Group';\r\nimport { VueEditor } from 'vue2-editor';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport Connector from '@/models/Connectors/Connector';\r\nimport { Person } from '@/models/Person';\r\nimport { Member } from '@/models/Member';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { required, minLength } from 'vuelidate/lib/validators';\r\nimport to from 'await-to-js';\r\nimport Team from '@/models/Team';\r\nimport Period from '@/models/Period';\r\n\r\n@Component({\r\n components: {\r\n VueEditor,\r\n },\r\n validations: {\r\n createGroupForm: {\r\n name: { required },\r\n purpose: { required },\r\n readMe: { minLength: minLength(20) },\r\n },\r\n selectMemberIds: { required, minLength: minLength(1) },\r\n selectedGroupLead: { required },\r\n },\r\n} as any)\r\nexport default class TeamDirectoryAddGroupComponent extends PageRender {\r\n public connectors: Connector[] = [];\r\n public selectedConnectors: any[] = [];\r\n public allMembers: Person[] = [];\r\n public groups: Group[] = [];\r\n public selectedTemplateId: number = 0;\r\n public createGroupForm: Group = new Group();\r\n public selectedGroupLead: Person = null;\r\n public selectMemberIds: number[] = [];\r\n public submitted: boolean = false;\r\n public stepIndex: number = 0;\r\n public energySpent: number = 0;\r\n public selectedPeriod: Period = null;\r\n public templates: any[] = [];\r\n public teams: Team[] = [];\r\n\r\n public async mounted() {\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee()) {\r\n await this.$router.push({ name: 'not-found' });\r\n }\r\n\r\n this.allMembers = await memberHelper.getMembers(true);\r\n const me = this.allMembers.find((x) => x.personId === profileModule.brightProfile.personId);\r\n this.connectors = await connectorService.getConnectors();\r\n this.groups = await groupHelper.getGroups();\r\n this.selectedGroupLead = me ? me : null;\r\n if (this.selectedGroupLead) {\r\n this.selectMemberIds.push(this.selectedGroupLead.personId);\r\n }\r\n this.selectedPeriod = this.periods.find((periodOption: Period) => {\r\n return periodOption.periodId === periodModule.selectedPeriodObject.periodId;\r\n });\r\n\r\n await this.loadTemplates();\r\n this.teams = await teamService.getTeams();\r\n this.isLoading = false;\r\n }\r\n\r\n public get periods() {\r\n return periodModule.periods.map((period: Period) => {\r\n const option: any = { ...period };\r\n option.name = moment(period.startDate).format(`MMMM 'YY`);\r\n return option;\r\n });\r\n }\r\n\r\n public get members() {\r\n const groupLeadId = this.selectedGroupLead ? this.selectedGroupLead.personId : null;\r\n let list = [];\r\n if (this.allMembers && this.allMembers.length > 0) {\r\n list = this.allMembers.map((member) => {\r\n return {\r\n text: `${member.getFullName()}${member.personId === groupLeadId ? ' (group lead)' : ''}`,\r\n value: member.personId,\r\n };\r\n });\r\n }\r\n return list.sort((x, y) => x.value === groupLeadId ? -1 : y === groupLeadId ? 1 : 0);\r\n }\r\n\r\n public get memberNames() {\r\n return this.allMembers\r\n .filter((x) => this.selectMemberIds.indexOf(x.personId) > -1)\r\n .map((x) => x.getFullName())\r\n .join(', ');\r\n }\r\n\r\n public get memberOptions() {\r\n return this.allMembers.filter((x) => x.externalIdentifier);\r\n }\r\n\r\n public get templateName() {\r\n return this.templates.find((x) => x.financeGroupTemplateId === this.selectedTemplateId).name;\r\n }\r\n\r\n public get connectorNames() {\r\n return this.connectors\r\n .filter((x) => this.selectMemberIds.indexOf(x.connectorId) > -1)\r\n .map((x) => x.name)\r\n .join(', ');\r\n }\r\n\r\n public get teamFinanceSettingsRoute() {\r\n const params = this.$route.params;\r\n const route = {\r\n name: 'team-finances',\r\n params: {\r\n teamId: params.teamId,\r\n teamKey: params.teamKey,\r\n period: params.period,\r\n tab: 'settings',\r\n },\r\n };\r\n return route;\r\n }\r\n\r\n public get hasFinanceConnector() {\r\n return this.selectedConnectors.filter((x) => x === 1).length > 0;\r\n }\r\n\r\n public get connectorOptions() {\r\n return this.connectors.map((x) => {\r\n return { value: x.connectorId, text: x.name };\r\n });\r\n }\r\n\r\n public valid(index: number = this.stepIndex) {\r\n this.clearNotifications();\r\n if (index === 0) {\r\n return !(this as any).$v.createGroupForm.$invalid && !(this as any).$v.selectedGroupLead.$invalid;\r\n } else if (index === 1) {\r\n return !(this as any).$v.selectMemberIds.$invalid;\r\n } else if (index === 2) {\r\n return !(this as any).$v.createGroupForm.$invalid;\r\n } else if (index === 3) {\r\n // no validation needed, connector is selected or not.\r\n } else if (index === 4) {\r\n // no validation, default no template selected\r\n } else if (index === 5) {\r\n // validate finance settings when editable\r\n } else if (index === 6) {\r\n // validate attributions settings when editable\r\n } else if (index === 7) {\r\n return !(this as any).$v.createGroupForm.$invalid || !(this as any).$v.selectMemberIds.$invalid;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public moveToTab(newTabIndex, prevTabIndex, bvEvent) {\r\n if (newTabIndex > this.stepIndex + 1 || (!this.valid(prevTabIndex) && newTabIndex > prevTabIndex)) {\r\n this.submitted = true;\r\n return bvEvent.preventDefault();\r\n }\r\n\r\n this.submitted = false;\r\n }\r\n\r\n public async next() {\r\n this.submitted = true;\r\n if (this.valid()) {\r\n this.stepIndex++;\r\n\r\n if (this.stepIndex === 4) {\r\n await this.loadTemplates();\r\n }\r\n\r\n if (this.stepIndex === 6) {\r\n this.teams = await teamService.getTeams();\r\n }\r\n this.submitted = false;\r\n }\r\n }\r\n\r\n public back() {\r\n this.stepIndex--;\r\n }\r\n\r\n public async finalize() {\r\n if (this.valid()) {\r\n await this.addGroup();\r\n }\r\n }\r\n\r\n public updateMemberList(groupLead: Person) {\r\n this.selectMemberIds = [groupLead.personId];\r\n }\r\n\r\n public selectTemplate(template) {\r\n this.selectedTemplateId = template.financeGroupTemplateId;\r\n }\r\n\r\n public async addGroup() {\r\n const periodString = moment(this.selectedPeriod.startDate, 'YYYY-MM-DD').format('YYYY-MM');\r\n this.showPending('CREATE_GROUP_PENDING');\r\n this.createGroupForm.connectors = this.selectedConnectors;\r\n this.createGroupForm.groupLead = new Member({ memberId: this.selectedGroupLead.personId });\r\n this.createGroupForm.templateId = this.selectedTemplateId > 0 ? this.selectedTemplateId : null;\r\n\r\n const newGroup = await groupHelper.createOrUpdateGroup(this.createGroupForm, periodString);\r\n if (!newGroup.groupId) {\r\n return;\r\n }\r\n\r\n const groups = await teamService.getGroups(teamHelper.currentTeam.id, periodString);\r\n const group = groups.data.find((x) => x.name === this.createGroupForm.name);\r\n if (this.selectMemberIds.length > 1 && group) {\r\n this.clearNotifications();\r\n this.showPending('Adding selected members to the group...');\r\n const [err] = await to(groupService.addMembers(this.selectMemberIds, group.groupId, teamHelper.currentTeam.id, periodString));\r\n\r\n if (err) {\r\n return this.clearAndShowError('Failed adding members');\r\n }\r\n }\r\n\r\n this.clearNotifications();\r\n await this.$router.push({\r\n name: 'team-directory-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n groupId: group.groupId.toString(),\r\n groupKey: group.groupKey,\r\n tab: 'members',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n private async loadTemplates() {\r\n this.templates = await templateService.getTemplates(teamHelper.currentTeam.id);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./add-group.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./add-group.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./add-group.vue?vue&type=template&id=e2bcc028&\"\nimport script from \"./add-group.ts?vue&type=script&lang=js&\"\nexport * from \"./add-group.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tabs',{attrs:{\"pills\":\"\",\"fill\":\"\"},model:{value:(_vm.stepIndex),callback:function ($$v) {_vm.stepIndex=$$v},expression:\"stepIndex\"}},[_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_MEMBER_STEP_1\"},slot:\"title\"}),_c('prd-card',{staticClass:\"mt-3\"},[_c('b-form-group',{attrs:{\"label-cols\":\"\",\"label-for\":\"period\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{staticClass:\"mr-2\",attrs:{\"translate-key\":\"ADD_IN_PERIOD\",\"element\":\"span\"}}),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],staticClass:\"icon-info\",attrs:{\"title\":_vm._f(\"translate\")('ADD_IN_PERIOD_INFO')}})],1),_c('prd-multiselect',{attrs:{\"label\":\"name\",\"options\":_vm.periods,\"placeholder\":_vm._f(\"translate\")('SELECT_PERIOD')},model:{value:(_vm.period),callback:function ($$v) {_vm.period=$$v},expression:\"period\"}})],2),_c('b-form-group',{attrs:{\"label-cols\":\"\"}},[_c('label',{attrs:{\"slot\":\"label\",\"for\":\"emailaddress\"},slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"EMAIL\"}})],1),_c('b-input',{directives:[{name:\"translate\",rawName:\"v-translate:placeholder\",value:('EMAIL'),expression:\"'EMAIL'\",arg:\"placeholder\"}],attrs:{\"id\":\"emailadress\"},on:{\"blur\":_vm.searchEmailaddress},model:{value:(_vm.memberToAdd.emailAddress),callback:function ($$v) {_vm.$set(_vm.memberToAdd, \"emailAddress\", $$v)},expression:\"memberToAdd.emailAddress\"}})],1),_c('b-form-group',{attrs:{\"label-cols\":\"\"}},[_c('label',{attrs:{\"slot\":\"label\",\"for\":\"firstname\"},slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"FIRST_NAME\"}})],1),_c('b-form-input',{directives:[{name:\"translate\",rawName:\"v-translate:placeholder\",value:('FIRST_NAME'),expression:\"'FIRST_NAME'\",arg:\"placeholder\"}],attrs:{\"id\":\"firstname\",\"disabled\":_vm.disableStuff},model:{value:(_vm.memberToAdd.firstName),callback:function ($$v) {_vm.$set(_vm.memberToAdd, \"firstName\", $$v)},expression:\"memberToAdd.firstName\"}})],1),_c('b-form-group',{attrs:{\"label-cols\":\"\"}},[_c('label',{attrs:{\"slot\":\"label\",\"for\":\"lastname\"},slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LAST_NAME\"}})],1),_c('b-form-input',{directives:[{name:\"translate\",rawName:\"v-translate:placeholder\",value:('LAST_NAME'),expression:\"'LAST_NAME'\",arg:\"placeholder\"}],attrs:{\"id\":\"lastname\",\"disabled\":_vm.disableStuff},model:{value:(_vm.memberToAdd.lastName),callback:function ($$v) {_vm.$set(_vm.memberToAdd, \"lastName\", $$v)},expression:\"memberToAdd.lastName\"}})],1),_c('b-form-group',{attrs:{\"label-cols\":\"\",\"label-for\":\"access\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{staticClass:\"mr-2\",attrs:{\"translate-key\":\"ACCESS_TO_TEAM\",\"element\":\"span\"}}),_c('i',{directives:[{name:\"b-tooltip\",rawName:\"v-b-tooltip\"}],staticClass:\"icon-info\",attrs:{\"title\":_vm._f(\"translate\")('ACCESS_TO_TEAM_INFO')}})],1),_c('b-form-checkbox',{attrs:{\"id\":\"access\",\"name\":\"access\",\"switch\":\"\"},model:{value:(_vm.memberToAdd.createAccount),callback:function ($$v) {_vm.$set(_vm.memberToAdd, \"createAccount\", $$v)},expression:\"memberToAdd.createAccount\"}})],2),_c('prd-translate-button',{attrs:{\"slot\":\"footer-buttons\",\"variant\":\"primary\",\"translate-key\":\"CREATE_ACCOUNT_POROCEED_TO_GROUP\"},on:{\"click\":_vm.next},slot:\"footer-buttons\"})],1)],1),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_MEMBER_STEP_2\"},slot:\"title\"}),(_vm.stepIndex == 1)?_c('prd-card',{staticClass:\"mt-3\"},[_c('prd-translate-text',{attrs:{\"slot\":\"header\",\"translate-key\":\"ADD_TO_GROUPS\",\"params\":{ name: _vm.memberToAdd.createAccount ? _vm.memberToAdd.emailAddress : _vm.memberToAdd.firstName }},slot:\"header\"}),_c('b-form-group',[_c('b-form-checkbox-group',{attrs:{\"stacked\":\"\",\"id\":\"checkbox-group-1\",\"options\":_vm.groups},model:{value:(_vm.selectedGroupIds),callback:function ($$v) {_vm.selectedGroupIds=$$v},expression:\"selectedGroupIds\"}})],1),_c('template',{slot:\"footer-buttons\"},[_c('prd-translate-button',{attrs:{\"translate-key\":\"BACK_ONE_STEP\"},on:{\"click\":_vm.back}}),_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"translate-key\":\"PROCEED_TO_ENERGY_DEDICATION\"},on:{\"click\":_vm.next}})],1)],2):_vm._e()],1),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ADD_MEMBER_STEP_3\"},slot:\"title\"}),(_vm.stepIndex == 2)?_c('prd-card',{staticClass:\"mt-3\"},[_c('prd-translate-text',{attrs:{\"slot\":\"header\",\"translate-key\":\"SET_UP_ENERGY_DEDICATION\"},slot:\"header\"}),_vm._l((_vm.selectedGroups),function(group,groupIndex){return [_c('b-form-group',{key:(\"group_\" + groupIndex),attrs:{\"label-cols\":\"\",\"label-for\":\"groupenergy\"}},[_c('template',{slot:\"label\"},[_vm._v(_vm._s(group.name))]),_c('b-input',{directives:[{name:\"translate\",rawName:\"v-translate:placeholder\",value:('ENTER_A_PERCENTAGE'),expression:\"'ENTER_A_PERCENTAGE'\",arg:\"placeholder\"}],attrs:{\"id\":\"groupenergy\",\"list\":\"input-list\",\"type\":\"number\"},on:{\"update\":function($event){return _vm.updateEnergy($event, group.groupId)}},model:{value:(group.amount),callback:function ($$v) {_vm.$set(group, \"amount\", _vm._n($$v))},expression:\"group.amount\"}}),_c('b-form-datalist',{attrs:{\"id\":\"input-list\",\"options\":_vm.percentageOptions}})],2)]}),_c('b-form-group',{attrs:{\"label-cols\":\"\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"element\":\"label\",\"translate-key\":\"TOTAL_ENERGY_DEDICATION\",\"for\":\"totalenergy\"},slot:\"label\"}),_c('prd-translate-text',{key:_vm.energySpent,attrs:{\"element\":\"span\",\"translate-key\":\"ENERGY_ALWAYS_100\",\"params\":{ energy: _vm.energySpent }}})],1),_c('template',{slot:\"footer-buttons\"},[_c('prd-translate-button',{attrs:{\"translate-key\":\"BACK_ONE_STEP\"},on:{\"click\":_vm.back}}),_c('prd-translate-button',{attrs:{\"action\":_vm.finalize,\"variant\":\"primary\",\"translate-key\":\"CREATE_ACCOUNT\"}})],1)],2):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport PageRender from '../../../models/PageRender';\r\nimport { groupHelper, teamService, teamHelper, personService, roleHelper, ecosystemHelper } from '@/main';\r\nimport moment from 'moment';\r\nimport Group from '@/models/Group';\r\nimport { VueEditor } from 'vue2-editor';\r\nimport to from 'await-to-js';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport Period from '@/models/Period';\r\n\r\n@Component({\r\n components: {\r\n VueEditor,\r\n },\r\n})\r\nexport default class TeamDirectoryAddMemberComponent extends PageRender {\r\n public stepIndex: number = 0;\r\n public energySpent: number = 0;\r\n public period: Period = null;\r\n public isNotPresentInOtherTeam: boolean = false;\r\n public selectedGroupIds: any[] = [];\r\n public disableStuff: boolean = false;\r\n public memberToAdd: any = {\r\n lastName: '',\r\n insertion: '',\r\n firstName: '',\r\n phoneNumber: '',\r\n emailAddress: '',\r\n personId: 0,\r\n groupMemberships: [],\r\n accessUntil: null,\r\n createAccount: false,\r\n };\r\n public validationMessages = [\r\n { step: 0, message: 'Fill in at least an email address or first and last name of the member you want to add.' },\r\n { step: 0, message: 'When access to team is set, e-mail address is required' },\r\n { step: 1, message: 'Select at least one group where the (new) team member will be member of' },\r\n { step: 2, message: 'The distributed energy needs to be an exact total of 100% and all groups
' },\r\n { step: 2, message: 'All groups need at least a valid energy percentage' },\r\n ];\r\n\r\n public percentageOptions = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100];\r\n // tslint:disable-next-line: variable-name\r\n private _groups: Group[] = [];\r\n\r\n public async mounted() {\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee()) {\r\n await this.$router.push({ name: 'not-found' });\r\n }\r\n\r\n this.period = this.periods.find((p: Period) => p.periodId === periodModule.selectedPeriodObject.periodId);\r\n this._groups = await groupHelper.getGroups();\r\n }\r\n\r\n public get periods() {\r\n return periodModule.periods.map((period) => {\r\n return {\r\n ...period,\r\n name: moment(period.startDate).format(`MMMM 'YY`),\r\n };\r\n });\r\n }\r\n\r\n public get groups() {\r\n let list = [];\r\n\r\n if (this._groups && this._groups.length > 0) {\r\n list = this._groups.map((group) => {\r\n return { text: group.name, value: group.groupId };\r\n });\r\n }\r\n\r\n return list;\r\n }\r\n\r\n public get selectedGroups() {\r\n const list = [];\r\n const amount = this.selectedGroupIds.length === 1 ? 100 : 0;\r\n\r\n this._groups.forEach((group) => {\r\n if (this.selectedGroupIds.indexOf(group.groupId) > -1) {\r\n list.push({\r\n groupId: group.groupId,\r\n name: group.name,\r\n groupKey: group.groupKey,\r\n amount,\r\n });\r\n }\r\n });\r\n\r\n return list;\r\n }\r\n\r\n public updateEnergy(value?: number, groupId?: number) {\r\n this.energySpent = 0;\r\n\r\n if (value && groupId) {\r\n const fGroup = this.selectedGroups.find((x) => x.groupId === groupId);\r\n fGroup.amount = value * 1;\r\n }\r\n\r\n for (const group of this.selectedGroups) {\r\n this.energySpent += !isNaN(group.amount) ? parseInt(group.amount.toString()) : group.amount;\r\n }\r\n\r\n return this.energySpent;\r\n }\r\n\r\n public async searchEmailaddress() {\r\n this.showPending('CHECK_IF_MEMBER_EXISTS');\r\n const period = periodModule.periods.find((x) => x.periodId === this.period.periodId);\r\n\r\n const person = await personService.getPersonByEmailaddress(\r\n this.memberToAdd.emailAddress,\r\n moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM'),\r\n false,\r\n );\r\n\r\n if (person && person.personId) {\r\n this.memberToAdd.personId = person.personId;\r\n this.memberToAdd.firstName = person.firstName;\r\n this.memberToAdd.lastName = person.lastName;\r\n this.memberToAdd.createAccount = true;\r\n\r\n this.disableStuff = true;\r\n\r\n return this.clearAndShowSuccess('Person found and added to the add-member flow');\r\n }\r\n\r\n this.disableStuff = false;\r\n this.memberToAdd.personId = 0;\r\n\r\n this.clearNotifications();\r\n }\r\n\r\n public async next() {\r\n if (this.valid()) {\r\n this.stepIndex++;\r\n } else {\r\n this.showValidationError();\r\n }\r\n }\r\n\r\n public back() {\r\n this.stepIndex--;\r\n }\r\n\r\n public async finalize() {\r\n if (this.valid()) {\r\n await this.addMember();\r\n } else {\r\n this.showValidationError();\r\n }\r\n }\r\n\r\n public async addMember() {\r\n const period = moment(this.period.startDate, 'YYYY-MM-DD').format('YYYY-MM');\r\n this.showPending('ADD_MEMBER_PENDING');\r\n this.memberToAdd.groupMemberships = this.selectedGroups.map((x) => {\r\n return { groupId: x.groupId, energyDedication: x.amount };\r\n });\r\n\r\n this.memberToAdd.accessFrom = this.period.periodId;\r\n const [inviteErr] = await to(teamService.addMember(this.memberToAdd, teamHelper.currentTeamId, period));\r\n if (inviteErr) {\r\n return this.clearAndShowError(`Failed to add ${this.memberToAdd.emailAddress} to the team`, inviteErr);\r\n }\r\n this.clearAndShowSuccess(`Member (${this.memberToAdd.emailAddress}) is added to the team.`);\r\n\r\n this.clearNotifications();\r\n await this.$router.push({\r\n name: 'team-directory',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n tab: 'members',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n private showValidationError() {\r\n return this.showValidationErrors(\r\n this.validationMessages\r\n .filter((x) => x.step === this.stepIndex)\r\n .map((x) => {\r\n return x.message;\r\n }),\r\n );\r\n }\r\n\r\n private valid() {\r\n this.clearNotifications();\r\n\r\n if (this.stepIndex === 0) {\r\n return (\r\n (this.memberToAdd.firstName !== '' && this.memberToAdd.lastName !== '' && !this.memberToAdd.createAccoun) ||\r\n (this.memberToAdd.emailAddress !== '' && this.memberToAdd.createAccount && !this.isNotPresentInOtherTeam) ||\r\n (this.memberToAdd.emailAddress !== '' &&\r\n this.memberToAdd.firstName !== '' &&\r\n this.memberToAdd.lastName !== '' &&\r\n this.isNotPresentInOtherTeam &&\r\n this.memberToAdd.createAccoun)\r\n );\r\n } else if (this.stepIndex === 1) {\r\n return this.selectedGroupIds.length > 0;\r\n } else if (this.stepIndex === 2) {\r\n return (\r\n (this.memberToAdd.firstName !== '' && this.memberToAdd.lastName !== '' && !this.memberToAdd.createAccount) ||\r\n (this.memberToAdd.emailAddress !== '' && this.memberToAdd.createAccount && !this.isNotPresentInOtherTeam) ||\r\n (this.memberToAdd.emailAddress !== '' &&\r\n this.memberToAdd.firstName !== '' &&\r\n this.memberToAdd.lastName !== '' &&\r\n this.isNotPresentInOtherTeam &&\r\n this.memberToAdd.createAccount) ||\r\n (this.energySpent === 100 && this.selectedGroups.filter((x) => x.amount === 0).length === 0) ||\r\n this.selectedGroupIds.length > 0\r\n );\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./add-member.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./add-member.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./add-member.vue?vue&type=template&id=3251dd1f&\"\nimport script from \"./add-member.ts?vue&type=script&lang=js&\"\nexport * from \"./add-member.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('spinner'):_c('div',[_c('prd-toolbar',[(_vm.$root.inEditMode)?_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"translate-key\":\"CREATE_GROUP\"}}):_vm._e(),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('router-link',{attrs:{\"to\":{\n name: 'team-directory-add-group',\n params: { ecosystem: _vm.$root.ecosystemHelper.ecosystemParam, period: _vm.$store.state.period._selectedPeriod },\n }}},[_c('prd-translate-button',{staticClass:\"ml-2\",attrs:{\"size\":\"sm\",\"type\":\"button\",\"variant\":\"primary\",\"translate-key\":\"CREATE_GROUP\"}})],1):_vm._e()],1),_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.groups,\"columns\":_vm.groupsColumns,\"row-height\":36}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { groupHelper, memberHelper, teamHelper, ecosystemHelper } from '@/main';\r\nimport PageRender from '@/models/PageRender';\r\nimport Group from '@/models/Group';\r\nimport { Person } from '@/models/Person';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class GroupsComponent extends PageRender {\r\n public groups: Group[] = null;\r\n public members: Person[] = [];\r\n public isLoading: boolean = true;\r\n\r\n public groupsColumns: any[] = [\r\n { cell: this.renderRouterLink, title: 'NAME', width: 300 },\r\n { field: 'purpose', title: 'GROUP_PURPOSE' },\r\n { cell: this.renderMembers, title: 'GROUP_MEMBERS', width: 125 },\r\n { cell: this.renderGroupLead, title: 'GROUP_LEAD', width: 300 },\r\n ];\r\n\r\n public async created() {\r\n const self = this;\r\n\r\n this.groups = await groupHelper.getGroups();\r\n this.members = await memberHelper.getMembers(true);\r\n\r\n self.isLoading = false;\r\n }\r\n\r\n public renderGroupLead(h, _, row): any {\r\n return this.renderMember(h, row.dataItem.groupLead);\r\n }\r\n\r\n public renderRouterLink(h, _, row) {\r\n const routeUrl = this.$router.resolve({\r\n name: 'team-directory-group',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n groupKey: row.dataItem.groupKey,\r\n groupId: row.dataItem.groupId,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'workspace',\r\n period: periodModule.selectedPeriod,\r\n },\r\n }).href;\r\n\r\n const props = {\r\n text: row.dataItem.name,\r\n url: routeUrl,\r\n entity: row.dataItem,\r\n };\r\n\r\n return h(Vue.component('grid-router-link'), { props });\r\n }\r\n\r\n public fullname(member: any): string {\r\n return `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n }\r\n\r\n public renderFullname(h, _, row) {\r\n const member = row.dataItem;\r\n const name = `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n return h('td', [name]);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./groups.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./groups.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./groups.vue?vue&type=template&id=8463af26&\"\nimport script from \"./groups.ts?vue&type=script&lang=js&\"\nexport * from \"./groups.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('spinner'):_c('div',[_c('prd-toolbar',[_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"action\":_vm.leaveTeam,\"translate-key\":\"LEAVE_TEAM\"}}),(_vm.$root.roleHelper.isSiteAdmin())?_c('router-link',{attrs:{\"to\":{\n name: 'team-directory-add-member',\n params: { ecosystem: _vm.$root.ecosystemHelper.ecosystemParam, period: _vm.$store.state.period._selectedPeriod },\n }}},[_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"translate-key\":\"ADD_MEMBER\"}})],1):_vm._e(),_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"translate-key\":\"EXPORT_MEMBERS\"},on:{\"click\":_vm.exportMembers}})],1),_c('prd-grid-wrapper',{key:_vm.cacheKeyMember,attrs:{\"data-items\":_vm.members,\"columns\":_vm.memberColumns,\"row-height\":41}}),_c('b-modal',{ref:\"inviteMember\",attrs:{\"id\":\"invite-member\",\"title\":\"Upgrade member\",\"size\":\"sm\"}},[_c('p',{directives:[{name:\"translate\",rawName:\"v-translate\",value:({ key: 'MODALS.UPGRADE_ACCOUNT_TO_FULL', params: { name: _vm.invitePersonModel.name } }),expression:\"{ key: 'MODALS.UPGRADE_ACCOUNT_TO_FULL', params: { name: invitePersonModel.name } }\"}],staticClass:\"font-italic my-2\"}),_c('b-form',{staticClass:\"mt-5\"},[_c('b-form-group',[_c('label',{attrs:{\"for\":\"emailaddress\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"EMAIL\"}})],1),_c('b-input',{directives:[{name:\"translate\",rawName:\"v-translate:placeholder\",value:('EMAIL'),expression:\"'EMAIL'\",arg:\"placeholder\"}],attrs:{\"id\":\"emailaddress\",\"type\":\"text\"},model:{value:(_vm.invitePersonModel.emailAddress),callback:function ($$v) {_vm.$set(_vm.invitePersonModel, \"emailAddress\", $$v)},expression:\"invitePersonModel.emailAddress\"}})],1)],1),_c('b-form-group',{attrs:{\"label-for\":\"period\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ACCESS_FROM\",\"element\":\"span\"}}),_c('span',{staticClass:\"k-icon k-i-info cursor-pointer ml-2\",attrs:{\"id\":\"period-info\"}}),_c('prd-tooltip',{attrs:{\"target\":\"period-info\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ACCESS_FROM_INFO\"}})],1)],1),_c('b-form-select',{attrs:{\"options\":_vm.periods,\"id\":\"period\"},model:{value:(_vm.accessFromPeriod),callback:function ($$v) {_vm.accessFromPeriod=$$v},expression:\"accessFromPeriod\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_PERIOD'),expression:\"'SELECT_PERIOD'\"}],domProps:{\"value\":null}})])],2)],2),_c('b-form-group',{attrs:{\"label-for\":\"period2\"}},[_c('template',{slot:\"label\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ACCESS_UNTIL\",\"element\":\"span\"}}),_c('span',{staticClass:\"k-icon k-i-info cursor-pointer ml-2\",attrs:{\"id\":\"period-info2\"}}),_c('prd-tooltip',{attrs:{\"target\":\"period-info2\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"ACCESS_UNTIL_INFO\"}})],1)],1),_c('b-form-select',{attrs:{\"options\":_vm.periods,\"id\":\"period2\"},model:{value:(_vm.accessUntilPeriod),callback:function ($$v) {_vm.accessUntilPeriod=$$v},expression:\"accessUntilPeriod\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_PERIOD'),expression:\"'SELECT_PERIOD'\"}],domProps:{\"value\":null}})])],2)],2),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('div',{staticClass:\"add-member-button text-center\"},[_c('prd-translate-button',{staticClass:\"d-inline-block px-2 text-primary\",attrs:{\"type\":\"submit\",\"translate-key\":\"SEND_INVITE\"},on:{\"click\":_vm.upgradeAccount}})],1)])],1),_c('move-pl-modal',{ref:\"transferPAndLModal\",on:{\"finished\":_vm.refreshMembersGrid}}),_c('energy-dedication-modal',{ref:\"energyDedicationEdit\",on:{\"energy-dedications-updated\":_vm.reloadEnergyDedications}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { BModal } from 'bootstrap-vue';\r\nimport { teamService, loginHelper, memberHelper, teamHelper, personService, roleHelper, financeService, groupService } from '@/main';\r\nimport to from 'await-to-js';\r\nimport PageRender from '@/models/PageRender';\r\nimport { Member } from '@/models/Member';\r\nimport { AxiosResponse } from 'axios';\r\nimport FinancialActivity from '@/models/FinancialActivity';\r\nimport { saveExcel } from '@progress/kendo-vue-excel-export';\r\nimport moment from 'moment';\r\nimport { Person } from '@/models/Person';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport EnergyDedicationModalComponent from '@/components/modals/energy-dedication-modal';\r\nimport { PrivacyLevel } from '@/models/PrivacyLevel';\r\nimport MovePLModalComponent from '@/components/modals/move-pl-modal';\r\n\r\n@Component\r\nexport default class MembersComponent extends PageRender {\r\n public members: Person[] = [];\r\n public admins: Member[] = [];\r\n public isLoading: boolean = true;\r\n public cacheKeyMember: number = 0;\r\n public invitePersonModel = { name: null, personId: null, emailAddress: null, teamId: null, accessFrom: null, accessUntil: null };\r\n public accessFromPeriod: number = null;\r\n public accessUntilPeriod: number = null;\r\n\r\n public memberColumns: any[] = [\r\n { cell: this.renderMemberWithIcon, title: 'NAME', field: 'firstName' },\r\n { cell: this.renderMemberships, title: 'MEMBERS_OF', field: 'firstName' },\r\n { title: 'EMAIL', field: 'emailAddress' },\r\n { title: 'PHONE', field: 'phoneNumber' },\r\n { title: 'ACTIONS', cell: this.renderActions, width: 150 },\r\n ];\r\n\r\n public exportMemberGridColumns: any[] = [\r\n { title: 'EMAIl', field: 'emailAddress' },\r\n { title: 'FIRST_NAME', field: 'firstName' },\r\n { title: 'LAST_NAME', field: 'lastName' },\r\n { title: 'PHONE', field: 'phoneNumber' },\r\n { title: 'GROUPS', field: 'groups' },\r\n ];\r\n\r\n public $refs!: {\r\n inviteMember: BModal;\r\n transferPAndLModal: MovePLModalComponent;\r\n energyDedicationEdit: EnergyDedicationModalComponent;\r\n };\r\n\r\n public newMemberForm: any = {\r\n firstName: '',\r\n insertion: '',\r\n lastName: '',\r\n };\r\n\r\n get periods() {\r\n return periodModule.periods.map((period) => {\r\n return {\r\n text: moment(period.startDate).format(`MMMM 'YY`),\r\n value: period.periodId,\r\n };\r\n });\r\n }\r\n\r\n public async created() {\r\n const self = this;\r\n\r\n this.members = await memberHelper.getMembers(true);\r\n this.accessFromPeriod = periodModule.selectedPeriodObject.periodId;\r\n\r\n if (roleHelper.checkAccess(PrivacyLevel.FinanceEmployee)) {\r\n this.memberColumns.splice(2, 0, { cell: this.renderEnergyDedication, title: 'ENERGY_DEDICATION' });\r\n }\r\n\r\n self.isLoading = false;\r\n }\r\n\r\n public renderMemberWithIcon(h, _, row) {\r\n return this.renderMember(h, row.dataItem);\r\n }\r\n\r\n public renderFullname(h, _, row) {\r\n const member = row.dataItem;\r\n const name = `${member.firstName} ${member.insertion ? member.insertion : ''} ${member.lastName}`;\r\n return h('td', [name]);\r\n }\r\n\r\n public renderActions(h, _, row: any): any {\r\n const actions = [];\r\n if (!row.dataItem.hasAccount && roleHelper.isSiteAdmin()) {\r\n actions.push({ title: 'Upgrade account', function: this.showUpgradeAccountModal });\r\n }\r\n\r\n if (row.dataItem.hasAccount && roleHelper.isSiteAdmin()) {\r\n actions.push({ title: 'Downgrade account', function: this.downgradeAccount });\r\n }\r\n\r\n if ((roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee()) && periodModule.periods[0] === periodModule.selectedPeriodObject) {\r\n actions.push({ title: 'Remove member from team', function: this.removeMemberFromTeam });\r\n } else if ((roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee()) && periodModule.periods[0] !== periodModule.selectedPeriodObject) {\r\n actions.push({\r\n title: 'Remove member from team (only available in most recent period)',\r\n disabled: true,\r\n function: () => {\r\n return;\r\n },\r\n });\r\n }\r\n\r\n if (actions && actions.length > 0) {\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n } else {\r\n return h('td');\r\n }\r\n }\r\n\r\n public async leaveTeam() {\r\n const result = await this.checkValidLeave(loginHelper.getUser().personId);\r\n if (!result) {\r\n return this.clearAndShowError('LEAVE_TEAM_FINANCE_ERROR', null);\r\n }\r\n this.showPending('LEAVE_TEAM_PENDING');\r\n const [err] = await to(teamService.unenroll(teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (err) {\r\n return this.clearAndShowError(`LEAVE_TEAM_FAILED`, err);\r\n }\r\n\r\n this.clearAndShowSuccess(`LEAVE_TEAM_SUCCESS`);\r\n return this.$router.push({ name: 'home', query: { reloadProfile: 'true' } });\r\n }\r\n\r\n public async removeMemberFromTeam(item: Person) {\r\n const result = await this.checkValidLeave(item.personId);\r\n if (!result) {\r\n await this.$refs.transferPAndLModal.init(item);\r\n return this.$refs.transferPAndLModal.show();\r\n }\r\n\r\n const groups = await groupService.getGroups(teamHelper.currentTeamId, periodModule.selectedPeriod);\r\n const foundGroup = groups.data.find((x) => x.groupLead && x.groupLead.memberId === item.personId);\r\n if (foundGroup) {\r\n return this.clearAndShowError(`The member you're trying to remove is still a group lead (${foundGroup.name})`, null);\r\n }\r\n\r\n this.showPending('REMOVING_MEMBER_PENDING');\r\n const [err] = await to(teamService.removeMemberFromTeam(item.personId, teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (err) {\r\n return this.clearAndShowError(`REMOVING_MEMBER_FAILED`, err);\r\n }\r\n\r\n this.clearAndShowSuccess(`REMOVING_MEMBER_SUCCESS`);\r\n await this.refreshMembersGrid();\r\n }\r\n\r\n public async checkValidLeave(personId: number) {\r\n const [err, response] = await to>(\r\n financeService.getPersonFinancialActityInTeam(teamHelper.getTeamId(), personId, periodModule.selectedPeriod),\r\n );\r\n\r\n if (err) {\r\n this.clearAndShowError('Failed to check financial activity for this member.', err);\r\n return false;\r\n }\r\n\r\n return !response.data.isCompensated;\r\n }\r\n\r\n public showUpgradeAccountModal(item: Person) {\r\n const modal = this.$refs.inviteMember;\r\n modal.show();\r\n\r\n this.invitePersonModel.emailAddress = item && item.emailAddress && item.emailAddress.indexOf('@') > -1 ? item.emailAddress : '';\r\n this.invitePersonModel.personId = item.personId;\r\n this.invitePersonModel.name = new Member(item).getFullName();\r\n this.invitePersonModel.teamId = teamHelper.getTeamId();\r\n }\r\n\r\n public async upgradeAccount() {\r\n this.showPending('INVITE_PENDING');\r\n this.invitePersonModel.accessFrom = this.accessFromPeriod;\r\n this.invitePersonModel.accessUntil = this.accessUntilPeriod;\r\n\r\n const [err] = await to(personService.invitePerson(this.invitePersonModel, periodModule.selectedPeriod));\r\n if (err) {\r\n return this.clearAndShowError(`INVITE_FAILED`, err);\r\n }\r\n\r\n this.clearAndShowSuccess('INVITE_SUCCESS');\r\n\r\n const modal = this.$refs.inviteMember;\r\n modal.hide();\r\n }\r\n\r\n public async downgradeAccount(item: Person) {\r\n this.showPending('DOWNGRADE_PENDING');\r\n const [err] = await to(personService.downgrageAccount(item.personId));\r\n if (err) {\r\n return this.clearAndShowError(`DOWNGRADE_FAILED`, err);\r\n }\r\n\r\n this.clearAndShowSuccess('DOWNGRADE_SUCCESS');\r\n }\r\n\r\n public async refreshMembersGrid() {\r\n this.members = await memberHelper.getMembers(true);\r\n this.cacheKeyMember++;\r\n }\r\n\r\n public getPeriodString() {\r\n return moment(periodModule.selectedPeriodObject.startDate, 'YYYY-MM-DD').format(`MMMM 'YY`);\r\n }\r\n\r\n public async exportMembers() {\r\n const members = [];\r\n this.members.forEach((member) => {\r\n const memberObj = new Member(member);\r\n members.push({\r\n emailAddress: memberObj.emailAddress,\r\n firstName: memberObj.firstName,\r\n lastName: (memberObj.insertion ? memberObj.insertion + ' ' : '') + memberObj.lastName,\r\n phoneNumber: memberObj.phoneNumber ? memberObj.phoneNumber : '',\r\n groups: memberObj.groupMemberships.map((mem) => mem.name).join(','),\r\n });\r\n });\r\n\r\n saveExcel({\r\n data: members,\r\n fileName: `Team-${teamHelper.currentTeamId}-members-${moment().format('YYYY-MM-DD HH:mm:')}`,\r\n columns: this.exportMemberGridColumns,\r\n });\r\n }\r\n\r\n public reloadEnergyDedications() {\r\n // implement;\r\n }\r\n\r\n public renderEnergyDedication(h, _, row) {\r\n if (row.dataItem.groupMemberships.length > 0) {\r\n const props = {\r\n value: row.dataItem.energyDedication,\r\n text: 'Edit energy',\r\n showPercentage: true,\r\n action: async () => {\r\n await this.openEditEnergyEdicationModal(row.dataItem);\r\n },\r\n };\r\n return h(Vue.component('grid-percentage'), { props });\r\n }\r\n\r\n return h('td');\r\n }\r\n\r\n public async openEditEnergyEdicationModal(item: Person) {\r\n const self = this;\r\n const modal = self.$refs.energyDedicationEdit;\r\n const memberObj = new Member(item);\r\n await modal.setMember(memberObj);\r\n modal.show();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./members.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./members.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./members.vue?vue&type=template&id=6ec75ac6&\"\nimport script from \"./members.ts?vue&type=script&lang=js&\"\nexport * from \"./members.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isLoading)?_c('spinner'):_c('div',[_c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-tabs',{attrs:{\"vertical\":\"\",\"no-nav-style\":\"\",\"nav-wrapper-class\":\"border-right\",\"nav-class\":\"nav-tabs-vertical\",\"content-class\":\"\"}},[_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"TEAM_PROFILE\"},slot:\"title\"}),_c('div',{staticClass:\"p-3\"},[_c('h4',{staticClass:\"mb-5\"},[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"TEAM_PROFILE\"},slot:\"title\"})],1),(_vm.isUpdatingTeam)?_c('spinner',{attrs:{\"color\":\"white\",\"center\":true}}):_c('div',[_c('b-form-group',[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_NAME\"}}),_c('b-input',{model:{value:(_vm.team.name),callback:function ($$v) {_vm.$set(_vm.team, \"name\", $$v)},expression:\"team.name\"}})],1),_c('b-form-group',{staticClass:\"mt-3\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_LEADER\"}}),_c('b-input-group',[_c('b-form-input',{attrs:{\"disabled\":\"\",\"value\":_vm.getTeamLeadName()}}),_c('b-input-group-append',[_c('b-button',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.openTransferLeaderShipModal}},[_vm._v(\"Transfer leadership\")])],1)],1)],1)],1),_c('b-form-group',[_c('prd-translate-button',{attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"action\":_vm.updateTeam,\"translate-key\":\"SAVE_TEAM_PROFILE\"}})],1)],1)],1),(_vm.$root.roleHelper.isSiteAdmin())?_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ROLE_MANAGEMENT\"},slot:\"title\"}),_c('roles-settings')],1):_vm._e()],1)],1),_c('b-modal',{ref:\"transferLeaderShipModal\"},[_c('prd-translate-text',{attrs:{\"slot\":\"modal-header\",\"element\":\"h2\",\"translate-key\":\"TRANSFER_TEAM_LEAD_TITLE\"},slot:\"modal-header\"},[_vm._v(\"Transfer Team leadership\")]),_c('prd-multiselect',{attrs:{\"placeholder\":\"Select the new team lead\",\"track-by\":\"personId\",\"custom-label\":function (p) {\n return [p.firstName, p.insertion, p.lastName].join(' ');\n },\"hideSelected\":true,\"showLabels\":false,\"allowEmpty\":false,\"options\":_vm.teamMembers},model:{value:(_vm.selectedTeamLead),callback:function ($$v) {_vm.selectedTeamLead=$$v},expression:\"selectedTeamLead\"}}),_c('prd-translate-button',{attrs:{\"slot\":\"modal-footer\",\"variant\":\"primary\",\"translate-key\":\"TRANSFER_TEAM_LEAD\"},on:{\"click\":_vm.transferLeaderShip},slot:\"modal-footer\"},[_vm._v(\"Transfer\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport PageRender from '@/models/PageRender';\r\nimport Team from '@/models/Team';\r\nimport to from 'await-to-js';\r\nimport { memberHelper, teamService } from '@/main';\r\nimport { teamsModule } from '@/store/modules/teams';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { Person } from '@/models/Person';\r\nimport { BModal } from 'bootstrap-vue';\r\n\r\n@Component\r\nexport default class SettingsComponent extends PageRender {\r\n public failedSavingSettings: boolean = false;\r\n public failedInvites: string[] = [];\r\n public isLoading: boolean = true;\r\n public team: Team = new Team();\r\n public teamMembers: Person[] = [];\r\n public isUpdatingTeam: boolean = false;\r\n public selectedTeamLead: Person = null;\r\n\r\n public $refs!: {\r\n transferLeaderShipModal: BModal;\r\n };\r\n\r\n public async created() {\r\n const self = this;\r\n this.team = await this.getTeam();\r\n this.teamMembers = await memberHelper.getMembers();\r\n self.isLoading = false;\r\n }\r\n\r\n public getTeamLeadName() {\r\n if (!this.team.teamLead) {\r\n return 'N/A';\r\n }\r\n\r\n return [this.team.teamLead.firstName, this.team.teamLead.insertion, this.team.teamLead.lastName].filter((x) => x && x.length > 0).join(' ');\r\n }\r\n\r\n public async transferLeaderShip() {\r\n this.showPending('TRANSFER_TEAM_LEAD_PENDING');\r\n const [err] = await to(teamService.transferTeamLeaderShip(this.selectedTeamLead));\r\n if (err) {\r\n this.clearAndShowError('TRANSFER_TEAM_LEAD_FAILED', null);\r\n return;\r\n }\r\n\r\n this.showSuccess('TRANSFER_TEAM_LEAD_SUCCESS');\r\n this.$refs.transferLeaderShipModal.hide();\r\n }\r\n\r\n public openTransferLeaderShipModal() {\r\n this.$refs.transferLeaderShipModal.show();\r\n }\r\n\r\n public async updateTeam() {\r\n this.isUpdatingTeam = true;\r\n const [err] = await to(teamService.updateTeam(this.team));\r\n if (err) {\r\n this.clearAndShowError('UPDATE_TEAM_PROFILE_FAILED', null);\r\n } else {\r\n this.clearAndShowSuccess('UPDATE_TEAM_PROFILE_SUCCESS');\r\n }\r\n await teamsModule.fetchTeams();\r\n await profileModule.loadBrightProfileIfNeeded(true);\r\n this.isUpdatingTeam = false;\r\n }\r\n\r\n private async getTeam() {\r\n const teamId = parseInt(this.$route.params.teamId);\r\n const period = this.$route.params.period;\r\n const [err, response] = await to(teamService.getTeam(teamId, period));\r\n return err ? new Team() : response.data;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./settings.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./settings.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./settings.vue?vue&type=template&id=56290b99&\"\nimport script from \"./settings.ts?vue&type=script&lang=js&\"\nexport * from \"./settings.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{attrs:{\"if\":\"groups && members\"}},[_c('div',{},[_c('ul',{staticClass:\"nav nav-tabs\",attrs:{\"role\":\"tablist\"}},[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link groups\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_GROUPS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_GROUPS'),expression:\"'TEAM_GROUPS'\"}],staticClass:\"nav-link groups\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('groups')}}})]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link members\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_MEMBERS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_MEMBERS'),expression:\"'TEAM_MEMBERS'\"}],staticClass:\"nav-link members\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('members')}}})]),(_vm.$root.roleHelper.isSiteAdmin())?_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link settings\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_SETTINGS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_SETTINGS'),expression:\"'TEAM_SETTINGS'\"}],staticClass:\"nav-link settings\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('settings')}}})]):_vm._e()])]),_c('div',{staticClass:\"tab-content\"},[_c(_vm.currentTabComponent,{tag:\"component\"})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport PageRender from '../../../models/PageRender';\r\nimport { $router } from '@/main';\r\nimport jQuery from 'jquery';\r\n\r\n@Component\r\nexport default class TeamFinanceComponent extends PageRender {\r\n public tab: string = null;\r\n public tabs: string[] = ['groups', 'members', 'settings'];\r\n public currentTabComponent: string = '';\r\n\r\n public async created() {\r\n await this.checkPeriodParam();\r\n }\r\n\r\n public async mounted() {\r\n this.changeTab(this.$route.params.tab);\r\n }\r\n\r\n public changeTab(tab: string): void {\r\n if (this.tabs.indexOf(tab) === -1) {\r\n tab = this.tabs[0];\r\n }\r\n\r\n if (tab !== this.$route.params.tab) {\r\n const params = this.$route.params;\r\n params.tab = tab;\r\n // tslint:disable-next-line: no-floating-promises\r\n $router.push({ name: 'team-directory', params });\r\n } else {\r\n this.doActiveClass(tab);\r\n this.currentTabComponent = 'team-directory-' + tab;\r\n }\r\n }\r\n\r\n public doActiveClass(tab: string) {\r\n this.$nextTick(() => {\r\n jQuery('.' + tab).addClass('active');\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./directory.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./directory.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./directory.vue?vue&type=template&id=25ea7ff0&\"\nimport script from \"./directory.ts?vue&type=script&lang=js&\"\nexport * from \"./directory.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('div',{staticClass:\"card-deck mb-3\"},[_c('b-card',{staticClass:\"col-6\"},[_c('b-card-title',[_vm._v(\" Distributed expenses amount: \"),_c('span',{staticClass:\"float-right font-weight-bold\",domProps:{\"innerHTML\":_vm._s(_vm.getDistributedInvoiceAmount())}})])],1),_c('b-card',{staticClass:\"col-6\"},[_c('b-card-title',[_vm._v(\"Open expenses amount: \"),_c('span',{staticClass:\"float-right font-weight-bold\",domProps:{\"innerHTML\":_vm._s(_vm.getOpenInvoiceAmount())}})])],1)],1),_c('prd-toolbar',{staticClass:\"justify-content-between\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('span',{staticClass:\"text\"},[_vm._v(\"Search\")]),_c('b-form-input',{directives:[{name:\"translate-placeholder\",rawName:\"v-translate-placeholder\",value:('PLACEHOLDER_ANYTHING_YOU_LIKE'),expression:\"'PLACEHOLDER_ANYTHING_YOU_LIKE'\"}],attrs:{\"id\":\"free-seach\"},model:{value:(_vm.textSearch),callback:function ($$v) {_vm.textSearch=$$v},expression:\"textSearch\"}})],1),_c('div',[_c('b-form-checkbox',{staticClass:\"mr-2 text-nowrap d-inline-block\",model:{value:(_vm.onlyNotYetDistributed),callback:function ($$v) {_vm.onlyNotYetDistributed=$$v},expression:\"onlyNotYetDistributed\"}},[_vm._v(\" Show not yet distributed \")]),_c('b-form-checkbox',{staticClass:\"mr-2 text-nowrap d-inline-block\",model:{value:(_vm.onlyRecurring),callback:function ($$v) {_vm.onlyRecurring=$$v},expression:\"onlyRecurring\"}},[_vm._v(\" Show non-recurring \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length == 0),expression:\"getSelectedInvoices().length == 0\"}],staticClass:\"mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() || (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.openModalImportInvoices}},[_vm._v(\" Import expenses (.csv) \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length > 0),expression:\"getSelectedInvoices().length > 0\"}],staticClass:\"btn btn-sm btn-primary mr-2\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() || (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.deleteRow}},[_vm._v(\" Delete expense(s) \")]),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length > 0),expression:\"getSelectedInvoices().length > 0\"}],staticClass:\"mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed()},on:{\"click\":_vm.setSelectedExpensesAsNotRecurring}},[_vm._v(\" Toggle as not recurring \")]),(_vm.getSelectedInvoices().length > 0)?_c('b-button',{staticClass:\"mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\"},on:{\"click\":_vm.openChangeLegalEntityRefModal}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEGAL_ENTITY_SWITCH_MODAL_BUTTON\",\"translate-group\":\"MODALS\"}})],1):_vm._e(),(_vm.getSelectedInvoices().length > 0)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed()},on:{\"click\":_vm.openModalMultiDistribution}},[_vm._v(\" Move expenses to an account \")]):_vm._e(),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length == 1),expression:\"getSelectedInvoices().length == 1\"}],staticClass:\"btn btn-sm btn-primary mr-2\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() || (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.openAmortizeModal}},[_vm._v(\" Amortize expense \")]),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.reloadGrid(_vm.type)}}},[_c('i',{staticClass:\"icon-rotate-cw\"})])],1)]),(_vm.isReloadingGrid)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{staticClass:\"mt-5 d-inline-block\"})],1):_c('grid',{key:_vm.reloadInvoicesGrid,style:(_vm.calculateInvoicesGridHeight(_vm.getData())),attrs:{\"data-items\":_vm.getData(),\"columns\":_vm.invoiceColumns,\"edit-field\":'inEdit',\"rowRender\":_vm.rowRender,\"row-height\":40,\"pageable\":{\n buttonCount: 5,\n info: true,\n type: 'numeric',\n pageSizes: [5, 10, 25, 50],\n previousNext: true,\n },\"skip\":_vm.skip,\"take\":_vm.take,\"total\":_vm.getTotal(),\"resizable\":true,\"selected-field\":_vm.selectedField,\"disabled\":_vm.disableGrid},on:{\"rowclick\":_vm.rowClick,\"pagechange\":_vm.pageChangeHandler,\"selectionchange\":_vm.onSelectionChange,\"headerselectionchange\":_vm.onHeaderSelectionChange,\"saved\":_vm.saveRow,\"changed\":_vm.updateDistribution}},[_c('grid-norecords',[_c('div',[_vm._v(\" No expenses, change your month or edit your filters to (re)load the expenses \")])])],1),_c('import-modal',{ref:\"importInvoice\",attrs:{\"type\":_vm.type,\"groups\":_vm.groups,\"persons\":_vm.members,\"team\":_vm.team},on:{\"invoices-imported\":function($event){return _vm.reloadGrid(_vm.type)}}}),_c('b-modal',{ref:\"deleteConfirm\",attrs:{\"id\":\"deleteConfirm\",\"title\":\"Confirm deletion\",\"size\":\"sm\"}},[_vm._v(\" Are you sure you want to delete these rows? \"),_c('br'),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"d-inline-block mr-2\",attrs:{\"variant\":\"danger\"},on:{\"click\":_vm.cancelDelete}},[_vm._v(\"No\")]),_c('b-button',{staticClass:\"d-inline-block\",attrs:{\"variant\":\"success\"},on:{\"click\":_vm.confirmDelete}},[_vm._v(\"Yes\")])],1)]),(_vm.getSelectedInvoices().length > 0)?_c('move-to-account-modal',{ref:\"multiIncomeDistributionModal\",attrs:{\"is-expense\":\"true\",\"options-list\":_vm.optionListReceivers(),\"selected-invoices\":_vm.getSelectedInvoices()},on:{\"invoice-moved\":function($event){return _vm.reloadGrid(_vm.type)}}}):_vm._e(),_c('legal-entity-change-modal',{ref:\"legalEntityRef\",attrs:{\"invoices\":_vm.getSelectedInvoices()},on:{\"invoices-updated\":function($event){return _vm.reloadGrid(_vm.type)}}}),(_vm.selectedInvoice)?_c('amortize-modal',{ref:\"amortizeModal\",attrs:{\"invoice\":_vm.selectedInvoice,\"is-expense\":true,\"optionsList\":_vm.optionListReceivers()},on:{\"amortization-set\":_vm.removeAndSaveCurrentDistributions}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport DistributedInvoice from '@/models/DistributedInvoice';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport { financeService, periodFilterHelper } from '@/main';\r\nimport to from 'await-to-js';\r\nimport BaseFinanceTeamInvoicePage from './BaseFinanceTeamInvoicePage';\r\n\r\n@Component\r\nexport default class TeamFinanceExpenses extends BaseFinanceTeamInvoicePage {\r\n public type: InvoiceType = InvoiceType.Expenses;\r\n\r\n @Watch('onlyNotYetDistributed')\r\n public onFailureFilterChange() {\r\n this.filterInvoices();\r\n }\r\n\r\n @Watch('onlyRecurring')\r\n public onRecurringChange() {\r\n this.filterInvoices();\r\n }\r\n\r\n @Watch('textSearch')\r\n public onTextFilterChange(val, oldVal) {\r\n if ((val && val.length > 2) || (oldVal && oldVal.length > val.length)) {\r\n this.filterInvoices();\r\n }\r\n }\r\n\r\n public async created() {\r\n this.invoiceColumns.push({\r\n title: 'IS_RECURRING',\r\n width: 125,\r\n field: 'invoice.isRecurring',\r\n locked: true,\r\n filterable: true,\r\n cell: this.renderRecurring,\r\n filter: 'boolean',\r\n headerCell: this.translate,\r\n });\r\n\r\n await this.init(this.type);\r\n\r\n this.isLoaded = true;\r\n }\r\n\r\n public optionListReceivers(): any[] {\r\n const list = this.groups.map((sender) => {\r\n if (sender) {\r\n return { value: sender.accountId, text: sender.name };\r\n }\r\n });\r\n\r\n list.push({ value: null, text: '-------------------------------------' });\r\n\r\n this.members.forEach((member) => {\r\n list.push({ value: member.accountId, text: member.name });\r\n });\r\n\r\n return list;\r\n }\r\n\r\n public rowClick(e) {\r\n if (periodFilterHelper.isCurrentPeriodClosed()) {\r\n return;\r\n }\r\n\r\n const invoice = this.invoices.find((item) => item.invoice.invoiceId === this.editID);\r\n this.invoices.forEach((expense) => (expense[this.selectedField] = false));\r\n if (invoice) {\r\n Vue.set(invoice, 'inEdit', false);\r\n }\r\n\r\n this.editID = e.dataItem.invoice.invoiceId;\r\n Vue.set(e.dataItem, 'inEdit', true);\r\n }\r\n\r\n public onHeaderSelectionChange(event) {\r\n const checked = event.event.target.checked;\r\n Vue.set(this, 'invoices', this.invoices.map((item) => ({ ...item, selected: checked })));\r\n }\r\n\r\n public onSelectionChange(event) {\r\n Vue.set(event.dataItem, 'inEdit', false);\r\n Vue.set(event.dataItem, this.selectedField, !event.dataItem[this.selectedField]);\r\n }\r\n\r\n public pageChangeHandler(event) {\r\n this.skip = event.page.skip;\r\n this.take = event.page.take;\r\n }\r\n\r\n public async setSelectedExpensesAsNotRecurring() {\r\n const self = this;\r\n const expenses = this.getSelectedInvoices();\r\n const list = [];\r\n\r\n expenses.forEach((expense: DistributedInvoice) => {\r\n if (expense) {\r\n list.push({ InvoiceId: expense.invoice.invoiceId, IsRecurring: expense.invoice.isRecurring = !expense.invoice.isRecurring });\r\n }\r\n });\r\n\r\n this.showPending('UPDATE_RECURRENCES_EXPENSES_PENDING');\r\n const [err] = await to(financeService.setInvoicesNotRercurring(list));\r\n if (err) {\r\n return self.clearAndShowError('UPDATE_RECURRENCES_EXPENSES_FAILED', null);\r\n }\r\n self.clearAndShowSuccess('UPDATE_RECURRENCES_EXPENSES_SUCCESS');\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-expenses.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-expenses.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-finance-expenses.vue?vue&type=template&id=9796461e&\"\nimport script from \"./team-finance-expenses.ts?vue&type=script&lang=js&\"\nexport * from \"./team-finance-expenses.ts?vue&type=script&lang=js&\"\nimport style0 from \"./team-finance-expenses.vue?vue&type=style&index=0&id=9796461e&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.groupOverviewData,\"columns\":_vm.groupResultColumns,\"row-height\":34}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { resultService, teamHelper } from '@/main';\r\nimport FinanceTeam from '../../../../models/FinanceTeam';\r\nimport BaseFinancePage from './BaseFinancePage';\r\nimport Vue from 'vue';\r\nimport { orderBy } from '@progress/kendo-data-query';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class TeamFinanceGroupOverview extends BaseFinancePage {\r\n public groupOverviewData: any[] = [];\r\n public teamFinance: FinanceTeam;\r\n public isLoaded: boolean = false;\r\n public groupResultColumns: any[] = [\r\n { field: 'group.name', title: 'GROUP_NAME', cell: this.renderGroupFinanceLink },\r\n { cell: this.formatResultValue, title: 'RESULT' },\r\n { cell: this.formatBalanceValue, title: 'BALANCE' },\r\n { cell: this.formatOpenInvoicesValue, title: 'OPEN_INVOICES' },\r\n { cell: this.formatOpenExpensesValue, title: 'OPEN_EXPENSES' },\r\n ];\r\n\r\n public async mounted() {\r\n const period = periodModule.selectedPeriod;\r\n const results = await resultService.getGroupResults(teamHelper.getTeamId(), period, period);\r\n this.groupOverviewData = orderBy(results.items[0].item.groupResults, [{ field: 'group.name', dir: 'asc' }]);\r\n this.isLoaded = true;\r\n }\r\n\r\n public formatOpenInvoicesValue(h, _, row) {\r\n const props = { value: row.dataItem.openInvoiceAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public formatOpenExpensesValue(h, _, row) {\r\n const props = { value: row.dataItem.openExpenseAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-group-overview.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-group-overview.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-finance-group-overview.vue?vue&type=template&id=616f6d72&\"\nimport script from \"./team-finance-group-overview.ts?vue&type=script&lang=js&\"\nexport * from \"./team-finance-group-overview.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('prd-loader',{attrs:{\"absolute\":\"\"}}):_c('div',[_c('div',{staticClass:\"card-deck mb-3\"},[_c('b-card',{staticClass:\"col-6\"},[_c('b-card-title',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"DISTRIBUTED_INVOICES_AMOUNT\"}}),_c('span',{staticClass:\"float-right font-weight-bold\",domProps:{\"innerHTML\":_vm._s(_vm.getDistributedInvoiceAmount())}})],1)],1),_c('b-card',{staticClass:\"col-6\"},[_c('b-card-title',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"OPEN_INVOICES_AMOUNT\"}}),_c('span',{staticClass:\"float-right font-weight-bold\",domProps:{\"innerHTML\":_vm._s(_vm.getOpenInvoiceAmount())}})],1)],1)],1),_c('prd-toolbar',{staticClass:\"justify-content-between\"},[_c('div',{staticClass:\"d-flex align-items-center\"},[_c('prd-translate-text',{staticClass:\"mr-2 px-1\",attrs:{\"translate-key\":\"SEARCH\",\"inline\":true}}),_c('b-input',{directives:[{name:\"translate\",rawName:\"v-translate:placeholder\",value:('PLACEHOLDER_ANYTHING_YOU_LIKE'),expression:\"'PLACEHOLDER_ANYTHING_YOU_LIKE'\",arg:\"placeholder\"}],attrs:{\"id\":\"free-seach\"},model:{value:(_vm.textSearch),callback:function ($$v) {_vm.textSearch=$$v},expression:\"textSearch\"}})],1),_c('div',[_c('b-form-checkbox',{staticClass:\"mt-2 mr-2 mb-0 text-nowrap d-inline-block\",model:{value:(_vm.onlyNotYetDistributed),callback:function ($$v) {_vm.onlyNotYetDistributed=$$v},expression:\"onlyNotYetDistributed\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SHOW_NOT_YET_DISTRIBUTED\"}})],1),_c('prd-translate-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length == 0),expression:\"getSelectedInvoices().length == 0\"}],staticClass:\"mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"translate-key\":\"IMPORT_INVOICES_CSV\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() || (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.openModalImportInvoices}}),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length > 0),expression:\"getSelectedInvoices().length > 0\"}],staticClass:\"btn btn-sm btn-primary mr-2\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() || (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.deleteRow}},[_vm._v(\" Delete selected invoices \")]),(_vm.getSelectedInvoices().length > 0)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\"},on:{\"click\":_vm.openChangeLegalEntityRefModal}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"LEGAL_ENTITY_SWITCH_MODAL_BUTTON\",\"translate-group\":\"MODALS\"}})],1):_vm._e(),(_vm.getSelectedInvoices().length > 0)?_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed()},on:{\"click\":_vm.openModalMultiDistribution}},[_vm._v(\" Move selected income to an account \")]):_vm._e(),_c('b-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getSelectedInvoices().length == 1),expression:\"getSelectedInvoices().length == 1\"}],staticClass:\"btn btn-sm btn-primary mr-2\",attrs:{\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() || (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.openAmortizeModal}},[_vm._v(\" Amortize invoice \")]),_c('b-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\"},on:{\"click\":function($event){return _vm.reloadGrid(_vm.type)}}},[_c('i',{staticClass:\"icon-rotate-cw\"})])],1)]),(_vm.isReloadingGrid)?_c('prd-loader'):_c('grid',{key:_vm.reloadInvoicesGrid,style:(_vm.calculateInvoicesGridHeight(_vm.getData())),attrs:{\"data-items\":_vm.getData(),\"columns\":_vm.invoiceColumns,\"edit-field\":'inEdit',\"rowRender\":_vm.renderNonEqualLEgalEntities,\"pageable\":true,\"row-height\":40,\"skip\":_vm.skip,\"pageSize\":_vm.take,\"total\":_vm.getTotal(),\"resizable\":true,\"selected-field\":_vm.selectedField,\"disabled\":_vm.disableGrid},on:{\"rowclick\":_vm.rowClick,\"pagechange\":_vm.pageChangeHandler,\"selectionchange\":_vm.onSelectionChange,\"headerselectionchange\":_vm.onHeaderSelectionChange,\"saved\":_vm.saveRow,\"changed\":_vm.updateDistribution}},[_c('grid-norecords',[_c('div',[_vm._v(\" No invoices, change your month or edit your filters to (re)load the invoices \")])])],1),_c('import-modal',{ref:\"importInvoice\",attrs:{\"type\":_vm.type,\"groups\":_vm.groups},on:{\"invoices-imported\":function($event){return _vm.reloadGrid(_vm.type)}}}),(_vm.getSelectedInvoices().length > 0)?_c('move-to-account-modal',{ref:\"multiIncomeDistributionModal\",attrs:{\"options-list\":_vm.optionListReceivers(),\"selected-invoices\":_vm.getSelectedInvoices()},on:{\"invoice-moved\":function($event){return _vm.reloadGrid(_vm.type)}}}):_vm._e(),_c('b-modal',{ref:\"deleteConfirm\",attrs:{\"id\":\"deleteConfirm\",\"title\":\"Confirm deletion\",\"size\":\"sm\"}},[_vm._v(\" Are you sure you want to delete these invoice(s)? \"),_c('br'),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{staticClass:\"d-inline-block mr-2\",attrs:{\"variant\":\"danger\"},on:{\"click\":_vm.cancelDelete}},[_vm._v(\"No\")]),_c('b-button',{staticClass:\"d-inline-block\",attrs:{\"variant\":\"success\"},on:{\"click\":_vm.confirmDelete}},[_vm._v(\"Yes\")])],1)]),_c('legal-entity-change-modal',{ref:\"legalEntityRef\",attrs:{\"invoices\":_vm.getSelectedInvoices()},on:{\"invoices-updated\":function($event){return _vm.reloadGrid(_vm.type)}}}),(_vm.selectedInvoice)?_c('amortize-modal',{ref:\"amortizeModal\",attrs:{\"invoice\":_vm.selectedInvoice,\"optionsList\":_vm.optionListReceivers()},on:{\"amortization-set\":_vm.removeAndSaveCurrentDistributions}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport { InvoiceType } from '../../../../models/InvoiceType';\r\nimport { periodFilterHelper, roleHelper } from '@/main';\r\nimport BaseFinanceTeamInvoicePage from './BaseFinanceTeamInvoicePage';\r\nimport DistributedInvoice from '@/models/DistributedInvoice';\r\nimport { teamsModule } from '@/store/modules/teams';\r\n\r\n@Component\r\nexport default class TeamFinanceInvoices extends BaseFinanceTeamInvoicePage {\r\n public type: InvoiceType = InvoiceType.Income;\r\n\r\n @Watch('onlyNotYetDistributed')\r\n public onFailureFilterChange() {\r\n this.filterInvoices();\r\n }\r\n\r\n @Watch('textSearch')\r\n public onTextFilterChange(val, oldVal) {\r\n if ((val && val.length > 2) || (oldVal && oldVal.length > val.length)) {\r\n this.filterInvoices();\r\n }\r\n }\r\n\r\n public async created() {\r\n this.importedInvoiceColumns.push({ field: 'group', title: 'GROUP' });\r\n\r\n await this.init(this.type);\r\n\r\n this.isLoaded = true;\r\n }\r\n\r\n public rowClick(e) {\r\n if (periodFilterHelper.isCurrentPeriodClosed()) {\r\n return;\r\n }\r\n\r\n const invoice = this.invoices.find((i) => i.invoice.invoiceId === this.editID);\r\n this.invoices.forEach((expense) => (expense[this.selectedField] = false));\r\n\r\n if (invoice) {\r\n Vue.set(invoice, 'inEdit', false);\r\n }\r\n\r\n this.editID = e.dataItem.invoice.invoiceId;\r\n Vue.set(e.dataItem, 'inEdit', true);\r\n }\r\n\r\n public onHeaderSelectionChange(event) {\r\n const checked = event.event.target.checked;\r\n Vue.set(this, 'invoices', this.invoices.map((item) => ({ ...item, selected: checked })));\r\n }\r\n\r\n public onSelectionChange(event) {\r\n Vue.set(event.dataItem, 'inEdit', false);\r\n Vue.set(event.dataItem, this.selectedField, !event.dataItem[this.selectedField]);\r\n }\r\n\r\n public pageChangeHandler(event) {\r\n this.skip = event.page.skip;\r\n this.take = event.page.take;\r\n }\r\n public renderNonEqualLEgalEntities(_h, tr, _row, item) {\r\n const invoice = new DistributedInvoice(item.dataItem);\r\n\r\n if (invoice.invoice && teamsModule.current && (roleHelper.isFinanceEmployee() || roleHelper.isSiteAdmin())) {\r\n // tslint:disable-next-line: no-string-literal\r\n tr.data['class'] += ` ${\r\n invoice.invoice && invoice.invoice.legalEntityReferenceOrigin !== teamsModule.current.legalEntityReference\r\n ? 'legal-entity-difference'\r\n : ''\r\n }`;\r\n }\r\n return tr;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-invoices.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-invoices.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-finance-invoices.vue?vue&type=template&id=051efa0c&\"\nimport script from \"./team-finance-invoices.ts?vue&type=script&lang=js&\"\nexport * from \"./team-finance-invoices.ts?vue&type=script&lang=js&\"\nimport style0 from \"./team-finance-invoices.vue?vue&type=style&index=0&id=051efa0c&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.memberOverviewData,\"columns\":_vm.memberResultColumns,\"row-height\":34}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { resultService, teamHelper } from '@/main';\r\nimport FinanceTeam from '../../../../models/FinanceTeam';\r\nimport BaseFinancePage from './BaseFinancePage';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class TeamFinanceMemberOverview extends BaseFinancePage {\r\n public memberOverviewData: object[] = [];\r\n public teamFinance: FinanceTeam;\r\n public isLoaded: boolean = false;\r\n public memberResultColumns: any[] = [\r\n { cell: this.renderMemberWithIcon, title: 'NAME', field: 'firstName' },\r\n { cell: this.formatResultValue, title: 'RESULT' },\r\n { cell: this.formatExpensesValue, title: 'EXPENSES' },\r\n { cell: this.formatExtrasValue, title: 'EXTRAS' },\r\n { cell: this.formatBalanceValue, title: 'BALANCE' },\r\n ];\r\n\r\n public async mounted() {\r\n const period = periodModule.selectedPeriod;\r\n\r\n const results = await resultService.getMemberResults(teamHelper.getTeamId(), period, period);\r\n this.memberOverviewData = results.items[0].item.memberResults;\r\n\r\n this.isLoaded = true;\r\n }\r\n\r\n public renderMemberWithIcon(h, _, row) {\r\n return this.renderMember(h, row.dataItem.member);\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-member-overview.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-member-overview.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-finance-member-overview.vue?vue&type=template&id=408d7618&\"\nimport script from \"./team-finance-member-overview.ts?vue&type=script&lang=js&\"\nexport * from \"./team-finance-member-overview.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-tabs',{attrs:{\"vertical\":\"\",\"no-nav-style\":\"\",\"nav-wrapper-class\":\"border-right\",\"nav-class\":\"nav-tabs-vertical\",\"content-class\":\"\"}},[_c('b-tab',{attrs:{\"title\":\"Period\"}},[(_vm.isLoading)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner',{attrs:{\"color\":\"white\"}})],1):_c('div',{staticClass:\"py-4 px-3\"},[_c('h6',[_vm._v(\"Period\")]),_c('p',{staticClass:\"text-muted\"},[_vm._v(\"After closing a period no changes can be made anymore in that period\")]),_c('form',{staticClass:\"d-block mw-600\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.period),expression:\"period\"}],staticClass:\"form-control\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.period=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"null\"}}),_vm._l((_vm.periods),function(period){return _c('option',{key:period.id,domProps:{\"value\":period}},[_vm._v(\" \"+_vm._s(_vm.getFancyDate(period))+\" \")])})],2)]),_c('div',{staticClass:\"col-md-6\"},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('CLOSE_PERIOD'),expression:\"'CLOSE_PERIOD'\"}],attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"disabled\":!_vm.period || _vm.alreadyClosed},on:{\"click\":_vm.showClosePeriodConfirmModal}}),(!_vm.FirstTimeClosing)?_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('CLOSE_PERIOD_SOFT'),expression:\"'CLOSE_PERIOD_SOFT'\"}],staticClass:\"ml-2\",attrs:{\"variant\":\"warning\",\"size\":\"sm\"},on:{\"click\":_vm.showSoftClosePeriodConfirmModal}}):_vm._e()],1)])]),_c('hr'),(_vm.$root.roleHelper.isSiteAdmin() && _vm.closedPeriods.length > 0)?_c('div',{staticClass:\"mt-5\"},[_c('h6',[_vm._v(\"Breach Period\")]),(!_vm.showGif)?[_c('p',{staticClass:\"text-muted\"},[_vm._v(\" Made a fuck up? Or our software did a honky dory thing? Breach open the selected period and do your thing. \")]),_c('form',{staticClass:\"d-block mw-600\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.breachedPeriod),expression:\"breachedPeriod\"}],staticClass:\"form-control\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.breachedPeriod=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"null\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SELECT_PERIOD\"}})],1),_vm._l((_vm.closedPeriods),function(period){return _c('option',{key:period.id,domProps:{\"value\":period}},[_vm._v(\" \"+_vm._s(_vm.getFancyDate(period))+\" \")])})],2)]),_c('div',{staticClass:\"col-md-6\"},[_c('div',{staticClass:\"input-group\"},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('OPEN_PERIOD'),expression:\"'OPEN_PERIOD'\"}],attrs:{\"variant\":\"primary\",\"size\":\"sm\",\"disabled\":!_vm.breachedPeriod},on:{\"click\":_vm.openPeriod}})],1)])])])]:[_c('h1',[_vm._v(\"HIIJAAAAA!\")]),_c('img',{staticStyle:{\"max-width\":\"833px\",\"background-color\":\"rgb(131, 118, 88)\"},attrs:{\"src\":\"https://media1.tenor.com/images/85a980a49ac121a76a811d33c95605af/tenor.gif?itemid=5092837\",\"width\":\"833\",\"height\":\"499.8\",\"alt\":\"Warrior Soldier GIF - Warrior Soldier Fail GIFs\"}})]],2):_vm._e()])])],1)],1),_c('b-modal',{ref:\"closePeriodConfirm\",attrs:{\"title\":\"You really want to close this period?\"}},[_c('h4',[_vm._v(\"Please carefully read.\")]),_c('h4',[_vm._v(\"The following consequenses are applied when closing a period:\")]),_c('b-list-group',{staticClass:\"mt-5\"},[_c('b-list-group-item',[_c('span',{staticClass:\"icon-alert-triangle mr-2 text-warning text-xl-center\"}),_vm._v(\" No more changes can be made in this period!\")]),_c('b-list-group-item',[_c('span',{staticClass:\"icon-alert-triangle mr-2 text-warning\"}),_vm._v(\" All (fully) undistributed income will be merged to a new period (this isn't reversable).\")]),_c('b-list-group-item',[_c('span',{staticClass:\"icon-alert-triangle mr-2 text-warning\"}),_vm._v(\" Invoices and expenses cannot be edited anymore in this period.\")]),_c('b-list-group-item',[_c('span',{staticClass:\"icon-alert-triangle mr-2 text-warning\"}),_vm._v(\" Transfers cannot be edited anymore in this period.\")])],1),_c('h4',{staticClass:\"text-info mt-5 mb-5\"},[_c('span',{staticClass:\"icon-info1\"}),_vm._v(\" After closing the system need some time to transfer invoices from the closed period to the new period. This can take up to several minutes. Please be patient. \")]),(_vm.checkCanClose)?_c('spinner',{attrs:{\"color\":\"white\",\"center\":true}}):_vm._e(),(_vm.canCloseResponse == null)?[_c('b-alert',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ALERT_MESSAGES.FAILED_CHECK_PERIOD_CLOSE'),expression:\"'ALERT_MESSAGES.FAILED_CHECK_PERIOD_CLOSE'\"}],attrs:{\"show\":\"\",\"variant\":\"warning\"}})]:(!_vm.canCloseResponse.canClose)?[_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"warning\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CANNOT_CLOSE_PERIOD\",\"translate-group\":\"ALERT_MESSAGES\"}})],1),(_vm.canCloseResponse.openTeams && _vm.canCloseResponse.openTeams.length > 0)?[_c('br'),_c('prd-translate-text',{attrs:{\"element\":\"h4\",\"translate-key\":\"CANNOT_CLOSE_OPEN_TEAMS\",\"translate-group\":\"ALERT_MESSAGES\"}}),_c('br'),_c('ul',{staticClass:\"list-unstyled\"},_vm._l((_vm.canCloseResponse.openTeams),function(team){return _c('li',[_vm._v(\" \"+_vm._s(team.name)+\" \")])}),0)]:_vm._e(),(_vm.canCloseResponse.openTransferRequests && _vm.canCloseResponse.openTransferRequests.length > 0)?[_c('br'),_c('prd-translate-text',{attrs:{\"element\":\"h4\",\"translate-key\":\"CANNOT_CLOSE_OPEN_TRANSFER\",\"translate-group\":\"ALERT_MESSAGES\"}}),_c('br'),_c('ul',{staticClass:\"list-unstyled\"},_vm._l((_vm.canCloseResponse.openTransferRequests),function(request){return _c('li',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"OPEN_TRANSFER_REQUEST\"}}),_c('i',[_c('b',[_vm._v(_vm._s(request.receiverGroupName))]),_vm._v(\" in team \"+_vm._s(request.receiverTeamName)+\" (\"),_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"RECEIVER\",\"translate-group\":\"GRID\"}}),_vm._v(\")\")],1)],1)}),0)]:_vm._e()]:_vm._e(),_c('div',{attrs:{\"slot\":\"modal-footer\"},slot:\"modal-footer\"},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.YOU_SCARED_ME'),expression:\"'MODALS.YOU_SCARED_ME'\"}],staticClass:\"mr-2\",attrs:{\"variant\":\"danger\"},on:{\"click\":function($event){return _vm.$refs.closePeriodConfirm.hide()}}}),_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.DO_IT'),expression:\"'MODALS.DO_IT'\"}],attrs:{\"variant\":\"success\",\"disabled\":!_vm.canCloseResponse || !_vm.canCloseResponse.canClose},on:{\"click\":function($event){return _vm.closePeriod()}}})],1)],2),_c('b-modal',{ref:\"softClosePeriodConfirm\",attrs:{\"title\":\"You want to soft close this period?\"}},[_c('h4',{staticClass:\"mb-2\"},[_vm._v(\"No processes will be triggered when soft closing the period.\")]),(_vm.checkCanClose)?_c('spinner',{attrs:{\"center\":true}}):_vm._e(),(_vm.canCloseResponse == null)?[_c('b-alert',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('ALERT_MESSAGES.FAILED_CHECK_PERIOD_CLOSE'),expression:\"'ALERT_MESSAGES.FAILED_CHECK_PERIOD_CLOSE'\"}],attrs:{\"show\":\"\",\"variant\":\"warning\"}})]:(!_vm.canCloseResponse.canClose)?[_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"warning\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"CANNOT_CLOSE_PERIOD\",\"translate-group\":\"ALERT_MESSAGES\"}})],1),(_vm.canCloseResponse.openTeams && _vm.canCloseResponse.openTeams.length > 0)?[_c('br'),_c('prd-translate-text',{attrs:{\"element\":\"h4\",\"translate-key\":\"CANNOT_CLOSE_OPEN_TEAMS\",\"translate-group\":\"ALERT_MESSAGES\"}}),_c('br'),_c('ul',{staticClass:\"list-unstyled\"},_vm._l((_vm.canCloseResponse.openTeams),function(team){return _c('li',[_vm._v(\" \"+_vm._s(team.name)+\" \")])}),0)]:_vm._e(),(_vm.canCloseResponse.openTransferRequests && _vm.canCloseResponse.openTransferRequests.length > 0)?[_c('br'),_c('prd-translate-text',{attrs:{\"element\":\"h4\",\"translate-key\":\"CANNOT_CLOSE_OPEN_TRANSFER\",\"translate-group\":\"ALERT_MESSAGES\"}}),_c('br'),_c('ul',{staticClass:\"list-unstyled\"},_vm._l((_vm.canCloseResponse.openTransferRequests),function(request){return _c('li',[_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"OPEN_TRANSFER_REQUEST\"}}),_c('i',[_c('b',[_vm._v(_vm._s(request.receiverGroupName))]),_vm._v(\" in team \"+_vm._s(request.receiverTeamName)+\" (\"),_c('prd-translate-text',{attrs:{\"element\":\"span\",\"translate-key\":\"RECEIVER\",\"translate-group\":\"GRID\"}}),_vm._v(\")\")],1)],1)}),0)]:_vm._e()]:_vm._e(),_c('template',{slot:\"modal-footer\"},[_c('b-button',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('MODALS.YOU_SCARED_ME'),expression:\"'MODALS.YOU_SCARED_ME'\"}],attrs:{\"size\":\"sm\"},on:{\"click\":function($event){return _vm.$refs.softClosePeriodConfirm.hide()}}}),_c('prd-translate-button',{attrs:{\"action\":function () { return _vm.closePeriod(true); },\"disabled\":!_vm.canCloseResponse || !_vm.canCloseResponse.canClose,\"variant\":\"danger\",\"translate-key\":\"MODALS.DO_IT\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import BaseFinancePage from './BaseFinancePage';\r\nimport { Component } from 'vue-property-decorator';\r\nimport Period from '../../../../models/Period';\r\nimport { BModal } from 'bootstrap-vue';\r\nimport { periodService, teamHelper } from '@/main';\r\nimport moment from 'moment';\r\nimport to from 'await-to-js';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport ICanClosePeriodResponse from '@/interfaces/ICanClosePeriodResponse';\r\n\r\n@Component\r\nexport default class TeamFinancePeriod extends BaseFinancePage {\r\n public isLoading: boolean = true;\r\n public periods: Period[] = null;\r\n public closedPeriods: Period[] = null;\r\n public period: Period = null;\r\n public breachedPeriod: Period = null;\r\n public showGif: boolean = false;\r\n public canCloseResponse: ICanClosePeriodResponse = null;\r\n public checkCanClose: boolean = false;\r\n\r\n public $refs!: {\r\n closePeriodConfirm: BModal;\r\n softClosePeriodConfirm: BModal;\r\n };\r\n\r\n public async created() {\r\n await this.loadPeriods();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public get alreadyClosed() {\r\n return this.period && this.period.status === 'Opened';\r\n }\r\n\r\n public get FirstTimeClosing() {\r\n return this.period && this.period.status === 'Open';\r\n }\r\n\r\n public async showClosePeriodConfirmModal() {\r\n this.$refs.closePeriodConfirm.show();\r\n this.canCloseResponse = null;\r\n await this.checkIfPeriodCanBeClosed();\r\n }\r\n\r\n public async showSoftClosePeriodConfirmModal() {\r\n this.$refs.softClosePeriodConfirm.show();\r\n this.canCloseResponse = null;\r\n await this.checkIfPeriodCanBeClosed();\r\n }\r\n\r\n public async openPeriod() {\r\n const team = teamHelper.getTeamId();\r\n this.showPending('Softly picking the lock of this period..');\r\n\r\n const [err] = await to(periodService.openPeriod(this.breachedPeriod.periodId, team));\r\n if (err) {\r\n this.clearAndShowError('Failed to breach period', err);\r\n }\r\n\r\n this.clearNotifications();\r\n this.showGif = true;\r\n await this.loadPeriods();\r\n }\r\n\r\n public async loadPeriods() {\r\n const allPeriods = await periodService.getPeriods(teamHelper.getTeamId());\r\n const periods = allPeriods.filter((period) => {\r\n return !period.closed;\r\n });\r\n\r\n if (periods.length > 0) {\r\n this.periods = [periods.pop()];\r\n }\r\n\r\n this.closedPeriods = allPeriods.filter((period) => {\r\n return period.closed;\r\n });\r\n\r\n this.period = null;\r\n this.breachedPeriod = null;\r\n this.isLoading = false;\r\n\r\n await periodModule.reloadPeriods();\r\n }\r\n\r\n public async closePeriod(soft: boolean = false) {\r\n const team = teamHelper.getTeamId();\r\n\r\n this.showPending('CLOSE_PERIOD_PENDING');\r\n const [err, response] = await to(periodService.closePeriod(this.period.periodId, team, soft));\r\n if (err) {\r\n this.clearAndShowError('CLOSE_PERIOD_FAILED', err);\r\n }\r\n\r\n if (response.status === 202 && !soft) {\r\n this.clearAndShowSuccess('CLOSE_PERIOD_SUCCESS');\r\n } else if (response.status === 202 && soft) {\r\n this.clearAndShowSuccess('Closed period');\r\n }\r\n\r\n this.$refs.closePeriodConfirm.hide();\r\n await this.loadPeriods();\r\n }\r\n\r\n public getFancyDate(period: Period) {\r\n return `${moment(period.startDate, 'YYYY-MM-DD').format(`MMMM 'YY`)} ${period.status === 'Openend' ? 'breached' : ''} `;\r\n }\r\n\r\n public getDateString(period: Period) {\r\n return moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM');\r\n }\r\n\r\n private async checkIfPeriodCanBeClosed() {\r\n this.checkCanClose = true;\r\n const teamId = parseInt(this.$route.params.teamId);\r\n const period = moment(this.period.startDate, 'YYYY-MM-DD').format('YYYY-MM');\r\n const [err, response] = await to(periodService.canClose(teamId, period));\r\n this.checkCanClose = false;\r\n this.canCloseResponse = err ? null : response.data;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-period.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-period.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-finance-period.vue?vue&type=template&id=2e42268a&\"\nimport script from \"./team-finance-period.ts?vue&type=script&lang=js&\"\nexport * from \"./team-finance-period.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-card',{attrs:{\"no-body\":\"\"}},[_c('b-tabs',{attrs:{\"vertical\":\"\",\"no-nav-style\":\"\",\"nav-wrapper-class\":\"border-right\",\"nav-class\":\"nav-tabs-vertical\",\"content-class\":\"\"}},[_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"FINANCE_TEMPLATES\"},slot:\"title\"}),_c('div',{staticClass:\"py-4 px-3\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"FINANCE_TEMPLATES\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"FINANCE_TEMPLATES_TEXT\"}})],1),(_vm.isLoading)?_c('spinner',{attrs:{\"color\":\"white\"}}):_c('form',{staticClass:\"d-block pb-4 px-3\"},[_c('b-card-group',{attrs:{\"deck\":\"\"}},[_c('b-card',{staticClass:\"cursor-pointer text-center mb-3 col mr-4\",staticStyle:{\"min-width\":\"18rem\",\"max-width\":\"18rem\"},on:{\"click\":function($event){return _vm.createContactSideAction()}}},[_c('prd-translate-text',{attrs:{\"slot\":\"header\",\"translate-key\":\"FINANCE_TEMPLATES_HEADER\"},slot:\"header\"}),_c('b-card-text',[_c('prd-translate-text',{attrs:{\"translate-key\":\"ADD_FINANCE_TEMPLATES\"}})],1)],1),_vm._l((_vm.templates),function(template,templateIndex){return _c('b-card',{key:template.financeGroupTemplateId,staticClass:\"col mb-3 mr-4 cursor-pointer text-center\",staticStyle:{\"min-width\":\"18rem\",\"max-width\":\"18rem\"},attrs:{\"header\":template.name},on:{\"click\":function($event){return _vm.createContactSideAction(template)}}},[_c('b-card-text',[_vm._v(_vm._s(template.description))])],1)})],2)],1)],1),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"TEAM_ATTRIBUTIONS\"},slot:\"title\"}),_c('div',{staticClass:\"py-4 px-3\"},[_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"TEAM_ATTRIBUTIONS\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"TEAM_ATTRIBUTIONS_TEXT\"}}),(_vm.isLoading)?_c('spinner'):_c('form',{staticClass:\"d-block mw-600\"},[_vm._l((_vm.servicesAttributions),function(attribution){return _c('div',{key:attribution.id,staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-4\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(attribution.targetTeamModel),expression:\"attribution.targetTeamModel\"}],staticClass:\"form-control\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(attribution, \"targetTeamModel\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){return _vm.teamChange(attribution)}]}},[_c('option',{attrs:{\"value\":\"\"}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_TEAM\"}})],1),_vm._l((_vm.teams),function(team){return _c('option',{key:team.name,domProps:{\"value\":team}},[_vm._v(\" \"+_vm._s(team.name)+\" \")])})],2)]),_c('div',{staticClass:\"col-md-4\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(attribution.targetGroupModel),expression:\"attribution.targetGroupModel\"}],staticClass:\"form-control\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(attribution, \"targetGroupModel\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"\"}},[_c('prd-translate-text',{attrs:{\"translate-group\":\"DROPDOWN\",\"translate-key\":\"SELET_A_GROUP\"}})],1),_vm._l((attribution.targetTeamModel.groups),function(group){return _c('option',{key:group.name,domProps:{\"value\":group}},[_vm._v(\" \"+_vm._s(group.name)+\" \")])})],2)]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"input-group\"},[_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text bg-transparent\"},[_vm._v(\"%\")])]),_c('prd-numeric-input',{staticClass:\"form-control text-right border-left-0\",attrs:{\"output-dec-seperator\":\",\"},model:{value:(attribution.percentage),callback:function ($$v) {_vm.$set(attribution, \"percentage\", $$v)},expression:\"attribution.percentage\"}})],1)]),_c('div',{staticClass:\"col-md-1\"},[(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.deleteGroupAttribution(attribution)}}},[_c('i',{staticClass:\"icon-trash-2\"})]):_vm._e()])])])}),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"secondary\",\"translate-key\":\"ADD_ATTRIBUTION\"},on:{\"click\":function($event){return _vm.addGroupAttribution()}}}):_vm._e()],2),_c('div',{staticClass:\"mt-5\"},[(_vm.failedSavingSettings)?_c('b-alert',{attrs:{\"show\":\"\",\"variant\":\"warning\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"OH_SNAP\"}})],1):_vm._e()],1),_c('div',{staticClass:\"btn-group mt-3\"},[_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() ||\n (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee()),\"translate-key\":\"SAVE_SETTINGS\"},on:{\"click\":function($event){return _vm.openSaveAttributionsModal()}}})],1)],1)],1),_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"PRIVACY_SETTINGS\"},slot:\"title\"}),_c('div',{staticClass:\"py-4 px-3\"},[_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"PRIVACY_SETTINGS\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"PRIVACY_SETTINGS_TEXT\"}}),(_vm.isLoading)?_c('spinner'):_c('form',{staticClass:\"d-block mw-600 mt-5\"},[_c('b-form-group',{attrs:{\"label-cols-sm\":\"8\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"ACCESS_MEMBER_OVERVIEW\",\"element\":\"label\",\"for\":\"memberOverviewAccess\"},slot:\"label\"}),_c('b-form-select',{attrs:{\"id\":\"memberOverviewAccess\",\"options\":_vm.roleOptions},model:{value:(_vm.teamSettings.memberResultsPrivacyLevel),callback:function ($$v) {_vm.$set(_vm.teamSettings, \"memberResultsPrivacyLevel\", $$v)},expression:\"teamSettings.memberResultsPrivacyLevel\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_ROLE'),expression:\"'SELECT_ROLE'\"}],domProps:{\"value\":'Unknown'}})])],2),_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"ACCESSABLE_FROM_AND_UP\"},slot:\"description\"})],1),_c('b-form-group',{attrs:{\"label-cols-sm\":\"8\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"ACCESS_ALL_EXPENSE\",\"element\":\"label\",\"for\":\"allExpensesAccess\"},slot:\"label\"}),_c('b-form-select',{attrs:{\"id\":\"allExpensesAccess\",\"options\":_vm.roleOptions},model:{value:(_vm.teamSettings.allExpensesPrivacyLevel),callback:function ($$v) {_vm.$set(_vm.teamSettings, \"allExpensesPrivacyLevel\", $$v)},expression:\"teamSettings.allExpensesPrivacyLevel\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_ROLE'),expression:\"'SELECT_ROLE'\"}],domProps:{\"value\":'Unknown'}})])],2),_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"ACCESSABLE_FROM_AND_UP\"},slot:\"description\"})],1),_c('b-form-group',{attrs:{\"label-cols-sm\":\"8\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"PERSONAL_GROUP_FINANCE\",\"element\":\"label\",\"for\":\"defaultGroupPrivacyLevel\"},slot:\"label\"}),_c('b-form-select',{attrs:{\"id\":\"defaultGroupPrivacyLevel\",\"options\":_vm.roleOptions},model:{value:(_vm.teamSettings.defaultGroupPrivacyLevel),callback:function ($$v) {_vm.$set(_vm.teamSettings, \"defaultGroupPrivacyLevel\", $$v)},expression:\"teamSettings.defaultGroupPrivacyLevel\"}},[_c('template',{slot:\"first\"},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('SELECT_ROLE'),expression:\"'SELECT_ROLE'\"}],domProps:{\"value\":'Unknown'}})])],2),_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"ACCESSABLE_FROM_AND_UP\"},slot:\"description\"})],1)],1),_c('div',{staticClass:\"btn-group mt-3\"},[_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"action\":_vm.savePrivacySettings,\"disabled\":!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee(),\"translate-key\":\"SAVE_SETTINGS\"}})],1)],1)],1),(_vm.team)?_c('b-tab',[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"LEGAL_ENTITY_REFERENCE\"},slot:\"title\"}),_c('div',{staticClass:\"py-4 px-3\"},[_c('prd-translate-text',{attrs:{\"element\":\"h6\",\"translate-key\":\"LEGAL_ENTITY_REFERENCE\"}}),_c('prd-translate-text',{staticClass:\"text-muted\",attrs:{\"element\":\"p\",\"translate-key\":\"LEGAL_ENTITY_REFERENCE_TEXT\"}}),(_vm.isLoading)?_c('spinner'):_c('form',{staticClass:\"d-block mw-600 mt-5\"},[_c('b-form-group',{attrs:{\"label-cols-sm\":\"4\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"label\",\"translate-key\":\"LEGAL_ENTITY_REFERENCE\",\"element\":\"label\",\"for\":\"reference\"},slot:\"label\"}),_c('b-form-input',{attrs:{\"id\":\"reference\"},model:{value:(_vm.team.legalEntityReference),callback:function ($$v) {_vm.$set(_vm.team, \"legalEntityReference\", $$v)},expression:\"team.legalEntityReference\"}}),_c('prd-translate-text',{attrs:{\"slot\":\"description\",\"translate-key\":\"EXACT_LEGAL_REFERENCE\"},slot:\"description\"})],1)],1),_c('div',{staticClass:\"btn-group mt-3\"},[_c('prd-translate-button',{attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"action\":_vm.saveLegalEntityReference,\"disabled\":!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee(),\"translate-key\":\"SAVE_LEGAL_ENTITY\"}})],1)],1)],1):_vm._e()],1)],1),_c('save-attributions-modal',{ref:\"saveAttributionsModal\",attrs:{\"servicesAttributions\":_vm.servicesAttributions}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { attributionService, teamHelper, teamService, financeGroupService, settingService, templateService } from '@/main';\r\nimport Attribution from '../../../../models/Attribution';\r\nimport { AttributionType } from '../../../../models/AttributionType';\r\nimport BaseFinancePage from './BaseFinancePage';\r\nimport to from 'await-to-js';\r\nimport Team from '@/models/Team';\r\nimport SaveAttributionsModalComponent from '@/components/modals/save-attributions-modal';\r\nimport TeamSettings from '@/models/TeamSettings';\r\nimport { settingsModule } from '@/store/modules/settings';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class TeamFinanceSettingsPage extends BaseFinancePage {\r\n public teams: Team[] = [];\r\n public team: Team = null;\r\n public isLoading: boolean = true;\r\n public servicesAttributions: Attribution[] = [];\r\n public failedSavingSettings: boolean = false;\r\n public roleOptions: any[] = [\r\n { text: 'SITE_ADMIN', value: 'SiteAdmin' },\r\n { text: 'FINANCE_EMPLOYEE', value: 'FinanceEmployee' },\r\n { text: 'GROUP_LEAD', value: 'GroupLead' },\r\n { text: 'MEMBER', value: 'Member' },\r\n ];\r\n\r\n public teamSettings: TeamSettings = null;\r\n\r\n public templates: any[] = [];\r\n\r\n public $refs!: {\r\n saveAttributionsModal: SaveAttributionsModalComponent;\r\n };\r\n\r\n public async created() {\r\n const self = this;\r\n self.teams = await teamService.getTeams();\r\n\r\n this.team = self.teams.find((x) => x.teamId === teamHelper.currentTeam.id);\r\n\r\n const currentTeamId = teamHelper.currentTeam.id;\r\n const [err, response] = await to(\r\n attributionService.getAttributions(AttributionType.TeamAttribution, currentTeamId, periodModule.selectedPeriod),\r\n );\r\n if (err) {\r\n this.showError('Failed to load attributoins');\r\n }\r\n\r\n await settingsModule.fetchTeamSettingsIfNeeded(currentTeamId);\r\n this.teamSettings = settingsModule.findTeamFinanceSettings(currentTeamId);\r\n\r\n for (let i = 0; i < response.data.length; i++) {\r\n const item = response.data[i];\r\n const attr = new Attribution(0);\r\n Object.assign(attr, item);\r\n\r\n attr.targetTeamModel = self.teams.find((team) => {\r\n if (item.targetTeam) {\r\n return team.teamId === item.targetTeam;\r\n }\r\n return team.teamId === teamHelper.getTeamId();\r\n });\r\n\r\n if (attr.targetTeamModel) {\r\n attr.targetTeamModel.groups = await financeGroupService.getGroups(attr.targetTeamModel.teamId);\r\n\r\n attr.targetGroupModel = attr.targetTeamModel.groups.find((group) => {\r\n return group.groupId === attr.targetGroup;\r\n });\r\n }\r\n\r\n if (attr.targetTeamModel || attr.targetGroupModel) {\r\n self.servicesAttributions.push(attr);\r\n }\r\n }\r\n\r\n // self.servicesAttributions = attrs.filter((x) => x.targetTeamModel || x.targetGroupModel);\r\n\r\n await this.loadTemplates();\r\n this.isLoading = false;\r\n }\r\n\r\n public createContactSideAction(template) {\r\n this.$sideActions.push(\r\n 'create-or-edit-template-side-action',\r\n {\r\n // options\r\n template: template ? template : null,\r\n },\r\n async () => {\r\n await this.loadTemplates();\r\n },\r\n );\r\n }\r\n\r\n public async loadTemplates() {\r\n this.templates = await templateService.getTemplates(teamHelper.currentTeam.id);\r\n }\r\n\r\n public async teamChange(attribution: Attribution) {\r\n attribution.targetGroup = null;\r\n attribution.groups = await financeGroupService.getGroups(attribution.targetTeamModel.teamId);\r\n }\r\n\r\n public async addGroupAttribution() {\r\n const attribution = new Attribution(0);\r\n\r\n attribution.targetTeamModel = this.teams.find((team) => {\r\n return team.teamId === teamHelper.getTeamId();\r\n });\r\n\r\n attribution.groups = await financeGroupService.getGroups(attribution.targetTeamModel.teamId);\r\n\r\n this.servicesAttributions.push(attribution);\r\n }\r\n\r\n public deleteGroupAttribution(item: Attribution) {\r\n this.servicesAttributions.splice(this.servicesAttributions.indexOf(item), 1);\r\n }\r\n\r\n public async getTeamGroups(team: Team) {\r\n return await financeGroupService.getGroups(team.teamId, periodModule.selectedPeriod);\r\n }\r\n\r\n public async savePrivacySettings() {\r\n const currentTeamId = teamHelper.getTeamId(teamHelper.currentTeamId);\r\n\r\n this.showPending('SAVE_FINANCE_SETTINGS_PENDING');\r\n const [err] = await to(settingService.saveTeamSettings(currentTeamId, this.teamSettings));\r\n\r\n if (err) {\r\n return this.clearAndShowError('SAVE_FINANCE_SETTINGS_FAILED', err);\r\n }\r\n\r\n this.clearAndShowSuccess('SAVE_FINANCE_SETTINGS_SUCCESS');\r\n }\r\n\r\n public async openSaveAttributionsModal() {\r\n let invalid = false;\r\n\r\n this.servicesAttributions.forEach((attr) => {\r\n if (\r\n typeof attr.targetGroupModel === 'undefined' ||\r\n attr.targetGroupModel === null ||\r\n !attr.targetGroupModel ||\r\n typeof attr.targetTeamModel === 'undefined' ||\r\n !attr.targetTeamModel ||\r\n attr.targetTeamModel === null ||\r\n !attr.percentage ||\r\n attr.percentage < 0 ||\r\n attr.percentage > 100\r\n ) {\r\n invalid = true;\r\n }\r\n });\r\n\r\n if (invalid) {\r\n return this.clearAndShowWarning('Current state of attributions not valid, please fill in all fields');\r\n }\r\n\r\n return this.$refs.saveAttributionsModal.show();\r\n }\r\n\r\n public async saveLegalEntityReference() {\r\n this.showPending('SAVE_TEAM_PENDING');\r\n\r\n const [err] = await to(\r\n teamService.updateTeam({ teamId: this.team.teamId, legalEntityReference: this.team.legalEntityReference, name: this.team.name }),\r\n );\r\n if (err) {\r\n return this.clearAndShowError('SAVE_TEAM_FAILED', err);\r\n }\r\n\r\n this.clearAndShowSuccess('SAVE_TEAM_SUCCESS');\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-settings.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-settings.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-finance-settings.vue?vue&type=template&id=2a2b8d98&\"\nimport script from \"./team-finance-settings.ts?vue&type=script&lang=js&\"\nexport * from \"./team-finance-settings.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('spinner')],1):_c('div',[_c('prd-toolbar',[_c('b-button',{staticClass:\"mr-2\",attrs:{\"size\":\"sm\",\"variant\":\"primary\",\"disabled\":_vm.$root.periodFilterHelper.isCurrentPeriodClosed() || (!_vm.$root.roleHelper.isSiteAdmin() && !_vm.$root.roleHelper.isFinanceEmployee())},on:{\"click\":_vm.openTransferModal}},[_vm._v(\" Move P&L \")])],1),_c('prd-grid-wrapper',{key:_vm.transferGridUpdate,attrs:{\"data-items\":_vm.externalTransfers,\"columns\":_vm.externalTransfersColumns,\"row-height\":34}}),_c('recurring-transfers-grid',{staticClass:\"mt-5\",attrs:{\"teamId\":_vm.$route.params.teamId}}),_c('transfer-modal',{ref:\"transferPAndLModal\",attrs:{\"title\":_vm.transferTitle,\"button-text\":'Finalize transfer',\"transfer\":_vm.transfer,\"type\":_vm.type},on:{\"transfer-completed\":_vm.reloadData}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { teamHelper, loginHelper, periodFilterHelper, roleHelper, teamService, transferService } from '@/main';\r\nimport BaseFinancePage from './BaseFinancePage';\r\nimport Transfer from '../../../../models/Transfer';\r\nimport TransferModalComponent from '@/components/modals/transfer-modal';\r\nimport { TransferType } from '@/models/TransferType';\r\nimport Team from '@/models/Team';\r\nimport { Person } from '@/models/Person';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class TeamFinanceTransfers extends BaseFinancePage {\r\n public isLoaded: boolean = false;\r\n\r\n public componentKey: number = 0;\r\n public editMode: boolean = false;\r\n public editIsLoading: boolean = false;\r\n public amount: number = 0;\r\n public teams: Team[] = [];\r\n public members: Person[] = [];\r\n public team: string = '';\r\n public teamId: number;\r\n public receivingTeams: Team[] = [];\r\n public externalTransfers: Transfer[];\r\n public transferGridUpdate: number = 0;\r\n\r\n public transfer: Transfer = new Transfer();\r\n public type: TransferType = TransferType.PersonToPerson;\r\n\r\n public $refs!: {\r\n transferPAndLModal: TransferModalComponent;\r\n };\r\n\r\n public isTransferValid: any = {\r\n amount: true,\r\n sender: true,\r\n receiver: true,\r\n reason: true,\r\n internalAmount: true,\r\n team: true,\r\n };\r\n\r\n public externalTransfersColumns: any[] = [\r\n { cell: this.renderTransferAmount, title: 'AMOUNT', width: 100 },\r\n { field: 'reason', title: 'DESCRIPTION' },\r\n { cell: this.renderMemberBy, title: 'SENDER', width: 250 },\r\n { cell: this.renderMemberFor, title: 'RECEIVER', width: 250 },\r\n { cell: this.renderMemberInitiator, title: 'INITIATOR', width: 250 },\r\n { cell: this.renderActions, title: 'ACTIONS', width: 120 },\r\n ];\r\n\r\n public async created() {\r\n this.teamId = teamHelper.currentTeam.id;\r\n this.teams = await teamService.getTeams();\r\n this.members = await teamService.getMembers(this.teamId);\r\n\r\n await this.loadExternalTransfers();\r\n this.transfer.senderTeam = this.teams.find((x) => x.teamId === this.teamId);\r\n this.isLoaded = true;\r\n }\r\n\r\n public async loadExternalTransfers() {\r\n const period = periodModule.selectedPeriod;\r\n const transfers = await transferService.getCrossTeamPersonTransfers(this.teamId, period);\r\n\r\n transfers.forEach((transfer) => {\r\n transfer.receiverTeam = this.teams.find((x) => x.teamId === transfer.receiverTeam.teamId);\r\n transfer.senderTeam = this.teams.find((x) => x.teamId === transfer.senderTeam.teamId);\r\n });\r\n\r\n this.externalTransfers = transfers;\r\n }\r\n\r\n get transferTitle() {\r\n return 'Move a P&L of one of your team members';\r\n }\r\n\r\n public async openTransferModal() {\r\n await this.$refs.transferPAndLModal.init();\r\n }\r\n\r\n public async reloadData() {\r\n this.isLoaded = false;\r\n await this.loadExternalTransfers();\r\n this.isLoaded = true;\r\n }\r\n\r\n public renderTransferAmount(h, _, row) {\r\n const props = { value: row.dataItem.amount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderMemberInitiator(h, _, row) {\r\n const self = this;\r\n let member = self.members.find((m: Person) => {\r\n return m.personId === row.dataItem.initiator;\r\n });\r\n\r\n if (!member) {\r\n member = new Person();\r\n member.firstName = 'Not available';\r\n }\r\n\r\n return this.renderMember(h, member);\r\n }\r\n\r\n public amountUpdated(amount) {\r\n this.amount = amount;\r\n }\r\n\r\n public renderActions(h, _, row): any {\r\n let actions = [];\r\n const userId = loginHelper.getUser().personId;\r\n const initiator = row.dataItem && typeof row.dataItem.initiator !== 'undefined' ? parseInt(row.dataItem.initiator) : 0;\r\n\r\n if (initiator === userId || roleHelper.isSiteAdmin() || roleHelper.isFinanceEmployee()) {\r\n actions = [\r\n { title: 'Edit', function: this.editTransfer, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n { title: 'Delete', function: this.removeTransfer, disabled: periodFilterHelper.isCurrentPeriodClosed() },\r\n ];\r\n }\r\n\r\n const props = { actions, item: row.dataItem };\r\n return h(Vue.component('grid-actions'), { props });\r\n }\r\n\r\n public removeTransfer(item) {\r\n transferService.deleteTransfer(item.transferId);\r\n\r\n const transfer = this.externalTransfers.findIndex((t: Transfer) => {\r\n return t.transferId === item.transferId;\r\n });\r\n\r\n this.externalTransfers.splice(transfer, 1);\r\n this.transferGridUpdate++;\r\n }\r\n\r\n public async editTransfer(item) {\r\n this.editMode = true;\r\n\r\n this.$refs.transferPAndLModal.show();\r\n Vue.nextTick(async () => {\r\n this.$refs.transferPAndLModal.editMode = true;\r\n await this.$refs.transferPAndLModal.initTransfer(item);\r\n });\r\n\r\n this.editIsLoading = false;\r\n }\r\n\r\n public calculateTransferGridHeight() {\r\n if (this.externalTransfers.length < 25) {\r\n return { height: `${39 + this.externalTransfers.length * 47}px` };\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-transfers.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-finance-transfers.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-finance-transfers.vue?vue&type=template&id=ed1dcb48&\"\nimport script from \"./team-finance-transfers.ts?vue&type=script&lang=js&\"\nexport * from \"./team-finance-transfers.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"if\":\"isLoading\"}},[_c('div',{},[_c('ul',{staticClass:\"nav nav-tabs\",attrs:{\"role\":\"tablist\"}},[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link group-overview\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_GROUPS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_FINANCE_GROUPS'),expression:\"'TEAM_FINANCE_GROUPS'\"}],staticClass:\"nav-link group-overview\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('group-overview')}}})]),(!_vm.hideMemberResults)?_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link member-overview\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_MEMBERS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_FINANCE_MEMBERS'),expression:\"'TEAM_FINANCE_MEMBERS'\"}],staticClass:\"nav-link member-overview\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('member-overview')}}})]):_vm._e(),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link invoices\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_INCOME\"}})],1):_c('span',{staticClass:\"nav-link invoices\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('invoices')}}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_INCOME\"}})],1)]),(!_vm.hideExpenses)?_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link expenses\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_EXPENSES\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_FINANCE_EXPENSES'),expression:\"'TEAM_FINANCE_EXPENSES'\"}],staticClass:\"nav-link expenses\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('expenses')}}})]):_vm._e(),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link period\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_PERIOD\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_FINANCE_PERIOD'),expression:\"'TEAM_FINANCE_PERIOD'\"}],staticClass:\"nav-link period\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('period')}}})]):_vm._e(),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link transfers\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_TRANSFERS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_FINANCE_TRANSFERS'),expression:\"'TEAM_FINANCE_TRANSFERS'\"}],staticClass:\"nav-link transfers\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('transfers')}}})]):_vm._e(),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link settings\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_FINANCE_SETTINGS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_FINANCE_SETTINGS'),expression:\"'TEAM_FINANCE_SETTINGS'\"}],staticClass:\"nav-link settings\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('settings')}}})])])]),_c('div',{staticClass:\"tab-content\"},[_c(_vm.currentTabComponent,{tag:\"component\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport PageRender from '../../../models/PageRender';\r\nimport { $router, teamHelper, roleHelper } from '@/main';\r\nimport jQuery from 'jquery';\r\nimport TeamSettings from '@/models/TeamSettings';\r\nimport { settingsModule } from '@/store/modules/settings';\r\n\r\n@Component\r\nexport default class TeamFinanceComponent extends PageRender {\r\n public tab: string = null;\r\n public tabs: string[] = [\r\n 'group-overview', 'member-overview', 'invoices', 'expenses', 'period', 'transfers', 'settings',\r\n ];\r\n public currentTabComponent: string = '';\r\n public teamFinanceSettings: TeamSettings = new TeamSettings();\r\n\r\n public async created() {\r\n await this.loadTeamFinanceSettings();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n public async mounted() {\r\n await this.checkPeriodParam();\r\n await this.changeTab(this.$route.params.tab);\r\n }\r\n\r\n public async changeTab(tab: string): Promise {\r\n if (this.tabs.indexOf(tab) === -1) {\r\n tab = this.tabs[0];\r\n }\r\n\r\n if (tab !== this.$route.params.tab) {\r\n const params = this.$route.params;\r\n params.tab = tab;\r\n await $router.push({ name: 'team-finances', params });\r\n } else {\r\n this.doActiveClass(tab);\r\n this.currentTabComponent = 'team-finances-' + tab;\r\n }\r\n }\r\n\r\n public async loadTeamFinanceSettings() {\r\n const currentTeamId = teamHelper.currentTeam.id;\r\n await settingsModule.fetchTeamSettingsIfNeeded(currentTeamId);\r\n this.teamFinanceSettings = settingsModule.findTeamFinanceSettings(currentTeamId);\r\n }\r\n\r\n public doActiveClass(tab: string) {\r\n this.$nextTick(() => {\r\n jQuery('.' + tab).addClass('active');\r\n });\r\n }\r\n\r\n get hideExpenses() {\r\n return !roleHelper.checkAccess(this.teamFinanceSettings.allExpensesPrivacyLevel);\r\n }\r\n\r\n get hideMemberResults() {\r\n return !roleHelper.checkAccess(this.teamFinanceSettings.memberResultsPrivacyLevel);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./finance.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./finance.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./finance.vue?vue&type=template&id=6beac63f&\"\nimport script from \"./finance.ts?vue&type=script&lang=js&\"\nexport * from \"./finance.ts?vue&type=script&lang=js&\"\nimport style0 from \"./finance.vue?vue&type=style&index=0&id=6beac63f&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-toolbar',{staticClass:\"justify-content-start\"},[_c('grid-period-range-filter',{on:{\"filter-change\":_vm.recalculateResultsIncome}})],1),_c('prd-grid-wrapper',{key:_vm.reload,attrs:{\"data-items\":_vm.groupOverviewData,\"columns\":_vm.groupResultColumns,\"row-height\":34}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { resultService, teamHelper, roleHelper, ecosystemHelper } from '@/main';\r\nimport FinanceTeam from '../../../../models/FinanceTeam';\r\nimport Vue from 'vue';\r\nimport BaseInsightsPage from './BaseInsightsPage';\r\nimport GroupResults from '@/models/Finance/Api/GroupResults';\r\nimport RangeItem from '@/models/Finance/Api/RangeItem';\r\nimport { orderBy } from '@progress/kendo-data-query';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class TeamFinanceGroupOverviewNew extends BaseInsightsPage {\r\n public teamId: number = null;\r\n public reloadingResults: boolean = false;\r\n\r\n public groupOverviewData: any[] = [];\r\n public tempGroupOverviewData: any[] = [];\r\n public teamFinance: FinanceTeam;\r\n public isLoaded: boolean = false;\r\n public reload: number = 0;\r\n\r\n public groupResultColumns: any[] = [\r\n { field: 'group.groupName', title: 'GROUP_NAME', cell: this.renderGroupInsightsLink },\r\n { cell: this.formatStartBalanceValue, title: 'START_BALANCE', footerCell: this.renderFooterCellStartBalance },\r\n { field: 'result', cell: this.formatResultValue, title: 'RESULT', footerCell: this.renderFooterCellSum },\r\n { field: 'balance', cell: this.formatBalanceValue, title: 'END_BALANCE', footerCell: this.renderFooterCellSum },\r\n { field: 'expenses', cell: this.formatExpensesValue, title: 'EXPENSES' },\r\n { field: 'extras', cell: this.formatExtrasValue, title: 'EXTRAS' },\r\n { field: 'openInvoiceAmount', cell: this.formatOpenInvoicesValue, title: 'OPEN_INVOICES', footerCell: this.renderFooterCellSum },\r\n { field: 'openExpenseAmount', cell: this.formatOpenExpensesValue, title: 'OPEN_EXPENSES', footerCell: this.renderFooterCellSum },\r\n { field: 'externalRevenue', cell: this.formatExternalRevenue, title: 'EXTERNAL_REVENUE', footerCell: this.renderFooterCellSum },\r\n ];\r\n\r\n public async mounted() {\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee()) {\r\n await this.$router.push({\r\n name: 'team-finances',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'group-overview',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n this.teamId = teamHelper.currentTeamId;\r\n this.isLoaded = true;\r\n }\r\n\r\n public async recalculateResultsIncome(dates) {\r\n this.reloadingResults = true;\r\n this.showPending('CALCULATING_RESULT_PENDING');\r\n\r\n this.groupOverviewData = [];\r\n this.tempGroupOverviewData = [];\r\n\r\n const results = await resultService.getGroupResults(teamHelper.getTeamId(), dates.fromFilterMonth, dates.toFilterMonth);\r\n this.calculateTotals(results.items);\r\n this.groupOverviewData = orderBy(this.tempGroupOverviewData, [{ field: 'group.name', dir: 'asc' }]);\r\n this.clearNotifications();\r\n this.reloadingResults = false;\r\n this.reload++;\r\n }\r\n\r\n public calculateTotals(results: RangeItem[]) {\r\n for (const item of results) {\r\n for (const groupResult of item.item.groupResults) {\r\n const group = this.tempGroupOverviewData.find((x) => x.group.groupId === groupResult.group.groupId);\r\n if (group) {\r\n group.result += groupResult.result;\r\n group.expenses += groupResult.expenses;\r\n group.extras += groupResult.extras;\r\n group.balance = groupResult.balance;\r\n group.externalRevenue += groupResult.externalRevenue;\r\n group.openInvoiceAmount = groupResult.openInvoiceAmount;\r\n group.openExpenseAmount = groupResult.openExpenseAmount;\r\n } else {\r\n this.tempGroupOverviewData.push(groupResult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public formatOpenInvoicesValue(h, _, row) {\r\n const props = { value: row.dataItem.openInvoiceAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public formatOpenExpensesValue(h, _, row) {\r\n const props = { value: row.dataItem.openExpenseAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public formatExternalRevenue(h, _, row) {\r\n const props = { value: row.dataItem.externalRevenue };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderFooterCellSum(h, _, row) {\r\n const total = this.groupOverviewData.reduce((acc: number, current) => acc + (current[row.field] as number), 0);\r\n const props = { value: total };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderFooterCellStartBalance(h, _) {\r\n const total = this.groupOverviewData.reduce((acc: number, current) => acc + this.getStartBalanceValue(current), 0);\r\n const props = { value: total };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-insights-group-results.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-insights-group-results.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-insights-group-results.vue?vue&type=template&id=50414c4a&\"\nimport script from \"./team-insights-group-results.ts?vue&type=script&lang=js&\"\nexport * from \"./team-insights-group-results.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-toolbar',{staticClass:\"justify-content-start\"},[_c('grid-period-range-filter',{on:{\"filter-change\":_vm.recalculateResultsIncome}})],1),_c('prd-grid-wrapper',{key:_vm.reload,attrs:{\"data-items\":_vm.memberOverviewData,\"columns\":_vm.memberResultColumns,\"row-height\":34}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { resultService, teamHelper, roleHelper, ecosystemHelper } from '@/main';\r\nimport FinanceTeam from '../../../../models/FinanceTeam';\r\nimport BaseInsightsPage from './BaseInsightsPage';\r\nimport RangeItem from '@/models/Finance/Api/RangeItem';\r\nimport MemberResults from '@/models/Finance/Api/MemberResults';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport Vue from 'vue';\r\n\r\n@Component\r\nexport default class TeamFinanceMemberOverview extends BaseInsightsPage {\r\n public teamId: number = null;\r\n public reloadingResults: boolean = false;\r\n\r\n public memberOverviewData: any[] = [];\r\n public tempMemberOverviewData: any[] = [];\r\n public teamFinance: FinanceTeam;\r\n public isLoaded: boolean = false;\r\n public reload: number = 0;\r\n\r\n public memberResultColumns: any[] = [\r\n { field: 'member.name', title: 'MEMBER' },\r\n { field: 'balance', cell: this.formatStartBalanceValue, title: 'START_BALANCE', footerCell: this.renderFooterCellStartBalance },\r\n { field: 'result', cell: this.formatResultValue, title: 'RESULT', footerCell: this.renderFooterCellSum },\r\n { field: 'balance', cell: this.formatBalanceValue, title: 'END_BALANCE', footerCell: this.renderFooterCellSum },\r\n { field: 'expenses', cell: this.formatExpensesValue, title: 'EXPENSES', footerCell: this.renderFooterCellSum },\r\n { field: 'extras', cell: this.formatExtrasValue, title: 'EXTRAS', footerCell: this.renderFooterCellSum },\r\n ];\r\n\r\n public async mounted() {\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee()) {\r\n await this.$router.push({\r\n name: 'team-finances',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'group-overview',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n this.teamId = teamHelper.currentTeamId;\r\n\r\n this.isLoaded = true;\r\n }\r\n\r\n public async recalculateResultsIncome(dates) {\r\n this.reloadingResults = true;\r\n this.clearNotifications();\r\n this.showPending('CALCULATING_RESULT_PENDING');\r\n\r\n this.memberOverviewData = [];\r\n this.tempMemberOverviewData = [];\r\n\r\n const result = await resultService.getMemberResults(teamHelper.getTeamId(), dates.fromFilterMonth, dates.toFilterMonth);\r\n this.calculateTotals(result.items);\r\n\r\n this.memberOverviewData = this.tempMemberOverviewData;\r\n this.clearNotifications();\r\n this.reloadingResults = false;\r\n this.reload++;\r\n }\r\n\r\n public calculateTotals(results: RangeItem[]) {\r\n for (const item of results) {\r\n for (const personResult of item.item.memberResults) {\r\n const member = this.tempMemberOverviewData.find((x) => x.member.personId === personResult.member.personId);\r\n if (member) {\r\n member.result += personResult.result;\r\n member.extras += personResult.extras;\r\n member.expenses += personResult.expenses;\r\n member.balance = personResult.balance;\r\n } else {\r\n this.tempMemberOverviewData.push(personResult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public renderFooterCellSum(h, _, row) {\r\n const total = this.memberOverviewData.reduce((acc: number, current) => acc + (current[row.field] as number), 0);\r\n const props = { value: total };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public renderFooterCellStartBalance(h, _) {\r\n const total = this.memberOverviewData.reduce((acc: number, current) => acc + this.getStartBalanceValue(current), 0);\r\n const props = { value: total };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-insights-member-results.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-insights-member-results.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-insights-member-results.vue?vue&type=template&id=16ca42ea&\"\nimport script from \"./team-insights-member-results.ts?vue&type=script&lang=js&\"\nexport * from \"./team-insights-member-results.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isLoaded)?_c('spinner'):_c('div',[_c('prd-toolbar',{attrs:{\"space-between\":\"\"}},[_c('template',{slot:\"left\"},[_c('prd-translate-text',{staticClass:\"text text-nowrap\",attrs:{\"translate-key\":\"INVOICE_TYPE\",\"element\":\"span\"}}),_c('b-select',{model:{value:(_vm.invoiceType),callback:function ($$v) {_vm.invoiceType=$$v},expression:\"invoiceType\"}},[_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('INCOME'),expression:\"'INCOME'\"}],domProps:{\"value\":_vm.InvoiceType.Income}}),_c('option',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('EXPENSES'),expression:\"'EXPENSES'\"}],domProps:{\"value\":_vm.InvoiceType.Expenses}})])],1),_c('b-form-checkbox',{staticClass:\"mr-2 text-nowrap d-inline-block\",attrs:{\"slot\":\"right\"},slot:\"right\",model:{value:(_vm.onlyUnpaid),callback:function ($$v) {_vm.onlyUnpaid=$$v},expression:\"onlyUnpaid\"}},[_c('prd-translate-text',{attrs:{\"translate-key\":\"SHOW_UNPAID_INVOICES_ONLY\",\"element\":\"span\"}})],1)],2),_c('prd-grid-wrapper',{attrs:{\"data-items\":_vm.aggregatePayments,\"columns\":_vm.aggregateColumns,\"detail\":_vm.detailTemplate}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('prd-grid-wrapper',{staticClass:\"mb-0 shadow-sm\",attrs:{\"data-items\":_vm.payments,\"columns\":_vm.paymentStatussesColumns}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport PaymentStatus from '@/models/Insights/PaymentStatus';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport { translateModule } from '@/store/modules/translate';\r\nimport moment from 'moment';\r\nimport Component from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport BaseInsightsPage from './BaseInsightsPage';\r\n\r\n@Component\r\nexport default class TeamInsightPaymentDetail extends BaseInsightsPage {\r\n @Prop() public dataItem: { payments: PaymentStatus[] };\r\n\r\n public get payments(): PaymentStatus[] {\r\n return this.dataItem.payments;\r\n }\r\n\r\n public paymentStatussesColumns: any[] = [\r\n { field: 'invoiceId', title: 'INVOICE', cell: this.renderInvoiceLink },\r\n { field: 'invoiceReference', title: 'REFERENCE' },\r\n { field: 'invoiceDate', cell: this.renderInvoiceDate, title: 'DATE' },\r\n { field: 'externalIdentifier', title: 'EXTERNAL_IDENTIFIER' },\r\n { field: 'period', cell: this.formatPeriod, title: 'PERIOD' },\r\n { field: 'periodMatched', cell: this.formatPeriodMatched, title: 'PERIOD_MATCHED' },\r\n { field: 'invoiceAmount', cell: this.formatInvoicesAmountValue, title: 'INVOICE_AMOUNT' },\r\n { field: 'amountPaid', cell: this.formatAmountPaidValue, title: 'AMOUNT_PAID' },\r\n { field: 'paymentDate', cell: this.renderPaymentDate, title: 'PAYMENT_DATE' },\r\n ];\r\n\r\n public renderInvoiceDate(h, _, row) {\r\n return h('td', [moment(row.dataItem.invoiceDate, 'YYYY-MM-DD').format('DD-MM-YYYY')]);\r\n }\r\n\r\n public renderPaymentDate(h, _, row) {\r\n return h('td', [moment(row.dataItem.paymentDate, 'YYYY-MM-DD').format('DD-MM-YYYY')]);\r\n }\r\n\r\n public formatInvoicesAmountValue(h, _, row) {\r\n const props = { value: row.dataItem.invoiceAmount };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public formatAmountPaidValue(h, _, row) {\r\n const props = { value: row.dataItem.amountPaid };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public formatExternalRevenue(h, _, row) {\r\n const props = { value: row.dataItem.externalRevenue };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n public formatPeriodMatched(h, _, row) {\r\n if (!row.dataItem.periodMatched) {\r\n return h('td');\r\n }\r\n\r\n const period = periodModule.allPeriods.find((x) => x.periodId === row.dataItem.periodMatched);\r\n if (period) {\r\n return h('td', moment(period.startDate, 'YYYY-MM-DD').format(`MMMM 'YY`));\r\n }\r\n return h('td', translateModule.value('NO_PERIOD_FOUND'));\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-insights-payment-detail.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-insights-payment-detail.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-insights-payment-detail.vue?vue&type=template&id=39744e24&\"\nimport script from \"./team-insights-payment-detail.ts?vue&type=script&lang=js&\"\nexport * from \"./team-insights-payment-detail.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Component } from 'vue-property-decorator';\r\nimport { teamHelper, roleHelper, ecosystemHelper, insightService } from '@/main';\r\nimport Vue from 'vue';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport PaymentStatus from '@/models/Insights/PaymentStatus';\r\nimport { InvoiceType } from '@/models/InvoiceType';\r\nimport PaymentDetail from './team-insights-payment-detail.vue';\r\n\r\n@Component\r\nexport default class TeamFinancePaymentStatusses extends Vue {\r\n public teamId: number = null;\r\n public paymentStatusses: PaymentStatus[] = [];\r\n public isLoaded: boolean = false;\r\n public onlyUnpaid: boolean = false;\r\n public invoiceType: InvoiceType = InvoiceType.Income;\r\n public InvoiceType = InvoiceType;\r\n public detailTemplate = PaymentDetail;\r\n\r\n public aggregateColumns: any[] = [\r\n { field: 'invoiceReference', title: 'REFERENCE' },\r\n { field: 'invoiceAmount', cell: this.formatAmountPaidValue, title: 'TOTAL_INVOICE_AMOUNT', footerCell: this.renderFooterCellSum },\r\n { field: 'amountPaid', cell: this.formatAmountPaidValue, title: 'TOTAL_AMOUNT_PAID', footerCell: this.renderFooterCellSum },\r\n ];\r\n\r\n public aggregatePayments: any[] = [];\r\n\r\n public get payments() {\r\n return this.paymentStatusses.filter((status) => {\r\n const matchOnlyUnpaid = (this.onlyUnpaid && !status.periodMatched) || !this.onlyUnpaid;\r\n const matchInvoiceType = status.invoiceType === this.invoiceType;\r\n return matchOnlyUnpaid && matchInvoiceType;\r\n });\r\n }\r\n\r\n public async mounted() {\r\n if (!roleHelper.isSiteAdmin() && !roleHelper.isFinanceEmployee()) {\r\n await this.$router.push({\r\n name: 'team-finances',\r\n params: {\r\n ecosystemId: ecosystemHelper.currentEcosystem.id.toString(),\r\n ecosystemKey: ecosystemHelper.currentEcosystem.key,\r\n teamId: teamHelper.currentTeam.id.toString(),\r\n teamKey: teamHelper.currentTeam.key,\r\n tab: 'group-overview',\r\n period: periodModule.selectedPeriod,\r\n },\r\n });\r\n }\r\n\r\n this.teamId = teamHelper.currentTeamId;\r\n this.paymentStatusses = await insightService.getPaymentStatusses(teamHelper.getTeamId());\r\n this.calculateAggregatePayments();\r\n this.isLoaded = true;\r\n\r\n this.$watch('paymentStatusses', this.calculateAggregatePayments);\r\n this.$watch('invoiceType', this.calculateAggregatePayments);\r\n this.$watch('onlyUnpaid', this.calculateAggregatePayments);\r\n }\r\n\r\n private formatAmountPaidValue(h, _, row) {\r\n const props = { value: row.dataItem[row.field] };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n\r\n private calculateAggregatePayments() {\r\n const aggregates = {};\r\n this.payments.forEach((payment: PaymentStatus) => {\r\n const key = payment.externalIdentifier;\r\n if (!aggregates[key]) {\r\n aggregates[key] = {\r\n externalIdentifier: payment.externalIdentifier,\r\n invoiceReference: payment.invoiceReference,\r\n invoiceAmount: 0,\r\n amountPaid: 0,\r\n payments: [],\r\n };\r\n }\r\n aggregates[key].invoiceAmount += payment.invoiceAmount;\r\n aggregates[key].amountPaid += payment.amountPaid;\r\n aggregates[key].payments.push(payment);\r\n });\r\n\r\n this.aggregatePayments = Object.values(aggregates);\r\n }\r\n\r\n private renderFooterCellSum(h, _, row) {\r\n const total = this.aggregatePayments.reduce((acc: number, current) => acc + (current[row.field] as number), 0);\r\n const props = { value: total, renderTd: false };\r\n return h(Vue.component('number-formatter'), { props });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-insights-payment-statusses.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./team-insights-payment-statusses.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./team-insights-payment-statusses.vue?vue&type=template&id=763a302d&\"\nimport script from \"./team-insights-payment-statusses.ts?vue&type=script&lang=js&\"\nexport * from \"./team-insights-payment-statusses.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('ul',{staticClass:\"nav nav-tabs\",attrs:{\"role\":\"tablist\"}},[_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link group-results\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_ANALYTICS_GROUPS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_ANALYTICS_GROUPS'),expression:\"'TEAM_ANALYTICS_GROUPS'\"}],staticClass:\"nav-link group-results\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('group-results')}}})]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link member-results\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_ANALYTICS_MEMBERS\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_ANALYTICS_MEMBERS'),expression:\"'TEAM_ANALYTICS_MEMBERS'\"}],staticClass:\"nav-link member-results\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('member-results')}}})]),_c('li',{staticClass:\"nav-item tabs-list-group-item\",attrs:{\"role\":\"presentation\"}},[(_vm.$root.inEditMode)?_c('span',{staticClass:\"nav-link member-results\"},[_c('prd-translate-text',{attrs:{\"translate-key\":\"TEAM_INSIGHTS_PAYMENT_STATUSSES\"}})],1):_c('span',{directives:[{name:\"translate\",rawName:\"v-translate\",value:('TEAM_INSIGHTS_PAYMENT_STATUSSES'),expression:\"'TEAM_INSIGHTS_PAYMENT_STATUSSES'\"}],staticClass:\"nav-link payment-statusses\",attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.changeTab('payment-statusses')}}})])]),_c('div',{staticClass:\"tab-content\"},[_c(_vm.currentTabComponent,{tag:\"component\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component } from 'vue-property-decorator';\r\nimport { $router } from '@/main';\r\nimport jQuery from 'jquery';\r\nimport PageRender from '@/models/PageRender';\r\n\r\n@Component\r\nexport default class TeamInsightsComponent extends PageRender {\r\n public tab: string = null;\r\n public currentTabComponent: string = '';\r\n public tabs: string[] = ['group-results', 'member-results', 'payment-statusses'];\r\n\r\n public async mounted() {\r\n await this.checkPeriodParam();\r\n await this.changeTab(this.$route.params.tab);\r\n }\r\n\r\n public async changeTab(tab: string): Promise {\r\n if (tab !== this.$route.params.tab) {\r\n const params = this.$route.params;\r\n params.tab = tab;\r\n\r\n await $router.push({ name: 'team-insights', params });\r\n } else {\r\n if (this.tabs.indexOf(tab) === -1) {\r\n tab = this.tabs[0];\r\n }\r\n\r\n this.doActiveClass(tab);\r\n this.currentTabComponent = 'team-insights-' + tab;\r\n }\r\n }\r\n\r\n public doActiveClass(tab: string) {\r\n this.$nextTick(() => {\r\n jQuery('.' + tab).addClass('active');\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./insights.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./insights.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./insights.vue?vue&type=template&id=15fcf144&\"\nimport script from \"./insights.ts?vue&type=script&lang=js&\"\nexport * from \"./insights.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"offset-md-4 col-md-8\"},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.getPersonFullName())+\" has requested access to the team \"+_vm._s(_vm.joinRequest.team.name)+\" \")]),_c('p',[_vm._v(\"What action do you want to take?\")]),_c('button',{staticClass:\"btn btn-success\",on:{\"click\":function($event){return _vm.choiceAction(true)}}},[_vm._v(\"Allow\")]),_c('button',{staticClass:\"btn btn-danger\",on:{\"click\":function($event){return _vm.choiceAction(false)}}},[_vm._v(\"Deny\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class TeamJoinRequest {\r\n public TeamJoinRequestId: number;\r\n public FromPerson: number;\r\n public ForTeam: number;\r\n public Allowed: boolean;\r\n}\r\n","import Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\nimport { teamService, personService } from '@/main';\r\nimport TeamJoinRequest from '../../models/TeamJoinRequest';\r\nimport { Person } from '../../models/Person';\r\nimport Team from '@/models/Team';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component\r\nexport default class JoinRequestComponent extends Vue {\r\n public joinRequest: TeamJoinRequest = new TeamJoinRequest();\r\n public person: Person;\r\n public team: Team;\r\n private requestId: number;\r\n\r\n public created() {\r\n const self = this;\r\n this.requestId = parseInt(this.$route.params.id);\r\n\r\n teamService\r\n .getJoinRequest(self.requestId)\r\n .then((result) => {\r\n self.joinRequest = result.data as TeamJoinRequest;\r\n\r\n teamService\r\n .getTeam(self.joinRequest.ForTeam, periodModule.selectedPeriod)\r\n .then((tresult) => self.team = tresult.data)\r\n .catch(console.log);\r\n\r\n personService\r\n .getPerson(self.joinRequest.FromPerson, periodModule.selectedPeriod)\r\n .then((presult) => self.person = presult)\r\n .catch(console.log);\r\n })\r\n .catch( console.log );\r\n }\r\n\r\n public getPersonFullName(): string {\r\n let parts = [this.person.firstName, this.person.insertion, this.person.lastName];\r\n parts = parts.filter((value) => {\r\n return !!value;\r\n });\r\n\r\n return parts.join(' ');\r\n }\r\n\r\n public choiceAction(allow: boolean) {\r\n this.joinRequest.Allowed = allow;\r\n\r\n teamService\r\n .updateJoinRequest(this.requestId, this.joinRequest)\r\n .then(console.log)\r\n .catch(console.log);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./joinrequest.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./joinrequest.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./joinrequest.vue?vue&type=template&id=88948750&\"\nimport script from \"./joinrequest.ts?vue&type=script&lang=js&\"\nexport * from \"./joinrequest.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.actionList.length > 0)?_c('div',{attrs:{\"id\":\"action-list\"}},[_c('div',{staticClass:\"action-list-underlay\",on:{\"click\":_vm.cancelHandler}}),_c('div',{staticClass:\"p-3\",attrs:{\"id\":\"action-pane\"}},[_c('transition-group',{attrs:{\"name\":\"fade\",\"tag\":\"div\"}},_vm._l((_vm.actionList),function(action,index){return _c('div',{key:'action-pane-' + index.toString(),staticClass:\"action p-3\",style:({ width: 100 - index * 5 + '%' })},[_c(action.component,{tag:\"div\",attrs:{\"options\":action.sideOptions},on:{\"finished\":action.finishedHandler,\"cancel\":_vm.cancelHandler}}),(_vm.actionList.length != index + 1)?_c('div',{staticClass:\"action-list-underlay\"}):_vm._e()],1)}),0)],1)]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\nimport { events } from './sideActionsEvents';\r\n\r\n@Component\r\nexport default class SideActionsComponent extends Vue {\r\n public actionList: any[] = [];\r\n\r\n public async mounted() {\r\n events.$on('pushed', (data: any) => {\r\n const handler = data.finishedHandler;\r\n const self = this;\r\n data.finishedHandler = (resultParam?: any) => {\r\n self.actionList.pop();\r\n if (handler) {\r\n handler(resultParam);\r\n }\r\n };\r\n\r\n this.actionList.push(data);\r\n });\r\n }\r\n\r\n public cancelHandler(): void {\r\n this.actionList.pop();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./sideActionsComponent.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./sideActionsComponent.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./sideActionsComponent.vue?vue&type=template&id=6a4c2e08&\"\nimport script from \"./sideActionsComponent.ts?vue&type=script&lang=js&\"\nexport * from \"./sideActionsComponent.ts?vue&type=script&lang=js&\"\nimport style0 from \"./sideActionsComponent.vue?vue&type=style&index=0&id=6a4c2e08&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./af\": 2786,\n\t\"./af.js\": 2786,\n\t\"./ar\": 867,\n\t\"./ar-dz\": 4130,\n\t\"./ar-dz.js\": 4130,\n\t\"./ar-kw\": 6135,\n\t\"./ar-kw.js\": 6135,\n\t\"./ar-ly\": 6440,\n\t\"./ar-ly.js\": 6440,\n\t\"./ar-ma\": 7702,\n\t\"./ar-ma.js\": 7702,\n\t\"./ar-sa\": 6040,\n\t\"./ar-sa.js\": 6040,\n\t\"./ar-tn\": 7100,\n\t\"./ar-tn.js\": 7100,\n\t\"./ar.js\": 867,\n\t\"./az\": 1083,\n\t\"./az.js\": 1083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 8338,\n\t\"./bg.js\": 8338,\n\t\"./bm\": 7438,\n\t\"./bm.js\": 7438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 6225,\n\t\"./bn-bd.js\": 6225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 1560,\n\t\"./bo.js\": 1560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 622,\n\t\"./bs.js\": 622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 877,\n\t\"./cv.js\": 877,\n\t\"./cy\": 7373,\n\t\"./cy.js\": 7373,\n\t\"./da\": 4780,\n\t\"./da.js\": 4780,\n\t\"./de\": 9740,\n\t\"./de-at\": 217,\n\t\"./de-at.js\": 217,\n\t\"./de-ch\": 894,\n\t\"./de-ch.js\": 894,\n\t\"./de.js\": 9740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 837,\n\t\"./el.js\": 837,\n\t\"./en-au\": 8348,\n\t\"./en-au.js\": 8348,\n\t\"./en-ca\": 7925,\n\t\"./en-ca.js\": 7925,\n\t\"./en-gb\": 2243,\n\t\"./en-gb.js\": 2243,\n\t\"./en-ie\": 6436,\n\t\"./en-ie.js\": 6436,\n\t\"./en-il\": 941,\n\t\"./en-il.js\": 941,\n\t\"./en-in\": 4175,\n\t\"./en-in.js\": 4175,\n\t\"./en-nz\": 6319,\n\t\"./en-nz.js\": 6319,\n\t\"./en-sg\": 1662,\n\t\"./en-sg.js\": 1662,\n\t\"./eo\": 2915,\n\t\"./eo.js\": 2915,\n\t\"./es\": 5655,\n\t\"./es-do\": 5251,\n\t\"./es-do.js\": 5251,\n\t\"./es-mx\": 6112,\n\t\"./es-mx.js\": 6112,\n\t\"./es-us\": 1146,\n\t\"./es-us.js\": 1146,\n\t\"./es.js\": 5655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 7763,\n\t\"./eu.js\": 7763,\n\t\"./fa\": 6959,\n\t\"./fa.js\": 6959,\n\t\"./fi\": 1897,\n\t\"./fi.js\": 1897,\n\t\"./fil\": 2549,\n\t\"./fil.js\": 2549,\n\t\"./fo\": 4694,\n\t\"./fo.js\": 4694,\n\t\"./fr\": 4470,\n\t\"./fr-ca\": 3049,\n\t\"./fr-ca.js\": 3049,\n\t\"./fr-ch\": 2330,\n\t\"./fr-ch.js\": 2330,\n\t\"./fr.js\": 4470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 9295,\n\t\"./ga.js\": 9295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 8794,\n\t\"./gl.js\": 8794,\n\t\"./gom-deva\": 7884,\n\t\"./gom-deva.js\": 7884,\n\t\"./gom-latn\": 3168,\n\t\"./gom-latn.js\": 3168,\n\t\"./gu\": 5349,\n\t\"./gu.js\": 5349,\n\t\"./he\": 4206,\n\t\"./he.js\": 4206,\n\t\"./hi\": 94,\n\t\"./hi.js\": 94,\n\t\"./hr\": 316,\n\t\"./hr.js\": 316,\n\t\"./hu\": 2138,\n\t\"./hu.js\": 2138,\n\t\"./hy-am\": 1423,\n\t\"./hy-am.js\": 1423,\n\t\"./id\": 9218,\n\t\"./id.js\": 9218,\n\t\"./is\": 135,\n\t\"./is.js\": 135,\n\t\"./it\": 626,\n\t\"./it-ch\": 150,\n\t\"./it-ch.js\": 150,\n\t\"./it.js\": 626,\n\t\"./ja\": 9183,\n\t\"./ja.js\": 9183,\n\t\"./jv\": 4286,\n\t\"./jv.js\": 4286,\n\t\"./ka\": 2105,\n\t\"./ka.js\": 2105,\n\t\"./kk\": 7772,\n\t\"./kk.js\": 7772,\n\t\"./km\": 8758,\n\t\"./km.js\": 8758,\n\t\"./kn\": 9282,\n\t\"./kn.js\": 9282,\n\t\"./ko\": 3730,\n\t\"./ko.js\": 3730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 3291,\n\t\"./ky.js\": 3291,\n\t\"./lb\": 6841,\n\t\"./lb.js\": 6841,\n\t\"./lo\": 5466,\n\t\"./lo.js\": 5466,\n\t\"./lt\": 7010,\n\t\"./lt.js\": 7010,\n\t\"./lv\": 7595,\n\t\"./lv.js\": 7595,\n\t\"./me\": 9861,\n\t\"./me.js\": 9861,\n\t\"./mi\": 5493,\n\t\"./mi.js\": 5493,\n\t\"./mk\": 5966,\n\t\"./mk.js\": 5966,\n\t\"./ml\": 7341,\n\t\"./ml.js\": 7341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 370,\n\t\"./mr.js\": 370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 1237,\n\t\"./ms-my.js\": 1237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 2126,\n\t\"./mt.js\": 2126,\n\t\"./my\": 6165,\n\t\"./my.js\": 6165,\n\t\"./nb\": 4924,\n\t\"./nb.js\": 4924,\n\t\"./ne\": 6744,\n\t\"./ne.js\": 6744,\n\t\"./nl\": 3901,\n\t\"./nl-be\": 9814,\n\t\"./nl-be.js\": 9814,\n\t\"./nl.js\": 3901,\n\t\"./nn\": 3877,\n\t\"./nn.js\": 3877,\n\t\"./oc-lnc\": 2135,\n\t\"./oc-lnc.js\": 2135,\n\t\"./pa-in\": 5858,\n\t\"./pa-in.js\": 5858,\n\t\"./pl\": 4495,\n\t\"./pl.js\": 4495,\n\t\"./pt\": 9520,\n\t\"./pt-br\": 7971,\n\t\"./pt-br.js\": 7971,\n\t\"./pt.js\": 9520,\n\t\"./ro\": 6459,\n\t\"./ro.js\": 6459,\n\t\"./ru\": 1793,\n\t\"./ru.js\": 1793,\n\t\"./sd\": 950,\n\t\"./sd.js\": 950,\n\t\"./se\": 490,\n\t\"./se.js\": 490,\n\t\"./si\": 124,\n\t\"./si.js\": 124,\n\t\"./sk\": 4249,\n\t\"./sk.js\": 4249,\n\t\"./sl\": 4985,\n\t\"./sl.js\": 4985,\n\t\"./sq\": 1104,\n\t\"./sq.js\": 1104,\n\t\"./sr\": 9131,\n\t\"./sr-cyrl\": 9915,\n\t\"./sr-cyrl.js\": 9915,\n\t\"./sr.js\": 9131,\n\t\"./ss\": 5893,\n\t\"./ss.js\": 5893,\n\t\"./sv\": 8760,\n\t\"./sv.js\": 8760,\n\t\"./sw\": 1172,\n\t\"./sw.js\": 1172,\n\t\"./ta\": 7333,\n\t\"./ta.js\": 7333,\n\t\"./te\": 3110,\n\t\"./te.js\": 3110,\n\t\"./tet\": 2095,\n\t\"./tet.js\": 2095,\n\t\"./tg\": 7321,\n\t\"./tg.js\": 7321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 9005,\n\t\"./tk.js\": 9005,\n\t\"./tl-ph\": 5768,\n\t\"./tl-ph.js\": 5768,\n\t\"./tlh\": 9444,\n\t\"./tlh.js\": 9444,\n\t\"./tr\": 2397,\n\t\"./tr.js\": 2397,\n\t\"./tzl\": 8254,\n\t\"./tzl.js\": 8254,\n\t\"./tzm\": 1106,\n\t\"./tzm-latn\": 699,\n\t\"./tzm-latn.js\": 699,\n\t\"./tzm.js\": 1106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 7691,\n\t\"./uk.js\": 7691,\n\t\"./ur\": 3795,\n\t\"./ur.js\": 3795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 588,\n\t\"./uz-latn.js\": 588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 5666,\n\t\"./vi.js\": 5666,\n\t\"./x-pseudo\": 4378,\n\t\"./x-pseudo.js\": 4378,\n\t\"./yo\": 5805,\n\t\"./yo.js\": 5805,\n\t\"./zh-cn\": 3839,\n\t\"./zh-cn.js\": 3839,\n\t\"./zh-hk\": 5726,\n\t\"./zh-hk.js\": 5726,\n\t\"./zh-mo\": 9807,\n\t\"./zh-mo.js\": 9807,\n\t\"./zh-tw\": 4152,\n\t\"./zh-tw.js\": 4152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;","import { BModal } from 'bootstrap-vue';\r\nimport PageRender from '@/models/PageRender';\r\n\r\nexport default class BaseModal extends PageRender {\r\n public isLoading: boolean = true;\r\n\r\n public $refs!: {\r\n modal: BModal;\r\n };\r\n\r\n public show() {\r\n this.$refs.modal.show();\r\n }\r\n\r\n public hide() {\r\n this.$refs.modal.hide();\r\n }\r\n}\r\n","import moment from 'moment';\r\n\r\nexport default class Notification {\r\n public id: string = '';\r\n public handled: boolean = false;\r\n public deepLink: string = null;\r\n\r\n public application: string;\r\n public notificationTemplate: string = '';\r\n public notificationType: number = 0;\r\n\r\n public title: string = '';\r\n public message: string = '';\r\n public timestamp: string = '';\r\n\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n\r\n public get dateString() {\r\n return moment(this.timestamp, 'YYYY-MM-DD hh:mm:ss').fromNow();\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport { Prop, Component } from 'vue-property-decorator';\r\nimport { translateModule } from '@/store/modules/translate';\r\n\r\n@Component\r\nexport default class TranslateBase extends Vue {\r\n @Prop() public translateKey: string;\r\n @Prop() public translateGroup: string;\r\n @Prop() public params: any;\r\n @Prop({ type: Boolean }) public inline: boolean;\r\n @Prop({ type: Boolean }) public column: boolean;\r\n public editMode: boolean = false;\r\n public virtualValue: string = '';\r\n public $refs!: {\r\n input: any,\r\n };\r\n\r\n public created() {\r\n this.virtualValue = this.rawValue;\r\n }\r\n\r\n public get rawValue() {\r\n return translateModule.value(this.translateKey, this.translateGroup);\r\n }\r\n\r\n public get value() {\r\n return translateModule.value(this.translateKey, this.translateGroup, this.params);\r\n }\r\n\r\n public get inEditMode() {\r\n return translateModule.inEditMode;\r\n }\r\n\r\n public edit(e) {\r\n this.editMode = true;\r\n e.preventDefault();\r\n\r\n this.$nextTick(() => {\r\n if (this.$refs.input) {\r\n this.$refs.input.$el.focus();\r\n }\r\n });\r\n }\r\n\r\n public setValue(e) {\r\n this.virtualValue = e;\r\n }\r\n\r\n public async save(e) {\r\n this.editMode = false;\r\n e.preventDefault();\r\n await translateModule.setValue({\r\n key: this.translateKey,\r\n value: this.virtualValue,\r\n group: this.translateGroup,\r\n });\r\n }\r\n\r\n public get id() {\r\n const self = this as any;\r\n return `p${self._uid}`;\r\n }\r\n}\r\n","export const numberFormat = (n: number): string => {\r\n if (!n || typeof n === 'undefined' || n == null) {\r\n return '0';\r\n }\r\n\r\n if (n > -1000 && n < 1000) {\r\n return n.round(2).replace('.', ',');\r\n }\r\n\r\n const parts = n.round(2).split('.');\r\n const chars = [];\r\n let i = 0;\r\n\r\n if (parts.length === 2) {\r\n chars.push(`,${parts[1]}`);\r\n }\r\n\r\n parts[0]\r\n .split('')\r\n .reverse()\r\n .forEach((c) => {\r\n chars.push(c);\r\n i++;\r\n if (i > 0 && i % 3 === 0) {\r\n chars.push(' ');\r\n }\r\n });\r\n\r\n return chars.reverse().join('').trim();\r\n};\r\n","import DistributedInvoice from '../models/DistributedInvoice';\r\nimport { AccountType } from '@/models/AccountType';\r\nimport { Distribution } from '@/models/Interfaces';\r\n\r\nclass Functions {\r\n public getCommunicationChannel(channels: any, channelName: string) {\r\n if (channels && channels.length) {\r\n const filteredChannel = channels.filter((channel: any) => channel.channelName === channelName);\r\n\r\n if (filteredChannel && filteredChannel.length) {\r\n return filteredChannel[0].value;\r\n }\r\n }\r\n\r\n return 'N/A';\r\n }\r\n\r\n public groupBy(arr, prop) {\r\n const map = new Map(Array.from(arr, (obj) => [obj[prop], []]));\r\n arr.forEach((obj) => map.get(obj[prop]).push(obj));\r\n return Array.from(map.values());\r\n }\r\n\r\n public amountLeft(item: DistributedInvoice, isNegative: boolean = false) {\r\n let amountLeft = parseInt((item.invoice.amount * 100).toFixed());\r\n if (item && item.distributions) {\r\n for (const distribution of item.distributions) {\r\n if (distribution) {\r\n if (isNegative) {\r\n amountLeft += parseInt((distribution.amount * 100 * -1).toFixed());\r\n } else {\r\n amountLeft -= parseInt((distribution.amount * 100).toFixed());\r\n }\r\n }\r\n }\r\n }\r\n return amountLeft / 100;\r\n }\r\n\r\n public setCookie(name, value, days): void {\r\n let expires = '';\r\n if (days) {\r\n const date = new Date();\r\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\r\n expires = '; expires=' + date.toUTCString();\r\n }\r\n document.cookie = `${name}=${value || ''}${expires}; path=/`;\r\n }\r\n\r\n public getCookie(name): any {\r\n const nameEQ = `${name}=`;\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1, c.length);\r\n }\r\n if (c.indexOf(nameEQ) === 0) {\r\n return c.substring(nameEQ.length, c.length);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public eraseCookie(name): void {\r\n document.cookie = `${name}=; Max-Age=-99999999;`;\r\n }\r\n\r\n public getPersonDistributions(personId: number, distributions: Distribution[]) {\r\n if (typeof personId === 'undefined' || personId === null) {\r\n console.error('Given personId is undefined or null. Please give a valid personId');\r\n }\r\n\r\n return distributions.filter((distribution: Distribution) => {\r\n if (distribution.account) {\r\n return distribution.account.relatedEntityId === personId && distribution.account.accountType === AccountType.Person;\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport const functions = new Functions();\r\n","class EnMessages {\r\n public notAllowedToDistribute: string = 'You magician! You\\'re not allowed to generate money by claiming more than there is available';\r\n}\r\n\r\nexport const enMessages = new EnMessages();\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loggedIn || _vm.isLoading || _vm.loadingLanguage)?_c('div',{staticClass:\"d-block\"},[(_vm.isLoading || _vm.loadingLanguage)?_c('prd-loader',[_c('spinner'),_c('h2',[_vm._v(\"Loading..\")])],1):_c('router-view'),_c('prd-notify-wrapper')],1):_c('prd-page',{key:_vm.lang},[(_vm.showNav())?_c('menu-component'):_vm._e(),_c('prd-main-with-topbar',{class:{ main: _vm.showContent() }},[(!_vm.isLoading && _vm.showTopBar())?_c('navigation-bar',{key:_vm.$route.fullPath}):_vm._e(),_c('router-view',{key:_vm.$route.path,attrs:{\"slot\":\"content\"},slot:\"content\"})],1),_c('prd-notify-wrapper'),_c('side-actions')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('prd-nav-pane',{attrs:{\"name\":\"bright\"}},[_c('img',{attrs:{\"slot\":\"logo\",\"src\":\"/img/bright_icon_blue.svg\"},slot:\"logo\"}),_c('p',{attrs:{\"slot\":\"context\"},slot:\"context\"},[_vm._v(\"Bright\")]),_c('prd-nav-category',{attrs:{\"title\":\"Me\",\"variant\":\"primary\",\"open\":_vm.isMe,\"name\":\"me\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ME\"},slot:\"title\"}),_c('prd-nav-link',{attrs:{\"icon\":\"directory\",\"label\":\".directory\",\"to\":{\n name: 'me-directory',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n teamId: _vm.$root.teamHelper.currentTeam.id,\n teamKey: _vm.$root.teamHelper.currentTeam.key,\n tab: 'groups',\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isMe && _vm.$route.meta.section === 'directory'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"DIRECTORY\"}})],1),_c('prd-nav-link',{attrs:{\"icon\":\"finance\",\"label\":\".finances\",\"to\":{\n name: 'me-finances',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n teamId: _vm.$root.teamHelper.currentTeam.id,\n teamKey: _vm.$root.teamHelper.currentTeam.key,\n period: _vm.$store.state.period._selectedPeriod,\n tab: 'overview',\n },\n },\"active\":_vm.isMe && _vm.$route.meta.section === 'finances'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"FINANCES\"}})],1)],1),_c('prd-nav-category',{attrs:{\"title\":\"Team\",\"variant\":\"warning\",\"icon\":\"team\",\"open\":_vm.isTeam,\"name\":\"team\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"TEAM\"},slot:\"title\"}),_c('prd-nav-link',{attrs:{\"icon\":\"directory\",\"label\":\".directory\",\"to\":{\n name: 'team-directory',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n teamId: _vm.$root.teamHelper.currentTeam.id,\n teamKey: _vm.$root.teamHelper.currentTeam.key,\n tab: 'groups',\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isTeam && _vm.$route.meta.section == 'directory'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"DIRECTORY\"}})],1),_c('prd-nav-link',{attrs:{\"icon\":\"finance\",\"label\":\".finances\",\"to\":{\n name: 'team-finances',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n teamId: _vm.$root.teamHelper.currentTeam.id,\n teamKey: _vm.$root.teamHelper.currentTeam.key,\n tab: 'group-overview',\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isTeam && _vm.$route.meta.section == 'finances'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"FINANCES\"}})],1),_c('prd-nav-link',{attrs:{\"icon\":\"insights\",\"label\":\".analytics\",\"to\":{\n name: 'team-insights',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n teamId: _vm.$root.teamHelper.currentTeam.id,\n teamKey: _vm.$root.teamHelper.currentTeam.key,\n tab: 'group-results',\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isTeam && _vm.$route.meta.section == 'insights'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"ANALYTICS\"}})],1)],1),_c('prd-nav-category',{attrs:{\"title\":\"Ecosystem\",\"variant\":\"success\",\"icon\":\"ecosystem\",\"open\":_vm.isEco,\"name\":\"ecosystem\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"ECOLOGY\"},slot:\"title\"}),_c('prd-nav-link',{attrs:{\"icon\":\"overview\",\"label\":\".overview\",\"to\":{\n name: 'ecosystem-overview',\n params: { ecosystem: _vm.$root.ecosystemHelper.ecosystemParam, period: _vm.$store.state.period._selectedPeriod },\n },\"active\":_vm.isEco && _vm.$route.meta.section == 'overview'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"OVERVIEW\"}})],1),_c('prd-nav-link',{attrs:{\"icon\":\"directory\",\"label\":\".directory\",\"to\":{\n name: 'ecosystem-directory',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n period: _vm.$store.state.period._selectedPeriod,\n tab: 'groups',\n },\n },\"active\":_vm.isEco && _vm.$route.meta.section == 'directory'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"DIRECTORY\"}})],1),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('prd-nav-link',{attrs:{\"icon\":\"finance\",\"label\":\".finances\",\"to\":{\n name: 'ecosystem-finances',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isEco && _vm.$route.meta.section == 'finances'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"FINANCES\"}})],1):_vm._e(),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('prd-nav-link',{attrs:{\"label\":\".settings\",\"icon\":\"settings\",\"to\":{\n name: 'ecosystem-settings',\n params: {\n tab: 'ledger-accounts',\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isEco && _vm.$route.meta.section == 'settings'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"SETTINGS\"}})],1):_vm._e(),_c('prd-nav-link',{attrs:{\"label\":\".insights\",\"icon\":\"insights\",\"to\":{\n name: 'ecosystem-insights',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isEco && _vm.$route.meta.section == 'insights'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"INSIGHTS\"}})],1),_c('prd-nav-link',{attrs:{\"label\":\".cells\",\"icon\":\"share-2\",\"to\":{\n name: 'ecosystem-cells',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isEco && _vm.$route.meta.section == 'cells'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"CELLS\"}})],1),(_vm.$root.roleHelper.isSiteAdmin() || _vm.$root.roleHelper.isFinanceEmployee())?_c('prd-nav-link',{attrs:{\"label\":\".subscriptions\",\"icon\":\"rotate-cw\",\"to\":{\n name: 'ecosystem-subscription',\n params: {\n ecosystemId: _vm.$root.ecosystemHelper.currentEcosystem.id,\n ecosystemKey: _vm.$root.ecosystemHelper.currentEcosystem.key,\n period: _vm.$store.state.period._selectedPeriod,\n },\n },\"active\":_vm.isEco && _vm.$route.meta.section == 'subscription'}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"SUBSCRIPTION\"}})],1):_vm._e()],1),_c('prd-nav-category',{attrs:{\"title\":\"Settings\",\"variant\":\"dark\",\"icon\":\"settings\",\"open\":_vm.isSettings,\"name\":\"settings\"}},[_c('prd-translate-text',{attrs:{\"slot\":\"title\",\"translate-key\":\"SETTINGS\"},slot:\"title\"}),(_vm.$root.roleHelper.isSiteAdmin())?_c('prd-nav-link',{attrs:{\"icon\":\"settings\",\"label\":\".language\",\"to\":{ name: 'settings-translate' }}},[_c('prd-translate-text',{attrs:{\"inline\":true,\"translate-key\":\"SETTINGS_LANGUAGE\"}})],1):_vm._e()],1),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn btn-sm btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.showVersionModal}},[_c('span',{staticClass:\"icon-info\"})])]),_c('b-modal',{ref:\"versionNotesModal\",attrs:{\"size\":\"lg\",\"title\":'Version ' + _vm.$env().version}},[_c('release-notes'),_c('span',{attrs:{\"slot\":\"modal-ok\"},slot:\"modal-ok\"},[_vm._v(\" close \")])],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-12\"},[_c('div',{staticClass:\"wrapper\"},[_c('h4',{staticClass:\"ml-3\"},[_vm._v(\"Latest changes\")]),_c('ul',{staticClass:\"timeline\"},[_c('li',{staticClass:\"future\"},[_c('strong',[_vm._v(\"Upcoming features\")]),_c('strong',{staticClass:\"float-right\",attrs:{\"href\":\"#\"}},[_vm._v(\"Coming soon\")]),_c('p',{staticClass:\"mt-2\"},[_vm._v(\" Even more automation so you can sit, relax and monitor with less clicks. \")])]),_c('li',[_c('strong',[_vm._v(\"Recurring transfers\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"7 December, 2020\")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Implemented recurring transfers: more automation = more relaxing\")]),_c('li',[_vm._v(\"More detailed and correct group finance statitics\")]),_c('li',[_vm._v(\"Some minor improvements and bug fixes\")])])]),_c('li',[_c('strong',[_vm._v(\"New Bright Identity\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"26 October, 2020\")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Implemented new bright identiy for Bright Ecology\")]),_c('li',[_vm._v(\"Fixed several minor bugs\")])])]),_c('li',[_c('strong',[_vm._v(\"Ecosystem\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"23 September, 2020\")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Redesign of team-switcher and breadcrumb and many more small items\")]),_c('li',[_vm._v(\"Add preferences to set primary team and ecosystem\")]),_c('li',[_vm._v(\"Renamed ecology to ecosystem\")]),_c('li',[_vm._v(\"New add member flow for inviting or adding members to your team\")]),_c('li',[_vm._v(\"Possibility to create a new team or edit some properties of an excisting team\")]),_c('li',[_vm._v(\"Energy dedication is now editable on team level, so it always needs to add up to 100%\")]),_c('li',[_vm._v(\"Translate-module\")])])]),_c('li',[_c('strong',[_vm._v(\"Transfer requests\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"24 Juno, 2020\")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Make a tansfer request; ask a group in your or from another team to send you a tranfers\")]),_c('li',[_vm._v(\"Add analytics section to ecosystem overview\")]),_c('li',[_vm._v(\"Decoupling finance and directory related functions\")]),_c('li',[_vm._v(\"Add a 'docs' section to directory groups\")]),_c('li',[_vm._v(\"Set your finance group type, in the future this will cause different functionalities for specific group types\")])])]),_c('li',[_c('strong',[_vm._v(\"Amortization\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"19 May, 2020\")]),_c('p',{staticClass:\"mt-2\"},[_vm._v(\" Now it's possible to amortize income or an expense periodically. Attributions are coupled to periods, so changing them doesn't mess up totals of earlier periods. \")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Add a copy functionality for importing invocies\")]),_c('li',[_vm._v(\"Add periods to attributions\")]),_c('li',[_vm._v(\"Add a possibility to amortize an expense or income\")]),_c('li',[_vm._v(\"Add a ecosystem directory page to see all groups or all members in a grid or map-view\")]),_c('li',[_vm._v(\"Keep selected analytics periods the same when switching between analytics pages\")]),_c('li',[_vm._v(\"Add group aliases for financial matching purposes\")])])]),_c('li',[_c('strong',[_vm._v(\"How can i reach you? \")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"16 April, 2020\")]),_c('p',{staticClass:\"mt-2\"},[_vm._v(\" Well now there's the possibility to change your communication channels and other personal info. Also we added analytics for cumulative results, some bug fixes and a redesign of the grid-filter with the possibility to search on anything in those grids. \")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Implemented the profile page, you will find the link to your profile at the litte arrow behind your name.\")]),_c('li',[_vm._v(\"Added team analytics section for Finance Employees and Site Admins\")]),_c('li',[_vm._v(\"Added group analytics for Group leads, Finance Employees and Site Admins\")]),_c('li',[_vm._v(\" Redesigned topbar of most invoice-grids. You now also have the possibility to search for any property of an invoice, even to whom it's distributed. \")]),_c('li',[_vm._v(\"Fixed groupmembership update bug\")])])]),_c('li',[_c('strong',[_vm._v(\"Group lead now also can edit energy dedication of his/her group members.\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"26 March, 2020\")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Group lead (and site admin) can edit energy dedication of his/her group members\")]),_c('li',[_vm._v(\"Downgrade an account so it cannot login anymore, but functionally still exists as an entity in Bright\")]),_c('li',[_vm._v(\"Export all team members into an excel\")]),_c('li',[_vm._v(\"Add Group to calculated revenue table\")])])]),_c('li',[_c('strong',[_vm._v(\"Group lead coupled to periods\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"17 March, 2020\")]),_c('p',{staticClass:\"mt-2\"},[_vm._v(\" In this release we smashed a couple of known issues, concerning incorrect totals and other small bug fixes. \")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Transfer group lead from person to person\")]),_c('li',[_vm._v(\"Add current month to the period selector so you can do work in advance\")])])]),_c('li',[_c('strong',[_vm._v(\"Team user management & compensations\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"9 January, 2020\")]),_c('p',{staticClass:\"mt-2\"},[_vm._v(\" Energy dedication will become more important after this release. It's now possible to compensate your group members for the costs on the base of energy dedication. \")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Compensate group members for costs in one-click\")]),_c('li',[_vm._v(\"Remove inactive members (as group lead or site admin) from group or team\")]),_c('li',[_vm._v(\"Leave a team\")])])]),_c('li',[_c('strong',[_vm._v(\"Ecosystem overview & External transfers\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"28 September, 2019\")]),_c('p',{staticClass:\"mt-2\"},[_vm._v(\" It isn't needed anymore to create an invoice for transfer funds between teams. Now you can create a transfer between groups of different teams. \")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Transfer between multiple teams\")]),_c('li',[_vm._v(\"For admins and financial roles there is a financial overview of the whole ecosystem\")])])]),_c('li',[_c('strong',[_vm._v(\"Period closing & Transfer undistributed invoices to next period\")]),_c('strong',{staticClass:\"float-right\"},[_vm._v(\"17 Juni,2019\")]),_c('p',{staticClass:\"mt-2\"},[_vm._v(\" It's possible to close periods and no more activities are allowed to do in that period. Undistributed invoices will be transferred to the next period. \")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Close a period\")]),_c('li',[_vm._v(\"Undistributed invocies will come back in the new period\")])])]),_c('li',[_c('strong',{attrs:{\"href\":\"#\"}},[_vm._v(\"Release v1.0\")]),_c('strong',{staticClass:\"float-right\",attrs:{\"href\":\"#\"}},[_vm._v(\"10 March, 2019\")]),_c('p',{staticClass:\"mt-2\"},[_vm._v(\"Here it is! Version 1, congratz all.\")]),_c('p',{staticClass:\"mt-2 mb-0\"},[_vm._v(\"New features:\")]),_c('ul',[_c('li',[_vm._v(\"Import invoices\")]),_c('li',[_vm._v(\"Distribute invoices to groups or persons\")]),_c('li',[_vm._v(\"See your personal finance\")]),_c('li',[_vm._v(\"Add attributions on team and group level\")]),_c('li',[_vm._v(\"Import new members\")])])]),_c('li',[_c('strong',[_vm._v(\"Start of developing Bright\")]),_c('strong',{staticClass:\"float-right\",attrs:{\"href\":\"#\"}},[_vm._v(\"1 September, 2018\")])])])])])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./release-notes.vue?vue&type=template&id=2c931618&\"\nvar script = {}\nimport style0 from \"./release-notes.vue?vue&type=style&index=0&id=2c931618&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { Component, Watch } from 'vue-property-decorator';\r\nimport { navigationHelper } from '@/main';\r\nimport { Person } from '../../models/Person';\r\nimport { BModal } from 'bootstrap-vue';\r\nimport ReleaseNotes from '../../components/release-notes/release-notes.vue';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\n@Component({\r\n components: {\r\n ReleaseNotes,\r\n },\r\n})\r\nexport default class NavMenuComponent extends Vue {\r\n public isMe: boolean = false;\r\n public isTeam: boolean = false;\r\n public isEco: boolean = false;\r\n public profile: Person;\r\n public isSettings: boolean = false;\r\n public show: boolean = false;\r\n\r\n public $refs!: {\r\n versionNotesModal: BModal;\r\n };\r\n\r\n @Watch('$route', { immediate: true, deep: true })\r\n public onRouteChanged() {\r\n this.setScope();\r\n }\r\n\r\n public showVersionModal() {\r\n this.$refs.versionNotesModal.show();\r\n }\r\n\r\n public setScope(): void {\r\n this.isMe = this.$route.path.indexOf('/me/') > -1 || this.$route.path === '/';\r\n this.isTeam = this.$route.path.indexOf('/team/') > -1;\r\n this.isEco = this.$route.meta.scope === 'ecosystem';\r\n this.isSettings = this.$route.meta.scope === 'settings';\r\n }\r\n\r\n public toggleSubMenu() {\r\n navigationHelper.toggleNavigation();\r\n }\r\n\r\n public showMainNav() {\r\n return profileModule.profileLoaded && periodModule.periods.length > 0;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./navmenu.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./navmenu.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./navmenu.vue?vue&type=template&id=14383391&\"\nimport script from \"./navmenu.ts?vue&type=script&lang=js&\"\nexport * from \"./navmenu.ts?vue&type=script&lang=js&\"\nimport style0 from \"./navmenu.vue?vue&type=style&index=0&id=14383391&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Component } from 'vue-property-decorator';\r\nimport NavMenuComponent from '@/components/navmenu/navmenu.vue';\r\nimport { loginHelper, teamHelper, meService, $router, ecosystemHelper } from './main';\r\nimport { Person } from './models/Person';\r\nimport Team from './models/Team';\r\nimport to from 'await-to-js';\r\nimport PageRender from './models/PageRender';\r\nimport { translateModule } from './store/modules/translate';\r\nimport { profileModule } from './store/modules/profile';\r\nimport { periodModule } from './store/modules/period';\r\n\r\n@Component({\r\n components: {\r\n MenuComponent: NavMenuComponent,\r\n },\r\n})\r\nexport default class AppComponent extends PageRender {\r\n public isLoading: boolean = true;\r\n public teams: Team[] = [];\r\n public user: Person = null;\r\n\r\n public async beforeMount() {\r\n await profileModule.init();\r\n await this.initApp();\r\n this.isLoading = false;\r\n }\r\n\r\n public showContent() {\r\n return profileModule.profileLoaded; // && loginHelper.profileLoaded() && periodFilterHelper.periods.length > 0;\r\n }\r\n\r\n public showTopBar() {\r\n return profileModule.profileLoaded; // loginService.user !== null || typeof loginService.user !== 'undefined'; // && loginHelper.profileLoaded();\r\n }\r\n\r\n public showNav() {\r\n return profileModule.profileLoaded; // loginService.user !== null || typeof loginService.user !== 'undefined'; // && loginHelper.profileLoaded() && periodFilterHelper.periods.length > 0;\r\n }\r\n\r\n public get loggedIn() {\r\n return profileModule.isLoggedIn;\r\n }\r\n\r\n public get lang() {\r\n return translateModule.activeLanguage;\r\n }\r\n\r\n public get loadingLanguage() {\r\n return translateModule.isLoading;\r\n }\r\n\r\n private async initApp() {\r\n translateModule.detectLanguage();\r\n await translateModule.fetch();\r\n\r\n if (profileModule.isLoggedIn) {\r\n const [err, response] = await to(meService.profile());\r\n if (err) {\r\n await $router.push({ name: 'login' });\r\n this.isLoading = false;\r\n return loginHelper.logOut();\r\n }\r\n profileModule.setBrightProfile(response);\r\n\r\n if (this.$appInsights) {\r\n this.$appInsights.trackEvent({ name: 'user-login-existing-token' });\r\n }\r\n\r\n await ecosystemHelper.setup();\r\n await teamHelper.setup();\r\n await periodModule.init();\r\n }\r\n }\r\n}\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./App.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./App.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=f603d900&\"\nimport script from \"./App.ts?vue&type=script&lang=js&\"\nexport * from \"./App.ts?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=f603d900&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\n\r\n@Component\r\nexport default class BaseEcosystem extends Vue {}\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./Base.ts?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./Base.ts?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Base.vue?vue&type=template&id=ee5a43fc&\"\nimport script from \"./Base.ts?vue&type=script&lang=js&\"\nexport * from \"./Base.ts?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import VueRouter, { Route } from 'vue-router';\r\nimport { navigationHelper } from '@/main';\r\nimport BaseEcosystem from '@/pages/Base.vue';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport Vue from 'vue';\r\n\r\nVue.use(VueRouter);\r\n\r\nconst routes = [\r\n {\r\n name: 'login',\r\n path: '/login',\r\n component: () => import(/* webpackChunkName: \"login\" */ '../pages/account/login/login.vue'),\r\n meta: { title: 'Login' },\r\n },\r\n {\r\n name: 'home',\r\n path: '/',\r\n component: () => import(/* webpackChunkName: \"home\" */ '../pages/home/home.vue'),\r\n meta: { title: 'Loading..' },\r\n },\r\n {\r\n name: 'ecosystem-base',\r\n path: '/:ecosystemId(\\\\d+)-:ecosystemKey/',\r\n component: BaseEcosystem,\r\n children: [\r\n {\r\n name: 'ecosystem-settings',\r\n path: 'settings/:period/:tab?',\r\n component: require('@/pages/ecosystem/settings/settings.vue').default,\r\n meta: {\r\n title: 'Ecosystem',\r\n scope: 'ecosystem',\r\n section: 'settings',\r\n breadcrumb: {\r\n text: 'SETTINGS',\r\n items: ['ecosystem-overview', 'ecosystem-directory', 'ecosystem-finances', 'ecosystem-graph'],\r\n },\r\n },\r\n },\r\n {\r\n name: 'ecosystem-insights',\r\n path: 'insights/:period/:view?',\r\n component: require('@/pages/ecosystem/insights.vue').default,\r\n meta: {\r\n title: 'Ecosystem',\r\n scope: 'ecosystem',\r\n section: 'insights',\r\n breadcrumb: {\r\n text: 'INSIGHTS',\r\n items: ['ecosystem-graph', 'ecosystem-overview', 'ecosystem-directory', 'ecosystem-finances', 'ecosystem-settings'],\r\n },\r\n },\r\n },\r\n {\r\n name: 'ecosystem-cells',\r\n path: 'cells/:period/:view?',\r\n component: require('@/modules/cells/views/cells.vue').default,\r\n meta: {\r\n title: 'Ecosystem',\r\n scope: 'ecosystem',\r\n section: 'cells',\r\n breadcrumb: {\r\n text: 'CELLS',\r\n items: ['ecosystem-graph', 'ecosystem-overview', 'ecosystem-directory', 'ecosystem-finances', 'ecosystem-settings'],\r\n },\r\n },\r\n },\r\n {\r\n name: 'ecosystem-subscription',\r\n path: 'subscription/:period/',\r\n component: require('@/pages/ecosystem/subscription/subscription.vue').default,\r\n meta: {\r\n title: 'Ecosystem',\r\n scope: 'ecosystem',\r\n section: 'subscription',\r\n breadcrumb: {\r\n text: 'SUBSCRIPTION',\r\n items: ['ecosystem-graph', 'ecosystem-overview', 'ecosystem-directory', 'ecosystem-finances', 'ecosystem-settings'],\r\n },\r\n },\r\n },\r\n {\r\n name: 'ecosystem-graph',\r\n path: 'graph/:period/:teamId?',\r\n component: require('@/pages/ecosystem/svg-graph.vue').default,\r\n meta: {\r\n title: 'Ecosystem',\r\n scope: 'ecosystem',\r\n section: 'graph',\r\n breadcrumb: {\r\n text: 'GRAPH',\r\n items: ['ecosystem-overview', 'ecosystem-directory', 'ecosystem-finances', 'ecosystem-settings'],\r\n },\r\n },\r\n },\r\n {\r\n name: 'ecosystem-overview',\r\n path: 'overview/:period/',\r\n component: require('@/pages/ecosystem/overview.vue').default,\r\n meta: {\r\n title: 'Ecosystem',\r\n scope: 'ecosystem',\r\n section: 'overview',\r\n breadcrumb: {\r\n text: 'OVERVIEW',\r\n items: ['ecosystem-directory', 'ecosystem-finances', 'ecosystem-graph', 'ecosystem-settings'],\r\n },\r\n },\r\n children: [\r\n {\r\n name: 'ecosystem-overview-team',\r\n path: ':teamId(\\\\d+)?-:teamKey?',\r\n component: require('@/pages/ecosystem/overview.vue').default,\r\n meta: { title: 'Ecosystem', scope: 'ecosystem', section: 'overview' },\r\n children: [\r\n {\r\n name: 'ecosystem-overview-group',\r\n path: ':groupId(\\\\d+)-:groupKey?',\r\n component: require('@/pages/ecosystem/overview.vue').default,\r\n meta: { title: 'Ecosystem', scope: 'ecosystem', section: 'overview' },\r\n children: [],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n name: 'ecosystem-ceate-team',\r\n path: 'create-team/:period/',\r\n component: require('@/pages/ecosystem/create-team.vue').default,\r\n meta: { title: 'Ecosystem', scope: 'ecosystem', section: 'create-team' },\r\n },\r\n {\r\n name: 'ecosystem-directory',\r\n path: 'directory/:period/:tab?',\r\n component: require('@/pages/ecosystem/directory/directory.vue').default,\r\n meta: {\r\n title: 'Ecosystem',\r\n scope: 'ecosystem',\r\n section: 'directory',\r\n breadcrumb: {\r\n text: 'DIRECTORY',\r\n items: ['ecosystem-overview', 'ecosystem-finances', 'ecosystem-graph', 'ecosystem-settings'],\r\n },\r\n },\r\n },\r\n {\r\n name: 'ecosystem-finances',\r\n path: 'finances/:period',\r\n component: require('@/pages/ecosystem/finances.vue').default,\r\n meta: {\r\n title: 'Ecosystem',\r\n scope: 'ecosystem',\r\n section: 'finances',\r\n breadcrumb: {\r\n text: 'FINANCES',\r\n items: ['ecosystem-overview', 'ecosystem-finances', 'ecosystem-directory', 'ecosystem-graph', 'ecosystem-settings'],\r\n },\r\n },\r\n },\r\n {\r\n name: 'me',\r\n path: ':teamId(\\\\d+)-:teamKey/me/:period',\r\n component: require('@/pages/dashboard/me.vue').default,\r\n },\r\n {\r\n name: 'me-directory',\r\n // path: '/:ecosystem((\\\\d+)\\\\-([\\\\w\\\\-]+))/:team((\\\\d+)\\\\-([\\\\w\\\\-]+))/me/directory/:tab/:period',\r\n path: ':teamId(\\\\d+)-:teamKey/me/directory/:tab/:period',\r\n component: () => import(/* webpackChunkName: \"me\" */ '../pages/me/directory/directory.vue'),\r\n meta: { title: 'Me - Directory', section: 'directory', breadcrumb: { text: 'DIRECTORY', items: ['me-finances'] } },\r\n },\r\n {\r\n name: 'me-finances',\r\n path: ':teamId(\\\\d+)-:teamKey/me/finances/:tab/:period',\r\n component: () => import(/* webpackChunkName: \"me\" */ '../pages/me/finance/finance.vue'),\r\n meta: { title: 'Me - Finance', section: 'finances', breadcrumb: { text: 'FINANCES', items: ['me-directory'] } },\r\n },\r\n {\r\n name: 'me-insights',\r\n path: ':teamId(\\\\d+)-:teamKey/me/insights/:period',\r\n component: () => import(/* webpackChunkName: \"me\" */ '../pages/me/insights/insights.vue'),\r\n meta: { title: 'Me - Insights' },\r\n },\r\n {\r\n name: 'me-profile',\r\n path: ':teamId(\\\\d+)-:teamKey/me/profile/:id',\r\n component: require('@/pages/account/profile/profile.vue').default,\r\n meta: { title: 'Me - Profile' },\r\n },\r\n {\r\n name: 'team-finances',\r\n path: ':teamId(\\\\d+)-:teamKey/team/finances/:tab/:period',\r\n component: require('@/pages/teams/finance/finance.vue').default,\r\n meta: {\r\n title: 'Team - Finance',\r\n section: 'finances',\r\n breadcrumb: { text: 'FINANCES', items: ['team-directory', 'team-insights'] },\r\n },\r\n },\r\n {\r\n name: 'team-directory-add-group',\r\n path: ':teamId(\\\\d+)-:teamKey/team/directory/groups/:period/add',\r\n component: require('@/pages/teams/directory/add-group.vue').default,\r\n meta: { title: 'Team - Directory - Add group' },\r\n },\r\n {\r\n name: 'team-directory-add-member',\r\n path: ':teamId(\\\\d+)-:teamKey/team/directory/members/:period/add',\r\n component: require('@/pages/teams/directory/add-member.vue').default,\r\n meta: { title: 'Team - Directory - Add member' },\r\n },\r\n {\r\n name: 'team-directory',\r\n path: ':teamId(\\\\d+)-:teamKey/team/directory/:tab/:period',\r\n component: require('@/pages/teams/directory/directory.vue').default,\r\n meta: {\r\n title: 'Team - Directory',\r\n section: 'directory',\r\n breadcrumb: { text: 'DIRECTORY', items: ['team-finances', 'team-insights'] },\r\n },\r\n },\r\n {\r\n name: 'team-directory-group',\r\n path: ':teamId(\\\\d+)-:teamKey/team/directory/:groupId(\\\\d+)?-:groupKey?/:tab/:period',\r\n component: require('@/pages/groups/details/details.vue').default,\r\n meta: {\r\n title: 'Team - Directory',\r\n section: 'directory',\r\n scope: 'team',\r\n breadcrumb: { text: 'DIRECTORY', items: ['team-finances-group'], split: 'team-directory' },\r\n },\r\n },\r\n {\r\n name: 'team-finances-group',\r\n path: ':teamId(\\\\d+)-:teamKey/team/finances/:groupId(\\\\d+)?-:groupKey?/:tab/:period',\r\n component: require('@/pages/groups/details/details.vue').default,\r\n meta: {\r\n section: 'finances',\r\n scope: 'team',\r\n title: 'Team - Finance',\r\n breadcrumb: { text: 'FINANCES', items: ['team-directory-group'], split: 'team-finances' },\r\n },\r\n },\r\n {\r\n name: 'team-insights',\r\n path: ':teamId(\\\\d+)-:teamKey/team/insights/:tab/:period',\r\n component: require('@/pages/teams/insights/insights.vue').default,\r\n meta: {\r\n title: 'Team - Insights',\r\n section: 'insights',\r\n breadcrumb: { text: 'ANALYTICS', items: ['team-directory', 'team-finances'] },\r\n },\r\n },\r\n // {\r\n // name: 'team',\r\n // path: '/:team/team/:key/:period',\r\n // component: require('@/pages/teams/details/details.vue').default,\r\n // meta: { title: 'Team' },\r\n // },\r\n {\r\n name: 'invite',\r\n path: ':teamId(\\\\d+)-:teamKey/team/invite/:key/:period',\r\n component: require('@/pages/account/invited/invited.vue').default,\r\n meta: { title: 'Team - Invite' },\r\n },\r\n {\r\n name: 'joinrequest',\r\n path: ':teamId(\\\\d+)-:teamKey/team/joinrequest/:id',\r\n component: require('@/pages/teams/joinrequest.vue').default,\r\n meta: { title: 'Team - Join request' },\r\n },\r\n ],\r\n },\r\n {\r\n name: 'app-error',\r\n path: '/error',\r\n component: require('@/pages/error/error.vue').default,\r\n meta: { title: 'Error Page' },\r\n },\r\n {\r\n name: 'not-found',\r\n path: '*',\r\n component: require('@/pages/notfound/notfound.vue').default,\r\n meta: { title: 'Woops!?' },\r\n },\r\n {\r\n name: 'settings-base',\r\n path: '/settings',\r\n redirect: '/settings/translate',\r\n },\r\n {\r\n name: 'settings-translate',\r\n path: '/settings/translate',\r\n component: require('@/pages/settings/translate.vue').default,\r\n meta: { title: 'Settings', scope: 'settings' },\r\n },\r\n];\r\n// tslint:disable-next-line:no-unused-variable\r\nconst beforeRoute = async (to: Route, from: Route, next: any) => {\r\n const anonymousRoutes = ['login', 'app-error', 'not-found', 'invite'];\r\n await profileModule.init();\r\n const loggedIn = profileModule.isLoggedIn;\r\n const matchedRoute = to.matched.length > 0 ? to.matched[to.matched.length - 1] : to;\r\n const matchedRouteName = matchedRoute && matchedRoute.name ? matchedRoute.name : '';\r\n\r\n if (anonymousRoutes.indexOf(matchedRouteName) > -1 || loggedIn) {\r\n return next();\r\n }\r\n\r\n next(`/login?redirectUrl=${to.fullPath}`);\r\n};\r\n\r\nconst onRouteFinished = (to: Route) => {\r\n const meta = to.meta || {};\r\n const params = to.params || {};\r\n\r\n let title = 'Bright Ecology';\r\n\r\n if (params.team) {\r\n title += ` - ${params.team}`;\r\n }\r\n\r\n if (meta.title) {\r\n title += ` - ${meta.title}`;\r\n }\r\n\r\n Vue.nextTick(() => {\r\n document.title = title;\r\n navigationHelper.hideNavigation();\r\n navigationHelper.loadRouteMeta(meta, params);\r\n });\r\n};\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n routes,\r\n});\r\n\r\nrouter.beforeEach(beforeRoute);\r\nrouter.afterEach(onRouteFinished);\r\n\r\nexport default router;\r\n","import Vue from 'vue';\r\nimport { translateModule } from '@/store/modules/translate';\r\n\r\nconst getTranslateValue = (translateKey, translateParams = null) => {\r\n if (translateKey.indexOf('.') > -1) {\r\n const [group, key] = translateKey.split('.');\r\n return translateModule.value(key, group, translateParams);\r\n }\r\n return translateModule.value(translateKey, null, translateParams);\r\n};\r\n\r\nconst translateDirective = {\r\n setAttribute(el: HTMLElement, binding: any) {\r\n const attribute = binding.arg ? binding.arg : 'innerHTML';\r\n const key = typeof binding.value === 'string' ? binding.value : binding.value.key;\r\n const params = binding.value && binding.value.params ? binding.value.params : {};\r\n el[attribute] = getTranslateValue(key, params);\r\n },\r\n setPlaceholder(el: HTMLInputElement, translateKey) {\r\n el.placeholder = getTranslateValue(translateKey);\r\n },\r\n};\r\n\r\nVue.directive('translate', {\r\n bind(el: HTMLElement, binding) {\r\n translateDirective.setAttribute(el, binding);\r\n },\r\n unbind(el, binding) {\r\n const attribute = binding.arg ? binding.arg : 'innerHTML';\r\n el[attribute] = '';\r\n },\r\n});\r\n\r\nVue.directive('translate-placeholder', {\r\n bind(el: HTMLInputElement, binding) {\r\n translateDirective.setAttribute(el, binding);\r\n },\r\n});\r\n\r\nVue.filter('translate', (translateKey: string) => {\r\n return getTranslateValue(translateKey);\r\n});\r\n","import Vue from 'vue';\r\nimport { Grid, GridToolbar, GridNoRecords } from '@progress/kendo-vue-grid';\r\nimport { Popup } from '@progress/kendo-vue-popup';\r\nimport { DropDownList } from '@progress/kendo-vue-dropdowns';\r\nimport DatePicker from 'vue2-datepicker';\r\nimport { tree } from 'vued3tree';\r\n\r\nimport vSelect from 'vue-regex-input';\r\nVue.component('vue-regex-input', vSelect);\r\n\r\nVue.component('date-picker', DatePicker);\r\nVue.component('tree-chart', tree);\r\nVue.component('prd-local-map', require('@/components/map/Map.vue').default);\r\nVue.component('svg-graph', require('@/components/graph/svg-graph.vue').default);\r\n\r\n// Components\r\nVue.component('grid', Grid);\r\nVue.component('prd-grid-wrapper', require('@/components/grid/grid-wrapper.vue').default);\r\nVue.component('grid-toolbar', GridToolbar);\r\nVue.component('grid-norecords', GridNoRecords);\r\n\r\nVue.component('kendo-popup', Popup);\r\nVue.component('kendo-dropdownlist', DropDownList);\r\n\r\nVue.component('navigation-bar', require('@/components/navigation/bar.vue').default);\r\nVue.component('navigation-breadcrumb', require('@/components/navigation/breadcrumb.vue').default);\r\nVue.component('navigation-profile', require('@/components/navigation/profile.vue').default);\r\nVue.component('navigation-team', require('@/components/navigation/team.vue').default);\r\nVue.component('spinner', require('@/components/spinner/spinner.vue').default);\r\n\r\nVue.component('grid-percentage', require('@/components/grid/grid-percentage.vue').default);\r\nVue.component('grid-popover-element', require('@/components/grid/grid-popover-element.vue').default);\r\nVue.component('grid-router-link', require('@/components/grid/grid-router-link.vue').default);\r\nVue.component('grid-actions', require('@/components/grid/grid-actions.vue').default);\r\nVue.component('grid-numeric-editor', require('@/components/grid/grid-numeric-editor.vue').default);\r\nVue.component('grid-amount-left-filter', require('@/components/grid/grid-amount-left-filter.vue').default);\r\nVue.component('grid-html-renderer', require('@/components/grid/grid-html-renderer.vue').default);\r\nVue.component('grid-period-range-filter', require('@/components/grid/grid-period-range-filter.vue').default);\r\nVue.component('grid-transfer-direction', require('@/components/grid/grid-transfer-direction.vue').default);\r\nVue.component('grid-relation-settings', require('@/components/grid/grid-relation-settings.vue').default);\r\n\r\nVue.component('grid-list', require('@/components/grid/grid-list.vue').default);\r\nVue.component('grid-label-value', require('@/components/grid/grid-label-value.vue').default);\r\n\r\nVue.component('number-formatter', require('@/components/formatting/number-formatter.vue').default);\r\nVue.component('distribution-tree-amount', require('@/components/distribution/distribution-tree-amount.vue').default);\r\n\r\nVue.component('member-name', require('@/components/member/member-name.vue').default);\r\nVue.component('member-name-native', require('@/components/member/member-name-native.vue').default);\r\nVue.component('members-component', require('@/components/member/members.vue').default);\r\nVue.component('memberships-component', require('@/components/member/memberships.vue').default);\r\nVue.component('register', require('@/components/account/register.vue').default);\r\nVue.component('period-filter', require('@/components/period filter/period-filter.vue').default);\r\n\r\nVue.component('me-directory-groups', require('@/pages/me/directory/components/groups.vue').default);\r\nVue.component('me-directory-members', require('@/pages/me/directory/components/members.vue').default);\r\n\r\nVue.component('team-directory-groups', require('@/pages/teams/directory/components/groups.vue').default);\r\nVue.component('team-directory-members', require('@/pages/teams/directory/components/members.vue').default);\r\nVue.component('team-directory-settings', require('@/pages/teams/directory/components/settings.vue').default);\r\n\r\nVue.component('group-directory-members', require('@/pages/groups/details/components/group-detail-members.vue').default);\r\nVue.component('group-directory-workspace', require('@/pages/groups/details/components/group-detail-workspace.vue').default);\r\nVue.component('group-finance-settings', require('@/pages/groups/details/components/group-detail-settings.vue').default);\r\nVue.component('group-directory-settings', require('@/pages/groups/details/components/group-detail-settings.vue').default);\r\nVue.component('group-finance-income', require('@/pages/groups/details/components/group-detail-income.vue').default);\r\nVue.component('group-finance-overview', require('@/pages/groups/details/components/group-detail-overview.vue').default);\r\nVue.component('group-finance-expense', require('@/pages/groups/details/components/group-detail-expense.vue').default);\r\nVue.component('group-finance-insights', require('@/pages/groups/details/components/group-detail-insights.vue').default);\r\nVue.component('group-finance-ambitions', require('@/pages/groups/details/components/group-detail-ambitions.vue').default);\r\nVue.component('group-finance-transfers', require('@/pages/groups/details/components/group-detail-transfers.vue').default);\r\n\r\nVue.component('team-finances-settings', require('@/pages/teams/finance/components/team-finance-settings.vue').default);\r\nVue.component('team-finances-group-overview', require('@/pages/teams/finance/components/team-finance-group-overview.vue').default);\r\nVue.component('team-finances-period', require('@/pages/teams/finance/components/team-finance-period.vue').default);\r\nVue.component('team-finances-member-overview', require('@/pages/teams/finance/components/team-finance-member-overview.vue').default);\r\nVue.component('team-finances-transfers', require('@/pages/teams/finance/components/team-finance-transfers.vue').default);\r\nVue.component('team-finances-invoices', require('@/pages/teams/finance/components/team-finance-invoices.vue').default);\r\nVue.component('team-finances-expenses', require('@/pages/teams/finance/components/team-finance-expenses.vue').default);\r\n\r\nVue.component('team-insights-member-results', require('@/pages/teams/insights/components/team-insights-member-results.vue').default);\r\nVue.component('team-insights-group-results', require('@/pages/teams/insights/components/team-insights-group-results.vue').default);\r\nVue.component('team-insights-payment-statusses', require('@/pages/teams/insights/components/team-insights-payment-statusses.vue').default);\r\n\r\nVue.component('ecosystem-directory-map', require('@/pages/ecosystem/directory/components/map.vue').default);\r\nVue.component('ecosystem-directory-people', require('@/pages/ecosystem/directory/components/people.vue').default);\r\nVue.component('ecosystem-directory-members', require('@/pages/ecosystem/directory/components/members.vue').default);\r\nVue.component('ecosystem-directory-groups', require('@/pages/ecosystem/directory/components/groups.vue').default);\r\nVue.component('ecosystem-directory-teams', require('@/pages/ecosystem/directory/components/teams.vue').default);\r\n\r\nVue.component('ecosystem-settings-ledger-accounts', require('@/pages/ecosystem/settings/components/ledger-accounts.vue').default);\r\nVue.component('ecosystem-settings-cross-legal-transactions', require('@/pages/ecosystem/settings/components/cross-legal-transactions.vue').default);\r\nVue.component('ecosystem-settings-relations', require('@/pages/ecosystem/settings/components/relations.vue').default);\r\nVue.component('ecosystem-settings-insight-views', require('@/pages/ecosystem/settings/components/insight-views.vue').default);\r\n\r\nVue.component('roles-settings', require('@/components/roles/roles-settings.vue').default);\r\n// Vue.component('release-notes' , require('@/components/release-notes/release-notes.vue').default);\r\n\r\nVue.component('amortize-modal', require('@/components/modals/amortize-modal.vue').default);\r\nVue.component('move-pl-modal', require('@/components/modals/move-pl-modal.vue').default);\r\nVue.component('move-to-account-modal', require('@/components/modals/move-to-account-modal.vue').default);\r\nVue.component('save-attributions-modal', require('@/components/modals/save-attributions-modal.vue').default);\r\nVue.component('import-modal', require('@/components/modals/import-modal.vue').default);\r\nVue.component('transfer-modal', require('@/components/modals/transfer-modal.vue').default);\r\nVue.component('transfer-request-modal', require('@/components/modals/transfer-request-modal.vue').default);\r\nVue.component('energy-dedication-modal', require('@/components/modals/energy-dedication-modal.vue').default);\r\nVue.component('ecosystem-switcher-modal', require('@/components/modals/ecosystem-switcher-modal.vue').default);\r\nVue.component('legal-entity-change-modal', require('@/components/modals/change-legal-entity-reference-modal.vue').default);\r\nVue.component('relation-settings-modal', require('@/components/modals/relation-settings-modal.vue').default);\r\nVue.component('create-ledger-account-modal', require('@/components/modals/create-ledger-account-modal.vue').default);\r\nVue.component('are-you-sure-modal', require('@/components/modals/are-you-sure-modal.vue').default);\r\nVue.component('generic-search', require('@/components/generic-search/generic-search.vue').default);\r\nVue.component('connectors', require('@/components/connectors/connectors.vue').default);\r\n\r\nVue.component('recurring-transfers-grid', require('@/components/transfer/recurring-transfers-grid.vue').default);\r\nVue.component(\r\n 'create-or-edit-template-side-action',\r\n require('@/components/side-actions/create-or-edit-template-action/create-or-edit-template-action.vue').default,\r\n);\r\n\r\nVue.component('create-or-edit-view-side-action', require('@/components/side-actions/views/create-or-edit-view-action.vue').default);\r\nVue.component('create-ecosystem-side-action', require('@/components/side-actions/ecosystem/create-ecosystem-action.vue').default);\r\n\r\n// Translate\r\nimport '@/components/translate/directive';\r\nVue.component('prd-translate-text', require('@/components/translate/text.vue').default);\r\nVue.component('prd-translate-text-inline', require('@/components/translate/text-inline.vue').default);\r\nVue.component('prd-translate-button', require('@/components/translate/button.vue').default);\r\n\r\n// notifications\r\nVue.component('bright-notifications', require('@/components/notification/notifications.vue').default);\r\n\r\n// Insights\r\nVue.component('ecosystem-finance-totals', require('@/components/insights/ecosystem-finance-totals.vue').default);\r\nVue.component('ecosystem-cash-totals', require('@/components/insights/ecosystem-cash-totals.vue').default);\r\nVue.component('ecosystem-fearless-totals', require('@/components/insights/ecosystem-fearless-totals.vue').default);\r\nVue.component('ecosystem-co2-totals', require('@/components/insights/ecosystem-co2-totals.vue').default);\r\n\r\nimport Multiselect from 'vue-multiselect';\r\nVue.component('multiselect', Multiselect);\r\n","export enum NetworkStatus {\r\n Unknown = 'Unknown',\r\n Offline = 'Offline',\r\n Online = 'Online',\r\n}\r\n","import axios, { AxiosRequestConfig, AxiosInstance } from 'axios';\r\nimport { loginService, ecosystemHelper } from '@/main';\r\nimport { NetworkStatus } from '../models/NetworkStatus';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\nexport class AxiosHelper {\r\n public axiosResponseInterceptor: number;\r\n private authAxiosInstance: AxiosInstance = {} as AxiosInstance;\r\n private publicAxiosInstance: AxiosInstance = {} as AxiosInstance;\r\n\r\n constructor(authConfig: AxiosRequestConfig, publicConfig: AxiosRequestConfig) {\r\n const self = this;\r\n\r\n this.authAxiosInstance = axios.create(authConfig);\r\n this.publicAxiosInstance = axios.create(publicConfig);\r\n\r\n this.authAxiosInstance.interceptors.request.use(\r\n async (config) => {\r\n if (!navigator.onLine) {\r\n return Promise.reject(NetworkStatus.Offline);\r\n }\r\n\r\n if (profileModule.isLoggedIn) {\r\n const user = profileModule.user;\r\n\r\n if (user && user.expired) {\r\n await loginService.refreshToken();\r\n }\r\n\r\n const jwt = user.access_token;\r\n self.setAuthHeder(jwt);\r\n config.headers.Authorization = `Bearer ${jwt}`;\r\n }\r\n\r\n if (typeof config.headers['x-period'] === 'undefined' && periodModule && periodModule.selectedPeriod && periodModule.setupIsDone) {\r\n config.headers['x-period'] = periodModule.selectedPeriod;\r\n }\r\n\r\n if (\r\n typeof config.headers['x-ecosystem'] === 'undefined' &&\r\n ecosystemHelper &&\r\n ecosystemHelper.currentEcosystem &&\r\n ecosystemHelper.setupIsDone\r\n ) {\r\n config.headers['x-ecosystem'] = ecosystemHelper.currentEcosystem.id;\r\n }\r\n return config;\r\n },\r\n (error) => {\r\n // Do something with request error\r\n console.error('Some error has occured with this request: ', error);\r\n return Promise.reject(error);\r\n },\r\n );\r\n }\r\n\r\n public getAuthAxiosInstance(): AxiosInstance {\r\n return this.authAxiosInstance;\r\n }\r\n\r\n public getPublicAxiosInstance(): AxiosInstance {\r\n return this.publicAxiosInstance;\r\n }\r\n\r\n public setAuthHeder(jwt: string): void {\r\n this.authAxiosInstance.defaults.headers.Authorization = 'Bearer ' + jwt;\r\n }\r\n\r\n public async setup() {\r\n const jwt = profileModule.access_token;\r\n if (profileModule.isLoggedIn) {\r\n this.setAuthHeder(jwt);\r\n }\r\n }\r\n}\r\n","import { LoginService } from '../services/loginService';\r\nimport { ecosystemHelper, meService } from '@/main';\r\nimport { profileModule } from '@/store/modules/profile';\r\n\r\nexport class LoginHelper {\r\n private loginService: LoginService;\r\n\r\n constructor(loginService: LoginService) {\r\n this.loginService = loginService;\r\n }\r\n\r\n public async logOut() {\r\n await this.loginService.logout();\r\n }\r\n\r\n public isLoggedIn() {\r\n return profileModule.isLoggedIn;\r\n }\r\n\r\n public getUser() {\r\n return profileModule.brightProfile;\r\n }\r\n\r\n public async reloadProfile() {\r\n return await meService.profile(ecosystemHelper.currentEcosystem.id);\r\n }\r\n}\r\n","import { AxiosInstance, AxiosPromise, AxiosRequestConfig } from 'axios';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport PageRender from '@/models/PageRender';\r\n\r\nexport abstract class BaseService extends PageRender {\r\n private authAxiosInstance: AxiosInstance;\r\n\r\n constructor(axiosHelper: AxiosHelper, auth: boolean = true) {\r\n super();\r\n this.authAxiosInstance = auth ? axiosHelper.getAuthAxiosInstance() : axiosHelper.getPublicAxiosInstance();\r\n }\r\n\r\n public get(url: string, parameters?: ReadonlyArray<[string, any]>, config?: AxiosRequestConfig): AxiosPromise {\r\n url = this.bindParameters(url, parameters);\r\n return this.authAxiosInstance.get(url, config);\r\n }\r\n\r\n public delete(url: string, parameters?: ReadonlyArray<[string, any]>, config?: AxiosRequestConfig): AxiosPromise {\r\n url = this.bindParameters(url, parameters);\r\n return this.authAxiosInstance.delete(url, config);\r\n }\r\n\r\n public head(url: string, parameters?: ReadonlyArray<[string, any]>, config?: AxiosRequestConfig): AxiosPromise {\r\n url = this.bindParameters(url, parameters);\r\n return this.authAxiosInstance.head(url, config);\r\n }\r\n\r\n public post(url: string, data?: any, parameters?: ReadonlyArray<[string, any]>, config?: AxiosRequestConfig): AxiosPromise {\r\n url = this.bindParameters(url, parameters);\r\n return this.authAxiosInstance.post(url, data, config);\r\n }\r\n\r\n public put(url: string, data?: any, parameters?: ReadonlyArray<[string, any]>, config?: AxiosRequestConfig): AxiosPromise {\r\n url = this.bindParameters(url, parameters);\r\n return this.authAxiosInstance.put(url, data, config);\r\n }\r\n\r\n public patch(url: string, data?: any, parameters?: ReadonlyArray<[string, any]>, config?: AxiosRequestConfig): AxiosPromise {\r\n url = this.bindParameters(url, parameters);\r\n return this.authAxiosInstance.patch(url, data, config);\r\n }\r\n\r\n private valueInvalid(value: any): boolean {\r\n return value === undefined || value == null;\r\n }\r\n\r\n private bindParameters(url: string, parameters?: ReadonlyArray<[string, any]>): string {\r\n const parametersMap = new Map(parameters);\r\n\r\n if (parametersMap === undefined || parametersMap == null) {\r\n return url;\r\n }\r\n\r\n const params = url.match(/:{1}(\\??([a-z|A-Z]+))/gm);\r\n if (!params || params.length === 0) {\r\n return url;\r\n }\r\n\r\n for (const p of params) {\r\n let key = p.slice(1);\r\n const isOptional = key.startsWith('?');\r\n\r\n if (isOptional) {\r\n key = key.slice(1);\r\n } else if (!parametersMap.has(key)) {\r\n throw new Error(`Required parameter with key ${key} is not in the parameters map.`);\r\n }\r\n\r\n const value = parametersMap.get(key);\r\n\r\n if (this.valueInvalid(value)) {\r\n if (isOptional) {\r\n url = url.replace(p, '');\r\n continue;\r\n } else {\r\n throw new Error(`Parameter with key ${key} is 'undefined' or 'null'.`);\r\n }\r\n }\r\n\r\n url = url.replace(p, value);\r\n }\r\n\r\n return url;\r\n }\r\n}\r\n","import Group from '../models/Group';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport Transfer from '../models/Transfer';\r\nimport { AxiosPromise } from 'axios';\r\nimport Vue from 'vue';\r\nimport { loginService } from '@/main';\r\nimport { Member } from '@/models/Member';\r\nimport { Person } from '@/models/Person';\r\nimport EnergyDedication from '@/models/EnergyDedication';\r\nimport to from 'await-to-js';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\nexport class MeService extends BaseService {\r\n private endpoint = `${Vue.$env().directoryEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper, true);\r\n }\r\n\r\n public async profile(ecosystemId?: number): Promise {\r\n const config = { headers: {} };\r\n config.headers['x-period'] = periodModule.selectedPeriod;\r\n\r\n if (ecosystemId) {\r\n config.headers['x-ecosystem'] = ecosystemId;\r\n }\r\n\r\n if (ecosystemId) {\r\n const [profileErr, profileResponse] = await to(this.get(`${this.endpoint}me/profile`, null, config));\r\n if (profileErr) {\r\n this.clearAndShowError('Failed to load profile', profileErr);\r\n await loginService.logout();\r\n await this.$router.push({ name: 'login' });\r\n return new Person();\r\n }\r\n\r\n return new Person(profileResponse.data);\r\n }\r\n\r\n const [err, response] = await to(this.get(`${this.endpoint}me/profile`, null, config));\r\n if (err) {\r\n this.clearAndShowError('Failed to load profile', err);\r\n return new Person();\r\n }\r\n\r\n return new Person(response.data);\r\n }\r\n\r\n public updatePreferences(primaryEcosystem: number, primaryTeam: number): AxiosPromise {\r\n const period = periodModule.selectedPeriod;\r\n return this.put(`${this.endpoint}me/preferences?period=:period`, { primaryEcosystem, primaryTeam }, [\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public disableAccount(emailAddress: string) {\r\n return this.put(`${this.endpoint}me/disable?emailAddress=:emailAddress`, null, [['emailAddress', emailAddress]]);\r\n }\r\n\r\n public getGroups(team: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n return this.get(`${this.endpoint}me/groups?teamId=:team`, [['team', team]], config);\r\n }\r\n\r\n public getMembers(teamId: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(`${this.endpoint}me/team-members?teamId=:teamId`, [['teamId', teamId]], config);\r\n }\r\n\r\n public getEnergyDedications(teamId: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(`${this.endpoint}me/energy-dedication?teamId=:teamId`, [['teamId', teamId]], config);\r\n }\r\n\r\n public getTransfers(teamId: number, memberId: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(\r\n `${this.endpoint}transfers?teamId=:teamId&personId=:?personId`,\r\n [['teamId', teamId], ['personId', memberId], ['period', period]],\r\n config,\r\n );\r\n }\r\n}\r\n","import Group from '../models/Group';\r\nimport { Member } from '../models/Member';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport { loginHelper } from '@/main';\r\n\r\nexport class GroupService extends BaseService {\r\n private groupEndpoint = `${Vue.$env().directoryEndpoint}` + 'groups';\r\n private teamEndpoint = `${Vue.$env().directoryEndpoint}` + 'teams';\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public createGroup(model: any, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.post(`${this.groupEndpoint}`, model, null, config);\r\n }\r\n\r\n public getGroups(teamId: number, period?: string) {\r\n if (!period) {\r\n return this.get(`${this.teamEndpoint}/:teamId/groups`, [['teamId', teamId]]);\r\n }\r\n\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(`${this.teamEndpoint}/:teamId/groups`, [['teamId', teamId]], config);\r\n }\r\n\r\n public getGroup(groupId: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(`${this.groupEndpoint}/:group`, [['group', groupId]], config);\r\n }\r\n\r\n public getMembers(group: number, teamId: number, period?: string) {\r\n if (!period) {\r\n return this.get(`${this.groupEndpoint}/:group/members?teamId=:teamId`, [['group', group], ['teamId', teamId]]);\r\n }\r\n\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(`${this.groupEndpoint}/:group/members`, [['group', group]], config);\r\n }\r\n\r\n public enroll(group: number, teamId: number, period: string) {\r\n return this.addMember(loginHelper.getUser().personId, group, teamId, period);\r\n }\r\n\r\n public unenroll(group: number, teamId: number, period: string) {\r\n return this.kickMember(group, loginHelper.getUser().personId, teamId, period);\r\n }\r\n\r\n public getEnergyDedication(teamId: number, group: number, period: string) {\r\n return this.get(`${this.groupEndpoint}/:group/energy-dedication?teamId=:teamId&period=:period`, [\r\n ['group', group],\r\n ['teamId', teamId],\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public updateEnergyDedication(teamId: number, group: number, energy: number, period: string) {\r\n return this.put(\r\n `${this.groupEndpoint}/:group/energy-dedication?teamId=:teamId&period=:period`,\r\n energy,\r\n [['group', group], ['teamId', teamId], ['period', period]],\r\n { headers: { 'Content-Type': 'application/json' } },\r\n );\r\n }\r\n\r\n public updateEnergyDedicationForMember(teamId: number, group: number, energy: number, period: string, memberId: number) {\r\n return this.put(\r\n `${this.groupEndpoint}/:group/members/:memberId/energy-dedication?teamId=:teamId&period=:period`,\r\n energy,\r\n [['group', group], ['teamId', teamId], ['period', period], ['memberId', memberId]],\r\n { headers: { 'Content-Type': 'application/json' } },\r\n );\r\n }\r\n\r\n public transferLeadership(teamId: number, group: number, model: any, period: string) {\r\n return this.post(`${this.groupEndpoint}/:group/leadership/transfer?teamId=:teamId&period=:period`, model, [\r\n ['group', group],\r\n ['teamId', teamId],\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public addMember(memberId: number, group: number, teamId: number, period: string) {\r\n return this.post(\r\n `${this.groupEndpoint}/:group/members?teamId=:teamId&period=:period`,\r\n [{ PersonId: memberId }],\r\n [['group', group], ['teamId', teamId], ['period', period]],\r\n );\r\n }\r\n\r\n public addMembers(memberIds: number[], group: number, teamId: number, period) {\r\n const list = memberIds.map((x) => {\r\n return { PersonId: x };\r\n });\r\n\r\n if (!period) {\r\n return this.post(`${this.groupEndpoint}/:group/members?teamId=:teamId`, list, [['group', group], ['teamId', teamId]]);\r\n }\r\n\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n return this.post(`${this.groupEndpoint}/:group/members?teamId=:teamId`, list, [['group', group], ['teamId', teamId]], config);\r\n }\r\n\r\n public deleteGroup(groupId: number, teamId: number, period: string) {\r\n return this.delete(`${this.groupEndpoint}/:group?teamId=:teamId&period=:period`, [\r\n ['group', groupId],\r\n ['teamId', teamId],\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public kickMember(group: number, memberId: number, teamId: number, period: string) {\r\n return this.delete(`${this.groupEndpoint}/:group/members/:memberId?teamId=:teamId&period=:period`, [\r\n ['group', group],\r\n ['teamId', teamId],\r\n ['period', period],\r\n ['memberId', memberId],\r\n ]);\r\n }\r\n}\r\n","import { AxiosPromise } from 'axios';\r\nimport Group from '../models/Group';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport { Person } from '../models/Person';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\nimport EnergyDedication from '@/models/EnergyDedication';\r\n\r\nexport class PersonService extends BaseService {\r\n private endpoint = `${Vue.$env().directoryEndpoint}persons`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public getPostModel(): AxiosPromise {\r\n return this.get(`${this.endpoint}/new`);\r\n }\r\n\r\n public createNewPerson(model: any) {\r\n return this.post(this.endpoint, model);\r\n }\r\n\r\n public async getPerson(id: number, period: string): Promise {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n const [err, response] = await to(this.get(`${this.endpoint}/:id`, [['id', id]], config));\r\n if (err) {\r\n this.showFailedResponse('Failed to load person');\r\n return new Person();\r\n }\r\n\r\n return new Person(response.data);\r\n }\r\n\r\n public async getPersonByEmailaddress(emailaddress: string, period: string, showError: boolean = true): Promise {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n const [err, response] = await to(this.get(`${this.endpoint}?searchText=:emailaddress`, [['emailaddress', emailaddress]], config));\r\n\r\n if (err) {\r\n if (showError) {\r\n this.showFailedResponse('Failed to load person');\r\n }\r\n return new Person();\r\n }\r\n\r\n return new Person(response.data);\r\n }\r\n\r\n public invitePerson(model: any, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.post(`${this.endpoint}/:personId/invite`, model, [['personId', model.personId]], config);\r\n }\r\n\r\n public downgrageAccount(personId: number): Promise {\r\n return this.post(`${this.endpoint}/:personId/disable`, null, [['personId', personId]]);\r\n }\r\n\r\n public async getEnergyDedication(personId: number, team: number, period: string) {\r\n const [err, response] = await to(\r\n this.get(`${this.endpoint}/:personId/energy-dedication?period=:period&teamId=:team`, [\r\n ['personId', personId],\r\n ['period', period],\r\n ['team', team],\r\n ]),\r\n );\r\n\r\n if (err) {\r\n this.showFailedResponse('Failed to load energy dedication');\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n}\r\n","import { AxiosInstance, AxiosPromise } from 'axios';\r\nimport { Person } from '../models/Person';\r\nimport Group from '../models/Group';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport InviteResponse from '../models/InviteResponse';\r\nimport TeamJoinRequest from '../models/TeamJoinRequest';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport Team from '@/models/Team';\r\nimport { axiosHelper, ecosystemHelper, teamHelper } from '@/main';\r\nimport to from 'await-to-js';\r\nimport EnergyDedication from '@/models/EnergyDedication';\r\nimport { periodModule } from '@/store/modules/period';\r\nimport Register from '@/models/Register';\r\n\r\nexport class TeamService extends BaseService {\r\n public publicAxiosInstance: AxiosInstance;\r\n\r\n private endpoint = `${Vue.$env().directoryEndpoint}teams`;\r\n private ecosystemEndpoint = `${Vue.$env().directoryEndpoint}ecosystems`;\r\n\r\n constructor(axiossHelper: AxiosHelper) {\r\n super(axiossHelper);\r\n }\r\n\r\n public getGroups(team: number, period?: string) {\r\n if (!period) {\r\n return this.get(`${this.endpoint}/:team/groups`, [['team', team]]);\r\n }\r\n\r\n return this.get(`${this.endpoint}/:team/groups?period=:period`, [\r\n ['team', team],\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public getTeam(team: number, period: string) {\r\n return this.get(`${this.endpoint}/:team?period=:period`, [\r\n ['team', team],\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public async getTeams(ecosystem?: number, period?: string) {\r\n if (!ecosystem) {\r\n ecosystem = ecosystemHelper.currentEcosystem.id;\r\n }\r\n\r\n if (!period) {\r\n period = periodModule.selectedPeriod;\r\n }\r\n\r\n const [err, response] = await to(\r\n this.get(`${this.ecosystemEndpoint}/:ecosystem/teams?period=:period`, [\r\n ['ecosystem', ecosystem],\r\n ['period', period],\r\n ]),\r\n );\r\n if (err) {\r\n this.showFailedResponse('Failed to load teams', null);\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public createTeam(newTeam: any, ecosytemId?: number): AxiosPromise {\r\n let config = {};\r\n if (ecosytemId) {\r\n config = {\r\n headers: {\r\n 'x-ecosystem': ecosytemId,\r\n },\r\n };\r\n }\r\n\r\n return this.post(`${this.endpoint}`, newTeam, null, config);\r\n }\r\n\r\n public updateTeam(team: { teamId: number; name: string; legalEntityReference: string }): Promise {\r\n return this.put(`${this.endpoint}/:team`, team, [['team', team.teamId]]);\r\n }\r\n\r\n public async getMembers(teamId?: number, period?: string): Promise {\r\n let config = {};\r\n\r\n if (!teamId) {\r\n teamId = teamHelper.currentTeamId;\r\n }\r\n\r\n if (period) {\r\n config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n }\r\n\r\n const [err, response] = await to(this.get(`${this.endpoint}/:team/members`, [['team', teamId]], config));\r\n if (err) {\r\n this.showFailedResponse('Failed to load members', null);\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new Person(x));\r\n }\r\n\r\n public async getMemberById(memberId: number, period: string) {\r\n const members = await this.getMembers(teamHelper.currentTeamId, period);\r\n\r\n return members.find((x) => x.personId === memberId);\r\n }\r\n\r\n public getInvite(inviteKey: string, teamId: number, period: string, ecosystem: any): AxiosPromise {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n 'x-ecosystem': ecosystem,\r\n },\r\n };\r\n\r\n return this.get(\r\n `${this.endpoint}/:teamId/invite/:inviteKey`,\r\n [\r\n ['teamId', teamId],\r\n ['inviteKey', inviteKey],\r\n ],\r\n config,\r\n );\r\n }\r\n\r\n public acceptInvite(teamId: number, inviteCode: string, registerModel: Register): Promise {\r\n const model = {\r\n inviteCode,\r\n period: registerModel.period,\r\n teamId,\r\n personId: registerModel.person.personId,\r\n firstName: registerModel.person.firstName,\r\n insertion: registerModel.person.insertion,\r\n lastName: registerModel.person.lastName,\r\n emailAddress: registerModel.emailAddress,\r\n phoneNumber: registerModel.person.phoneNumber,\r\n password: registerModel.password,\r\n };\r\n\r\n const config = {\r\n headers: {\r\n 'x-period': registerModel.period,\r\n },\r\n };\r\n\r\n this.publicAxiosInstance = axiosHelper.getAuthAxiosInstance();\r\n return this.publicAxiosInstance.post(`${this.endpoint}/${teamId}/invite/${inviteCode}`, model, config);\r\n }\r\n\r\n public getJoinRequest(id: number) {\r\n return this.get(`${this.endpoint}/joinrequest/:id`, [['id', id]]);\r\n }\r\n\r\n public addJoinRequest(personId: number, teams: string[]) {\r\n return this.post(`${this.endpoint}/joinrequest`, { personId, teams });\r\n }\r\n\r\n public updateJoinRequest(id: number, model: TeamJoinRequest) {\r\n return this.put(`${this.endpoint}/joinrequest/:id`, model, [['id', id]]);\r\n }\r\n\r\n public getEnergyDedication(teamId: number, period: string, personId?: number) {\r\n return this.get(`${this.endpoint}/:teamId/energy-dedication/?personId=:?personId&period=:period`, [\r\n ['teamId', teamId],\r\n ['personId', personId],\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public addMember(person: Person, teamId: number, period: string) {\r\n if (!person.personId) {\r\n delete person.personId;\r\n }\r\n\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.post(\r\n `${this.endpoint}/:teamId/members?period=:period`,\r\n person,\r\n [\r\n ['period', period],\r\n ['teamId', teamId],\r\n ],\r\n config,\r\n );\r\n }\r\n\r\n public unenroll(teamId: number, period: string) {\r\n return this.delete(`${this.endpoint}/:teamId/unenroll?period=:period`, [\r\n ['teamId', teamId],\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public removeMemberFromTeam(memberId: number, teamId: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.delete(\r\n `${this.endpoint}/:teamId/members/:memberId`,\r\n [\r\n ['teamId', teamId],\r\n ['memberId', memberId],\r\n ],\r\n config,\r\n );\r\n }\r\n\r\n public updateEnergyDedicationsForMember(teamId: number, energyGroups: EnergyDedication[], period: string, memberId: number) {\r\n return this.put(\r\n `${this.endpoint}/:teamId/members/:memberId/energy-dedication?period=:period`,\r\n energyGroups,\r\n [\r\n ['teamId', teamId],\r\n ['period', period],\r\n ['memberId', memberId],\r\n ],\r\n { headers: { 'Content-Type': 'application/json' } },\r\n );\r\n }\r\n\r\n public async deleteTeam(teamId: number) {\r\n const [err, response] = await to(this.delete(`${this.endpoint}/:teamId`, [['teamId', teamId]]));\r\n\r\n if (err) {\r\n this.clearAndShowError('DELETE_TEAM_FAILED', response);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public async transferTeamLeaderShip(teamLead: Person) {\r\n return this.patch(\r\n `${this.endpoint}/:teamId/leadership/transfer`,\r\n {\r\n newLeaderId: teamLead.personId,\r\n },\r\n [['teamId', teamHelper.currentTeamId]],\r\n );\r\n }\r\n}\r\n","import { Invoice } from '../Invoice';\r\nimport Team from '../Team';\r\nimport { RelationSettings } from './Relation';\r\n\r\nexport default class CrossLegalTransaction {\r\n public matchId: string = '';\r\n public dateHandled: string = '';\r\n public destinationLegalEntityReference: string = '';\r\n public destinationTeam: Team = null;\r\n public destinationTeamId: number = null;\r\n public invoice: Invoice = null;\r\n public originLegalEntityReference: string = '';\r\n public originTeam: Team = null;\r\n public originTeamId: number = null;\r\n public relationSettings: RelationSettings = null;\r\n public status: string = '';\r\n public amount: number = 0;\r\n\r\n /**\r\n *\r\n */\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n}\r\n","import { AxiosPromise } from 'axios';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { InvoiceType } from '../models/InvoiceType';\r\nimport { BaseService } from './baseService';\r\nimport DistributedInvoice from '../models/DistributedInvoice';\r\nimport Vue from 'vue';\r\nimport TeamRevenueResult from '@/models/TeamRevenueResult';\r\nimport GroupAlias from '@/models/GroupAlias';\r\nimport to from 'await-to-js';\r\nimport { teamsModule } from '@/store/modules/teams';\r\nimport CrossLegalTransaction from '@/models/Finance/CrossLegalTransaction';\r\nimport { Invoice } from '@/models/Invoice';\r\n\r\nexport class FinanceService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public getExampleCsv(team: string) {\r\n const config = {\r\n headers: {\r\n 'Content-type': 'text/csv',\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n Accept: 'text/csv',\r\n },\r\n };\r\n\r\n return this.get(`${this.endpoint}invoices/new?teamId=:team`, [['team', team]], config);\r\n }\r\n\r\n public importInvoice(file: DistributedInvoice[], team: number, group: number): AxiosPromise {\r\n file.forEach((x) => {\r\n x.invoice.amount = !isNaN(x.invoice.amount) ? parseFloat(x.invoice.amount.toString()) : x.invoice.amount;\r\n x.distributions.forEach((y) => (y.amount = !isNaN(y.amount) ? parseFloat(y.amount.toString()) : y.amount));\r\n });\r\n\r\n if (group) {\r\n return this.post(`${this.endpoint}invoices?teamId=:team&groupId=:?group`, file, [\r\n ['team', team],\r\n ['group', group],\r\n ]);\r\n }\r\n return this.post(`${this.endpoint}invoices?teamId=:team`, file, [['team', team]]);\r\n }\r\n\r\n public async getInvoices(\r\n teamId: number,\r\n groupId: number,\r\n type: InvoiceType = InvoiceType.Unknown,\r\n personId?: number,\r\n period: string = '',\r\n ): Promise {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n if (groupId) {\r\n const [errWithGroup, responseWithGroup] = await to(\r\n this.get(\r\n `${this.endpoint}invoices?teamId=:team&groupId=:group&invoiceType=:invoiceType&personId=:?personId`,\r\n [\r\n ['team', teamId],\r\n ['group', groupId],\r\n ['invoiceType', type],\r\n ['personId', personId],\r\n ],\r\n config,\r\n ),\r\n );\r\n\r\n if (errWithGroup) {\r\n // console.error(errWithGroup);\r\n return [];\r\n }\r\n\r\n return responseWithGroup.data;\r\n }\r\n\r\n const [err, response] = await to(\r\n this.get(\r\n `${this.endpoint}invoices?teamId=:team&invoiceType=:invoiceType&personId=:?personId`,\r\n [\r\n ['team', teamId],\r\n ['invoiceType', type],\r\n ['personId', personId],\r\n ],\r\n config,\r\n ),\r\n );\r\n\r\n if (err) {\r\n // console.error(err);\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public getInvoice(invoiceId: number, groupId?: number): AxiosPromise {\r\n if (groupId) {\r\n return this.get(`${this.endpoint}invoices/${invoiceId}?groupId=:group`, [['group', groupId]]);\r\n }\r\n\r\n return this.get(`${this.endpoint}invoices/${invoiceId}`);\r\n }\r\n\r\n public getInvoiceDetails(invoiceId: number, groupId: number, accountId: number): AxiosPromise {\r\n return this.get(`${this.endpoint}invoices/${invoiceId}/details?group_id=:group&account_id=:accountId`, [\r\n ['group', groupId],\r\n ['accountId', accountId],\r\n ]);\r\n }\r\n\r\n public saveDistribution(distributedInvoice: DistributedInvoice, teamId: number, groupId?: number): AxiosPromise {\r\n return this.post(\r\n `${this.endpoint}invoices?teamId=:team&groupId=:?group`,\r\n [distributedInvoice],\r\n [\r\n ['team', teamId],\r\n ['group', groupId],\r\n ],\r\n );\r\n }\r\n\r\n public saveDistributions(distributedInvoices: DistributedInvoice[], teamId: number, groupId?: number): AxiosPromise {\r\n if (!groupId || groupId === 0) {\r\n return this.post(`${this.endpoint}invoices?teamId=:team`, distributedInvoices, [['team', teamId]]);\r\n }\r\n\r\n return this.post(`${this.endpoint}invoices?teamId=:team&groupId=:?group`, distributedInvoices, [\r\n ['team', teamId],\r\n ['group', groupId],\r\n ]);\r\n }\r\n\r\n public deleteInvoice(invoiceId: number): any {\r\n return this.delete(`${this.endpoint}invoices/:invoiceId`, [['invoiceId', invoiceId]]);\r\n }\r\n\r\n public setInvoicesNotRercurring(list: any) {\r\n return this.post(`${this.endpoint}/invoices/set-recurrence`, { invoiceStates: list });\r\n }\r\n\r\n public setInvoicesLegalEntityReference(list: any[]): Promise {\r\n return this.post(`${this.endpoint}/invoices/set-legal-entity-reference`, { teamId: teamsModule.current.teamId, invoiceStates: list });\r\n }\r\n\r\n public setInvoiceAmortization(invoiceId: number, accountId: number, amortizationAmount: string) {\r\n return this.post(`${this.endpoint}/invoices/:invoiceId/set-amortization`, { accountId, amortizationAmount }, [['invoiceId', invoiceId]]);\r\n }\r\n\r\n public getGroupFinancialActiviy(teamId: number, groupId: number, period: string) {\r\n return this.get(`${this.endpoint}financial-activity?teamId=:team&groupId=:group&period=:period`, [\r\n ['team', teamId],\r\n ['period', period],\r\n ['group', groupId],\r\n ]);\r\n }\r\n\r\n public getPersonFinancialActityInTeam(teamId: number, personId: number, period: string) {\r\n return this.get(`${this.endpoint}financial-activity?teamId=:team&personId=:person&period=:period`, [\r\n ['team', teamId],\r\n ['period', period],\r\n ['person', personId],\r\n ]);\r\n }\r\n\r\n public getPersonFinancialActiviy(teamId: number, groupId: number, personId: number, period: string) {\r\n return this.get(`${this.endpoint}financial-activity?teamId=:team&personId=:person&groupId=:group&period=:period`, [\r\n ['team', teamId],\r\n ['period', period],\r\n ['person', personId],\r\n ['group', groupId],\r\n ]);\r\n }\r\n\r\n public getMyFinancialActiviy(groupId: number, period: string) {\r\n return this.get(`${this.endpoint}me/financial-group-activity?teamId=:team&groupId=:group&period=:period`, [\r\n ['period', period],\r\n ['group', groupId],\r\n ]);\r\n }\r\n\r\n public getEcosystemRevenue(period: string): AxiosPromise {\r\n return this.get(`${this.endpoint}intra-revenue/teams?period=:period`, [['period', period]]);\r\n }\r\n\r\n public getTeamRevenue(period: string, team: number): AxiosPromise {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(\r\n `${this.endpoint}intra-revenue/groups?teamId=:team`,\r\n [\r\n ['period', period],\r\n ['team', team],\r\n ],\r\n config,\r\n );\r\n }\r\n\r\n public upsertGroupAliases(groupId: number, aliases: GroupAlias) {\r\n return this.put(`${this.endpoint}group-aliases/:groupId`, aliases, [['groupId', groupId]]);\r\n }\r\n\r\n public saveCollaborationMode(groupId: number, type: string) {\r\n return this.post(`${this.endpoint}groups/:groupId/set-collaboration-mode`, { CollaborationMode: type }, [['groupId', groupId]]);\r\n }\r\n\r\n public getGroupAliases(groupId: number) {\r\n return this.get(`${this.endpoint}group-aliases/:groupId`, [['groupId', groupId]]);\r\n }\r\n\r\n public async getCrossLegalTransactions(matchId?: string): Promise {\r\n let url = `${this.endpoint}cross-legal-transactions`;\r\n\r\n if (matchId) {\r\n url = `${url}?matchId=${matchId}`;\r\n }\r\n\r\n const [err, response] = await to(this.get(url));\r\n if (err) {\r\n this.clearAndShowError('CROSS_LEGAL_TRANSACTIONS_FAILED', err);\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new CrossLegalTransaction(x));\r\n }\r\n\r\n public async searchInvoices(\r\n fromFilterMonth: any,\r\n toFilterMonth: any,\r\n teamId?: number,\r\n selectedLegalEntityRef?: string,\r\n invoiceType: InvoiceType = InvoiceType.Income,\r\n includeDistributions: boolean = false,\r\n ) {\r\n const config = {\r\n headers: {\r\n 'x-startPeriod': fromFilterMonth,\r\n 'x-endPeriod': toFilterMonth,\r\n },\r\n };\r\n\r\n let url = `${this.endpoint}invoices/search?invoice_type=${invoiceType}&include_distributions=${includeDistributions}`;\r\n\r\n if (teamId) {\r\n url = `${url}&team_id=${teamId}`;\r\n }\r\n\r\n if (selectedLegalEntityRef) {\r\n url = `${url}&legal_entity_reference=${selectedLegalEntityRef}`;\r\n }\r\n\r\n const [err, response] = await to(this.get(`${url}`, null, config));\r\n\r\n if (err) {\r\n // console.error(err);\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new Invoice(x));\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { AccountType } from '../models/AccountType';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\nimport AccountFunds from '@/models/Finance/Api/AccountFunds';\r\nimport Range from '@/models/Finance/Api/Range';\r\nimport { FinanceAccount } from '@/models/Interfaces';\r\n\r\nexport class FinanceAccountService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}accounts`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public getAccounts(type: AccountType, team: number, period?: string, group?: number, personId?: number) {\r\n if (!period) {\r\n return this.get(`${this.endpoint}/:type?teamId=:team&groupId=:?group&personId=:?person`, [\r\n ['type', type],\r\n ['team', team],\r\n ['group', group],\r\n ['person', personId],\r\n ]);\r\n }\r\n\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(\r\n `${this.endpoint}/:type?teamId=:team&groupId=:?group&personId=:?person`,\r\n [['type', type], ['team', team], ['group', group], ['person', personId]],\r\n config,\r\n );\r\n }\r\n\r\n public async getTeamAccounts(type: AccountType, team: number, period: string): Promise {\r\n const [err, response] = await to(this.get(`${this.endpoint}/:type?teamId=:team`, [['type', type], ['team', team], ['period', period]]));\r\n if (err) {\r\n this.showFailedResponse('Failed to load accounts');\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async getBalance(accountId: number, period: string, team: number, type: AccountType, fromPeriod?: string): Promise> {\r\n const config = {\r\n headers: {\r\n 'x-startPeriod': fromPeriod ? fromPeriod : period,\r\n 'x-endPeriod': period,\r\n },\r\n };\r\n\r\n const [err, response] = await to(\r\n this.get(\r\n `${this.endpoint}/:type/:accountId/balance?teamId=:team`,\r\n [['accountId', accountId], ['period', period], ['team', team], ['type', type]],\r\n config,\r\n ),\r\n );\r\n\r\n if (err) {\r\n this.clearAndShowWarning(`Failed to load balance for account: ${accountId}`);\r\n return new Range();\r\n }\r\n\r\n return new Range(response.data);\r\n }\r\n\r\n public async getAccount(team: number, personId: number, period: string) {\r\n const accounts = (await this.getAccounts(AccountType.Person, team, period, null, personId)).data;\r\n\r\n return accounts.find((item) => {\r\n return item.relatedEntityId === personId;\r\n });\r\n }\r\n\r\n public async getGroupAccount(team: number, groupId: number, type: AccountType, period: string): Promise {\r\n const accounts = (await this.getAccounts(type, team, period)).data;\r\n return accounts.find((item) => {\r\n return item.relatedEntityId === groupId;\r\n });\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { AttributionType } from '../models/AttributionType';\r\nimport Attribution from '../models/Attribution';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport { PrivacyLevel } from '@/models/PrivacyLevel';\r\nimport to from 'await-to-js';\r\n\r\nexport class AttributionService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public getAttributions(type: AttributionType, teamId: number, period: string, groupId?: number) {\r\n return this.get(`${this.endpoint}attributions?attributionType=:type&teamId=:teamId&groupId=:?groupId&period=:period`, [\r\n ['type', type],\r\n ['teamId', teamId],\r\n ['groupId', groupId],\r\n ['period', period],\r\n ]);\r\n }\r\n\r\n public saveAttributions(model: any[], type: AttributionType, teamId: number, period: string, groupId?: number) {\r\n let config = {};\r\n if (period) {\r\n config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.post(\r\n `${this.endpoint}attributions?attributionType=:type&teamId=:teamId&groupId=:?groupId&period=:period`,\r\n model,\r\n [['type', type], ['teamId', teamId], ['groupId', groupId], ['period', period]],\r\n config,\r\n );\r\n }\r\n\r\n return this.post(\r\n `${this.endpoint}attributions?attributionType=:type&teamId=:teamId&groupId=:?groupId`,\r\n model,\r\n [['type', type], ['teamId', teamId], ['groupId', groupId]],\r\n {},\r\n );\r\n }\r\n\r\n public saveAttributionSetting(\r\n groupId: number,\r\n applyMissingAttributions: boolean,\r\n autoDistributeIncomeToSavings: boolean,\r\n autoDistributeExpensesToSavings: boolean,\r\n autoCompensateGroupMembers: boolean,\r\n privacyLevel: PrivacyLevel,\r\n ) {\r\n return this.post(\r\n `${this.endpoint}settings?groupId=:group`,\r\n {\r\n applyMissingAttributionsOnTransfer: applyMissingAttributions,\r\n autoDistributeIncomeToSavings,\r\n autoDistributeExpensesToSavings,\r\n autoCompensateGroupMembers,\r\n privacyLevel,\r\n },\r\n [['group', groupId]],\r\n );\r\n }\r\n\r\n public getAttributionSetting(groupId: number) {\r\n return this.get(`${this.endpoint}settings?groupId=:group`, [['group', groupId]]);\r\n }\r\n\r\n public async removeAttributionSources(teamId: number, groupId: number) {\r\n const model = {\r\n teamId,\r\n groupId,\r\n };\r\n\r\n const [err] = await to(this.post(`${this.endpoint}attributions/remove-attribution-sources`, model));\r\n if (err) {\r\n this.showFailedResponse('FAILED_TO_DELETE_ATTRIBUTION_SOURCES');\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\nimport MemberResults from '@/models/Finance/Api/MemberResults';\r\nimport Range from '@/models/Finance/Api/Range';\r\nimport EcosystemResults from '@/models/Finance/Api/TeamResults';\r\nimport TeamResultItem from '@/models/Finance/Api/TeamResultItem';\r\n\r\nexport class ResultService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getEcosystemResults(starPeriod: string, endPeriod: string, teamIds: number[] = []): Promise {\r\n const config = {\r\n headers: {\r\n 'x-startPeriod': starPeriod,\r\n 'x-endPeriod': endPeriod,\r\n },\r\n };\r\n\r\n let teamQueryStringParam = '?';\r\n if (teamIds && teamIds.length > 0) {\r\n teamIds.forEach((x) => {\r\n teamQueryStringParam += `${!teamQueryStringParam.endsWith('?') ? '&' : ''}team_id=${x}`;\r\n });\r\n }\r\n\r\n const [err, response] = await to(this.get(`${this.endpoint}results/ecosystem${teamQueryStringParam}`, null, config));\r\n\r\n if (err) {\r\n this.clearAndShowWarning(`Failed to load ecosystem results from: ${starPeriod} to ${endPeriod}`);\r\n return new EcosystemResults();\r\n }\r\n return new EcosystemResults(response.data);\r\n }\r\n\r\n public async getGroupResults(teamId: number, starPeriod: string, endPeriod: string): Promise> {\r\n const config = {\r\n headers: {\r\n 'x-startPeriod': starPeriod,\r\n 'x-endPeriod': endPeriod,\r\n },\r\n };\r\n const [err, response] = await to(this.get(`${this.endpoint}results/team?teamId=:teamId`, [['teamId', teamId]], config));\r\n\r\n if (err) {\r\n this.clearAndShowWarning(`Failed to load group results for team: ${teamId} from: ${starPeriod} to ${endPeriod}`);\r\n return new Range();\r\n }\r\n\r\n return new Range(response.data);\r\n }\r\n\r\n public async getMemberResults(teamId: number, starPeriod: string, endPeriod: string): Promise> {\r\n const config = {\r\n headers: {\r\n 'x-startPeriod': starPeriod,\r\n 'x-endPeriod': endPeriod,\r\n },\r\n };\r\n const [err, response] = await to(this.get(`${this.endpoint}results/members?teamId=:teamId`, [['teamId', teamId]], config));\r\n\r\n if (err) {\r\n this.clearAndShowWarning(`Failed to load member results for team: ${teamId} from: ${starPeriod} to ${endPeriod}`);\r\n return new Range();\r\n }\r\n\r\n return new Range(response.data);\r\n }\r\n\r\n public async getMemberResultsNew(teamId: number, starPeriod: string, endPeriod: string): Promise> {\r\n const config = {\r\n headers: {\r\n 'x-startPeriod': starPeriod,\r\n 'x-endPeriod': endPeriod,\r\n },\r\n };\r\n const [err, response] = await to(this.get(`${this.endpoint}results/members-new?teamId=:teamId`, [['teamId', teamId]], config));\r\n\r\n if (err) {\r\n this.clearAndShowWarning(`Failed to load member results for team: ${teamId} from: ${starPeriod} to ${endPeriod}`);\r\n return new Range();\r\n }\r\n\r\n return new Range(response.data);\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\n\r\nexport class CompensationService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getCompensations(team: number, group: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(\r\n `${this.endpoint}compensations?teamId=:team&groupId=:group`,\r\n [['team', team], ['group', group]],\r\n config,\r\n );\r\n }\r\n}\r\n","import { BaseService } from './baseService';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { UserRoles } from '../models/UserRoles';\r\nimport Vue from 'vue';\r\n\r\nexport default class UserRoleService extends BaseService {\r\n private endpoint = `${Vue.$env().identityEndpoint}api/roles/`;\r\n private addDeleteEndpoint = `${this.endpoint}user/:externalIdentifier/role/:role`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public getUsersInRole(role: UserRoles) {\r\n return this.get(`${this.endpoint}:role/users`, [['role', role]]);\r\n }\r\n\r\n public makeAddDeleteData(externalIdentifier: string, role: UserRoles): ReadonlyArray<[string, any]> {\r\n return [\r\n ['externalIdentifier', externalIdentifier],\r\n ['role', role as string],\r\n ];\r\n }\r\n\r\n public setUserRole(externalIdentifier: string, role: UserRoles) {\r\n return this.post(this.addDeleteEndpoint, null, this.makeAddDeleteData(externalIdentifier, role));\r\n }\r\n\r\n public deleteUserRole(externalIdentifier: string, role: UserRoles) {\r\n return this.delete(this.addDeleteEndpoint, this.makeAddDeleteData(externalIdentifier, role));\r\n }\r\n}\r\n","export default class Period {\r\n public periodId?: number;\r\n public startDate: string = '';\r\n public endDate: string = '';\r\n public closed: boolean;\r\n public current: boolean;\r\n public status: string = '';\r\n\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport Period from '../models/Period';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\nimport { $router } from '@/main';\r\n\r\nexport class PeriodService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getPeriods(team?: number) {\r\n const [err, response] = await to(this.get(`${this.endpoint}periods?teamId=:teamId`, [['teamId', team]]));\r\n if (err) {\r\n await $router.push({\r\n name: 'app-error',\r\n params: { message: `Failed to load periods.` },\r\n });\r\n\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new Period(x));\r\n }\r\n\r\n public async getTeamPeriodStatusses() {\r\n const [err, response] = await to(this.get(`${this.endpoint}periods/status`));\r\n if (err) {\r\n await $router.push({\r\n name: 'app-error',\r\n params: { message: `Failed to load periods.` },\r\n });\r\n\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public closePeriod(period: number, team: number, soft: boolean = false) {\r\n return this.post(`${this.endpoint}periods/:period/close?teamId=:team&softClose=:soft`, null, [\r\n ['period', period],\r\n ['team', team],\r\n ['soft', soft],\r\n ]);\r\n }\r\n\r\n public openPeriod(period: number, team: number) {\r\n return this.post(`${this.endpoint}periods/:period/open?teamId=:team`, null, [['period', period], ['team', team]]);\r\n }\r\n\r\n public canClose(team: number, period: string) {\r\n return this.get(`${this.endpoint}periods/can-close?teamId=${team}`, null, { headers: { 'x-period': period } });\r\n }\r\n}\r\n","import VueRouter from 'vue-router';\r\n\r\nexport class ErrorHelper {\r\n private router: VueRouter;\r\n\r\n constructor(router: VueRouter) {\r\n this.router = router;\r\n }\r\n\r\n public throwError(message: string, returnUrl?: string) {\r\n let url = `/error?message=${message}`;\r\n if (returnUrl !== undefined) {\r\n url = `${url}&returnUrl=${returnUrl}`;\r\n }\r\n\r\n this.router.push(url);\r\n }\r\n}\r\n","import { UserRoles } from '../models/UserRoles';\r\nimport { loginHelper, loginService } from '@/main';\r\nimport Group from '@/models/Group';\r\nimport { PrivacyLevel } from '@/models/PrivacyLevel';\r\n\r\n/**\r\n * Helper function to assist in checking user roles.\r\n */\r\nexport class RoleHelper {\r\n /**\r\n * Checks if the user possess admin rights in a group.\r\n */\r\n public isAccountant(): boolean {\r\n return loginService.isInRole(UserRoles.Accountant);\r\n }\r\n\r\n /**\r\n * Check if the user possess full 'superuser' rights.\r\n */\r\n public isSiteAdmin(): boolean {\r\n return loginService.isInRole(UserRoles.SiteAdmin);\r\n }\r\n\r\n /**\r\n * Check if user possess admin rights in a team.\r\n */\r\n public isFinanceEmployee(): boolean {\r\n return loginService.isInRole(UserRoles.FinanceEmployee);\r\n }\r\n\r\n /**\r\n * Checks if the user possess admin rights in a group.\r\n */\r\n public isMember(): boolean {\r\n return loginService.isInRole(UserRoles.Member);\r\n }\r\n\r\n public isGroupLead(group: Group): boolean {\r\n if (!group.groupLead) {\r\n return false;\r\n }\r\n const user = loginHelper.getUser();\r\n return group.groupLead.memberId === user.personId;\r\n }\r\n\r\n public checkAccess(level: PrivacyLevel, group?: Group) {\r\n if (this.isAccountant()) {\r\n return true;\r\n }\r\n\r\n if (level === PrivacyLevel.SiteAdmin && this.isSiteAdmin()) {\r\n return true;\r\n }\r\n\r\n if (level === PrivacyLevel.FinanceEmployee && (this.isSiteAdmin() || this.isFinanceEmployee())) {\r\n return true;\r\n }\r\n\r\n if (level === PrivacyLevel.GroupLead && (this.isSiteAdmin() || this.isFinanceEmployee() || (group && this.isGroupLead(group)))) {\r\n return true;\r\n }\r\n\r\n if (level === PrivacyLevel.Member) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { ecosystemHelper, loginHelper, roleHelper } from '@/main';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { Membership } from '../models/Interfaces';\r\n\r\nexport class TeamHelper {\r\n public _currentTeam: Membership = null;\r\n\r\n public async setup() {\r\n let team = null;\r\n const urlSegments = window.location.pathname.split('/');\r\n if (typeof urlSegments === 'object' && urlSegments.length > 2) {\r\n team = parseInt(urlSegments[2].split('-')[0]);\r\n }\r\n\r\n this.setTeamByTeamId(team);\r\n }\r\n\r\n public getTeam(id?: number) {\r\n if (!id && this._currentTeam) {\r\n id = this._currentTeam.id;\r\n }\r\n const user = profileModule.brightProfile;\r\n let team = user.teamMemberships\r\n .filter((x) => x.ecosystem === ecosystemHelper.currentEcosystem.id)\r\n .find((membership) => {\r\n return membership.id === id;\r\n });\r\n\r\n if (team) {\r\n return team;\r\n }\r\n\r\n team = user.teamMemberships.filter((x) => x.ecosystem === ecosystemHelper.currentEcosystem.id).find((x) => x.id === user.primaryTeam);\r\n if (team) {\r\n return team;\r\n }\r\n\r\n team = user.teamMemberships.filter((x) => x.ecosystem === ecosystemHelper.currentEcosystem.id && (!x.accessUntil || roleHelper.isAccountant()))[0];\r\n if (team) {\r\n return team;\r\n }\r\n\r\n team = user.teamMemberships.filter((x) => x.ecosystem === ecosystemHelper.currentEcosystem.id)[0];\r\n\r\n if (team) {\r\n return team;\r\n }\r\n\r\n return user.teamMemberships[0];\r\n }\r\n\r\n public setTeamByTeamId(id: number) {\r\n this._currentTeam = this.getTeam(id);\r\n }\r\n\r\n public setTeam(team: Membership) {\r\n this.setTeamByTeamId(team.id);\r\n }\r\n\r\n public getTeamId(id?: number): any {\r\n const team = this.getTeam(id);\r\n return team.id;\r\n }\r\n\r\n public getTeamName(id: number): any {\r\n const user = loginHelper.getUser();\r\n const team = user.teamMemberships.find((membership) => {\r\n return membership.id === id;\r\n });\r\n\r\n if (team) {\r\n return team.name;\r\n }\r\n\r\n return user.teamMemberships[0].name;\r\n }\r\n\r\n public getTeamIdByKey(key?: string) {\r\n if (!key) {\r\n key = this._currentTeam.key;\r\n }\r\n\r\n const user = loginHelper.getUser();\r\n const team = user.teamMemberships.find((membership) => {\r\n return membership.key === key;\r\n });\r\n\r\n if (team) {\r\n return team;\r\n }\r\n return user.teamMemberships[0];\r\n }\r\n\r\n get currentTeam(): Membership {\r\n if (this._currentTeam === null) {\r\n const team = this.getTeam();\r\n this._currentTeam = team;\r\n }\r\n\r\n return this._currentTeam;\r\n }\r\n\r\n get currentTeamId(): number {\r\n return this._currentTeam.id;\r\n }\r\n\r\n get teamParam(): string {\r\n return `${this._currentTeam.id}-${this.currentTeam.key}`;\r\n }\r\n\r\n public getTeamByKey(key: string): Membership {\r\n const team = this.getTeamIdByKey(key);\r\n return team;\r\n }\r\n}\r\n","import Group from '../models/Group';\r\nimport { groupService, teamHelper } from '@/main';\r\nimport to from 'await-to-js';\r\nimport PageRender from '@/models/PageRender';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\nexport class GroupHelper extends PageRender {\r\n public groups: Group[] = null;\r\n\r\n public async getGroups() {\r\n const self = this;\r\n const [err, response] = await to(groupService.getGroups(teamHelper.currentTeamId, periodModule.selectedPeriod));\r\n if (err) {\r\n return (self.groups = null);\r\n }\r\n\r\n return (self.groups = response.data);\r\n }\r\n\r\n public async getGroup(groupId: number) {\r\n const [err, response] = await to(groupService.getGroup(groupId, periodModule.selectedPeriod));\r\n if (err) {\r\n this.showFailedResponse(`Failed to load group with groupId: ${groupId}`);\r\n return new Group();\r\n }\r\n\r\n return new Group(response.data);\r\n }\r\n\r\n public async createOrUpdateGroup(group: Group, periodString?: string): Promise {\r\n const postModel = {\r\n groupLead: typeof group.groupLead === 'object' ? group.groupLead.memberId : group.groupLead,\r\n name: group.name,\r\n purpose: group.purpose,\r\n teamId: teamHelper.currentTeam.id,\r\n connectorIds: group.connectors.map((x) => (typeof x === 'object' ? x.connectorId : x)),\r\n groupId: null,\r\n readMe: group.readMe,\r\n templateId: group.templateId ? group.templateId : group.baseTemplate ? group.baseTemplate : null,\r\n };\r\n\r\n if (group.groupId && group.groupId > 0) {\r\n postModel.groupId = group.groupId;\r\n } else {\r\n delete postModel.groupId;\r\n }\r\n\r\n const [err, response] = await to(groupService.createGroup(postModel, periodString ? periodString : periodModule.selectedPeriod));\r\n if (err) {\r\n this.clearAndShowError('Failed to create group', err);\r\n return new Group();\r\n }\r\n\r\n return response.data;\r\n }\r\n}\r\n","import { teamService } from '@/main';\r\nimport { Person } from '../models/Person';\r\n\r\nexport class MemberHelper {\r\n public members: Person[] = [];\r\n public interval: any;\r\n\r\n public async getMembers(force: boolean = false) {\r\n const self = this;\r\n self.members = [];\r\n\r\n if (self.members && self.members.length > 0 && !force) {\r\n return self.members;\r\n }\r\n\r\n self.members = await teamService.getMembers();\r\n\r\n return self.members;\r\n }\r\n}\r\n","import moment from 'moment';\r\nimport PageRender from '../models/PageRender';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\nexport class PeriodFilterHelper extends PageRender {\r\n public selectedPeriod() {\r\n return periodModule.selectedPeriod;\r\n }\r\n\r\n public selectedPeriodObject() {\r\n return periodModule.selectedPeriodObject;\r\n }\r\n\r\n public previousMonth(current = null, format = 'YYYY-MM'): string {\r\n const input = current ? current : periodModule.selectedPeriod;\r\n const now = moment(input, 'YYYY-MM');\r\n const previous = now.subtract(1, 'month');\r\n\r\n return previous.format(format);\r\n }\r\n\r\n public currentMonth(format = 'YYYY-MM'): string {\r\n const now = moment(periodModule.selectedPeriod, 'YYYY-MM');\r\n return now.format(format);\r\n }\r\n\r\n public getSelectedPeriodObject() {\r\n return periodModule.selectedPeriodObject;\r\n }\r\n\r\n public isCurrentPeriodClosed() {\r\n if (periodModule.selectedPeriodObject) {\r\n return periodModule.selectedPeriodObject.closed;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public areAllPreviousPeriodsClosed() {\r\n const currentPeriodIndex = periodModule.periods.findIndex((x) => x.periodId === periodModule.selectedPeriodObject.periodId);\r\n const periods = periodModule.periods.slice(currentPeriodIndex + 1);\r\n return periods.every((x) => x.closed);\r\n }\r\n\r\n public isValidPeriod(periodToCheck: string): boolean {\r\n return (\r\n periodModule.periods.find((period) => {\r\n return moment(period.startDate, 'YYYY-MM-DD').format('YYYY-MM') === periodToCheck;\r\n }) != null\r\n );\r\n }\r\n}\r\n","export default class NavigationHelper {\r\n public isNavVisible: boolean = false;\r\n public section: string = '';\r\n public scope: string = '';\r\n public isTeam: boolean = false;\r\n public isGroup: boolean = false;\r\n\r\n public toggleNavigation() {\r\n this.isNavVisible = !this.isNavVisible;\r\n }\r\n\r\n public hideNavigation() {\r\n this.isNavVisible = false;\r\n }\r\n\r\n public loadRouteMeta(meta, params) {\r\n this.section = (meta.section || 'directory');\r\n this.scope = (meta.scope || 'me');\r\n\r\n this.isTeam = this.scope.indexOf('team/') > -1;\r\n this.isGroup = params && params.groupKey && params.groupKey !== '';\r\n }\r\n}\r\n","import Vue from 'vue';\r\n\r\nexport class EventBus extends Vue {\r\n\r\n}\r\n","import { AxiosInstance } from 'axios';\r\nimport Vue from 'vue';\r\nimport { UserManager, WebStorageStateStore, User } from 'oidc-client';\r\nimport { profileModule } from '@/store/modules/profile';\r\n\r\nexport class LoginService {\r\n public publicAxiosInstance: AxiosInstance;\r\n public authAxiosInstance: AxiosInstance;\r\n private userManager: UserManager;\r\n\r\n constructor() {\r\n const STS_DOMAIN: string = `${Vue.$env().identityEndpoint}`;\r\n\r\n const settings: any = {\r\n userStore: new WebStorageStateStore({ store: window.localStorage }),\r\n authority: STS_DOMAIN,\r\n client_id: 'bright-ecology-systems',\r\n redirect_uri: `${Vue.$env().portalUrl}callback.html`,\r\n automaticSilentRenew: true,\r\n silent_redirect_uri: `${Vue.$env().portalUrl}silent-renew.html`,\r\n response_type: 'code',\r\n scope: 'openid roles profile directory.all finance.all common-notifications.api insights.all',\r\n post_logout_redirect_uri: `${Vue.$env().portalUrl}login`,\r\n filterProtocolClaims: true,\r\n };\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserLoaded(async (user) => {\r\n profileModule.setUser(user);\r\n });\r\n\r\n this.userManager.events.addSilentRenewError((error) => {\r\n console.log(error);\r\n console.error('KAPOT');\r\n // custom logic here\r\n });\r\n }\r\n\r\n public async isLoggedIn(): Promise {\r\n const user = await this.getUser();\r\n const loggedIn = user != null && !user.expired;\r\n return loggedIn;\r\n }\r\n\r\n public async accessTokenExpired(): Promise {\r\n const user = await this.getUser();\r\n const accessTokenExpired = user != null && user.expired;\r\n return accessTokenExpired;\r\n }\r\n\r\n public async getUser(): Promise {\r\n return await this.userManager.getUser();\r\n }\r\n\r\n public async login() {\r\n // Removes stale state entries in storage for incomplete authorize requests\r\n await this.clearStaleState();\r\n\r\n await this.userManager.signinRedirect();\r\n }\r\n\r\n public async logout() {\r\n await this.userManager.signoutRedirect({ post_logout_redirect_uri: `${Vue.$env().portalUrl}login` });\r\n }\r\n\r\n public async refreshToken() {\r\n return await this.userManager\r\n .signinSilent()\r\n .catch((error) => {\r\n console.error(error);\r\n localStorage.removeItem(`oidc.user:${Vue.$env().identityEndpoint}:bright-ecology-systems`);\r\n window.location.href = '/';\r\n });\r\n }\r\n\r\n public async clearStaleState() {\r\n await this.userManager.clearStaleState();\r\n }\r\n\r\n public isInRole(role: string): boolean {\r\n return profileModule.getRoles().indexOf(role) > -1;\r\n }\r\n}\r\n","declare global {\r\n interface Number {\r\n /**\r\n * Returns the a rounded value of a number.\r\n */\r\n round(numberOfDecimals: number): string;\r\n }\r\n}\r\n\r\nNumber.prototype.round = function f(this: number, numberOfDecimals: number): string {\r\n // tslint:disable-next-line: restrict-plus-operands\r\n const formattedNumber = +(Math.round(((this + 'e+' + numberOfDecimals) as unknown) as number) + 'e-' + numberOfDecimals);\r\n\r\n return formattedNumber.toFixed(2);\r\n};\r\n\r\nexport {};\r\n","import Vue from 'vue';\r\nimport { BaseService } from './baseService';\r\nimport { AxiosHelper } from '@/helpers/axiosHelper';\r\nimport IMapSetting from '@/models/Map/IMapSettings';\r\nimport to from 'await-to-js';\r\n\r\nexport default class MapService extends BaseService {\r\n private endpoint = `${Vue.$env().directoryEndpoint}map/settings`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getSettings(team?: number): Promise {\r\n // tslint:disable-next-line: no-dead-store\r\n let [err, response] = [null, null];\r\n if (team) {\r\n [err, response] = await to(this.get(`${this.endpoint}?teamId=:team`, [['team', team]]));\r\n } else {\r\n [err, response] = await to(this.get(`${this.endpoint}`));\r\n }\r\n\r\n if (err) {\r\n return [];\r\n }\r\n\r\n return response.data as IMapSetting[];\r\n }\r\n\r\n public async saveSettings(settings: IMapSetting[]): Promise {\r\n settings.forEach((x) => (!isNaN(x.radius) ? (x.radius = parseInt(x.radius.toString())) : x.radius));\r\n\r\n const [err] = await to(this.post(`${this.endpoint}`, settings));\r\n\r\n if (err) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport { BaseService } from './baseService';\r\nimport { AxiosHelper } from '@/helpers/axiosHelper';\r\nimport to from 'await-to-js';\r\nimport Connector from '@/models/Connectors/Connector';\r\n\r\nexport default class ConnectorService extends BaseService {\r\n private endpoint = `${Vue.$env().directoryEndpoint}connectors`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getConnectors(): Promise {\r\n const [err, response] = await to(this.get(`${this.endpoint}`));\r\n if (err) {\r\n return [];\r\n }\r\n\r\n return response.data as Connector[];\r\n }\r\n}\r\n","import Group from '../models/Group';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\n\r\nexport class FinanceGroupService extends BaseService {\r\n private financeGroupEndpoint = `${Vue.$env().financeEndpoint}` + 'groups';\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getGroups(team: number, period?: string) {\r\n if (!period) {\r\n const [errWPeriod, responseWPeriod] = await to(this.get(`${this.financeGroupEndpoint}?teamId=:team`, [['team', team]]));\r\n\r\n if (errWPeriod) {\r\n this.showFailedResponse(`Failed to load groups for team ${team}`, null);\r\n }\r\n\r\n return responseWPeriod.data;\r\n }\r\n\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n const [err, response] = await to(this.get(`${this.financeGroupEndpoint}?teamId=:team`, [['team', team]], config));\r\n if (err) {\r\n this.showFailedResponse(`Failed to load groups for team ${team}`, null);\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public getGroup(group: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(`${this.financeGroupEndpoint}/:group`, [['group', group]], config);\r\n }\r\n\r\n public getGroupResults(group: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.get(`${this.financeGroupEndpoint}/:group/results`, [['group', group]], config);\r\n }\r\n\r\n public compenstateCosts(groupId: number, teamId: number): Promise {\r\n return this.post(`${this.financeGroupEndpoint}/:group/compensate-members?teamId=:teamId`, null, [['group', groupId], ['teamId', teamId]]);\r\n }\r\n}\r\n","import { AxiosPromise } from 'axios';\r\nimport { AxiosHelper } from '../helpers/axiosHelper';\r\nimport Transfer from '../models/Transfer';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\nimport TransferRequest from '@/models/Finance/TransferRequest';\r\nimport IRecurringTransferRequest from '@/interfaces/IRecurringTransferRequest';\r\n\r\nexport class TransferService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getTransfersRequests(group: number): Promise {\r\n const [err, response] = await to(this.get(`${this.endpoint}transfer-requests?group=:groupId`, [['groupId', group]]));\r\n\r\n if (err) {\r\n this.showFailedResponse('Failed to load transfer requests', err);\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async createTransferRequest(model: any, amount: number, teamId: number, groupId?: number): Promise {\r\n let url = `${this.endpoint}transfer-requests?teamId=:team`;\r\n\r\n if (groupId) {\r\n url += '&groupId=:?group';\r\n }\r\n\r\n const requestModel = Object.assign({}, model);\r\n requestModel.transfer.amount = amount;\r\n\r\n const [err, response] = await to(this.post(url, requestModel, [['team', teamId], ['group', groupId]]));\r\n if (err) {\r\n this.showFailedResponse('UPDATE_TRANSFER_FAILED', err);\r\n return;\r\n }\r\n\r\n this.clearAndShowSuccess('UPDATE_TRANSFER_SUCCESS');\r\n return response.data;\r\n }\r\n\r\n public async updateTransferRequest(model: any, teamId: number, groupId?: number): Promise {\r\n this.showPending('UPDATE_TRANSFER_PENDING');\r\n\r\n let url = `${this.endpoint}transfer-requests/${model.transferRequestId}?teamId=:team`;\r\n\r\n if (groupId) {\r\n url += '&groupId=:?group';\r\n }\r\n const [err, response] = await to(this.put(url, model, [['team', teamId], ['group', groupId]]));\r\n if (err) {\r\n this.showFailedResponse('UPDATE_TRANSFER_FAILED', err);\r\n return;\r\n }\r\n\r\n this.clearAndShowSuccess('UPDATE_TRANSFER_SUCCESS');\r\n return response.data;\r\n }\r\n\r\n public async acceptTransferRequest(transferRequestId: number): Promise {\r\n this.showPending('ACCEPT_TRANSFER_PENDING');\r\n const [err] = await to(\r\n this.post(`${this.endpoint}transfer-requests/:id/accept`, { transferRequestId }, [['id', transferRequestId]]),\r\n );\r\n if (err) {\r\n const localErr = err as any;\r\n this.clearAndShowError(`ACCEPT_TRANSFER_FAILED`, localErr);\r\n return false;\r\n }\r\n\r\n this.clearAndShowSuccess('ACCEPT_TRANSFER_SUCCESS');\r\n return true;\r\n }\r\n\r\n public async withdrawRequest(transferRequestId: number): Promise {\r\n this.showPending('REJECT_TRANSFER_PENDING');\r\n\r\n const [err] = await to(\r\n this.post(`${this.endpoint}transfer-requests/:id/withdraw`, { transferRequestId }, [['id', transferRequestId]]),\r\n );\r\n if (err) {\r\n const localErr = err as any;\r\n this.clearAndShowError(`REJECT_TRANSFER_FAILED`, localErr);\r\n return false;\r\n }\r\n\r\n this.clearAndShowSuccess('REJECT_TRANSFER_SUCCESS');\r\n return true;\r\n }\r\n\r\n public async rejectTransferRequest(transferRequestId: number): Promise {\r\n this.showPending('REJECT_TRANSFER_PENDING');\r\n\r\n const [err] = await to(\r\n this.post(`${this.endpoint}transfer-requests/:id/reject`, { transferRequestId }, [['id', transferRequestId]]),\r\n );\r\n if (err) {\r\n const localErr = err as any;\r\n this.clearAndShowError(`REJECT_TRANSFER_FAILED`, localErr);\r\n return false;\r\n }\r\n\r\n this.clearAndShowSuccess('REJECT_TRANSFER_SUCCESS');\r\n return true;\r\n }\r\n\r\n public doTransfer(transfer: Transfer): AxiosPromise {\r\n const model = {\r\n group: transfer.group,\r\n initiator: transfer.initiator,\r\n reason: transfer.reason,\r\n sender: transfer.sender,\r\n receiver: transfer.receiver,\r\n senderTeam: transfer.senderTeam.teamId,\r\n receiverTeam: transfer.receiverTeam.teamId,\r\n amount: transfer.amount,\r\n invoiceType: transfer.invoiceType,\r\n };\r\n\r\n return this.post(`${this.endpoint}transfers`, model);\r\n }\r\n\r\n public updateTransfer(transfer: Transfer) {\r\n const model = {\r\n reason: transfer.reason,\r\n amount: transfer.amount,\r\n };\r\n\r\n return this.put(`${this.endpoint}transfers/${transfer.transferId}`, model);\r\n }\r\n\r\n public deleteTransfer(transferId: number): AxiosPromise {\r\n return this.delete(`${this.endpoint}transfers/${transferId}`);\r\n }\r\n\r\n public async getTransfers(team: number, group: number, personId: number, period: string): Promise {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n const [err, response] = await to(\r\n this.get(\r\n `${this.endpoint}transfers?teamId=:team&groupId=:?group&personId=:?personId`,\r\n [['team', team], ['group', group], ['personId', personId]],\r\n config,\r\n ),\r\n );\r\n\r\n if (err) {\r\n this.clearAndShowError('Failed to load transfers', err);\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async getCrossTeamPersonTransfers(team: number, period: string, personId?: number): Promise {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n if (personId) {\r\n const [errPerson, responsePerson] = await to(\r\n this.get(\r\n `${this.endpoint}transferred-funds?teamId=:team&personId=:?personId`,\r\n [['team', team], ['personId', personId]],\r\n config,\r\n ),\r\n );\r\n\r\n if (errPerson) {\r\n // this.clearAndShowError('Failed to load transfer', errPerson);\r\n return [];\r\n }\r\n\r\n return responsePerson.data;\r\n }\r\n\r\n const [err, response] = await to(this.get(`${this.endpoint}transferred-funds?teamId=:team`, [['team', team]], config));\r\n if (err) {\r\n // this.clearAndShowError('Failed to load transfer', err);\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public createRecurringTransfer(transfer: IRecurringTransferRequest) {\r\n return this.post(`${this.endpoint}recurring-transfers`, transfer);\r\n }\r\n\r\n public stopRecurringTransfer(transferId: number, endPeriod: string) {\r\n return this.post(`${this.endpoint}recurring-transfers/${transferId}/stop`, { endPeriod }, null, {\r\n headers: { 'Content-Type': 'application/json' },\r\n });\r\n }\r\n\r\n public getReucrringTransfers(period: string, teamId: number, groupId?: number) {\r\n let url = `${this.endpoint}recurring-transfers?teamId=${teamId}`;\r\n if (groupId) {\r\n url += `&groupId=${groupId}`;\r\n }\r\n if (period) {\r\n const headers = { 'x-period': period };\r\n return this.get(url, null, { headers });\r\n } else {\r\n return this.get(url);\r\n }\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport TeamSettings from '@/models/TeamSettings';\r\n\r\nexport class SettingService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public saveTeamSettings(teamId: number, teamFinanceSettings: TeamSettings) {\r\n return this.post(\r\n `${this.endpoint}team-settings?teamId=:team`,\r\n {\r\n defaultGroupPrivacyLevel: teamFinanceSettings.defaultGroupPrivacyLevel,\r\n allExpensesPrivacyLevel: teamFinanceSettings.allExpensesPrivacyLevel,\r\n memberResultsPrivacyLevel: teamFinanceSettings.memberResultsPrivacyLevel,\r\n },\r\n [['team', teamId]],\r\n );\r\n }\r\n\r\n public getTeamSettings(teamId: number) {\r\n return this.get(`${this.endpoint}team-settings?teamId=:team`, [['team', teamId]]);\r\n }\r\n}\r\n","import { loginHelper } from '@/main';\r\nimport { profileModule } from '@/store/modules/profile';\r\nimport { Membership } from '../models/Interfaces';\r\n\r\nexport class EcosystemHelper {\r\n public _currentEcosystem: Membership = null;\r\n public setupIsDone: boolean = false;\r\n\r\n public async setup() {\r\n let ecosystemId = null;\r\n const urlSegments = window.location.pathname.split('/');\r\n\r\n if (typeof urlSegments === 'object' && urlSegments.length > 1) {\r\n ecosystemId = parseInt(urlSegments[1].split('-')[0]);\r\n }\r\n\r\n this.setEcosystemByEcosystemId(ecosystemId);\r\n this.setupIsDone = true;\r\n }\r\n\r\n public getEcosystem(id?: number) {\r\n if (!id && this._currentEcosystem) {\r\n id = this._currentEcosystem.id;\r\n }\r\n\r\n const user = profileModule.brightProfile;\r\n let ecosystem = user.ecosystemMemberships.find((x) => x.id === id);\r\n if (ecosystem) {\r\n return ecosystem;\r\n }\r\n\r\n ecosystem = user.ecosystemMemberships.find((x) => x.id === user.primaryEcosystem);\r\n if (ecosystem) {\r\n return ecosystem;\r\n }\r\n\r\n return user.ecosystemMemberships[0];\r\n }\r\n\r\n public setEcosystemByEcosystemId(id: number) {\r\n this._currentEcosystem = this.getEcosystem(id);\r\n }\r\n\r\n // public getEcosystemId(key?: string): any {\r\n // const ecosystem = this.getEcosystem(key);\r\n // return ecosystem.id;\r\n // }\r\n\r\n public getEcosystemName(id: number): any {\r\n const user = loginHelper.getUser();\r\n const team = user.ecosystemMemberships.find((membership) => {\r\n return membership.id === id;\r\n });\r\n\r\n if (team) {\r\n return team.name;\r\n }\r\n return user.ecosystemMemberships[0].name;\r\n }\r\n\r\n get currentEcosystem(): Membership {\r\n return this._currentEcosystem;\r\n }\r\n\r\n get ecosystemParam(): string {\r\n return `${this._currentEcosystem.id}-${this._currentEcosystem.key}`;\r\n }\r\n}\r\n","import Ledger from '@/models/Finance/Ledger';\r\nimport Vue from 'vue';\r\nimport { BaseService } from './baseService';\r\n\r\nexport default class LedgerService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}ledgers`;\r\n\r\n public getLedgers() {\r\n return this.get(this.endpoint);\r\n }\r\n\r\n public postLedgers(ledger: Ledger) {\r\n return this.post(this.endpoint, ledger);\r\n }\r\n\r\n public updateLedgers(ledger: Ledger) {\r\n return this.put(`${this.endpoint}/${ledger.ledgerId}`, ledger);\r\n }\r\n}\r\n","import Relation, { RelationSettings } from '@/models/Finance/Relation';\r\nimport to from 'await-to-js';\r\nimport Vue from 'vue';\r\nimport { BaseService } from './baseService';\r\n\r\nexport default class RelationService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}/relations`;\r\n\r\n public getRelationProperties() {\r\n return this.get(`${Vue.$env().financeEndpoint}relationship-properties`);\r\n }\r\n\r\n public async getRelations(includeDeleted: boolean, teamId?: number, groupId?: number): Promise {\r\n let url = `${this.endpoint}?includeDeleted=${includeDeleted}`;\r\n\r\n if (teamId) {\r\n url += `&teamId=${teamId}`;\r\n }\r\n\r\n if (groupId) {\r\n url += `&groupId=${groupId}`;\r\n }\r\n\r\n const [err, response] = await to(this.get(url));\r\n if (err) {\r\n this.clearAndShowError('FAILED_GETTING_RELATIONS', err);\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new Relation(x));\r\n }\r\n\r\n public async deleteRelation(relation: number): Promise {\r\n const [err] = await to(this.delete(`${this.endpoint}/:relation`, [['relation', relation]]));\r\n return !err;\r\n }\r\n\r\n public createOrUpdateSettings(relation: number, settings: RelationSettings) {\r\n const model = {\r\n intellectualPropertyLimitation: settings.intellectualPropertyLimitation.intellectualPropertyLimitationId,\r\n salesLedger: settings.salesLedger.ledgerId,\r\n purchaseLedger: settings.purchaseLedger.ledgerId,\r\n taxRateId: settings.taxRateId,\r\n };\r\n\r\n return this.put(`${this.endpoint}/:relation/settings`, model, [['relation', relation]]);\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport Template from '@/models/Finance/Template';\r\nimport to from 'await-to-js';\r\n\r\nexport class TemplateService extends BaseService {\r\n private endpoint = `${Vue.$env().financeEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getTemplates(teamId: number) {\r\n const [err, response] = await to(this.get(`${this.endpoint}templates?team_id=:teamId`, [['teamId', teamId]]));\r\n\r\n if (err) {\r\n this.showError('LOADING_TEMPLATES_FAILED');\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new Template(x));\r\n }\r\n\r\n public createTemplate(template: Template) {\r\n return this.post(`${this.endpoint}templates`, template);\r\n }\r\n\r\n public updateTemplate(template: Template) {\r\n return this.put(`${this.endpoint}templates/:templateId`, template, [['templateId', template.financeGroupTemplateId]]);\r\n }\r\n\r\n public deleteTemplate(template: Template) {\r\n return this.delete(`${this.endpoint}templates/:templateId`, [['templateId', template.financeGroupTemplateId]]);\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\nimport Notification from '@/components/notification/models/Notification';\r\n\r\nexport class NotificationsService extends BaseService {\r\n private endpoint = `${Vue.$env().notificationsEndpoint}`;\r\n private application = 'bright';\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getNotifications() {\r\n const [err, response] = await to(this.get(`${this.endpoint}notifications?application=${this.application}`));\r\n\r\n if (err) {\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new Notification(x));\r\n }\r\n\r\n public async markAsHandled(notification: Notification) {\r\n return this.post(`${this.endpoint}notifications/${notification.id}/handled?application=${this.application}`);\r\n }\r\n\r\n public async deleteNotification(notification: Notification) {\r\n return this.delete(`${this.endpoint}notifications/${notification.id}?application=${this.application}`);\r\n }\r\n}\r\n","import _Vue from 'vue';\r\nimport { events } from './sideActionsEvents';\r\n\r\n// export type PluginFunction = (Vue: typeof _Vue, options?: T) => void;\r\nexport default function SideActionsPlugin(vue: typeof _Vue, _?: any): void {\r\n vue.component('side-actions', require('./sideActionsComponent.vue').default);\r\n\r\n vue.prototype.$sideActions = {\r\n push(component: string, sideOptions: any, finishedHandler: () => void) {\r\n events.$emit('pushed', { component, sideOptions, finishedHandler });\r\n },\r\n };\r\n}\r\n","export default class Lens {\r\n public lensId: number;\r\n public name: string;\r\n public slug: string;\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { InvoiceType } from '../InvoiceType';\r\n\r\nexport default class PaymentStatus {\r\n public ecosystem: number = null;\r\n public invoiceId: number = null;\r\n public invoiceReference?: string = null;\r\n public invoiceDate: string = '';\r\n public externalIdentifier: string = '';\r\n public period: number = null;\r\n public periodMatched: number = null;\r\n public invoiceType: InvoiceType;\r\n public team: number = null;\r\n public invoiceAmount: number = null;\r\n public amountPaid: number = null;\r\n public paymentDate: string = '';\r\n\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport { BaseService } from './baseService';\r\nimport { AxiosHelper } from '@/helpers/axiosHelper';\r\nimport to from 'await-to-js';\r\nimport InsightView from '@/models/Insights/InsightView';\r\nimport { periodFilterHelper } from '@/main';\r\nimport Lens from '@/models/Insights/Lens';\r\nimport PaymentStatus from '@/models/Insights/PaymentStatus';\r\nimport PeriodRange from '@/models/PeriodRange';\r\n\r\nexport default class InsightsService extends BaseService {\r\n private endpoint = `${Vue.$env().insightsEndpoint}insight-views`;\r\n private lensEndpoint = `${Vue.$env().insightsEndpoint}lenses`;\r\n private cashLensEndpoint = `${Vue.$env().insightsEndpoint}cash-lens`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getViews(personal: boolean = false): Promise {\r\n const [err, response] = await to(this.get(`${this.endpoint}${personal ? '/personal' : ''}`));\r\n if (err) {\r\n this.clearAndShowError('LOAD_VIEWS_FAILED', err);\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new InsightView(x));\r\n }\r\n\r\n public async updateView(view: InsightView) {\r\n return this.put(`${this.endpoint}/${view.insightViewId}`, view);\r\n }\r\n\r\n public async createView(view) {\r\n return this.post(`${this.endpoint}`, view);\r\n }\r\n\r\n public async deleteView(view) {\r\n return this.delete(`${this.endpoint}/${view.insightViewId}`);\r\n }\r\n\r\n public async getLenses() {\r\n const [err, response] = await to(this.get(`${this.lensEndpoint}`));\r\n if (err) {\r\n this.clearAndShowError('LOAD_LENSES_FAILED', err);\r\n return [];\r\n }\r\n\r\n return response.data.map((x) => new Lens(x));\r\n }\r\n\r\n public async getLens(lens, view, dates: PeriodRange, paymentTerm: number = null) {\r\n const config = {\r\n headers: {\r\n 'x-startPeriod': dates && dates.fromFilterMonth ? dates.fromFilterMonth : periodFilterHelper.selectedPeriod(),\r\n 'x-endPeriod': dates && dates.toFilterMonth ? dates.toFilterMonth : periodFilterHelper.selectedPeriod(),\r\n },\r\n };\r\n\r\n return this.get(`${this.lensEndpoint}/${lens}?insight_view=${view}${paymentTerm ? `&payment_term=${paymentTerm}` : ''}`, null, config);\r\n }\r\n\r\n public async getPaymentStatusses(teamId): Promise {\r\n const [err, response] = await to(this.get(`${this.cashLensEndpoint}/payments?team_id=${teamId}`));\r\n if (err) {\r\n this.clearAndShowError('LOAD_PAYMENT_STATUSSES_FAILED', err);\r\n return [];\r\n }\r\n\r\n return response.data.map((x: Partial) => new PaymentStatus(x));\r\n }\r\n}\r\n","import { AxiosHelper } from '../helpers/axiosHelper';\r\nimport Attribution from '../models/Attribution';\r\nimport { BaseService } from './baseService';\r\nimport Vue from 'vue';\r\nimport to from 'await-to-js';\r\nimport { ecosystemHelper } from '@/main';\r\nimport { Member } from '@/models/Member';\r\n\r\nexport class EcosystemService extends BaseService {\r\n private endpoint = `${Vue.$env().directoryEndpoint}`;\r\n\r\n constructor(axiosHelper: AxiosHelper) {\r\n super(axiosHelper);\r\n }\r\n\r\n public async getSubscriptionInfo() {\r\n const [err, response] = await to(this.get(`${this.endpoint}subscription-data`));\r\n if (err) {\r\n return [];\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async createEcosytem(name: string) {\r\n const model = {\r\n name,\r\n };\r\n\r\n const [err, response] = await to(this.post(`${this.endpoint}ecosystems`, model, null));\r\n if (err) {\r\n this.clearAndShowWarning('FAILED_TO_CREATE_ECOSYSTEM');\r\n return null;\r\n }\r\n\r\n return response.data;\r\n }\r\n\r\n public async getMembers(): Promise {\r\n const ecosystemId = ecosystemHelper.currentEcosystem.id;\r\n const [err, response] = await to(this.get(`${this.endpoint}ecosystems/${ecosystemId}/members`));\r\n return err ? null : response.data;\r\n }\r\n\r\n public removeMember(memberId: number, ecosystemId: number, period: string) {\r\n const config = {\r\n headers: {\r\n 'x-period': period,\r\n },\r\n };\r\n\r\n return this.delete(`${this.endpoint}ecosystems/:ecosystemId/members/:memberId`, [['ecosystemId', ecosystemId], ['memberId', memberId]], config);\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport App from './App.vue';\r\nimport router from './router';\r\nimport VueAppInsights from 'vue-application-insights';\r\nimport Vuelidate from 'vuelidate';\r\n\r\nimport SharedUI from '@prd/shared-ui';\r\nimport './components/index';\r\nimport VueGoogleCharts from 'vue-google-charts';\r\n\r\nimport { AxiosHelper } from './helpers/axiosHelper';\r\nimport { LoginHelper } from './helpers/loginHelper';\r\nimport { MeService } from './services/meService';\r\nimport { GroupService } from './services/groupService';\r\nimport { PersonService } from './services/personService';\r\nimport { TeamService } from './services/teamService';\r\nimport { FinanceService } from './services/financeService';\r\nimport { FinanceAccountService } from './services/financeAccountService';\r\nimport { AttributionService } from './services/attributionService';\r\nimport { ResultService } from './services/resultService';\r\nimport { CompensationService } from './services/compensationService';\r\nimport UserRoleService from './services/userRoleService';\r\nimport { PeriodService } from './services/periodService';\r\nimport { ErrorHelper } from './helpers/errorHelper';\r\nimport { RoleHelper } from './helpers/roleHelper';\r\nimport { TeamHelper } from './helpers/teamHelper';\r\nimport { GroupHelper } from './helpers/GroupHelper';\r\nimport { MemberHelper } from './helpers/memberHelper';\r\nimport { PeriodFilterHelper } from './helpers/periodFilterHelper';\r\nimport NavigationHelper from './helpers/navigationHelper';\r\nimport { EventBus } from './events/EventBus';\r\nimport { LoginService } from './services/loginService';\r\nimport '@/extensions/numberExtensions';\r\nimport MapService from './services/mapService';\r\nimport store from '@/store/index';\r\nimport ConnectorService from './services/connectorsService';\r\nimport { FinanceGroupService } from './services/financeGroupService';\r\nimport { TransferService } from './services/transferService';\r\nimport { SettingService } from './services/settingService';\r\nimport { EcosystemHelper } from './helpers/ecosystemHelper';\r\nimport { translateModule } from './store/modules/translate';\r\nimport LedgerService from './services/LedgerService';\r\nimport RelationService from './services/RelationService';\r\nimport { TemplateService } from './services/templateService';\r\nimport { NotificationsService } from './services/notificationsService';\r\nimport SideActionsPlugin from './plugin/sideActions/sideActions';\r\nimport InsightsService from './services/insightViewService';\r\nimport { EcosystemService } from './services/ecosystemService';\r\nimport { numberFormat } from './filters';\r\n\r\nVue.use(SharedUI);\r\nVue.use(Vuelidate);\r\nVue.use(SideActionsPlugin);\r\nVue.use(VueGoogleCharts);\r\n\r\nif (Vue.$env().instrumentationKey) {\r\n Vue.use(VueAppInsights, {\r\n id: Vue.$env().instrumentationKey,\r\n router,\r\n });\r\n}\r\n\r\nexport const $router = router;\r\nexport const eventBus = new EventBus();\r\nexport const axiosHelper = new AxiosHelper({}, {});\r\nexport const loginService = new LoginService();\r\nexport const loginHelper = new LoginHelper(loginService);\r\nexport const meService = new MeService(axiosHelper);\r\nexport const groupService = new GroupService(axiosHelper);\r\nexport const personService = new PersonService(axiosHelper);\r\nexport const teamService = new TeamService(axiosHelper);\r\nexport const financeService = new FinanceService(axiosHelper);\r\nexport const transferService = new TransferService(axiosHelper);\r\nexport const financeAccountService = new FinanceAccountService(axiosHelper);\r\nexport const attributionService = new AttributionService(axiosHelper);\r\nexport const resultService = new ResultService(axiosHelper);\r\nexport const compensationService = new CompensationService(axiosHelper);\r\nexport const userRoleService = new UserRoleService(axiosHelper);\r\nexport const periodService = new PeriodService(axiosHelper);\r\nexport const mapService = new MapService(axiosHelper);\r\nexport const connectorService = new ConnectorService(axiosHelper);\r\nexport const financeGroupService = new FinanceGroupService(axiosHelper);\r\nexport const settingService = new SettingService(axiosHelper);\r\nexport const ledgerService = new LedgerService(axiosHelper);\r\nexport const relationService = new RelationService(axiosHelper);\r\nexport const templateService = new TemplateService(axiosHelper);\r\nexport const notificationsService = new NotificationsService(axiosHelper);\r\nexport const insightService = new InsightsService(axiosHelper);\r\nexport const ecosystemService = new EcosystemService(axiosHelper);\r\nexport const errorHelper = new ErrorHelper(router);\r\nexport const roleHelper = new RoleHelper();\r\nexport const teamHelper = new TeamHelper();\r\nexport const ecosystemHelper = new EcosystemHelper();\r\nexport const groupHelper = new GroupHelper();\r\nexport const memberHelper = new MemberHelper();\r\nexport const periodFilterHelper = new PeriodFilterHelper();\r\nexport const navigationHelper = new NavigationHelper();\r\n\r\nVue.config.productionTip = false;\r\n\r\nVue.filter('number-format', (n: number) => {\r\n if (!n || typeof n === 'undefined' || n == null) {\r\n return 0;\r\n }\r\n\r\n if (n > -1000 && n < 1000) {\r\n return n.round(2).replace('.', ',');\r\n }\r\n\r\n const parts = n.round(2).split('.');\r\n const chars = [];\r\n let i = 0;\r\n\r\n if (parts.length === 2) {\r\n chars.push(`,${parts[1]}`);\r\n }\r\n\r\n parts[0]\r\n .split('')\r\n .reverse()\r\n .forEach((c) => {\r\n chars.push(c);\r\n i++;\r\n if (i > 0 && i % 3 === 0) {\r\n chars.push(' ');\r\n }\r\n });\r\n\r\n return chars.reverse().join('');\r\n});\r\n\r\nVue.filter('numberFormat', numberFormat);\r\n\r\nnew Vue({\r\n store,\r\n data: {\r\n loginHelper,\r\n periodFilterHelper,\r\n teamHelper,\r\n ecosystemHelper,\r\n roleHelper,\r\n navigationHelper,\r\n },\r\n computed: {\r\n inEditMode() {\r\n return translateModule.inEditMode;\r\n },\r\n },\r\n router,\r\n render: (h) => h(App),\r\n}).$mount('#app');\r\n","export enum AccountType {\r\n Uknonwn = 'Unknown',\r\n Invoice = 'Invoice',\r\n Team = 'Team',\r\n GroupIncome = 'GroupIncome',\r\n Person = 'Person',\r\n GroupSavings = 'GroupSavings',\r\n GroupOverflow = 'GroupOverflow',\r\n}\r\n","import { AttributionInterface } from './Interfaces';\r\nimport Group from './Group';\r\nimport { AttributionType } from './AttributionType';\r\nimport Team from './Team';\r\n\r\nexport default class Attribution implements AttributionInterface {\r\n public attributionId: number;\r\n public group: number;\r\n public groups: Group[] = [];\r\n public groupModel: Group;\r\n public percentage: any;\r\n public attributionType: AttributionType;\r\n public targetGroup: number;\r\n public targetTeam: number;\r\n public targetGroupModel: Group;\r\n public targetTeamModel: Team = null;\r\n public targetAccount: number;\r\n public team: number;\r\n public name: string;\r\n\r\n constructor(percentage: any, name: string = '') {\r\n this.percentage = percentage;\r\n this.name = name;\r\n }\r\n}\r\n","export enum AttributionType {\r\n Unknown = 'Unknown',\r\n TeamAttribution = 'TeamAttribution',\r\n GroupRemittance = 'GroupRemittance',\r\n GroupAttribution = 'GroupAttribution',\r\n}\r\n","import Group from './Group';\r\nimport Vue from 'vue';\r\nimport { Person } from './Person';\r\n\r\nexport default class Compensation {\r\n public group: Group = null;\r\n public energyDedication: number = 0;\r\n public amounts: number[] = [];\r\n public costs: number = null;\r\n public member: Person = null;\r\n public compensation: number = 0;\r\n public attributions: number = 0;\r\n\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n\r\n public getTotalAmount = function(): number {\r\n let amount = 0;\r\n this.amounts.forEach((a: number) => {\r\n amount += a;\r\n });\r\n return amount;\r\n };\r\n\r\n public getTotalAmountString = function(): string {\r\n return Vue.filter('number-format')(this.getTotalAmount());\r\n };\r\n\r\n public calculateFinancialCompensation = function(): number {\r\n if (this.energyDedication === 0 || this.costs === 0) {\r\n return 0;\r\n }\r\n return (this.getTotalAmount() / (this.costs * (this.energyDedication / 100))) * 100;\r\n };\r\n\r\n public financialCompensation = function(): string {\r\n const self = this;\r\n return `${self.calculateFinancialCompensation().toFixed(1)}%`;\r\n };\r\n\r\n public setCosts(costs: number) {\r\n this.costs = costs;\r\n }\r\n}\r\n","import { Invoice } from './Invoice';\r\nimport { Distribution, DistributedInvoiceInterface } from './Interfaces';\r\nimport { AccountType } from './AccountType';\r\n\r\nexport default class DistributedInvoice implements DistributedInvoiceInterface {\r\n public invoice: Invoice;\r\n public distributions: Distribution[] = [];\r\n public amountDistributed: number;\r\n public selected: boolean = false;\r\n public amountLeft: number;\r\n public amountLeftFilter: number;\r\n\r\n constructor(item?: any) {\r\n if (item != null) {\r\n Object.assign(this, item);\r\n }\r\n }\r\n\r\n public getPersonDistributions = function(personId: number): Distribution[] {\r\n if (typeof personId === 'undefined' || personId === null) {\r\n console.error('Given personId is undefined or null. Please give a valid personId');\r\n }\r\n\r\n return this.distributions.filter((distribution: Distribution) => {\r\n if (distribution.account) {\r\n return distribution.account.relatedEntityId === personId && distribution.account.accountType === AccountType.Person;\r\n }\r\n });\r\n };\r\n\r\n public getDistributionsByType = function(type: AccountType): Distribution[] {\r\n if (typeof type === 'undefined' || type === null) {\r\n console.error('Given type is undefined or null. Please give a valid type');\r\n }\r\n\r\n return this.distributions.filter((distribution: Distribution) => {\r\n if (distribution.account) {\r\n return distribution.account.accountType === type;\r\n }\r\n });\r\n };\r\n public getGroupSavings = function(groupId: number): Distribution[] {\r\n if (typeof groupId === 'undefined' || groupId === null) {\r\n console.error('Given groupId is undefined or null. Please give a valid groupId');\r\n }\r\n\r\n return this.distributions.filter((distribution: Distribution) => {\r\n if (distribution.account) {\r\n return distribution.account.relatedEntityId === groupId && distribution.account.accountType === AccountType.GroupSavings;\r\n }\r\n });\r\n };\r\n\r\n public hasDistributions(entityId: number, type: AccountType) {\r\n if (this.distributions.length === 0) {\r\n return false;\r\n }\r\n\r\n const distributions = this.distributions.filter((distribution: Distribution) => {\r\n if (distribution.account) {\r\n return distribution.account.relatedEntityId === entityId && distribution.account.accountType === type;\r\n }\r\n });\r\n\r\n if (distributions.length < 1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { FinanceInterface, Distribution } from './Interfaces';\r\nimport DistributedInvoice from './DistributedInvoice';\r\nimport { AccountType } from './AccountType';\r\nimport { functions } from '@/helpers/functions';\r\nimport Vue from 'vue';\r\n\r\nexport default class FinanceBase implements FinanceInterface {\r\n public totalIncomes: string;\r\n public totalIncomesAmount: number;\r\n public totalExpenses: string;\r\n public totalExpensesAmount: number;\r\n public totalExtras: string;\r\n public totalCosts: string;\r\n public totalCostAmount: number;\r\n public totalResult: string = 'N/A';\r\n public totalResultAmount: number;\r\n public totalBudget: string = 'N/A';\r\n public totalTransfers: string;\r\n public totalTransfersAmount: number;\r\n public totalExternalTransfers: string;\r\n public totalExternalTransferAmount: number;\r\n\r\n public previousBalance: string = 'N/A';\r\n public currentBalance: string = 'N/A';\r\n public currentBalanceAmount: number;\r\n public ratio: any;\r\n\r\n public invoices: DistributedInvoice[] = [];\r\n public expenses: DistributedInvoice[] = [];\r\n public extras: DistributedInvoice[] = [];\r\n\r\n constructor(invoices, expenses) {\r\n this.invoices = this._initDistributedInvoices(invoices);\r\n this.expenses = this._initDistributedInvoices(expenses);\r\n }\r\n\r\n public _initDistributedInvoices(invoices): DistributedInvoice[] {\r\n const distributedInvoices = [];\r\n invoices.forEach((invoice) => {\r\n distributedInvoices.push(new DistributedInvoice(invoice));\r\n });\r\n return distributedInvoices;\r\n }\r\n\r\n public calculateTotalDistributions(invoices, type?: AccountType) {\r\n let total = 0;\r\n invoices.forEach((invoice: DistributedInvoice) => {\r\n if (type) {\r\n const distributions = invoice.getDistributionsByType(type);\r\n\r\n distributions.forEach((distribution) => {\r\n total += distribution.amount;\r\n });\r\n } else {\r\n total += invoice.amountDistributed;\r\n }\r\n });\r\n return total;\r\n }\r\n\r\n public calculatePersonIncome(personId: number, incomes): number {\r\n let income = 0;\r\n incomes.forEach((invoice: DistributedInvoice) => {\r\n const distributions = invoice.getPersonDistributions(personId);\r\n distributions.forEach((distribution) => {\r\n income += distribution.amount;\r\n });\r\n });\r\n return income;\r\n }\r\n\r\n public calculatePersonExpenses(personId: number, expenses): number {\r\n let total = 0;\r\n expenses\r\n .filter((expense: DistributedInvoice) => expense.invoice.isRecurring)\r\n .forEach((expense: DistributedInvoice) => {\r\n const distributions = functions.getPersonDistributions(personId, expense.distributions);\r\n distributions.forEach((distribution: Distribution) => {\r\n total += distribution.amount;\r\n });\r\n });\r\n return total;\r\n }\r\n\r\n public calculatePersonExtras(personId: number, expenses): number {\r\n let total = 0;\r\n expenses\r\n .filter((expense: DistributedInvoice) => !expense.invoice.isRecurring)\r\n .forEach((expense: DistributedInvoice) => {\r\n const distributions = functions.getPersonDistributions(personId, expense.distributions);\r\n distributions.forEach((distribution: Distribution) => {\r\n total += distribution.amount;\r\n });\r\n });\r\n return total;\r\n }\r\n\r\n public filterEmptyInvoices(invoices) {\r\n const distributedInvoices = [];\r\n invoices.forEach((invoice) => {\r\n const distributedInvoice = new DistributedInvoice(invoice);\r\n if (distributedInvoice.distributions.length > 0 && distributedInvoice.amountDistributed !== 0) {\r\n distributedInvoices.push(distributedInvoice);\r\n }\r\n });\r\n return distributedInvoices;\r\n }\r\n\r\n public filterEntityDistributions(invoices, entityId: number, type: AccountType) {\r\n return invoices.filter((invoice: DistributedInvoice) => {\r\n return invoice.hasDistributions(entityId, type);\r\n });\r\n }\r\n\r\n public setTotals(incomes, expenses, costs, result, previousBalance, currentBalanceAmount, transfers) {\r\n this.totalIncomes = `(${Vue.filter('number-format')(incomes)})`;\r\n this.totalExpenses = `(${Vue.filter('number-format')(expenses)})`;\r\n this.totalCosts = `(${Vue.filter('number-format')(costs)})`;\r\n this.totalTransfers = `(${Vue.filter('number-format')(transfers)})`;\r\n\r\n if (previousBalance && currentBalanceAmount) {\r\n this.totalResult = `(${Vue.filter('number-format')(result)})`;\r\n this.previousBalance = `(${Vue.filter('number-format')(previousBalance)})`;\r\n this.currentBalance = `(${Vue.filter('number-format')(currentBalanceAmount)})`;\r\n this.totalBudget = `(${Vue.filter('number-format')(currentBalanceAmount)})`;\r\n }\r\n }\r\n}\r\n","import FinanceBase from './FinanceBase';\r\nimport DistributedInvoice from './DistributedInvoice';\r\nimport { Distribution } from './Interfaces';\r\nimport Group from './Group';\r\nimport { transferService } from '@/main';\r\nimport Transfer from './Transfer';\r\nimport { InvoiceType } from './InvoiceType';\r\nimport Vue from 'vue';\r\nimport AccountFunds from './Finance/Api/AccountFunds';\r\nimport Range from './Finance/Api/Range';\r\nimport { AccountType } from './AccountType';\r\n\r\nexport default class FinanceGroup extends FinanceBase {\r\n public compensations: any[];\r\n public attributions: any[];\r\n public transfers: Transfer[];\r\n public account: any;\r\n public group: Group;\r\n public teamId: number;\r\n public totalCompensations: any;\r\n public avarageEnergyDedication: any = 'N/A';\r\n\r\n constructor(\r\n teamId = 0,\r\n group = {} as Group,\r\n invoices = [],\r\n expenses = [],\r\n transfers = [],\r\n compensations = [],\r\n attributions = [],\r\n currentBalance: Range = new Range(),\r\n ) {\r\n super(invoices, expenses);\r\n\r\n this.group = group;\r\n this.teamId = teamId;\r\n this.expenses = this.filterEmptyInvoices(expenses);\r\n this.transfers = transfers;\r\n this.compensations = compensations;\r\n this.attributions = attributions;\r\n this.currentBalanceAmount =\r\n currentBalance && currentBalance.items.length > 0 ? currentBalance.items[currentBalance.items.length - 1].item.balance : 0;\r\n const previousBalance =\r\n currentBalance && currentBalance.items.length > 1 ? currentBalance.items[currentBalance.items.length - 2].item.balance : 0;\r\n\r\n this.totalIncomesAmount = this.calculateGroupIncome();\r\n this.totalExpensesAmount = this.calculateTotalDistributions(this.expenses, AccountType.GroupSavings);\r\n this.totalExternalTransferAmount = this.calculateTotalTranfers(\r\n this.transfers.filter((transfer: Transfer) => {\r\n return transfer.transferType.toString() === 'GroupToGroup';\r\n }),\r\n );\r\n this.calculateCosts();\r\n this.calculateResults();\r\n this.calculateCompensations();\r\n\r\n this.setTotals(\r\n this.totalIncomesAmount,\r\n this.totalExpensesAmount,\r\n this.totalCostAmount,\r\n this.totalResultAmount,\r\n previousBalance,\r\n this.currentBalanceAmount,\r\n this.totalExternalTransferAmount,\r\n );\r\n }\r\n\r\n public calculateCosts() {\r\n this.totalCostAmount = this.calculateGroupCosts();\r\n this.totalCosts = Vue.filter('number-format')(this.totalCostAmount);\r\n }\r\n\r\n public calculateResults() {\r\n this.totalResultAmount = this.totalIncomesAmount - this.totalCostAmount;\r\n this.totalResult = Vue.filter('number-format')(this.totalResultAmount);\r\n }\r\n\r\n public async recalculateTotals() {\r\n this.calculateCompensations();\r\n this.calculateCosts();\r\n this.calculateResults();\r\n }\r\n\r\n public setCompensations(compensations) {\r\n this.compensations = compensations;\r\n }\r\n\r\n public calculateGroupSavings() {\r\n let total = 0;\r\n this.invoices.forEach((invoice: DistributedInvoice) => {\r\n invoice.getGroupSavings(this.group.groupId).forEach((distribution: Distribution) => {\r\n total += distribution.amount;\r\n });\r\n });\r\n return total;\r\n }\r\n\r\n public calculateCompensations() {\r\n let compensations = 0;\r\n this.compensations.forEach((compensation: any) => {\r\n compensations += compensation.compensation;\r\n compensations += compensation.invoiceIncome;\r\n });\r\n\r\n this.totalCompensations = Vue.filter('number-format')(compensations);\r\n\r\n return compensations;\r\n }\r\n\r\n public calculateGroupIncome() {\r\n let attributions = 0;\r\n let totalAttributedDistributions = 0;\r\n let totalNonAttributedDistributions = 0;\r\n let totalAttributions = 0;\r\n\r\n this.attributions.forEach((attribution: any) => {\r\n attributions += attribution.percentage;\r\n });\r\n\r\n totalAttributedDistributions = this.calculateTotalDistributions(\r\n this.invoices.filter((distributedInvoice: DistributedInvoice) => {\r\n return distributedInvoice.invoice.invoiceType !== InvoiceType.InternalIncome;\r\n }),\r\n );\r\n\r\n totalNonAttributedDistributions = this.calculateTotalDistributions(\r\n this.invoices.filter((distributedInvoice: DistributedInvoice) => {\r\n return distributedInvoice.invoice.invoiceType === InvoiceType.InternalIncome;\r\n }),\r\n );\r\n\r\n totalAttributions = (totalAttributedDistributions * attributions) / 100;\r\n\r\n // client income (-group attributions) + group savings\r\n return totalAttributedDistributions + totalNonAttributedDistributions - totalAttributions;\r\n }\r\n\r\n public calculateGroupCosts() {\r\n // compensations - expenses\r\n return (\r\n this.calculateCompensations() +\r\n this.calculateTotalDistributions(this.expenses, AccountType.GroupSavings) +\r\n this.totalExternalTransferAmount\r\n );\r\n }\r\n\r\n public calculateTotalTranfers(transfers: Transfer[]) {\r\n let transferTotal = 0;\r\n\r\n transfers.forEach((transfer: any) => {\r\n transferTotal += transfer.amount;\r\n });\r\n return transferTotal;\r\n }\r\n\r\n public async reloadTransfers(team, groupKey, period) {\r\n return await transferService.getTransfers(team, groupKey, null, period);\r\n }\r\n}\r\n","import FinanceBase from './FinanceBase';\r\nimport Compensation from './Compensation';\r\nimport DistributedInvoice from './DistributedInvoice';\r\nimport Transfer from './Transfer';\r\nimport { Distribution } from './Interfaces';\r\nimport { AccountType } from './AccountType';\r\nimport { teamHelper } from '@/main';\r\nimport Vue from 'vue';\r\nimport Range from './Finance/Api/Range';\r\nimport AccountFunds from './Finance/Api/AccountFunds';\r\n\r\nexport default class FinanceMe extends FinanceBase {\r\n public transfers: any;\r\n public personTransfers: any;\r\n public groups: any;\r\n public memberName: string;\r\n public personId: number;\r\n public compensations: any;\r\n public previousInvoices: any;\r\n public previousExpenses: any;\r\n public previousExtras: any;\r\n public totalPreviousIncomes: string;\r\n public totalPreviousExpenses: string;\r\n public totalPreviousExtras: string;\r\n public totalPreviousExternalTransfers: string;\r\n public totalPreviousResult: string;\r\n public totalPreviousBudget: string;\r\n\r\n constructor(\r\n personId: number,\r\n invoices,\r\n previousInvoices,\r\n expenses,\r\n previousExpenses,\r\n balance: Range,\r\n externalTransfers,\r\n prevExternalTransfers,\r\n ) {\r\n super(invoices, expenses);\r\n\r\n this.personId = personId;\r\n this.invoices = this.filterEmptyInvoices(invoices);\r\n this.expenses = this.filterEmptyInvoices(expenses);\r\n this.personTransfers = externalTransfers;\r\n\r\n const recurringExpenses = this.expenses.filter((invoice) => {\r\n return invoice.invoice.isRecurring;\r\n });\r\n this.extras = this.expenses.filter((invoice) => {\r\n return !invoice.invoice.isRecurring;\r\n });\r\n this.expenses = recurringExpenses;\r\n\r\n this.previousInvoices = this.filterEmptyInvoices(previousInvoices);\r\n this.previousExpenses = this.filterEmptyInvoices(previousExpenses);\r\n\r\n const previousRecurringExpenses = this.previousExpenses.filter((invoice) => {\r\n return invoice.invoice.isRecurring;\r\n });\r\n this.previousExtras = this.previousExpenses.filter((invoice) => {\r\n return !invoice.invoice.isRecurring;\r\n });\r\n this.previousExpenses = previousRecurringExpenses;\r\n\r\n const totalIncomes = this.calculatePersonIncome(this.personId, this.invoices);\r\n const totalPreviousIncomes = this.calculatePersonIncome(this.personId, this.previousInvoices);\r\n const totalExpenses = this.calculatePersonExpenses(this.personId, this.expenses);\r\n const totalPreviousExpenses = this.calculatePersonExpenses(this.personId, this.previousExpenses);\r\n const totalExtras = this.calculatePersonExtras(this.personId, this.extras);\r\n const totalPreviousExtras = this.calculatePersonExtras(this.personId, this.previousExtras);\r\n const totalTransfers = this.calculateExternalTransferAmount(externalTransfers);\r\n const totalPrevTransfers = this.calculateExternalTransferAmount(prevExternalTransfers);\r\n\r\n this.setMeFinanceTotals(\r\n totalIncomes,\r\n totalPreviousIncomes,\r\n totalExpenses,\r\n totalPreviousExpenses,\r\n balance,\r\n totalExtras,\r\n totalPreviousExtras,\r\n totalTransfers,\r\n totalPrevTransfers,\r\n );\r\n }\r\n\r\n public loadCompensations(groups, transfers) {\r\n const compensations = [];\r\n this.invoices.forEach((invoice: DistributedInvoice) => {\r\n if (!invoice.invoice.group) {\r\n const transfer = transfers.find((t: Transfer) => {\r\n return t.invoice === invoice.invoice.invoiceId;\r\n });\r\n if (transfer) {\r\n invoice.invoice.group = transfer.group;\r\n }\r\n }\r\n });\r\n\r\n for (let i = 0; i < groups.length; i++) {\r\n const compensation = new Compensation();\r\n compensation.costs = this.calculatePersonExpenses(this.personId, this.expenses);\r\n compensation.group = groups[i];\r\n compensation.energyDedication = parseInt(groups[i].energyDedication);\r\n\r\n // select all group income invoices\r\n const groupInvoices = this.invoices.filter((invoice: DistributedInvoice) => {\r\n const groupIncomeAccount = invoice.distributions.find((distribution: Distribution) => {\r\n if (distribution.account) {\r\n return (\r\n distribution.account.relatedEntityId === groups[i].groupId && distribution.account.accountType === AccountType.GroupIncome\r\n );\r\n }\r\n });\r\n return invoice.invoice.group === groups[i].groupId || groupIncomeAccount;\r\n });\r\n\r\n groupInvoices.forEach((invoice) => {\r\n invoice.distributions.forEach((distribution: Distribution) => {\r\n compensation.amounts.push(distribution.amount);\r\n });\r\n });\r\n\r\n if ((compensation.amounts && compensation.amounts.length) || compensation.group.energyDedication > 0) {\r\n compensations.push(compensation);\r\n }\r\n }\r\n\r\n this.compensations = compensations;\r\n }\r\n\r\n public calculateExternalTransferAmount(transfers: any) {\r\n let amount = 0;\r\n const team = teamHelper.currentTeamId;\r\n const teamId = teamHelper.getTeamId(team);\r\n\r\n transfers.forEach((transfer) => {\r\n if (transfer.senderTeam.teamId === teamId) {\r\n amount += -1 * transfer.amount;\r\n } else {\r\n amount += transfer.amount;\r\n }\r\n });\r\n\r\n return amount;\r\n }\r\n\r\n public setMeFinanceTotals(\r\n incomes,\r\n previousIncomes,\r\n expenses,\r\n previousExpenses,\r\n balance: Range,\r\n extras,\r\n previousExtras,\r\n transfers,\r\n prevTransfers,\r\n ) {\r\n this.totalIncomes = Vue.filter('number-format')(incomes);\r\n this.totalPreviousIncomes = Vue.filter('number-format')(previousIncomes);\r\n this.totalExpenses = Vue.filter('number-format')(expenses);\r\n this.totalPreviousExpenses = Vue.filter('number-format')(previousExpenses);\r\n this.totalExtras = Vue.filter('number-format')(extras);\r\n this.totalPreviousExtras = Vue.filter('number-format')(previousExtras);\r\n this.totalExternalTransfers = Vue.filter('number-format')(transfers);\r\n this.totalPreviousExternalTransfers = Vue.filter('number-format')(prevTransfers);\r\n\r\n if (balance) {\r\n let currentBalance = 0;\r\n let previousBalance = 0;\r\n if (balance.items.length === 1) {\r\n currentBalance = balance.items[balance.items.length - 1].item.balance;\r\n } else if (balance.items.length > 1) {\r\n currentBalance = balance.items[balance.items.length - 1].item.balance;\r\n previousBalance = balance.items[balance.items.length - 2].item.balance;\r\n }\r\n\r\n this.previousBalance = Vue.filter('number-format')(previousBalance);\r\n this.currentBalance = Vue.filter('number-format')(currentBalance);\r\n this.totalResult = Vue.filter('number-format')(currentBalance - previousBalance);\r\n this.totalPreviousResult = Vue.filter('number-format')(previousIncomes - previousExpenses - previousExtras);\r\n this.totalBudget = Vue.filter('number-format')(currentBalance);\r\n this.totalPreviousBudget = Vue.filter('number-format')(previousBalance);\r\n }\r\n }\r\n}\r\n","import { Person } from './Person';\r\nimport FinanceMe from './FinanceMe';\r\nimport FinanceGroup from './FinanceGroup';\r\nimport FinanceBase from './FinanceBase';\r\nimport { AccountType } from './AccountType';\r\nimport { teamHelper } from '@/main';\r\nimport { Member } from './Member';\r\n\r\nexport default class FinanceTeam extends FinanceBase {\r\n public members: any = [];\r\n public groups: any = [];\r\n public memberOverview: any = [];\r\n public groupOverview: any = [];\r\n public energyDedications: any;\r\n\r\n constructor(invoices, expenses, members, groups, energyDedications) {\r\n super(invoices, expenses);\r\n\r\n this.invoices = this.filterEmptyInvoices(invoices);\r\n this.expenses = this.filterEmptyInvoices(expenses);\r\n this.memberOverview = [];\r\n this.energyDedications = energyDedications;\r\n\r\n this._prepareMembers(members);\r\n this._prepareGroups(groups);\r\n }\r\n\r\n public _prepareMembers(members) {\r\n this.members = [];\r\n members.forEach((memberData) => {\r\n const member = new Member(memberData);\r\n const memberInvoices = this.filterEntityDistributions(this.invoices, member.memberId, AccountType.Person);\r\n const memberExpenses = this.filterEntityDistributions(this.expenses, member.memberId, AccountType.Person);\r\n\r\n const memberFinance = new FinanceMe(member.memberId, memberInvoices, [], memberExpenses, [], memberData.balance, null, null);\r\n memberFinance.memberName = member.getFullName();\r\n\r\n this.members.push(member);\r\n this.memberOverview.push(memberFinance);\r\n });\r\n }\r\n\r\n public _prepareGroups(groups) {\r\n this.groups = groups;\r\n groups.forEach((group: any) => {\r\n const groupInvoices = this.invoices.filter((invoice) => {\r\n return invoice.invoice.group === group.groupId;\r\n });\r\n\r\n const groupExpenses = this.expenses.filter((invoice) => {\r\n return invoice.invoice.group === group.groupId;\r\n });\r\n\r\n const finance = new FinanceGroup(teamHelper.getTeamId(), group, groupInvoices, groupExpenses, [], [], [], group.balance);\r\n finance.group = group;\r\n this.groupOverview.push(finance);\r\n });\r\n }\r\n\r\n public _getGroupMembersOfGroup(groupId) {\r\n this.members.filter((member: Person) => {\r\n const exists = member.groupMemberships.find((group) => {\r\n return group.id === groupId;\r\n });\r\n\r\n if (exists) {\r\n return member;\r\n }\r\n });\r\n }\r\n}\r\n","import { FinanceTotalInterface, FinanceAccount } from './Interfaces';\r\nimport Group from './Group';\r\nimport { financeService, meService, financeAccountService, groupHelper, memberHelper, compensationService, teamHelper, transferService } from '@/main';\r\nimport { InvoiceType } from './InvoiceType';\r\nimport FinanceMe from './FinanceMe';\r\nimport FinanceGroup from './FinanceGroup';\r\nimport FinanceTeam from './FinanceTeam';\r\nimport { AccountType } from './AccountType';\r\nimport { Member } from './Member';\r\nimport { periodModule } from '@/store/modules/period';\r\n\r\nexport default class FinanceTotal implements FinanceTotalInterface {\r\n public team: string;\r\n public teamId: number;\r\n\r\n constructor(team: number) {\r\n this.teamId = team;\r\n this.team = teamHelper.getTeam(team).key;\r\n }\r\n\r\n public async getMeFinance(personId: number, accountId: number, period: string, previousPeriod: string) {\r\n let expenses: any;\r\n let previousExpenses: any;\r\n let invoices: any;\r\n let previousInvoices: any;\r\n let transfers: any;\r\n let personTransfers: any;\r\n let personPrevTransfers: any;\r\n let groups: any;\r\n let energyDedications: any;\r\n let finance: any;\r\n\r\n groups = await groupHelper.getGroups();\r\n\r\n const [\r\n expensesResult,\r\n previousExpensesResult,\r\n invoicesResult,\r\n previousInvoiceResult,\r\n transfersResult,\r\n personTransfersResult,\r\n personPrevTransfersResult,\r\n energyResult,\r\n balance,\r\n ] = await Promise.all([\r\n financeService.getInvoices(this.teamId, null, InvoiceType.Expenses, personId, period),\r\n financeService.getInvoices(this.teamId, null, InvoiceType.Expenses, personId, previousPeriod),\r\n financeService.getInvoices(this.teamId, null, InvoiceType.Income, personId, period),\r\n financeService.getInvoices(this.teamId, null, InvoiceType.Income, personId, previousPeriod),\r\n transferService.getTransfers(this.teamId, null, personId, period),\r\n transferService.getCrossTeamPersonTransfers(this.teamId, period, personId),\r\n transferService.getCrossTeamPersonTransfers(this.teamId, previousPeriod, personId),\r\n meService.getEnergyDedications(this.teamId, period),\r\n financeAccountService.getBalance(accountId, period, this.teamId, AccountType.Person, previousPeriod),\r\n ]);\r\n\r\n expenses = expensesResult;\r\n previousExpenses = previousExpensesResult;\r\n invoices = invoicesResult;\r\n previousInvoices = previousInvoiceResult;\r\n transfers = transfersResult;\r\n energyDedications = energyResult.data;\r\n personTransfers = personTransfersResult;\r\n personPrevTransfers = personPrevTransfersResult;\r\n\r\n groups.forEach((group: Group) => {\r\n const energy = energyDedications.find((item) => {\r\n return item.groupKey.toLowerCase() === group.groupKey;\r\n });\r\n group.energyDedication = energy ? energy.amount : 0;\r\n });\r\n\r\n finance = new FinanceMe(personId, invoices, previousInvoices, expenses, previousExpenses, balance, personTransfers, personPrevTransfers);\r\n finance.loadCompensations(groups, transfers);\r\n finance.transfers = transfers;\r\n\r\n return finance;\r\n }\r\n\r\n public async getGroupFinance(group: Group, period: string) {\r\n let transfers: any;\r\n let compensations: any;\r\n let financeAccount: any;\r\n let finance: any;\r\n\r\n financeAccount = group.account;\r\n\r\n const [transfersResult, compensationsResult] = await Promise.all([\r\n transferService.getTransfers(this.teamId, group.groupId, null, period),\r\n compensationService.getCompensations(this.teamId, group.groupId, periodModule.selectedPeriod),\r\n ]);\r\n\r\n transfers = transfersResult;\r\n compensations = compensationsResult.data;\r\n\r\n finance = new FinanceGroup(this.teamId, group, [], [], transfers, compensations.memberCompensations, [], null);\r\n finance.account = financeAccount;\r\n return finance;\r\n }\r\n\r\n public async getTeamFinance(period) {\r\n let expenses: any;\r\n const invoices: any = [];\r\n let members: any;\r\n let energyDedications: any;\r\n let groups: any;\r\n let finance: any;\r\n\r\n expenses = await financeService.getInvoices(this.teamId, null, InvoiceType.Expenses, null, period);\r\n groups = await groupHelper.getGroups();\r\n members = await memberHelper.getMembers();\r\n energyDedications = []; // (await teamService.getEnergyDedication(this.team)).data;\r\n\r\n const groupsSavingsAccountIds = (await financeAccountService.getAccounts(AccountType.GroupSavings, this.teamId, periodModule.selectedPeriod))\r\n .data;\r\n groups.map((item: Group) => {\r\n return (item.account = groupsSavingsAccountIds.filter((account) => {\r\n return account.relatedEntityId === item.groupId;\r\n })[0] as FinanceAccount);\r\n });\r\n\r\n const groupsIcomeAccountIds = (await financeAccountService.getAccounts(AccountType.GroupIncome, this.teamId, periodModule.selectedPeriod))\r\n .data;\r\n groups.map((item: Group) => {\r\n return (item.accountIncome = groupsIcomeAccountIds.filter((account) => {\r\n return account.relatedEntityId === item.groupId;\r\n })[0] as FinanceAccount);\r\n });\r\n\r\n const memberAccountIds = (await financeAccountService.getAccounts(AccountType.Person, this.teamId, periodModule.selectedPeriod)).data;\r\n members.map((item: Member) => {\r\n return (item.account = memberAccountIds.find((account) => {\r\n return account.relatedEntityId === item.memberId;\r\n }) as FinanceAccount);\r\n });\r\n\r\n for (let i = 0; i < groups.length; i++) {\r\n if (groups[i].account && groups[i].account.accountId) {\r\n groups[i].balance = await financeAccountService.getBalance(\r\n groups[i].account.accountId,\r\n period,\r\n this.teamId,\r\n groups[i].account.AccountType,\r\n );\r\n }\r\n }\r\n\r\n for (let i = 0; i < members.length; i++) {\r\n if (members[i].account && members[i].account.accountId) {\r\n members[i].balance = await financeAccountService.getBalance(\r\n members[i].account.accountId,\r\n period,\r\n this.teamId,\r\n members[i].account.AccountType,\r\n );\r\n }\r\n }\r\n\r\n finance = new FinanceTeam(invoices, expenses, members, groups, energyDedications);\r\n // finance.transfers = transfers;\r\n return finance;\r\n }\r\n}\r\n","import RangeItem from './RangeItem';\r\n\r\nexport default class Range {\r\n public items: RangeItem[] = [];\r\n\r\n constructor(obj?: Partial>) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n}\r\n","import GroupResultItem from './GroupResultItem';\r\nimport MemberResultItem from './MemberResultItem';\r\n\r\nexport default class TeamResultItem {\r\n public groupResults: GroupResultItem[] = [];\r\n public memberResults: MemberResultItem[] = [];\r\n\r\n public openExpenseAmount: number = 0;\r\n public openInvoiceAmount: number = 0;\r\n public teamKey: string = '';\r\n public teamId: number = 0;\r\n public teamName: string = '';\r\n public dropDeadRatio: number = 0;\r\n public name: string;\r\n public expenses: number = 0;\r\n public extras: number = 0;\r\n\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n}\r\n","import TeamResultItem from './TeamResultItem';\r\n\r\nexport default class TeamResults {\r\n public balance: number = 0;\r\n public result: number = 0;\r\n public extras: number = 0;\r\n public expenses: number = 0;\r\n public externalRevenue: number = 0;\r\n\r\n public teamResults: TeamResultItem[] = [];\r\n\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n\r\n this.teamResults = [];\r\n\r\n for (const result of obj.teamResults) {\r\n this.teamResults.push(new TeamResultItem(result));\r\n }\r\n }\r\n }\r\n}\r\n","export default class AttributionPercentages {\r\n public groupAttributionsPercentage: number = null;\r\n public groupRemittancePercentage: number = null;\r\n public teamAttributionsPercentage: number = null;\r\n public groupId: number = null;\r\n\r\n /**\r\n * Constructor with initial values\r\n */\r\n constructor(teamAttributionsPercentage?: number, groupRemittancePercentage?: number, groupAttributionsPercentage?: number) {\r\n if (groupAttributionsPercentage) {\r\n this.groupAttributionsPercentage = groupAttributionsPercentage;\r\n }\r\n if (teamAttributionsPercentage) {\r\n this.teamAttributionsPercentage = teamAttributionsPercentage;\r\n }\r\n if (groupRemittancePercentage) {\r\n this.groupRemittancePercentage = groupRemittancePercentage;\r\n }\r\n }\r\n\r\n public hasValues() {\r\n return this.groupAttributionsPercentage !== null || this.groupRemittancePercentage !== null || this.teamAttributionsPercentage !== null;\r\n }\r\n}\r\n","export default class Ledger {\r\n public ledgerId: number = null;\r\n public name: string = '';\r\n public value: string = '';\r\n public description: string = '';\r\n}\r\n","import Group from '../Group';\r\nimport Team from '../Team';\r\nimport Ledger from './Ledger';\r\n\r\nexport class IntellectualPropertyLimitation {\r\n public intellectualPropertyLimitationId: number = null;\r\n public name: string = '';\r\n}\r\n\r\n// tslint:disable max-classes-per-file\r\nexport class RelationSettings {\r\n public current: boolean = false;\r\n public intellectualPropertyLimitation: any = new IntellectualPropertyLimitation();\r\n public salesLedger: Ledger = new Ledger();\r\n public purchaseLedger: Ledger = new Ledger();\r\n public taxRateId: string = null;\r\n\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n}\r\n\r\n// tslint:disable max-classes-per-file\r\nexport default class Relation {\r\n public relationId: number = null;\r\n\r\n public originLegalEntityReference: string = null;\r\n public originTeam: Team;\r\n public originGroup: Group;\r\n\r\n public destinationLegalEntityReference: string = null;\r\n public destinationTeam: Team;\r\n public destinationGroup: Group;\r\n\r\n public intellectualPropertyLimitation: number;\r\n public salesLedger: number;\r\n public purchaseLedger: number;\r\n\r\n public relationSettings: RelationSettings[] = [];\r\n\r\n /**\r\n *\r\n */\r\n constructor(obj?: Partial) {\r\n if (obj) {\r\n Object.assign(this, obj);\r\n }\r\n }\r\n}\r\n\r\nexport class TaxRate {\r\n public taxRateId: string = null;\r\n public description: string = '';\r\n}","import Attribution from '../Attribution';\r\nimport { PrivacyLevel } from '../PrivacyLevel';\r\n\r\nexport default class Template {\r\n public financeGroupTemplateId: number = 0;\r\n\r\n public teamId: number = 0;\r\n public name: string = '';\r\n public description: string = '';\r\n public applyMissingAttributionsOnTransfer: boolean = true;\r\n public autoDistributeIncomeToSavings: boolean = true;\r\n public autoDistributeExpensesToSavings: boolean = true;\r\n public autoCompensateGroupMembers: boolean = true;\r\n public privacyLevel: PrivacyLevel = PrivacyLevel.Unknown;\r\n public attributions: Attribution[] = [];\r\n\r\n constructor(obj?: Partial