{"version":3,"file":"_v3/js/app.e34ae90c.js","mappings":"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","sources":["webpack://softfluent.rowshare.front/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://softfluent.rowshare.front/./src/modules/ClassComponentHooks.ts","webpack://softfluent.rowshare.front/./src/models/Event.ts","webpack://softfluent.rowshare.front/./src/App.vue","webpack://softfluent.rowshare.front/./src/modules/Store.ts","webpack://softfluent.rowshare.front/./src/utils/TimeSpan.ts","webpack://softfluent.rowshare.front/./src/utils/Utilities.ts","webpack://softfluent.rowshare.front/./src/utils/Logger.ts","webpack://softfluent.rowshare.front/./src/models/ApiResult.ts","webpack://softfluent.rowshare.front/./src/models/Member.ts","webpack://softfluent.rowshare.front/./src/models/User.ts","webpack://softfluent.rowshare.front/./src/models/Chargebee.ts","webpack://softfluent.rowshare.front/./src/models/Chart.ts","webpack://softfluent.rowshare.front/./src/models/Column.ts","webpack://softfluent.rowshare.front/./src/models/BackOffice.ts","webpack://softfluent.rowshare.front/./src/models/Catalog.ts","webpack://softfluent.rowshare.front/./src/models/CommandEvent.ts","webpack://softfluent.rowshare.front/./src/store/UserStore.ts","webpack://softfluent.rowshare.front/./src/modules/Localization.ts","webpack://softfluent.rowshare.front/./src/models/ColumnType.ts","webpack://softfluent.rowshare.front/./src/models/Folder.ts","webpack://softfluent.rowshare.front/./src/models/SecurityPrincipal.ts","webpack://softfluent.rowshare.front/./src/models/Enums.ts","webpack://softfluent.rowshare.front/./src/models/Group.ts","webpack://softfluent.rowshare.front/./src/models/Job.ts","webpack://softfluent.rowshare.front/./src/models/List.ts","webpack://softfluent.rowshare.front/./src/models/ListAccess.ts","webpack://softfluent.rowshare.front/./src/models/ListAccessAudit.ts","webpack://softfluent.rowshare.front/./src/utils/Settings.ts","webpack://softfluent.rowshare.front/./src/models/Report.ts","webpack://softfluent.rowshare.front/./src/utils/ColumnTypes.ts","webpack://softfluent.rowshare.front/./src/models/Culture.ts","webpack://softfluent.rowshare.front/./src/models/Currency.ts","webpack://softfluent.rowshare.front/./src/models/DeleteAccountData.ts","webpack://softfluent.rowshare.front/./src/models/DropDownMember.ts","webpack://softfluent.rowshare.front/./src/models/Hyperlink.ts","webpack://softfluent.rowshare.front/./src/models/ImportResult.ts","webpack://softfluent.rowshare.front/./src/models/InviteLink.ts","webpack://softfluent.rowshare.front/./src/models/ListCapabilities.ts","webpack://softfluent.rowshare.front/./src/models/ListSettings.ts","webpack://softfluent.rowshare.front/./src/models/ListTree.ts","webpack://softfluent.rowshare.front/./src/models/Organization.ts","webpack://softfluent.rowshare.front/./src/models/PostedFile.ts","webpack://softfluent.rowshare.front/./src/models/Row.ts","webpack://softfluent.rowshare.front/./src/models/SubscriptionLimit.ts","webpack://softfluent.rowshare.front/./src/models/UserListLink.ts","webpack://softfluent.rowshare.front/./src/models/ColumnAccess.ts","webpack://softfluent.rowshare.front/./src/models/RealTimeCollaboration.ts","webpack://softfluent.rowshare.front/./src/api/ApiUtils.ts","webpack://softfluent.rowshare.front/./src/models/UserNotificationLink.ts","webpack://softfluent.rowshare.front/./src/models/View.ts","webpack://softfluent.rowshare.front/./src/api/BoApi.ts","webpack://softfluent.rowshare.front/./src/api/Catalog.ts","webpack://softfluent.rowshare.front/./src/api/Category.ts","webpack://softfluent.rowshare.front/./src/api/CellColor.ts","webpack://softfluent.rowshare.front/./src/api/Chart.ts","webpack://softfluent.rowshare.front/./src/api/Column.ts","webpack://softfluent.rowshare.front/./src/api/ColumnAccess.ts","webpack://softfluent.rowshare.front/./src/api/Configuration.ts","webpack://softfluent.rowshare.front/./src/api/ContactMessage.ts","webpack://softfluent.rowshare.front/./src/api/Culture.ts","webpack://softfluent.rowshare.front/./src/api/Currency.ts","webpack://softfluent.rowshare.front/./src/api/Folder.ts","webpack://softfluent.rowshare.front/./src/api/Group.ts","webpack://softfluent.rowshare.front/./src/api/InviteLink.ts","webpack://softfluent.rowshare.front/./src/api/Job.ts","webpack://softfluent.rowshare.front/./src/api/List.ts","webpack://softfluent.rowshare.front/./src/api/ListAccess.ts","webpack://softfluent.rowshare.front/./src/api/ListAccessAudit.ts","webpack://softfluent.rowshare.front/./src/api/ListTree.ts","webpack://softfluent.rowshare.front/./src/api/Member.ts","webpack://softfluent.rowshare.front/./src/api/Organization.ts","webpack://softfluent.rowshare.front/./src/api/Report.ts","webpack://softfluent.rowshare.front/./src/api/Row.ts","webpack://softfluent.rowshare.front/./src/api/SecurityPrincipal.ts","webpack://softfluent.rowshare.front/./src/api/SocialProvider.ts","webpack://softfluent.rowshare.front/./src/api/Timezone.ts","webpack://softfluent.rowshare.front/./src/api/Translation.ts","webpack://softfluent.rowshare.front/./src/api/User.ts","webpack://softfluent.rowshare.front/./src/api/UserNotificationLink.ts","webpack://softfluent.rowshare.front/./src/api/UserListLink.ts","webpack://softfluent.rowshare.front/./src/api/View.ts","webpack://softfluent.rowshare.front/./src/utils/ListTreeHelper.ts","webpack://softfluent.rowshare.front/./src/store/ListTreeStore.ts","webpack://softfluent.rowshare.front/./src/utils/Tracking.ts","webpack://softfluent.rowshare.front/./src/store/ApplicationStore.ts","webpack://softfluent.rowshare.front/./src/store/OnPremStore.ts","webpack://softfluent.rowshare.front/./src/views/layouts/DefaultLayout.vue","webpack://softfluent.rowshare.front/./src/views/components/FormValidation.ts","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Header.vue","webpack://softfluent.rowshare.front/./src/modules/EventBus.ts","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTables.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/PageTitle.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/PageTitle.vue?2417","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/PageTitle.vue?91a0","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/PageTitle.vue?a187","webpack://softfluent.rowshare.front/./src/views/MyTables/ListBrowser.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTablesDisabledOrganization.vue","webpack://softfluent.rowshare.front/./src/utils/ResLoader.ts","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTablesDisabledOrganization.vue?23a2","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTablesDisabledOrganization.vue?02b3","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTablesDisabledOrganization.vue?1730","webpack://softfluent.rowshare.front/./src/views/MyTables/ListThumbnail.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/ListActionsSubmenu.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/CopyListDialog.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/CopyListDialog.vue?3849","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/CopyListDialog.vue?dca2","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/CopyListDialog.vue?2ac7","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/RenameList.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/SingleFormDialog.vue","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputText.vue","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputText.vue?8b12","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputText.vue?6cb3","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputText.vue?e30a","webpack://softfluent.rowshare.front/./src/views/MyTables/SingleFormDialog.vue?e28d","webpack://softfluent.rowshare.front/./src/views/MyTables/SingleFormDialog.vue?8a28","webpack://softfluent.rowshare.front/./src/views/MyTables/SingleFormDialog.vue?2eb0","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/RenameList.vue?79bd","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/RenameList.vue?7e33","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/RenameList.vue?2f84","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/MoveListToRecycleBin.vue","webpack://softfluent.rowshare.front/./src/views/components/ConfirmationDialog.vue","webpack://softfluent.rowshare.front/./src/views/components/ConfirmationDialog.vue?cad9","webpack://softfluent.rowshare.front/./src/views/components/ConfirmationDialog.vue?5cad","webpack://softfluent.rowshare.front/./src/views/components/ConfirmationDialog.vue?3771","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/MoveListToRecycleBin.vue?e2c2","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/MoveListToRecycleBin.vue?ef8b","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/MoveListToRecycleBin.vue?0fc9","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/DeleteList.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/DeleteList.vue?afca","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/DeleteList.vue?75c7","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/DeleteList.vue?d836","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/ListActionsSubmenu.vue?28de","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/ListActionsSubmenu.vue?066c","webpack://softfluent.rowshare.front/./src/views/MyTables/ListActions/ListActionsSubmenu.vue?fb3f","webpack://softfluent.rowshare.front/./src/views/MyTables/ListThumbnail.vue?95aa","webpack://softfluent.rowshare.front/./src/views/MyTables/ListThumbnail.vue?8d83","webpack://softfluent.rowshare.front/./src/views/MyTables/ListThumbnail.vue?716b","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderThumbnail.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderThumbnail.vue?79c0","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderThumbnail.vue?7400","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderThumbnail.vue?d4bc","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTablesActions.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/CreateFolder.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/CreateFolder.vue?a6d6","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/CreateFolder.vue?8774","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/CreateFolder.vue?09b8","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/RenameFolder.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/RenameFolder.vue?1a89","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/RenameFolder.vue?8dd1","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/RenameFolder.vue?9fcf","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/DeleteFolder.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/DeleteFolder.vue?6333","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/DeleteFolder.vue?681e","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/DeleteFolder.vue?dd3a","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/EditAuthorization.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/PermissionDialog.vue","webpack://softfluent.rowshare.front/./src/views/components/Bigram.vue","webpack://softfluent.rowshare.front/./src/utils/BigramHelper.ts","webpack://softfluent.rowshare.front/./src/views/components/Bigram.vue?2e3e","webpack://softfluent.rowshare.front/./src/views/components/Bigram.vue?0d27","webpack://softfluent.rowshare.front/./src/views/components/Bigram.vue?05dc","webpack://softfluent.rowshare.front/./src/views/components/SecurityPrincipalDropdown.vue","webpack://softfluent.rowshare.front/./src/views/components/SecurityPrincipalDropdown.vue?7490","webpack://softfluent.rowshare.front/./src/views/components/SecurityPrincipalDropdown.vue?035f","webpack://softfluent.rowshare.front/./src/views/components/SecurityPrincipalDropdown.vue?add9","webpack://softfluent.rowshare.front/./src/views/MyTables/PermissionDialog.vue?780e","webpack://softfluent.rowshare.front/./src/views/MyTables/PermissionDialog.vue?2af2","webpack://softfluent.rowshare.front/./src/views/MyTables/PermissionDialog.vue?5afb","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/EditAuthorization.vue?1ea8","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/EditAuthorization.vue?f854","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/EditAuthorization.vue?49da","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/ManageOwners.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/OwnersDialog.vue","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/OwnersDialog.vue?4553","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/OwnersDialog.vue?ae8b","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/OwnersDialog.vue?2d06","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/ManageOwners.vue?cbf7","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/ManageOwners.vue?bd07","webpack://softfluent.rowshare.front/./src/views/MyTables/FolderActions/ManageOwners.vue?6784","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTablesActions.vue?abc9","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTablesActions.vue?0c2c","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTablesActions.vue?a3d9","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/PageLoadSpinner.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/PageLoadSpinner.vue?dba7","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/PageLoadSpinner.vue?bd07","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/PageLoadSpinner.vue?c132","webpack://softfluent.rowshare.front/./src/utils/Array.ts","webpack://softfluent.rowshare.front/./src/views/MyTables/SearchResult.vue","webpack://softfluent.rowshare.front/./src/utils/Search.ts","webpack://softfluent.rowshare.front/./src/views/MyTables/SearchResult.vue?ae00","webpack://softfluent.rowshare.front/./src/views/MyTables/SearchResult.vue?e037","webpack://softfluent.rowshare.front/./src/views/MyTables/SearchResult.vue?6a4e","webpack://softfluent.rowshare.front/./src/views/MyTables/ListBrowser.vue?0757","webpack://softfluent.rowshare.front/./src/views/MyTables/ListBrowser.vue?1fcc","webpack://softfluent.rowshare.front/./src/views/MyTables/ListBrowser.vue?78b0","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTables.vue?c5f4","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTables.vue?21bb","webpack://softfluent.rowshare.front/./src/views/MyTables/MyTables.vue?4a59","webpack://softfluent.rowshare.front/./src/views/CreateTable/CreateTable.vue","webpack://softfluent.rowshare.front/./src/store/CatalogStore.ts","webpack://softfluent.rowshare.front/./src/views/CreateTable/CreateTableActions.vue","webpack://softfluent.rowshare.front/./src/views/CreateTable/CreateTableActions.vue?ac62","webpack://softfluent.rowshare.front/./src/views/CreateTable/CreateTableActions.vue?4bfd","webpack://softfluent.rowshare.front/./src/views/CreateTable/CreateTableActions.vue?f600","webpack://softfluent.rowshare.front/./src/views/CreateTable/CreateTable.vue?8f28","webpack://softfluent.rowshare.front/./src/views/CreateTable/CreateTable.vue?d926","webpack://softfluent.rowshare.front/./src/views/CreateTable/CreateTable.vue?b355","webpack://softfluent.rowshare.front/./src/views/Table/ListDisplayModeSelector.vue","webpack://softfluent.rowshare.front/./src/views/Table/GridView/RsTable.vue","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ListToolbar.vue","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/TableOwnerSelector.vue","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/TableOwnerSelector.vue?baec","webpack://softfluent.rowshare.front/./src/utils/KeyCodes.ts","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/TableOwnerSelector.vue?e06d","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/TableOwnerSelector.vue?18da","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/SurveyModeDialog.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Toaster.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Toaster.vue?9250","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Toaster.vue?eb96","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Toaster.vue?31b9","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/SurveyModeDialog.vue?cb68","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/SurveyModeDialog.vue?e779","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/SurveyModeDialog.vue?922e","webpack://softfluent.rowshare.front/./src/views/Table/ViewSelector.vue","webpack://softfluent.rowshare.front/./src/views/Table/ViewSelector.vue?14c9","webpack://softfluent.rowshare.front/./src/views/Table/ViewSelector.vue?ef82","webpack://softfluent.rowshare.front/./src/views/Table/ViewSelector.vue?b81a","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ImportDialog.vue","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ImportDialog.vue?afaf","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ImportDialog.vue?f583","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ImportDialog.vue?4580","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ListToolbar.vue?d4b1","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ListToolbar.vue?d443","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ListToolbar.vue?18ff","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/SharingBar.vue","webpack://softfluent.rowshare.front/./src/store/ListStore.ts","webpack://softfluent.rowshare.front/./src/views/components/ColorPicker.vue","webpack://softfluent.rowshare.front/./src/views/components/ColorPicker.vue?24c9","webpack://softfluent.rowshare.front/./src/views/components/ColorPicker.vue?1499","webpack://softfluent.rowshare.front/./src/views/components/ColorPicker.vue?f78d","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ListAnalysisDialog.vue","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ListAnalysisDialog.vue?e8fb","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ListAnalysisDialog.vue?fc6f","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/ListAnalysisDialog.vue?e8ca","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/SharingBar.vue?bc44","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/SharingBar.vue?6383","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/SharingBar.vue?7350","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/SelectedRowsBar.vue","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/CopyMoveRowsDialog.vue","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/CopyMoveRowsDialog.vue?62c6","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/CopyMoveRowsDialog.vue?8544","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/CopyMoveRowsDialog.vue?3424","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/RemindUsersDialog.vue","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/RemindUsersDialog.vue?bf6d","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/RemindUsersDialog.vue?a4df","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/RemindUsersDialog.vue?cd95","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/AssignationDialog.vue","webpack://softfluent.rowshare.front/./src/utils/MemberHelper.ts","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/AssignationDialog.vue?1dd4","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/AssignationDialog.vue?2453","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/AssignationDialog.vue?6527","webpack://softfluent.rowshare.front/./src/store/RealTimeCollaborationStore.ts","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/SelectedRowsBar.vue?2e5f","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/SelectedRowsBar.vue?c01a","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/SelectedRowsBar.vue?e72d","webpack://softfluent.rowshare.front/./src/views/Table/GridView/RowshareGrid.vue","webpack://softfluent.rowshare.front/./src/columnProxies/BaseColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/NumericColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/TextColumnProxy.ts","webpack://softfluent.rowshare.front/./src/utils/Date.ts","webpack://softfluent.rowshare.front/./src/columnProxies/TimeColumnProxy.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/rowBaseVM.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/rowVM.ts","webpack://softfluent.rowshare.front/./src/columnProxies/LookupColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/PercentageColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/MemberColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/DateTimeColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/EmailColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/HyperLinkColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/TwoStatesBooleanColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/BlobColumnProxy.ts","webpack://softfluent.rowshare.front/./src/columnProxies/CommentColumnProxy.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/ProxyBasedRenderer.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentRenderer.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RowOwner/RowOwnerHeaderRenderer.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TotalRowHeaderRenderer.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TotalRowRenderer.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/ProxyBasedTooltipRenderer.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/GroupRowRenderer.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobField.vue","webpack://softfluent.rowshare.front/./src/viewModels/Table/FileVM.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobField.vue?30c7","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobField.vue?beaf","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobField.vue?46de","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobEditor.vue?bc4b","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobEditor.vue?7b70","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobEditor.vue?3826","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentEditor.vue?5c8a","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentEditor.vue?e666","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentEditor.vue?00f4","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/DateTimeEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/DateTimeEditor.vue?10be","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/DateTimeEditor.vue?1cf8","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/DateTimeEditor.vue?aab6","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Hyperlink/HyperlinkEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Hyperlink/HyperlinkEditor.vue?77d2","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Hyperlink/HyperlinkEditor.vue?5ac0","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Hyperlink/HyperlinkEditor.vue?c3e5","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookupEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookupField.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookupField.vue?19b3","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookupField.vue?db08","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookupField.vue?1c40","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookupEditor.vue?6b8c","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookupEditor.vue?0729","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookupEditor.vue?4c65","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Number/NumberEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Number/NumberEditor.vue?cc15","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Number/NumberEditor.vue?ac67","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Number/NumberEditor.vue?fc3c","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Relation/RelationEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Relation/RelationEditor.vue?faa7","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Relation/RelationEditor.vue?c8cb","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Relation/RelationEditor.vue?e269","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextField.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextField.vue?8de0","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextField.vue?f5e9","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextField.vue?9e5f","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextEditor.vue?62d2","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextEditor.vue?1333","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextEditor.vue?e69e","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RowOwner/RowOwnerHeaderEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RowOwner/RowOwnerHeaderEditor.vue?6345","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RowOwner/RowOwnerHeaderEditor.vue?252b","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RowOwner/RowOwnerHeaderEditor.vue?6b65","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Text/TextEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Text/TextEditor.vue?d4c9","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Text/TextEditor.vue?29e9","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Text/TextEditor.vue?e3cf","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/TimeEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/TimeEditor.vue?cfe6","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/TimeEditor.vue?24c4","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/TimeEditor.vue?2c45","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanEditor.vue?f40d","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanEditor.vue?5eea","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanEditor.vue?9120","webpack://softfluent.rowshare.front/./src/views/Table/GridView/columnGroupHeader.vue","webpack://softfluent.rowshare.front/./src/views/Table/GridView/columnGroupHeader.vue?0251","webpack://softfluent.rowshare.front/./src/views/Table/GridView/columnGroupHeader.vue?69aa","webpack://softfluent.rowshare.front/./src/views/Table/GridView/columnGroupHeader.vue?e6bf","webpack://softfluent.rowshare.front/./src/views/Table/GridView/columnHeader.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnDescription.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnDescription.vue?f548","webpack://softfluent.rowshare.front/./src/views/Table/ColumnDescription.vue?74f5","webpack://softfluent.rowshare.front/./src/views/Table/ColumnDescription.vue?5a31","webpack://softfluent.rowshare.front/./src/viewModels/Table/ColumnDescriptionVM.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/groupRowColumnDescriptionVM.ts","webpack://softfluent.rowshare.front/./src/views/Table/GridView/columnHeader.vue?5c6c","webpack://softfluent.rowshare.front/./src/views/Table/GridView/columnHeader.vue?8b08","webpack://softfluent.rowshare.front/./src/views/Table/GridView/columnHeader.vue?ecd9","webpack://softfluent.rowshare.front/./src/columnProxies/RsColumnManager.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/columnVM.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/GridActions.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/gridContextMenu.ts","webpack://softfluent.rowshare.front/./src/modules/Vuetify.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/columnContextMenu.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/rowTotalVM.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/viewManager.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/gridViewVM.ts","webpack://softfluent.rowshare.front/./src/views/Table/GridView/emptyStateOverlay.vue","webpack://softfluent.rowshare.front/./src/views/Table/GridView/emptyStateOverlay.vue?196b","webpack://softfluent.rowshare.front/./src/views/Table/GridView/emptyStateOverlay.vue?8a99","webpack://softfluent.rowshare.front/./src/views/Table/GridView/emptyStateOverlay.vue?85fc","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/ChartsToolPanel.vue","webpack://softfluent.rowshare.front/./src/views/charts/chartRenderer.vue","webpack://softfluent.rowshare.front/./src/views/charts/chartRenderer.vue?6378","webpack://softfluent.rowshare.front/./src/views/charts/chartRenderer.vue?069b","webpack://softfluent.rowshare.front/./src/views/charts/chartRenderer.vue?ea5b","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/ChartsToolPanel.vue?ae5c","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/ChartsToolPanel.vue?e120","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/ChartsToolPanel.vue?2c21","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/AnalysisToolPanel.vue","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/AnalysisToolPanel.vue?9c63","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/AnalysisToolPanel.vue?3f18","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/AnalysisToolPanel.vue?7bea","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/HistoryToolPanel.vue","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/HistoryToolPanel.vue?ee1c","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/HistoryToolPanel.vue?57d6","webpack://softfluent.rowshare.front/./src/views/Table/ToolPanel/HistoryToolPanel.vue?09b1","webpack://softfluent.rowshare.front/./src/views/Table/GridView/RowshareGrid.vue?ff05","webpack://softfluent.rowshare.front/./src/views/Table/GridView/RowshareGrid.vue?23fc","webpack://softfluent.rowshare.front/./src/views/Table/GridView/RowshareGrid.vue?6c0e","webpack://softfluent.rowshare.front/./src/views/Table/CommentEditorDialog.vue","webpack://softfluent.rowshare.front/./src/views/Table/CommentEditorDialog.vue?6801","webpack://softfluent.rowshare.front/./src/views/Table/CommentEditorDialog.vue?6186","webpack://softfluent.rowshare.front/./src/views/Table/CommentEditorDialog.vue?0f7f","webpack://softfluent.rowshare.front/./src/views/Table/AddColumnDialog.vue","webpack://softfluent.rowshare.front/./src/views/Table/AddColumnDialog.vue?68fe","webpack://softfluent.rowshare.front/./src/views/Table/AddColumnDialog.vue?b863","webpack://softfluent.rowshare.front/./src/views/Table/AddColumnDialog.vue?2dcf","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/RowMergeDialog.vue","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/RowMergeDialog.vue?bd7f","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/RowMergeDialog.vue?1348","webpack://softfluent.rowshare.front/./src/views/Table/ListActions/RowMergeDialog.vue?9b16","webpack://softfluent.rowshare.front/./src/views/charts/chartConfigurationDialog.vue","webpack://softfluent.rowshare.front/./src/views/charts/chartConfigurationDialog.vue?0e8c","webpack://softfluent.rowshare.front/./src/views/charts/chartConfigurationDialog.vue?bb6a","webpack://softfluent.rowshare.front/./src/views/charts/chartConfigurationDialog.vue?83a5","webpack://softfluent.rowshare.front/./src/views/charts/chartDialog.vue","webpack://softfluent.rowshare.front/./src/views/charts/chartDialog.vue?01e3","webpack://softfluent.rowshare.front/./src/views/charts/chartDialog.vue?03ac","webpack://softfluent.rowshare.front/./src/views/charts/chartDialog.vue?7038","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Relation/RelationEditorDialog.vue","webpack://softfluent.rowshare.front/./src/views/Table/CardView/CardView.vue","webpack://softfluent.rowshare.front/./src/views/Table/CardView/RowCard.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentCardRenderer.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentCardRenderer.vue?977c","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentCardRenderer.vue?7242","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentCardRenderer.vue?a62b","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanCardRenderer.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanCardRenderer.vue?84f8","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanCardRenderer.vue?244e","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanCardRenderer.vue?4aae","webpack://softfluent.rowshare.front/./src/views/Table/CardView/ProxyBasedCardRenderer.vue","webpack://softfluent.rowshare.front/./src/views/Table/CardView/ProxyBasedCardRenderer.vue?43ee","webpack://softfluent.rowshare.front/./src/views/Table/CardView/ProxyBasedCardRenderer.vue?a9c0","webpack://softfluent.rowshare.front/./src/views/Table/CardView/ProxyBasedCardRenderer.vue?51b5","webpack://softfluent.rowshare.front/./src/views/Table/CardView/RowCard.vue?1be5","webpack://softfluent.rowshare.front/./src/views/Table/CardView/RowCard.vue?8c9a","webpack://softfluent.rowshare.front/./src/views/Table/CardView/RowCard.vue?4627","webpack://softfluent.rowshare.front/./src/views/Table/CardView/CardView.vue?5d13","webpack://softfluent.rowshare.front/./src/views/Table/CardView/CardView.vue?ac40","webpack://softfluent.rowshare.front/./src/views/Table/CardView/CardView.vue?38a3","webpack://softfluent.rowshare.front/./src/viewModels/Table/listVM.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Relation/RelationEditorDialog.vue?7f30","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Relation/RelationEditorDialog.vue?07ce","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Relation/RelationEditorDialog.vue?f3fc","webpack://softfluent.rowshare.front/./src/views/Table/GridView/RsTable.vue?d2a6","webpack://softfluent.rowshare.front/./src/views/Table/GridView/RsTable.vue?4051","webpack://softfluent.rowshare.front/./src/views/Table/GridView/RsTable.vue?6944","webpack://softfluent.rowshare.front/./src/views/Table/FormView/ListFormView.vue","webpack://softfluent.rowshare.front/./src/views/Table/FormView/RowFormView.vue","webpack://softfluent.rowshare.front/./src/viewModels/Table/formViewVM.ts","webpack://softfluent.rowshare.front/./src/views/Table/FormView/CellFormView.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Text/TextFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/FormEditor.ts","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Text/TextFormEditor.vue?3b6b","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Text/TextFormEditor.vue?cd1d","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Text/TextFormEditor.vue?0154","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextFormEditor.vue?8f8c","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextFormEditor.vue?2f1a","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/RichText/RichTextFormEditor.vue?fa84","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Hyperlink/HyperlinkFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Hyperlink/HyperlinkFormEditor.vue?e09e","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Hyperlink/HyperlinkFormEditor.vue?20a0","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Hyperlink/HyperlinkFormEditor.vue?7c6b","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentFormEditor.vue?e7e7","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentFormEditor.vue?57be","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Comment/CommentFormEditor.vue?6c33","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/DateTimeFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/DateTimeFormEditor.vue?0e53","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/DateTimeFormEditor.vue?0d8a","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/DateTimeFormEditor.vue?64ba","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Email/EmailFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Email/EmailFormEditor.vue?af66","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Email/EmailFormEditor.vue?5af2","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Email/EmailFormEditor.vue?189e","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobFormEditor.vue?fb5c","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobFormEditor.vue?dfc2","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Blob/BlobFormEditor.vue?f770","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Number/NumberFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Number/NumberFormEditor.vue?b9b9","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Number/NumberFormEditor.vue?6eb5","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Number/NumberFormEditor.vue?833a","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/TimeFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/TimeFormEditor.vue?5168","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/TimeFormEditor.vue?9960","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/DateTime/TimeFormEditor.vue?c51d","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanFormEditor.vue?58ae","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanFormEditor.vue?d84c","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanFormEditor.vue?dc8e","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookUpFormEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookUpFormEditor.vue?8c5b","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookUpFormEditor.vue?e9b4","webpack://softfluent.rowshare.front/./src/views/Table/cellsComponents/Lookup/LookUpFormEditor.vue?ee31","webpack://softfluent.rowshare.front/./src/views/Table/FormView/CellFormView.vue?2b6f","webpack://softfluent.rowshare.front/./src/views/Table/FormView/CellFormView.vue?1f63","webpack://softfluent.rowshare.front/./src/views/Table/FormView/CellFormView.vue?0fce","webpack://softfluent.rowshare.front/./src/views/Table/FormView/RowFormView.vue?59a4","webpack://softfluent.rowshare.front/./src/views/Table/FormView/RowFormView.vue?ec27","webpack://softfluent.rowshare.front/./src/views/Table/FormView/RowFormView.vue?7933","webpack://softfluent.rowshare.front/./src/views/Table/FormView/ListFormView.vue?f973","webpack://softfluent.rowshare.front/./src/views/Table/FormView/ListFormView.vue?2c19","webpack://softfluent.rowshare.front/./src/views/Table/FormView/ListFormView.vue?68e4","webpack://softfluent.rowshare.front/./src/views/Table/ListDisplayModeSelector.vue?840f","webpack://softfluent.rowshare.front/./src/views/Table/ListDisplayModeSelector.vue?68e3","webpack://softfluent.rowshare.front/./src/views/Table/ListDisplayModeSelector.vue?33a7","webpack://softfluent.rowshare.front/./src/views/Table/ListBasedRoot.vue","webpack://softfluent.rowshare.front/./src/views/Table/ListBasedRoot.vue?60ec","webpack://softfluent.rowshare.front/./src/views/Table/ListBasedRoot.vue?9399","webpack://softfluent.rowshare.front/./src/views/Table/ListBasedRoot.vue?bf69","webpack://softfluent.rowshare.front/./src/views/Contact/Contact.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Bandeau.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Bandeau.vue?7f14","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Bandeau.vue?7664","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Bandeau.vue?104d","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputTextArea.vue","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputTextArea.vue?92e8","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputTextArea.vue?521b","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputTextArea.vue?48ab","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputSelect.vue","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputSelect.vue?08cd","webpack://softfluent.rowshare.front/./src/views/components/Recaptcha.vue?b37c","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputSelect.vue?b9fe","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputSelect.vue?1528","webpack://softfluent.rowshare.front/./src/views/components/Recaptcha.vue","webpack://softfluent.rowshare.front/./src/views/components/Recaptcha.vue?76dd","webpack://softfluent.rowshare.front/./src/views/components/Recaptcha.vue?da0c","webpack://softfluent.rowshare.front/./src/views/Contact/Contact.vue?2700","webpack://softfluent.rowshare.front/./src/views/Contact/Contact.vue?8267","webpack://softfluent.rowshare.front/./src/views/Contact/Contact.vue?4752","webpack://softfluent.rowshare.front/./src/views/Signin/Login.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/SectionTitle.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/SectionTitle.vue?cc52","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/SectionTitle.vue?d4e3","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/SectionTitle.vue?1ec3","webpack://softfluent.rowshare.front/./src/views/Signin/SocialLoginList.vue","webpack://softfluent.rowshare.front/./src/views/Signin/GoogleLoginButton.vue","webpack://softfluent.rowshare.front/./src/views/ReturnUrl.ts","webpack://softfluent.rowshare.front/./src/views/Signin/GoogleLoginButton.vue?b732","webpack://softfluent.rowshare.front/./src/views/Signin/GoogleLoginButton.vue?ddd5","webpack://softfluent.rowshare.front/./src/views/Signin/GoogleLoginButton.vue?a5e1","webpack://softfluent.rowshare.front/./src/views/Signin/MicrosoftLoginButton.vue","webpack://softfluent.rowshare.front/./src/views/Signin/MicrosoftLoginButton.vue?e272","webpack://softfluent.rowshare.front/./src/views/Signin/MicrosoftLoginButton.vue?b604","webpack://softfluent.rowshare.front/./src/views/Signin/MicrosoftLoginButton.vue?e734","webpack://softfluent.rowshare.front/./src/views/Signin/SocialLoginList.vue?5ae2","webpack://softfluent.rowshare.front/./src/views/Signin/SocialLoginList.vue?a9bf","webpack://softfluent.rowshare.front/./src/views/Signin/SocialLoginList.vue?ef50","webpack://softfluent.rowshare.front/./src/views/Signin/LoginForm.vue","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputPassword.vue","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputPassword.vue?8ff0","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputPassword.vue?2c6e","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputPassword.vue?1334","webpack://softfluent.rowshare.front/./src/views/Signin/LoginForm.vue?58fd","webpack://softfluent.rowshare.front/./src/views/Signin/LoginForm.vue?3095","webpack://softfluent.rowshare.front/./src/views/Signin/LoginForm.vue?8d5e","webpack://softfluent.rowshare.front/./src/views/Signin/Login.vue?8d96","webpack://softfluent.rowshare.front/./src/views/Signin/Login.vue?e662","webpack://softfluent.rowshare.front/./src/views/Signin/Login.vue?b1b6","webpack://softfluent.rowshare.front/./src/views/Signin/LoginFba.vue","webpack://softfluent.rowshare.front/./src/views/Signin/LoginFba.vue?bad6","webpack://softfluent.rowshare.front/./src/views/Signin/LoginFba.vue?074f","webpack://softfluent.rowshare.front/./src/views/Signin/LoginFba.vue?50a5","webpack://softfluent.rowshare.front/./src/views/Signin/LoginMS.vue","webpack://softfluent.rowshare.front/./src/views/Signin/LoginMS.vue?c4e9","webpack://softfluent.rowshare.front/./src/views/Signin/LoginMS.vue?39bd","webpack://softfluent.rowshare.front/./src/views/Signin/LoginMS.vue?9329","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccount.vue","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountNotificationList.vue","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountNotificationList.vue?e495","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountNotificationList.vue?df5f","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountNotificationList.vue?2290","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountSubscriptionList.vue","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountSubscriptionList.vue?ef53","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountSubscriptionList.vue?a2fe","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountSubscriptionList.vue?46dd","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountDeleteAccountButton.vue","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountDeleteAccountButton.vue?dd2e","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountDeleteAccountButton.vue?07e7","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccountDeleteAccountButton.vue?e06d","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccount.vue?41e3","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccount.vue?ddec","webpack://softfluent.rowshare.front/./src/views/MyAccount/MyAccount.vue?d2d5","webpack://softfluent.rowshare.front/./src/views/Signup/SignUp.vue","webpack://softfluent.rowshare.front/./src/views/Signup/SignUpEmail.vue","webpack://softfluent.rowshare.front/./src/views/Signup/SignUpEmail.vue?578d","webpack://softfluent.rowshare.front/./src/views/Signup/SignUpEmail.vue?b3d7","webpack://softfluent.rowshare.front/./src/views/Signup/SignUpEmail.vue?f287","webpack://softfluent.rowshare.front/./src/views/Signup/PersonalData.vue","webpack://softfluent.rowshare.front/./src/views/Signup/PersonalData.vue?f363","webpack://softfluent.rowshare.front/./src/views/Signup/PersonalData.vue?5a8e","webpack://softfluent.rowshare.front/./src/views/Signup/PersonalData.vue?2668","webpack://softfluent.rowshare.front/./src/views/Signup/Personalization.vue","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputPhone.vue","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputPhone.vue?d401","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputPhone.vue?7dca","webpack://softfluent.rowshare.front/./src/views/components/FormInputs/InputPhone.vue?38cf","webpack://softfluent.rowshare.front/./src/views/Signup/Personalization.vue?9df3","webpack://softfluent.rowshare.front/./src/views/Signup/Personalization.vue?05dd","webpack://softfluent.rowshare.front/./src/views/Signup/Personalization.vue?fe16","webpack://softfluent.rowshare.front/./src/views/Signup/JoinSociety.vue","webpack://softfluent.rowshare.front/./src/views/Signup/JoinSociety.vue?b2fe","webpack://softfluent.rowshare.front/./src/views/Signup/JoinSociety.vue?858b","webpack://softfluent.rowshare.front/./src/views/Signup/JoinSociety.vue?d1a6","webpack://softfluent.rowshare.front/./src/views/Signup/SignUp.vue?c3c1","webpack://softfluent.rowshare.front/./src/views/Signup/SignUp.vue?1cf8","webpack://softfluent.rowshare.front/./src/views/Signup/SignUp.vue?66ea","webpack://softfluent.rowshare.front/./src/views/RowMerge/MyDocuments.vue","webpack://softfluent.rowshare.front/./src/views/RowMerge/JobGrid.vue","webpack://softfluent.rowshare.front/./src/views/RowMerge/JobGrid.vue?e53b","webpack://softfluent.rowshare.front/./src/views/RowMerge/JobGrid.vue?fe21","webpack://softfluent.rowshare.front/./src/views/RowMerge/JobGrid.vue?44e2","webpack://softfluent.rowshare.front/./src/views/RowMerge/MyDocuments.vue?ea5f","webpack://softfluent.rowshare.front/./src/views/RowMerge/MyDocuments.vue?e7a5","webpack://softfluent.rowshare.front/./src/views/RowMerge/MyDocuments.vue?9959","webpack://softfluent.rowshare.front/./src/views/RowMerge/RowMerge.vue","webpack://softfluent.rowshare.front/./src/views/RowMerge/RowMerge.vue?ccaf","webpack://softfluent.rowshare.front/./src/views/RowMerge/RowMerge.vue?87b9","webpack://softfluent.rowshare.front/./src/views/RowMerge/RowMerge.vue?fba4","webpack://softfluent.rowshare.front/./src/views/ErrorPages/PageNotFound.vue","webpack://softfluent.rowshare.front/./src/views/ErrorPages/PageNotFound.vue?bc86","webpack://softfluent.rowshare.front/./src/views/ErrorPages/PageNotFound.vue?5b23","webpack://softfluent.rowshare.front/./src/views/ErrorPages/PageNotFound.vue?ac43","webpack://softfluent.rowshare.front/./src/views/ErrorPages/AccessDenied.vue","webpack://softfluent.rowshare.front/./src/views/ErrorPages/AccessDenied.vue?1acb","webpack://softfluent.rowshare.front/./src/views/ErrorPages/AccessDenied.vue?008c","webpack://softfluent.rowshare.front/./src/views/ErrorPages/AccessDenied.vue?a92e","webpack://softfluent.rowshare.front/./src/views/ErrorPages/OrganizationAccessDenied.vue","webpack://softfluent.rowshare.front/./src/views/ErrorPages/OrganizationAccessDenied.vue?a6e4","webpack://softfluent.rowshare.front/./src/views/ErrorPages/OrganizationAccessDenied.vue?dd50","webpack://softfluent.rowshare.front/./src/views/ErrorPages/OrganizationAccessDenied.vue?cacf","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionCheckOut.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionConfigurator.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionConfigurator.vue?360f","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionConfigurator.vue?1205","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionConfigurator.vue?d876","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/OrganizationInfos.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/OrganizationInfos.vue?c877","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/OrganizationInfos.vue?4a03","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/OrganizationInfos.vue?948e","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Toolbar.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Toolbar.vue?ce67","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Toolbar.vue?8c89","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Toolbar.vue?7c67","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionCheckOut.vue?99d9","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionCheckOut.vue?d5f0","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionCheckOut.vue?6190","webpack://softfluent.rowshare.front/./src/views/MyAccount/Unsubscription.vue","webpack://softfluent.rowshare.front/./src/views/MyAccount/Unsubscription.vue?0443","webpack://softfluent.rowshare.front/./src/views/MyAccount/Unsubscription.vue?5658","webpack://softfluent.rowshare.front/./src/views/MyAccount/Unsubscription.vue?b64a","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/TableOwners.vue","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/TableOwners.vue?f80e","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/TableOwners.vue?a558","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/TableOwners.vue?c9b2","webpack://softfluent.rowshare.front/./src/views/Table/TableAccessDenied.vue","webpack://softfluent.rowshare.front/./src/views/Table/TableAccessDenied.vue?7f44","webpack://softfluent.rowshare.front/./src/views/Table/TableAccessDenied.vue?8af7","webpack://softfluent.rowshare.front/./src/views/Table/TableAccessDenied.vue?efc9","webpack://softfluent.rowshare.front/./src/views/ConfirmEmail/ConfirmEmail.vue","webpack://softfluent.rowshare.front/./src/views/ConfirmEmail/ConfirmEmail.vue?9067","webpack://softfluent.rowshare.front/./src/views/ConfirmEmail/ConfirmEmail.vue?2faf","webpack://softfluent.rowshare.front/./src/views/ConfirmEmail/ConfirmEmail.vue?dfc9","webpack://softfluent.rowshare.front/./src/views/Table/TableSettings/TableSettings.vue","webpack://softfluent.rowshare.front/./src/views/Table/TableSettings/TableSettings.vue?4187","webpack://softfluent.rowshare.front/./src/views/Table/TableSettings/TableSettings.vue?4ea4","webpack://softfluent.rowshare.front/./src/views/Table/TableSettings/TableSettings.vue?2538","webpack://softfluent.rowshare.front/./src/views/ResetPassword/ResetPasswordRequest.vue","webpack://softfluent.rowshare.front/./src/views/ResetPassword/ResetPasswordRequest.vue?d3d4","webpack://softfluent.rowshare.front/./src/views/ResetPassword/ResetPasswordRequest.vue?e7a8","webpack://softfluent.rowshare.front/./src/views/ResetPassword/ResetPasswordRequest.vue?f030","webpack://softfluent.rowshare.front/./src/views/ResetPassword/ResetPassword.vue","webpack://softfluent.rowshare.front/./src/views/ResetPassword/ResetPassword.vue?3193","webpack://softfluent.rowshare.front/./src/views/ResetPassword/ResetPassword.vue?8c52","webpack://softfluent.rowshare.front/./src/views/ResetPassword/ResetPassword.vue?511d","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/ManageOrganization.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/OrganizationSettings.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/OrganizationSettings.vue?0872","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/OrganizationSettings.vue?9f92","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/OrganizationSettings.vue?cf05","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/ListAccessAudit.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/Groups.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/groupsEditor.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/groupsEditor.vue?9363","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/groupsEditor.vue?b6d7","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/groupsEditor.vue?3844","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/groupsRenderer.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/groupsRenderer.vue?bc00","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/groupsRenderer.vue?1cfc","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/groupsRenderer.vue?5495","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/deleteRowRenderer.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/deleteRowRenderer.vue?9e36","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/deleteRowRenderer.vue?e7e6","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/deleteRowRenderer.vue?7369","webpack://softfluent.rowshare.front/./src/viewModels/ManageOrganization/groupVM.ts","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/Groups.vue?0e13","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/Groups.vue?f2cc","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/Groups.vue?07bf","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/Members.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberEditor.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberEditor.vue?1a1f","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberEditor.vue?6a4c","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberEditor.vue?67bf","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/booleanRenderer.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/booleanRenderer.vue?3992","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/booleanRenderer.vue?75de","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/booleanRenderer.vue?d9f5","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberRenderer.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberRenderer.vue?4f6a","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberRenderer.vue?d8cb","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberRenderer.vue?11be","webpack://softfluent.rowshare.front/./src/utils/Grid.ts","webpack://softfluent.rowshare.front/./src/viewModels/ManageOrganization/memberVM.ts","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberEmailRenderer.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberEmailRenderer.vue?1423","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberEmailRenderer.vue?08f5","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/manageOrganizationGrids/memberEmailRenderer.vue?b859","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/EditInvitationDialog.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/EditInvitationDialog.vue?6ad3","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/EditInvitationDialog.vue?3019","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/EditInvitationDialog.vue?5c3a","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/InviteLinkDialog.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/InviteLinkDialog.vue?6aa0","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/InviteLinkDialog.vue?044e","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/InviteLinkDialog.vue?a4d4","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/Members.vue?7aeb","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/Members.vue?9224","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/Members.vue?28d3","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/ListAccessAudit.vue?ad1b","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/ListAccessAudit.vue?2870","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/ListAccessAudit.vue?c486","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionUpdateDialog.vue","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionUpdateDialog.vue?31ec","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionUpdateDialog.vue?b676","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/SubscriptionUpdateDialog.vue?52fb","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/ManageOrganization.vue?37c6","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/ManageOrganization.vue?b742","webpack://softfluent.rowshare.front/./src/views/ManageOrganization/ManageOrganization.vue?9479","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOffice.vue","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeUser.vue","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeUser.vue?22d5","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeUser.vue?f923","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeUser.vue?0655","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOffice.vue?22b2","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOffice.vue?5ba3","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOffice.vue?5837","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeOrganization.vue","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeOrganization.vue?72b0","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeOrganization.vue?bb0c","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeOrganization.vue?6bf9","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeOrganizationLimits.vue","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeOrganizationLimits.vue?e6d2","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeOrganizationLimits.vue?27c5","webpack://softfluent.rowshare.front/./src/views/BackOffice/BackOfficeOrganizationLimits.vue?4477","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettings.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsLookupEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsLookupEditor.vue?8ce1","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsLookupEditor.vue?61e3","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsLookupEditor.vue?ba4c","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsLookupListEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsLookupListEditor.vue?048a","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsLookupListEditor.vue?cfe4","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsLookupListEditor.vue?3cd8","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsRelatedColumnsEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsRelatedColumnsEditor.vue?aa84","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsRelatedColumnsEditor.vue?db30","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsRelatedColumnsEditor.vue?ee93","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsColorEditor.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsColorEditor.vue?d110","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsColorEditor.vue?d6c4","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettingsColorEditor.vue?a415","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSelector.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSelector.vue?1b52","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSelector.vue?f1f6","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSelector.vue?5b28","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettings.vue?bd56","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettings.vue?6965","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/ColumnSettings.vue?e0fe","webpack://softfluent.rowshare.front/./src/views/Table/TablePrint.vue","webpack://softfluent.rowshare.front/./src/views/Table/TablePrint.vue?0ae9","webpack://softfluent.rowshare.front/./src/views/Table/TablePrint.vue?1369","webpack://softfluent.rowshare.front/./src/views/Table/TablePrint.vue?4f2b","webpack://softfluent.rowshare.front/./src/views/Table/FormView/Survey.vue","webpack://softfluent.rowshare.front/./src/views/Table/FormView/Survey.vue?ba55","webpack://softfluent.rowshare.front/./src/views/Table/FormView/Survey.vue?0b36","webpack://softfluent.rowshare.front/./src/views/Table/FormView/Survey.vue?2a7a","webpack://softfluent.rowshare.front/./src/views/Table/FormView/SurveySuccess.vue","webpack://softfluent.rowshare.front/./src/views/Table/FormView/SurveySuccess.vue?472d","webpack://softfluent.rowshare.front/./src/views/Table/FormView/SurveySuccess.vue?9baa","webpack://softfluent.rowshare.front/./src/views/Table/FormView/SurveySuccess.vue?c7a3","webpack://softfluent.rowshare.front/./src/views/msTeams/MsTeamsConfiguration.vue","webpack://softfluent.rowshare.front/./src/views/msTeams/MsTeamsConfiguration.vue?e253","webpack://softfluent.rowshare.front/./src/views/msTeams/MsTeamsConfiguration.vue?ddcc","webpack://softfluent.rowshare.front/./src/views/msTeams/MsTeamsConfiguration.vue?c4d8","webpack://softfluent.rowshare.front/./src/views/msTeams/MsTeamsLogin.vue","webpack://softfluent.rowshare.front/./src/views/msTeams/MsTeamsLogin.vue?8579","webpack://softfluent.rowshare.front/./src/views/msTeams/MsTeamsLogin.vue?dc0e","webpack://softfluent.rowshare.front/./src/views/msTeams/MsTeamsLogin.vue?108c","webpack://softfluent.rowshare.front/./src/views/Table/CalendarView/ListCalendarView.vue","webpack://softfluent.rowshare.front/./src/viewModels/Table/calendarEventVM.ts","webpack://softfluent.rowshare.front/./src/viewModels/Table/calendarViewVM.ts","webpack://softfluent.rowshare.front/./src/views/Table/CalendarView/ListCalendarView.vue?c89e","webpack://softfluent.rowshare.front/./src/views/Table/CalendarView/ListCalendarView.vue?77d9","webpack://softfluent.rowshare.front/./src/views/Table/CalendarView/ListCalendarView.vue?bcc0","webpack://softfluent.rowshare.front/./src/modules/Router.ts","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Header.vue?c731","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Header.vue?61b9","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/Header.vue?46aa","webpack://softfluent.rowshare.front/./src/views/components/GlobalConfirmationDialog.vue","webpack://softfluent.rowshare.front/./src/views/components/GlobalConfirmationDialog.vue?fb42","webpack://softfluent.rowshare.front/./src/views/components/GlobalConfirmationDialog.vue?dcda","webpack://softfluent.rowshare.front/./src/views/components/GlobalConfirmationDialog.vue?5c1c","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/NotificationStack.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/NotificationStack.vue?8b9d","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/NotificationStack.vue?7119","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/NotificationStack.vue?0b8d","webpack://softfluent.rowshare.front/./src/views/components/UpsellDialog.vue","webpack://softfluent.rowshare.front/./src/views/components/UpsellCard.vue","webpack://softfluent.rowshare.front/./src/views/components/UpsellCard.vue?523c","webpack://softfluent.rowshare.front/./src/views/components/UpsellCard.vue?ba4a","webpack://softfluent.rowshare.front/./src/views/components/UpsellCard.vue?c5b3","webpack://softfluent.rowshare.front/./src/views/components/UpsellDialog.vue?1751","webpack://softfluent.rowshare.front/./src/views/components/UpsellDialog.vue?d222","webpack://softfluent.rowshare.front/./src/views/components/UpsellDialog.vue?591d","webpack://softfluent.rowshare.front/./src/views/Table/FormView/SidePanelFormView.vue","webpack://softfluent.rowshare.front/./src/views/Table/FormView/SidePanelFormView.vue?2db0","webpack://softfluent.rowshare.front/./src/views/Table/FormView/SidePanelFormView.vue?2641","webpack://softfluent.rowshare.front/./src/views/Table/FormView/SidePanelFormView.vue?459e","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/SidePanelSharing.vue","webpack://softfluent.rowshare.front/./src/views/components/AccessLevelSwitch.vue","webpack://softfluent.rowshare.front/./src/views/components/AccessLevelSwitch.vue?9490","webpack://softfluent.rowshare.front/./src/viewModels/Table/ListAccessVM.ts","webpack://softfluent.rowshare.front/./src/views/components/AccessLevelSwitch.vue?dde7","webpack://softfluent.rowshare.front/./src/views/components/AccessLevelSwitch.vue?3d61","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/SidePanelSharing.vue?2476","webpack://softfluent.rowshare.front/./src/viewModels/Table/ColumnAccessVM.ts","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/SidePanelSharing.vue?5ad0","webpack://softfluent.rowshare.front/./src/views/Table/ShareTable/SidePanelSharing.vue?54af","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/SidePanelColumnPermissions.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/SidePanelColumnPermissions.vue?4824","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/SidePanelColumnPermissions.vue?80bb","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/SidePanelColumnPermissions.vue?94a5","webpack://softfluent.rowshare.front/./src/views/Table/TableSettings/SidePanelTableSettings.vue","webpack://softfluent.rowshare.front/./src/views/Table/TableSettings/SidePanelTableSettings.vue?1d4b","webpack://softfluent.rowshare.front/./src/views/Table/TableSettings/SidePanelTableSettings.vue?28df","webpack://softfluent.rowshare.front/./src/views/Table/TableSettings/SidePanelTableSettings.vue?4140","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/SidePanelColumnSettings.vue","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/SidePanelColumnSettings.vue?66e7","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/SidePanelColumnSettings.vue?6adc","webpack://softfluent.rowshare.front/./src/views/Table/ColumnSettings/SidePanelColumnSettings.vue?f1a2","webpack://softfluent.rowshare.front/./src/views/layouts/DefaultLayout.vue?712d","webpack://softfluent.rowshare.front/./src/views/layouts/DefaultLayout.vue?384c","webpack://softfluent.rowshare.front/./src/views/layouts/DefaultLayout.vue?bfd4","webpack://softfluent.rowshare.front/./src/views/layouts/IframeLayout.vue","webpack://softfluent.rowshare.front/./src/views/layouts/IframeLayout.vue?f957","webpack://softfluent.rowshare.front/./src/views/layouts/IframeLayout.vue?b9e2","webpack://softfluent.rowshare.front/./src/views/layouts/IframeLayout.vue?2be2","webpack://softfluent.rowshare.front/./src/views/layouts/ErrorLayout.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/ErrorHeader.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/ErrorHeader.vue?8175","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/ErrorHeader.vue?61c2","webpack://softfluent.rowshare.front/./src/views/layouts/LayoutParts/ErrorHeader.vue?6c94","webpack://softfluent.rowshare.front/./src/views/layouts/ErrorLayout.vue?8021","webpack://softfluent.rowshare.front/./src/views/layouts/ErrorLayout.vue?8b8e","webpack://softfluent.rowshare.front/./src/views/layouts/ErrorLayout.vue?4ba1","webpack://softfluent.rowshare.front/./src/views/layouts/SignupLayout.vue","webpack://softfluent.rowshare.front/./src/views/layouts/SignupLayout.vue?c5e2","webpack://softfluent.rowshare.front/./src/views/layouts/SignupLayout.vue?9b51","webpack://softfluent.rowshare.front/./src/views/layouts/SignupLayout.vue?dce0","webpack://softfluent.rowshare.front/./src/views/layouts/LogInLayout.vue","webpack://softfluent.rowshare.front/./src/views/layouts/LogInLayout.vue?15cf","webpack://softfluent.rowshare.front/./src/views/layouts/LogInLayout.vue?c21c","webpack://softfluent.rowshare.front/./src/views/layouts/LogInLayout.vue?2b6a","webpack://softfluent.rowshare.front/./src/views/layouts/MsTeamsLayout.vue","webpack://softfluent.rowshare.front/./src/views/layouts/MsTeamsLayout.vue?1f23","webpack://softfluent.rowshare.front/./src/views/layouts/MsTeamsLayout.vue?4a56","webpack://softfluent.rowshare.front/./src/views/layouts/MsTeamsLayout.vue?64c4","webpack://softfluent.rowshare.front/./src/views/layouts/BackOfficeLayout.vue","webpack://softfluent.rowshare.front/./src/views/layouts/BackOfficeLayout.vue?9aa6","webpack://softfluent.rowshare.front/./src/views/layouts/BackOfficeLayout.vue?15ed","webpack://softfluent.rowshare.front/./src/views/layouts/BackOfficeLayout.vue?5319","webpack://softfluent.rowshare.front/./src/App.vue?2b17","webpack://softfluent.rowshare.front/./src/App.vue?10d9","webpack://softfluent.rowshare.front/./src/App.vue?2f2b","webpack://softfluent.rowshare.front/./src/main.ts","webpack://softfluent.rowshare.front/webpack/bootstrap","webpack://softfluent.rowshare.front/webpack/runtime/chunk loaded","webpack://softfluent.rowshare.front/webpack/runtime/compat get default export","webpack://softfluent.rowshare.front/webpack/runtime/define property getters","webpack://softfluent.rowshare.front/webpack/runtime/global","webpack://softfluent.rowshare.front/webpack/runtime/hasOwnProperty shorthand","webpack://softfluent.rowshare.front/webpack/runtime/make namespace object","webpack://softfluent.rowshare.front/webpack/runtime/node module decorator","webpack://softfluent.rowshare.front/webpack/runtime/publicPath","webpack://softfluent.rowshare.front/webpack/runtime/jsonp chunk loading","webpack://softfluent.rowshare.front/webpack/startup"],"sourcesContent":["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\": 6737,\n\t\"./ar-kw.js\": 6737,\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\": 7207,\n\t\"./en-il.js\": 7207,\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\": 9901,\n\t\"./es-us.js\": 9901,\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\": 3926,\n\t\"./kn.js\": 3926,\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\": 7930,\n\t\"./se.js\": 7930,\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\": 8227,\n\t\"./sr-cyrl\": 9915,\n\t\"./sr-cyrl.js\": 9915,\n\t\"./sr.js\": 8227,\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 Component from 'vue-class-component';\r\nComponent.registerHooks(['beforeRouteLeave']);\r\n","import RowVM from '@/viewModels/Table/rowVM';\r\nimport { Column, List, Row, SecurityPrincipal } from './RowShare';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\n\r\nexport enum Event {\r\n TITLE_CHANGED = 'TitleChanged',\r\n ACTION_COMMAND = 'ActionCommand',\r\n TOGGLE_RECENT = 'ToggleRecent',\r\n TOGGLE_FAVOURITE = 'ToggleFavourite',\r\n SEARCH_DISPLAY = 'SearchFieldDisplay',\r\n SHOW_DESCRIPTION_DIALOG = 'ShowDescriptionDialog',\r\n SEARCH_TRIGGERED = 'SearchTriggered',\r\n SEARCH_RESET = 'SearchReset',\r\n \r\n LOCALE_CHANGED = 'LocaleChanged',\r\n VALIDATE_FORM = 'ValidateForm',\r\n ORGANIZATION_CHANGED = 'OrganizationChanged',\r\n GROUP_CHANGED = 'GroupChanged',\r\n\r\n LISTINFO_CHANGED = \"ListInfoChanged\",\r\n LISTNAME_CHANGED = \"ListNameChanged\",\r\n LISTACCESSES_CHANGED = \"ListAccessesChanged\",\r\n LIST_COPIEDORMOVED = \"ListCopiedOrMoved\",\r\n LISTSETTINGS_CHANGED = \"ListSettingsChanged\",\r\n COLUMNSETTINGS_CHANGED = \"ColumnSettingsChanged\",\r\n\r\n ROW_ERROR = \"RowError\",\r\n // used event for local modification with server side error (e.g. when some cells are required)\r\n ROW_MODIFIED = \"RowModified\",\r\n // used after a succesfull API save\r\n ROW_SAVED = \"RowSaved\",\r\n // ROW_UPDATED is currently used by the mobile app for create, save and delete\r\n ROW_UPDATED = 'RowUpdated',\r\n ROW_DELETE = 'RowDelete',\r\n ROW_DELETE_DISTANT = 'RowDeleteDistant',\r\n ROW_RESTORE = 'RowRestore',\r\n ROW_ARCHIVE = 'RowArchive',\r\n ROW_UNARCHIVE = 'RowUnarchive',\r\n ROW_ADDED = 'RowAdded',\r\n ROW_ADDED_DISTANT = 'RowAddedDistant',\r\n ROW_EDIT_COMMENTS = 'RowEditComments',\r\n ROW_SELECTION_CHANGED = 'RowSelectionChanged',\r\n ROW_EDIT_RELATED_ROWS = 'RowEditRelatedRows',\r\n ROW_LOCKED = \"RowLocked\",\r\n ROW_UNLOCKED = \"RowUnlocked\",\r\n ROW_CELL_UPDATED = \"Row_CELL_UPDATED\",\r\n\r\n GRID_ERROR = \"GRID_ERROR\",\r\n GRID_SEARCH_CHANGED = 'GRID_SEARCH_CHANGED',\r\n GRID_INFOS_CHANGED = \"GRID_INFOS_CHANGED\",\r\n GRID_CLEAR_HIDDENCOLUMNS = \"GRID_CLEAR_HIDDENCOLUMNS\",\r\n GRID_CLEAR_FILTERS = \"GRID_CLEAR_FILTERS\",\r\n GRID_CLEAR_ROWGROUPS = \"GRID_CLEAR_ROWGROUPS\",\r\n GRID_ADD_ROWGROUP = \"GRID_ADD_ROWGROUP\",\r\n GRID_REMOVE_ROWGROUP = \"GRID_REMOVE_ROWGROUP\",\r\n GRID_CHOOSE_CELL_COLOR = \"GRID_CHOOSE_CELL_COLOR\",\r\n GRID_SELECTION_CHANGED = \"GRID_SELECTION_CHANGED\",\r\n GRID_SHOW_ROWS = \"GRID_SHOW_ROWS\",\r\n\r\n CONFIRMATION_REQUIRED = 'CONFIRMATION_REQUIRED',\r\n GLOBAL_NOTIFICATION_RAISED = 'GLOBAL_NOTIFICATION_RAISED',\r\n CLEAR_ALL_GLOBAL_NOTIFICATIONS = 'CLEAR_ALL_GLOBAL_NOTIFICATIONS',\r\n\r\n ROWMERGE_REQUEST = \"ROWMERGE_REQUEST\",\r\n ASSIGNROWS_REQUEST = \"ASSIGNROWS_REQUEST\",\r\n LISTANALYSIS_REQUEST = \"LISTANALYSIS_REQUEST\",\r\n LISTANALYSIS_SHOWRESULTS = \"LISTANALYSIS_SHOWRESULTS\",\r\n LISTANALYSIS_REFRESH = \"LISTANALYSIS_REFRESH\",\r\n\r\n RESTORE_FILTERS = \"RESTORE_FILTERS\",\r\n\r\n ADD_NEW_CHART = \"ADD_NEW_CHART\",\r\n REFRESH_CHARTS = \"REFRESH_CHARTS\",\r\n REFRESH_CHARTS_DATA = \"REFRESH_CHARTS_DATA\",\r\n EDIT_CHART = \"EDIT_CHART\",\r\n MAXIMIZE_CHART = \"MAXIMIZE_CHART\",\r\n\r\n RECAPTCHA_SUCCEEDED = \"RECAPTCHA_SUCCEEDED\",\r\n RECAPTCHA_FAILED = \"RECAPTCHA_FAILED\",\r\n RECAPTCHA_SHOW = \"RECAPTCHA_SHOW\",\r\n RECAPTCHA_SHOWV2 = \"RECAPTCHA_SHOWV2\",\r\n RECAPTCHA_CANCELEDV2 = \"RECAPTCHA_CANCELV2\",\r\n\r\n ADD_COLUMN = \"ADD_COLUMN\",\r\n COLUMN_PERMISSIONS_CHANGED = \"COLUMN_PERMISSIONS_CHANGED\",\r\n COLUMN_INFOS_CHANGED = \"COLUMN_INFOS_CHANGED\",\r\n SHOW_UPSELL_DIALOG = \"SHOW_UPSELL_DIALOG\",\r\n SHOW_SIDEPANEL_FORMVIEW = \"SHOW_SIDEPANEL_FORMVIEW\",\r\n SHOW_SIDEPANEL_SHARING = \"SHOW_SIDEPANEL_SHARING\",\r\n SHOW_SIDEPANEL_COLUMN_PERMISSIONS = \"SHOW_SIDEPANEL_COLUMN_PERMISSIONS\",\r\n SHOW_SIDEPANEL_TABLE_SETTINGS = \"SHOW_SIDEPANEL_TABLE_SETTINGS\",\r\n SHOW_SIDEPANEL_COLUMN_SETTINGS = \"SHOW_SIDEPANEL_COLUMN_SETTINGS\",\r\n\r\n UPDATE_SUBSCRIPTION_REQUEST = \"UPDATE_SUBSCRIPTION_REQUEST\",\r\n\r\n // RTC EVENT\r\n COLUMN_UPDATED_RTC = \"COLUMN_UPDATED_RTC\",\r\n LIST_UPDATED_RTC = \"LIST_UPDATED_RTC\",\r\n ROW_CELL_LOCK_RTC = \"ROW_CELL_LOCK_RTC\"\r\n\r\n}\r\n\r\nexport class AddColumnEventParams {\r\n insertBeforeColumnId: string | null = null;\r\n}\r\n\r\nexport class ShowSidePanelFormViewEventParams {\r\n rowId: string | null = null;\r\n ListVM: ListVM | null = null;\r\n}\r\n\r\nexport class ShowUpsellDialogEventParams {\r\n title: string | null = null;\r\n description: string | null = null;\r\n}\r\n\r\nexport class ConfirmationRequiredEventParams{\r\n title: string | null = null;\r\n description1: string | null = null;\r\n description2: string | null = null;\r\n cancelButtonText: string | null = null;\r\n actionButtonText: string | null = null;\r\n actionButtonIcon: string | null = null;\r\n actionButtonColor: string | null = null;\r\n persistent: boolean | null = false;\r\n\r\n onConfirmation!: () => Promise;\r\n}\r\n\r\nexport class RowErrorEventParams {\r\n rowVM!: RowVM;\r\n title!: string;\r\n message!: string;\r\n}\r\n\r\nexport class GridErrorEventParams {\r\n title!: string;\r\n message!: string;\r\n}\r\n\r\nexport class GlobalNotificationEventParams {\r\n title!: string;\r\n message: string | null = null;\r\n autoHide = false;\r\n autoHideAfterMs = 2000;\r\n type : NotificationType = NotificationType.info; \r\n // if provided, any previous notification with the same id will be removed to avoid duplicate\r\n duplicateId : string | null = null;\r\n showActionButton: boolean = false;\r\n actionButtonText: string | null = null;\r\n actionButtonClick!: () => void;\r\n}\r\n\r\nexport enum NotificationType { error = 'error', warning = 'warning', success = 'success', info = 'info' }\r\n\r\nexport class GridSearchChangeEventParams {\r\n searchText!: string | null;\r\n saveValue: boolean = true;\r\n source: \"userInput\" | \"external\" = \"userInput\";\r\n}\r\n\r\nexport class rowEditCommentsEventParams {\r\n row!: Row;\r\n column!: Column;\r\n list!: List;\r\n\r\n refreshParentRow!: () => void;\r\n}\r\n\r\nexport class maximizeChartEventParams {\r\n chartId!: string;\r\n rowIds!: string[] | null;\r\n}\r\n\r\nexport class rowEditRelatedRowsEventParams{\r\n rowVM!: RowVM;\r\n relatedListId!: string;\r\n column!: Column;\r\n refreshParentRow!: () => void;\r\n}\r\n\r\nexport class inviteRequestEventParams {\r\n listId!: string;\r\n sendInvitationEmails!: boolean;\r\n selectedGuestsType!: string;\r\n selectedGuests!: (SecurityPrincipal | string)[];\r\n}\r\n\r\nexport class showSidePanelSharingEventParams {\r\n listId!: string;\r\n addGuest!: boolean;\r\n inviteParams!: inviteRequestEventParams;\r\n advancedMode!: boolean;\r\n}\r\n\r\nexport class listAnalysisRequestEventParams {\r\n listId!: string;\r\n}\r\n\r\nexport class showSidePanelColumnPermissionsEventParams {\r\n columnId!: string;\r\n}\r\n\r\nexport class updateSubscriptionRequestEventParams {\r\n organizationId!: string;\r\n}\r\n\r\nexport class showSidePanelTableSettingsEventParams {\r\n listId!: string;\r\n}\r\n\r\nexport class showSidePanelColumnSettingsEventParams {\r\n columnId!: string;\r\n listId!: string;\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.pageLayout,{tag:\"component\",attrs:{\"id\":\"app\"}},[_c('keep-alive',{attrs:{\"id\":\"localized-root\",\"include\":\"CreateTable, bo\"}},[_c('router-view')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nimport Vuex, { StoreOptions } from 'vuex';\r\nimport { IRootState } from '@/store/IRootState';\r\n\r\nVue.use(Vuex);\r\n\r\nconst storeOptions: StoreOptions = {\r\n};\r\n\r\nexport default new Vuex.Store(storeOptions);","import { Utils } from \"./Utilities\"\r\n\r\nconst ticksPerMillisecond = 10000;\r\nconst ticksPerSecond = 1000 * ticksPerMillisecond;\r\nconst ticksPerMinutes = 60 * ticksPerSecond;\r\nconst ticksPerHours = 60 * ticksPerMinutes;\r\nconst dateFormatRegExp = /HH|H|hh|h|mm|m|fff|ff|f|ss|s|\"[^\"]*\"|'[^']*'/g;\r\n\r\nconst zeros = [\"\", \"0\", \"00\", \"000\", \"0000\"];\r\nfunction pad(n: number, digits: number) {\r\n const str = n + \"\";\r\n digits = digits || 2;\r\n const end = digits - str.length;\r\n\r\n if (end > 0) {\r\n return zeros[digits].substring(0, end) + n;\r\n }\r\n\r\n return n;\r\n}\r\n\r\nexport default class TimeSpan {\r\n // must match the .NET TimeSpan.Ticks\r\n // 1 tick = 100 nanoseconds\r\n private _ticks: number;\r\n\r\n constructor(ticks: number) {\r\n this._ticks = ticks;\r\n }\r\n\r\n public static fromTime(hours: number, minutes?: number, seconds?: number, milliseconds?: number) {\r\n let ticks = hours * ticksPerHours;\r\n if (Utils.isNumber(minutes)) {\r\n ticks += minutes * ticksPerMinutes;\r\n }\r\n\r\n if (Utils.isNumber(seconds)) {\r\n ticks += seconds * ticksPerSecond;\r\n }\r\n\r\n if (Utils.isNumber(milliseconds)) {\r\n ticks += milliseconds * ticksPerMillisecond;\r\n }\r\n\r\n return new TimeSpan(ticks);\r\n }\r\n\r\n public static fromTicks(ticks: number) {\r\n return new TimeSpan(ticks);\r\n }\r\n\r\n public get ticks() {\r\n return this._ticks;\r\n }\r\n\r\n public get hours() {\r\n return Math.trunc(this.ticks / ticksPerHours);\r\n }\r\n\r\n public get minutes() {\r\n return Math.trunc((this.ticks / ticksPerMinutes) % 60);\r\n }\r\n\r\n public get seconds() {\r\n return Math.trunc((this.ticks / ticksPerSecond) % 60);\r\n }\r\n\r\n public get milliseconds() {\r\n return Math.trunc((this.ticks / ticksPerMillisecond) % 1000);\r\n }\r\n\r\n public get totalHours() {\r\n return this.ticks / ticksPerHours;\r\n }\r\n\r\n public get totalMinutes() {\r\n return this.ticks / ticksPerMinutes;\r\n }\r\n\r\n public get totalSeconds() {\r\n return this.ticks / ticksPerSecond;\r\n }\r\n\r\n public get totalMilliseconds() {\r\n return this.ticks / ticksPerMillisecond;\r\n }\r\n\r\n public get displayValue() {\r\n return this.toString();\r\n }\r\n\r\n public toDate() {\r\n const date = new Date();\r\n date.setHours(this.hours, this.minutes, this.seconds, this.milliseconds);\r\n return date;\r\n }\r\n\r\n public toString(format?: string) {\r\n if (Utils.isNullOrUndefined(format)) {\r\n // hh:mm:ss.fff\r\n return `${pad(this.hours, 2)}:${pad(this.minutes, 2)}:${pad(this.seconds, 2)}.${pad(this.milliseconds, 3)}`;\r\n }\r\n\r\n return format.replace(dateFormatRegExp, (match) => {\r\n var result;\r\n\r\n if (match === \"h\") {\r\n result = this.hours;\r\n } else if (match === \"hh\") {\r\n result = pad(this.hours, 2);\r\n } else if (match === \"m\") {\r\n result = this.minutes;\r\n } else if (match === \"mm\") {\r\n result = pad(this.minutes, 2);\r\n } else if (match === \"s\") {\r\n result = this.seconds;\r\n } else if (match === \"ss\") {\r\n result = pad(this.seconds, 2);\r\n } else if (match === \"f\") {\r\n result = Math.floor(this.milliseconds / 100);\r\n } else if (match === \"ff\") {\r\n result = this.milliseconds;\r\n if (result > 99) {\r\n result = Math.floor(result / 10);\r\n }\r\n result = pad(result, 2);\r\n } else if (match === \"fff\") {\r\n result = pad(this.milliseconds, 3);\r\n }\r\n\r\n if (result !== undefined) {\r\n return String(result);\r\n }\r\n\r\n // quoted value (\"sample\" or 'sample')\r\n return match.slice(1, match.length - 1);\r\n });\r\n }\r\n}","import TimeSpan from \"./TimeSpan\"\r\nimport { ApplicationModule } from \"@/store/ApplicationStore\";\r\nexport class Utils {\r\n\r\n static nameof(key: keyof T, instance?: T): keyof T {\r\n return key;\r\n }\r\n\r\n static isUndefined(obj: any): obj is undefined {\r\n return typeof (obj) === \"undefined\";\r\n }\r\n\r\n static isNullOrUndefined(obj: any): obj is undefined | null {\r\n return Utils.isUndefined(obj) || obj === null;\r\n }\r\n\r\n static isFunction(obj: any): obj is Function {\r\n return typeof (obj) === \"function\";\r\n }\r\n\r\n static isObject(obj: any): obj is object {\r\n return obj !== null && typeof (obj) === \"object\";\r\n }\r\n\r\n static isNumber(obj: any): obj is number {\r\n return typeof (obj) === \"number\" && !isNaN(obj);\r\n }\r\n\r\n static isString(obj: any): obj is string {\r\n return typeof (obj) === \"string\";\r\n }\r\n\r\n static isBoolean(obj: any): obj is boolean {\r\n return typeof (obj) === \"boolean\";\r\n }\r\n\r\n static isDate(obj: any): obj is Date {\r\n return obj instanceof Date;\r\n }\r\n\r\n static isHtmlString(htmlString: string) : boolean {\r\n if(htmlString == '' || htmlString == null){\r\n return false;\r\n }\r\n return /<(br|basefont|hr|input|source|frame|param|area|meta|!--|col|link|option|base|img|wbr|!DOCTYPE).*?>|<(a|abbr|acronym|address|applet|article|aside|audio|b|bdi|bdo|big|blockquote|body|button|canvas|caption|center|cite|code|colgroup|command|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frameset|head|header|hgroup|h1|h2|h3|h4|h5|h6|html|i|iframe|ins|kbd|keygen|label|legend|li|map|mark|menu|meter|nav|noframes|noscript|object|ol|optgroup|output|p|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video).*?<\\/\\2>/i.test(htmlString);\r\n }\r\n\r\n static isGuid(obj: any): obj is string {\r\n if (!Utils.isString(obj)) {\r\n return false;\r\n }\r\n\r\n // the following pattern does not comply with the RFC4122 but it validates the Guids generated by the newGuid() method below\r\n const guidPattern = /^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$/i\r\n // the correct pattern should be\r\n // /^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-5][0-9a-f]{3}-?[089ab][0-9a-f]{3}-?[0-9a-f]{12}$/i\r\n return guidPattern.test(obj);\r\n }\r\n\r\n private static readonly emptyGuid = \"00000000000000000000000000000000\";\r\n\r\n static isEmptyGuid(guid: string | null | undefined): guid is (null | undefined | \"\" | \"00000000000000000000000000000000\") {\r\n return Utils.isNullOrEmpty(guid) || guid === Utils.emptyGuid;\r\n }\r\n\r\n static isArray(obj: any): obj is Array {\r\n return Array.isArray(obj);\r\n }\r\n\r\n static isJSON(obj: any): obj is string {\r\n try {\r\n JSON.parse(obj);\r\n return true;\r\n }\r\n catch{\r\n return false;\r\n }\r\n }\r\n\r\n static isPromiseLike(obj: any): obj is PromiseLike {\r\n return Utils.isObject(obj) && Utils.isFunction((obj).then);\r\n }\r\n\r\n static isArrayLike(obj: any): obj is ArrayLike {\r\n return Utils.isObject(obj) && (\"length\" in obj);\r\n }\r\n\r\n static equalsIgnoreCase(str1: string, str2: string) {\r\n if (Utils.isNullOrUndefined(str1) && Utils.isNullOrUndefined(str2)) {\r\n return true;\r\n }\r\n\r\n if (Utils.isNullOrUndefined(str1) || Utils.isNullOrUndefined(str2)) {\r\n return false;\r\n }\r\n\r\n return str1.toLowerCase() === str2.toLowerCase();\r\n }\r\n\r\n static endsWith(str: string, suffix: string): boolean {\r\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n }\r\n\r\n static nullify(value: string | null, trim: boolean): string | null {\r\n if (Utils.isNullOrEmpty(value)) {\r\n return null;\r\n }\r\n\r\n if (trim) {\r\n value = value.trim();\r\n }\r\n\r\n if (Utils.isNullOrEmpty(value)) {\r\n return null;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n static isNullOrWhiteSpace(value: string | null | undefined) {\r\n if (this.isNullOrUndefined(value))\r\n return true;\r\n\r\n value = value.trim();\r\n return value === \"\";\r\n }\r\n\r\n static isNullOrEmpty(value: string | null | undefined): value is null | undefined | \"\" {\r\n if (this.isNullOrUndefined(value))\r\n return true;\r\n\r\n return value === \"\";\r\n }\r\n\r\n //static removeDiacritics(value: string) {\r\n // return value.replace(/[^A-Za-z0-9]/g, function (x) { return (NormalizationFormKDMap)[x] || x; })\r\n //}\r\n\r\n static htmlEncode(value: string | null | undefined) {\r\n if (Utils.isNullOrUndefined(value)) {\r\n return \"\";\r\n }\r\n\r\n return String(value)\r\n .replace(/&/g, '&')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''')\r\n .replace(//g, '>');\r\n }\r\n\r\n static parseString(obj: any): string | null {\r\n if (Utils.isNullOrUndefined(obj)) {\r\n return null;\r\n }\r\n\r\n if (Utils.isString(obj)) {\r\n return obj;\r\n }\r\n\r\n return String(obj);\r\n }\r\n\r\n static parseNumber(obj: any, defaultValue: T): number | T {\r\n if (Utils.isNullOrUndefined(obj)) {\r\n return defaultValue;\r\n }\r\n\r\n if (Utils.isNumber(obj)) {\r\n return obj;\r\n }\r\n\r\n if (Utils.isString(obj)) {\r\n const f = parseFloat(obj);\r\n if (!isNaN(f)) {\r\n return f;\r\n }\r\n\r\n const i = parseInt(obj, 10);\r\n if (!isNaN(i)) {\r\n return i;\r\n }\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n static parseBoolean(obj: any, defaultValue: T): boolean | T {\r\n if (Utils.isBoolean(obj)) {\r\n return obj;\r\n }\r\n\r\n if (Utils.isNumber(obj)) {\r\n return obj !== 0;\r\n }\r\n\r\n if (Utils.isString(obj)) {\r\n let upper = obj.toUpperCase();\r\n switch (upper) {\r\n case \"TRUE\":\r\n case \"1\":\r\n return true;\r\n\r\n case \"FALSE\":\r\n case \"0\":\r\n return false;\r\n }\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n static parseInteger(str: string, defaultValue: T): number | T {\r\n let parsedValue = Utils.parseNumber(str, NaN);\r\n if (isNaN(parsedValue)) {\r\n return defaultValue;\r\n }\r\n\r\n if (Utils.isNumber(parsedValue)) {\r\n return Math.trunc(parsedValue);\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n static parseDateTime(value: any, defaultValue: T): Date | T {\r\n if (Utils.isDate(value)) {\r\n return value;\r\n }\r\n\r\n if (Utils.isString(value)) {\r\n // Format /Date(+)/\r\n // ticks = ticks Unix Epoch => milliseconds since 1st january 1970\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date\r\n let a = /\\/Date\\(((?:-|\\+)?\\d*)((?:-|\\+)\\d*)?\\)\\//.exec(value);\r\n if (a) {\r\n var date = new Date(+a[1]);\r\n // if our value didn't include an offset then we bascially want to display the same date for every user whatever his / her timezone is.\r\n // so with the following line we want to \"cancel\" the local timezone\r\n // new Date(ticks) = new Date(Ticks + getTimeZone) => We need to remove the timezone\r\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60 * 1000));\r\n if (a[2]) {\r\n // if serveur has provided an offset, then we want to take this offset in account\r\n // this is the case for exemple for row creation date for row last modification date, for reminders, etc.\r\n var tz = +a[2]; // +0200, -0130\r\n var offset = (tz / 100 * 60) + (tz % 100); // minutes\r\n return new Date(date.getTime() + offset * 60000);\r\n }\r\n return date;\r\n }\r\n\r\n // Format 0000-00-00T00:00:00\r\n // Format 0000-00-00 00:00:00\r\n // Format 0000/00/00 00:00:00\r\n let b = /(\\d{4})(\\/|-)(\\d{1,2})(\\/|-)(\\d{1,2})((T| )(\\d{1,2}):(\\d{1,2})(:(\\d{1,2})))?/.exec(value);\r\n if (b) {\r\n // [\"2012-01-01T01:02:03\", \"2012\", \"-\", \"01\", \"-\", \"01\", \"T01:02:03\", \"T\", \"01\", \"02\", \":03\", \"03\"]\r\n let year = Utils.parseInteger(b[1], 0);\r\n let month = Utils.parseInteger(b[3], 1) - 1; // 0 based\r\n let day = Utils.parseInteger(b[5], 0);\r\n let hours = Utils.parseInteger(b[8], 0);\r\n let minutes = Utils.parseInteger(b[9], 0);\r\n let seconds = Utils.parseInteger(b[11], 0);\r\n\r\n return new Date(year, month, day, hours, minutes, seconds, 0);\r\n }\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n static parseTime(value: any, defaultValue: T): TimeSpan | T {\r\n if (value instanceof TimeSpan) {\r\n return value;\r\n }\r\n\r\n if (Utils.isString(value)) {\r\n const a = /(\\d+):(\\d+)(?::(\\d+))?/.exec(value);\r\n if (a) {\r\n const hours = parseInt(a[1], 10);\r\n const minutes = parseInt(a[2], 10);\r\n const seconds = parseInt(a[3], 10);\r\n return TimeSpan.fromTime(hours, minutes, seconds);\r\n }\r\n }\r\n\r\n if (typeof value === \"number\" && isFinite(value)) {\r\n return TimeSpan.fromTicks(value);\r\n }\r\n\r\n const ticks = parseInt(value, 10);\r\n if (isFinite(ticks)) {\r\n return Utils.parseTime(ticks, defaultValue);\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n static limitValue(value: T, min: T, max: T): T {\r\n if (value < min) {\r\n return min;\r\n }\r\n\r\n if (value > max) {\r\n return max;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n static groupBy(items: T[], propertyName: K): Map {\r\n let result = new Map();\r\n for (const item of items) {\r\n const key = item[propertyName];\r\n\r\n let values = result.get(key);\r\n if (!values) {\r\n values = [];\r\n result.set(key, values);\r\n }\r\n\r\n values.push(item);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static delay(timeout: number) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(function () {\r\n resolve(null);\r\n }, timeout);\r\n });\r\n }\r\n\r\n /*static throttle(wait: number, func: (...args: any[]) => any, immediate: boolean = false) {\r\n let context: any;\r\n let args: IArguments;\r\n let timeout: number | null = null;\r\n let result: any;\r\n var previous: any = 0;\r\n var later = () => {\r\n previous = new Date;\r\n timeout = null;\r\n result = func.apply(context, args);\r\n };\r\n return function (this: any, ...args: any[]) {\r\n var now = new Date();\r\n if (!previous && immediate === false) {\r\n previous = now;\r\n }\r\n\r\n var remaining = wait - (now.getTime() - previous);\r\n context = this;\r\n if (remaining <= 0) {\r\n if (timeout !== null) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n result = func.apply(context, args);\r\n } else if (!timeout) {\r\n timeout = setTimeout(later, remaining);\r\n }\r\n return result;\r\n };\r\n };*/\r\n\r\n static debounce(wait: number, func: (...args: any[]) => any, immediate: boolean = false): (...args: any[]) => any {\r\n let timeout: number | null = null;\r\n let result: any;\r\n return function (this: any, ...args: any[]) {\r\n var context = this;\r\n var later = () => {\r\n timeout = null;\r\n if (!immediate) {\r\n result = func.apply(this, args);\r\n }\r\n };\r\n var callNow = immediate && !timeout;\r\n if (timeout !== null) {\r\n clearTimeout(timeout);\r\n }\r\n timeout = setTimeout(later, wait);\r\n if (callNow) {\r\n result = func.apply(context, args);\r\n }\r\n return result;\r\n };\r\n };\r\n\r\n static chainPromises(promises: (() => Promise)[]): Promise | null {\r\n return promises.reduce((prev, current) => prev ? prev.then(() => current()) : current(), | null>null);\r\n }\r\n\r\n static newGuid() {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\r\n }\r\n return s4() + s4() + s4() + s4() + s4() + s4() + s4() + s4();\r\n }\r\n\r\n static newId() {\r\n return \"id\" + Utils.newGuid();\r\n }\r\n\r\n static loadScript(url: string) {\r\n return new Promise((resolve, reject) => {\r\n const script = document.createElement('script');\r\n script.src = url;\r\n script.addEventListener(\"load\", e => { resolve(e); });\r\n script.addEventListener(\"error\", e => { reject(e); });\r\n\r\n const head = document.head;\r\n if(head)\r\n head.insertBefore(script, head.firstChild);\r\n });\r\n }\r\n\r\n static isImageMimeType(mimeType: string) {\r\n return /^image\\//i.test(mimeType);\r\n }\r\n\r\n static camelize(value: string) {\r\n if (Utils.isNullOrUndefined(value)) {\r\n return value;\r\n }\r\n\r\n if (value.length === 0) {\r\n return value;\r\n }\r\n\r\n return value[0].toUpperCase() + value.substring(1);\r\n }\r\n\r\n static getCurrentCulture() {\r\n let d = document.documentElement;\r\n if (d && d.lang) {\r\n return d.lang;\r\n }\r\n\r\n return \"en\";\r\n }\r\n\r\n static async findAsync(array : Array, asyncCallback: any) : Promise{\r\n const promises = array.map(asyncCallback);\r\n const results = await Promise.all(promises);\r\n const index = results.findIndex(result => result);\r\n return array[index];\r\n }\r\n\r\n static humanFileSize(bytes: number, frLocale: boolean = false, precision: number = 1) {\r\n const thresh = 1024;\r\n const unitsEN = [\"kB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\r\n const unitsFR = [\" Ko\", \" Mo\", \" Go\", \" To\", \" Po\", \" Eo\", \" Zo\", \" Yo\"];\r\n\r\n let units = frLocale ? unitsFR : unitsEN;\r\n\r\n if (Math.abs(bytes) < thresh) {\r\n return bytes + (frLocale ? \" o\" : \"B\");\r\n }\r\n\r\n let unitIndex = -1;\r\n do {\r\n bytes = bytes / thresh;\r\n unitIndex += 1;\r\n } while (Math.abs(bytes) >= thresh && unitIndex < units.length - 1);\r\n\r\n return bytes.toFixed(precision) + units[unitIndex];\r\n }\r\n\r\n static validateEmail(email: string) {\r\n //var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n // Prevent non ASCII emails (cf. bug #10821)\r\n var re = /^[a-zA-Z0-9.!$&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\n return re.test(String(email).toLowerCase());\r\n }\r\n\r\n static validateLoginPassword(pwd: string) {\r\n var re = new RegExp(ApplicationModule.loginPasswordRegex!);\r\n return re.test(String(pwd));\r\n }\r\n\r\n \r\n\r\n static getCookie(cname: string) {\r\n try {\r\n var name = cname + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n }\r\n catch { };\r\n return \"\";\r\n }\r\n\r\n static normalizeString(value: string | null | undefined): string | null | undefined {\r\n if(!value) {\r\n return value;\r\n }\r\n return value.replace(/\\s/g, '')\r\n .replace(/[àáâãäå]/g, 'a')\r\n .replace(/æ/g, 'ae')\r\n .replace(/ç/g, 'c')\r\n .replace(/[èéêë]/g, 'e')\r\n .replace(/[ìíîï]/g, 'i')\r\n .replace(/ñ/g, 'n')\r\n .replace(/[òóôõö]/g, 'o')\r\n .replace(/Å“/g, 'oe')\r\n .replace(/[ùúûü]/g, 'u')\r\n .replace(/[ýÿ]/g, 'y')\r\n .replace(/\\W/g, '')\r\n .toLowerCase();\r\n }\r\n\r\n public static escapeHTML(value: string) {\r\n if(!value) {\r\n return value;\r\n }\r\n return value.replace(/&/g, \"&\")\r\n .replace(//g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n }\r\n}\r\n","import { Utils } from \"@/utils/Utilities\"\r\n\r\n export type LogLevel = \"verbose\" | \"info\" | \"warning\" | \"error\";\r\n\r\n // tslint:disable-next-line:max-line-length\r\n export type Component =\r\n \"Other\" |\r\n \"Form\" |\r\n \"Grid\" | \"GridColumnResizer\" | \"GridContentOverflow\" | \"GridEdit\" | \"GridSelection\" | \"GridStickyHeader\" |\r\n \"CheckBox\" | \"CacheBuster\" | \"Dialog\" | \"FileUpload\" | \"EventHub\" | \"UnhandledError\" |\r\n \"RowShare\" | \"RowShare.Store\" | \"RowShare.Grid\" | \"RowShare.Api\" | \"RowShare.Editor\" |\r\n \"LoginPopup\"\r\n /* | string*/;\r\n\r\n export interface ILoggerOptions {\r\n minimumLevel: LogLevel;\r\n }\r\n\r\n export interface ILogger {\r\n isEnabled(): boolean;\r\n log(component: Component, level: LogLevel, message: any, ...optionalParams: any[]): void;\r\n clear(): void;\r\n }\r\n\r\n export class ConsoleLogger implements ILogger {\r\n static EnabledKeyName = \"SoftFluent.ConsoleLogger.enabled\";\r\n\r\n private _enabled: boolean | undefined;\r\n\r\n constructor(enabled?: boolean) {\r\n if (typeof enabled === \"boolean\") {\r\n this._enabled = enabled;\r\n }\r\n }\r\n\r\n public static enable(value?: boolean) {\r\n localStorage.setItem(ConsoleLogger.EnabledKeyName, value !== false ? \"true\" : \"false\");\r\n }\r\n\r\n public enable(value?: boolean) {\r\n this._enabled = value;\r\n }\r\n\r\n public isEnabled() {\r\n if (Utils.isBoolean(this._enabled)) {\r\n return this._enabled;\r\n }\r\n\r\n let value = localStorage.getItem(ConsoleLogger.EnabledKeyName);\r\n if (value && (value.toLowerCase() === \"1\" || value.toLowerCase() === \"true\")) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public clear() {\r\n console.clear();\r\n }\r\n\r\n public log(component: Component, level: LogLevel, message: any, ...optionalParams: any[]) {\r\n if (!this.isEnabled()) {\r\n return;\r\n }\r\n\r\n message = `[${component}] ${message}`;\r\n\r\n switch (level) {\r\n case \"verbose\":\r\n console.debug.apply(console, [message, optionalParams]);\r\n break;\r\n\r\n case \"info\":\r\n console.info.apply(console, [message, optionalParams]);\r\n break;\r\n\r\n case \"warning\":\r\n console.warn.apply(console, [message, optionalParams]);\r\n break;\r\n\r\n case \"error\":\r\n console.error.apply(console, [message, optionalParams]);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n export class SessionStorageLogger implements ILogger {\r\n static EnabledKeyName = \"SoftFluent.SessionStorageLogger.enabled\";\r\n static DataKeyName = \"SoftFluent.SessionStorageLogger.data\";\r\n\r\n private _enabled: boolean | undefined;\r\n\r\n public static enable(value?: boolean) {\r\n localStorage.setItem(SessionStorageLogger.EnabledKeyName, value !== false ? \"true\" : \"false\");\r\n }\r\n\r\n public clear() {\r\n const storage = this.getStorage();\r\n storage.removeItem(SessionStorageLogger.DataKeyName);\r\n }\r\n\r\n public static show(index?: number) {\r\n const json = localStorage.getItem(SessionStorageLogger.DataKeyName);\r\n if (json) {\r\n let array = JSON.parse(json);\r\n if (Utils.isNumber(index)) {\r\n console.log(array[index]);\r\n } else {\r\n console.table(array);\r\n }\r\n }\r\n }\r\n\r\n public enable(value?: boolean) {\r\n this._enabled = value;\r\n }\r\n\r\n public isEnabled() {\r\n if (Utils.isBoolean(this._enabled)) {\r\n return this._enabled;\r\n }\r\n\r\n let value = localStorage.getItem(SessionStorageLogger.EnabledKeyName);\r\n if (value && (value.toLowerCase() === \"1\" || value.toLowerCase() === \"true\")) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private getStorage() {\r\n return localStorage;\r\n }\r\n\r\n private getStackTrace() {\r\n try {\r\n const err = new Error();\r\n return err.stack;\r\n } catch (ex) {\r\n return null;\r\n }\r\n }\r\n\r\n public log(component: Component, level: LogLevel, message: any, ...optionalParams: any[]) {\r\n if (!this.isEnabled()) {\r\n return;\r\n }\r\n\r\n if (level === \"verbose\") {\r\n return;\r\n }\r\n\r\n let array: any[] = [];\r\n\r\n const storage = this.getStorage();\r\n const value = storage.getItem(SessionStorageLogger.DataKeyName);\r\n if (value !== null) {\r\n array = JSON.parse(value);\r\n }\r\n\r\n array.push({\r\n date: new Date(),\r\n component: component,\r\n level: level,\r\n message: message,\r\n params: optionalParams.map(value => this.coerceParameter(value)),\r\n stackTrace: this.getStackTrace()\r\n });\r\n storage.setItem(SessionStorageLogger.DataKeyName, JSON.stringify(array));\r\n }\r\n\r\n private coerceParameter(value: any) {\r\n try {\r\n JSON.stringify(value);\r\n return value;\r\n } catch (ex) {\r\n return `${typeof value}`;\r\n }\r\n }\r\n }\r\n\r\n export class Logger {\r\n private static loggers: ILogger[] = [new ConsoleLogger(true), new SessionStorageLogger()];\r\n\r\n private static readonly options: ILoggerOptions = {\r\n minimumLevel: \"warning\"\r\n };\r\n\r\n static getLoggers() {\r\n return Logger.loggers;\r\n }\r\n\r\n static log(component: Component, level: LogLevel, message: any, ...optionalParams: any[]): void {\r\n for (const logger of Logger.loggers) {\r\n if (Logger.canLog(logger, component, level, message)) {\r\n logger.log.apply(logger, [component, level, message, optionalParams]);\r\n }\r\n }\r\n }\r\n\r\n static clear() {\r\n for (let logger of Logger.loggers) {\r\n logger.clear();\r\n }\r\n }\r\n\r\n private static canLog(logger: ILogger, component: Component, level: LogLevel, message: any) {\r\n if (Logger.getLogLevel(Logger.options.minimumLevel) > Logger.getLogLevel(level)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private static getLogLevel(level: LogLevel) {\r\n switch (level) {\r\n case \"verbose\":\r\n return 0;\r\n case \"info\":\r\n return 1;\r\n case \"warning\":\r\n return 2;\r\n case \"error\":\r\n return 3;\r\n }\r\n }\r\n }","import { ExceptionCode } from \"@/api/ApiUtils\";\r\n\r\nexport class ApiResult {\r\n public Errors!: ApiError[];\r\n public IsValid!: boolean;\r\n public Value!: T;\r\n}\r\n\r\nexport class ApiError {\r\n public ExceptionCode!: ExceptionCode;\r\n public FormatParams!: string[] | undefined | null;\r\n}","import { Group } from './Group';\r\n\r\nexport enum MemberOptions {\r\n None = 0,\r\n Administrator = 1,\r\n Disabled = 2,\r\n UniversalOwner = 16,\r\n ReadOnlyMember = 32,\r\n RowshareSupport = 64\r\n}\r\n\r\nexport class Member{\r\n Name!: string;\r\n Email!: string;\r\n OrganizationId!: string;\r\n Groups!: Group[];\r\n Options!: MemberOptions;\r\n ManagerEmail!: string;\r\n ManagerName!: string;\r\n Manager!: Member;\r\n IsUser!: boolean;\r\n RecaptchaToken!: string;\r\n RecaptchaTokenIsV3!: boolean;\r\n LastSeenDate!: Date;\r\n\r\n public get IsDisabled(){\r\n return (this.Options & MemberOptions.Disabled) == MemberOptions.Disabled;\r\n }\r\n\r\n public get IsEnabled(){\r\n return !this.IsDisabled;\r\n }\r\n\r\n public set IsEnabled(value: boolean){\r\n if(value === false){\r\n this.Options |= MemberOptions.Disabled;\r\n }\r\n else{\r\n this.Options &= ~MemberOptions.Disabled;\r\n }\r\n }\r\n\r\n public get IsAdministrator(){\r\n return (this.Options & MemberOptions.Administrator) == MemberOptions.Administrator;\r\n }\r\n public set IsAdministrator(value: boolean){\r\n if (value === true){\r\n this.Options |= MemberOptions.Administrator;\r\n }\r\n else{\r\n this.Options &= ~MemberOptions.Administrator;\r\n }\r\n\r\n }\r\n\r\n public get nameOrEmail() {\r\n return this.Name || this.Email;\r\n }\r\n\r\n public get IsRowShareSupport(){\r\n return (this.Options & MemberOptions.RowshareSupport) == MemberOptions.RowshareSupport;\r\n }\r\n public set IsRowShareSupport(value: boolean){\r\n if (value === true){\r\n this.Options |= MemberOptions.RowshareSupport;\r\n }\r\n else{\r\n this.Options &= ~MemberOptions.RowshareSupport;\r\n }\r\n\r\n }\r\n\r\n public get IsUniversalOwner(){\r\n return (this.Options & MemberOptions.UniversalOwner) == MemberOptions.UniversalOwner;\r\n }\r\n public set IsUniversalOwner(value: boolean){\r\n if (value === true){\r\n this.Options |= MemberOptions.UniversalOwner;\r\n }\r\n else{\r\n this.Options &= ~MemberOptions.UniversalOwner;\r\n }\r\n\r\n }\r\n\r\n public get IsReadOnly(){\r\n return (this.Options & MemberOptions.ReadOnlyMember) == MemberOptions.ReadOnlyMember;\r\n }\r\n public set IsReadOnly(value: boolean){\r\n if (value === true){\r\n this.Options |= MemberOptions.ReadOnlyMember;\r\n }\r\n else{\r\n this.Options &= ~MemberOptions.ReadOnlyMember;\r\n }\r\n\r\n }\r\n \r\n public get hasRole(){\r\n return this.IsAdministrator || this.IsUniversalOwner || this.IsReadOnly;\r\n }\r\n}\r\n","import { Utils } from \"@/utils/Utilities\";\r\n\r\nexport class User {\r\n \r\n public Email!: string;\r\n public NickName!: string;\r\n public FirstName?: string;\r\n public LastName?: string;\r\n public HasToConfirmEmail!: boolean;\r\n public RemainingHoursToConfirmEmail!: number;\r\n public IsAnonymous!: boolean;\r\n public IsExcludedFromAnalytics!: boolean;\r\n public IsAdministrator!: boolean;\r\n public RootFolderId!: string;\r\n public TimeZoneId!: string;\r\n public CreationDate!: Date;\r\n public LastLoginDate!: Date;\r\n public LastLoginProvider!: string;\r\n public Options?: UserOptions;\r\n public Owner?: Owner;\r\n public DefaultOrgId!: string;\r\n public Identity!: string;\r\n public Lcid!: string;\r\n public Language!: string | null;\r\n public PreviewFeaturesEnabled!: boolean;\r\n public EmailNotifications!: boolean;\r\n public OrganizationsCount!: number;\r\n public ManagedOrganizationsCount!: number;\r\n public Features!: string[];\r\n public IsDemoUser!: boolean;\r\n public CreatedFromMsTeams!: boolean;\r\n}\r\n\r\nexport class UserUnsubscription{\r\n public userId!:string;\r\n public Email!:string;\r\n}\r\n\r\nexport class SignupUser {\r\n public Email!: string;\r\n public FirstName!: string;\r\n public LastName!: string;\r\n public Password!: string;\r\n public AutoLogon!: boolean;\r\n public RecaptchaToken!: string;\r\n public RecaptchaTokenIsV3: boolean | null = true;\r\n}\r\n\r\nexport class SigninUser {\r\n public Email!: string;\r\n public Password!: string;\r\n public RecaptchaToken!: string;\r\n public RecaptchaTokenIsV3: boolean | null = true;\r\n}\r\n\r\nexport class ResetPasswordRequest{\r\n public Email!:string;\r\n public RecaptchaToken!: string;\r\n public RecaptchaTokenIsV3: boolean | null = true;\r\n}\r\n\r\nexport class ResetPassword{\r\n public Password!:string;\r\n public ConfirmPassword!:string;\r\n public Token!:string;\r\n}\r\n\r\nexport class Owner {\r\n public BackgroundColorIndex!: number | null;\r\n public Bigram!: string | null;\r\n public Name!: string | null;\r\n public Email!: string | null;\r\n public Type!: OwnerType;\r\n public Id!: string | null;\r\n public IconPath!: string | null;\r\n public DisplayName!: string;\r\n\r\n}\r\n\r\nexport const enum UserOptions {\r\n None = 0,\r\n CannotBeContacted = 1,\r\n NoEmailNotifications = 2,\r\n NotSubscribedToNewsletter = 4,\r\n DontSupportHtmlMail = 8,\r\n SubscribedToPress = 16,\r\n WebDavEnabled = 32,\r\n AutoGeneratedNickName = 64,\r\n Internal = 128,\r\n PreviewFeaturesEnabled = 256,\r\n}\r\n\r\nexport const enum OwnerType {\r\n UserUnknown = 0,\r\n UserWithNoAccount = 1,\r\n UserWithNoNickName = 2,\r\n User = 3,\r\n Member = 4,\r\n DisabledMember = 5,\r\n SurveyUser = 6,\r\n Group = 7,\r\n Team = 8,\r\n MyOrganization = 9,\r\n}","import { DateTime } from '@/utils/Date';\r\n\r\nexport class Quotation {\r\n public UsersBilled!: number;\r\n public PlanId!: string;\r\n public PlanQuantity!: number;\r\n public PlanUserCount!: number;\r\n public PlanTableCount!: number;\r\n public PlanRowCount!: number;\r\n public PlanStorage!: number;\r\n public AddOnId!: string;\r\n public AddOnQuantity!: number;\r\n public AddOnUserCount!: number;\r\n public Price!: number;\r\n public CustomerId!: string;\r\n public Currency!: string;\r\n public RequestedUsers!: number;\r\n public HasOtherAddOns!: boolean;\r\n public FreePlan!: boolean;\r\n public BasePrice!: number;\r\n public ItemPriceId!: string;\r\n public get UserPrice() {\r\n var price = this.Price - this.BasePrice;\r\n var users = this.RequestedUsers - 5;\r\n if(users <= 0) {\r\n return price;\r\n }\r\n return price / users;\r\n }\r\n}\r\n\r\nexport class HostedPage{\r\n public id! : string;\r\n public type! : string;\r\n public url! : string;\r\n public state! : string;\r\n public embed! : boolean;\r\n public created_at! : number;\r\n public expires_at! : number;\r\n}\r\n\r\nexport class PortalConfig{\r\n public id!: string;\r\n public token!: string;\r\n public access_url!: string;\r\n public redirect_url!: string;\r\n public status!: string;\r\n public created_at!: DateTime;\r\n public expires_at!: DateTime;\r\n public customer_id!: string;\r\n}\r\n\r\nexport enum PortalSections{\r\n SUBSCRIPTION_DETAILS = \"sub_details\",\r\n SUBSCRIPTION_CANCELLATION = \"sub_cancel\",\r\n EDIT_SUBSCRIPTION = \"edit_subscription\",\r\n VIEW_SCHEDULED_CHANGES = \"scheduled_changes\",\r\n ACCOUNT_DETAILS = \"account_details\",\r\n EDIT_ACCOUNT_DETAILS = \"portal_edit_account\",\r\n ADDRESS = \"portal_address\",\r\n EDIT_BILLING_ADDRESS = \"portal_edit_billing_address\",\r\n EDIT_SHIPPING_ADDRESS = \"portal_edit_shipping_address\",\r\n EDIT_SUBSCRIPTION_CUSTOM_FIELDS = \"portal_edit_subscription_cf\",\r\n PAYMENT_SOURCES = \"portal_payment_methods\",\r\n ADD_PAYMENT_SOURCE = \"portal_add_payment_method\",\r\n EDIT_PAYMENT_SOURCE = \"portal_edit_payment_method\",\r\n VIEW_PAYMENT_SOURCE = \"portal_view_payment_method\",\r\n CHOOSE_PAYMENT_METHOD_FOR_SUBSCRIPTION = \"portal_choose_payment_method\",\r\n BILLING_HISTORY = \"portal_billing_history\"\r\n}\r\n\r\nexport class Plan {\r\n public Id !: string;\r\n public Name !: string; \r\n public Limits !: Limits;\r\n public OfferId !:string;\r\n public UnlimitedPlan !: boolean;\r\n public SetupFees !: SetupFee[];\r\n public Prices !: ItemPrice[];\r\n public MandatoryAddOns !: MandatoryAddOn[];\r\n\r\n\r\n public getPrice(period: number, periodUnit: PeriodUnitEnum, currency: string, userCount: number): number {\r\n let price: number = 0;\r\n let usersToBill = userCount;\r\n var itemPrice = this.getItemPrice(period, periodUnit, currency);\r\n if(itemPrice != null) {\r\n if(itemPrice.PricingModel === PricingModelEnum.Tiered) {\r\n // Sort tiers\r\n itemPrice.Tiers.sort((x, y) => {\r\n if(x.MinUnit === y.MinUnit) {\r\n return 0;\r\n }\r\n else {\r\n return (x.MinUnit < y.MinUnit) ? -1 : 1;\r\n }\r\n });\r\n itemPrice.Tiers.forEach((tier) => {\r\n if(usersToBill > 0) {\r\n var userCountInTier = Math.min(usersToBill, tier.MaxUnit - tier.MinUnit + 1);\r\n price += userCountInTier * tier.Price;\r\n usersToBill -= userCountInTier;\r\n }\r\n else {\r\n return;\r\n }\r\n })\r\n }\r\n else {\r\n price = itemPrice.Price * userCount;\r\n }\r\n }\r\n price += this.getMandatoryAddOnsPrices(period, periodUnit, currency);\r\n return price;\r\n }\r\n\r\n public getItemPrice(period: number, periodUnit: PeriodUnitEnum, currency: string): ItemPrice | null {\r\n return this.Prices.find((pp: ItemPrice) => pp.Period === period && pp.PeriodUnit === periodUnit && pp.Currency === currency) ?? null;\r\n }\r\n \r\n public getUserPrice(period: number, periodUnit: PeriodUnitEnum, currency: string, userCount: number): number {\r\n var itemPrice = this.getItemPrice(period, periodUnit, currency);\r\n if(itemPrice != null) {\r\n if(itemPrice.PricingModel === PricingModelEnum.Tiered) {\r\n var tier: Tier | null = itemPrice.Tiers.find((t: Tier) => t.MinUnit <= userCount && t.MaxUnit >= userCount) ?? null;\r\n if(tier != null) {\r\n return tier.Price;\r\n }\r\n }\r\n else {\r\n return itemPrice.Price;\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n public getBasePrice(period: number, periodUnit: PeriodUnitEnum, currency: string) : number {\r\n let price: number = 0;\r\n\r\n // First get the plan price (per unit or tiered)\r\n var itemPrice = this.Prices.find((ip: ItemPrice) => ip.Period === period && ip.PeriodUnit === periodUnit && ip.Currency === currency) ?? null;\r\n if(itemPrice != null) {\r\n // Find first tier price for Tiered plans\r\n if(itemPrice.PricingModel === PricingModelEnum.Tiered) {\r\n var tier: Tier | null = itemPrice.Tiers.find((t: Tier) => t.MinUnit === 1) ?? null;\r\n if(tier != null) {\r\n price = tier.Price;\r\n }\r\n }\r\n // Otherwise get price directly from itemPrice\r\n else {\r\n price = itemPrice.Price;\r\n }\r\n }\r\n\r\n // Then get mandatory addons prices\r\n price += this.getMandatoryAddOnsPrices(period, periodUnit, currency);\r\n return price;\r\n }\r\n\r\n public getMandatoryAddOnsPrices(period: number, periodUnit: PeriodUnitEnum, currency: string) : number {\r\n let price: number = 0;\r\n if((this.MandatoryAddOns?.length ?? 0) > 0) {\r\n //For each mandatory addon get corresponding price (period, period unit and currency)\r\n this.MandatoryAddOns.forEach((ma: MandatoryAddOn) => {\r\n var addonPrice: ItemPrice | null = ma.Prices.find((aoip: ItemPrice) => aoip.Period === period && aoip.PeriodUnit === periodUnit && aoip.Currency === currency) ?? null;\r\n if(addonPrice != null) {\r\n price += addonPrice.Price;\r\n }\r\n });\r\n }\r\n return price;\r\n }\r\n\r\n public getItemPriceById(priceId: string) : ItemPrice | null {\r\n return this.Prices.find((pp: ItemPrice) => pp.Id == priceId) ?? null;\r\n }\r\n\r\n public getSetupFees(currency: string): number {\r\n let fees = 0;\r\n this.SetupFees.forEach(sf => {\r\n if(sf.Currency === currency) {\r\n fees += sf.Price;\r\n }\r\n });\r\n return fees;\r\n }\r\n}\r\n\r\nexport class Limits {\r\n public UserPerQuantity !:number;\r\n public FixedUserQuantity !:number;\r\n public TablePerQuantity !:number;\r\n public FixedTableQuantity !:number;\r\n public RowPerQuantity !:number;\r\n public FixedRowQuantity !:number;\r\n public TableSizePerQuantity !:number;\r\n public FixedTableSize !:number;\r\n public ReadOnlyUsersPerQuantity !:number;\r\n public FixedReadOnlyUsersQuantity !: number;\r\n\r\n}\r\n\r\nexport class ItemPrice {\r\n public Id !: string;\r\n public PricingModel !: PricingModelEnum;\r\n public Period !:number;\r\n public PeriodUnit !: PeriodUnitEnum;\r\n public Price !:number;\r\n public Currency !:string;\r\n public Tiers!: Tier[];\r\n}\r\n\r\nexport class SetupFee {\r\n public Id !: string;\r\n public Price !: number;\r\n public Currency !: string;\r\n}\r\n\r\nexport class MandatoryAddOn\r\n{\r\n public Id!: string;\r\n public PlanId!: string;\r\n public Prices!: ItemPrice[];\r\n}\r\n\r\nexport class Tier\r\n{\r\n public ItemPriceId!: string;\r\n public MinUnit!: number;\r\n public MaxUnit!: number;\r\n public Price!: number;\r\n\r\n}\r\n\r\n\r\n\r\nexport enum PricingModelEnum {\r\n UnKnown = 0,\r\n FlatFee = 1,\r\n PerUnit = 2,\r\n Tiered = 3,\r\n Volume = 4,\r\n Stairstep = 5\r\n}\r\n\r\nexport enum PeriodUnitEnum {\r\n UnKnown = 0,\r\n Day = 1,\r\n Week = 2,\r\n Month = 3,\r\n Year = 4\r\n}\r\n","import * as RowShare from '@/models/RowShare';\r\n\r\nexport class Chart {\r\n public Id!: string;\r\n public ListId!: string;\r\n public Type!: ChartType;\r\n public Name!: string;\r\n public Data!: string;\r\n public DataVersion!: number;\r\n public Shared!: boolean;\r\n public Owned!: boolean;\r\n public HasNotPublicColumn!: boolean;\r\n}\r\n\r\nexport class ChartParameters {\r\n public YAggregationFunction!: ChartAggregationFunction | null | undefined;\r\n public YColumnId!: string;\r\n public XColumnId!: string;\r\n public SplitColumnId!: string | null| undefined;\r\n public Stacked!: ChartStackedType | null | undefined; \r\n public DateGroupingUnit!: ChartDateGroupingUnit | null | undefined;\r\n public DateGroupingQuantity!: number | null | undefined;\r\n}\r\n\r\nexport enum ChartType {\r\n Line = 0,\r\n Bar = 1,\r\n Area = 2,\r\n Scatter = 3,\r\n Pie = 4\r\n}\r\n\r\nexport enum ChartStackedType {\r\n NotStacked,\r\n Normal,\r\n Full\r\n}\r\n\r\nexport enum ChartAggregationFunction {\r\n Count = 0,\r\n Sum = 1,\r\n Max = 2,\r\n Min = 3,\r\n Avg = 4,\r\n NotNullCount = 5\r\n}\r\n\r\nexport enum ChartDateGroupingUnit {\r\n None = 0,\r\n Year = 1,\r\n Month = 2,\r\n Day = 3,\r\n // Hour,\r\n // Minute,\r\n // Second\r\n}\r\n \r\nexport enum XDataType {\r\n Other = 0,\r\n Number = 1,\r\n DateTime = 2\r\n}\r\n\r\nexport class chartAggregationFunctionItem {\r\n name!: string;\r\n aggregationFunction!: ChartAggregationFunction;\r\n onlyNumericColumns!: boolean;\r\n canChooseYColumn!: boolean;\r\n}\r\n\r\nexport class ChartData {\r\n public Id!: string;\r\n public Name!: string;\r\n public Type!: ChartType;\r\n public Stacked!: ChartStackedType | null | undefined; \r\n public DateGroupingUnit!: ChartDateGroupingUnit | null | undefined;\r\n public XDataType!: XDataType;\r\n public XColumnStrongType!: RowShare.ColumnStrongType;\r\n public Labels!: string[];\r\n public DataSets!: ChartDataSet[];\r\n}\r\n\r\nexport class ChartDataSet {\r\n public Label!: string;\r\n public Data!: string[];\r\n public BackgroundColor!: string;\r\n}\r\nexport class chartDateGroupingUnitItem {\r\n name!: string;\r\n groupingUnit!: ChartDateGroupingUnit;\r\n}","import { Utils } from \"@/utils/Utilities\";\r\nimport { DataStatus } from \"@/models/Enums\";\r\n\r\nexport class Column {\r\n public Id!: string;\r\n public ListId!: string;\r\n public DisplayName!: string;\r\n public Name!: string;\r\n public SubName!: string;\r\n public ColumnGroup!: string;\r\n public DefaultValue!: string | null;\r\n public Description!: string;\r\n public IsReadOnly!: boolean;\r\n public Index!: number;\r\n public SortOrder!: number;\r\n public MaxDecimals!: number;\r\n public MaxLength!: number;\r\n public MinValue!: number;\r\n public MaxValue!: number;\r\n public Options!: ColumnOptions;\r\n public Icon!: string;\r\n public DefaultWidth!: number;\r\n public Status!: DataStatus;\r\n public Type!: ColumnStrongType;\r\n public IsMainColumn!: boolean;\r\n public LookupValues!: string;\r\n public LookupListId!: string;\r\n public LookupListColumnName!: string;\r\n public Format!: string;\r\n public ListCulture!: string;\r\n public LeftPinned!: boolean;\r\n public RelatedListId!: string;\r\n public ParentColumnId!: string;\r\n public RelationColumnId!: string;\r\n public Color!: string;\r\n public ColorType!: ColumnColorType;\r\n public NeedsListReload: boolean| null = false;\r\n public HasReadOnlyPermissions!: boolean;\r\n public HasHiddenPermissions!: boolean;\r\n public Prefix!: string;\r\n public Suffix!: string;\r\n public RtcConnectionId!:string | null;\r\n\r\n private hasOption(option: ColumnOptions) {\r\n // tslint:disable-next-line:no-bitwise\r\n return (this.Options & option) === option;\r\n }\r\n\r\n private setOption(option: ColumnOptions, value: boolean) {\r\n if (value) {\r\n // tslint:disable-next-line:no-bitwise\r\n this.Options |= option;\r\n } else {\r\n // tslint:disable-next-line:no-bitwise\r\n this.Options &= ~option;\r\n }\r\n }\r\n\r\n public get isRowGroupingEnabled() {\r\n return ![ColumnStrongType.RowIndex, ColumnStrongType.AutoNumber].includes(this.Type);\r\n }\r\n\r\n public get isMandatory() {\r\n return this.hasOption(ColumnOptions.IsMandatory);\r\n }\r\n\r\n public set isMandatory(value: boolean) {\r\n this.setOption(ColumnOptions.IsMandatory, value);\r\n }\r\n\r\n public get isUnique() {\r\n return this.hasOption(ColumnOptions.IsUnique);\r\n }\r\n\r\n public set isUnique(value: boolean) {\r\n this.setOption(ColumnOptions.IsUnique, value);\r\n }\r\n\r\n public get isFormula() {\r\n return this.hasOption(ColumnOptions.IsFormula);\r\n }\r\n\r\n public set isFormula(value: boolean) {\r\n this.setOption(ColumnOptions.IsFormula, value);\r\n }\r\n\r\n public get isLookupMultiValued() {\r\n return this.hasOption(ColumnOptions.IsLookupMultiValued);\r\n }\r\n\r\n public set isLookupMultiValued(value: boolean) {\r\n this.setOption(ColumnOptions.IsLookupMultiValued, value);\r\n }\r\n\r\n public get isCompact() {\r\n return this.hasOption(ColumnOptions.IsCompact);\r\n }\r\n\r\n public set isCompact(value: boolean) {\r\n this.setOption(ColumnOptions.IsCompact, value);\r\n }\r\n\r\n public get isGenerated() {\r\n return this.Type === ColumnStrongType.AutoNumber ||\r\n this.isTechnical ||\r\n this.isFormula;\r\n }\r\n\r\n public get isStatusColumn() {\r\n return this.Type === ColumnStrongType.StatusChangeByUserName || this.Type === ColumnStrongType.StatusChangeDateTime;\r\n }\r\n\r\n public get isTechnical() {\r\n return this.isMember ||\r\n this.Type === ColumnStrongType.CreationDate ||\r\n this.Type === ColumnStrongType.LastWriteDate ||\r\n this.Type === ColumnStrongType.StatusChangeDateTime ||\r\n this.Type === ColumnStrongType.RowIndex;\r\n }\r\n\r\n public get isMember() {\r\n return this.Type === ColumnStrongType.MemberManagerEmail ||\r\n this.Type === ColumnStrongType.MemberManagerName ||\r\n this.Type === ColumnStrongType.LastWriteUserEmail ||\r\n this.Type === ColumnStrongType.LastWriteUserName ||\r\n this.Type === ColumnStrongType.OwnerEmail ||\r\n this.Type === ColumnStrongType.OwnerName ||\r\n this.Type === ColumnStrongType.CreatedByUserEmail ||\r\n this.Type === ColumnStrongType.CreatedByUserName ||\r\n this.Type === ColumnStrongType.StatusChangeByUserName;\r\n }\r\n\r\n public get isChildColumn() {\r\n return !Utils.isNullOrWhiteSpace(this.ParentColumnId);\r\n }\r\n\r\n public get showThousandsSeparator() {\r\n return !this.hasOption(ColumnOptions.DoNotShowThousandsSeparator);\r\n }\r\n\r\n public set showThousandsSeparator(value: boolean) {\r\n this.setOption(ColumnOptions.DoNotShowThousandsSeparator, !value);\r\n }\r\n\r\n public get isNumber() {\r\n return this.Type === ColumnStrongType.DecimalNumber ||\r\n this.Type === ColumnStrongType.Number ||\r\n this.Type === ColumnStrongType.Percentage ||\r\n this.Type === ColumnStrongType.AutoNumber ||\r\n this.Type === ColumnStrongType.RowIndex;\r\n }\r\n\r\n public get isBlob() {\r\n return this.Type === ColumnStrongType.File || this.Type === ColumnStrongType.Image;\r\n }\r\n\r\n public get isPercentage() {\r\n return this.Type === ColumnStrongType.Percentage;\r\n }\r\n\r\n public get isEmail() {\r\n return this.Type === ColumnStrongType.Email || this.Type === ColumnStrongType.CreatedByUserEmail \r\n || this.Type === ColumnStrongType.MemberManagerEmail || this.Type === ColumnStrongType.LastWriteUserEmail\r\n || this.Type === ColumnStrongType.OwnerEmail;\r\n }\r\n\r\n public get isHyperlink() {\r\n return this.Type === ColumnStrongType.Hyperlink;\r\n }\r\n\r\n public get isLookup() {\r\n return this.Type === ColumnStrongType.LookUp || this.Type === ColumnStrongType.LookUpList;\r\n }\r\n\r\n get parsedLookupItems() : LookUpItem[] {\r\n let result: LookUpItem[] =[];\r\n if (Utils.isNullOrWhiteSpace(this.LookupValues)) {\r\n return [];\r\n }\r\n try {\r\n const items = JSON.parse(this.LookupValues)\r\n if (items) {\r\n result = items.map((v: any) => new LookUpItem(v.name ? v.name : v.value, v.color)); \r\n }\r\n } \r\n catch {\r\n var strvalues: string[];\r\n if (Utils.isArray(this.LookupValues)) {\r\n strvalues = this.LookupValues;\r\n } else {\r\n strvalues = (this.LookupValues).replace(/\\r/g, \"\").split(\"\\n\");\r\n }\r\n if (strvalues) {\r\n \r\n for (var i = 0; i < strvalues.length; i++) {\r\n var val = strvalues[i];\r\n var valueVM = new LookUpItem(val, \"\");\r\n result.push(valueVM);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n get isDateTimeFormat(): boolean {\r\n return this.Type == ColumnStrongType.CreationDate || this.Type == ColumnStrongType.DateTime ||\r\n this.Type == ColumnStrongType.LastWriteDate || this.Type == ColumnStrongType.Reminder || \r\n this.Type == ColumnStrongType.StatusChangeDateTime;\r\n }\r\n\r\n get isOwnerInfo() {\r\n return this.Type === ColumnStrongType.OwnerEmail || this.Type === ColumnStrongType.OwnerName;\r\n }\r\n\r\n get canBeCleared(): boolean {\r\n return !this.isMandatory && !this.isGenerated && this.Type != ColumnStrongType.Comment;\r\n }\r\n\r\n get canBeRemoved(): boolean {\r\n return !this.isChildColumn;\r\n }\r\n\r\n get canEditIsMandatory(): boolean {\r\n return !this.isGenerated\r\n && this.Type !== ColumnStrongType.Comment\r\n && this.Type !== ColumnStrongType.TwoStatesBoolean\r\n && this.Type !== ColumnStrongType.Relation\r\n && !this.isChildColumn;\r\n }\r\n\r\n get useSmartRenderer(): boolean {\r\n return this.hasOption(ColumnOptions.UseSmartRenderer);\r\n }\r\n\r\n set useSmartRenderer(value: boolean) {\r\n this.setOption(ColumnOptions.UseSmartRenderer, value);\r\n }\r\n\r\n get canEditIsUnique() {\r\n if (this.isGenerated) {\r\n return false;\r\n }\r\n \r\n return this.Type !== ColumnStrongType.TwoStatesBoolean \r\n && this.Type !== ColumnStrongType.Relation\r\n && !this.isChildColumn;\r\n }\r\n\r\n get canEditIsLookupMultiValued() {\r\n switch (this.Type) {\r\n case ColumnStrongType.LookUpList:\r\n case ColumnStrongType.LookUp:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get canEditMaxDecimals() {\r\n if (this.Type === ColumnStrongType.Number) {\r\n return false;\r\n }\r\n\r\n return (this.Type === ColumnStrongType.DecimalNumber || this.Type === ColumnStrongType.Percentage);\r\n }\r\n\r\n get canEditShowThousandsSeparator() {\r\n\r\n return this.isNumber;\r\n }\r\n\r\n get canEditMinMaxValue() {\r\n if (this.isGenerated) {\r\n return false;\r\n }\r\n\r\n return this.isNumber;\r\n }\r\n\r\n get canEditMaxLength() {\r\n if (this.isGenerated) {\r\n return false;\r\n }\r\n\r\n return (this.Type === ColumnStrongType.Text);\r\n }\r\n\r\n get canEditLookupValues() {\r\n return this.Type === ColumnStrongType.LookUp;\r\n }\r\n\r\n get canEditIsCompact() {\r\n return this.Type === ColumnStrongType.LookUp && !this.isLookupMultiValued;\r\n }\r\n\r\n get canEditLookupList() {\r\n return this.Type === ColumnStrongType.LookUpList;\r\n }\r\n\r\n get canEditDefaultValue() {\r\n if (this.isFormula || this.isGenerated || this.Type === ColumnStrongType.Relation) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n get canEditFormula() {\r\n if (this.isFormula) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get canEditUseSmartRenderer() {\r\n return this.isPercentage;\r\n }\r\n\r\n get canEditIsFormula() {\r\n if(this.isTechnical || this.Type === ColumnStrongType.AutoNumber) {\r\n return false;\r\n }\r\n return this.isBoolean || this.isNumber || this.isDateFormat || this.isDateTimeFormat || this.Type === ColumnStrongType.Time || this.Type === ColumnStrongType.Text\r\n || this.isLookup;\r\n }\r\n\r\n get canEditRelatedColumns() {\r\n return this.Type === ColumnStrongType.Relation;\r\n }\r\n\r\n get canEditGroupName() {\r\n return this.Type !== ColumnStrongType.Relation;\r\n }\r\n\r\n get canEditSubname() {\r\n return this.Type !== ColumnStrongType.Relation;\r\n }\r\n\r\n get canEditColor() {\r\n return this.Type !== ColumnStrongType.Relation;\r\n }\r\n\r\n get isDateFormat() {\r\n return this.Type === ColumnStrongType.Date;\r\n }\r\n\r\n get isBoolean() {\r\n return this.Type === ColumnStrongType.TwoStatesBoolean;\r\n }\r\n\r\n get formula() {\r\n return this.DefaultValue;\r\n }\r\n\r\n set formula(value: string | null) {\r\n this.DefaultValue = value;\r\n }\r\n\r\n public get HasParentColumn(): boolean {\r\n return !Utils.isNullOrWhiteSpace(this.ParentColumnId);\r\n }\r\n\r\n get canEditPrefix() {\r\n return this.Type === ColumnStrongType.DecimalNumber || this.Type === ColumnStrongType.Number;\r\n }\r\n\r\n get canEditSuffix() {\r\n return this.Type === ColumnStrongType.DecimalNumber || this.Type === ColumnStrongType.Number;\r\n } \r\n}\r\n\r\nexport class LookUpItem {\r\n public name!: string;\r\n internalColor!: string;\r\n\r\n constructor(name: string, color: string){\r\n this.name = name;\r\n this.internalColor = color;\r\n }\r\n\r\n public get noColorDefined(): boolean {\r\n return Utils.isNullOrWhiteSpace(this.internalColor);\r\n }\r\n\r\n public get color() {\r\n if(!Utils.isNullOrWhiteSpace(this.internalColor)) {\r\n return this.internalColor;\r\n }\r\n else {\r\n return \"primary\";\r\n }\r\n }\r\n\r\n public set color(value: string) {\r\n this.internalColor = value;\r\n }\r\n}\r\n\r\nexport enum ColumnStrongType {\r\n AutoNumber = \"AutoNumber\",\r\n Child = \"Child\",\r\n Comment = \"Comment\",\r\n CreatedByUserEmail = \"CreatedByUserEmail\",\r\n CreatedByUserName = \"CreatedByUserName\",\r\n CreationDate = \"CreationDate\",\r\n Date = \"Date\",\r\n DateTime = \"DateTime\",\r\n DecimalNumber = \"DecimalNumber\",\r\n Email = \"Email\",\r\n File = \"File\",\r\n Hyperlink = \"Hyperlink\",\r\n Image = \"Image\",\r\n LastWriteDate = \"LastWriteDate\",\r\n LastWriteUserEmail = \"LastWriteUserEmail\",\r\n LastWriteUserName = \"LastWriteUserName\",\r\n LookUp = \"LookUp\",\r\n LookUpList = \"LookUpList\",\r\n MemberManagerEmail = \"MemberManagerEmail\",\r\n MemberManagerName = \"MemberManagerName\",\r\n Number = \"Number\",\r\n OwnerName = \"OwnerName\",\r\n OwnerEmail = \"OwnerEmail\",\r\n Percentage = \"Percentage\",\r\n Reminder = \"Reminder\",\r\n Relation = \"Relation\",\r\n RichText = \"RichText\",\r\n RowIndex = \"RowIndex\",\r\n Text = \"Text\",\r\n ThreeStatesBoolean = \"ThreeStatesBoolean\",\r\n Time = \"Time\",\r\n TwoStatesBoolean = \"TwoStatesBoolean\",\r\n // \"Fake\" types used only on front side for deleted rows display\r\n StatusChangeByUserName = \"StatusChangeByUserName\",\r\n StatusChangeDateTime = \"StatusChangeDateTime\"\r\n}\r\n\r\nexport enum ColumnOptions\r\n{ \r\n None = 0, \r\n IsMandatory = 1, \r\n IsComputed = 2, \r\n IsLookupMultiValued = 32, \r\n IsUnique = 64, \r\n IsFrequent = 256, \r\n IsSystemHidden = 2048, \r\n DoNotShowThousandsSeparator = 4096, \r\n IsFormula = 262144, \r\n UseSmartRenderer = 524288,\r\n IsCompact = 4194304,\r\n}\r\n\r\n// Must be synchronized with ColumnColorType on back side\r\nexport enum ColumnColorType\r\n{ \r\n None = 0,\r\n Header = 1,\r\n Cells = 2,\r\n All = 3,\r\n}\r\n\r\n","import { User, Member } from \"./RowShare\";\r\n\r\n\r\nexport class BackOfficeOrganizationSummary {\r\n public Id!:string;\r\n public Name!:string;\r\n public IsEnabled!: boolean;\r\n}\r\n\r\nexport class BackOfficeListSummary{\r\n public Name!:string;\r\n public OrganizationName!:string;\r\n public OrganizationId!:string;\r\n public Description!:string;\r\n}\r\n\r\nexport class BackOfficeUser extends User {\r\n public Id!: string;\r\n public LastSeenDate!: Date;\r\n public Internal!: boolean;\r\n public IsLockedOut!: boolean;\r\n public Organizations!: Array;\r\n public EmailConfirmationCodes!: string[];\r\n}\r\n\r\nexport class BackOfficeSearchSummary {\r\n public Users!: Array;\r\n public Organizations!: Array;\r\n public Lists!: Array;\r\n}\r\n\r\nexport class BackOfficeMember extends Member {\r\n AssociatedUserNickName!: string;\r\n UserId!: string;\r\n showExtraInfos!: boolean;\r\n}","import * as RowShare from '@/models/RowShare';\r\n\r\nexport class CatalogItem implements RowShare.CatalogItem{\r\n\r\n public ListId!: string;\r\n\r\n public CoverImageUrl!: string;\r\n\r\n public DisplayName!: string;\r\n\r\n public ShortDescription!: string;\r\n\r\n public LongDescription!: string;\r\n\r\n public BackgroundColor!: string;\r\n\r\n public Category!: CatalogCategory;\r\n}\r\n\r\nexport class CatalogCategory implements RowShare.CatalogCategory{\r\n\r\n public Id!: string;\r\n\r\n public Name!: string;\r\n\r\n public DisplayName!: string;\r\n\r\n public Description!: string;\r\n\r\n public Color!: string;\r\n\r\n public IsDefault!: boolean;\r\n}\r\n\r\nexport class TableTemplate implements RowShare.TableTemplate{\r\n \r\n public ListId!: string;\r\n \r\n public Title!: string;\r\n\r\n public Description!: string;\r\n\r\n public InCatalog!: boolean;\r\n}","export class CommandEvent {\r\n public order!: number;\r\n public icon!: string;\r\n public eventName!: string;\r\n public color!: string;\r\n public isToggable!: boolean;\r\n public isActive!: boolean;\r\n public class!: Array;\r\n}","import { Module, VuexModule, Mutation, Action, MutationAction, getModule } from 'vuex-module-decorators'\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport * as API from '@/api/Api';\r\nimport { TrackingUtils } from \"@/utils/Tracking\";\r\nimport store from '@/modules/Store';\r\n\r\n@Module({ dynamic: true, store: store, name: 'UserStore' })\r\nexport class UserStore extends VuexModule {\r\n public connectedUser: RowShare.User | null = null;\r\n public currentUserLanguage: string | null = null;\r\n\r\n /** getters **/\r\n\r\n // User data should be loaded by the router beforeEach, using this getter sooner will throw an error\r\n get CurrentUser(): RowShare.User {\r\n if (!this.connectedUser)\r\n throw new Error(\"User store CurrentUser was used before being loaded\");\r\n\r\n return this.connectedUser\r\n }\r\n\r\n /** mutations **/\r\n\r\n @Mutation\r\n storeUser(user: RowShare.User | null) {\r\n this.connectedUser = user;\r\n if (user && !user.IsAnonymous)\r\n this.currentUserLanguage = user.Language;\r\n TrackingUtils.UpdateUserDataLayer(user);\r\n }\r\n\r\n @Mutation\r\n storeUserLanguage(language: string | null) {\r\n this.currentUserLanguage = language;\r\n if (this.connectedUser && !this.connectedUser.IsAnonymous)\r\n this.connectedUser.Language = language;\r\n }\r\n\r\n @Mutation\r\n disconnectUser() {\r\n if (this.connectedUser) {\r\n this.connectedUser = null;\r\n }\r\n if (this.currentUserLanguage) {\r\n this.currentUserLanguage = null;\r\n }\r\n localStorage.clear();\r\n\r\n TrackingUtils.UpdateUserDataLayer(null);\r\n }\r\n\r\n /** actions **/\r\n\r\n @Action({ commit: 'storeUser', rawError: true })\r\n async refreshUser(): Promise {\r\n let user: RowShare.User | null = null;\r\n user = await API.User.load({ cache: false });\r\n return user;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async refreshUserIfMissing(): Promise {\r\n if (!this.connectedUser)\r\n await this.refreshUser();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async getUserLanguage(): Promise {\r\n if (this.currentUserLanguage != null) {\r\n return this.currentUserLanguage;\r\n }\r\n else {\r\n if (this.CurrentUser!= null \r\n && !this.CurrentUser.IsAnonymous\r\n && this.CurrentUser.Language != null)\r\n { \r\n this.currentUserLanguage = this.CurrentUser.Language;\r\n return this.CurrentUser.Language;\r\n }\r\n return await this.refreshUserLanguage();\r\n }\r\n }\r\n\r\n @Action({ rawError: true })\r\n async refreshUserLanguage(): Promise {\r\n let language: string | null = null;\r\n language = await API.User.loadLanguage({ cache: false });\r\n this.context.commit('storeUserLanguage', language);\r\n return language;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async changeUserLanguage(newLanguage: string): Promise {\r\n let userLang = await API.User.changeLanguage(newLanguage);\r\n this.context.commit('storeUserLanguage', userLang);\r\n document.documentElement.setAttribute('lang', newLanguage);\r\n return userLang;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async signUpUser(signUpInfo: RowShare.SignupUser): Promise {\r\n let userLoggedUp = await API.User.signup(signUpInfo);\r\n if (userLoggedUp != null) {\r\n this.context.commit('storeUser', userLoggedUp);\r\n return true;\r\n }\r\n else return false;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async DemoSignIn(demoGuid: string): Promise {\r\n let loginStatus = await API.User.demoSignin(demoGuid);\r\n if (loginStatus[0]) {\r\n let returnedUser: RowShare.User | null = loginStatus[1];\r\n if (returnedUser !== null) {\r\n this.context.commit('storeUser', returnedUser);\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n @Action({ rawError: true })\r\n async SignIn(credentials: RowShare.SigninUser): Promise {\r\n let loginStatus = await API.User.signin(credentials);\r\n if (loginStatus[0]) {\r\n let returnedUser: RowShare.User | null = loginStatus[1];\r\n if (returnedUser !== null) {\r\n this.context.commit('storeUser', returnedUser);\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n @Action({ rawError: true })\r\n async signOut(): Promise {\r\n var returnUrl = await API.User.signout();\r\n this.context.commit('disconnectUser');\r\n return returnUrl;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async updateUserProfile(user: RowShare.User): Promise {\r\n let userProfile: RowShare.User | null = new RowShare.User();\r\n userProfile = await API.User.Save(user);\r\n\r\n // commit mutation to update user data in store\r\n let storeUser = this.CurrentUser;\r\n if (storeUser == null)\r\n storeUser = userProfile;\r\n\r\n storeUser.FirstName = user.FirstName;\r\n storeUser.LastName = user.LastName;\r\n storeUser.NickName = user.NickName;\r\n storeUser.TimeZoneId = user.TimeZoneId;\r\n storeUser.DefaultOrgId = user.DefaultOrgId;\r\n storeUser.PreviewFeaturesEnabled = user.PreviewFeaturesEnabled;\r\n storeUser.EmailNotifications = user.EmailNotifications;\r\n if (!user.IsAnonymous)\r\n storeUser.Language = user.Language;\r\n this.context.commit('storeUser', storeUser);\r\n\r\n return userProfile;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async deleteUserProfile(): Promise {\r\n let deleteRedirectUrl = await API.User.delete();\r\n if (this.CurrentUser != null)\r\n this.context.commit('disconnectUser');\r\n\r\n return deleteRedirectUrl;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async deleteAccount(): Promise {\r\n let result = await API.User.deleteAccount();\r\n return result;\r\n }\r\n}\r\n\r\nexport const UserModule = getModule(UserStore);","import Vue from 'vue';\r\nimport VueI18n, { LocaleMessageObject, LocaleMessages } from 'vue-i18n';\r\nimport * as API from '@/api/Api';\r\nimport { UserModule } from '@/store/UserStore';\r\n\r\nVue.use(VueI18n);\r\n\r\nconst supportedCulture = ['en', 'fr', 'es'];\r\n\r\nexport const i18n = new VueI18n({\r\n locale: 'en',\r\n fallbackLocale: 'en',\r\n fallbackRoot: true\r\n});\r\n\r\nexport async function loadAndSetWithUserLanguageAsync(doNotEnforce?: boolean): Promise {\r\n let userLanguage = UserModule.currentUserLanguage ? UserModule.currentUserLanguage : null;\r\n if (!userLanguage && doNotEnforce) {\r\n let activeLocale = await sessionStorage.getItem('activeLocale');\r\n if (activeLocale) {\r\n userLanguage = activeLocale;\r\n }\r\n }\r\n let language = userLanguage ? userLanguage : navigator.language.substring(0, 2);\r\n let userLocale: string =\r\n (language && supportedCulture.includes(language.toLowerCase()))\r\n ? language : 'en';\r\n\r\n UserModule.storeUserLanguage(userLocale);\r\n i18n.locale = userLocale;\r\n await loadAndStoreTranslationsAsync(userLocale);\r\n document.documentElement.setAttribute('lang', userLocale);\r\n}\r\n\r\nexport async function loadAndStoreTranslationsAsync(locale: string): Promise {\r\n let activeLocale: string | null = await sessionStorage.getItem('activeLocale') as string;\r\n let activeLocaleUpdate: string | null = await sessionStorage.getItem('activeLocaleUpdateDate') as string;\r\n let activeLocaleMessage: string | null = await sessionStorage.getItem('activeLocaleMessage') as string;\r\n if ((activeLocale === locale)\r\n && (activeLocaleMessage !== null)\r\n && (activeLocaleUpdate !== null)) {\r\n let activeLocaleUpdateDate = parseInt(activeLocaleUpdate);\r\n let now = new Date();\r\n if (now.getTime() - activeLocaleUpdateDate < 2 * 3600 * 1000) {\r\n let translationMessage: LocaleMessageObject = JSON.parse(activeLocaleMessage);\r\n i18n.setLocaleMessage(locale, translationMessage);\r\n return;\r\n }\r\n }\r\n\r\n let translationMessage = await API.Translation.load(locale);\r\n if (translationMessage) {\r\n i18n.setLocaleMessage(locale, translationMessage);\r\n sessionStorage.setItem('activeLocale', locale);\r\n sessionStorage.setItem('activeLocaleUpdateDate', (new Date()).getTime().toString());\r\n sessionStorage.setItem('activeLocaleMessage', JSON.stringify(translationMessage));\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nexport default i18n;\r\n","import { ColumnTypes } from \"@/utils/ColumnTypes\";\r\nimport { ColumnOptions, ColumnStrongType } from \"./Column\";\r\n\r\nexport class ColumnType{\r\n public DisplayName!: string;\r\n public SortOrder!: number;\r\n public Options!: ColumnOptions;\r\n public Icon!: string;\r\n public StrongType!: ColumnStrongType;\r\n public Category!: ColumnTypeCategoryName;\r\n public aliasID!: number;\r\n public values!: string;\r\n public defaultValue!: string;\r\n\r\n //the below field is (for now) fully calculated, i.e don't come from back-end\r\n public HasRequiredSubscription: boolean = true;\r\n\r\n public get mustBeConfigured() {\r\n const strongtypes = [ColumnStrongType.LookUp, ColumnStrongType.LookUpList, ColumnStrongType.Relation];\r\n return ((strongtypes.includes(this.StrongType) && this.values !== ColumnTypes.defaultRatingLookupValues\r\n && this.values !== ColumnTypes.defaultThreeStateBooleanLookupValues)\r\n || this.hasOption(ColumnOptions.IsFormula));\r\n }\r\n\r\n public get isFrequent() {\r\n const strongtypes = [ColumnStrongType.Text, ColumnStrongType.Number, ColumnStrongType.OwnerName, ColumnStrongType.File, ColumnStrongType.Date,\r\n ColumnStrongType.DecimalNumber, ColumnStrongType.Image, ColumnStrongType.Comment];\r\n return strongtypes.includes(this.StrongType) && (!this.aliasID || this.aliasID === 0);\r\n }\r\n\r\n public get mustRefreshValuesFromServer() {\r\n const strongtypes = [ColumnStrongType.AutoNumber, ColumnStrongType.RowIndex, ColumnStrongType.CreatedByUserEmail,\r\n ColumnStrongType.CreatedByUserName, ColumnStrongType.CreationDate, ColumnStrongType.LastWriteDate,\r\n ColumnStrongType.LastWriteUserEmail, ColumnStrongType.LastWriteUserName, ColumnStrongType.OwnerEmail,\r\n ColumnStrongType.OwnerName, ColumnStrongType.MemberManagerEmail, ColumnStrongType.MemberManagerName];\r\n return strongtypes.includes(this.StrongType);\r\n }\r\n\r\n private hasOption(option: ColumnOptions) {\r\n return (this.Options & option) === option;\r\n }\r\n\r\n\r\n public static metadataTypes(): ColumnStrongType[] {\r\n return [\r\n ColumnStrongType.OwnerName, ColumnStrongType.OwnerEmail, ColumnStrongType.CreationDate,\r\n ColumnStrongType.CreatedByUserEmail, ColumnStrongType.LastWriteDate,\r\n ColumnStrongType.LastWriteUserName, ColumnStrongType.MemberManagerName, ColumnStrongType.RowIndex,\r\n ColumnStrongType.CreatedByUserName\r\n ];\r\n }\r\n\r\n public static lookupListTypes(): ColumnStrongType[] {\r\n return [ColumnStrongType.LookUpList, ColumnStrongType.LookUp]\r\n }\r\n\r\n public static relatedRowTypes(): ColumnStrongType[] {\r\n return [ColumnStrongType.Relation];\r\n }\r\n}\r\n\r\nexport enum ColumnTypeCategoryName{\r\n text = \"text\",\r\n number = \"number\",\r\n visual = \"visual\",\r\n lookUp = \"lookup\",\r\n date = \"date\",\r\n media = \"media\",\r\n row = \"row\",\r\n formulas = \"formulas\",\r\n frequent = \"frequent\"\r\n}\r\n\r\nexport class ColumnTypeCategory {\r\n public Name!: string;\r\n public DisplayName!: string;\r\n public SortOrder!: number;\r\n}\r\n","import { Utils } from \"@/utils/Utilities\"\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { i18n } from \"@/modules/Localization\";\r\nexport class Folder {\r\n public Id!: string;\r\n public DisplayName!: string;\r\n public DisplayPath!: string;\r\n public CanCurrentUserCreateList!: boolean;\r\n public CanCurrentUserCreateFolder!: boolean;\r\n public CanCurrentUserManageAccesses!: boolean;\r\n public HasRemainingListSlot!: boolean;\r\n public MetaData!: string | null;\r\n public ParentId!: string | null;\r\n public ListsIds!: string[];\r\n public FoldersIds!: string[];\r\n public Owned!: boolean;\r\n public Options!: FolderOptions;\r\n public AccessMode!: FolderAccessMode;\r\n //public Accesses!: FolderAccess[];\r\n public OrganizationId!: string;\r\n public IsRecycleBin!: boolean;\r\n public IsInRecycleBin!: boolean;\r\n\r\n public get isOrganization() {\r\n return !Utils.isEmptyGuid(this.OrganizationId);\r\n }\r\n\r\n public get isUser() {\r\n return !this.isOrganization;\r\n }\r\n\r\n public get isRootFolder() {\r\n return Utils.isEmptyGuid(this.ParentId);\r\n }\r\n\r\n public get isOrganizationRootFolder() {\r\n return this.isRootFolder && this.isOrganization;\r\n }\r\n\r\n public get isUserRootFolder() {\r\n return this.isRootFolder && this.isUser;\r\n }\r\n}\r\n\r\nexport class FolderOwner {\r\n public OwnerEmail!: string;\r\n public OwnerOrganizationId!: string;\r\n public FolderId!: string;\r\n public Options!: FolderOwnerOptions;\r\n public OwnerName!: string;\r\n}\r\n\r\nexport class FolderAccess {\r\n public AccessMode!: FolderAccessMode;\r\n public Options!: AccessOptions;\r\n public GroupId!: string;\r\n public GroupName!: string;\r\n public MemberEmail!: string;\r\n public MemberOrganizationId!: string;\r\n public MemberName!: string;\r\n public Guest!: RowShare.Owner;\r\n public Id!: string; \r\n public FolderId!: string;\r\n \r\n public get guestName(): string {\r\n let guestName = this.Guest?.DisplayName;\r\n if(!guestName) {\r\n return \"\";\r\n }\r\n let result = guestName;\r\n if (this.Guest.Type == RowShare.OwnerType.Team) {\r\n if (this.Options & RowShare.AccessOptions.ManagedOfMember) {\r\n if (this.Options & RowShare.AccessOptions.Recursive) {\r\n result = i18n.t(\"ListAccess_AllReportsTeamNameFormat\", [guestName]).toString();\r\n } else {\r\n result = i18n.t(\"ListAccess_DirectReportsTeamNameFormat\", [guestName]).toString();\r\n }\r\n }\r\n }\r\n return result;\r\n } \r\n}\r\n\r\n// export class FolderAccessEdition {\r\n// public FolderId!: string;\r\n// public GroupId!: string;\r\n// public GroupName!: string;\r\n// public AccessMode!: FolderAccessMode;\r\n// public Options!: number | null;\r\n// public MemberOrganizationId!: string;\r\n// public MemberEmail!: string;\r\n// public MemberName!: string;\r\n// public Bigram!: string;\r\n// public BackgroundColorIndex!: string;\r\n// }\r\n\r\nexport enum FolderAccessMode {\r\n None = 0,\r\n Read = 1,\r\n Write = 2,\r\n Unused1 = 4,\r\n DontInherit = 8\r\n}\r\n\r\nexport enum AccessOptions { \r\n None = 0, \r\n ManagedOfMember = 1, \r\n Recursive = 2\r\n}\r\n\r\nenum FolderOwnerOptions {\r\n None = 0,\r\n Primary = 1\r\n}\r\n\r\nenum FolderOptions {\r\n None = 0,\r\n RecycleBin = 1,\r\n Undeletable = 2\r\n}","import { AccessOptions } from \"./Folder\";\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { OwnerType } from \"./User\";\r\nimport i18n from '@/modules/Localization';\r\n\r\nexport class SecurityPrincipal {\r\n UserEmail!: string;\r\n GroupId!: string;\r\n GroupName!: string;\r\n GroupMemberCount!: number;\r\n MemberEmail!: string;\r\n MemberOrganizationId!: string;\r\n MemberName!: string;\r\n Options!: AccessOptions;\r\n BackgroundColorIndex!: number | null;\r\n Bigram!: string | null;\r\n IsMyOrganization!: boolean;\r\n IconPath!: string;\r\n\r\n public get type() : SecurityPrincipalType {\r\n if (!Utils.isNullOrUndefined(this.UserEmail)) {\r\n return SecurityPrincipalType.User;\r\n }\r\n\r\n if (!Utils.isNullOrUndefined(this.GroupId) && !Utils.isNullOrUndefined(this.GroupName)) {\r\n return SecurityPrincipalType.Group;\r\n }\r\n\r\n if (!Utils.isNullOrUndefined(this.MemberEmail) && !Utils.isNullOrUndefined(this.MemberOrganizationId)) {\r\n if (this.Options & AccessOptions.ManagedOfMember) {\r\n if (this.Options & AccessOptions.Recursive) {\r\n return SecurityPrincipalType.AllReports;\r\n } else {\r\n return SecurityPrincipalType.DirectReports;\r\n }\r\n }\r\n return SecurityPrincipalType.Member;\r\n }\r\n\r\n return SecurityPrincipalType.Unknown;\r\n }\r\n\r\n public get icon() {\r\n switch(this.type) {\r\n case SecurityPrincipalType.AllReports:\r\n case SecurityPrincipalType.DirectReports:\r\n return \"fa-sitemap\";\r\n case SecurityPrincipalType.Group:\r\n return this.IsMyOrganization ? \"\" : \"fa-users\";\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n public get ownerType() {\r\n switch (this.type) {\r\n case SecurityPrincipalType.Unknown:\r\n return OwnerType.UserUnknown;\r\n case SecurityPrincipalType.User:\r\n return OwnerType.User;\r\n case SecurityPrincipalType.Member:\r\n return OwnerType.Member;\r\n case SecurityPrincipalType.Group:\r\n if (this.IsMyOrganization)\r\n return OwnerType.MyOrganization;\r\n else\r\n return OwnerType.Group;\r\n case SecurityPrincipalType.DirectReports:\r\n case SecurityPrincipalType.AllReports:\r\n return OwnerType.Team;\r\n }\r\n }\r\n\r\n public get displayName() {\r\n const memberDisplayName = Utils.isNullOrWhiteSpace(this.MemberName) ? this.MemberEmail : this.MemberName;\r\n switch (this.type) {\r\n case SecurityPrincipalType.User:\r\n return this.UserEmail!;\r\n case SecurityPrincipalType.Member:\r\n return i18n.t('ListAccess_MemberNameFormat', [memberDisplayName]).toString();\r\n case SecurityPrincipalType.Group:\r\n {\r\n if(this.ownerType == OwnerType.MyOrganization) {\r\n return i18n.t('ListAccess_MyOrganization').toString();\r\n }\r\n return i18n.t('ListAccess_GroupNameFormat', [this.GroupName]).toString();\r\n }\r\n case SecurityPrincipalType.AllReports:\r\n return i18n.t('ListAccess_AllReportsTeamNameFormat', [memberDisplayName]).toString();\r\n case SecurityPrincipalType.DirectReports:\r\n return i18n.t('ListAccess_DirectReportsTeamNameFormat', [memberDisplayName]).toString();\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n public get id() {\r\n switch (this.type) {\r\n case SecurityPrincipalType.User:\r\n return \"U:\" + this.UserEmail;\r\n case SecurityPrincipalType.Member:\r\n return \"M:\" + this.MemberEmail + \":\" + this.MemberOrganizationId;\r\n case SecurityPrincipalType.Group:\r\n return \"G:\" + this.GroupId;\r\n case SecurityPrincipalType.AllReports:\r\n case SecurityPrincipalType.DirectReports:\r\n return \"T:\" + this.MemberEmail + \":\" + this.MemberOrganizationId + \":\" + this.Options;\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n public get group() {\r\n switch (this.type) {\r\n case SecurityPrincipalType.Member:\r\n return i18n.t(\"ListAccess_MemberCategory\").toString();\r\n\r\n case SecurityPrincipalType.Group:\r\n return i18n.t(\"ListAccess_GroupCategory\").toString();\r\n\r\n case SecurityPrincipalType.AllReports:\r\n case SecurityPrincipalType.DirectReports:\r\n return i18n.t(\"ListAccess_TeamCategory\").toString();\r\n\r\n default:\r\n return \"\";\r\n }\r\n }\r\n}\r\n\r\nexport const enum SecurityPrincipalType {\r\n Unknown,\r\n User,\r\n Member,\r\n Group,\r\n DirectReports,\r\n AllReports,\r\n}","export const enum DataStatus {\r\n Unspecified = 0, \r\n Normal = 1, \r\n DeletionRequired = 2, \r\n DeletionInProgress = 3,\r\n Archived = 8,\r\n Locked = 9,\r\n EditionInProgress = 10,\r\n}\r\n\r\nexport const enum DisplayedRows {\r\n Active,\r\n Deleted,\r\n Archived\r\n}\r\n\r\nexport const enum RowShareServiceFormat {\r\n Json,\r\n Xml,\r\n XlsSync,\r\n Xls,\r\n Csv,\r\n Html,\r\n DataTable,\r\n Javascript,\r\n Yaml\r\n}\r\n","import { Dictionary } from 'vue-router/types/router';\r\n\r\nexport class Group {\r\n public Id!: string;\r\n public Name!: string;\r\n public Description!: string;\r\n public MemberCount!: number;\r\n public OrganizationId!: string;\r\n public MetaData!: string;\r\n public MetaDataDictionary!: Dictionary;\r\n public Options!: GroupOptions;\r\n public Children!: Array;\r\n public IsMyOrganization!: boolean;\r\n}\r\n\r\nexport enum GroupOptions {\r\n None = 0,\r\n MyOrganization = 1,\r\n Undeletable = 2,\r\n Disabled = 4\r\n}","import { User } from './User';\r\nimport * as API from '../api/Api';\r\nimport i18n from '@/modules/Localization';\r\n\r\nexport class Job {\r\n\r\n public Id!: string;\r\n public ReportId!: string;\r\n public ReportDisplayName!:string;\r\n public ListId!: string;\r\n public Status!: JobStatus;\r\n public Type!: JobType;\r\n public CreationDateUtc!:Date;\r\n public StatusChangeDateUtc!: Date;\r\n public OutputFileLastWriteTimeUtc!: Date;\r\n public OutputFileSize!:number;\r\n public OutputFileName!:string;\r\n public OutputFilePath!: string;\r\n public OutputError!:string;\r\n public OutputData!:string;\r\n public User!: User;\r\n public RowCount!:number;\r\n public ListDisplayName!: string;\r\n\r\n public static pollingJobs = new Array();\r\n\r\n public get hasFinished() {\r\n switch (this.Status) {\r\n case JobStatus.Error:\r\n case JobStatus.Finished:\r\n case JobStatus.SourceDeleted:\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private pollingTimeout: number | null = null;\r\n public updateStatusAsync(interval: number, updateCallback: ((job: Job) => void) | null = null) {\r\n if (this.hasFinished || Job.pollingJobs.indexOf(this) > -1) {\r\n return;\r\n }\r\n\r\n Job.pollingJobs.push(this);\r\n\r\n this.pollingTimeout = setInterval(async() => {\r\n const job = await API.Job.load(this.Id, { cache: false });\r\n \r\n var oldRef = this.pollingTimeout;\r\n Object.assign(this, job);\r\n this.pollingTimeout = oldRef;\r\n\r\n if(updateCallback)\r\n updateCallback(this);\r\n\r\n if (job!= null && job.hasFinished && this.pollingTimeout != null) {\r\n clearInterval(this.pollingTimeout);\r\n var index = Job.pollingJobs.indexOf(job);\r\n if (index > -1) {\r\n Job.pollingJobs.splice(index, 1);\r\n }\r\n }\r\n }, interval);\r\n }\r\n\r\n public static clearAllJobUpdateTimeout(){\r\n Job.pollingJobs.forEach(job => {\r\n if(job.pollingTimeout) {\r\n clearInterval(job.pollingTimeout);\r\n }\r\n });\r\n Job.pollingJobs = [];\r\n }\r\n\r\n public static getStatusString(status: JobStatus): string {\r\n return i18n.t(`JobStatus_${status}`).toString();\r\n }\r\n}\r\n\r\n// Must be synchronized with JobStatus enum on backend\r\nexport const enum JobStatus{\r\n Unspecified = 0, \r\n Processing = 1,\r\n NotStarted = 2,\r\n Finished = 3,\r\n Error = 4,\r\n Retrying = 5,\r\n SourceDeleted = 6,\r\n ProcessingExport = 7,\r\n ProcessingIndexation = 8,\r\n ProcessingAnalysis = 9,\r\n ExportDone = 10,\r\n IndexationDone = 11,\r\n AnalysisDone = 12\r\n}\r\n\r\n// Must be synchronized with JobType enum on backend\r\nexport const enum JobType {\r\n Unspecified = 0,\r\n ListReport = 1,\r\n ListAnalysis = 2\r\n}\r\n\r\n","import { Utils } from \"@/utils/Utilities\"\r\nimport { ListAccess, CellColor, RowShareServiceFormat } from \"./RowShare\";\r\n\r\nexport class List {\r\n public Id!: string;\r\n public DisplayName!: string;\r\n public Description!: string;\r\n public CanCreate!: boolean;\r\n public CanRead!: boolean;\r\n public CanUpdate!: boolean;\r\n public CanSuppress!: boolean;\r\n public CanAssign!: boolean;\r\n public LoadedByReadOnlyMember!: boolean;\r\n //public UndoRedoInfo: UndoRedoInfo;\r\n public HasPreviewFeatures!: boolean;\r\n public Lcid!: number;\r\n public Language!: string;\r\n public IconPath!: string | null;\r\n public Concurrency!: boolean;\r\n public OneRowMaximumPerUser!: boolean;\r\n public Accesses!: ListAccess[];\r\n public Owned!: boolean;\r\n public CategoryId!: number;\r\n public RowDescriptorId!: string;\r\n public ShowTotals!: boolean;\r\n public ShowOwnerInformations!: boolean;\r\n //public ShowShareWizard: boolean;\r\n public ColorOrDefault!: string;\r\n public FolderId!: string;\r\n public IsAllowedToCreateSiblings!: boolean;\r\n public HasRemainingSlotForSiblings!: boolean;\r\n //public ManagerEquivalence: boolean;\r\n public OrganizationId!: string;\r\n public AllowPublic!: boolean;\r\n public AllowSurvey!: boolean;\r\n public BlobSizeLimitInKo!: number;\r\n public RowCount!: number;\r\n public ReportCount!: number;\r\n public RemainingRowCount!: number;\r\n public MaxRowCount!: number;\r\n public RemainingStorage!: number;\r\n public MaxSizeInBytes!: number;\r\n public ListSizeInBytes!: number;\r\n public OwnersNicknames!: Array;\r\n public LastUpdateDateUtc!: Date;\r\n public HumanReadableLastUpdateDate!: string;\r\n public LastUpdateDateSortOrder!: number;\r\n public CreationDateUtc!: Date;\r\n public Icon_Remove!:boolean;\r\n public IsInRecycleBin!:boolean;\r\n public CellsColors!:string;\r\n public CanCurrentUserEnableAudit!:boolean;\r\n public CanCurrentUserExportAudit!:boolean;\r\n public HasRelationColumn!: boolean;\r\n public HasRelatedRows!: boolean;\r\n public HasUniqueColumn!:boolean;\r\n public HasUserReadOnlyColumn!:boolean;\r\n public HasUserHiddenColumn!:boolean;\r\n public IsReferenced!: boolean;\r\n public RowsAutoHeight!: boolean;\r\n\r\n public get isOrganization() {\r\n return !Utils.isEmptyGuid(this.OrganizationId);\r\n }\r\n\r\n public get isUser() {\r\n return !this.isOrganization;\r\n }\r\n\r\n public get hasDescription() {\r\n return !Utils.isNullOrWhiteSpace(this.Description);\r\n }\r\n\r\n public get CellsColorsList(): CellColor[] {\r\n let colors: CellColor[] = [];\r\n\r\n if(!this.CellsColors) {\r\n return [];\r\n }\r\n\r\n colors = JSON.parse(this.CellsColors);\r\n\r\n if(!colors) {\r\n colors = [];\r\n }\r\n\r\n return colors;\r\n }\r\n\r\n}\r\n\r\nexport class ListOwner {\r\n public ListId!:string;\r\n public Options!:ListOwnerOptions;\r\n public OwnerEmail!:string;\r\n public OwnerOrganizationId!:string;\r\n public OwnerName!:string;\r\n}\r\n\r\n enum ListOwnerOptions\r\n{ \r\n None = 0, \r\n Primary = 1,\r\n}\r\n\r\nexport class CopyListInfo{\r\n Id!:string;\r\n FolderId!:string;\r\n Options!:CopyListOptions;\r\n}\r\n\r\nexport class CopyListOptions{\r\n CopyRows?: boolean;\r\n CopyReports?: boolean;\r\n CreateNotifications?: boolean;\r\n RowsAutoHeight?: boolean;\r\n}\r\n\r\nexport class ListInformations {\r\n hidePermissionsMessage!: boolean;\r\n showDescription!: boolean;\r\n}\r\n\r\nexport class ExportContext {\r\n rowIds!: string[] | null;\r\n format!: RowShareServiceFormat;\r\n formatOptions!: XlsFormatOptions;\r\n}\r\n\r\nexport class XlsFormatOptions {\r\n Synchronizable: boolean = false;\r\n RequiresAuthentication: boolean = false;\r\n OpenXml: boolean = false;\r\n OnlyHeader: boolean = false;\r\n IncludeRowDetails: boolean = false;\r\n ForAnalysis: boolean = false;\r\n}","import * as RowShare from \"@/models/RowShare\";\r\nimport { i18n } from \"@/modules/Localization\";\r\n\r\nexport class ListAccess {\r\n Id!: string; \r\n Options!: RowShare.AccessOptions;\r\n UserEmail!: string;\r\n GroupId!: string;\r\n GroupName!: string;\r\n MemberEmail!: string;\r\n MemberOrganizationId!: string;\r\n MemberName!: string;\r\n ListId!: string;\r\n Guest!: RowShare.Owner;\r\n IsMyOrganization!: boolean;\r\n Create!: boolean;\r\n Read!: AccessLevel;\r\n Update!: AccessLevel;\r\n Suppress!: AccessLevel;\r\n Assign!: AccessLevel;\r\n\r\n public get AccessMode() : AccessMode {\r\n switch (this.Read) {\r\n case AccessLevel.none:\r\n return AccessMode.None;\r\n case AccessLevel.ownedOnly:\r\n if(this.Create && this.Update == AccessLevel.ownedOnly && this.Suppress == AccessLevel.ownedOnly && this.Assign == AccessLevel.ownedOnly) {\r\n return AccessMode.WriteOwnedOnly;\r\n }\r\n else {\r\n return AccessMode.ReadOwnedOnly;\r\n }\r\n case AccessLevel.all:\r\n if(this.Create && this.Update == AccessLevel.all && this.Suppress == AccessLevel.all && this.Assign == AccessLevel.all) {\r\n return AccessMode.Write;\r\n }\r\n else if(this.Create && this.Update == AccessLevel.ownedOnly && this.Suppress == AccessLevel.ownedOnly && this.Assign == AccessLevel.ownedOnly) {\r\n return AccessMode.ReadWriteOwnedOnly;\r\n }\r\n else {\r\n return AccessMode.Read;\r\n }\r\n default: \r\n return AccessMode.None;\r\n \r\n }\r\n }\r\n\r\n public set AccessMode(access: AccessMode) {\r\n switch(access) {\r\n case AccessMode.None:\r\n this.Create = false;\r\n this.Read = AccessLevel.none;\r\n this.Update = AccessLevel.none;\r\n this.Suppress = AccessLevel.none;\r\n this.Assign = AccessLevel.none;\r\n break;\r\n case AccessMode.Read:\r\n this.Create = false;\r\n this.Read = AccessLevel.all;\r\n this.Update = AccessLevel.none;\r\n this.Suppress = AccessLevel.none;\r\n this.Assign = AccessLevel.none;\r\n break;\r\n case AccessMode.Write:\r\n this.Create = true;\r\n this.Read = AccessLevel.all;\r\n this.Update = AccessLevel.all;\r\n this.Suppress = AccessLevel.all;\r\n this.Assign = AccessLevel.all;\r\n break;\r\n case AccessMode.WriteOwnedOnly:\r\n this.Create = true;\r\n this.Read = AccessLevel.ownedOnly;\r\n this.Update = AccessLevel.ownedOnly;\r\n this.Suppress = AccessLevel.ownedOnly;\r\n this.Assign = AccessLevel.ownedOnly;\r\n break;\r\n case AccessMode.ReadOwnedOnly:\r\n this.Create = false;\r\n this.Read = AccessLevel.ownedOnly;\r\n this.Update = AccessLevel.none;\r\n this.Suppress = AccessLevel.none;\r\n this.Assign = AccessLevel.none;\r\n break;\r\n case AccessMode.ReadWriteOwnedOnly:\r\n this.Create = false;\r\n this.Read = AccessLevel.all;\r\n this.Update = AccessLevel.none;\r\n this.Suppress = AccessLevel.none;\r\n this.Assign = AccessLevel.none;\r\n break;\r\n \r\n }\r\n }\r\n \r\n public get principal() {\r\n const principal = new RowShare.SecurityPrincipal();\r\n principal.UserEmail = this.UserEmail;\r\n principal.GroupId = this.GroupId;\r\n principal.GroupName = this.GroupName;\r\n principal.MemberEmail = this.MemberEmail;\r\n principal.MemberOrganizationId = this.MemberOrganizationId;\r\n principal.MemberName = this.MemberName;\r\n principal.Options = this.Options;\r\n return principal;\r\n }\r\n\r\n public set principal(value: RowShare.SecurityPrincipal) {\r\n this.UserEmail = value.UserEmail;\r\n this.GroupId = value.GroupId;\r\n this.GroupName = value.GroupName;\r\n this.MemberEmail = value.MemberEmail;\r\n this.MemberOrganizationId = value.MemberOrganizationId;\r\n this.MemberName = value.MemberName;\r\n this.Options = value.Options;\r\n }\r\n\r\n public static getNewFromAccessMode(listOfAccesses: Array, securityPrincipal: RowShare.SecurityPrincipal, readAccess: AccessLevel, \r\n writeAccess: AccessLevel, ListId:string) : ListAccess {\r\n let newListAccess = new ListAccess();\r\n let accessId = newListAccess.existsAccess(listOfAccesses, securityPrincipal.UserEmail, securityPrincipal.GroupId, securityPrincipal.MemberEmail,\r\n securityPrincipal.MemberOrganizationId, securityPrincipal.Options);\r\n if (accessId != null)\r\n newListAccess.Id = accessId;\r\n let accessMode = newListAccess.getAccessMode(readAccess, writeAccess);\r\n newListAccess.AccessMode = accessMode;\r\n newListAccess.principal = securityPrincipal;\r\n newListAccess.ListId = ListId;\r\n return newListAccess;\r\n }\r\n\r\n public static getNew(listOfAccesses: ListAccess[], securityPrincipal: RowShare.SecurityPrincipal, listId: string, create: boolean, read: AccessLevel, \r\n update: AccessLevel, suppress: AccessLevel, assign: AccessLevel) {\r\n let newListAccess = new ListAccess();\r\n let accessId = newListAccess.existsAccess(listOfAccesses, securityPrincipal.UserEmail, securityPrincipal.GroupId, securityPrincipal.MemberEmail,\r\n securityPrincipal.MemberOrganizationId, securityPrincipal.Options);\r\n if (accessId != null) {\r\n newListAccess.Id = accessId;\r\n }\r\n newListAccess.Create = create;\r\n newListAccess.Read = read;\r\n newListAccess.Update = update;\r\n newListAccess.Suppress = suppress;\r\n newListAccess.Assign = assign;\r\n newListAccess.principal = securityPrincipal;\r\n newListAccess.ListId = listId;\r\n newListAccess.IsMyOrganization = securityPrincipal.IsMyOrganization;\r\n return newListAccess;\r\n }\r\n\r\n public static getNewDefault(listId: string) {\r\n let newListAccess = new ListAccess();\r\n newListAccess.simpleAccessLevel = AccessLevel.ownedOnly;\r\n newListAccess.ListId = listId;\r\n return newListAccess;\r\n }\r\n\r\n existsAccess(listOfAccesses: Array, userEmail: string | undefined, groupId: string | undefined, memberEmail: string | undefined, \r\n memberOrganizationId: string | undefined, accessOptions: RowShare.AccessOptions) {\r\n let accessId = null;\r\n if (userEmail != null) {\r\n let elem = listOfAccesses.find(ac => ac.UserEmail == userEmail);\r\n if (elem) {\r\n accessId = elem.Id;\r\n }\r\n }\r\n if (groupId != null) {\r\n let elem = listOfAccesses.find(ac => ac.GroupId == groupId);\r\n if (elem) {\r\n accessId = elem.Id\r\n }\r\n }\r\n if (memberEmail != null && memberOrganizationId != null) {\r\n let elem = listOfAccesses.find(ac => ac.MemberEmail == memberEmail && ac.MemberOrganizationId == memberOrganizationId && ac.Options == accessOptions);\r\n if (elem) {\r\n accessId = elem.Id;\r\n }\r\n }\r\n return accessId;\r\n }\r\n\r\n getAccessMode(accessToRead: RowShare.AccessLevel, accessToWrite: RowShare.AccessLevel) : RowShare.AccessMode {\r\n switch (accessToWrite) {\r\n case (RowShare.AccessLevel.all): {\r\n if (accessToRead == RowShare.AccessLevel.all)\r\n return RowShare.AccessMode.Write;\r\n else\r\n return RowShare.AccessMode.None;\r\n }\r\n case (RowShare.AccessLevel.ownedOnly): {\r\n if (accessToRead == RowShare.AccessLevel.all)\r\n return RowShare.AccessMode.ReadWriteOwnedOnly;\r\n else if (accessToRead == RowShare.AccessLevel.ownedOnly)\r\n return RowShare.AccessMode.WriteOwnedOnly;\r\n else\r\n return RowShare.AccessMode.None;\r\n }\r\n case (RowShare.AccessLevel.none): {\r\n if (accessToRead == RowShare.AccessLevel.all)\r\n return RowShare.AccessMode.Read;\r\n else if (accessToRead == RowShare.AccessLevel.ownedOnly)\r\n return RowShare.AccessMode.ReadOwnedOnly;\r\n else\r\n return RowShare.AccessMode.None;\r\n }\r\n default:\r\n return RowShare.AccessMode.None;\r\n }\r\n }\r\n\r\n public get readAccessLevel() : AccessLevel {\r\n return this.Read;\r\n }\r\n\r\n public set readAccessLevel(value: AccessLevel) {\r\n this.Read = value;\r\n }\r\n\r\n public get writeAccessLevel() {\r\n return this.Update;\r\n }\r\n\r\n public set writeAccessLevel(value: AccessLevel) {\r\n this.Create = (value != AccessLevel.none);\r\n this.Update = value;\r\n this.Suppress = value;\r\n this.Assign = value;\r\n }\r\n\r\n public get guestName(): string {\r\n let guestName = this.Guest?.DisplayName;\r\n if(!guestName) {\r\n return \"\";\r\n }\r\n let result = guestName;\r\n if (this.Guest.Type == RowShare.OwnerType.Team) {\r\n if (this.Options & RowShare.AccessOptions.ManagedOfMember) {\r\n if (this.Options & RowShare.AccessOptions.Recursive) {\r\n result = i18n.t(\"ListAccess_AllReportsTeamNameFormat\", [guestName]).toString();\r\n } else {\r\n result = i18n.t(\"ListAccess_DirectReportsTeamNameFormat\", [guestName]).toString();\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public get simpleAccessLevel(): AccessLevel | null {\r\n // In simple mode, all permissions are set to the same value\r\n if(this.Read == this.Update && this.Update == this.Suppress && this.Suppress == this.Assign) {\r\n return ((this.Read > 0 && !this.Create) || this.Read == 0) ? null : this.Read;\r\n }\r\n return null;\r\n }\r\n\r\n public set simpleAccessLevel(value: AccessLevel | null) {\r\n if(!value) {\r\n return;\r\n }\r\n this.Create = (value > 0);\r\n this.Read = value;\r\n this.Update = value;\r\n this.Suppress = value;\r\n this.Assign = value;\r\n }\r\n\r\n public get isAdvancedAccess(): boolean {\r\n return this.simpleAccessLevel == null;\r\n }\r\n}\r\n\r\nexport enum AccessLevel {\r\n none = 0,\r\n ownedOnly = 1,\r\n all = 2\r\n}\r\n\r\nexport const enum AccessMode {\r\n None = 0,\r\n Read = 1,\r\n Write = 2,\r\n WriteOwnedOnly = 4,\r\n ReadOwnedOnly = 8,\r\n ReadWriteOwnedOnly = 16\r\n}\r\n\r\n\r\nexport class NonExistentMember {\r\n Email: string = \"\";\r\n Create: boolean = false;\r\n Read: AccessLevel = AccessLevel.none;\r\n Update: AccessLevel = AccessLevel.none;\r\n Suppress: AccessLevel = AccessLevel.none;\r\n Assign: AccessLevel = AccessLevel.none;\r\n\r\n public static getNew(email: string, create: boolean, read: AccessLevel, update: AccessLevel, suppress: AccessLevel, assign: AccessLevel) {\r\n let newMember = new NonExistentMember();\r\n newMember.Email = email;\r\n newMember.Create = create;\r\n newMember.Read = read;\r\n newMember.Update = update;\r\n newMember.Suppress = suppress;\r\n newMember.Assign = assign;\r\n\r\n return newMember;\r\n }\r\n\r\n public static getNewFromAccessMode(email: string, access: AccessMode) {\r\n let newMember = new NonExistentMember();\r\n newMember.Email = email;\r\n newMember.Access = access;\r\n return newMember;\r\n }\r\n\r\n public get Access() : AccessMode {\r\n switch (this.Read) {\r\n case AccessLevel.none:\r\n return AccessMode.None;\r\n case AccessLevel.ownedOnly:\r\n if(this.Create && this.Update == AccessLevel.ownedOnly && this.Suppress == AccessLevel.ownedOnly && this.Assign == AccessLevel.ownedOnly) {\r\n return AccessMode.WriteOwnedOnly;\r\n }\r\n else {\r\n return AccessMode.ReadOwnedOnly;\r\n }\r\n case AccessLevel.all:\r\n if(this.Create && this.Update == AccessLevel.all && this.Suppress == AccessLevel.all && this.Assign == AccessLevel.all) {\r\n return AccessMode.Write;\r\n }\r\n else if(this.Create && this.Update == AccessLevel.ownedOnly && this.Suppress == AccessLevel.ownedOnly && this.Assign == AccessLevel.ownedOnly) {\r\n return AccessMode.ReadWriteOwnedOnly;\r\n }\r\n else {\r\n return AccessMode.Read;\r\n }\r\n default: \r\n return AccessMode.None;\r\n \r\n }\r\n }\r\n\r\n public set Access(access: AccessMode) {\r\n switch(access) {\r\n case AccessMode.None:\r\n this.Create = false;\r\n this.Read = AccessLevel.none;\r\n this.Update = AccessLevel.none;\r\n this.Suppress = AccessLevel.none;\r\n this.Assign = AccessLevel.none;\r\n break;\r\n case AccessMode.Read:\r\n this.Create = false;\r\n this.Read = AccessLevel.all;\r\n this.Update = AccessLevel.none;\r\n this.Suppress = AccessLevel.none;\r\n this.Assign = AccessLevel.none;\r\n break;\r\n case AccessMode.Write:\r\n this.Create = true;\r\n this.Read = AccessLevel.all;\r\n this.Update = AccessLevel.all;\r\n this.Suppress = AccessLevel.all;\r\n this.Assign = AccessLevel.all;\r\n break;\r\n case AccessMode.WriteOwnedOnly:\r\n this.Create = true;\r\n this.Read = AccessLevel.ownedOnly;\r\n this.Update = AccessLevel.ownedOnly;\r\n this.Suppress = AccessLevel.ownedOnly;\r\n this.Assign = AccessLevel.ownedOnly;\r\n break;\r\n case AccessMode.ReadOwnedOnly:\r\n this.Create = false;\r\n this.Read = AccessLevel.ownedOnly;\r\n this.Update = AccessLevel.none;\r\n this.Suppress = AccessLevel.none;\r\n this.Assign = AccessLevel.none;\r\n break;\r\n case AccessMode.ReadWriteOwnedOnly:\r\n this.Create = false;\r\n this.Read = AccessLevel.all;\r\n this.Update = AccessLevel.none;\r\n this.Suppress = AccessLevel.none;\r\n this.Assign = AccessLevel.none;\r\n break;\r\n \r\n }\r\n }\r\n\r\n}\r\n\r\nexport class ListAccessesToSave {\r\n public listId!: string;\r\n public organizationId!: string;\r\n public sendNotification!: boolean;\r\n public newAccessesForNewMembers!: NonExistentMember[];\r\n public newAccesses!: ListAccess[];\r\n public updatedAccesses!: ListAccess[];\r\n public deletedAccesses!: ListAccess[];\r\n public recaptchaToken!: string | null;\r\n public recaptchaTokenIsV3!: boolean;\r\n\r\n constructor() {\r\n this.newAccessesForNewMembers = [];\r\n this.newAccesses = [];\r\n this.updatedAccesses = [];\r\n this.deletedAccesses = [];\r\n }\r\n}\r\n","export class ListAccessAudit {\r\n Id!: string;\r\n Name!: string;\r\n Admins!: ListAccessAuditMember[];\r\n UniversalOwners!: ListAccessAuditMember[];\r\n RootFolder!: ListAccessAuditFolder;\r\n}\r\n\r\nexport class ListAccessAuditMember {\r\n Name!: string;\r\n Email!: string;\r\n IsReadonly!: boolean;\r\n}\r\n\r\nexport class ListAccessAuditAccess {\r\n Member!: ListAccessAuditMember;\r\n IsOwner!: boolean;\r\n CanCreate!: boolean; \r\n CanRead!: ListAccessAuditAccesLevel;\r\n CanUpdate!: ListAccessAuditAccesLevel;\r\n CanSuppress!: ListAccessAuditAccesLevel;\r\n CanAssign!: ListAccessAuditAccesLevel;\r\n}\r\n\r\nexport enum ListAccessAuditAccesLevel {\r\n All = \"All\",\r\n Owned = \"Owned\",\r\n None = \"None\" \r\n}\r\n\r\nexport class ListAccessAuditList\r\n{\r\n Id!: string;\r\n Name!: string;\r\n Url!: string;\r\n OneRowMaximumPerUser!: boolean;\r\n ExternalAccess!: boolean;\r\n Accesses!: ListAccessAuditAccess[];\r\n}\r\n\r\nexport class ListAccessAuditFolder\r\n{\r\n Id!: string;\r\n Name!: string;\r\n Folders!: ListAccessAuditFolder[];\r\n Tables!: ListAccessAuditList[];\r\n}","import { Utils } from \"./Utilities\";\r\n\r\nexport const enum SettingNames {\r\n configuration = \"configuration\",\r\n information = \"information\",\r\n columnsConfiguration = \"columnsConfiguration\"\r\n}\r\n\r\nexport class Settings {\r\n static get(ns: string, name: SettingNames) {\r\n const finalName = ns + \".\" + name;\r\n try {\r\n return localStorage.getItem(finalName);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n static set(ns: string, name: SettingNames, value: boolean | number | string | null): boolean | null {\r\n const finalName = ns + \".\" + name;\r\n try {\r\n if (value === null) {\r\n localStorage.removeItem(finalName);\r\n return false;\r\n } else {\r\n localStorage.setItem(finalName, String(value));\r\n return true;\r\n }\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n static getJson(ns: string, name: SettingNames) {\r\n const value = Settings.get(ns, name);\r\n if (Utils.isNullOrUndefined(value)) {\r\n return null;\r\n }\r\n\r\n try {\r\n return JSON.parse(value);\r\n } catch (ex) {\r\n return null;\r\n }\r\n }\r\n\r\n static setJson(ns: string, name: SettingNames, value: any | null): boolean | null {\r\n return Settings.set(ns, name, JSON.stringify(value));\r\n }\r\n\r\n\r\n static getColumnProperty(listId: string, columnId: string, prop: string): T | null {\r\n let columnsConfiguration = Settings.getJson(listId, SettingNames.columnsConfiguration);\r\n if (columnsConfiguration) {\r\n const columnConfiguration = columnsConfiguration[columnId];\r\n if (columnConfiguration) {\r\n return columnConfiguration[prop];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n static setColumnProperty(listId: string, columnId: string, prop: string, value: T) {\r\n let columnsConfiguration = Settings.getJson(listId, SettingNames.columnsConfiguration);\r\n if (!columnsConfiguration)\r\n columnsConfiguration = {};\r\n\r\n let columnConfiguration = columnsConfiguration[columnId];\r\n if (!columnConfiguration) {\r\n columnConfiguration = {};\r\n columnsConfiguration[columnId] = columnConfiguration;\r\n }\r\n\r\n columnConfiguration[prop] = value;\r\n Settings.setJson(listId, SettingNames.columnsConfiguration, columnsConfiguration);\r\n }\r\n}\r\n\r\n","import * as jobs from './Job';\r\nimport * as api from '@/api/Api';\r\nimport { Row } from './Row';\r\n\r\nexport class Report {\r\n public Id!: string;\r\n public ListId!: string;\r\n public DisplayName!: string;\r\n public Options!: ReportOptions;\r\n public FileContentType!: string;\r\n public FileName!: string;\r\n public FileSize!: number;\r\n public FilePath!: string;\r\n public OutputFormat!: ReportFormat;\r\n public FileLastWriteTimeUtc!: Date;\r\n public CreationDateUtc!: Date;\r\n public Published!: boolean;\r\n public ConversionStatus!: jobs.JobStatus;\r\n public ConversionErrorCode!: number;\r\n public ConversionErrorMessage!: string;\r\n public ConversionNeeded!: boolean;\r\n public OutputDestinationType!: OutputDestinationType;\r\n public OutputDestinationId: string | null = null;\r\n\r\n public static pollingReports = new Array();\r\n\r\n public get conversionHasFinished() {\r\n if (!this.ConversionNeeded) {\r\n return true;\r\n }\r\n switch (this.ConversionStatus) {\r\n case jobs.JobStatus.Error:\r\n case jobs.JobStatus.Finished:\r\n case jobs.JobStatus.SourceDeleted:\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public get hasConversionError() {\r\n return this.ConversionNeeded && this.ConversionStatus === jobs.JobStatus.Error;\r\n }\r\n\r\n public pollingTimeout: number | null = null;\r\n public updateConversionStatusAsync(interval: number) {\r\n if (this.conversionHasFinished || Report.pollingReports.indexOf(this) > -1) {\r\n return;\r\n }\r\n\r\n Report.pollingReports.push(this);\r\n this.pollingTimeout = setInterval(async () => {\r\n const report = await api.Report.load(this.Id, { cache: false });\r\n \r\n if(report) {\r\n // we can't replace everything as this would conflict with in place edit\r\n this.ConversionStatus = report.ConversionStatus;\r\n this.ConversionErrorCode = report.ConversionErrorCode;\r\n this.ConversionErrorMessage = report.ConversionErrorMessage;\r\n this.ConversionNeeded = report.ConversionNeeded;\r\n }\r\n\r\n if (report && report.conversionHasFinished && this.pollingTimeout) {\r\n clearInterval(this.pollingTimeout);\r\n var index = Report.pollingReports.findIndex(pr => pr.Id === this.Id);\r\n if (index > -1) {\r\n Report.pollingReports.splice(index, 1);\r\n }\r\n }\r\n }, interval);\r\n }\r\n \r\n public static clearAllReportUpdateTimeout(){\r\n Report.pollingReports.forEach(report => {\r\n if(report.pollingTimeout)\r\n clearInterval(report.pollingTimeout);\r\n });\r\n Report.pollingReports = [];\r\n }\r\n}\r\n\r\nexport class ReportGenerationContext {\r\n rowIds!: string[] | null;\r\n totalTableRowCount!: number;\r\n expirationDate!: Date;\r\n testMode!: boolean;\r\n reportId!: string;\r\n outputFormat!: ReportFormat;\r\n hasReadOnlyRows!: boolean;\r\n}\r\n\r\nexport const enum ReportOptions {\r\n None = 0\r\n}\r\n\r\nexport const enum ReportFormat {\r\n Auto = 0,\r\n Pdf = 1,\r\n Docx = 2,\r\n}\r\n\r\nexport const enum OutputDestinationType {\r\n DownloadFile = 0,\r\n CopyToColumn = 1,\r\n}","import { ColumnOptions, ColumnStrongType } from '@/models/Column';\r\nimport {ColumnType, ColumnTypeCategory, ColumnTypeCategoryName} from '@/models/ColumnType';\r\nimport i18n from '@/modules/Localization';\r\n\r\nexport class ColumnTypes{\r\n public static defaultRatingLookupValues: string = '[{\"name\": \"\\u2b50\", \"color\": \"\"},{\"name\": \"\\u2b50\\u2b50\", \"color\": \"\"},{\"name\": \"\\u2b50\\u2b50\\u2b50\", \"color\": \"\"},{\"name\": \"\\u2b50\\u2b50\\u2b50\\u2b50\", \"color\": \"\"},{\"name\": \"\\u2b50\\u2b50\\u2b50\\u2b50\\u2b50\", \"color\": \"\"}]';\r\n public static defaultThreeStateBooleanLookupValues: string = '[{\"name\":\"?\", \"color\": \"\"}, {\"name\":\"\\u274C\", \"color\": \"\"}, {\"name\":\"\\u2705\", \"color\": \"\"}]';\r\n public static defaultLookupValues = '[{\"name\":\"Item 1\",\"color\":\"color0\"},{\"name\":\"Item 2\",\"color\":\"\"}]';\r\n\r\n static getColumnTypes(betaTypes: boolean = false, hasRowMetadataSubscription: boolean = true) : ColumnType[] {\r\n let colTypes : ColumnType[] = [];\r\n this.pushColumnType(colTypes, ColumnStrongType.Text, ColumnTypeCategoryName.text, \"fal fa-align-justify\",1);\r\n this.pushColumnType(colTypes, ColumnStrongType.RichText, ColumnTypeCategoryName.text, \"fal fa-font\",2);\r\n this.pushColumnType(colTypes, ColumnStrongType.Email, ColumnTypeCategoryName.text, \"fal fa-envelope\",3);\r\n this.pushColumnType(colTypes, ColumnStrongType.Hyperlink, ColumnTypeCategoryName.text, \"fal fa-external-link\",4);\r\n this.pushColumnType(colTypes, ColumnStrongType.Comment, ColumnTypeCategoryName.text, \"fal fa-comment-alt-lines\",5);\r\n\r\n this.pushColumnType(colTypes, ColumnStrongType.Number, ColumnTypeCategoryName.number, \"fal fa-calculator\",10);\r\n this.pushColumnType(colTypes, ColumnStrongType.DecimalNumber, ColumnTypeCategoryName.number, \"fal fa-calculator\",11);\r\n this.pushColumnType(colTypes, ColumnStrongType.Percentage, ColumnTypeCategoryName.number, \"fal fa-percent\",12);\r\n this.pushColumnType(colTypes, ColumnStrongType.AutoNumber, ColumnTypeCategoryName.number, \"fal fa-calculator\", 13);\r\n\r\n this.pushColumnType(colTypes, ColumnStrongType.TwoStatesBoolean, ColumnTypeCategoryName.visual, \"fal fa-check-square\",20);\r\n this.pushColumnType(colTypes, ColumnStrongType.LookUp, ColumnTypeCategoryName.visual, \"fal fa-times\",21, null,\r\n i18n.t(\"ColumnType_ThreeStatesBoolean\").toString(), 4, ColumnTypes.defaultThreeStateBooleanLookupValues, \"?\");\r\n this.pushColumnType(colTypes, ColumnStrongType.LookUp, ColumnTypeCategoryName.visual, \"fal fa-star-half-alt\",22, null,\r\n i18n.t(\"ColumnType_Rating\").toString(), 3, ColumnTypes.defaultRatingLookupValues);\r\n\r\n this.pushColumnType(colTypes, ColumnStrongType.LookUp, ColumnTypeCategoryName.lookUp, \"far fa-ellipsis-v\", 30, null, null, 0, ColumnTypes.defaultLookupValues);\r\n this.pushColumnType(colTypes, ColumnStrongType.LookUpList, ColumnTypeCategoryName.lookUp, \"far fa-ellipsis-v\",31);\r\n this.pushColumnType(colTypes, ColumnStrongType.Relation, ColumnTypeCategoryName.lookUp, \"fal fa-link\", 32);\r\n\r\n this.pushColumnType(colTypes, ColumnStrongType.Date, ColumnTypeCategoryName.date, \"fal fa-calendar\",40);\r\n this.pushColumnType(colTypes, ColumnStrongType.DateTime, ColumnTypeCategoryName.date, \"fal fa-calendar\",41);\r\n this.pushColumnType(colTypes, ColumnStrongType.Reminder, ColumnTypeCategoryName.date, \"fal fa-bell\",42);\r\n this.pushColumnType(colTypes, ColumnStrongType.Time, ColumnTypeCategoryName.date, \"fal fa-clock\",43);\r\n\r\n this.pushColumnType(colTypes, ColumnStrongType.File, ColumnTypeCategoryName.media, \"fal fa-paperclip\",50);\r\n this.pushColumnType(colTypes, ColumnStrongType.Image, ColumnTypeCategoryName.media, \"fal fa-file-image\",51);\r\n\r\n this.pushColumnType(colTypes, ColumnStrongType.OwnerName, ColumnTypeCategoryName.row, \"fal fa-user\", 60);\r\n this.pushColumnType(colTypes, ColumnStrongType.OwnerEmail, ColumnTypeCategoryName.row, \"fal fa-user\", 61);\r\n this.pushColumnType(colTypes, ColumnStrongType.CreationDate, ColumnTypeCategoryName.row, \"fal fa-calendar\", 62, null, null, 0, null, null, hasRowMetadataSubscription);\r\n this.pushColumnType(colTypes, ColumnStrongType.CreatedByUserName, ColumnTypeCategoryName.row, \"fal fa-user\", 63, null, null, 0, null, null, hasRowMetadataSubscription);\r\n this.pushColumnType(colTypes, ColumnStrongType.LastWriteDate, ColumnTypeCategoryName.row, \"fal fa-calendar\", 64, null, null, 0, null, null, hasRowMetadataSubscription);\r\n this.pushColumnType(colTypes, ColumnStrongType.LastWriteUserName, ColumnTypeCategoryName.row, \"fal fa-user\", 65, null, null, 0, null, null, hasRowMetadataSubscription);\r\n this.pushColumnType(colTypes, ColumnStrongType.MemberManagerName, ColumnTypeCategoryName.row, \"fal fa-user\", 66, null, null, 0, null, null, hasRowMetadataSubscription);\r\n this.pushColumnType(colTypes, ColumnStrongType.RowIndex, ColumnTypeCategoryName.row, \"fal fa-list-ol\", 66, null, null, 0, null, null, hasRowMetadataSubscription);\r\n\r\n this.pushColumnType(colTypes, ColumnStrongType.Text, ColumnTypeCategoryName.formulas, \"fal fa-function\", 70,\r\n ColumnOptions.IsFormula, i18n.t(\"ColumnType_TextFormula\").toString(), 1);\r\n this.pushColumnType(colTypes, ColumnStrongType.DecimalNumber, ColumnTypeCategoryName.formulas, \"fal fa-function\", 71,\r\n ColumnOptions.IsFormula, i18n.t(\"ColumnType_NumericFormula\").toString(), 2);\r\n\r\n return colTypes;\r\n }\r\n\r\n static pushColumnType(types: ColumnType[], strongType: ColumnStrongType, category: ColumnTypeCategoryName, icon: string, sortOrder: number | null,\r\n options: ColumnOptions | null = null, displayName: string | null = null, aliasID: number = 0,\r\n values: string | null = null, defaultValue: string | null = null, hasRequiredSubscription: boolean = true) {\r\n if (!types)\r\n return;\r\n let type = new ColumnType();\r\n type.StrongType = strongType;\r\n if (displayName == null) {\r\n type.DisplayName = i18n.t(\"ColumnType_\" + strongType).toString();\r\n }\r\n else {\r\n type.DisplayName = displayName;\r\n }\r\n type.Category = category;\r\n type.SortOrder = sortOrder ?? 0;\r\n if (options != null) {\r\n type.Options |= options;\r\n }\r\n type.Icon = icon;\r\n type.aliasID = aliasID;\r\n if(values != null) {\r\n type.values = values;\r\n }\r\n if(defaultValue != null) {\r\n type.defaultValue = defaultValue;\r\n }\r\n type.HasRequiredSubscription = hasRequiredSubscription;\r\n types.push(type);\r\n }\r\n\r\n static getColumnTypeCategories(): ColumnTypeCategory[] {\r\n let categories: ColumnTypeCategory[] = [];\r\n\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.frequent, 0)\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.text, 1);\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.number, 2);\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.visual, 3);\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.lookUp, 4);\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.date, 5);\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.media, 6);\r\n\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.row, 7);\r\n this.pushColumnTypeCategory(categories, ColumnTypeCategoryName.formulas, 8);\r\n\r\n return categories;\r\n }\r\n \r\n\r\n\r\n static pushColumnTypeCategory(categories: ColumnTypeCategory[], name: string, sortOrder: number) {\r\n if (!categories)\r\n return;\r\n let cat = new ColumnTypeCategory();\r\n cat.Name = name;\r\n cat.DisplayName = i18n.t(\"ColumnTypeCategory_\" + name).toString();\r\n cat.SortOrder = sortOrder;\r\n\r\n categories.push(cat);\r\n }\r\n\r\n static getColumnTypesWithCategoriesSelectorItems(betaTypes: boolean = false): any[] {\r\n let result: any[] = [];\r\n\r\n ColumnTypes.getColumnTypeCategories().forEach(category => {\r\n if(category.Name != ColumnTypeCategoryName.formulas && category.Name != ColumnTypeCategoryName.frequent) {\r\n result.push({header: i18n.t(\"ColumnTypeCategory_\"+ category.Name).toString(), category: category.Name});\r\n ColumnTypes.getTypesForCategory(category.Name, true, betaTypes).forEach(type => {\r\n result.push({name: i18n.t(\"ColumnType_\" + type.StrongType).toString(),\r\n value: type.StrongType,\r\n group: type.Category });\r\n });\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n static getTypesForCategory(category: string, trueTypes: boolean = false, betaTypes: boolean = false): ColumnType[] {\r\n if(category == ColumnTypeCategoryName.frequent) {\r\n return ColumnTypes.getFrequentTypes(betaTypes);\r\n }\r\n return ColumnTypes.getColumnTypes(betaTypes).filter(type => type.Category == category && (trueTypes ? !type.aliasID : true));\r\n }\r\n\r\n static getFrequentTypes(betaTypes: boolean = false): ColumnType[] {\r\n return ColumnTypes.getColumnTypes(betaTypes).filter(type => type.isFrequent);\r\n }\r\n\r\n\r\n}","export class Culture{\r\n public Lcid!:number;\r\n public DisplayName!:string;\r\n public Name!:string;\r\n}","export class Currency {\r\n public Lcid !: number;\r\n public IsoName !: string;\r\n public Culture !: string;\r\n public EnglishName !: string;\r\n public NativeName !: string;\r\n public Symbol !: string;\r\n}","import { Organization } from './Organization';\r\n\r\nexport class DeleteAccountData {\r\n public CanDeleteAccount!: boolean;\r\n public OrgPreventingDeletion!: Array;\r\n public FreeOrgWithOtherAdmins!: Array;\r\n public PaidOrgWithOtherAdmins!: Array;\r\n public OwnOrgWithNoMember!: Organization;\r\n}","import { SecurityPrincipal } from \"./SecurityPrincipal\";\r\nimport { OwnerType } from \"./User\";\r\n\r\nexport class DropdownMember {\r\n constructor(s: SecurityPrincipal | Partial) {\r\n if (s instanceof SecurityPrincipal) {\r\n this.securityPrincipal = s;\r\n this.value = s.id;\r\n this.text = s.displayName;\r\n\r\n this.searchBy = s.displayName;\r\n if (s.ownerType == OwnerType.Member)\r\n this.searchBy += s.MemberEmail;\r\n } else {\r\n Object.assign(this, s);\r\n }\r\n\r\n }\r\n\r\n value!: string;\r\n text!: string;\r\n searchBy!: string;\r\n loading!: boolean;\r\n securityPrincipal: SecurityPrincipal | null = null;\r\n isNew: boolean = false;\r\n editable = false;\r\n\r\n get hasEmail(){\r\n return this.securityPrincipal?.ownerType == OwnerType.Member;\r\n }\r\n\r\n get email(){\r\n return this.securityPrincipal?.MemberEmail;\r\n }\r\n\r\n static isNewMember(member: any) {\r\n return member.isNew;\r\n }\r\n}\r\n","export class Hyperlink {\r\n url: string = \"\";\r\n displayName: string = \"\";\r\n\r\n constructor(link: string) {\r\n if (!link){\r\n return;\r\n }\r\n let values = link?.split('|');\r\n this.url = values[0];\r\n if(values.length > 1){\r\n this.displayName = values[1];\r\n }\r\n }\r\n}","import { Row } from \"./Row\";\r\n\r\nexport class ImportResult {\r\n public AddedRows!: Row[];\r\n public UpdatedRows!: Row[];\r\n}","import { User } from './User';\r\nexport class InviteLink {\r\n public Id!: string;\r\n public CreationDate!: Date;\r\n public ExpirationDate!: Date;\r\n public CreatedByUser!: User\r\n public OrganizationId!: string;\r\n}","export class ListCapabilities {\r\n rowMerge: boolean = false;\r\n}","import * as agGrid from 'ag-grid-community';\r\nimport { SettingNames, Settings } from \"@/utils/Settings\";\r\nimport ListDisplayModeVM from '@/viewModels/Table/listDisplayModeVM';\r\n\r\nexport class ListConfiguration {\r\n hiddenColumns!: string[];\r\n filters!: any;\r\n sortOrder!: agGrid.ColumnState[];\r\n viewId: string | null = null;\r\n sideBar!: SidebarConfiguration;\r\n collapsedColumnGroups: string[] = [];\r\n groups: rowGroupStatus[] = [];\r\n\r\n constructor() {\r\n this.sideBar = new SidebarConfiguration();\r\n }\r\n}\r\n\r\nexport class valueColumn {\r\n colId!: string;\r\n aggFunction!: string | agGrid.IAggFunc | null | undefined;\r\n}\r\n\r\nexport class SidebarConfiguration {\r\n rowGroupColumns!: string[];\r\n valueColumns!: valueColumn[];\r\n visibleToolPanelId!: string | undefined;\r\n}\r\n\r\nexport class rowGroupStatus {\r\n expanded!: boolean;\r\n key!: string;\r\n rowGroupColumnId!: string;\r\n}\r\n\r\nexport class ListSettings {\r\n configuration: ListConfiguration | null = null;\r\n\r\n public static loadListSettingsFromLocalStorage(listId: string): ListSettings {\r\n let settings = new ListSettings();\r\n settings.configuration = Settings.getJson(listId, SettingNames.configuration);\r\n return settings;\r\n }\r\n\r\n public static saveListSettingsToLocalStorage(listId: string, settings: ListSettings) {\r\n if(!listId) {\r\n return;\r\n }\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(listId);\r\n Object.assign(currentSettings, settings);\r\n\r\n Settings.setJson(listId, SettingNames.configuration, currentSettings?.configuration ?? null);\r\n }\r\n\r\n public static saveHiddenColumns(displayModeVM: ListDisplayModeVM) {\r\n const hiddenCols = displayModeVM.getHiddenColumnsIds();\r\n if(!hiddenCols || !displayModeVM.listVM.list || displayModeVM.listVM.specialRowsDisplayed) {\r\n return;\r\n }\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(displayModeVM.listVM.list.Id) ?? new ListSettings();\r\n if(!currentSettings.configuration) {\r\n currentSettings.configuration = new ListConfiguration();\r\n }\r\n currentSettings.configuration.hiddenColumns = [];\r\n\r\n hiddenCols.forEach(cId => currentSettings.configuration?.hiddenColumns.push(cId));\r\n\r\n ListSettings.saveListSettingsToLocalStorage(displayModeVM.listVM.list.Id, currentSettings);\r\n }\r\n\r\n public static saveGroups(listId: string, groupStatus: rowGroupStatus) {\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(listId) ?? new ListSettings();\r\n if (!currentSettings.configuration) {\r\n currentSettings.configuration = new ListConfiguration();\r\n }\r\n currentSettings.configuration.groups = currentSettings.configuration.groups ?? [];\r\n\r\n let existingGroup = currentSettings.configuration.groups.find(gs => gs.key === groupStatus.key);\r\n if (existingGroup) {\r\n existingGroup.rowGroupColumnId = groupStatus.rowGroupColumnId;\r\n existingGroup.expanded = groupStatus.expanded;\r\n } else {\r\n currentSettings.configuration.groups.push(groupStatus);\r\n }\r\n\r\n ListSettings.saveListSettingsToLocalStorage(listId, currentSettings);\r\n }\r\n\r\n public static saveCollapsedColumnGroups(displayModeVM: ListDisplayModeVM) {\r\n const collapsedColumnGroups = displayModeVM.getCollapsedColumnGroups();\r\n if(!collapsedColumnGroups || !displayModeVM.listVM.list || displayModeVM.listVM.specialRowsDisplayed) {\r\n return;\r\n }\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(displayModeVM.listVM.list.Id) ?? new ListSettings();\r\n if(!currentSettings.configuration) {\r\n currentSettings.configuration = new ListConfiguration();\r\n }\r\n currentSettings.configuration.collapsedColumnGroups = [];\r\n collapsedColumnGroups.forEach(ccg => currentSettings.configuration?.collapsedColumnGroups.push(ccg));\r\n\r\n ListSettings.saveListSettingsToLocalStorage(displayModeVM.listVM.list.Id, currentSettings);\r\n }\r\n\r\n public static saveFilters(displayModeVM: ListDisplayModeVM) {\r\n if(!displayModeVM || !displayModeVM.listVM.list || displayModeVM.printMode || displayModeVM.displayedRowIds != null || displayModeVM.listVM.specialRowsDisplayed) {\r\n return;\r\n }\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(displayModeVM.listVM.list.Id);\r\n if(!currentSettings.configuration)\r\n currentSettings.configuration = new ListConfiguration();\r\n\r\n currentSettings.configuration.filters = displayModeVM.getCurrentFilters();\r\n\r\n ListSettings.saveListSettingsToLocalStorage(displayModeVM.listVM.list.Id, currentSettings);\r\n }\r\n\r\n public static saveSortOrder(displayModeVM: ListDisplayModeVM) {\r\n if(!displayModeVM || !displayModeVM.listVM.list || displayModeVM.printMode || displayModeVM.listVM.specialRowsDisplayed) {\r\n return;\r\n }\r\n\r\n const sortOrder = displayModeVM.getCurrentSort();\r\n if(!sortOrder)\r\n return;\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(displayModeVM.listVM.list.Id);\r\n if(!currentSettings.configuration)\r\n currentSettings.configuration = new ListConfiguration();\r\n\r\n currentSettings.configuration.sortOrder = sortOrder;\r\n\r\n ListSettings.saveListSettingsToLocalStorage(displayModeVM.listVM.list.Id, currentSettings);\r\n }\r\n\r\n public static saveRowGroupColumns(displayModeVM: ListDisplayModeVM) {\r\n if(!displayModeVM || !displayModeVM.listVM.list || displayModeVM.printMode || displayModeVM.listVM.specialRowsDisplayed) {\r\n return;\r\n }\r\n\r\n const rowGroupColumns = displayModeVM.getRowGroupColumnsIds();\r\n if(!rowGroupColumns) {\r\n return;\r\n }\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(displayModeVM.listVM.list.Id);\r\n if(!currentSettings.configuration) {\r\n currentSettings.configuration = new ListConfiguration();\r\n }\r\n if(!currentSettings.configuration.sideBar) {\r\n currentSettings.configuration.sideBar = new SidebarConfiguration();\r\n }\r\n\r\n currentSettings.configuration.sideBar.rowGroupColumns = rowGroupColumns;\r\n ListSettings.saveListSettingsToLocalStorage(displayModeVM.listVM.list.Id, currentSettings);\r\n }\r\n\r\n public static saveValueColumns(displayModeVM: ListDisplayModeVM) {\r\n if(!displayModeVM || !displayModeVM.listVM.list || displayModeVM.printMode || displayModeVM.listVM.specialRowsDisplayed) {\r\n return;\r\n }\r\n\r\n const valueColumns = displayModeVM.getValueColumns();\r\n if(!valueColumns) {\r\n return;\r\n }\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(displayModeVM.listVM.list.Id);\r\n if(!currentSettings.configuration) {\r\n currentSettings.configuration = new ListConfiguration();\r\n }\r\n if(!currentSettings.configuration.sideBar) {\r\n currentSettings.configuration.sideBar = new SidebarConfiguration();\r\n }\r\n\r\n // Utiliser l'api setColumnAggFunc de l'api column d'aggrid\r\n currentSettings.configuration.sideBar.valueColumns = valueColumns;\r\n ListSettings.saveListSettingsToLocalStorage(displayModeVM.listVM.list.Id, currentSettings);\r\n }\r\n\r\n public static saveToolPanelsStatus(displayModeVM: ListDisplayModeVM) {\r\n if(!displayModeVM || !displayModeVM.listVM.list || displayModeVM.printMode || displayModeVM.listVM.specialRowsDisplayed) {\r\n return;\r\n }\r\n\r\n const visibleToolPanel = displayModeVM.getVisibleToolPanelId();\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(displayModeVM.listVM.list.Id);\r\n if(!currentSettings.configuration) {\r\n currentSettings.configuration = new ListConfiguration();\r\n }\r\n\r\n if(!currentSettings.configuration.sideBar) {\r\n currentSettings.configuration.sideBar = new SidebarConfiguration();\r\n }\r\n\r\n currentSettings.configuration.sideBar.visibleToolPanelId = visibleToolPanel;\r\n ListSettings.saveListSettingsToLocalStorage(displayModeVM.listVM.list.Id, currentSettings);\r\n }\r\n}","import { FolderAccessMode } from './Folder';\r\n\r\nexport class ListTree {\r\n public Organizations!: ListTreeOrganization[];\r\n}\r\n\r\nexport class ListTreeOrganization {\r\n public Id!: string;\r\n public Name!: string;\r\n public IsDefault!: boolean;\r\n public Path!: string;\r\n public RootFolder!: ListTreeFolder;\r\n public IconPath!: string;\r\n public FullSiteLogoPath!: string;\r\n public SmallSiteLogoPath!: string;\r\n public Favorites!:ListThumbnailInfo[];\r\n public Recents!:ListThumbnailInfo[];\r\n public InTrial!:boolean;\r\n public CanCurrentUserManage!:boolean;\r\n public IsEnabled!:boolean;\r\n public SubscriptionCleanDeletedRowsDelay!: number;\r\n public HasArchiveRows!: boolean;\r\n public HasLockRows!: boolean;\r\n public HasRowMerge!: boolean;\r\n public HasRowMetadatas!: boolean;\r\n public IsFree!: boolean;\r\n public HasRowShareSupportActivated!: boolean;\r\n public HasAudit!: boolean;\r\n public HasRtcHistory!: boolean;\r\n}\r\n\r\nexport class ListTreeFolder {\r\n public Id!: string;\r\n public ParentId!: string;\r\n public Name!: string;\r\n public Path!: string;\r\n public CanCurrentUserBrowseContent!: boolean;\r\n public CanCurrentUserCreateList!: boolean;\r\n public CanCurrentUserCreateFolder!: boolean;\r\n public CanCurrentUserManageAccesses!: boolean;\r\n public AccessMode!: FolderAccessMode;\r\n public HasRemainingListSlot!: boolean;\r\n public Folders!: ListTreeFolder[];\r\n public Lists!: ListThumbnailInfo[];\r\n public IsRecycleBin!:boolean;\r\n public IsInRecycleBin!:boolean;\r\n public CanCurrentUserRenameFolder!:boolean;\r\n public CanCurrentUserDeleteFolder!:boolean;\r\n public TotalListCount!:number;\r\n}\r\n\r\nexport class ListThumbnailInfo {\r\n public Id!: string;\r\n public Name!: string;\r\n public Path!: string;\r\n public IconPath!: string;\r\n public OwnersNicknames!:string[];\r\n public Owned!:boolean;\r\n public LoadedByReadOnlyMember!:boolean;\r\n public IsInRecycleBin!:boolean;\r\n public LastVisited!:Date;\r\n public HumanReadableLastUpdateDate!: string;\r\n public LastUpdateDateSortOrder !: number;\r\n public IsReferenced!: boolean;\r\n}\r\n\r\nexport class BreadcrumbFolder {\r\n public Id!: string;\r\n public Name!: string;\r\n public IsRootFolder!: boolean;\r\n public IsTag: boolean = false;\r\n}\r\n","export class Organization {\r\n public Id!: string;\r\n public RootFolderId!: string;\r\n public Name!: string;\r\n public IconPath!: string | null;\r\n public FullSiteLogoPath!: string | null;\r\n public SmallSiteLogoPath!: string | null;\r\n public GroupCount?: number;\r\n public MemberCount!: number;\r\n public ActiveMemberCount!: number;\r\n public ReadonlyMemberCount!: number;\r\n public SupportMemberCount!: number;\r\n public DisabledRegularMemberCount!: number;\r\n public DisabledReadonlyMemberCount!: number;\r\n public MaximumMemberCount!: number;\r\n public ListCount!: number;\r\n public MaximumListCount!: number;\r\n public MetaData!: string;\r\n public AllowPublic!: boolean;\r\n //public AllowEmailAccess: AllowEmailAccessOptions;\r\n public IsDefault?: boolean;\r\n public CanCurrentUserManage!: boolean;\r\n public InTrial!: boolean;\r\n public CurrencyISOCode!: string;\r\n public SubscriptionIsFree!: boolean;\r\n public SubscriptionEnabled!: boolean;\r\n public CreationDateTimeUtc!: Date;\r\n public Logo_Remove!:boolean;\r\n public ManagerEquivalence!:boolean;\r\n public CanShowSubscriptionInfos!:boolean;\r\n public CanShowFreePlanInfos!:boolean;\r\n public IsCurrentUserAdministrator!:boolean; \r\n public SubscriptionCurrentTermEndDateUtc!:Date;\r\n public CanShowChargebeePortal!:boolean;\r\n public CannotChangePlanAlone!:boolean;\r\n public CanAddMember!:boolean;\r\n public SubscriptionCleanDeletedRowsDelay!: number;\r\n public SubscriptionHasArchiveRows!: boolean;\r\n public SubscriptionLastUpdateDateTime!: Date;\r\n public AuditConservationInDays!: number;\r\n public SubscriptionHasAdvancedPermissions!: boolean;\r\n public SubscriptionHasLockRows!: boolean;\r\n public SubscriptionHasRowMetadatas!: boolean;\r\n public SubscriptionHasRowMerge!: boolean;\r\n public SubscriptionHasPermissionsAudit!: boolean;\r\n public SubscriptionFixedReadOnlyUsersQuantity!: number;\r\n public SubscriptionHasColumnPermissions!: boolean;\r\n public SubscriptionHasRTCHistory!: boolean;\r\n}\r\n\r\nexport class AddOrganization {\r\n public Name!:string;\r\n public Members!:string;\r\n public MembersArray!:[];\r\n public PhoneNumber!: string;\r\n public CompanyName!: string;\r\n public WhyRowShareAnswer!: string;\r\n public UserCount!: string;\r\n public First!: boolean;\r\n}\r\n","import { Utils } from \"@/utils/Utilities\";\r\nimport { Column } from \"./Column\";\r\n\r\nexport class PostedFile {\r\n public column!: Column;\r\n public data!: File | Blob | null | any;\r\n public fileName!: string;\r\n\r\n constructor(column: Column, data: File | Blob | null | any) {\r\n this.column = column;\r\n this.data = data;\r\n }\r\n\r\n public appendToFormData(formData: FormData) {\r\n if (Utils.isNullOrUndefined(this.data)) {\r\n return;\r\n }\r\n\r\n if (Array.isArray(this.data) || this.data instanceof FileList) {\r\n for (let i = 0; i < this.data.length; i++) {\r\n const f = this.data[i];\r\n formData.append(this.column.Name, f);\r\n }\r\n } else {\r\n formData.append(this.column.Name, this.data, this.getFileName());\r\n }\r\n }\r\n\r\n public get hasData() {\r\n return !!this.data;\r\n }\r\n\r\n public getFileName() {\r\n if (this.fileName) {\r\n return this.fileName;\r\n }\r\n\r\n if (this.data instanceof File) {\r\n return this.data.name;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n}","import { DataStatus } from '@/models/Enums';\r\n\r\nexport class Row {\r\n public InsertBeforeRowId!: string;\r\n public MoveLast!: boolean;\r\n public Id!: string;\r\n public ListId!: string;\r\n public Index!: number;\r\n public CanUpdate!: boolean;\r\n public CanSuppress!: boolean;\r\n public CanAssign!: boolean;\r\n public CreatedDateUtc!: string;\r\n public ModifiedDateUtc!: string;\r\n public Owner!: RowOwner;\r\n public Version!: string;\r\n public DescriptorFormattedValue!: string;\r\n public Values!: any;\r\n public Owned!: boolean;\r\n public OwnerId!: string;\r\n public OwnerIdType!: OwnerIdType;\r\n public OwnerBackgroundColorIndex!: number;\r\n public IsAnonymousSurveyAnswer!: boolean;\r\n public ModifiedByNickName!: string;\r\n public ModifiedByEmail!: string;\r\n public CreatedByNickName!: string;\r\n public CreatedByEmail!: string;\r\n public OwnerManagerEmail!: string;\r\n public OwnerManagerName!: string;\r\n public OwnerHasAccessToList!: boolean;\r\n public ParentRows!: RelatedRow[];\r\n public ChildRows!: RelatedRow[];\r\n public Status!: DataStatus;\r\n public StatusDateUtc!: string;\r\n public StatusChangeByUserName!: string;\r\n public IsParentRow!: boolean;\r\n public RtcConnectionId!: string | null;\r\n\r\n public get HasRelatedRows() :boolean {\r\n return (this.ParentRows?.length ?? 0) > 0;\r\n }\r\n}\r\n\r\n// export class ClonedRowResult {\r\n// public RowId!: string;\r\n// public ClonedRow!: Row;\r\n// }\r\n\r\nexport const surveyUserEmail = \"survey@rowshare.com\";\r\n\r\nexport class RowOwner {\r\n public BackgroundColorIndex!: number;\r\n public Bigram!: string;\r\n public Name!: string;\r\n public Type!: number;\r\n public Email!: string;\r\n public DisplayName!: string;\r\n}\r\n\r\nexport const enum OwnerIdType {\r\n Unspecified = 0,\r\n User = 1,\r\n Group = 2,\r\n DirectTeam = 3,\r\n ExtendedTeam = 4\r\n}\r\n\r\nexport class Comment {\r\n public CommentCount!: number;\r\n}\r\n\r\nexport class CommentDetails {\r\n public Id!: string;\r\n public Content!: string;\r\n public CreatedDate!: Date;\r\n public Owner!: RowOwner;\r\n public Owned!: boolean;\r\n public CreatedSince!: string;\r\n public RtcConnectionId!: string | null;\r\n}\r\n\r\nexport class File {\r\n public ContentType!: string;\r\n public FileName!: string;\r\n public ImageUrl!: string;\r\n public AbsoluteFileUrl!: string;\r\n public Size!: number;\r\n public LastWriteTimeUtc!: string;\r\n}\r\n\r\nexport class RelatedRow {\r\n public Id!: string;\r\n public ChildRowId!: string;\r\n public ParentRowId!: string;\r\n public RelationColumnId!: string;\r\n}","export class SubscriptionLimit {\r\n public LimitType!: SubscriptionLimitType;\r\n public MaxValue!: number;\r\n public CurrentValue!: number;\r\n public Name!: string;\r\n public ObjectId!: string;\r\n public IsInRecycleBin!: boolean;\r\n public Exceeded!: boolean;\r\n}\r\n\r\nexport enum SubscriptionLimitType\r\n{\r\n User,\r\n Table,\r\n Row,\r\n Storage,\r\n ReadOnlyUser\r\n}","\r\nexport const enum UserListLinkTypes {\r\n Unspecified = 0,\r\n Favorite = 1,\r\n Visited = 2,\r\n AllRowsEmailNotifications = 4,\r\n OwnedRowsEmailNotifications = 8,\r\n NoEmailNotifications = 16,\r\n}\r\n\r\nexport class UserListLink {\r\n ListId!: string;\r\n Types!: UserListLinkTypes;\r\n\r\n public get isFavorite() {\r\n return (this.Types & UserListLinkTypes.Favorite) === UserListLinkTypes.Favorite;\r\n }\r\n\r\n public get isVisited() {\r\n return (this.Types & UserListLinkTypes.Visited) === UserListLinkTypes.Visited;\r\n }\r\n\r\n public get isAllRowsEmailNotifications() {\r\n return (this.Types & UserListLinkTypes.AllRowsEmailNotifications) === UserListLinkTypes.AllRowsEmailNotifications;\r\n }\r\n\r\n public get isOwnedRowsEmailNotifications() {\r\n return (this.Types & UserListLinkTypes.OwnedRowsEmailNotifications) === UserListLinkTypes.OwnedRowsEmailNotifications;\r\n }\r\n\r\n public get isNoEmailNotifications() {\r\n return !this.isAllRowsEmailNotifications && !this.isOwnedRowsEmailNotifications;\r\n }\r\n\r\n}","import i18n from \"@/modules/Localization\";\r\nimport * as Models from \"@/models/RowShare\";\r\n\r\nexport class ColumnAccess {\r\n Id!: string;\r\n TeamGrant!: TeamType;\r\n GroupId!: string;\r\n GroupName!: string;\r\n MemberEmail!: string;\r\n MemberOrganizationId!: string;\r\n MemberName!: string;\r\n ColumnId!: string;\r\n Guest!: Models.Owner;\r\n IsMyOrganization!: boolean;\r\n Access!: ColumnAccessLevel;\r\n \r\n public get principal() {\r\n const principal = new Models.SecurityPrincipal();\r\n principal.GroupId = this.GroupId;\r\n principal.GroupName = this.GroupName;\r\n principal.MemberEmail = this.MemberEmail;\r\n principal.MemberOrganizationId = this.MemberOrganizationId;\r\n principal.MemberName = this.MemberName;\r\n if(this.TeamGrant == Models.TeamType.Direct) {\r\n principal.Options = Models.AccessOptions.ManagedOfMember;\r\n }\r\n else if(this.TeamGrant == Models.TeamType.Extended) {\r\n principal.Options = principal.Options | Models.AccessOptions.Recursive | Models.AccessOptions.ManagedOfMember;\r\n }\r\n return principal;\r\n }\r\n\r\n public set principal(value: Models.SecurityPrincipal) {\r\n this.GroupId = value.GroupId;\r\n this.GroupName = value.GroupName;\r\n this.MemberEmail = value.MemberEmail;\r\n this.MemberOrganizationId = value.MemberOrganizationId;\r\n this.MemberName = value.MemberName;\r\n if((value.Options & Models.AccessOptions.ManagedOfMember) === Models.AccessOptions.ManagedOfMember) {\r\n \r\n this.TeamGrant = Models.TeamType.Direct;\r\n if((value.Options & Models.AccessOptions.Recursive) === Models.AccessOptions.Recursive) {\r\n this.TeamGrant = Models.TeamType.Extended;\r\n }\r\n }\r\n }\r\n\r\n public get Options(): Models.AccessOptions {\r\n if(this.TeamGrant == Models.TeamType.Direct) {\r\n return Models.AccessOptions.ManagedOfMember;\r\n }\r\n else if(this.TeamGrant == Models.TeamType.Extended) {\r\n return Models.AccessOptions.Recursive;\r\n }\r\n return Models.AccessOptions.None;\r\n }\r\n\r\n public static getNew(listOfAccesses: ColumnAccess[], securityPrincipal: Models.SecurityPrincipal, columnId: string, access: ColumnAccessLevel) {\r\n let newListAccess = new ColumnAccess();\r\n let accessId = newListAccess.existsAccess(listOfAccesses, securityPrincipal.GroupId, securityPrincipal.MemberEmail,\r\n securityPrincipal.MemberOrganizationId, securityPrincipal.Options);\r\n if (accessId != null) {\r\n newListAccess.Id = accessId;\r\n }\r\n newListAccess.principal = securityPrincipal;\r\n newListAccess.ColumnId = columnId;\r\n newListAccess.Access = access;\r\n newListAccess.IsMyOrganization = securityPrincipal.IsMyOrganization;\r\n return newListAccess;\r\n }\r\n\r\n public static getNewDefault(columnId: string) {\r\n let newListAccess = new ColumnAccess();\r\n newListAccess.Access = ColumnAccessLevel.RowAccess;\r\n newListAccess.ColumnId = columnId;\r\n return newListAccess;\r\n }\r\n\r\n existsAccess(listOfAccesses: Models.ColumnAccess[], groupId: string | undefined, memberEmail: string | undefined, \r\n memberOrganizationId: string | undefined, accessOptions: Models.AccessOptions) {\r\n let accessId = null;\r\n if (groupId != null) {\r\n let elem = listOfAccesses.find(ac => ac.GroupId == groupId);\r\n if (elem) {\r\n accessId = elem.Id\r\n }\r\n }\r\n if (memberEmail != null && memberOrganizationId != null) {\r\n let elem = listOfAccesses.find(ac => ac.MemberEmail == memberEmail && ac.MemberOrganizationId == memberOrganizationId && ac.Options == accessOptions);\r\n if (elem) {\r\n accessId = elem.Id;\r\n }\r\n }\r\n return accessId;\r\n }\r\n}\r\n\r\n// To keep synchronized with BackEnd\r\nexport enum ColumnAccessLevel {\r\n Hidden = 0,\r\n ReadOnly = 1,\r\n RowAccess = 2,\r\n}\r\n\r\n// To keep synchronized with BackEnd\r\nexport enum TeamType\r\n{\r\n None = 0,\r\n Direct = 1,\r\n Extended = 2,\r\n}\r\n\r\nexport class ColumnAccessesToSave {\r\n public columnId!: string;\r\n public newAccesses!: ColumnAccess[];\r\n public updatedAccesses!: ColumnAccess[];\r\n public deletedAccesses!: ColumnAccess[];\r\n\r\n constructor() {\r\n this.newAccesses = [];\r\n this.updatedAccesses = [];\r\n this.deletedAccesses = [];\r\n }\r\n}\r\n","import {IToolPanelParams} from \"ag-grid-community\";\r\nimport i18n from \"@/modules/Localization\";\r\n\r\nexport interface RealTimeCollaborationEntity {\r\n connectionId: string;\r\n connectionDate: string;\r\n eventType: string;\r\n methodToInvoke: string;\r\n groupId: string;\r\n authorName: string;\r\n authorEmail: string;\r\n bigram: string;\r\n backgroundColorIndex: number;\r\n data: Record;\r\n // coWorkers: RealTimeCollaborationEntity[];\r\n // editingCells: EditingCell[];\r\n}\r\n\r\nexport function computeConcernedEventsForUer(exceptions: RealTimeCollaborationEventType[]): RealTimeCollaborationEventType[] {\r\n let events: RealTimeCollaborationEventType[] = [\r\n RealTimeCollaborationEventType.Subscribe,\r\n RealTimeCollaborationEventType.UnSubscribe,\r\n RealTimeCollaborationEventType.RowCreate,\r\n RealTimeCollaborationEventType.RowDelete,\r\n RealTimeCollaborationEventType.RowCellUpdate,\r\n RealTimeCollaborationEventType.RowLock,\r\n RealTimeCollaborationEventType.RowUnlock,\r\n RealTimeCollaborationEventType.RowCellLock,\r\n RealTimeCollaborationEventType.RowCellUnlock,\r\n RealTimeCollaborationEventType.RowArchive,\r\n RealTimeCollaborationEventType.RowUnarchive,\r\n RealTimeCollaborationEventType.RowSave,\r\n RealTimeCollaborationEventType.RowSaveComment,\r\n RealTimeCollaborationEventType.RowDeleteComment,\r\n RealTimeCollaborationEventType.RowSaveBlob,\r\n RealTimeCollaborationEventType.RowDeleteBlob,\r\n RealTimeCollaborationEventType.ColumnSave,\r\n RealTimeCollaborationEventType.ColumnCreate,\r\n RealTimeCollaborationEventType.ColumnClone,\r\n RealTimeCollaborationEventType.ColumnDelete,\r\n RealTimeCollaborationEventType.ListDelete,\r\n ];\r\n\r\n for (const exception of exceptions) {\r\n events = events.filter(e => e !== exception) ?? [];\r\n }\r\n\r\n return events;\r\n}\r\n\r\nexport interface RTCHistory {\r\n connectionId: string;\r\n connectionDate: string;\r\n eventType: string;\r\n methodToInvoke: string;\r\n groupId: string;\r\n authorName: string;\r\n bigram: string;\r\n backgroundColorIndex: number;\r\n data: Record;\r\n // coWorkers: RealTimeCollaborationEntity[];\r\n // editingCells: EditingCell[];\r\n}\r\n\r\nexport interface RealTimeCollaborationEntity {\r\n connectionId: string;\r\n connectionDate: string;\r\n eventType: string;\r\n methodToInvoke: string;\r\n groupId: string;\r\n authorName: string;\r\n authorEmail: string;\r\n bigram: string;\r\n backgroundColorIndex: number;\r\n data: Record;\r\n // coWorkers: RealTimeCollaborationEntity[];\r\n // editingCells: EditingCell[];\r\n}\r\n\r\nexport enum RealTimeCollaborationEventType {\r\n Subscribe = \"Subscribe\",\r\n UnSubscribe = \"UnSubscribe\",\r\n\r\n RowCreate = \"RowCreate\",\r\n RowDelete = \"RowDelete\",\r\n RowCellUpdate = \"RowCellUpdate\",\r\n RowLock = \"RowLock\",\r\n RowCellLock = \"RowCellLock\",\r\n RowUnlock = \"RowUnlock\",\r\n RowCellUnlock = \"RowCellUnlock\",\r\n RowArchive = \"RowArchive\",\r\n RowUnarchive = \"RowUnarchive\",\r\n\r\n RowSave = \"RowSave\",\r\n RowSaveBlob = \"RowSaveBlob\",\r\n RowDeleteBlob = \"RowDeleteBlob\",\r\n\r\n RowSaveComment = \"RowSaveComment\",\r\n RowDeleteComment = \"RowDeleteComment\",\r\n\r\n ColumnDelete = \"ColumnDelete\",\r\n ColumnCreate = \"ColumnCreate\",\r\n ColumnSave = \"ColumnSave\",\r\n ColumnClone = \"ColumnClone\",\r\n\r\n ListDelete = \"ListDelete\"\r\n}\r\n\r\nexport class EditingCell {\r\n connectionId!: string;\r\n rowId!: string;\r\n columnId!: string;\r\n backgroundColorIndex!: string;\r\n}\r\n\r\nexport class RtcHistoryItem {\r\n entity!: RealTimeCollaborationEntity;\r\n status!: string;\r\n formattedDate!: string;\r\n date!: Date;\r\n rowId!: string;\r\n panelParams!: IToolPanelParams\r\n columnId!: string;\r\n\r\n constructor(entity: RealTimeCollaborationEntity) {\r\n this.entity = entity; // rtcUser\r\n this.status = this.formatStatus();\r\n this.rowId = this.getFromRecord('rowId', entity.data);\r\n this.columnId = this.getFromRecord('columnId', entity.data);\r\n const dateObject = new Date(entity.data['date']);\r\n const hours = dateObject.getHours().toString().padStart(2, \"0\");\r\n const minutes = dateObject.getMinutes().toString().padStart(2, \"0\");\r\n this.formattedDate = `${hours}:${minutes}`\r\n this.date = dateObject;\r\n }\r\n\r\n formatStatus(): string {\r\n let colName : string = this.getFromRecord(\"displayName\", this.entity.data);\r\n let rowName : string = this.getFromRecord(\"displayName\", this.entity.data);\r\n switch (this.entity.eventType) {\r\n case RealTimeCollaborationEventType.RowCreate:\r\n return i18n.t(\"RtcHistory_Row_Created_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowDelete:\r\n return i18n.t(\"RtcHistory_Row_Deleted_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowCellUpdate:\r\n return i18n.t(\"RtcHistory_Row_Updated_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowSaveBlob:\r\n return i18n.t(\"RtcHistory_Row_SaveBlob_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowDeleteBlob:\r\n return i18n.t(\"RtcHistory_Row_DeleteBlob_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowSaveComment:\r\n return i18n.t(\"RtcHistory_Row_SaveComment_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowDeleteComment:\r\n return i18n.t(\"RtcHistory_Row_DeleteComment_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowLock:\r\n return i18n.t(\"RtcHistory_Row_Locked_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowUnlock:\r\n return i18n.t(\"RtcHistory_Row_Unlocked_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowArchive:\r\n return i18n.t(\"RtcHistory_Row_Archive_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.RowUnarchive:\r\n return i18n.t(\"RtcHistory_Row_Unarchive_Status\", [this.descriptor()]).toString();\r\n case RealTimeCollaborationEventType.ColumnDelete:\r\n return i18n.t('RtcHistory_Column_Deleted_Status', [colName]).toString();\r\n case RealTimeCollaborationEventType.ColumnCreate:\r\n return i18n.t('RtcHistory_Column_Created_Status', [colName]).toString();\r\n case RealTimeCollaborationEventType.ColumnSave:\r\n return i18n.t('RtcHistory_Column_Updated_Status', [colName]).toString();\r\n case RealTimeCollaborationEventType.ColumnClone:\r\n return i18n.t('RtcHistory_Column_Cloned_Status', [colName]).toString();\r\n case RealTimeCollaborationEventType.ListDelete:\r\n return 'List Deleted';\r\n case RealTimeCollaborationEventType.Subscribe:\r\n return 'Join edition';\r\n case RealTimeCollaborationEventType.UnSubscribe:\r\n return 'Leave edition';\r\n default:\r\n console.log(this.entity);\r\n return 'Unknown Event';\r\n }\r\n }\r\n\r\n getFromRecord(key: string, data: Record): string {\r\n return key in data ? data[key] : '';\r\n }\r\n\r\n allowGoToLink(): boolean {\r\n return this.entity.eventType === RealTimeCollaborationEventType.RowSave\r\n //||this.entity.eventType === RealTimeCollaborationEventType.RowCreate\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowSaveBlob\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowDeleteBlob\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowSaveComment\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowDeleteComment\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowCellUpdate\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowUnarchive\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowLock\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowUnlock\r\n }\r\n\r\n scrollTo() {\r\n if (this.entity.eventType === RealTimeCollaborationEventType.RowLock\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowUnlock\r\n || this.entity.eventType === RealTimeCollaborationEventType.RowUnarchive\r\n ) {\r\n this.scrollAndFlashRow();\r\n return;\r\n }\r\n this.scrollAndFlashCell();\r\n }\r\n\r\n\r\n scrollAndFlashRow() {\r\n if (!this.rowId) {\r\n return;\r\n }\r\n const rowNode = this.panelParams.api.getRowNode(this.rowId);\r\n const rowIndex = rowNode?.rowIndex ?? -1;\r\n console.log(rowIndex, \"##\", rowNode);\r\n if (rowIndex < 0 || !rowNode) {\r\n return;\r\n }\r\n console.log(rowIndex, \"**\", rowNode);\r\n this.panelParams.api.ensureIndexVisible(rowIndex, \"middle\");\r\n this.panelParams.api?.flashCells({\r\n rowNodes: [rowNode],\r\n flashDelay: 1000,\r\n fadeDelay: 100,\r\n });\r\n }\r\n\r\n scrollAndFlashCell(){\r\n if (!this.columnId && !this.rowId) {\r\n return\r\n }\r\n const rowNode = this.panelParams.api.getRowNode(this.rowId);\r\n const rowIndex = rowNode?.rowIndex ?? -1;\r\n if (rowIndex < 0 || !rowNode) {\r\n return;\r\n }\r\n this.panelParams.api.ensureIndexVisible(rowIndex, \"middle\");\r\n this.panelParams.api.ensureColumnVisible(this.columnId, \"middle\");\r\n this.panelParams.api?.flashCells({\r\n rowNodes: [rowNode],\r\n columns: [this.columnId],\r\n flashDelay: 1000,\r\n fadeDelay: 100,\r\n });\r\n }\r\n\r\n descriptor(): string {\r\n return this.getFromRecord(\"descriptorFormattedValue\", this.entity.data);\r\n }\r\n\r\n static isSupportedEvent(entity: RealTimeCollaborationEntity): boolean {\r\n switch (entity.eventType) {\r\n case RealTimeCollaborationEventType.RowCellLock:\r\n case RealTimeCollaborationEventType.RowCellUnlock:\r\n case RealTimeCollaborationEventType.RowSave:\r\n return false;\r\n }\r\n return true;\r\n }\r\n}","import { Utils } from \"@/utils/Utilities\"\r\nimport { Logger } from \"@/utils/Logger\"\r\nimport { ApiError, PostedFile } from \"@/models/RowShare\";\r\nimport i18n from \"@/modules/Localization\";\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\nfunction endsWith(originalString : string, suffix: string) {\r\n return originalString.indexOf(suffix, originalString.length - suffix.length) !== -1;\r\n};\r\n\r\nclass Cache {\r\n private dictionary: any = {};\r\n\r\n public set(key: string, value: any) {\r\n this.dictionary[key] = value;\r\n }\r\n\r\n public get(key: string): any {\r\n return this.dictionary[key];\r\n }\r\n\r\n public containsKey(key: string): boolean {\r\n return this.dictionary.hasOwnProperty(key);\r\n }\r\n\r\n public clear() {\r\n this.dictionary = {};\r\n }\r\n}\r\n\r\nexport interface HttpRowShareValidationError {\r\n Column: string;\r\n Message: string;\r\n}\r\n\r\nexport interface HttpRowShareException {\r\n IsJsonExceptionObject: boolean;\r\n Exception?: HttpRowShareExceptionDetails;\r\n Code: number;\r\n Message: string;\r\n FullMessage?: string;\r\n ValidationErrors?: HttpRowShareValidationError[];\r\n}\r\n\r\nexport interface HttpRowShareExceptionDetails {\r\n ClassName: string;\r\n Message: string;\r\n Data: any;\r\n InnerException: RowShareException;\r\n HelpUrl: string;\r\n StackTraceString: string;\r\n RemoteStackTraceString: string;\r\n RemoteStackIndex: number;\r\n ExceptionMethod: string;\r\n HResult: number;\r\n Source: string;\r\n WatsonBuckets: any;\r\n Code: number;\r\n \"__type\": string;\r\n}\r\n\r\nexport const enum ExceptionCode {\r\n Ok = 0,\r\n GroupCannotBeDeleted = 1,\r\n FolderCannotBeDeleted = 2,\r\n UserDoesNotOwnFolder = 3,\r\n UserDoesNotOwnList = 4,\r\n FolderOrListAlreadyExists = 5,\r\n UnhandledImportFileType = 6,\r\n NothingToImport = 7,\r\n InvalidImportFile = 8,\r\n UserDoesNotOwnObject = 9,\r\n InternalError = 10,\r\n FolderHasNoList = 11,\r\n UserDoesNotHaveAccessToObject = 12,\r\n Unauthorized = 13,\r\n InvalidParentFolder = 14,\r\n InvalidSinkType = 15,\r\n RowHasNoList = 16,\r\n InvalidRowValuesCount = 17,\r\n RowConflict = 18,\r\n RowDoesNotExist = 19,\r\n InvalidColumnName = 20,\r\n ColumnAlreadyExists = 21,\r\n ReportHasAssociatedJobs = 22,\r\n ReportCodeError = 23,\r\n UnsupportedReportType = 24,\r\n TemplateRunError = 25,\r\n TemplateGenerationError = 26,\r\n InvalidEmail = 27,\r\n InvalidRowValues = 28,\r\n SsbElementDoesNotExist = 29,\r\n ServiceInstancingError = 30,\r\n ServiceInterfaceError = 31,\r\n TemplateGenerationInternalError = 32,\r\n FailedToEncryptTicket = 33,\r\n TemplateGenerationInvalidUser = 34,\r\n TemplateGenerationInvalidList = 35,\r\n TemplateGenerationInvalidAccessDenied = 36,\r\n TemplateGenerationInvalidInvalidReport = 37,\r\n TemplateGenerationInvalidInvalidReportTemplate = 38,\r\n MaximumRowsExceededForUser = 39,\r\n ScriptModelFileIsClosed = 40,\r\n TransmitFileError = 41,\r\n DeserializationError1 = 42,\r\n DeserializationError2 = 43,\r\n DeserializationError3 = 44,\r\n DeserializationError4 = 45,\r\n DeserializationError5 = 46,\r\n DeserializationError6 = 47,\r\n InvalidPassword = 48,\r\n LastColumnCannotBeDeleted = 49,\r\n CircularReferenceOfManager = 50,\r\n CircularReferenceOfGroup = 51,\r\n PaymentProviderInterfaceError = 52,\r\n PaymentProviderInstancingError = 53,\r\n PaymentProcessError = 54,\r\n TemplateGenerationCorruptedTemplate = 55,\r\n TemplateGenerationInvalidDirective = 56,\r\n MyOrganizationCannotContainMembers = 57,\r\n MissingOrganizationParameter = 58,\r\n InvalidQuerySyntax = 59,\r\n DiscountRuleInterfaceError = 60,\r\n DiscountRuleInstancingError = 61,\r\n MaximumMemberExceededForOrganization = 62,\r\n RowShareQLError = 63,\r\n InvoiceCreationError = 64,\r\n PaymentProviderError = 65,\r\n TargetUserDoesNotHaveAccessToObject = 66,\r\n NumberOutOfRange = 67,\r\n FailedImportFile = 68,\r\n UserAlreadyExists = 69,\r\n OrganizationNameRequired = 70,\r\n BlobSizeLimitExceeded = 71,\r\n InvalidMemberOptions = 72,\r\n OrganizationOnlyAdministratorCannotBeDisable = 73,\r\n FreeUserCannotCreateFolder = 74,\r\n ListCountLimitExceeded = 75,\r\n FileNameTooLong = 76,\r\n InvalidFileName = 77,\r\n MaxRowsForOrganizationListExceeded = 78,\r\n MaxRowsForUserListExceeded = 79,\r\n MaxRowsExceededForImport = 80,\r\n OnlyOneAutonumberColumnAllowed = 83,\r\n FolderNotFound = 84,\r\n DisabledOrganizationCannotAddAdmin = 85,\r\n MergedCells = 86,\r\n NumberOfColumns = 87,\r\n ColumnName = 88,\r\n CellType = 89,\r\n NumberOfSheets = 90,\r\n UserNotExists = 95,\r\n InvalidRecaptcha = 96,\r\n InvalidGuid = 100,\r\n ListNotFound = 101,\r\n NoOneRowPerUserAllowed = 102,\r\n CultureError = 103,\r\n ColumnCountError = 104,\r\n NotTheSameOrganization = 105,\r\n ColumnDoesNotExists = 106,\r\n AutonumberColumnError = 107,\r\n ColumnTypeError = 108,\r\n MemberAlreadyExists = 109,\r\n EmptyFile = 110,\r\n SocialLoginWithUnknownEmail = 111,\r\n InvalidFileContentType = 112,\r\n NotAllowedForDemoUser = 113,\r\n RowAccessDenied = 114,\r\n InvalidApiParameter = 115,\r\n InvalidValue = 116,\r\n XLRowSaveError = 117,\r\n XLRowAccessDenied = 118,\r\n XLRowConflict = 119,\r\n XLRowDoesNotExists = 120,\r\n CannotCloneRowWithUniqueColumn = 121,\r\n CannotInsertRowWithDuplicateUniqueColumn = 122,\r\n CannotDeleteRowsIfListWithReadOnlyOrHiddenColumn = 123,\r\n OnlyOneRowPerUser = 124\r\n\r\n}\r\n\r\nexport class RowShareException {\r\n private _message: string = \"\";\r\n private _code: ExceptionCode = 0;\r\n public data: any;\r\n public httpResponse: HttpResponse | null = null;\r\n public validationErrors?: HttpRowShareValidationError[];\r\n\r\n private constructor() {}\r\n\r\n public static createFromApiResult(apiResult: HttpResponse): RowShareException {\r\n const res = new RowShareException();\r\n\r\n res.httpResponse = apiResult;\r\n res.data = apiResult.data;\r\n if (Utils.isString(res.data)) {\r\n try {\r\n const json = JSON.parse(res.data) as HttpRowShareException;\r\n if (RowShareException.isJsonException(json)) {\r\n res._code = json.Code;\r\n this.parseMessage(res, json.Message);\r\n\r\n if (json.ValidationErrors) {\r\n res.validationErrors = json.ValidationErrors;\r\n }\r\n }\r\n } catch (ex) {\r\n this.parseMessage(res, res.data);\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n public static createFromErrorMessage(message: string): RowShareException {\r\n const res = new RowShareException();\r\n res._message = message;\r\n return res;\r\n }\r\n\r\n private static parseMessage(ex: RowShareException, value: string) {\r\n const regex = /RS(\\d+):\\s*(.*)/i;\r\n const result = regex.exec(value);\r\n if (result) {\r\n ex._code = Utils.parseNumber(result[1], 0);\r\n ex._message = result[2];\r\n } else {\r\n ex._message = value;\r\n }\r\n }\r\n\r\n public get code(): number {\r\n return this._code;\r\n }\r\n\r\n public get message(): string {\r\n return this._message;\r\n }\r\n\r\n public toString() {\r\n return this.message;\r\n }\r\n\r\n public static isJsonException(value: any): value is HttpRowShareException {\r\n return Utils.isObject(value) && (value).IsJsonExceptionObject === true;\r\n }\r\n}\r\n\r\nexport class ApiUtils {\r\n static readonly newRowToken = \"(new)\";\r\n static readonly tableUrlPrefix = \"/t/\";\r\n static readonly formUrlPrefix = \"/tf/\";\r\n static readonly surveyUrlPrefix = \"/survey/\";\r\n static readonly columnFormUrlPrefix = \"/tcs/\";\r\n static readonly jobsFormUrlPrefix = \"/tjf/\";\r\n static readonly tableUrlFormat = ApiUtils.tableUrlPrefix + \"{0}\";\r\n static readonly formUrlFormat = ApiUtils.formUrlPrefix + \"{0}/{1}\";\r\n static readonly surveyUrlFormat = ApiUtils.surveyUrlPrefix + \"{0}\";\r\n static readonly columnFormUrlFormat = ApiUtils.columnFormUrlPrefix + \"{0}/{1}\";\r\n static readonly jobsFormUrlFormat = ApiUtils.jobsFormUrlPrefix + \"{0}\";\r\n static readonly listIdQueryStringParameterName = \"listid\";\r\n static readonly rowQueryStringParameterName = \"row\";\r\n\r\n static cache = new Cache(); // store an association of url:promise\r\n static options = {\r\n rootUrl: process.env.VUE_APP_API_ROOT\r\n };\r\n\r\n static encodeSegment(value: any) {\r\n if (Utils.isNullOrUndefined(value)) {\r\n return \"\";\r\n }\r\n\r\n value = String(value);\r\n while (value.indexOf(\"/\") > 0) {\r\n value = value.replace(\"/\", \"_x002F_\");\r\n }\r\n\r\n while (value.indexOf(\"\\\\\") > 0) {\r\n value = value.replace(\"\\\\\", \"_x005C_\");\r\n }\r\n\r\n return encodeURIComponent(value);\r\n }\r\n\r\n static toJson(obj: any) {\r\n // Remove keys starting by \"$$\" as it must be properties used only the UI\r\n return JSON.stringify(obj, (key, value) => {\r\n if (Utils.isString(key) && key.indexOf(\"$$\") === 0) {\r\n return undefined;\r\n }\r\n\r\n return value;\r\n });\r\n }\r\n\r\n static getResponseObject(xhr: XMLHttpRequest) {\r\n var response = new HttpResponse();\r\n response.status = xhr.status;\r\n response.statusText = xhr.statusText;\r\n\r\n if (!xhr.responseText && xhr.status === 0) {\r\n //response.data = SR.getMessageOrDefault(\"UnknownError\", \"An unknown error occurred\");\r\n } else {\r\n response.data = xhr.responseText;\r\n }\r\n if(xhr.responseURL && Utils.endsWith(xhr.responseURL, \"/ConfirmEmail\"))\r\n {\r\n window.location.assign(\"/ConfirmEmail\");\r\n }\r\n return response;\r\n }\r\n\r\n static buildUri(uri: string, setCulture = true) {\r\n if (uri.length < 4 || !Utils.equalsIgnoreCase(uri.substring(0, 4), \"http\")) {\r\n uri = ApiUtils.options.rootUrl + uri;\r\n }\r\n\r\n // Set lcid parameter\r\n if (setCulture) {\r\n let culture = Utils.getCurrentCulture();\r\n if (culture) {\r\n uri = ApiUtils.setQueryStringParameter(\"l\", culture, uri);\r\n }\r\n }\r\n\r\n return uri;\r\n }\r\n\r\n static setQueryStringParameter(key: string, value: string | null, uri?: string): string {\r\n let mustUpdateUrl = false;\r\n if (!uri) {\r\n uri = window.location.href;\r\n mustUpdateUrl = true;\r\n }\r\n\r\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\r\n var separator = uri.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\r\n let newUri = uri;\r\n if (uri.match(re)) {\r\n if (!Utils.isNullOrUndefined(value)) {\r\n newUri = uri.replace(re, \"$1\" + key + \"=\" + encodeURIComponent(value) + \"$2\");\r\n } else {\r\n uri = uri.replace(re, \"$1\");\r\n if (Utils.endsWith(uri, \"?\")) {\r\n uri = uri.substr(0, uri.length - 1);\r\n }\r\n newUri = uri;\r\n }\r\n } else {\r\n if (!Utils.isNullOrUndefined(value)) {\r\n newUri = uri + separator + key + \"=\" + encodeURIComponent(value);\r\n }\r\n }\r\n\r\n if (mustUpdateUrl && uri !== newUri) {\r\n window.location.href = newUri;\r\n }\r\n\r\n return newUri;\r\n }\r\n\r\n static setXmlHttpRequestConfiguration(xhr: XMLHttpRequest) {\r\n try {\r\n xhr.setRequestHeader(\"X-RowShare-Version\", \"2\");\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n } catch (e) {\r\n // do nothing\r\n }\r\n\r\n try {\r\n if (typeof xhr.withCredentials === \"boolean\") {\r\n xhr.withCredentials = true;\r\n }\r\n } catch (e) {\r\n // do nothing\r\n }\r\n }\r\n\r\n static apiGet(uri: string, options: IRequestOptions | null = null): Promise {\r\n uri = ApiUtils.buildUri(uri);\r\n\r\n const useCache = options && options.cache === true;\r\n const clearCache = options && options.clearCache === true;\r\n\r\n if (useCache && ApiUtils.cache.containsKey(uri)) {\r\n Logger.log(\"RowShare.Api\", \"verbose\", \"From cache: \" + uri);\r\n return ApiUtils.cache.get(uri);\r\n }\r\n\r\n const promise = new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n const response = ApiUtils.getResponseObject(xhr);\r\n if (response.isSuccess) {\r\n resolve(response);\r\n } else {\r\n console.error(uri);\r\n reject(RowShareException.createFromApiResult(response));\r\n }\r\n }\r\n };\r\n\r\n xhr.open(\"GET\", uri, true);\r\n ApiUtils.setXmlHttpRequestConfiguration(xhr);\r\n xhr.send(null);\r\n });\r\n\r\n if (useCache) {\r\n Logger.log(\"RowShare.Api\", \"verbose\", \"Add to cache: \" + uri);\r\n ApiUtils.cache.set(uri, promise);\r\n }\r\n\r\n if (clearCache) {\r\n ApiUtils.cache.clear();\r\n }\r\n\r\n return promise;\r\n }\r\n\r\n static apiPostJsonForFileResponse(uri: string, data: any, options: IRequestOptions | null = null): Promise {\r\n uri = ApiUtils.buildUri(uri);\r\n\r\n const clearCache = options && options.clearCache === true;\r\n\r\n const promise = new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.responseType = \"blob\";\r\n xhr.onreadystatechange = function() {\r\n if(xhr.readyState == 4) {\r\n \r\n var contentDipositionHeader = xhr.getResponseHeader(\"content-disposition\");\r\n var fileName = \"\";\r\n if(contentDipositionHeader) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(contentDipositionHeader);\r\n if (matches != null && matches[1]) { \r\n fileName = matches[1].replace(/['\"]/g, '');\r\n } \r\n }\r\n const file = new File([xhr.response], fileName)\r\n if(xhr.status == 200) {\r\n resolve(file);\r\n }\r\n else {\r\n reject(\"Error getting file\");\r\n }\r\n }\r\n }\r\n\r\n xhr.open(\"POST\", uri, true);\r\n ApiUtils.setXmlHttpRequestConfiguration(xhr);\r\n if (data instanceof FormData) {\r\n xhr.send(data);\r\n } else {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\r\n xhr.send(ApiUtils.toJson(data));\r\n } \r\n });\r\n\r\n if (clearCache) {\r\n ApiUtils.cache.clear();\r\n }\r\n\r\n return promise;\r\n }\r\n\r\n static apiPostJson(uri: string, data: any, options: IRequestOptions | null = null): Promise {\r\n uri = ApiUtils.buildUri(uri);\r\n\r\n const clearCache = options && options.clearCache === true;\r\n\r\n const promise = new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n const response = ApiUtils.getResponseObject(xhr);\r\n if (response.isSuccess) {\r\n resolve(response);\r\n } else {\r\n reject(RowShareException.createFromApiResult(response));\r\n }\r\n }\r\n };\r\n\r\n xhr.open(\"POST\", uri, true);\r\n ApiUtils.setXmlHttpRequestConfiguration(xhr);\r\n if (data instanceof FormData) {\r\n xhr.send(data);\r\n } else {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\r\n // const body = ApiUtils.toJson(data)\r\n // body[\"connectionId\"] = RealTimeCollaborationModule.connection.connectionId;\r\n // xhr.send(body);\r\n xhr.send(ApiUtils.toJson(data));\r\n }\r\n \r\n });\r\n\r\n if (clearCache) {\r\n ApiUtils.cache.clear();\r\n }\r\n\r\n return promise;\r\n }\r\n\r\n static apiPostFile(uri: string, file: File, options: IRequestOptions | null = null): Promise {\r\n var formData = new FormData();\r\n ApiUtils.appendFiles(formData, file);\r\n\r\n return ApiUtils.apiPostJson(uri, formData, options);\r\n }\r\n\r\n static appendFiles(formData: FormData, file: PostedFile | ArrayLike | FileList | File | Blob | Object) {\r\n if (Utils.isNullOrUndefined(file)) {\r\n return;\r\n }\r\n\r\n if (file instanceof PostedFile) {\r\n file.appendToFormData(formData);\r\n } else if (file instanceof File) {\r\n formData.append(\"File\", file);\r\n } else if (file instanceof Blob) {\r\n formData.append(\"File\", file, \"unnamed\");\r\n } else if (Utils.isArrayLike(file)) {\r\n for (let i = 0; i < file.length; i++) {\r\n const f = file[i];\r\n ApiUtils.appendFiles(formData, f);\r\n }\r\n }\r\n }\r\n\r\n static appendFilesWithColumnName(formData: FormData, fileColumnName: string, file: FileList | File | Blob | Object) {\r\n if (Utils.isNullOrUndefined(file)) {\r\n return;\r\n }\r\n\r\n if (file instanceof File) {\r\n formData.append(fileColumnName, file);\r\n } else if (file instanceof Blob) {\r\n formData.append(fileColumnName, file, \"unnamed\");\r\n } else if (Utils.isArrayLike(file)) {\r\n for (let i = 0; i < file.length; i++) {\r\n const f = file[i];\r\n ApiUtils.appendFilesWithColumnName(formData, fileColumnName, f);\r\n }\r\n }\r\n }\r\n\r\n static createRequestOptions(...options: (IRequestOptions | null | undefined)[]) {\r\n return Object.assign({}, ...options);\r\n }\r\n\r\n static apiPostJsonWithFiles(uri: string, data:any, file: FileList | File | Blob | Object | null=null, \r\n options: IRequestOptions | null = null):Promise {\r\n var formData = new FormData();\r\n\r\n if(!Utils.isNullOrUndefined(data))\r\n formData.append('data', ApiUtils.toJson(data));\r\n if(!Utils.isNullOrUndefined(file)){\r\n ApiUtils.appendFiles(formData, file);\r\n }\r\n return ApiUtils.apiPostJson(uri, formData, options);\r\n }\r\n\r\n static apiPostJsonWithFilesAndColumnName(uri: string, data:any, fileColumnName: string, file: FileList | File | Blob | Object | null=null, \r\n options: IRequestOptions | null = null): Promise {\r\n var formData = new FormData();\r\n\r\n if(!Utils.isNullOrUndefined(data))\r\n formData.append('data', ApiUtils.toJson(data));\r\n if(!Utils.isNullOrUndefined(file)){\r\n ApiUtils.appendFilesWithColumnName(formData,fileColumnName, file);\r\n }\r\n return ApiUtils.apiPostJson(uri, formData, options);\r\n }\r\n\r\n static GetApiErrorDescription(error: ApiError) {\r\n var patternName = 'ExceptionCode_' + error.ExceptionCode.toString();\r\n var desc = error.FormatParams ? i18n.t(patternName, error.FormatParams) : i18n.t(patternName);\r\n return `${error.ExceptionCode.toString()} - ${desc}`;\r\n } \r\n}\r\n\r\nexport interface IRequestOptions {\r\n cache?: boolean;\r\n clearCache?: boolean;\r\n}\r\n\r\nexport class HttpResponse {\r\n public data!: string;\r\n public status!: number;\r\n public statusText!: string;\r\n\r\n public text(): string {\r\n return this.data;\r\n }\r\n\r\n public json(): T | null {\r\n if (Utils.isNullOrEmpty(this.data)) {\r\n return null;\r\n }\r\n\r\n return JSON.parse(this.data) as T;\r\n }\r\n\r\n public populate(instance: any, json: any) {\r\n for (let key of Object.keys(json)) {\r\n instance[key] = json[key];\r\n }\r\n }\r\n\r\n public object(constructor: { new(): T }): T {\r\n const json = this.json();\r\n if (json === null) {\r\n throw new Error(\"data is null\");\r\n }\r\n\r\n const instance = new constructor();\r\n this.populate(instance, json);\r\n return instance;\r\n }\r\n\r\n public nullableObject(constructor: { new(): T }): T | null {\r\n const json = this.json();\r\n if (json === null) {\r\n return null;\r\n }\r\n\r\n const instance = new constructor();\r\n this.populate(instance, json);\r\n return instance;\r\n }\r\n\r\n public objects(constructor: { new(): T }): T[] | null {\r\n const json = this.json();\r\n if (Utils.isArray(json)) {\r\n let result: T[] = [];\r\n for (let o of json) {\r\n let instance = new constructor();\r\n this.populate(instance, o);\r\n result.push(instance);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public get isSuccess() {\r\n return this.status >= 200 && this.status < 300;\r\n }\r\n\r\n public localizedErrorMessage(): string {\r\n return this.data; // TODO\r\n }\r\n\r\n public toString() {\r\n return `${this.status} ${this.statusText}\\r\\n${this.data}`;\r\n }\r\n}\r\n","import { UserListLink } from \"./UserListLink\";\r\n\r\nimport { UserListLinkTypes } from \"./UserListLink\";\r\n\r\nexport class UserNotificationLink {\r\n public ListId!: string;\r\n public ListDisplayName!: string;\r\n public Types!: UserListLinkTypes;\r\n}\r\n\r\nexport class UserNotificationUpdate {\r\n public ListId!: string;\r\n public Types!: UserListLinkTypes;\r\n}\r\n\r\n","export class View {\r\n public Id!: string;\r\n public ListId!: string;\r\n public Name!: string;\r\n public Data!: string;\r\n public Shared!: boolean;\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class BoApi {\r\n\r\n static search(searchStr: string, options: IRequestOptions | null = null)\r\n :Promise {\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiGet(\"/admin/search/\"+ ApiUtils.encodeSegment(searchStr || \"\")+ \"?v3=true\", options)\r\n .then(response => response.object(Models.BackOfficeSearchSummary) ?? null);\r\n }\r\n\r\n static searchLists(searchStr: string, options: IRequestOptions | null = null)\r\n :Promise {\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiGet(\"/admin/list/search/\" + ApiUtils.encodeSegment(searchStr || \"\") + \"?v3=true\", options)\r\n .then(response => response.objects(Models.BackOfficeListSummary) ?? null);\r\n }\r\n\r\n static searchUsers(searchStr: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/admin/user/search/\" + ApiUtils.encodeSegment(searchStr || \"\") + \"?v3=true\", options)\r\n .then(response => response.objects(Models.BackOfficeUser));\r\n }\r\n\r\n static searchOrganizations(searchStr: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/admin/organization/search/\" + ApiUtils.encodeSegment(searchStr || \"\") + \"?v3=true\", options)\r\n .then(response => response.objects(Models.BackOfficeOrganizationSummary));\r\n }\r\n\r\n static loadOrganization(id: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/admin/organization/load/\" + ApiUtils.encodeSegment(id) + \"?v3=true\", options)\r\n .then(response => response.object(Models.Organization));\r\n } \r\n\r\n static loadMembers(id: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/admin/member/loadforparent/\" + ApiUtils.encodeSegment(id) + \"?v3=true\", options)\r\n .then(response => response.objects(Models.BackOfficeMember));\r\n }\r\n\r\n static loadUser(id: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/admin/user/load/\" + ApiUtils.encodeSegment(id) + \"?v3=true\", options)\r\n .then(response => response.object(Models.BackOfficeUser));\r\n } \r\n\r\n static loadListSummary(searchStr: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/admin/list/load/\" + ApiUtils.encodeSegment(searchStr || \"\") + \"?v3=true\", options)\r\n .then(response => response.object(Models.BackOfficeListSummary));\r\n }\r\n \r\n static saveUserProperty(email: string, property: string, value: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/admin/user/save/\" \r\n + ApiUtils.encodeSegment(email) + \"/\" \r\n + ApiUtils.encodeSegment(property) + \"/\" \r\n + ApiUtils.encodeSegment(value)\r\n + \"?v3=true\", options)\r\n .then(response => response.object(Models.BackOfficeListSummary));\r\n }\r\n \r\n static saveOrganizationProperty(orgId: string, property: string, value: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/admin/organization/save/\" \r\n + ApiUtils.encodeSegment(orgId) + \"/\" \r\n + ApiUtils.encodeSegment(property) + \"/\" \r\n + ApiUtils.encodeSegment(value)\r\n + \"?v3=true\", options)\r\n .then(response => response.json());\r\n }\r\n\r\n static saveOrgLogo(orgId: string, logoType: string, file: Object | FileList | File | Blob | null, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiPostJsonWithFiles(`/admin/organization/save/${orgId}`, {logoType},file, options)\r\n .then(response=> response.json())\r\n }\r\n\r\n static saveMember(member: Models.Member, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiPostJson(\"/admin/member/save/\", member, options)\r\n .then(response => response.json());\r\n } \r\n \r\n static deleteMember(member: Models.Member, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiPostJson(\"/admin/member/delete/\", member, options)\r\n .then(response => response.json());\r\n }\r\n \r\n static deleteUser(user: Models.User, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiPostJson(\"/admin/user/delete/\", user, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static deleteOrganization(organization: Models.Organization, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiPostJson(\"/admin/organization/delete/\", organization, options)\r\n .then(response => response.json());\r\n }\r\n \r\n static ClearCache(options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiGet(\"/admin/clearcache/\", options).then(response => response.json());\r\n } \r\n\r\n static RestartServer(options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiGet(\"/admin/restartserver/\", options).then(response => response.json());\r\n } \r\n\r\n static ClearCacheAndRestartServer(options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiGet(\"/admin/clearcacheandrestartserver/\", options).then(response => response.json());\r\n } \r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"../models/RowShare\"\r\n\r\nexport class Catalog {\r\n static load(options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(`/catalog/load/`, options)\r\n .then(response => response.objects(RowShare.CatalogItem))\r\n }\r\n static getTableTemplateInfoById(listId: string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(`/tableTemplate/load/${listId}`, options)\r\n .then(response => response.object(RowShare.TableTemplate))\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\n\r\nexport class Category {\r\n static loadColors(options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(`/category/loadColors/`, options)\r\n .then(response => response.json())\r\n }\r\n\r\n static loadAll(options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(`/category/loadAll/`, options)\r\n .then(response => response.objects(RowShare.CatalogCategory))\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class CellColor {\r\n static saveColors(cellColors: Models.CellColor[], options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/cellcolor/save/\",{CellColors: cellColors}, options)\r\n .then(response => response.json());\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class Chart {\r\n\r\n static load(id: string, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiGet(\"/chart/load/\"+ ApiUtils.encodeSegment(id), options)\r\n .then(response => response.object(Models.Chart));\r\n }\r\n\r\n static save(chart: Models.Chart, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiPostJson(\"/chart/save/\", chart, options)\r\n .then(response => response.object(Models.Chart));\r\n }\r\n\r\n static loadForParent(id: string, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiGet(\"/chart/loadforparent/\" + ApiUtils.encodeSegment(id), options)\r\n .then(response => response.objects(Models.Chart));\r\n }\r\n\r\n static remove(id: string, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiGet(\"/chart/delete/\" + ApiUtils.encodeSegment(id), ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json());\r\n }\r\n \r\n static loadChartData(id: string, rowIds: string[] | null, options: IRequestOptions | null = null) {\r\n var url = \"/chartData/load/\" + ApiUtils.encodeSegment(id);\r\n var mergedOptions = ApiUtils.createRequestOptions({ clearCache: true }, options)\r\n return ApiUtils.apiPostJson(url, { rowIds: rowIds }, mergedOptions)\r\n .then(response => response.json());\r\n }\r\n \r\n static saveOrder(orderedIds: string[], options: IRequestOptions | null = null){\r\n return ApiUtils.apiPostJson(\"/chart/saveOrder/\", {OrderedIds: orderedIds}, options)\r\n .then(response => response.json());\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class Column {\r\n\r\n static loadForList(listId: string, options: IRequestOptions | null = null) : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/column/loadforparent/\" + ApiUtils.encodeSegment(listId || \"\"), options)\r\n .then(response => response.objects(Models.Column));\r\n }\r\n\r\n static loadRelated(columnId: string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiGet(\"/column/loadRelated/\" + ApiUtils.encodeSegment(columnId || \"\"), options)\r\n .then(response => response.objects(Models.Column));\r\n }\r\n\r\n static clearRelated(columnId: string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({clearCache: true}, options);\r\n return ApiUtils.apiGet(\"/column/clearRelated/\"+ ApiUtils.encodeSegment(columnId || \"\"), options)\r\n .then(response => response?.json() ?? false);\r\n }\r\n\r\n static load(columnId: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/column/load/\" + ApiUtils.encodeSegment(columnId || \"\"), options)\r\n .then(response => response.object(Models.Column));\r\n }\r\n\r\n static moveColumns(ids: string[], toindex: number, listId: string, displayedColumns: number, rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({cache: false, clearCache: true}, options);\r\n var data = {\r\n listId: listId,\r\n columnIds: ids,\r\n toIndex: toindex,\r\n displayedColumns: displayedColumns,\r\n RtcConnectionId: rtcConnectionId,\r\n };\r\n return ApiUtils.apiPostJson('/column/move', data, options)\r\n .then(response => response.objects(Models.Column)); \r\n }\r\n\r\n static save(column: Models.Column, options: IRequestOptions | null = null): Promise {\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n \r\n return ApiUtils.apiPostJson('/column/save', column, options).then(response => response.object(Models.Column));\r\n }\r\n\r\n static saveWidth(column: Models.Column, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({cache: true}, options);\r\n\r\n return ApiUtils.apiPostJson(\"/column/save/\", { Id: column.Id, DefaultWidth: column.DefaultWidth, RtcConnectionId: column.RtcConnectionId }, options)\r\n .then(response => response.object(Models.Column));\r\n }\r\n\r\n static savePinned(columnId: string, pinned: boolean, rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n return ApiUtils.apiPostJson(\"/column/save\", {Id: columnId, LeftPinned: pinned, RtcConnectionId: rtcConnectionId}, options)\r\n .then(response => response.object(Models.Column));\r\n }\r\n\r\n static remove(column: Models.Column, options: IRequestOptions | null = null) {\r\n return ApiUtils.apiPostJson(\"/column/delete/\", column, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json());\r\n }\r\n\r\n static clear(columnId: string, options: IRequestOptions | null = null) {\r\n return ApiUtils.apiGet(\"/column/clear/\" + ApiUtils.encodeSegment(columnId || \"\"), ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json());\r\n }\r\n\r\n static async IsReferenced(columnId: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet('/column/IsReferenced/' + ApiUtils.encodeSegment(columnId), options)\r\n .then(response => response.json())\r\n }\r\n\r\n static async clone(columnId: string, rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({clearCache: true}, options);\r\n\r\n return ApiUtils.apiPostJson('/column/clone', {ColumnId: columnId, RtcConnectionId: rtcConnectionId}, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\";\r\nimport * as RowShare from '@/models/RowShare';\r\n\r\nexport class ColumnAccess {\r\n static async loadForColumn(columnId: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiGet(\"/columnaccess/loadforcolumn/\" + ApiUtils.encodeSegment(columnId), options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async saveMultiple(accessesToSave: RowShare.ColumnAccessesToSave, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/columnaccess/savemultiple/\", accessesToSave, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json>());\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\n\r\nexport class Configuration{\r\n static getChargebeeSiteName(options: IRequestOptions | null = null){\r\n if(!options)\r\n options = ApiUtils.createRequestOptions({cache : true});\r\n return ApiUtils.apiGet(\"/configuration/ChargeBeeSiteName\")\r\n .then(response => response.json());\r\n }\r\n\r\n static checkMobileDevice(options: IRequestOptions | null = null){\r\n if(!options)\r\n options = ApiUtils.createRequestOptions({cache : true});\r\n return ApiUtils.apiGet(\"/configuration/checkmobiledevice\")\r\n .then(response => response.json());\r\n }\r\n\r\n static getPasswordRegex(options: IRequestOptions | null = null){\r\n if(!options)\r\n options = ApiUtils.createRequestOptions({cache : true});\r\n return ApiUtils.apiGet(\"/configuration/getpasswordregex\")\r\n .then(response => response.json());\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\n\r\nexport class ContactMessage {\r\n \r\n static sendMessage(message: RowShare.ContactMessage, file:File|null=null, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n //This call to the API allows to send a Json and files, but for the moment it will send\r\n //only the Json until files are allowed.\r\n return ApiUtils.apiPostJsonWithFiles(\"/contactMessage/sendMessage/\", message, file, options)\r\n .then(response => response.json());\r\n }\r\n \r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class Culture {\r\n\r\n static loadCultures(options: IRequestOptions | null = null): Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/culture/getCultures/\", options)\r\n .then(response => response.objects(Models.Culture));\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class Currency {\r\n\r\n static loadByCulture(culture: string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/currency/loadbyculture/\" + ApiUtils.encodeSegment(culture), options)\r\n .then(response => response.object(Models.Currency));\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class Folder {\r\n static async load(id: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let response = await ApiUtils.apiGet(\"/folder/load/\" + ApiUtils.encodeSegment(id), options);\r\n return response.nullableObject(Models.Folder);\r\n }\r\n\r\n static async loadForParent(id: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let response = await ApiUtils.apiGet(\"/folder/loadforparent/\" + ApiUtils.encodeSegment(id), options);\r\n return response.objects(Models.Folder);\r\n }\r\n\r\n static async loadAllForOrganization(accessMode: Models.AccessMode, organizationId: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let url = `/folder/loadall/?d=1&am=${ApiUtils.encodeSegment(accessMode)}`;\r\n if(organizationId != null) {\r\n url += `&oid=${ApiUtils.encodeSegment(organizationId)}`;\r\n }\r\n let response = await ApiUtils.apiGet(url, options);\r\n return response.objects(Models.Folder); \r\n }\r\n \r\n static async loadAll(depth: number, accessMode: Models.AccessMode, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let response = await ApiUtils.apiGet(`/folder/loadall/?d=${ApiUtils.encodeSegment(depth)}&am=${ApiUtils.encodeSegment(accessMode)}`, options);\r\n return response.objects(Models.Folder);\r\n }\r\n\r\n static async import(id: string, file: File, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let response = await ApiUtils.apiPostFile(\"/folder/import/\" + ApiUtils.encodeSegment(id) +\"/ImportWithMetadata\", file, options);\r\n return response.json();\r\n }\r\n\r\n static async create(organisationId: string, folderName: string, parentFolderId: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let creatingData = {\r\n OrganizationId : organisationId,\r\n FolderName : folderName,\r\n ParentFolderId : parentFolderId\r\n };\r\n let response = await ApiUtils.apiPostJson(\"/folder/create\", creatingData, options);\r\n return response.object(Models.Folder);\r\n }\r\n\r\n static async rename(folderName: string, folderId: string, parentId: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let renamingData = {\r\n ParentId : parentId,\r\n Id : folderId,\r\n DisplayName: folderName\r\n };\r\n let response = await ApiUtils.apiPostJson(\"/folder/rename\", renamingData, options);\r\n return response.json();\r\n }\r\n\r\n static async moveToRecycleBin(folderId: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let deletingData = {\r\n FolderId : folderId,\r\n };\r\n let response = await ApiUtils.apiPostJson(\"/folder/movetorecyclebin\", deletingData, options);\r\n return response.object(Models.Folder);\r\n }\r\n\r\n static async loadOwners(folderId: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiGet(\"/folderowner/loadforparent/\" + folderId, options);\r\n return response.objects(Models.FolderOwner);\r\n }\r\n\r\n static async saveOwner(folderOwner: Models.FolderOwner, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiPostJson(\"/folderowner/save/\", folderOwner, options);\r\n return response.object(Models.FolderOwner);\r\n }\r\n\r\n static async deleteOwner(folderOwner: Models.FolderOwner, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiPostJson(\"/folderowner/delete/\", folderOwner, options);\r\n return response.object(Models.FolderOwner);\r\n }\r\n\r\n static async setInheritAccessMode(inheritMode: any, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiPostJson(\"/folder/save/\", inheritMode, options);\r\n return response.object(Models.ListTreeFolder);\r\n }\r\n\r\n static async loadAccesses(folderId: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiGet(\"/folderaccess/loadforparent/\"+ ApiUtils.encodeSegment(folderId), options);\r\n return response.objects(Models.FolderAccess);\r\n }\r\n\r\n static async saveAccess(access: Models.FolderAccess, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiPostJson(\"/folderaccess/save/\", access, options);\r\n return response.object(Models.FolderAccess);\r\n }\r\n\r\n static async deleteAccess(access: any, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiPostJson(\"/folderaccess/delete/\", access, options);\r\n return response.json();\r\n }\r\n\r\n static emptyRecycleBin(folderId: string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let data = { FolderId : folderId };\r\n return ApiUtils.apiPostJson(\"/folder/emptyrecyclebin\", data, options)\r\n .then(response=>response.json());\r\n }\r\n\r\n static importRows(listId: string, file: File, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiPostFile(`/folder/ImportRows/${ApiUtils.encodeSegment(listId)}?v3=true`, file, options)\r\n .then(response => response.object(Models.ImportResult))\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class Group {\r\n \r\n static async loadForParent(organizationId: string | null, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let lists = await ApiUtils.apiGet(\"/group/loadforparent/\" + ApiUtils.encodeSegment(organizationId || \"\"), options);\r\n return lists.objects(Models.Group);\r\n }\r\n\r\n static save(group: Models.Group)\r\n : Promise {\r\n return ApiUtils.apiPostJson('/group/save/', group).then(response => response.object(Models.Group));\r\n }\r\n\r\n static remove(group: Models.Group)\r\n : Promise {\r\n return ApiUtils.apiPostJson('/group/delete/', group).then(response => response.json());\r\n }\r\n\r\n \r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from '@/models/RowShare';\r\n\r\nexport class InviteLink {\r\n static load(id:string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/invitelink/load/\"+ ApiUtils.encodeSegment(id), options)\r\n .then(response => response.data ? response.object(Models.InviteLink) : null);\r\n }\r\n\r\n static loadForParent(id: string, options: IRequestOptions | null = null) {\r\n return ApiUtils.apiGet(\"/invitelink/loadforparent/\" + ApiUtils.encodeSegment(id), options)\r\n .then(response => response.objects(Models.InviteLink));\r\n }\r\n\r\n static save(link: Models.InviteLink, options: IRequestOptions | null = null) { \r\n return ApiUtils.apiPostJson(\"/invitelink/save/\", link, options)\r\n .then(response => response.object(Models.InviteLink));\r\n }\r\n\r\n static delete(id: string, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiGet(\"/invitelink/delete/\" + ApiUtils.encodeSegment(id), ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json());\r\n }\r\n\r\n static isValid(id: string, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiGet(\"/inviteLink/isvalid/\" + ApiUtils.encodeSegment(id), ApiUtils.createRequestOptions({ cache: false }, options))\r\n .then(response => response.json());\r\n }\r\n\r\n static createMember(id: string, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiGet(\"/invitelink/create/\" + ApiUtils.encodeSegment(id), ApiUtils.createRequestOptions({ cache: false }, options))\r\n .then(response => response.data ? response.object(Models.Organization) : null );\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\n\r\nexport class Job {\r\n\r\n static load(Id:string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/job/load/\"+ ApiUtils.encodeSegment(Id) + \"?v3=true\", options)\r\n .then(response => response.object(RowShare.Job));\r\n }\r\n \r\n static loadAll(options: IRequestOptions | null = null) : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/job/loadall?v3=true\", options)\r\n .then(response => response.objects(RowShare.Job));\r\n }\r\n\r\n static loadByList(listId:string, type: RowShare.JobType, options: IRequestOptions | null = null) : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/job/loadforparent/\" + ApiUtils.encodeSegment(listId) + \"/\" + ApiUtils.encodeSegment(type) + \"?v3=true\", options)\r\n .then(response => response.objects(RowShare.Job));\r\n }\r\n\r\n static delete(Id:string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/job/delete/\", {'Id':Id}, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static loadAnalysisResponseFromJob(Id: string, options: IRequestOptions | null = null)\r\n : Promise| null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/listanalysis/get/\" + ApiUtils.encodeSegment(Id), options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static updateJobStatus(Id: string, status: RowShare.JobStatus, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false}, options);\r\n var data ={ Id: Id, Status: status};\r\n return ApiUtils.apiPostJson(\"/job/setstatus/\", data, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static save(job: RowShare.Job, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({clearCache: true}, options);\r\n return ApiUtils.apiPostJson(\"/job/save/\", job, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static loadLastAnalysisJob(listId: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiGet(\"/job/loadlastanalysisjob/\" + ApiUtils.encodeSegment(listId), options)\r\n .then(response => response.json>());\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions, RowShareException } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\nimport { ApiResult } from \"@/models/ApiResult\";\r\n\r\nexport class List {\r\n\r\n static async load(id: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let list = await ApiUtils.apiGet(\"/list/load/\" + ApiUtils.encodeSegment(id) + \"?allowSurveyMode=false\", options);\r\n return list && list.data ? list.object(Models.List) : null;\r\n }\r\n\r\n static async loadForSurvey(id: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let list = await ApiUtils.apiGet(\"/list/load/\" + ApiUtils.encodeSegment(id) + \"?allowSurveyMode=true\", options);\r\n return list && list.data ? list.object(Models.List) : null;\r\n }\r\n\r\n static async loadForParent(folderId: string | null, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let lists = await ApiUtils.apiGet(\"/list/loadforparent/\" + ApiUtils.encodeSegment(folderId || \"\"), options);\r\n return lists.objects(Models.List);\r\n }\r\n\r\n static async loadAllForParent(folderId: string | null, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let lists = await ApiUtils.apiGet(\"/list/loadallforparent/\" + ApiUtils.encodeSegment(folderId || \"\"), options);\r\n return lists.objects(Models.List);\r\n }\r\n\r\n static async loadRecents(organizationId: string| null | undefined = null, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let recents = await ApiUtils.apiGet(organizationId ? `/list/loadrecents/${organizationId}` : '/list/loadrecents', options);\r\n return recents.objects(Models.List);\r\n }\r\n\r\n static async loadFavorites(organizationId: string, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let favs = await ApiUtils.apiGet(`/list/loadfavorites/${organizationId}`, options);\r\n return favs.objects(Models.List);\r\n }\r\n\r\n static async loadFolderHierarchy(id: string, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let folders = await ApiUtils.apiGet(\"/list/loadfolderhierarchy/\" + ApiUtils.encodeSegment(id), options);\r\n return folders.objects(Models.Folder);\r\n }\r\n\r\n static async delete(IdList: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let data = { 'Id': IdList };\r\n let response = await ApiUtils.apiPostJson(\"/list/delete/\", data, options);\r\n return response.json();\r\n }\r\n \r\n static async clone(copyOptions: Models.CopyListInfo, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let list = await ApiUtils.apiPostJson(\"/list/clone/\", copyOptions, options);\r\n return list.object(Models.List);\r\n }\r\n\r\n static async loadOwners(listId: string, options: IRequestOptions | null = null) : Promise|null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let response = await ApiUtils.apiGet(\"/listowner/loadforparent/\" + ApiUtils.encodeSegment(listId), options);\r\n return response.objects(Models.ListOwner);\r\n }\r\n\r\n static async saveOwner(listOwner: Models.ListOwner, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiPostJson(\"/listowner/save/\", listOwner, options);\r\n return response.object(Models.ListOwner);\r\n }\r\n\r\n static async deleteOwner(listOwner: Models.ListOwner, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiPostJson(\"/listowner/delete/\", listOwner, options);\r\n return response.json();\r\n }\r\n\r\n static async save(list: Models.List, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let listResponse = await ApiUtils.apiPostJson(\"/list/save/\", list, options);\r\n return listResponse.object(Models.List);\r\n }\r\n\r\n static async saveWithFile(list: Models.List, file: Object | FileList | File | Blob | null, typeOfFile: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiPostJsonWithFiles(`/list/save/${list.Id}${typeOfFile}`, list, file, options);\r\n return response.object(Models.List);\r\n }\r\n\r\n static async loadRemainingRowCount(listId: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiGet(`/list/remainingRowCount/${listId}`, options);\r\n return response.json();\r\n }\r\n\r\n static async loadRemainingStorage(listId: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let response = await ApiUtils.apiGet(`/list/remainingStorage/${listId}`, options);\r\n return response.json();\r\n }\r\n\r\n static async move(list: List, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let listResponse = await ApiUtils.apiPostJson(\"/list/move/\", list, options);\r\n return listResponse.object(Models.List);\r\n }\r\n\r\n static async moveToRecycleBin(listId: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let data = { ListId : listId };\r\n let folder = await ApiUtils.apiPostJson(\"/list/movetorecyclebin\", data, options);\r\n return folder.object(Models.Folder);\r\n }\r\n \r\n static async loadChoice(listId: string, columnName: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options); \r\n let choiceArray = await ApiUtils.apiGet(`/list/choice/${ApiUtils.encodeSegment(listId)}/${ApiUtils.encodeSegment(columnName)}`, options);\r\n return choiceArray.json();\r\n }\r\n\r\n static async requestAccess(listId: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let data = { ListId : listId };\r\n let response = await ApiUtils.apiGet(\"/list/requestaccess/\" + ApiUtils.encodeSegment(listId), options);\r\n return response.json();\r\n }\r\n\r\n static async IsReferenced(listId: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet('/list/IsReferenced/' + ApiUtils.encodeSegment(listId), options)\r\n .then(response => response.json())\r\n }\r\n\r\n //Added by Soukayna\r\n static async requestListAnalysis(listId: string)\r\n : Promise | null> {\r\n var response = await ApiUtils.apiGet(`/ListAnalysis/Request/` + ApiUtils.encodeSegment(listId), null);\r\n return response.json>();\r\n }\r\n\r\n static async Export(listId: string, exportContext: Models.ExportContext, options: IRequestOptions | null = null)\r\n : Promise {\r\n return await ApiUtils.apiPostJsonForFileResponse(`/list/export/${ApiUtils.encodeSegment(listId)}`, exportContext);\r\n }\r\n \r\n}\r\n","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\n\r\nexport class ListAccess {\r\n static async loadByList(listId: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/listaccess/loadforparent/\" + ApiUtils.encodeSegment(listId), options)\r\n .then(response => response.objects(RowShare.ListAccess));\r\n }\r\n\r\n static async load(id: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/listaccess/load/\" + ApiUtils.encodeSegment(id), options)\r\n .then(response => response.object(RowShare.ListAccess));\r\n }\r\n\r\n static async save(listAccess: RowShare.ListAccess, sendNotification: boolean, recaptchaToken: string | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n var accessToSend = listAccess;\r\n accessToSend.sendNotification = sendNotification;\r\n accessToSend.recaptchaToken = recaptchaToken;\r\n return ApiUtils.apiPostJson(\"/listaccess/save/\", accessToSend, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.object(RowShare.ListAccess));\r\n }\r\n\r\n static async remove(listAccess: RowShare.ListAccess, options: IRequestOptions | null = null)\r\n : Promise {\r\n return ApiUtils.apiPostJson(\"/listaccess/delete/\", listAccess, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json());\r\n }\r\n\r\n static async addBatchOfAccess(listAccess: any, options: IRequestOptions | null = null)\r\n : Promise {\r\n return ApiUtils.apiPostJson(\"/listaccess/addBatchOfAccess/\", listAccess, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.objects(RowShare.ListAccess));\r\n }\r\n\r\n static async saveMultiple(accessesToSave: RowShare.ListAccessesToSave, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/listaccess/savemultiple/\", accessesToSave, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json>());\r\n }\r\n\r\n static async resendInvitation(listAccessId: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiGet(\"/listaccess/ResendInvitation/\" + ApiUtils.encodeSegment(listAccessId))\r\n .then(response => response.json>());\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class ListAccessAudit {\r\n static load(orgId: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n\r\n return ApiUtils.apiGet(\"/ListAccessAudit/load/\" + ApiUtils.encodeSegment(orgId || \"\"), options)\r\n .then(response => response.object(Models.ListAccessAudit));\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\n\r\nexport class ListTree {\r\n static async load(orgId: string | null = null, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let url = \"/listtree/load/\";\r\n if(orgId){\r\n url += ApiUtils.encodeSegment(orgId);\r\n }\r\n return ApiUtils.apiGet(url, options)\r\n .then(response => response.object(RowShare.ListTree));\r\n \r\n }\r\n\r\n static loadSiblings(id: string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/listtree/loadsiblings/\" + ApiUtils.encodeSegment(id), options)\r\n .then(response => response.objects(RowShare.ListThumbnailInfo));\r\n }\r\n}\r\n\r\nexport class ListTreeFolder{\r\n static async load(folderId:string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/listtreefolder/load/\"+ ApiUtils.encodeSegment(folderId), options)\r\n .then(response => response.object(RowShare.ListTreeFolder));\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\nimport {ApiResult} from \"@/models/RowShare\";\r\n\r\nexport class Member{\r\n static load(organizationId: string, email: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n return ApiUtils.apiGet(\"/member/load/\"+ ApiUtils.encodeSegment(email) +\"/\"+ ApiUtils.encodeSegment(organizationId), options)\r\n .then(response => response.json());\r\n }\r\n\r\n static loadForParent(organizationId: string, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false}, options);\r\n return ApiUtils.apiPostJson(\"/member/loadforparent/\" + organizationId, options)\r\n .then(response=> response.objects(RowShare.Member))\r\n }\r\n\r\n static save(member: RowShare.Member)\r\n : Promise {\r\n return ApiUtils.apiPostJson('/member/save/', member).then(response => response.object(RowShare.Member));\r\n }\r\n\r\n static resendInvitation(member: RowShare.Member)\r\n : Promise {\r\n return ApiUtils.apiPostJson('/member/resendInvitation/', member).then(response => response.json());\r\n }\r\n static remove(member: RowShare.Member)\r\n : Promise {\r\n return ApiUtils.apiPostJson('/member/delete/', member).then(response => response.json());\r\n }\r\n\r\n static async addRowShareSupport(organizationId: string)\r\n : Promise | null> {\r\n const data = { OrganizationId: organizationId };\r\n let response = await ApiUtils.apiPostJson('/member/addRowShareSupport/', data);\r\n return response.object(ApiResult);\r\n }\r\n\r\n static async removeRowShareSupport(organizationId: string)\r\n : Promise | null> {\r\n const data = { OrganizationId: organizationId};\r\n let response = await ApiUtils.apiPostJson('/member/removeRowShareSupport/', data);\r\n return response.object(ApiResult);\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\nimport { AddOrganization } from '@/models/RowShare';\r\n\r\nexport class Organization {\r\n static load(id: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/organization/load/\" + ApiUtils.encodeSegment(id), options)\r\n .then(response => response.nullableObject(RowShare.Organization));\r\n }\r\n\r\n static loadall(options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/organization/loadall\", options)\r\n .then(response => response.objects(RowShare.Organization));\r\n }\r\n\r\n static loadGroups(organizationId: string, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiPostJson(\"/group/loadforparent/\" + organizationId, options)\r\n .then(response=> response.objects(RowShare.Group))\r\n }\r\n\r\n static loadSecurityPrincipal(organizationId: string, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiPostJson(\"/securityprincipal/loadforparent/\" + organizationId, options)\r\n .then(response=> response.objects(RowShare.FolderAccess))\r\n }\r\n\r\n static trialSetup(organization: AddOrganization, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiPostJson(\"/organization/trial\", organization, options)\r\n .then(response=> response.object(RowShare.Organization))\r\n }\r\n\r\n static getLimits(organizationId: string, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false}, options);\r\n return ApiUtils.apiGet(\"/organization/GetLimits/\" + ApiUtils.encodeSegment(organizationId), options)\r\n .then(response=> response.objects(RowShare.SubscriptionLimit))\r\n }\r\n\r\n static loadPortalConfig(id: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n var url = \"/organization/LoadPortalConfig/\" + id;\r\n return ApiUtils.apiGet(url, options).then(response => response.object(RowShare.PortalConfig));\r\n }\r\n \r\n static getMonthlyQuotation(id: string, usercount: number, currency: string, planId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n var data = {organizationId: id, userCount: usercount, currency: currency, planId: planId};\r\n var url = \"/organization/GetMonthlyQuotation\";\r\n return ApiUtils.apiPostJson(url, data, options).then(response => response.object(RowShare.Quotation));\r\n }\r\n\r\n static getAnnualQuotation(id: string, usercount: number, currency: string, planId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n var data = {organizationId: id, userCount: usercount, currency: currency, planId: planId};\r\n var url = \"/organization/GetAnnualQuotation\";\r\n return ApiUtils.apiPostJson(url, data, options).then(response => response.object(RowShare.Quotation));\r\n }\r\n\r\n static loadCheckoutFromQuotation(quotation: RowShare.Quotation, options: IRequestOptions | null = null) {\r\n var url = \"/organization/LoadCheckoutFromQuotation\";\r\n return ApiUtils.apiPostJson(url, quotation, options).then(response => response.object(RowShare.HostedPage));\r\n }\r\n\r\n static cancelSubscription(orgId: string, options: IRequestOptions | null = null)\r\n :Promise {\r\n var url = \"/organization/CancelSubscription/\" + orgId;\r\n return ApiUtils.apiGet(url, options).then(response => response.json());\r\n }\r\n\r\n static save(organization: Organization, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiPostJson(\"/organization/save\", organization, options)\r\n .then(response=> response.object(RowShare.Organization))\r\n }\r\n\r\n static saveWithFile(organization: RowShare.Organization, file: Object | FileList | File | Blob | null, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiPostJsonWithFiles(`/organization/save/${organization.Id}`, organization, file, options)\r\n .then(response=> response.object(RowShare.Organization))\r\n }\r\n\r\n static getCurrentSubscriptionId(orgId: string, options: IRequestOptions | null = null)\r\n :Promise {\r\n options = ApiUtils.createRequestOptions({cache: true}, options);\r\n let url = '/organization/CurrentSubscriptionId/' + orgId;\r\n return ApiUtils.apiGet(url, options).then(response => response.json() ?? null);\r\n }\r\n\r\n static getCurrentPlanId(orgId: string, options: IRequestOptions | null = null)\r\n :Promise {\r\n options = ApiUtils.createRequestOptions({cache: true}, options);\r\n let url = '/organization/CurrentPlanId/' + orgId;\r\n return ApiUtils.apiGet(url, options).then(response => response.json() ?? null);\r\n }\r\n\r\n static deleteSubscription(orgId: string, nameConfirmation: string, options: IRequestOptions | null = null)\r\n :Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiPostJson(\"/organization/delete\", {OrgId: orgId, NameConfirmation: nameConfirmation}, options)\r\n .then(response=> response.json() ?? false)\r\n }\r\n\r\n static getConfiguratorPlans(options: IRequestOptions | null = null)\r\n :Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true}, options);\r\n return ApiUtils.apiGet(\"/organization/getConfiguratorPlans\", options)\r\n .then(response => response.objects(RowShare.Plan));\r\n }\r\n\r\n static GetInvitationMessage(id: string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/organization/GetInvitationMessage/\" + ApiUtils.encodeSegment(id), options)\r\n .then(response => response.json() ?? null);\r\n }\r\n\r\n\r\n static SetInvitationMessage(orgId: string, message: string | null, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/organization/SetInvitationMessage\", {OrgId: orgId, Message: message}, options)\r\n .then(response=> response.json() ?? false)\r\n }\r\n\r\n static refreshBillingInfos(orgId: string, options: IRequestOptions | null = null)\r\n :Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/organization/refreshbillinginfos/\" + ApiUtils.encodeSegment(orgId), options)\r\n .then(response => response.json() ?? false);\r\n }\r\n\r\n static estimateSubscriptionUpdate(ordId: string, userCount: number, options: IRequestOptions | null = null)\r\n :Promise | null> {\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n var data = { customerId: ordId, userQuantity: userCount};\r\n return ApiUtils.apiPostJson(\"/organization/UpdateSubscriptionEstimate\", data, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static updateSubscription(orgid: string, userCount: number, options: IRequestOptions | null = null)\r\n :Promise | null> {\r\n options = ApiUtils.createRequestOptions({cache: false, clearCache: true}, options);\r\n var data = {customerId: orgid, userQuantity: userCount};\r\n return ApiUtils.apiPostJson(\"/organization/UpdateSubscription\", data, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { ApiResult } from \"@/models/ApiResult\";\r\n\r\nexport class Report {\r\n static load(id: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/report/load/\" + ApiUtils.encodeSegment(id), options)\r\n .then(response => response.object(RowShare.Report));\r\n }\r\n\r\n static loadByList(listId: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/report/loadforparent/\" + ApiUtils.encodeSegment(listId), options)\r\n .then(response => response.objects(RowShare.Report));\r\n }\r\n\r\n static remove(id: string, options: IRequestOptions | null = null)\r\n : Promise {\r\n return ApiUtils.apiPostJson(\"/report/delete/\", { Id: id }, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json());\r\n }\r\n\r\n\r\n static save(report: Report, options: IRequestOptions | null = null)\r\n : Promise {\r\n return ApiUtils.apiPostJson(\"/report/save/\", report, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.object(RowShare.Report));\r\n }\r\n\r\n static saveProperty(propertyName: \"file\", reportId: string, data: any, options: IRequestOptions | null = null)\r\n : Promise {\r\n return ApiUtils.apiPostJson(\"/report/save/\" + ApiUtils.encodeSegment(reportId) + \"/\" + ApiUtils.encodeSegment(propertyName), \r\n data, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.object(RowShare.Report));\r\n }\r\n\r\n static createJob(reportId: string, format: RowShare.ReportFormat, rowIds: string[] | null, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/report/export/\" + ApiUtils.encodeSegment(reportId) + \"/\" + ApiUtils.encodeSegment(format),\r\n { rowIds: rowIds }, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json>());\r\n }\r\n\r\n static test(reportId: string, format: RowShare.ReportFormat, options: IRequestOptions | null = null) : Promise {\r\n var url = \"/report/test/\" + ApiUtils.encodeSegment(reportId) + \"/\" + ApiUtils.encodeSegment(format); \r\n return ApiUtils.apiPostJson(url, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.object(RowShare.Job));\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\nimport { OwnerAssign } from '@/viewModels/Table/OwnerViewModel';\r\nimport { Utils } from \"@/utils/Utilities\";\r\nimport { ApiResult } from \"@/models/ApiResult\";\r\n\r\nexport class Row {\r\n\r\n static load(id: string, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/row/load/\" + ApiUtils.encodeSegment(id) + \"?v3=true\", options)\r\n .then(response => response.object(Models.Row));\r\n }\r\n\r\n static loadForList(listId: string | null, status: Models.DataStatus = Models.DataStatus.Normal, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let onlySummary = true;\r\n if (status != Models.DataStatus.Normal)\r\n onlySummary = false;\r\n return ApiUtils.apiGet(\"/row/loadforparent/\" + ApiUtils.encodeSegment(listId || \"\") + \"?v3=true&onlySummary=\" + onlySummary+ \"&status=\" + status, options)\r\n .then(response => response.objects(Models.Row));\r\n }\r\n\r\n static async loadAssignableContacts(listId: string | null, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let contacts = await ApiUtils.apiGet(\"/contact/loadforparent/\" + ApiUtils.encodeSegment(listId || \"\"), options);\r\n return contacts.objects(Models.Owner);\r\n }\r\n\r\n static async loadAssignableGroups(organisationId: string | null, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let groups = await ApiUtils.apiGet(\"/group/loadforparent/\" + ApiUtils.encodeSegment(organisationId || \"\"), options);\r\n return groups.objects(Models.Group);\r\n }\r\n\r\n static async assignRowOwner(owner: OwnerAssign | null, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let groups = await ApiUtils.apiPostJson(\"/row/assign?v3=true\", owner, options);\r\n return groups.object(Models.Row);\r\n }\r\n\r\n static save(row: Partial, files: any | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n if(Utils.isNullOrUndefined(files)) {\r\n return ApiUtils.apiPostJson(\"/row/save?v3=true\", row, options).then(response => response.object(Models.Row));\r\n }\r\n else {\r\n return ApiUtils.apiPostJsonWithFiles(\"/row/save?v3=true\", row, files, options).then(response => response.object(Models.Row));\r\n }\r\n }\r\n\r\n static saveWithoutFile(row: Partial, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/row/save?v3=true\", row, options)\r\n .then(response => response.object(Models.Row));\r\n }\r\n\r\n static saveWithFile(row: Models.Row, fileColumnName: string, file: Object | FileList | File | Blob | null, options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJsonWithFilesAndColumnName(\"/row/save?v3=true\", row, fileColumnName, file, options)\r\n .then(response => response.object(Models.Row));\r\n\r\n }\r\n\r\n static async loadRowComments(rowId: string, columnIndex: number, options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let comments = await ApiUtils.apiGet(`/comment/loadforparent/${rowId}/${columnIndex}`, options);\r\n return comments.objects(Models.CommentDetails);\r\n }\r\n\r\n static async saveRowComment(rowId: string, columnIndex: number, content: string, rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let data = { RowId: rowId, ColumnIndex: columnIndex, Content: content, RtcConnectionId: rtcConnectionId };\r\n let savedComment = await ApiUtils.apiPostJson(\"/comment/save\", data, options);\r\n return savedComment.object(Models.CommentDetails);\r\n }\r\n\r\n static async deleteRowComment(comment: Models.CommentDetails, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let removedComment = await ApiUtils.apiPostJson(\"/comment/delete\", comment, options);\r\n return removedComment.object(Models.CommentDetails);\r\n }\r\n\r\n static async deleteRowFile(rowId: string, columnIndex: number, rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let removedFile = await ApiUtils.apiPostJson(`/row/delete/${rowId}/${columnIndex}?v3=true`, {RtcConnectionId: rtcConnectionId}, options);\r\n return removedFile.object(Models.Row);\r\n }\r\n\r\n static async deleteRow(rowId: string, updateVersion: string, rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n let removeData = { Id: rowId, Version: updateVersion, RtcConnectionId: rtcConnectionId};\r\n let removedRow = await ApiUtils.apiPostJson('/row/delete', removeData, options);\r\n return removedRow.json();\r\n }\r\n\r\n static async deleteBatch(rowIds: string[], hardDelete: boolean, rtcConnectionId: string | null = null, options: IRequestOptions | null = null): Promise {\r\n options = ApiUtils.createRequestOptions({ clearCache: true }, options);\r\n let data = {hardDelete: hardDelete, rowIds: rowIds, RtcConnectionId: rtcConnectionId};\r\n return (await ApiUtils.apiPostJson(\"/row/deleteBatch/\", data, options)).json();\r\n }\r\n\r\n static async clone(rowId: string, insertAtBottom: boolean, rtcConnectionId: string | null = null, options: IRequestOptions | null = null): Promise {\r\n options = ApiUtils.createRequestOptions({ clearCache: true }, options);\r\n let data = {\r\n Id: rowId,\r\n RtcConnectionId: rtcConnectionId,\r\n Options :{\r\n InsertAtBottom: insertAtBottom,\r\n CopyCreatedByUser: true\r\n }\r\n };\r\n return ApiUtils.apiPostJson(\"/row/clone?v3=true\", data, options).then(response => response.object(Models.Row));\r\n }\r\n\r\n static async cloneMultiple(rowIds: string[], insertAtBottom: boolean, rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ clearCache: true }, options);\r\n let data = {\r\n rowIds: rowIds,\r\n RtcConnectionId: rtcConnectionId,\r\n Options :{\r\n InsertAtBottom: insertAtBottom,\r\n CopyCreatedByUser: true\r\n }\r\n };\r\n return ApiUtils.apiPostJson(\"/row/clonemultiple?v3=true\", data, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async copy(sourceListId: string | null, targetListId: string | null, rowIds: string[], options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(`/row/copy/${ApiUtils.encodeSegment(sourceListId)}/${ApiUtils.encodeSegment(targetListId)}`, { rowIds: rowIds }, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async move(sourceListId: string | null, targetListId: string | null, rowIds: string[], moveBlobInsteadOfCopy: boolean, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(`/row/move/${ApiUtils.encodeSegment(sourceListId)}/${ApiUtils.encodeSegment(targetListId)}`, { rowIds: rowIds, moveBlobInsteadOfCopy: moveBlobInsteadOfCopy }, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async getRowOwners(rowIds: string[], options: IRequestOptions | null = null) \r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiPostJson(\"/row/GetRowOwners/\", {rowIds: rowIds}, options)\r\n .then(response => response.objects(Models.Member));\r\n }\r\n\r\n static async SendOwnerReminders(rowIds: string[], message: string, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({clearCache: true}, options);\r\n let data = {\r\n rowIds: rowIds,\r\n message: message\r\n };\r\n return ApiUtils.apiPostJson(\"/row/SendOwnerReminders/\", data, options)\r\n .then(response => response.objects(Models.Member));\r\n }\r\n\r\n static async Restore(rowIds: string[], options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/row/Restore/\", {rowIds: rowIds}, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async archive(rowIds: string[], rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/row/Archive\", {rowIds: rowIds, RtcConnectionId: rtcConnectionId}, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async unarchive(rowIds: string[], rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/row/Unarchive\", {rowIds: rowIds, RtcConnectionId: rtcConnectionId}, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async lock(rowIds: string[], rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/row/lock\", {rowIds: rowIds, RtcConnectionId: rtcConnectionId}, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async unlock(rowIds: string[], rtcConnectionId: string | null = null, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/row/unlock\", {rowIds: rowIds, RtcConnectionId: rtcConnectionId}, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static async loadMultiple(rowIds: string[], options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n return ApiUtils.apiPostJson(\"/row/loadmultiple\", {rowIds: rowIds}, options)\r\n .then(response => response.json>());\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\n\r\nexport class SecurityPrincipal {\r\n static async loadForOrganization(id: string, includeTeams: boolean, options: IRequestOptions | null = null)\r\n : Promise | null> {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/securityprincipal/loadforparent/\" + ApiUtils.encodeSegment(id) + (includeTeams ? \"/true\" : \"\"), options)\r\n .then(response => response.objects(RowShare.SecurityPrincipal));\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport { Utils } from \"@/utils/Utilities\";\r\n\r\nexport class SocialProvider {\r\n static async login(providerName: string, returnUrl: string = \"\", inviteLinkId: string = \"\", options: IRequestOptions | null = null) : Promise {\r\n return SocialProvider.loginOrSignup(\"login\", providerName, returnUrl, inviteLinkId, options)\r\n }\r\n\r\n static async signup(providerName: string, returnUrl: string = \"\", inviteLinkId: string = \"\", options: IRequestOptions | null = null) : Promise {\r\n return SocialProvider.loginOrSignup(\"signup\", providerName, returnUrl, inviteLinkId, options)\r\n }\r\n\r\n private static async loginOrSignup(action: string, providerName: string, returnUrl: string = \"\", inviteLinkId: string = \"\", options: IRequestOptions | null = null) \r\n : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n let queryString = returnUrl !== \"\" ? `?ReturnUrl=${ApiUtils.encodeSegment(returnUrl)}` : \"\";\r\n if(!Utils.isNullOrWhiteSpace(inviteLinkId)) {\r\n queryString += Utils.isNullOrWhiteSpace(queryString) ? \"?\" : \"&\";\r\n queryString += `inviteLinkId=${ApiUtils.encodeSegment(inviteLinkId)}`;\r\n }\r\n return await ApiUtils.apiGet(`/socialproviders/${action}/${providerName}${queryString}`, options)\r\n .then(response => response.json());\r\n }\r\n}","import { IRequestOptions, ApiUtils } from './ApiUtils';\r\nimport { Timezone } from '@/models/Timezone';\r\n\r\n\r\nexport class TimezoneService {\r\n static loadByCulture(culture : string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/timezone/loadByCulture/\" + culture, options)\r\n .then(response => response.json>());\r\n }\r\n}","import { LocaleMessages, LocaleMessageObject } from 'vue-i18n';\r\nimport { ApiUtils, IRequestOptions } from './ApiUtils';\r\n\r\nexport class Translation {\r\n static loadAll(options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/translation/loadall\", options)\r\n .then(response => response.json());\r\n }\r\n\r\n static load(lang: string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/translation/load/\" + lang, options)\r\n .then(response => response.json());\r\n }\r\n}","import { ApiUtils, IRequestOptions, RowShareException } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\nimport { Logger } from \"@/utils/Logger\"\r\nimport { UserUnsubscription, ResetPassword } from '@/models/RowShare';\r\n\r\nexport class User {\r\n static load(options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/user\", options)\r\n .then(response => response.object(RowShare.User));\r\n }\r\n\r\n static loadByEmail(email: string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiPostJson(\"/user/email\", {email: email}, options)\r\n .then(response => response.object(RowShare.User));\r\n }\r\n\r\n static loadLanguage(options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/user/loadlanguage\", options)\r\n .then(response => response.json());\r\n }\r\n\r\n static changeLanguage(language: string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/user/changelanguage/\" + language, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static signup(signup: RowShare.SignupUser, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/user/signup/\", signup, options)\r\n .then(response => response.object(RowShare.User));\r\n }\r\n\r\n static signout(options: IRequestOptions | null = null) {\r\n return ApiUtils.apiGet(\"/user/signout/\", options)\r\n .then(response => response.json());\r\n }\r\n\r\n static async signin(signin: RowShare.SigninUser, options: IRequestOptions | null = null) : Promise<[boolean, RowShare.User | null]> {\r\n let returnedStatus = false;\r\n let returnedUser : RowShare.User | null = new RowShare.User();\r\n \r\n try {\r\n let response = await ApiUtils.apiPostJson(\"/user/signin/\", signin, options);\r\n if(response === null){\r\n return [returnedStatus, null];\r\n }\r\n returnedUser = response.object(RowShare.User);\r\n if(returnedUser.IsAnonymous) {\r\n return [returnedStatus, null];\r\n }\r\n returnedStatus = true;\r\n return [returnedStatus, returnedUser];\r\n }\r\n catch (error) { \r\n Logger.log(\"RowShare.Api\", \"warning\", error);\r\n let rsExc = error as RowShareException; \r\n if (rsExc) {\r\n if (rsExc.code == 96) { \r\n throw(error);\r\n }\r\n }\r\n return [returnedStatus, returnedUser];\r\n }\r\n }\r\n\r\n static async demoSignin(demoGuid: string, options: IRequestOptions | null = null) : Promise<[boolean, RowShare.User | null]> {\r\n let returnedStatus = false;\r\n let returnedUser : RowShare.User | null = new RowShare.User();\r\n\r\n try {\r\n let response = await ApiUtils.apiGet(\"/user/demoSignin/\" + demoGuid, options);\r\n if(response === null){\r\n return [returnedStatus, null];\r\n }\r\n returnedUser = response.object(RowShare.User);\r\n if(returnedUser.IsAnonymous) {\r\n return [returnedStatus, null];\r\n }\r\n returnedStatus = true;\r\n }\r\n catch (error) {\r\n Logger.log(\"RowShare.Api\", \"warning\", error);\r\n }\r\n finally {\r\n return [returnedStatus, returnedUser];\r\n }\r\n }\r\n\r\n static SocialLogin(provider: string, token: string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/user/sociallogin/\", {provider: provider, token: token}, options)\r\n .then(response => response.object(RowShare.User));\r\n }\r\n\r\n static async sendConfirmationCode(email: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiPostJson(\"/EmailConfirmationCode/create/\", {email: email}).then(response => response.json());\r\n }\r\n \r\n static async confirmEmail(data: string, options: IRequestOptions | null = null) : Promise{\r\n options = ApiUtils.createRequestOptions({cache: false}, options);\r\n return ApiUtils.apiGet(\"/user/confirmEmail/\" + data, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static validateUserEmail(emailToValidate: string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/user/validateUserEmail/\" + emailToValidate, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static Save(user : RowShare.User, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiPostJson(\"/user/save\", user, options)\r\n .then(response => response.object(RowShare.User));\r\n }\r\n\r\n static delete(options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/user/delete\", options)\r\n .then(response => response.json());\r\n }\r\n\r\n static unsubscribeEmail(unsubscribeInfo:UserUnsubscription, options:IRequestOptions | null = null){\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/user/unsubscribe\", unsubscribeInfo, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static deleteAccount(options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/user/deleteaccount\", null, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static canCurrentUserdeleteAccount(options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/user/candeleteaccount\", options)\r\n .then(response => response.object(RowShare.DeleteAccountData));\r\n }\r\n\r\n static resetPasswordRequest(resetPasswordRequest: RowShare.ResetPasswordRequest, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/user/PrepareUserForPasswordReset/\", resetPasswordRequest, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static resetPassword(resetPasswordInfo: ResetPassword, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/user/ResetPassword/\", resetPasswordInfo, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static validateToken(token: string, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiPostJson(\"/user/ValidateTokenToResetPassword/\", { Token: token }, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static CheckUserHasListForMsTeams(teamName: string | null = null, options: IRequestOptions | null = null) : Promise {\r\n options = ApiUtils.createRequestOptions({ cache: false }, options);\r\n return ApiUtils.apiGet(\"/user/CheckUserHasListForMsTeams/\" + (teamName ?? \"\"), options)\r\n .then(response => response.json());\r\n }\r\n\r\n static connectUserByIdToken(idToken: RowShare.IdTokenUser, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiPostJson(\"/user/connectUserByIdToken/\", idToken, options)\r\n .then(response => response.json());\r\n }\r\n\r\n static getUserEmailFromToken(token: RowShare.IdTokenUser, options: IRequestOptions | null = null) : Promise {\r\n return ApiUtils.apiPostJson(\"/user/getUserEmailFromToken/\", token, options)\r\n .then(response => response.json());\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as RowShare from \"@/models/RowShare\"\r\nimport { UserNotificationUpdate } from '@/models/RowShare';\r\n\r\nexport class UserNotificationLink {\r\n static loadAll(options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/usernotificationlink/loadall\", options)\r\n .then(response => response.json>());\r\n }\r\n\r\n static updateUserTableNotification(\r\n notification: UserNotificationUpdate, \r\n options: IRequestOptions | null = null) {\r\n return ApiUtils.apiPostJson(\"/usernotificationlink/save\", notification, options)\r\n .then(response => response.object(RowShare.UserNotificationLink));\r\n }\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\n\r\n\r\nexport class UserListLink {\r\n static loadByList(listId: string, options: IRequestOptions | null = null) {\r\n options = ApiUtils.createRequestOptions({ cache: true }, options);\r\n return ApiUtils.apiGet(\"/userlistlink/loadforparent/\" + listId, options)\r\n .then(response => {\r\n if (response && response.data && response.data.length > 0) {\r\n return response.object(RowShare.UserListLink);\r\n }\r\n else {\r\n return null;\r\n }\r\n });\r\n }\r\n\r\n static save(listId: string, types: RowShare.UserListLinkTypes, options: IRequestOptions | null = null) {\r\n return ApiUtils.apiPostJson(\"/userlistlink/save/\", { ListId: listId, Types: types }, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.object(RowShare.UserListLink));\r\n }\r\n\r\n static remove(listId: string, types: RowShare.UserListLinkTypes, options: IRequestOptions | null = null) {\r\n return ApiUtils.apiPostJson(\"/userlistlink/delete/\", { ListId: listId, Types: types }, ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.object(RowShare.UserListLink));\r\n }\r\n\r\n}","import { ApiUtils, IRequestOptions } from \"./ApiUtils\"\r\nimport * as Models from \"@/models/RowShare\"\r\n\r\nexport class View {\r\n static save(view: View, options: IRequestOptions | null = null) {\r\n (view).IsV3 = true;\r\n return ApiUtils.apiPostJson(\"/view/save/\", view, options)\r\n .then(response => response.object(Models.View));\r\n }\r\n\r\n static loadForParent(id: string, options: IRequestOptions | null = null) {\r\n return ApiUtils.apiGet(\"/view/loadforparent/\" + ApiUtils.encodeSegment(id) + \"/v3\", options)\r\n .then(response => response.objects(Models.View));\r\n }\r\n\r\n static remove(id: string, options: IRequestOptions | null = null) {\r\n return ApiUtils.apiGet(\"/view/delete/\" + ApiUtils.encodeSegment(id), ApiUtils.createRequestOptions({ clearCache: true }, options))\r\n .then(response => response.json());\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport { BreadcrumbFolder } from '@/models/RowShare';\r\nimport { JsonObjectSearch } from '@/utils/Search';\r\n\r\nexport class ListTreeHelper {\r\n\r\n private static retentionDelay : number = 5000; //5 seconds\r\n static getFolderInOrganization(listTree: RowShare.ListTree, organizationId: string, folderId: string | null): [Array, RowShare.ListTreeFolder] | null {\r\n if (listTree === null || organizationId === null || organizationId === undefined)\r\n return null;\r\n\r\n let orgTree = this.searchFullOrganizationTree(listTree, organizationId);\r\n if (orgTree == null)\r\n return null;\r\n\r\n if (!folderId || folderId == orgTree.RootFolder.Id)\r\n return [[{ Id: '', Name: orgTree.Name, IsRootFolder: true, IsTag: false }], orgTree.RootFolder];\r\n\r\n let folderTree = ListTreeHelper.findSubfolder(listTree, orgTree.RootFolder, folderId);\r\n if (folderTree) {\r\n folderTree[0].unshift({ Id: '', Name: orgTree.Name, IsRootFolder: true, IsTag: false });\r\n }\r\n return folderTree;\r\n }\r\n\r\n static getOrganizationTreeOrDefault(listTreeOrganizations: RowShare.ListTree, listTree: RowShare.ListTree | null, organizationId: string | null): RowShare.ListTreeOrganization | null | undefined {\r\n if (listTreeOrganizations === null || listTreeOrganizations.Organizations.length <= 0)\r\n return null;\r\n\r\n let currentOrg: RowShare.ListTreeOrganization | null | undefined;\r\n if (!organizationId) {\r\n currentOrg = listTreeOrganizations.Organizations.find(o => o.IsDefault);\r\n if (!currentOrg)\r\n currentOrg = listTreeOrganizations.Organizations[0];\r\n } else {\r\n currentOrg = listTreeOrganizations.Organizations.find(o => o.Id == organizationId);\r\n // switch back to default if an invalid ID is provided\r\n if (!currentOrg)\r\n currentOrg = ListTreeHelper.getOrganizationTreeOrDefault(listTreeOrganizations, listTree, null);\r\n }\r\n //we have now the current organization and its root folder from the listTreeOrganizations\r\n if (currentOrg && !listTree) {\r\n return currentOrg;\r\n }\r\n else if (currentOrg && listTree) {\r\n return ListTreeHelper.searchFullOrganizationTree(listTree, currentOrg.Id);\r\n }\r\n return null\r\n }\r\n\r\n\r\n static isLocalStoredAllOrganizationsFresh(): boolean {\r\n var locaStorageLastUpdate = localStorage.getItem(\"AllOrganizationsLastUpdate\");\r\n if (!locaStorageLastUpdate)\r\n return false;\r\n\r\n let lastUpdateTS = parseInt(locaStorageLastUpdate);\r\n // only using localstorage org if it was saved less than retention delay\r\n if (lastUpdateTS > ((new Date()).getTime() - (ListTreeHelper.retentionDelay)))\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n static isLocalStoredOrganizationFresh(orgId: string): boolean {\r\n\r\n var lastOrgId = localStorage.getItem(\"LastOrganizationId\");\r\n if (!lastOrgId || (lastOrgId != orgId))\r\n return false;\r\n\r\n var locaStorageLastUpdate = localStorage.getItem(\"CurrentOrganizationLastUpdate\");\r\n if (!locaStorageLastUpdate)\r\n return false;\r\n\r\n let lastUpdateTS = parseInt(locaStorageLastUpdate);\r\n // only using localstorage org if it was saved less than retention delay\r\n if (lastUpdateTS > ((new Date()).getTime() - (ListTreeHelper.retentionDelay)))\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n static setLocalStoreOrganizationsTree(organizationsTree: RowShare.ListTree) {\r\n if (organizationsTree.Organizations.length > 0) {\r\n localStorage.setItem(\"AllOrganizationsLastUpdate\", (new Date()).getTime().toString());\r\n localStorage.setItem(\"AllOrganizationsTree\", JSON.stringify(organizationsTree));\r\n }\r\n else\r\n {\r\n this.resetLocalStoreOrganizationsTree();\r\n }\r\n }\r\n\r\n static resetLocalStoreOrganizationsTree() {\r\n localStorage.removeItem(\"AllOrganizationsLastUpdate\");\r\n localStorage.removeItem(\"AllOrganizationsTree\");\r\n }\r\n\r\n static getLocalStoreListTree(): RowShare.ListTree | null {\r\n let storedOrg = localStorage.getItem(\"CurrentOrganization\");\r\n if (!storedOrg)\r\n return null;\r\n let org: RowShare.ListTree = JSON.parse(storedOrg);\r\n return org;\r\n }\r\n\r\n static resetLocalStoreCurrentOrganization() {\r\n localStorage.removeItem(\"CurrentOrganizationLastUpdate\");\r\n localStorage.removeItem(\"CurrentOrganizationId\");\r\n localStorage.removeItem(\"CurrentOrganization\");\r\n }\r\n\r\n static setLocalStoreCurrentOrganization(listTree: RowShare.ListTree) {\r\n localStorage.setItem(\"CurrentOrganizationLastUpdate\", (new Date()).getTime().toString());\r\n localStorage.setItem(\"LastOrganizationId\", listTree.Organizations[0].Id);\r\n localStorage.setItem(\"CurrentOrganizationId\", listTree.Organizations[0].Id);\r\n localStorage.setItem(\"CurrentOrganization\", JSON.stringify(listTree));\r\n }\r\n\r\n static getLocalStoreOrganizationsTree(): RowShare.ListTree | null {\r\n if (ListTreeHelper.isLocalStoredAllOrganizationsFresh()) {\r\n let storedOrgs = localStorage.getItem(\"AllOrganizationsTree\");\r\n if (!storedOrgs)\r\n return null;\r\n let orgs: RowShare.ListTree = JSON.parse(storedOrgs);\r\n return orgs;\r\n }\r\n return null;\r\n }\r\n\r\n static getPathElementsOrDefault(listTree: RowShare.ListTree, organizationId: string, folderId: string | null): { organization: RowShare.ListTreeOrganization, folder: RowShare.ListTreeFolder | null, breadcrumb: BreadcrumbFolder[] | null } {\r\n if (!listTree || !listTree.Organizations || listTree.Organizations.length<=0)\r\n throw new Error(\"Organization not found\");\r\n var organization = listTree.Organizations[0];\r\n let { folder, breadcrumb }: { folder: RowShare.ListTreeFolder | null; breadcrumb: RowShare.BreadcrumbFolder[] | null; } = ListTreeHelper.getFolderAndBreadCrumb(listTree, organizationId, folderId);\r\n return { organization, folder, breadcrumb };\r\n }\r\n\r\n public static getFolderAndBreadCrumb(listTree: RowShare.ListTree, organizationId: string, folderId: string | null) {\r\n let folderAndBreadcrumb = ListTreeHelper.getFolderInOrganization(listTree, organizationId, folderId);\r\n let folder: RowShare.ListTreeFolder | null = null;\r\n let breadcrumb: RowShare.BreadcrumbFolder[] | null = null;\r\n if (folderAndBreadcrumb && folderAndBreadcrumb.length >= 2) {\r\n folder = folderAndBreadcrumb[1];\r\n breadcrumb = folderAndBreadcrumb[0];\r\n }\r\n return { folder, breadcrumb };\r\n }\r\n\r\n static IsKnownList(listTree: RowShare.ListTree | null, listId: string) : boolean{\r\n if (listTree == null)\r\n return false;\r\n const orgs = listTree.Organizations;\r\n for (let orgIdx = 0; orgIdx < orgs.length; ++orgIdx) {\r\n var org = orgs[orgIdx];\r\n var listInOrg = ListTreeHelper.findListInFolder(listTree, org, org.RootFolder, listId);\r\n if (listInOrg)\r\n return true;\r\n }\r\n return false;\r\n\r\n }\r\n\r\n static getPathElementsForList(listTree: RowShare.ListTree | null, listId: string): { organization: RowShare.ListTreeOrganization, folder: RowShare.ListTreeFolder | null, breadcrumb: BreadcrumbFolder[] | null } | null {\r\n if (listTree == null)\r\n return null;\r\n\r\n const orgs = listTree.Organizations;\r\n for (let orgIdx = 0; orgIdx < orgs.length; ++orgIdx) {\r\n var org = orgs[orgIdx];\r\n var listInOrg = ListTreeHelper.findListInFolder(listTree, org, org.RootFolder, listId);\r\n if (listInOrg)\r\n return { organization: org, folder: listInOrg[1], breadcrumb: listInOrg[0] };\r\n }\r\n return null;\r\n }\r\n\r\n static findListInFolder(listTree: RowShare.ListTree, org: RowShare.ListTreeOrganization, folder: RowShare.ListTreeFolder, listId: string): [Array, RowShare.ListTreeFolder] | null {\r\n let directChild = folder.Lists.find(l => l.Id == listId);\r\n if (directChild) {\r\n if (folder.Id == org.RootFolder.Id)\r\n return [[{ Id: \"\", Name: org.Name, IsRootFolder: true, IsTag: false }], folder];\r\n else\r\n return [[{ Id: folder.Id, Name: folder.Name, IsRootFolder: false, IsTag: false }], folder];\r\n }\r\n\r\n for (let i = 0; i < folder.Folders.length; ++i) {\r\n var tmpRes = ListTreeHelper.findListInFolder(listTree, org, folder.Folders[i], listId);\r\n if (tmpRes) {\r\n if (folder.Id == org.RootFolder.Id)\r\n tmpRes[0].unshift({ Id: \"\", Name: org.Name, IsRootFolder: true, IsTag: false });\r\n else\r\n tmpRes[0].unshift({ Id: folder.Id, Name: folder.Name, IsRootFolder: false, IsTag: false });\r\n\r\n return tmpRes;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n static findSubfolder(listTree: RowShare.ListTree, parentFolder: RowShare.ListTreeFolder, folderId: string): [Array, RowShare.ListTreeFolder] | null {\r\n let directChild = parentFolder.Folders.find(f => f.Id == folderId);\r\n if (directChild)\r\n return [[{ Id: directChild.Id, Name: directChild.Name, IsRootFolder: false, IsTag: false }], directChild];\r\n\r\n for (let i = 0; i < parentFolder.Folders.length; ++i) {\r\n var tmpRes = ListTreeHelper.findSubfolder(listTree, parentFolder.Folders[i], folderId);\r\n if (tmpRes) {\r\n tmpRes[0].unshift({ Id: parentFolder.Folders[i].Id, Name: parentFolder.Folders[i].Name, IsRootFolder: false, IsTag: false });\r\n return tmpRes;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n static getAuthorizedPaths(listTree: RowShare.ListTree, folder: RowShare.ListTreeFolder, organizationId: string, res: Array) {\r\n if (!folder)\r\n return;\r\n\r\n if (folder.CanCurrentUserCreateList && !folder.IsRecycleBin) {\r\n res.push({ text: folder.Path, value: { folderId: folder.Id, organizationId: organizationId } });\r\n }\r\n if (folder.Folders.length > 0) {\r\n folder.Folders.forEach(subFolder => {\r\n ListTreeHelper.getAuthorizedPaths(listTree, subFolder, organizationId, res);\r\n });\r\n }\r\n\r\n }\r\n\r\n static getRecycleBin(listTree: RowShare.ListTree, organizationId: string): RowShare.ListTreeFolder | null {\r\n let organizationTree = ListTreeHelper.searchFullOrganizationTree(listTree, organizationId);\r\n if (organizationTree) {\r\n let folderRecycleBin = organizationTree.RootFolder.Folders.find(folder => folder.IsRecycleBin);\r\n if (folderRecycleBin)\r\n return folderRecycleBin;\r\n }\r\n return null;\r\n }\r\n\r\n static getFolderByNameInParentFolder(listTree: RowShare.ListTree, organizationId: string, parentFolderId: string | null, name: string): RowShare.ListTreeFolder | null {\r\n let parentFolder = ListTreeHelper.getFolderInOrganization(listTree, organizationId, parentFolderId);\r\n if (parentFolder) {\r\n let folder = parentFolder[1].Folders.find(f => f.Name.toLowerCase() == name.toLowerCase());\r\n if (folder)\r\n return folder;\r\n }\r\n return null;\r\n }\r\n\r\n static getListByNameInParentFolder(listTree: RowShare.ListTree, organizationId: string, parentFolderId: string | null, name: string): RowShare.ListThumbnailInfo | null {\r\n let parentFolder = ListTreeHelper.getFolderInOrganization(listTree, organizationId, parentFolderId);\r\n if (parentFolder) {\r\n let list = parentFolder[1].Lists.find(f => f.Name.toLowerCase() == name.toLowerCase());\r\n if (list)\r\n return list;\r\n }\r\n return null;\r\n }\r\n\r\n static searchFullOrganizationTree(listTree: RowShare.ListTree, organizationId: string) {\r\n let searchedOrganization = listTree ?\r\n listTree.Organizations.find((f) => f.Id == organizationId) :\r\n null;\r\n return searchedOrganization;\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport { Module, VuexModule, Mutation, Action, MutationAction, getModule } from 'vuex-module-decorators'\r\nimport * as API from '@/api/Api';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport { ListTreeHelper } from '@/utils/ListTreeHelper';\r\nimport store from '@/modules/Store';\r\nimport { TrackingUtils } from '@/utils/Tracking';\r\n\r\n@Module({ dynamic: true, store: store, name: 'ListTreeStore' })\r\nexport class ListTreeStore extends VuexModule {\r\n\r\n /** getters **/\r\n\r\n //organizations structure, with all folders and lists, favorites and recents\r\n listTree: RowShare.ListTree | null = null;\r\n\r\n //all user's organizations, with root folders only\r\n organizationsTree: RowShare.ListTree | null = null;\r\n\r\n currentOrganizationId: string | null = localStorage[\"CurrentOrganizationId\"] ?? null;\r\n\r\n currentOrganization: RowShare.ListTreeOrganization | null = null;\r\n\r\n currentFolder: RowShare.ListTreeFolder | null = null;\r\n\r\n currentBreadcrumb: RowShare.BreadcrumbFolder[] | null = null;\r\n\r\n currentList: RowShare.List | null = null;\r\n\r\n currentListCapabilities: RowShare.ListCapabilities | null = null;\r\n\r\n currentListDisplayedRows: RowShare.DisplayedRows = RowShare.DisplayedRows.Active;\r\n\r\n currentSmallSiteLogoPath: string | null = null;\r\n\r\n currentFullSiteLogoPath: string | null = null;\r\n\r\n /** mutations **/\r\n @Mutation\r\n private loadCurrentLogosIntoStore(payload: { fullSiteLogoPath: string | null, smallSiteLogoPath: string | null }): void {\r\n this.currentFullSiteLogoPath = payload.fullSiteLogoPath;\r\n this.currentSmallSiteLogoPath = payload.smallSiteLogoPath;\r\n }\r\n\r\n @Mutation\r\n private loadListTreeIntoStore(listTree: RowShare.ListTree | null): void {\r\n if (!this.organizationsTree || this.organizationsTree.Organizations.length <= 0\r\n || !this.currentOrganizationId) {\r\n throw new Error(\"organizationsTree should be initialized first\");\r\n }\r\n\r\n if (!listTree || listTree.Organizations.length <= 0) {\r\n ListTreeHelper.resetLocalStoreCurrentOrganization();\r\n this.listTree = null;\r\n this.currentOrganization = null;\r\n this.currentOrganizationId = null;\r\n this.currentFolder = null;\r\n this.currentBreadcrumb = null;\r\n } else {\r\n this.listTree = listTree;\r\n // current folder and organization should be either initialized if this is first load, or refreshed if this is a reload\r\n var pathElements = ListTreeHelper.getPathElementsOrDefault(listTree, this.currentOrganizationId, this.currentFolder?.Id ?? null);\r\n this.currentOrganization = pathElements.organization;\r\n this.currentOrganizationId = pathElements.organization.Id;\r\n this.currentFolder = pathElements.folder;\r\n this.currentBreadcrumb = pathElements.breadcrumb;\r\n }\r\n }\r\n\r\n @Mutation\r\n private loadOrganizationsTreeIntoStore(organizationsTree: RowShare.ListTree | null): void {\r\n if (!organizationsTree || organizationsTree.Organizations.length <= 0) {\r\n this.organizationsTree = null;\r\n ListTreeHelper.resetLocalStoreOrganizationsTree();\r\n\r\n } else {\r\n this.organizationsTree = organizationsTree;\r\n let currentOrgId = localStorage.getItem(\"CurrentOrganizationId\");\r\n if (!currentOrgId) {\r\n let defaultOrg = ListTreeHelper.getOrganizationTreeOrDefault(organizationsTree, null, null);\r\n if (defaultOrg && defaultOrg.Id && defaultOrg.RootFolder && defaultOrg.RootFolder.Id) {\r\n var tree: RowShare.ListTree;\r\n if (this.listTree) {\r\n tree = this.listTree;\r\n }\r\n else {\r\n tree = new RowShare.ListTree();\r\n tree.Organizations = new Array(1);\r\n tree.Organizations[0] = defaultOrg;\r\n }\r\n this.listTree = tree;\r\n if (!this.currentOrganizationId)\r\n this.currentOrganizationId = defaultOrg.Id;\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n @Mutation\r\n public loadCurrentOrganizationIdIntoStore(orgId: string | undefined): void {\r\n if (orgId) {\r\n if (this.currentOrganizationId != orgId)\r\n ListTreeHelper.resetLocalStoreCurrentOrganization();\r\n this.currentOrganizationId = orgId;\r\n }\r\n }\r\n\r\n @Mutation\r\n private loadCurrentListIntoStore(list: RowShare.List | null): void {\r\n var oldListId = this.currentList?.Id;\r\n this.currentList = list;\r\n\r\n // if the list is still the same, we don't refresh its capabilities\r\n // capabilities provider should listen to currentList changes and refresh capabilities if needed \r\n if (oldListId !== list?.Id) {\r\n this.currentListCapabilities = new RowShare.ListCapabilities();\r\n this.currentListDisplayedRows = RowShare.DisplayedRows.Active;\r\n\r\n }\r\n\r\n }\r\n\r\n @Mutation\r\n private loadCurrentListCapabilitiesIntoStore(listCapabilities: RowShare.ListCapabilities | null): void {\r\n this.currentListCapabilities = listCapabilities;\r\n }\r\n\r\n @Mutation\r\n private loadCurrentListDisplayedRowsIntoStore(displayedRows: RowShare.DisplayedRows | null): void {\r\n if (!displayedRows) {\r\n this.currentListDisplayedRows = RowShare.DisplayedRows.Active;\r\n }\r\n else {\r\n this.currentListDisplayedRows = displayedRows;\r\n }\r\n }\r\n\r\n @Mutation\r\n private updateCurrentFolderIntoStore(payload: { organizationId: string, folderId: string | null }) {\r\n if (!this.listTree || !this.organizationsTree) {\r\n //throw new Error(\"ListTree should be initialized first\");\r\n console.error(\"ListTree should be initialized first\");\r\n return;\r\n }\r\n\r\n var pathElements = ListTreeHelper.getPathElementsOrDefault(this.listTree, payload.organizationId, payload.folderId);\r\n this.currentOrganization = pathElements.organization;\r\n this.currentOrganizationId = payload.organizationId;\r\n this.currentFolder = pathElements.folder;\r\n this.currentBreadcrumb = pathElements.breadcrumb;\r\n // updateCurrentFolderIntoStore should not be used when there is an active list, see updateCurrentListPathIntoStore instead\r\n this.currentList = null;\r\n\r\n }\r\n\r\n @Mutation\r\n private updateCurrentListPathIntoStore(listId: string) {\r\n var pathElements = ListTreeHelper.getPathElementsForList(this.listTree, listId);\r\n\r\n // this is not an error, list with external access may be seen by people who won't find them in there listtree\r\n if (!pathElements)\r\n return;\r\n\r\n this.currentOrganization = pathElements.organization;\r\n this.currentOrganizationId = pathElements.organization.Id;\r\n this.currentFolder = pathElements.folder;\r\n this.currentBreadcrumb = pathElements.breadcrumb;\r\n }\r\n\r\n /** actions **/\r\n\r\n @Action({ rawError: true })\r\n async refreshListTreeIfMissingOrOutdated(): Promise {\r\n return this.refreshListTreeIfMissing(false);\r\n }\r\n\r\n @Action({ rawError: true })\r\n async refreshListTreeIfMissing(enforce: boolean | false): Promise {\r\n await this.refreshOrganizationsTreeIfMissing(false);\r\n if (!enforce && ListTreeHelper.isLocalStoredOrganizationFresh(this.currentOrganizationId!)) {\r\n this.context.commit('loadListTreeIntoStore', ListTreeHelper.getLocalStoreListTree());\r\n return;\r\n }\r\n else {\r\n await this.refreshListTree();\r\n return;\r\n }\r\n }\r\n\r\n @Action({ rawError: true })\r\n async refreshOrganizationsTreeIfMissingOrOutdated(): Promise {\r\n return this.refreshOrganizationsTreeIfMissing(false);\r\n }\r\n @Action({ rawError: true })\r\n async refreshOrganizationsTreeIfMissing(enforce: boolean | false): Promise {\r\n if (!enforce && ListTreeHelper.isLocalStoredAllOrganizationsFresh()) {\r\n this.context.commit('loadOrganizationsTreeIntoStore', ListTreeHelper.getLocalStoreOrganizationsTree());\r\n return;\r\n }\r\n else {\r\n await this.refreshOrganizationsTree();\r\n return;\r\n }\r\n }\r\n\r\n\r\n @Action({ rawError: true })\r\n async refreshListTree(): Promise {\r\n var promise = API.ListTree.load(this.currentOrganizationId).then(data => {\r\n ListTreeHelper.setLocalStoreCurrentOrganization(data);\r\n this.context.commit('loadListTreeIntoStore', data);\r\n }).catch(err => {\r\n console.error('Failed refreshing current org tree');\r\n throw err;\r\n });\r\n return promise;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async refreshOrganizationsTree(): Promise {\r\n\r\n var promise = API.ListTree.load().then(data => {\r\n ListTreeHelper.setLocalStoreOrganizationsTree(data);\r\n this.context.commit('loadOrganizationsTreeIntoStore', data);\r\n }).catch(err => {\r\n console.error('Failed refreshing all user orgs tree');\r\n throw err;\r\n });\r\n return promise;\r\n }\r\n\r\n @Action({ rawError: true })\r\n async updateCurrentFolder(payload: { organizationId: string | null, folderId: string | null }) {\r\n this.context.commit('updateCurrentFolderIntoStore', payload);\r\n TrackingUtils.UpdatePathContext();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async updateCurrentList(payload: { listId: string, allowSurvey: boolean }) {\r\n var promise = payload.allowSurvey\r\n ? API.List.loadForSurvey(payload.listId)\r\n : API.List.load(payload.listId);\r\n return promise;\r\n\r\n }\r\n\r\n @Action({ rawError: true })\r\n async updateCurrentListCapabilities(listCapabilities: RowShare.ListCapabilities | null) {\r\n this.context.commit('loadCurrentListCapabilitiesIntoStore', listCapabilities);\r\n }\r\n\r\n @Action({ rawError: true })\r\n async updateCurrentListDisplayedRows(displayedRows: RowShare.DisplayedRows | null) {\r\n this.context.commit('loadCurrentListDisplayedRowsIntoStore', displayedRows);\r\n }\r\n\r\n @Action({ rawError: true })\r\n async updateCurrentSiteLogos(orgId: string | null) {\r\n this.context.commit('loadCurrentLogosIntoStore', { fullSiteLogoPath: null, smallSiteLogoPath: null });\r\n if (orgId) {\r\n var org = await API.Organization.load(orgId);\r\n if (org) {\r\n this.context.commit('loadCurrentLogosIntoStore', { fullSiteLogoPath: org.FullSiteLogoPath, smallSiteLogoPath: org.SmallSiteLogoPath });\r\n }\r\n }\r\n }\r\n\r\n @Action({ rawError: true })\r\n async refreshOrganizationListTree(organizationId: string): Promise {\r\n var enforce: boolean | null = false;\r\n if (organizationId !== this.currentOrganizationId) {\r\n this.loadCurrentOrganizationIdIntoStore(organizationId); // in case of cross org action like clone list\r\n }\r\n\r\n return this.refreshListTreeIfMissing(true); // current organisation full tree refresh\r\n }\r\n\r\n // reload the list tree for a given org if it has not already been reloaded in the last 30 seconds\r\n @Action({ rawError: true })\r\n async refreshOrganizationListTreeIfMissingOrOutdated(organizationId: string): Promise {\r\n var enforce: boolean | null = false;\r\n if (organizationId !== this.currentOrganizationId) {\r\n this.loadCurrentOrganizationIdIntoStore(organizationId); // in case of cross org action like clone list\r\n enforce = true;\r\n }\r\n return this.refreshListTreeIfMissing(enforce);\r\n\r\n }\r\n\r\n @Action({ rawError: true })\r\n async createFolder(folderAndOrg: any): Promise {\r\n let createdFolder = await API.Folder.create(folderAndOrg.orgId, folderAndOrg.folderName, folderAndOrg.folderId);\r\n\r\n if (createdFolder)\r\n this.refreshListTree();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async renameFolder(folderAndOrg: any): Promise {\r\n await API.Folder.rename(folderAndOrg.folderName, folderAndOrg.folderId, folderAndOrg.parentFolderId);\r\n this.refreshListTree();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async removeFolder(deleteInfo: any): Promise {\r\n await API.Folder.moveToRecycleBin(deleteInfo.folderId);\r\n if (deleteInfo.recycleBin !== null)\r\n this.refreshListTree();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async setInheritAccess(inheritConfig: any): Promise {\r\n let modifiedFolder: RowShare.ListTreeFolder | null =\r\n await API.Folder.setInheritAccessMode(inheritConfig);\r\n if (modifiedFolder)\r\n this.refreshListTree();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async renameList(renameInfo: any): Promise {\r\n await API.List.save(renameInfo.renamedList);\r\n this.refreshListTree();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async moveList(moveInfo: any): Promise {\r\n let result = await API.List.move(moveInfo.listToMove);\r\n if (result != null) {\r\n this.refreshOrganizationListTree(moveInfo.organizationId); //may be cross org\r\n return result;\r\n }\r\n }\r\n\r\n @Action({ rawError: true })\r\n async moveToRecycleBin(moveToRecycleBinInfo: any): Promise {\r\n let result = await API.List.moveToRecycleBin(moveToRecycleBinInfo.listId);\r\n if (result)\r\n this.refreshListTree();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async emptyRecycleBin(infoToEmptyRecycleBin: any): Promise {\r\n await API.Folder.emptyRecycleBin(infoToEmptyRecycleBin.recycleBinId);\r\n this.refreshListTree();\r\n }\r\n\r\n @Action({ rawError: true })\r\n async cloneList(payload: { copyInfo: RowShare.CopyListInfo, organizationId: string }) {\r\n let result = await API.List.clone(payload.copyInfo);\r\n if (result != null) {\r\n this.refreshOrganizationListTree(payload.organizationId); //may be not in same organization\r\n return result;\r\n }\r\n }\r\n\r\n @Action({ rawError: true })\r\n async deleteList(payload: { listId: string, organizationId: string }) {\r\n let result = await API.List.delete(payload.listId);\r\n if (result)\r\n this.refreshListTree();\r\n }\r\n\r\n @Action({ rawError: true })\r\n refreshList(list: RowShare.List | null) {\r\n if (!list) {\r\n return;\r\n }\r\n let isPublicList = list.AllowPublic;\r\n let previousOrgId = localStorage.getItem(\"LastOrganizationId\");\r\n let This = this;\r\n\r\n if (isPublicList && !this.organizationsTree?.Organizations.find(o => o.Id === list.OrganizationId)) {\r\n //in case of public list , user can not have access to the list organisation and this is not an error\r\n //but we can not load organization tree related to the list organization\r\n //we refresh with previous one\r\n if (previousOrgId) {\r\n this.loadCurrentOrganizationIdIntoStore(previousOrgId);\r\n this.refreshOrganizationListTreeIfMissingOrOutdated(previousOrgId)\r\n .then(() => {\r\n This.refreshListPathAndStore(list);\r\n })\r\n .catch(() => {\r\n //even older organization is not accessible any more\r\n //choosing another one\r\n ListTreeHelper.resetLocalStoreCurrentOrganization();\r\n let otherorg: RowShare.ListTreeOrganization | undefined;\r\n if (This.organizationsTree &&\r\n This.organizationsTree.Organizations.length > 0) {\r\n otherorg = This.organizationsTree.Organizations.find(o => o.Id !== previousOrgId);\r\n }\r\n if (otherorg) {\r\n This.loadCurrentOrganizationIdIntoStore(otherorg.Id);\r\n This.refreshOrganizationListTreeIfMissingOrOutdated(otherorg.Id)\r\n .then(() => {\r\n This.refreshListPathAndStore(list);\r\n });\r\n }\r\n else //none\r\n {\r\n This.refreshListPathAndStore(list);\r\n }\r\n }\r\n );\r\n }\r\n else {\r\n //user has no organization at all but can see public list\r\n this.refreshListPathAndStore(list);\r\n }\r\n return;\r\n }\r\n\r\n //user may have several organizations and list to display not from default or previous displayed organization\r\n\r\n if (list.OrganizationId !== previousOrgId || !this.listTree) {\r\n this.loadCurrentOrganizationIdIntoStore(list.OrganizationId);\r\n }\r\n\r\n this.refreshOrganizationListTreeIfMissingOrOutdated(list.OrganizationId)\r\n .then(() => {\r\n let existent = ListTreeHelper.IsKnownList(this.listTree, list.Id);\r\n this.refreshListTreeIfMissing(!existent).then(\r\n () => {\r\n this.refreshListPathAndStore(list);\r\n }\r\n );\r\n });\r\n }\r\n\r\n @Action({ rawError: true })\r\n refreshListPathAndStore(list: RowShare.List) {\r\n this.context.commit('updateCurrentListPathIntoStore', list.Id);\r\n this.context.commit('loadCurrentListIntoStore', list);\r\n TrackingUtils.UpdatePathContext();\r\n }\r\n}\r\n\r\nexport const ListTreeModule = getModule(ListTreeStore)\r\n\r\n\r\n","import * as Model from '@/models/RowShare';\r\nimport * as API from '@/api/Api';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\n\r\ndeclare var dataLayer: any;\r\n\r\nexport class TrackingUtils {\r\n static async UpdatePathContext() {\r\n const currentDataLayer = dataLayer[0];\r\n if (currentDataLayer && currentDataLayer.user) {\r\n var dtUser = currentDataLayer.user;\r\n if(ListTreeModule.currentOrganization) {\r\n dtUser.OrganizationId = ListTreeModule.currentOrganization?.Id;\r\n dtUser.OrganizationName = ListTreeModule.currentOrganization?.Name;\r\n dtUser.OrganizationIsAdmin = ListTreeModule.currentOrganization?.CanCurrentUserManage;\r\n if(!ListTreeModule.currentOrganization?.IsEnabled) {\r\n dtUser.OrganizationBillingStatus = \"Disabled\";\r\n }\r\n else if(ListTreeModule.currentOrganization?.InTrial) {\r\n dtUser.OrganizationBillingStatus = \"Trial\";\r\n }\r\n else if (ListTreeModule.currentOrganization?.IsFree) {\r\n dtUser.OrganizationBillingStatus = \"Free\";\r\n }\r\n else {\r\n dtUser.OrganizationBillingStatus = \"Paying\";\r\n }\r\n }\r\n\r\n if(ListTreeModule.currentList) {\r\n dtUser.isListOwner = ListTreeModule.currentList.Owned;\r\n }\r\n else {\r\n dtUser.isListOwner = undefined;\r\n }\r\n\r\n document.dispatchEvent(new CustomEvent(\"dataLayerCompletion\"));\r\n }\r\n }\r\n \r\n static UpdateUserDataLayer(user: Model.User | null){\r\n const currentDataLayer = dataLayer[0];\r\n if (currentDataLayer && currentDataLayer.user) {\r\n if(!user){\r\n currentDataLayer.user = null;\r\n currentDataLayer.connected = false;\r\n currentDataLayer.userId = null;\r\n return;\r\n }\r\n\r\n var dtUser = currentDataLayer.user;\r\n Object.keys(dtUser).forEach(k =>{\r\n if(Object.keys(user).includes(k)) {\r\n dtUser[k] = (user)[k];\r\n }\r\n })\r\n currentDataLayer.connected = !user.IsAnonymous;\r\n currentDataLayer.userId = user.Identity;\r\n\r\n document.dispatchEvent(new CustomEvent(\"dataLayerCompletion\"));\r\n }\r\n }\r\n\r\n static UpdateIsMsTeamsAppDataLayer(isMsTeamsApp: boolean) {\r\n const currentDataLayer = dataLayer[0];\r\n if(currentDataLayer) {\r\n currentDataLayer.isMsTeamsApp = isMsTeamsApp;\r\n }\r\n }\r\n\r\n static addEventDataLayer(eventName: string) {\r\n dataLayer.push({\r\n 'event': eventName\r\n });\r\n }\r\n}","import { Module, VuexModule, Mutation, Action, MutationAction, getModule } from 'vuex-module-decorators'\r\nimport { CommandEvent } from '@/models/RowShare';\r\nimport { Event } from '@/models/Event';\r\nimport { Location as RouterLocation, Route } from \"vue-router\";\r\nimport store from '@/modules/Store';\r\nimport { TrackingUtils } from '@/utils/Tracking';\r\n\r\n@Module({ dynamic: true, store: store, name: 'ApplicationStore' })\r\nexport class ApplicationStore extends VuexModule {\r\n isInMobileApp = false;\r\n passwordRegex: string | null = '';\r\n loginPasswordRegex: string | null = '^.{6,64}$'; //to allow ood passwords\r\n mobileAppCommands = new Array();\r\n mobileAppPreviousLocation: RouterLocation | string = '';\r\n isMsTeamsApp: boolean = false;\r\n appInsightsKey: string = '';\r\n\r\n get getAppInsightsKey(): string {\r\n return this.appInsightsKey;\r\n }\r\n\r\n get getIsMobileStatus(): boolean {\r\n return this.isInMobileApp;\r\n }\r\n\r\n get getIsMsTeamsApp(): boolean {\r\n return this.isMsTeamsApp;\r\n }\r\n\r\n get getPasswordRegex(): string | null {\r\n return this.passwordRegex;\r\n }\r\n\r\n @Mutation\r\n updateAppInsightsKey(appInsightsKey: string) {\r\n this.appInsightsKey = appInsightsKey;\r\n }\r\n @Mutation\r\n updateDevice(isInMobileApp: boolean) {\r\n this.isInMobileApp = isInMobileApp;\r\n }\r\n\r\n @Mutation\r\n updatePasswordRegex(regex: string | null){\r\n this.passwordRegex = regex;\r\n }\r\n\r\n @Mutation\r\n updateIsMsTeamsApp(isMsTeamsApp: boolean) {\r\n this.isMsTeamsApp = isMsTeamsApp;\r\n TrackingUtils.UpdateIsMsTeamsAppDataLayer(true);\r\n }\r\n\r\n @Mutation\r\n updateAppCommands(commands: Array): void {\r\n this.mobileAppCommands = commands;\r\n }\r\n\r\n @Mutation\r\n updateAppPreviousLocation(location: RouterLocation | string): void {\r\n this.mobileAppPreviousLocation = location;\r\n }\r\n\r\n @Mutation\r\n toggleDescriptionDisplay(): void {\r\n let descriptionCommand = this.mobileAppCommands.find(c => c.eventName == Event.SHOW_DESCRIPTION_DIALOG);\r\n if(descriptionCommand){\r\n let currentState = descriptionCommand.isActive;\r\n descriptionCommand.isActive = !currentState;\r\n }\r\n }\r\n\r\n @Mutation\r\n toggleRecentDisplay(): void {\r\n let recentCommand = this.mobileAppCommands.find(c => c.eventName == Event.TOGGLE_RECENT);\r\n if(recentCommand){\r\n let currentState = recentCommand.isActive;\r\n recentCommand.isActive = !currentState;\r\n }\r\n }\r\n\r\n @Mutation\r\n toggleFavouriteDisplay(): void {\r\n let favouriteCommand = this.mobileAppCommands\r\n .find(c => c.eventName == Event.TOGGLE_FAVOURITE);\r\n if(favouriteCommand){\r\n let currentState = favouriteCommand.isActive;\r\n favouriteCommand.isActive = !currentState;\r\n }\r\n }\r\n}\r\n\r\nexport const ApplicationModule = getModule(ApplicationStore)","import { Module, VuexModule, Mutation, getModule } from 'vuex-module-decorators'\r\nimport store from '@/modules/Store';\r\n\r\n@Module({ dynamic: true, store: store, name: 'OnPremStore' })\r\nexport class OnPremStore extends VuexModule {\r\n isOnPrem = false;\r\n\r\n get getIsOnPrem(): boolean {\r\n return this.isOnPrem;\r\n }\r\n\r\n @Mutation\r\n updateIsOnPrem(isOnPrem: boolean) {\r\n this.isOnPrem = isOnPrem;\r\n }\r\n\r\n}\r\n\r\nexport const OnPremModule = getModule(OnPremStore)","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{attrs:{\"id\":\"default-layout\"}},[_c('rs-header'),_vm._v(\" \"),_c('v-main',[_vm._t(\"default\")],2),_vm._v(\" \"),_c('global-confirmation-dialog'),_vm._v(\" \"),_c('notification-stack'),_vm._v(\" \"),_c('upsell-dialog'),_vm._v(\" \"),_c('side-panel-form-view'),_vm._v(\" \"),_c('side-panel-sharing'),_vm._v(\" \"),_c('side-panel-column-permissions'),_vm._v(\" \"),_c('side-panel-table-settings'),_vm._v(\" \"),_c('side-panel-column-settings')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { localize, extend } from \"vee-validate\";\r\nimport en from 'vee-validate/dist/locale/en.json';\r\nimport fr from 'vee-validate/dist/locale/fr.json';\r\nimport es from 'vee-validate/dist/locale/es.json';\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport { required, email, min, max, confirmed, is, regex } from 'vee-validate/dist/rules';\r\n\r\n//This class is used for form validation. It provides a method to add validation rules,\r\n//to validate each input and to change language of error messages.\r\n@Component({})\r\nexport class FormValidation extends Vue{\r\n\r\n created(){\r\n this.addValidationRules(); \r\n }\r\n\r\n addValidationRules(){\r\n extend(\"required\",required);\r\n extend(\"email\",email);\r\n extend(\"min\", min);\r\n extend(\"max\", max);\r\n extend(\"confirmed\", confirmed);\r\n extend(\"is\", is);\r\n extend(\"regex\", regex);\r\n }\r\n\r\n getValidationState({ dirty = null, validated = null, valid = null }) {\r\n return dirty || validated ? valid : null;\r\n }\r\n \r\n setValidationLanguage(language:string){ \r\n //Vee-validate forms message errors\r\n switch(language){\r\n case(\"en\"):{\r\n localize(\"en\",en);\r\n break;\r\n }\r\n case(\"es\"):{\r\n localize(\"es\",es);\r\n break;\r\n }\r\n case(\"fr\"):{\r\n localize(\"fr\",fr);\r\n break;\r\n }\r\n default:{\r\n localize(\"en\",en);\r\n break;\r\n }\r\n }\r\n }\r\n};","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app-bar',{staticClass:\"rs-header\",attrs:{\"app\":\"\",\"color\":\"lightest\",\"height\":\"50\"}},[_c('v-toolbar-title',{staticClass:\"px-1 rs-header--title\"},[(_vm.$vuetify.breakpoint.mobile && _vm.previousLocation && _vm.previousLocation != '')?_c('v-icon',{staticClass:\"flex-grow-0 big-icon\",on:{\"click\":function($event){return _vm.previous(_vm.previousLocation)}}},[_vm._v(\"fas fa-chevron-left\")]):_c('router-link',{staticClass:\"pa-0 mx-0\",attrs:{\"to\":_vm.GetHomeUrl}},[(_vm.$vuetify.breakpoint.mobile)?_c('div',[(_vm.customSmallSiteLogoPath)?_c('v-img',{staticClass:\"logo-small d-sm-none ma-0\",attrs:{\"src\":'/' + _vm.customSmallSiteLogoPath,\"contain\":\"\"}}):_c('v-img',{staticClass:\"logo-small d-sm-none ma-0\",attrs:{\"src\":require(\"@/assets/static/images/logo_small.svg\"),\"contain\":\"\"}})],1):_c('div',[(_vm.customFullSiteLogoPath)?_c('v-img',{staticClass:\"logo d-none d-sm-block ma-0\",attrs:{\"src\":'/' + _vm.customFullSiteLogoPath,\"contain\":\"\"}}):_c('v-img',{staticClass:\"logo d-none d-sm-block ma-0\",attrs:{\"src\":require(\"@/assets/static/images/logo.svg\"),\"contain\":\"\"}})],1)])],1),_vm._v(\" \"),(_vm.isBreadcrumbVisible)?_c('v-divider',{staticClass:\"ml-2\",attrs:{\"vertical\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.isBreadcrumbVisible)?_c('v-breadcrumbs',{staticClass:\"header-breadcrumb\",class:_vm.$vuetify.breakpoint.mobile ? 'header-breadcrumb-mobile' : '',attrs:{\"items\":_vm.currentBreadcrumb},scopedSlots:_vm._u([{key:\"divider\",fn:function(){return [_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-chevron-right\")])]},proxy:true},{key:\"item\",fn:function({ item }){return [_c('v-breadcrumbs-item',{staticClass:\"header-breadcrumb-item\",class:_vm.currentBreadcrumb.length > 1 ? ' header-breadcrumb-item-icon-only' : '',attrs:{\"to\":_vm.getBreadcrumbLinkUrl(_vm.currentOrganization.Id, item),\"exact\":true}},[(item.IsRootFolder)?_c('div',{staticClass:\"header-breadcrumb-item-text\",class:_vm.isBreadcrumbRootInLongDisplay ? 'header-breadcrumb-item-text-long' : ''},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"fas fa-home\")]),_vm._v(\" \"),(_vm.currentBreadcrumb.length <= 1)?_c('span',{class:_vm.$vuetify.breakpoint.mobile ? 'ml-1' : 'ml-3',attrs:{\"title\":item.Name}},[_vm._v(\"\\n \"+_vm._s(item.Name)+\"\\n \")]):_vm._e()],1):_c('div',{staticClass:\"header-breadcrumb-item-text\",attrs:{\"title\":item.Name}},[_vm._v(_vm._s(item.Name))])])]}}],null,false,651652870)}):_vm._e(),_vm._v(\" \"),(_vm.demoUser)?_c('v-spacer'):_vm._e(),_vm._v(\" \"),(_vm.demoUser)?_c('v-toolbar-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Header_Demo'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.demoUser)?_c('v-btn',{staticClass:\"ml-2 white--text text-none\",attrs:{\"color\":\"#39c875\",\"small\":\"\"},on:{\"click\":_vm.scheduleDemo}},[_vm._v(_vm._s(_vm.$t('Header_ScheduleDemo')))]):_vm._e(),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-row',{staticClass:\"header-actions\",attrs:{\"justify\":\"end\"}},[(_vm.getUser!==null && _vm.getUser.IsAnonymous && !_vm.isSignUp && !_vm.isLogIn)?_c('div',{staticClass:\"btn-group\"},[(_vm.isNotOnPrem)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"href\":_vm.$t('Header_FeaturesUrl')}},[_vm._v(_vm._s(_vm.$t('Header_Features')))]):_vm._e(),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"href\":_vm.$t('Header_PricingUrl'),\"right\":\"\"}},[_vm._v(_vm._s(_vm.$t('Header_Pricing')))]):_vm._e(),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"href\":_vm.$t('Header_GetStartedUrl'),\"right\":\"\"}},[_vm._v(_vm._s(_vm.$t('Header_GetStarted')))]):_vm._e(),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"href\":_vm.$t('Header_BlogUrl'),\"right\":\"\"}},[_vm._v(_vm._s(_vm.$t('Header_Blog')))]):_vm._e(),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"to\":_vm.signInLink}},[_vm._v(_vm._s(_vm.$t('Header_Login')))]),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"href\":_vm.$t('Header_SignupUrl')}},[_vm._v(_vm._s(_vm.$t('Header_Signup')))]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.getUser!==null && !_vm.getUser.IsAnonymous && !_vm.isSignUp && !_vm.isLogIn && !_vm.currentListFromOtherOrg)?_c('div',{staticClass:\"header-loggedin-actions\"},[(_vm.isCheckoutBtnVisible && !_vm.$vuetify.breakpoint.mobile)?_c('v-btn',{staticClass:\"text-none checkout-btn\",attrs:{\"text\":\"\",\"to\":{name: 'SubscriptionCheckOut', params:{organizationId: _vm.currentOrganization.Id, returnUrl: this.$route.fullPath}}}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-tasks\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_EndSuscription'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(!_vm.currentOrganization)?_c('v-skeleton-loader',{attrs:{\"type\":\"list-item-avatar\",\"width\":\"200\"}}):_c('v-menu',{staticClass:\"user-menu\",attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [(_vm.$vuetify.breakpoint.mobile)?_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-avatar',{attrs:{\"size\":\"36\",\"rounded\":\"\"}},[(_vm.currentOrganization.IconPath !== null)?_c('v-img',{attrs:{\"src\":'/' + _vm.currentOrganization.IconPath + '?_ssb_img=S;w:64;h:64'}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1)],1):_c('v-btn',_vm._g({staticClass:\"text-none text-left org-menu\",attrs:{\"text\":\"\",\"width\":\"auto\",\"height\":\"auto\"}},on),[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-avatar',{attrs:{\"size\":\"36\",\"rounded\":\"\"}},[(_vm.currentOrganization.IconPath !== null)?_c('v-img',{attrs:{\"src\":'/' + _vm.currentOrganization.IconPath + '?_ssb_img=S;w:64;h:64'}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"pr-0 pl-0 org-and-user-names\"},[_c('strong',[_vm._v(_vm._s(_vm.currentOrganization.Name))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"font-weight-regular\"},[_vm._v(_vm._s(_vm.getUser.NickName))])]),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-chevron-down\")])],1)],1)],1)]}}],null,false,3912028216)},[_vm._v(\" \"),_c('v-list',{staticClass:\"user-menu--items\"},[(_vm.$vuetify.breakpoint.mobile)?_c('v-list-item',{staticClass:\"user-menu--list-item\"},[_c('v-list-item-title',[_c('v-row',{staticClass:\"user-menu--mobile-header\"},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-avatar',{attrs:{\"size\":\"36\",\"rounded\":\"\"}},[(_vm.currentOrganization.IconPath !== null)?_c('v-img',{attrs:{\"src\":'/' + _vm.currentOrganization.IconPath + '?_ssb_img=S;w:64;h:64'}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"pr-0 pl-0 user-menu--mobile-description\"},[_c('strong',[_vm._v(_vm._s(_vm.currentOrganization.Name))]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"font-weight-regular\"},[_vm._v(_vm._s(_vm.getUser.NickName))])])],1)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isCheckoutBtnVisible && _vm.$vuetify.breakpoint.mobile)?_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"dense\":\"\",\"to\":{name: 'SubscriptionCheckOut', params:{organizationId: _vm.currentOrganization.Id, returnUrl: this.$route.fullPath}}}},[_c('v-list-item-icon',[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-tasks\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_EndSuscription'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.$vuetify.breakpoint.mobile)?_c('v-divider',{staticClass:\"user-menu--list-item\"}):_vm._e(),_vm._v(\" \"),(_vm.organizationsTree)?_c('div',{staticClass:\"user-menu--list-item\",class:{'other-orgs-list': !_vm.$vuetify.breakpoint.mobile}},_vm._l((_vm.organizationsTree.Organizations),function(org){return _c('v-list-item',{key:org.Id,attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile,\"to\":{ name: 'MyTables', params: { organizationId: org.Id, folderId: org.IsEnabled ? org.RootFolder.Id : undefined }}}},[_c('v-list-item-icon',{staticClass:\"mr-0\"},[(org.Id == _vm.currentOrganization.Id)?_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-check\")]):_vm._e()],1),_vm._v(\" \"),_c('v-list-item-content',{staticClass:\"other-orgs-name\"},[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(org.Name)}})],1)],1)}),1):_vm._e(),_vm._v(\" \"),_c('v-divider',{staticClass:\"user-menu--list-item\"}),_vm._v(\" \"),(_vm.isNotOnPrem && !_vm.demoUser)?_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile,\"to\":_vm.$t('Header_NewOrganizationUrl')}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Header_NewOrganization')))])],1):_vm._e(),_vm._v(\" \"),_c('v-divider',{staticClass:\"user-menu--list-item\"}),_vm._v(\" \"),_c('v-list-group',{staticClass:\"list-group-setting\",attrs:{\"prepend-icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();{}}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Header_MyAccount')))])]},proxy:true},{key:\"appendIcon\",fn:function(){return [_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-chevron-down\")])]},proxy:true}],null,false,91060126)},[_vm._v(\" \"),_vm._v(\" \"),(!_vm.demoUser)?_c('v-list-item',{staticClass:\"list-group-setting--list-item\",attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile,\"to\":_vm.$t('Header_MyAccountUrl')}},[_c('v-list-item-title',{staticClass:\"ml-5\"},[_vm._v(_vm._s(_vm.$t('Header_MyAccountPersonal')))])],1):_vm._e(),_vm._v(\" \"),(!_vm.demoUser && _vm.currentOrganization?.CanCurrentUserManage)?_c('v-list-item',{staticClass:\"list-group-setting--list-item\",attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile,\"to\":{ name: 'ManageOrganization', params: { organizationId: _vm.currentOrganization.Id, returnUrl: _vm.$route.fullPath } }}},[_c('v-list-item-title',{staticClass:\"ml-5\"},[_vm._v(_vm._s(_vm.$t('Header_MyAccountManageOrganization')))])],1):_vm._e()],1),_vm._v(\" \"),(!_vm.demoUser && !_vm.$vuetify.breakpoint.mobile)?_c('v-list-item',{staticClass:\"user-menu--list-item\"},[_c('div',{staticClass:\"language-selector-wrapper\"},[_c('div',{staticClass:\"language-selector-label\"},[_vm._v(_vm._s(_vm.$t('Header_Language')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"language-selector-en\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.changeLocale('en')}}},[(_vm.activeLocale == 'en')?_c('v-icon',{staticClass:\"ma-0\",attrs:{\"left\":\"\",\"x-small\":\"\"}},[_vm._v(\"far fa-check\")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.$t('Header_Language_EN'))+\"\\n \")],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"language-selector-es\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.changeLocale('es')}}},[(_vm.activeLocale == 'es')?_c('v-icon',{staticClass:\"ma-0\",attrs:{\"left\":\"\",\"x-small\":\"\"}},[_vm._v(\"far fa-check\")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.$t('Header_Language_ES'))+\"\\n \")],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"language-selector-fr\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.changeLocale('fr')}}},[(_vm.activeLocale == 'fr')?_c('v-icon',{staticClass:\"ma-0\",attrs:{\"left\":\"\",\"x-small\":\"\"}},[_vm._v(\"far fa-check\")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.$t('Header_Language_FR'))+\"\\n \")],1)],1)]):(!_vm.demoUser)?_c('div',[_c('v-divider',{staticClass:\"user-menu--list-item\"}),_vm._v(\" \"),_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"dense\":\"\"},on:{\"click\":function($event){return _vm.changeLocale('en')}}},[(_vm.activeLocale == 'en')?_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"far fa-check\")])],1):_vm._e(),_vm._v(\" \"),_c('v-list-item-content',{staticClass:\"langage-selector-en\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Header_Language_EN'))+\"\\n \")])],1),_vm._v(\" \"),_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"dense\":\"\"},on:{\"click\":function($event){return _vm.changeLocale('es')}}},[(_vm.activeLocale == 'es')?_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"far fa-check\")])],1):_vm._e(),_vm._v(\" \"),_c('v-list-item-content',{staticClass:\"langage-selector-es\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Header_Language_ES'))+\"\\n \")])],1),_vm._v(\" \"),_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"dense\":\"\"},on:{\"click\":function($event){return _vm.changeLocale('fr')}}},[(_vm.activeLocale == 'fr')?_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"far fa-check\")])],1):_vm._e(),_vm._v(\" \"),_c('v-list-item-content',{staticClass:\"langage-selector-fr\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Header_Language_FR'))+\"\\n \")])],1),_vm._v(\" \"),_c('v-divider',{staticClass:\"user-menu--list-item\"})],1):_vm._e(),_vm._v(\" \"),_c('v-list-group',{staticClass:\"list-group-setting\",attrs:{\"prepend-icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();{}}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Footer_Help')))])]},proxy:true},{key:\"appendIcon\",fn:function(){return [_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-chevron-down\")])]},proxy:true}],null,false,3165080896)},[_vm._v(\" \"),_vm._v(\" \"),_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"href\":_vm.$t('Footer_HelpUrl'),\"target\":\"_blank\",\"dense\":_vm.$vuetify.breakpoint.mobile}},[_c('v-list-item-title',{staticClass:\"ml-5\"},[_vm._v(_vm._s(_vm.$t('Header_SiteHelp')))])],1),_vm._v(\" \"),(_vm.canAskForSupport && _vm.canSeeSupportButton)?_c('v-list-item',{staticClass:\"list-group-setting--list-item\",attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile},on:{\"click\":_vm.onAddRowShareSupport}},[_c('v-list-item-title',{staticClass:\"ml-5\"},[_vm._v(_vm._s(_vm.$t('Header_EnableSupportAccess')))])],1):_vm._e(),_vm._v(\" \"),(_vm.canDisableSupport && _vm.canSeeSupportButton)?_c('v-list-item',{staticClass:\"list-group-setting--list-item\",attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile},on:{\"click\":_vm.onRemoveRowShareSupport}},[_c('v-list-item-title',{staticClass:\"ml-5\"},[_vm._v(_vm._s(_vm.$t('Header_DisableSupportAccess')))])],1):_vm._e()],1),_vm._v(\" \"),_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile,\"to\":_vm.$t('Header_RowMergeHistoryUrl')}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Header_RowMergeHistory')))])],1),_vm._v(\" \"),_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile},on:{\"click\":_vm.signout}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Header_Signout')))])],1)],1)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentListFromOtherOrg && _vm.getUser!==null && !_vm.getUser.IsAnonymous)?_c('div',{staticClass:\"btn-group\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"to\":{ name: 'MyTables'}}},[_c('v-icon',{attrs:{\"left\":\"\",\"dense\":\"\"}},[_vm._v(\"fa-home\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"AccessDenied_BackLoggedIn\"))+\"\\n \")],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isSignUp && _vm.getUser!==null && _vm.getUser.IsAnonymous)?_c('div',{staticClass:\"btn-group\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"to\":_vm.signInLink}},[_vm._v(_vm._s(_vm.$t('Header_Login')))])],1):(_vm.isLogIn && _vm.isNotOnPrem && !_vm.hasCustomRSLogosForLogin)?_c('div',{staticClass:\"btn-group\"},[_c('v-btn',{attrs:{\"color\":\"primary\",\"href\":_vm.$t('Header_SignupUrl')}},[_vm._v(_vm._s(_vm.$t('Header_Signup')))])],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nexport const EventBus = new Vue();","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('list-browser',{attrs:{\"organizationId\":_vm.organizationId,\"folderId\":_vm.folderId,\"lmCurrent\":_vm.lmCurrent}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"page-title\"},[_c('v-container',[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{staticClass:\"col-sm-12 page-title-container\",class:{'col-md-10': _vm.compact, 'col-lg-8': _vm.compact}},[_c('h1',[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.hasMainAction)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"href\":_vm.mainActionUrl,\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.mainActionName))]):_vm._e()],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n @Component\r\n export default class PageTitle extends Vue {\r\n @Prop() private title!: string;\r\n @Prop() private mainActionName!: string;\r\n @Prop() private mainActionUrl!: string;\r\n @Prop({default: true}) private compact!: boolean;\r\n \r\n get hasMainAction() {\r\n return this.mainActionName !== undefined && this.mainActionName !== 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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PageTitle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PageTitle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageTitle.vue?vue&type=template&id=4c4eace8&scoped=true&\"\nimport script from \"./PageTitle.vue?vue&type=script&lang=ts&\"\nexport * from \"./PageTitle.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PageTitle.vue?vue&type=style&index=0&id=4c4eace8&prod&scoped=true&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 \"4c4eace8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"list-browser\"},[(_vm.currentOrganization)?_c('div',[(!_vm.$vuetify.breakpoint.mobile)?_c('v-toolbar',{attrs:{\"color\":\"primary\",\"align-center\":\"\"}},[_c('v-spacer'),_vm._v(\" \"),(_vm.currentOrganization.IsEnabled)?_c('v-toolbar-items',{staticClass:\"toolbar-buttons\"},[_c('v-btn',{staticClass:\"white--text text-none\",class:_vm.showRecents ? 'active-button' : '',attrs:{\"text\":\"\",\"to\":_vm.recentLinkUrl}},[_c('v-icon',[_vm._v(\"fa-history\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_Recents'))+\" \"),_c('v-icon',{staticClass:\"btn-close\"},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"white--text text-none\",class:_vm.showFavorites ? 'active-button' : '',attrs:{\"text\":\"\",\"to\":_vm.favLinkUrl}},[_c('v-icon',[_vm._v(\"fa-star\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_Favorites'))+\" \"),_c('v-icon',{staticClass:\"btn-close\"},[_vm._v(\"fa-times\")])],1)],1):_vm._e(),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-divider',{attrs:{\"vertical\":\"\"}}),_vm._v(\" \"),(_vm.currentOrganization.IsEnabled)?_c('v-toolbar-items',{staticClass:\"align-center\"},[_c('v-text-field',{attrs:{\"solo\":\"\",\"dense\":\"\",\"single-line\":\"\",\"clearable\":\"\",\"hide-details\":\"\",\"append-icon\":\"fa-search\",\"placeholder\":_vm.$t('MyTables_Search')},on:{\"input\":_vm.searchInsideCurrentFolder,\"click:clear\":function($event){return _vm.resetSearch()}},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}})],1):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.$vuetify.breakpoint.mobile)?_c('v-toolbar',{attrs:{\"dense\":\"\",\"align-center\":\"\"}},[_c('v-spacer'),_vm._v(\" \"),(_vm.currentOrganization.CanCurrentUserManage && _vm.currentOrganization.InTrial && _vm.currentOrganization.IsEnabled)?_c('v-btn',{attrs:{\"to\":{ name: 'SubscriptionCheckOut', params: { organizationId: _vm.currentOrganization.Id } },\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"fa-ellipsis-v\")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentOrganization.CanCurrentUserManage)?_c('v-btn',{attrs:{\"to\":{ name: 'ManageOrganization', params: { organizationId: _vm.currentOrganization.Id, returnUrl: this.$route.fullPath } },\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"fa-cog\")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentOrganization.IsEnabled)?_c('v-btn',{attrs:{\"to\":{ name: 'MyTables', params: { organizationId: _vm.currentOrganization.Id, folderId: 'Recents' } },\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"fa-history\")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentOrganization.IsEnabled)?_c('v-btn',{attrs:{\"to\":{ name: 'MyTables', params: { organizationId: _vm.currentOrganization.Id, folderId: 'Favorites' } },\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"fa-star\")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentOrganization.IsEnabled)?_c('v-btn',{attrs:{\"to\":{ name: 'MyTables', params: { organizationId: _vm.currentOrganization.Id } },\"icon\":\"\",\"exact\":\"\"}},[_c('v-icon',[_vm._v(\"fa-check-double\")])],1):_vm._e(),_vm._v(\" \"),_c('v-spacer')],1):_vm._e(),_vm._v(\" \"),(_vm.currentOrganization.IsEnabled && _vm.$vuetify.breakpoint.mobile)?_c('v-row',{staticClass:\"ma-2\"},[_c('v-text-field',{attrs:{\"solo\":\"\",\"dense\":\"\",\"single-line\":\"\",\"clearable\":\"\",\"append-icon\":\"fa-search\",\"placeholder\":_vm.$t('MyTables_Search')},on:{\"input\":_vm.searchInsideCurrentFolder,\"click:clear\":function($event){return _vm.resetSearch()}},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-container',{attrs:{\"fluid\":\"\"}},[(!_vm.currentOrganization.IsEnabled)?_c('my-tables-disabled-organization'):_vm._e(),_vm._v(\" \"),(_vm.currentFolder && _vm.currentOrganization.IsEnabled)?_c('div',{staticClass:\"current-organization-content-wrapper\"},[(_vm.showRecents)?_c('div',{staticClass:\"navigation-wrapper\"},[_c('h5',[_vm._v(_vm._s(_vm.$t('MyTables_Recents')))]),_vm._v(\" \"),_c('v-data-iterator',{attrs:{\"items\":_vm.currentOrganization.Recents,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"no-data\"},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('h3',[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_EmptyRecents'))+\"\\n \")])]),_vm._v(\" \"),_c('v-col',[_c('img',{staticClass:\"no-data-img\",attrs:{\"src\":require(\"@/assets/static/images/img_empty_rowmerge.svg\")}})])],1)],1)]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',_vm._l((props.items),function(list){return _c('v-col',{key:list.Id,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('list-thumbnail',{attrs:{\"list\":list,\"folder\":_vm.currentFolder,\"organizationId\":_vm.currentOrganization.Id,\"showSubmenu\":false}})],1)}),1)]}}],null,false,899269519)})],1):(_vm.showFavorites)?_c('div',{staticClass:\"navigation-wrapper\"},[_c('h5',[_vm._v(_vm._s(_vm.$t('MyTables_Favorites')))]),_vm._v(\" \"),_c('v-data-iterator',{attrs:{\"items\":_vm.currentOrganization.Favorites,\"hide-default-footer\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"no-data\"},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('h3',[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_EmptyFavorites'))+\"\\n \")])]),_vm._v(\" \"),_c('v-col',[_c('img',{staticClass:\"no-data-img\",attrs:{\"src\":require(\"@/assets/static/images/empty_favorites.png\")}})])],1)],1)]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',_vm._l((props.items),function(list){return _c('v-col',{key:list.Id,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('list-thumbnail',{attrs:{\"list\":list,\"folder\":_vm.currentFolder,\"organizationId\":_vm.currentOrganization.Id,\"showSubmenu\":false}})],1)}),1)]}}],null,false,471334274)})],1):_c('div',{staticClass:\"navigation-wrapper\"},[(!_vm.displaySearchResult)?_c('div',{staticClass:\"lists-wrapper\"},[_c('div',{staticClass:\"toggle-sort\",on:{\"click\":_vm.toggleSortDirection}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-sort\")]),_vm._v(\" \"),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t('MyTables_Sort_Text')))])],1),_vm._v(\" \"),_c('v-data-iterator',{attrs:{\"items\":_vm.orderedFolders,\"hide-default-footer\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('my-tables-actions',{attrs:{\"folder\":_vm.currentFolder,\"organizationId\":_vm.currentOrganization.Id,\"parentFolderId\":_vm.currentFolder.ParentId},on:{\"update:parentFolderId\":function($event){return _vm.$set(_vm.currentFolder, \"ParentId\", $event)},\"update:parent-folder-id\":function($event){return _vm.$set(_vm.currentFolder, \"ParentId\", $event)}}})]},proxy:true},{key:\"no-data\",fn:function(){return [_c('span')]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',_vm._l((props.items),function(folder){return _c('v-col',{key:folder.Id,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('div',{on:{\"dragover\":function($event){$event.preventDefault();},\"drop\":function($event){return _vm.droppedItem(folder)}}},[_c('folder-thumbnail',{attrs:{\"folder\":folder,\"organizationId\":_vm.currentOrganization.Id,\"listDragged\":_vm.listDragged}})],1)])}),1)]}}],null,false,3412698120)}),_vm._v(\" \"),_c('v-data-iterator',{attrs:{\"items\":_vm.orderedLists,\"hide-default-footer\":\"\",\"disable-pagination\":\"\",\"no-data-text\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(_vm.canAddNewList)?_c('div',{staticClass:\"table-container\"},[_c('router-link',{staticClass:\"add-thumbnail\",attrs:{\"to\":_vm.createTableLocation}},[_c('div',{staticClass:\"add-thumbnail-icon-wrapper\"},[_c('v-icon',{staticClass:\"add-thumbnail-icon\",attrs:{\"color\":\"primary\"}},[_vm._v(\"fa-plus\")])],1),_vm._v(\" \"),_c('span',{staticClass:\"add-thumbnail-name\"},[_vm._v(_vm._s(_vm.$t('MyTables_Actions_NewTable')))])])],1):(!_vm.currentFolder.CanCurrentUserBrowseContent)?_c('div',[_c('v-row',{staticClass:\"align-center no-access\"},[_c('v-col',[_c('h3',[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_NoAccessRootFolder', {\n '0':\n _vm.currentOrganization.Name\n }))+\"\\n \")])]),_vm._v(\" \"),_c('v-col',[_c('img',{staticClass:\"no-data-img\",attrs:{\"src\":require(\"@/assets/static/images/404.svg\")}})])],1)],1):_vm._e()]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',[_vm._l((props.items),function(list){return _c('v-col',{key:list.Id,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('div',{on:{\"dragstart\":function($event){return _vm.dragStart(list, _vm.currentFolder.Id)},\"dragend\":function($event){return _vm.clearDragInfo()},\"dragover\":function($event){$event.preventDefault();}}},[_c('list-thumbnail',{attrs:{\"list\":list,\"folder\":_vm.currentFolder,\"organizationId\":_vm.currentOrganization.Id,\"showSubmenu\":true}})],1)])}),_vm._v(\" \"),_c('v-col',[(_vm.canAddNewList)?_c('div',{staticClass:\"table-container\"},[_c('router-link',{staticClass:\"add-thumbnail\",attrs:{\"to\":_vm.createTableLocation}},[_c('div',{staticClass:\"add-thumbnail-icon-wrapper\"},[_c('v-icon',{staticClass:\"add-thumbnail-icon\",attrs:{\"color\":\"primary\"}},[_vm._v(\"fa-plus\")])],1),_vm._v(\" \"),_c('span',{staticClass:\"add-thumbnail-name\"},[_vm._v(_vm._s(_vm.$t('MyTables_Actions_NewTable')))])])],1):_vm._e()])],2)]}}],null,false,1207834748)})],1):_vm._e(),_vm._v(\" \"),_c('search-result',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.displaySearchResult),expression:\"displaySearchResult\"}]})],1)]):_vm._e()],1)],1):_c('PageLoadSpinner')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"disabled-organization\"},[(_vm.organization.CanCurrentUserManage)?_c('div',[_c('h2',[_vm._v(_vm._s(_vm.$t('MyTables_DisabledOrganization_AdminTitle')))]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.$t('MyTables_DisabledOrganization_AdminDescription')))]),_vm._v(\" \"),(_vm.canCheckOutAlone)?_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"color\":\"primary\",\"to\":{name:'SubscriptionCheckOut', params: {organizationId: _vm.organization.Id}}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_DisabledOrganization_SubscriptionCheckOut'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"color\":\"primary\",\"to\":{name:'Contact', params: {selectedQuestion: 'Contact/Sales'}}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_DisabledOrganization_ContactUs'))+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.openCalendly()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_DisabledOrganization_ScheduleCall'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(!_vm.organization.CanCurrentUserManage)?_c('div',[_c('h2',[_vm._v(_vm._s(_vm.$t('MyTables_DisabledOrganization_Title')))]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.$t('MyTables_DisabledOrganization_Description')))])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class ResLoader {\r\n public static async loadCss(href: string){\r\n let existingElement = document.querySelector('link[href=\"' + href + '\"]'); \r\n if(existingElement)\r\n return existingElement;\r\n\r\n var elt = document.createElement(\"link\");\r\n elt.href = href;\r\n elt.type = 'text/css';\r\n elt.rel = 'stylesheet';\r\n\r\n document.head.appendChild(elt);\r\n return elt;\r\n } \r\n}","\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\nimport { ListTreeOrganization, SubscriptionLimit, SubscriptionLimitType } from \"@/models/RowShare\";\r\nimport { ResLoader } from '@/utils/ResLoader';\r\nimport * as API from '@/api/Api';\r\nimport { ListTreeModule } from \"@/store/ListTreeStore\";\r\n\r\ndeclare var Calendly: any;\r\n\r\n@Component({\r\n name: \"MyTablesDisabledOrganization\"\r\n})\r\nexport default class MyTablesDisabledOrganization extends Vue {\r\n limits: SubscriptionLimit[] | null = null;\r\n canCheckOutAlone: boolean = false;\r\n\r\n async created() {\r\n let scriptPromise = this.$loadScript('https://assets.calendly.com/assets/external/widget.js');\r\n ResLoader.loadCss('https://assets.calendly.com/assets/external/widget.css');\r\n\r\n await Promise.all([scriptPromise]);\r\n\r\n }\r\n mounted() {\r\n this.UpdateLimitInfos();\r\n }\r\n\r\n get organization(): ListTreeOrganization | null {\r\n return ListTreeModule.currentOrganization;\r\n }\r\n\r\n @Watch('organization')\r\n async UpdateLimitInfos() {\r\n if(!this.organization) {\r\n return;\r\n }\r\n // this.limits = await API.Organization.getLimits(this.organization.Id);\r\n // if(!this.limits) {\r\n // return false;\r\n // }\r\n this.canCheckOutAlone = true;// (this.limits.filter(l => l.LimitType != SubscriptionLimitType.User && !l.IsInRecycleBin && l.Exceeded).length == 0);\r\n }\r\n\r\n openCalendly() {\r\n Calendly.initPopupWidget({ url: this.$i18n.t('MyTables_DisabledOrganization_CalendlyUrl').toString() });\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyTablesDisabledOrganization.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyTablesDisabledOrganization.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyTablesDisabledOrganization.vue?vue&type=template&id=5123cc14&scoped=true&\"\nimport script from \"./MyTablesDisabledOrganization.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyTablesDisabledOrganization.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyTablesDisabledOrganization.vue?vue&type=style&index=0&id=5123cc14&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 \"5123cc14\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{attrs:{\"draggable\":!_vm.list.IsInRecycleBin}},[_c('v-list-item',{staticClass:\"list-thumbnail\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-avatar',{attrs:{\"tile\":\"\"}},[_c('a',{attrs:{\"href\":_vm.getTableUrl()}},[(_vm.list.IconPath!==null)?_c('img',{staticClass:\"list-thumbnail-icon\",attrs:{\"src\":_vm.getIcon()}}):_c('span',{staticClass:\"list-thumbnail-default-icon\"})])]),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_c('a',{attrs:{\"href\":_vm.getTableUrl(),\"title\":_vm.list.Name}},[_c('span',[_vm._v(_vm._s(_vm.list.Name))])])]),_vm._v(\" \"),_c('v-list-item-subtitle',[_c('a',{staticClass:\"list-owners\",attrs:{\"href\":_vm.getTableUrl()}},_vm._l((_vm.list.OwnersNicknames),function(owner,idx){return _c('span',{key:owner},[(idx !== 0)?_c('span',[_vm._v(\", \")]):_vm._e(),_vm._v(_vm._s(owner))])}),0)])],1),_vm._v(\" \"),(_vm.showSubmenu)?_c('v-list-item-action',[_c('list-actions-submenu',{attrs:{\"list\":_vm.list,\"folder\":_vm.folder,\"organizationId\":_vm.organizationId}})],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-menu',{attrs:{\"dense\":\"\"},on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-ellipsis-v\")])],1)]}}])},[_vm._v(\" \"),(!_vm.list.IsInRecycleBin)?_c('v-list',{staticClass:\"context-menu\"},[_c('copyListDialog',{attrs:{\"listId\":_vm.list.Id,\"folder\":_vm.folder,\"organizationId\":_vm.organizationId}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.doNothing()}}},[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s((_vm.list.Owned)? _vm.$t('CopyListDialog_Title') : _vm.$t('MyTables_Actions_DuplicateTable'))+\"\\n \")])],1)],1),_vm._v(\" \"),_c('renameList',{attrs:{\"listThumbnail\":_vm.list,\"folderId\":_vm.folder.Id,\"organizationId\":_vm.organizationId}},[_c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.Owned && !_vm.list.IsInRecycleBin && !_vm.list.LoadedByReadOnlyMember),expression:\"list.Owned && !list.IsInRecycleBin && !list.LoadedByReadOnlyMember\"}],on:{\"click\":function($event){return _vm.doNothing()}}},[_c('v-list-item-title',[_vm._v(\" \\n \"+_vm._s(_vm.$t('MyTables_Actions_RenameTable'))+\"\\n \")])],1)],1),_vm._v(\" \"),_c('moveListToRecycleBin',{attrs:{\"listThumbnail\":_vm.list,\"folderId\":_vm.folder.Id,\"organizationId\":_vm.organizationId}},[_c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.Owned && !_vm.list.LoadedByReadOnlyMember),expression:\"list.Owned && !list.LoadedByReadOnlyMember\"}],on:{\"click\":function($event){return _vm.doNothing()}}},[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_Actions_MoveToRecycleBin'))+\"\\n \")])],1)],1)],1):_c('v-list',[_c('copyListDialog',{attrs:{\"listId\":_vm.list.Id,\"folder\":_vm.folder,\"organizationId\":_vm.organizationId}},[_c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.Owned),expression:\"list.Owned\"}],on:{\"click\":function($event){return _vm.doNothing()}}},[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_Actions_RestoreTable'))+\"\\n \")])],1)],1),_vm._v(\" \"),_c('deleteList',{attrs:{\"listThumbnail\":_vm.list,\"folderId\":_vm.folder.Id,\"organizationId\":_vm.organizationId}},[_c('v-list-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.Owned && _vm.list.IsInRecycleBin),expression:\"list.Owned && list.IsInRecycleBin\"}],on:{\"click\":function($event){return _vm.doNothing()}}},[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_Actions_DeleteTable'))+\"\\n \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{on:{\"click\":_vm.openModalToCopyMove}},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"600\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.openModalCopy),callback:function ($$v) {_vm.openModalCopy=$$v},expression:\"openModalCopy\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),(!_vm.$vuetify.breakpoint.mobile)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('CopyListDialog_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.listName)+\"\\n \")]),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.$t('CopyListDialog_Destination'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('v-autocomplete',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$i18n.t('Common_Organization'),\"items\":_vm.organizations,\"return-object\":\"\",\"item-text\":\"Name\",\"loading\":_vm.loadingOrganizations},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}]),model:{value:(_vm.selectedOrganization),callback:function ($$v) {_vm.selectedOrganization=$$v},expression:\"selectedOrganization\"}})],1),_vm._v(\" \"),_c('v-card-text',[_c('v-autocomplete',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$i18n.t('Common_Folder'),\"items\":_vm.folders,\"return-object\":\"\",\"item-text\":\"DisplayPath\",\"loading\":_vm.loadingFolders},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}]),model:{value:(_vm.selectedFolder),callback:function ($$v) {_vm.selectedFolder=$$v},expression:\"selectedFolder\"}})],1),_vm._v(\" \"),_c('v-card-text',[(!_vm.isListInRecycleBin)?_c('v-radio-group',{attrs:{\"dense\":\"\"},model:{value:(_vm.selectedAction),callback:function ($$v) {_vm.selectedAction=$$v},expression:\"selectedAction\"}},[_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-radio',_vm._g({attrs:{\"label\":_vm.$t('CopyListDialog_TableAndRows'),\"value\":_vm.actionCopyWithRows}},on))]}}],null,false,1454638182)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CopyListDialog_TableAndRows_Description'))+\"\\n \")]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-radio',_vm._g({attrs:{\"label\":_vm.$t('CopyListDialog_SameColumns'),\"value\":_vm.actionCopyWithoutRows}},on))]}}],null,false,1973556283)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CopyListDialog_SameColumns_Description'))+\"\\n \")]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [(_vm.isListOwned)?_c('v-radio',_vm._g({attrs:{\"label\":_vm.$t('CopyListDialog_MoveList'),\"value\":_vm.actionMove}},on)):_vm._e()]}}],null,false,3057958950)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CopyListDialog_MoveList_Description'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.isCopyInOtherSubscription)?_c('div',{staticClass:\"rounded-md pa-4 mb-3 secondary lighten-2 rowmerge-warning\"},[_c('div',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"small\":\"\",\"color\":\"secondary\"}},[_vm._v(\"fal fa-exclamation-triangle\")]),_vm._v(\" \"),_c('span',{staticClass:\"ma-0 font-weight-normal secondary--text\"},[_vm._v(_vm._s(_vm.$i18n.t('CopyListDialog_CannotCopyColumnPermissions')))])],1)]):_vm._e(),_vm._v(\" \"),(_vm.errorMessage)?_c('div',{staticClass:\"error-message\"},[_c('div',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e()],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_Cancel'))+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.canCopyMoveTable,\"loading\":_vm.processingAction},on:{\"click\":_vm.processAction}},[_vm._v(\"\\n \"+_vm._s(_vm.actionButtonText)+\"\\n \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Watch, Vue } from 'vue-property-decorator';\r\nimport { Location } from 'vue-router';\r\nimport { ListTreeModule } from '@/store/ListTreeStore'\r\nimport { CopyListOptions, CopyListInfo, List, ListTreeFolder, Organization, Folder, AccessMode } from '@/models/RowShare';\r\nimport { ListTreeHelper } from '@/utils/ListTreeHelper';\r\nimport * as Events from '@/models/Event';\r\nimport * as API from '@/api/Api';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { RowShareException } from '@/api/ApiUtils';\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { RouterUtils} from \"@/modules/Router\";\r\n\r\n@Component({ name:'CopyListDialog' })\r\nexport default class CopyListDialog extends Vue {\r\n\r\n @Prop() listId!: string;\r\n @Prop() organizationId!:string;\r\n @Prop() folder!:ListTreeFolder;\r\n\r\n //When the modal is open, the destination folder is the current folder. It is changed when a new folder is selected from the list\r\n private destination = {folderId: '', organizationId: ''};\r\n processingAction: boolean = false;\r\n errorMessage: string = \"\";\r\n selectedAction: string = \"\";\r\n actionCopyWithRows: string = \"CopyWithRows\";\r\n actionCopyWithoutRows: string = \"CopyWithoutRows\";\r\n actionMove: string = \"Move\";\r\n selectedOrganization: Organization | null = null;\r\n selectedFolder: Folder | null = null;\r\n organizations: Organization[] = [];\r\n folders: Folder[] = [];\r\n loadingOrganizations: boolean = false;\r\n loadingFolders: boolean = false;\r\n openModalCopy: boolean = false;\r\n currentList: List | null = null;\r\n\r\n \r\n created() {\r\n EventBus.$on(Events.Event.LIST_COPIEDORMOVED, this.onCopyMoveDone );\r\n }\r\n\r\n destroyed() {\r\n EventBus.$off(Events.Event.LIST_COPIEDORMOVED);\r\n }\r\n\r\n get listName() {\r\n if(this.currentList) {\r\n return this.currentList.DisplayName;\r\n }\r\n return \"\";\r\n }\r\n get isListOwned() {\r\n if(this.currentList) {\r\n return this.currentList.Owned;\r\n }\r\n return false;\r\n }\r\n\r\n get isListInRecycleBin() {\r\n if(this.currentList) {\r\n return this.currentList.IsInRecycleBin;\r\n }\r\n return false;\r\n }\r\n\r\n get isCopyInOtherSubscription () : boolean {\r\n return this.selectedOrganization?.Id !== this.currentList?.OrganizationId;\r\n }\r\n\r\n openModalToCopyMove(){\r\n this.refreshCurrentList().then(() => {\r\n setTimeout(()=> {\r\n this.selectedAction = this.isListInRecycleBin ? this.actionMove : this.actionCopyWithRows;\r\n this.openModalCopy = true;\r\n this.initOrgsAndFolders();\r\n }, 0);\r\n });\r\n }\r\n\r\n @Watch('listId')\r\n async refreshCurrentList() {\r\n this.currentList = null;\r\n if(this.listId) {\r\n this.currentList = await API.List.load(this.listId);\r\n }\r\n }\r\n\r\n\r\n get actionButtonText(): string {\r\n switch(this.selectedAction) {\r\n case this.actionCopyWithoutRows:\r\n case this.actionCopyWithRows:\r\n return this.$i18n.t('CopyListDialog_Copy').toString();\r\n case this.actionMove:\r\n if(this.isListInRecycleBin) {\r\n return this.$i18n.t('CopyListDialog_RestoreList').toString();\r\n }\r\n else {\r\n return this.$i18n.t('CopyListDialog_Move').toString();\r\n }\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n get title(): string {\r\n if(this.isListOwned && !this.isListInRecycleBin) {\r\n return this.$i18n.t('CopyListDialog_Title').toString();\r\n }\r\n else if(this.isListOwned && this.isListInRecycleBin) {\r\n return this.$i18n.t('MyTables_Actions_RestoreTable').toString();\r\n }\r\n else {\r\n return this.$i18n.t('MyTables_Actions_DuplicateTable').toString();\r\n }\r\n\r\n }\r\n\r\n get canCopyMoveTable(): boolean {\r\n return !Utils.isNullOrWhiteSpace(this.selectedAction) && !Utils.isNullOrWhiteSpace(this.destination?.folderId) && !Utils.isNullOrWhiteSpace(this.destination?.organizationId);\r\n }\r\n\r\n @Watch('selectedOrganization')\r\n organizationChanged() {\r\n this.selectedFolder = null;\r\n this.folders = [];\r\n if(!this.selectedOrganization) {\r\n return;\r\n }\r\n this.loadFolders();\r\n }\r\n\r\n @Watch('selectedFolder')\r\n folderChanged() {\r\n if(!this.selectedFolder || !this.selectedOrganization) {\r\n return;\r\n }\r\n this.destination = {organizationId: this.selectedOrganization?.Id, folderId: this.selectedFolder.Id};\r\n }\r\n\r\n async initOrgsAndFolders() {\r\n this.organizations = [];\r\n this.folders = [];\r\n this.selectedOrganization = null;\r\n this.loadingOrganizations = true;\r\n API.Organization.loadall({cache: false})\r\n .then((orgs) => {\r\n if(orgs) {\r\n this.organizations = orgs;\r\n if((this.organizations?.length ?? 0) == 1) {\r\n this.selectedOrganization = this.organizations[0];\r\n }\r\n if(ListTreeModule.currentOrganization) {\r\n this.selectedOrganization = this.organizations.find(o => o.Id === ListTreeModule.currentOrganization?.Id) ?? null;\r\n }\r\n }\r\n this.folders = [];\r\n this.selectedFolder = null;\r\n if(this.selectedOrganization) {\r\n this.loadFolders();\r\n }\r\n })\r\n .finally(() => this.loadingOrganizations = false);\r\n }\r\n\r\n loadFolders() {\r\n this.folders = [];\r\n this.loadingFolders = true;\r\n if(!this.selectedOrganization) {\r\n return;\r\n }\r\n API.Folder.loadAllForOrganization(AccessMode.ReadOwnedOnly, this.selectedOrganization?.Id, {cache: false})\r\n .then(folders => {\r\n if(folders) {\r\n this.folders = folders;\r\n if(this.folders.length == 1) {\r\n this.selectedFolder = this.folders[0];\r\n }\r\n }\r\n })\r\n .finally(() => this.loadingFolders = false);\r\n }\r\n\r\n processAction() {\r\n if(!this.canCopyMoveTable) {\r\n return;\r\n }\r\n switch(this.selectedAction) {\r\n case this.actionCopyWithoutRows:\r\n case this.actionCopyWithRows:\r\n this.copyList();\r\n break;\r\n case this.actionMove:\r\n this.moveList();\r\n break;\r\n }\r\n }\r\n\r\n onCancel(){\r\n this.openModalCopy = false;\r\n this.processingAction = false;\r\n this.errorMessage = \"\";\r\n this.selectedFolder = null;\r\n this.selectedOrganization = null;\r\n this.folders = [];\r\n this.organizations = [];\r\n }\r\n\r\n onCopyMoveDone(newList: List | null | undefined, refresh: boolean | false, otherOrg: boolean | false) {\r\n if(newList && refresh) {\r\n if (otherOrg){\r\n ListTreeHelper.resetLocalStoreOrganizationsTree();\r\n ListTreeHelper.resetLocalStoreCurrentOrganization();\r\n }\r\n var newRoute : Location | string;\r\n if (newList.FolderId && newList.OrganizationId)\r\n newRoute = { name: 'MyTables', params: { organizationId: newList.OrganizationId, folderId: newList.FolderId } };\r\n else\r\n newRoute = '/t/' + newList.Id;\r\n RouterUtils.pushRouteTo(this, newRoute);\r\n }\r\n this.openModalCopy = false;\r\n this.processingAction = false;\r\n this.errorMessage = \"\";\r\n \r\n }\r\n\r\n getCopyListInfo(): CopyListInfo {\r\n let options = new CopyListOptions();\r\n options.CopyReports = true;\r\n options.CreateNotifications = true;\r\n options.RowsAutoHeight = this.currentList?.RowsAutoHeight ?? true;\r\n options.CopyRows = (this.selectedAction == this.actionCopyWithRows || this.selectedAction == this.actionMove);\r\n\r\n let copyInfo = new CopyListInfo();\r\n copyInfo.Id = this.listId;\r\n copyInfo.FolderId = this.destination.folderId;\r\n copyInfo.Options = options;\r\n return copyInfo;\r\n }\r\n\r\n async copyList(){\r\n this.processingAction = true;\r\n this.errorMessage = \"\";\r\n let other = this.isCopyInOtherSubscription;\r\n let newList = await ListTreeModule.cloneList({copyInfo: this.getCopyListInfo(), organizationId: this.destination.organizationId})\r\n .catch((err: any) => {\r\n this.errorMessage = (err)?.message;\r\n })\r\n .finally(() => this.processingAction = false);\r\n if(!this.errorMessage) {\r\n EventBus.$emit(Events.Event.LIST_COPIEDORMOVED, newList, true, other);\r\n }\r\n }\r\n\r\n async moveList(){\r\n this.processingAction = true;\r\n let listToMoveData = new List();\r\n listToMoveData.Id = this.listId;\r\n listToMoveData.FolderId = this.destination.folderId;\r\n listToMoveData.OrganizationId = this.destination.organizationId;\r\n let other = this.isCopyInOtherSubscription;\r\n let deleteInfo = {\r\n listId:this.listId,\r\n folderId:this.folder.Id,\r\n organizationId:this.organizationId\r\n };\r\n let allInfoToMove = {\r\n listToMove: listToMoveData,\r\n moveFrom:deleteInfo\r\n }\r\n this.errorMessage = \"\";\r\n let newList = await ListTreeModule.moveList(allInfoToMove)\r\n .catch((err: any) => {\r\n this.errorMessage = (err)?.message;\r\n })\r\n .finally(() => this.processingAction = false);\r\n if(!this.errorMessage) {\r\n //when a list is moved we need to move away from obsolete one to new one\r\n EventBus.$emit(Events.Event.LIST_COPIEDORMOVED, newList, true, other);\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CopyListDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CopyListDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CopyListDialog.vue?vue&type=template&id=2e156771&scoped=true&\"\nimport script from \"./CopyListDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CopyListDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CopyListDialog.vue?vue&type=style&index=0&id=2e156771&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 \"2e156771\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{on:{\"click\":_vm.openModalToRename}},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('single-form-dialog',{attrs:{\"dialogState\":_vm.openModalRename,\"title\":_vm.$t('MyTables_RenameListModal_Title'),\"formModel\":_vm.listThumbnail.Name,\"inputPlaceholder\":_vm.$t('Form_TableName'),\"inputName\":_vm.$t('Form_TableName'),\"actionButtonText\":_vm.$t('Form_SaveButton'),\"cancelButtonText\":_vm.$t('Form_CancelButton'),\"validationRules\":{required: true},\"externalError\":_vm.renameListServerErrorMessage},on:{\"submit\":_vm.renameListConfirmed,\"cancel\":_vm.cancelled,\"update:externalError\":function($event){_vm.renameListServerErrorMessage=$event},\"update:external-error\":function($event){_vm.renameListServerErrorMessage=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"600\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.dialogState),callback:function ($$v) {_vm.dialogState=$$v},expression:\"dialogState\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',[_c('v-container',[_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes, invalid }){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('input-text',{attrs:{\"inputTextId\":\"inputName\",\"inputTextName\":_vm.inputName,\"placeholder\":_vm.inputPlaceholder,\"inputTextValidationRules\":_vm.validationRules,\"focusInput\":true},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}}),_vm._v(\" \"),(_vm.externalError)?_c('v-card-text',{staticClass:\"error--text mt-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.externalError)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.cancelButtonText)+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"primary\",\"disabled\":invalid}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-\"+_vm._s(_vm.actionButtonIcon))]),_vm._v(\" \"+_vm._s(_vm.actionButtonText)+\"\\n \")],1)],1)],1)]}}])})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('validation-provider',{attrs:{\"name\":_vm.inputTextName,\"vid\":_vm.inputTextVid,\"rules\":_vm.inputTextValidationRules,\"mode\":_vm.interactionMode},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('v-text-field',{ref:\"textInput\",attrs:{\"placeholder\":_vm.placeholder ? _vm.placeholder:_vm.inputTextName,\"state\":_vm.getValidationState(validationContext),\"id\":_vm.inputTextId,\"disabled\":_vm.disabledProp,\"error-messages\":validationContext.errors[0],\"value\":_vm.value,\"outlined\":_vm.outlined,\"filled\":_vm.filled,\"dense\":\"\",\"hide-details\":_vm.hideDetails},on:{\"input\":_vm.emitTextValueChanged,\"blur\":_vm.blured,\"keydown\":_vm.onKeydown},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [(_vm.label)?_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e()]},proxy:true},(_vm.helpText)?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,true)},[_vm._v(\"\\n \"+_vm._s(_vm.helpText)+\"\\n \")])]},proxy:true}:null],null,true)})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { ValidationProvider } from 'vee-validate';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\n\r\n@Component({\r\n name:'InputText',\r\n components: { ValidationProvider }\r\n})\r\nexport default class InputText extends FormValidation {\r\n//This component allows to create an input text with its properties and validations. It has the following Props:\r\n//inputTextName: the name of the validation provider, which does the validation of the input.\r\n//It is used by vee-validate to show the error message. It's also used to show the placeholder.\r\n//inputTextId: the Id of the input.\r\n//inputTextVid: to show the error messages of the exceptions returned by the server, by setting the error\r\n//on the ValidationObserver.\r\n//inputTextValidationRules: vee-validate rules used to validate the input.\r\n//disabledProp: to disable or not the input\r\n//aria-describeby: allows to associate the input with the feedback message. \r\n//state: calls the vee-validate function to change the state of the input. This function is in the FormValidation base class.\r\n//mode: it is used to indicate when is thrown the validation\r\n\r\n //Properties\r\n @Prop() inputTextName!:{\r\n type:string,\r\n required:true\r\n };\r\n @Prop() placeholder!: \r\n {\r\n type: string,\r\n required: false\r\n };\r\n @Prop() inputTextId!:{\r\n type:string,\r\n required:true};\r\n @Prop() inputTextValidationRules!:string;\r\n @Prop() disabledProp!:boolean;\r\n @Prop() value!:string;\r\n @Prop() inputTextVid!:string;\r\n @Prop({ default: true}) outlined!: boolean;\r\n @Prop({ default: false}) filled!: boolean;\r\n @Prop() focusInput!:boolean;\r\n @Prop() interactionMode!:string;\r\n @Prop({ default: ''}) label!:string;\r\n @Prop( {default: ''}) helpText!: string;\r\n @Prop({ default: false}) hideDetails!: boolean | string;\r\n\r\n //Methods\r\n emitTextValueChanged(valueParam:String){\r\n this.$emit('input', valueParam);\r\n }\r\n\r\n blured(valueParam:String){\r\n this.$emit('blured', valueParam);\r\n }\r\n\r\n onKeydown(event: KeyboardEvent){\r\n this.$emit('keydown', event);\r\n }\r\n\r\n mounted() {\r\n if(this.focusInput) {\r\n this.$nextTick(() => {\r\n (this.$refs.textInput)?.focus();\r\n });\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputText.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputText.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputText.vue?vue&type=template&id=08165f4c&scoped=true&\"\nimport script from \"./InputText.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputText.vue?vue&type=script&lang=ts&\"\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 \"08165f4c\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop, Watch } from \"vue-property-decorator\";\r\n import { ValidationProvider} from \"vee-validate\";\r\n import { ValidationObserver } from 'vee-validate';\r\n import InputText from \"../components/FormInputs/InputText.vue\";\r\n import { FormValidation } from \"@/views/components/FormValidation\";\r\n\r\n @Component({\r\n name: 'SingleFormDialog',\r\n components: { ValidationProvider, InputText, ValidationObserver }\r\n })\r\n export default class SingleFormDialog extends FormValidation {\r\n\r\n @Prop() dialogState!:boolean;\r\n @Prop() title!:string | null;\r\n @Prop() cancelButtonText!: string | null;\r\n @Prop() actionButtonText!: string | null;\r\n @Prop() description!:string;\r\n @Prop() errorMessage!: string | null;\r\n @Prop({ default:'md' }) size!: string | null;\r\n @Prop({ default:'' }) inputPlaceholder!: string | null;\r\n @Prop({ default:'' }) inputName!: string | null;\r\n @Prop({ default:'' }) externalError!: string;\r\n @Prop({ default:'required' }) validationRules!: string;\r\n @Prop({ default:'' }) formModel!: string;\r\n @Prop({ default:'check' }) actionButtonIcon!: string;\r\n\r\n private model!: string;\r\n\r\n $refs!: {\r\n observer: InstanceType; \r\n };\r\n\r\n @Watch('dialogState')\r\n async cleanInput(){\r\n if(this.dialogState){\r\n this.model= this.formModel;\r\n this.$nextTick(() => {\r\n //This reset is to avoid validation when opening several consecutive modals \r\n this.$refs.observer.reset();\r\n }); \r\n }\r\n }\r\n\r\n async onSubmit(){\r\n let formValidState = await this.$refs.observer.validate();\r\n this.$emit('submit', this.model); \r\n }\r\n\r\n //When cancelling, if the values of \"model\" are different, it means that the user wrote sth.\r\n //If the user opens the modal again, he/she will see the wrong value, so before closing the modal on cancelling,\r\n //the model of the modal is returned to its original value\r\n onCancel(){\r\n if(this.model!=this.formModel){\r\n this.model=this.formModel;\r\n }\r\n this.$emit('cancel');\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SingleFormDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SingleFormDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SingleFormDialog.vue?vue&type=template&id=13dc4722&scoped=true&\"\nimport script from \"./SingleFormDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SingleFormDialog.vue?vue&type=script&lang=ts&\"\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 \"13dc4722\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import { ListThumbnailInfo } from '@/models/ListTree';\r\n import { List } from '@/models/List';\r\n import SingleFormDialog from '@/views/MyTables/SingleFormDialog.vue';\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n\r\n @Component({\r\n name:'RenameList',\r\n components: { SingleFormDialog }\r\n })\r\n export default class RenameList extends Vue{\r\n\r\n @Prop() listThumbnail!:ListThumbnailInfo;\r\n @Prop() folderId!:string;\r\n @Prop() organizationId!:string;\r\n\r\n private renameModalId = 'rename-list';\r\n private renameListServerErrorMessage = '';\r\n private openModalRename: boolean = false;\r\n\r\n openModalToRename(){\r\n setTimeout(()=> this.openModalRename=true);\r\n }\r\n\r\n async renameListConfirmed(nameParam: string){\r\n this.renameListServerErrorMessage = '';\r\n try{\r\n let listInfo = new List();\r\n listInfo.Id = this.listThumbnail.Id;\r\n listInfo.DisplayName = nameParam; \r\n let renameInfo = {\r\n renamedList:listInfo,\r\n folderId:this.folderId,\r\n organizationId:this.organizationId,\r\n }\r\n await ListTreeModule.renameList(renameInfo);\r\n this.openModalRename=false;\r\n }\r\n catch(error: any){\r\n if(error.code!=undefined) \r\n this.renameListServerErrorMessage = this.$i18n.t('ExceptionCode_'+error.code).toString();\r\n else \r\n this.renameListServerErrorMessage = this.$i18n.t('MyTables_Exception_RenameList').toString();\r\n }\r\n }\r\n \r\n cancelled(){\r\n this.openModalRename = false;\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RenameList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RenameList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RenameList.vue?vue&type=template&id=06757247&\"\nimport script from \"./RenameList.vue?vue&type=script&lang=ts&\"\nexport * from \"./RenameList.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{on:{\"click\":_vm.openModalToRecycleBin}},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('confirmation-dialog',{attrs:{\"dialogState\":_vm.openModalRecycleBin,\"title\":_vm.$t('MyTables_RecycleBinModal_Title'),\"description\":_vm.$t('MyTables_RecycleBinModal_Description'),\"modalConfirmationReally\":_vm.$t('MyTables_RecycleBinModal_Warning'),\"actionButtonText\":_vm.$t('MyTables_Actions_MoveToRecycleBin'),\"cancelButtonText\":_vm.$t('Form_CancelButton'),\"actionButtonIcon\":\"trash-alt\"},on:{\"submit\":_vm.moveToRecycleBinConfirmed,\"cancel\":_vm.cancelled}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{ref:\"confirmationDialog\",attrs:{\"width\":\"600\",\"persistent\":_vm.persistent,\"attach\":_vm.attach,\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.dialogState),callback:function ($$v) {_vm.dialogState=$$v},expression:\"dialogState\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_c('span',{staticClass:\"dialog-title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(!_vm.persistent)?_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")]):_vm._e()],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.description)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"error--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.modalConfirmationReally)+\"\\n \")]),_vm._v(\" \"),(_vm.externalError)?_c('v-card-text',{staticClass:\"error--text mt-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.externalError)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('div',[_c('v-btn',{ref:\"cancelBtn\",staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.cancelButtonText)+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":_vm.actionButtonColor,\"loading\":_vm.submitLoading},on:{\"click\":_vm.onSubmit}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-\"+_vm._s(_vm.actionButtonIcon))]),_vm._v(\"\\n \"+_vm._s(_vm.actionButtonText)+\"\\n \")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({ name:'ConfirmationDialog' })\r\nexport default class ConfirmationDialog extends Vue{\r\n\r\n @Prop() dialogState!:boolean;\r\n @Prop() title!:string | null;\r\n @Prop() cancelButtonText!: string | null;\r\n @Prop() actionButtonText!: string | null;\r\n @Prop() description!:string;\r\n @Prop({default: false}) persistent!:boolean;\r\n @Prop({ default:'md' }) size!: string | null;\r\n @Prop({ default:'' }) modalConfirmationReally!:string;\r\n @Prop({ default:'' }) externalError!: string;\r\n @Prop({ default:'check' }) actionButtonIcon!: string;\r\n @Prop({ default:false }) submitLoading!: boolean;\r\n @Prop({ default:false}) attach!: string | boolean;\r\n @Prop({ default:'error'}) actionButtonColor!: string;\r\n\r\n onSubmit(){\r\n this.$emit('submit');\r\n }\r\n\r\n onCancel(){\r\n if (this.persistent) {\r\n return;\r\n }\r\n this.$emit('cancel');\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ConfirmationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ConfirmationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConfirmationDialog.vue?vue&type=template&id=179d1b24&scoped=true&\"\nimport script from \"./ConfirmationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConfirmationDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConfirmationDialog.vue?vue&type=style&index=0&id=179d1b24&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 \"179d1b24\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\n import { ListThumbnailInfo } from '@/models/ListTree';\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n import { ListTreeHelper } from '@/utils/ListTreeHelper';\r\n import { ConfirmationRequiredEventParams, Event, GlobalNotificationEventParams } from '@/models/Event';\r\n import { List } from '@/api/Api';\r\n import { EventBus } from '@/modules/EventBus';\r\n\r\n @Component({\r\n name:'MoveListToRecycleBin',\r\n components: { ConfirmationDialog }\r\n })\r\n export default class MoveListToRecycleBin extends Vue{\r\n @Prop() listThumbnail!:ListThumbnailInfo;\r\n @Prop() folderId!:string;\r\n @Prop() organizationId!:string;\r\n\r\n openModalRecycleBin: boolean = false;\r\n\r\n openModalToRecycleBin(){\r\n setTimeout(async ()=> {\r\n if(await List.IsReferenced(this.listThumbnail.Id)) {\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: this.$i18n.t('List_CannotDeleteReferenced').toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 10000,\r\n type: 'error',\r\n duplicateId: 'CannotDeleteList'\r\n });\r\n }\r\n else {\r\n EventBus.$emit(Event.CONFIRMATION_REQUIRED, {\r\n title: this.$i18n.t('MyTables_RecycleBinModal_Title').toString(),\r\n description1: this.$i18n.t('MyTables_RecycleBinModal_Description',[this.listThumbnail.Name]).toString(),\r\n description2: this.$i18n.t('MyTables_RecycleBinModal_Warning').toString(),\r\n actionButtonText: this.$i18n.t('MyTables_Actions_MoveToRecycleBin').toString(),\r\n actionButtonIcon: \"trash-alt\",\r\n actionButtonColor: \"error\",\r\n onConfirmation: () => this.moveToRecycleBinConfirmed(),\r\n cancelButtonText: this.$i18n.t('Form_CancelButton').toString()\r\n \r\n });\r\n }\r\n });\r\n }\r\n\r\n async moveToRecycleBinConfirmed(){\r\n if(!ListTreeModule.organizationsTree || !ListTreeModule.listTree)\r\n return;\r\n\r\n let recycleBin = ListTreeHelper.getRecycleBin(ListTreeModule.listTree, this.organizationId);\r\n let infoToMoveToRecycleBin = {\r\n listId:this.listThumbnail.Id,\r\n folderId:this.folderId,\r\n organizationId:this.organizationId,\r\n recycleBin: recycleBin? recycleBin.Id:null\r\n }\r\n\r\n ListTreeModule.moveToRecycleBin(infoToMoveToRecycleBin);\r\n this.openModalRecycleBin = false;\r\n }\r\n\r\n cancelled(){\r\n this.openModalRecycleBin = false;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MoveListToRecycleBin.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MoveListToRecycleBin.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MoveListToRecycleBin.vue?vue&type=template&id=3c34f50c&\"\nimport script from \"./MoveListToRecycleBin.vue?vue&type=script&lang=ts&\"\nexport * from \"./MoveListToRecycleBin.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{on:{\"click\":_vm.openModalToDelete}},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('confirmation-dialog',{attrs:{\"dialogState\":_vm.openModalDelete,\"title\":_vm.$t('MyTables_DeleteListModal_Title'),\"description\":_vm.$t('MyTables_DeleteListModal_Description'),\"modalConfirmationReally\":_vm.$t('MyTables_RecycleBin_EmptyModalWarning'),\"actionButtonText\":_vm.$t('MyTables_Actions_DeleteTable'),\"cancelButtonText\":_vm.$t('Form_CancelButton'),\"externalError\":_vm.deleteListServerErrorMessage,\"actionButtonIcon\":\"trash-alt\"},on:{\"submit\":_vm.deleteListConfirmed,\"cancel\":_vm.cancelled}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import { Action, namespace } from 'vuex-class';\r\n import ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\n import { ListThumbnailInfo } from '@/models/ListTree';\r\n import { ListTreeModule } from '@/store/ListTreeStore'\r\n\r\n @Component({\r\n name:'DeleteList',\r\n components: { ConfirmationDialog }\r\n })\r\n export default class DeleteList extends Vue{\r\n @Prop() listThumbnail!:ListThumbnailInfo;\r\n @Prop() folderId!:string;\r\n @Prop() organizationId!:string;\r\n\r\n private deleteModalId = 'delete-list';\r\n private deleteListServerErrorMessage = '';\r\n private openModalDelete:boolean = false;\r\n\r\n openModalToDelete(){\r\n setTimeout(()=> this.openModalDelete=true);\r\n }\r\n\r\n deleteListConfirmed(){\r\n try{\r\n ListTreeModule.deleteList({listId: this.listThumbnail.Id, organizationId: this.organizationId}); \r\n this.openModalDelete=false;\r\n }\r\n catch(error){\r\n this.deleteListServerErrorMessage = this.$i18n.t('MyTables_Exception_DeleteList').toString();\r\n }\r\n }\r\n\r\n cancelled(){\r\n this.openModalDelete = false;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DeleteList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DeleteList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeleteList.vue?vue&type=template&id=a3d541fe&\"\nimport script from \"./DeleteList.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeleteList.vue?vue&type=script&lang=ts&\"\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","\r\n import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n import { ListThumbnailInfo, List, CopyListInfo, CopyListOptions, ListTreeFolder } from '@/models/RowShare';\r\n import CopyListDialog from './CopyListDialog.vue';\r\n import RenameList from './RenameList.vue';\r\n import MoveListToRecycleBin from './MoveListToRecycleBin.vue';\r\n import DeleteList from './DeleteList.vue';\r\n import { Action, namespace } from 'vuex-class';\r\n import ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\n import SingleFormDialog from '@/views/MyTables/SingleFormDialog.vue';\r\n\r\n @Component({\r\n name:'ListActionsSubmenu',\r\n components:{ CopyListDialog, RenameList, MoveListToRecycleBin, DeleteList, ConfirmationDialog, SingleFormDialog }\r\n })\r\n export default class ListActionSubmenu extends Vue {\r\n\r\n @Prop() list!: ListThumbnailInfo;\r\n @Prop() folder!:ListTreeFolder;\r\n @Prop() organizationId!:string;\r\n\r\n //This function is to not loose the style that vuetify adds to the menu's items.\r\n doNothing(){}\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListActionsSubmenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListActionsSubmenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListActionsSubmenu.vue?vue&type=template&id=d3d5c338&scoped=true&\"\nimport script from \"./ListActionsSubmenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListActionsSubmenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListActionsSubmenu.vue?vue&type=style&index=0&id=d3d5c338&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 \"d3d5c338\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n import { ListThumbnailInfo, ListTreeFolder } from '@/models/RowShare';\r\n import ListActionsSubmenu from './ListActions/ListActionsSubmenu.vue';\r\n\r\n @Component({\r\n name:'ListThumbnail',\r\n components:{ ListActionsSubmenu }\r\n })\r\n export default class ListThumbnail extends Vue {\r\n @Prop() list!: ListThumbnailInfo;\r\n @Prop() folder!:ListTreeFolder;\r\n @Prop() organizationId!:string;\r\n @Prop() showSubmenu!:{\r\n type:boolean,\r\n required:true\r\n };\r\n\r\n private focusedComponent = false;\r\n \r\n focusComponent(){\r\n this.focusedComponent = true;\r\n }\r\n\r\n focusLost(){\r\n this.focusedComponent = false;\r\n }\r\n\r\n getIcon() {\r\n if (this.list.IconPath)\r\n return '/' + this.list.IconPath + \"?_ssb_img=S;w:48;h:48\";\r\n }\r\n\r\n getTableUrl() {\r\n if(!this.list.IsInRecycleBin){\r\n return \"/t/\" + this.list.Id;\r\n }\r\n else return \"#\";\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListThumbnail.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListThumbnail.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListThumbnail.vue?vue&type=template&id=44214a69&scoped=true&\"\nimport script from \"./ListThumbnail.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListThumbnail.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListThumbnail.vue?vue&type=style&index=0&id=44214a69&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 \"44214a69\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{attrs:{\"to\":_vm.getContentUrl(),\"id\":_vm.folder.Id,\"draggable\":\"false\"},on:{\"dragenter\":_vm.enteredElement,\"dragleave\":_vm.leftElement}},[_c('v-list-item',{staticClass:\"folder-thumbnail\",attrs:{\"two-line\":\"\"}},[_c('v-list-item-avatar',{attrs:{\"tile\":\"\"}},[_c('span',{staticClass:\"folder-default-icon\"},[(_vm.folder.IsRecycleBin)?_c('v-icon',{attrs:{\"dense\":\"\"}},[_vm._v(\"fa-trash\")]):_c('v-icon',{attrs:{\"dense\":\"\"}},[_vm._v(\"fa-folder-open\")])],1)]),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.folder.Name)+\"\\n \")])],1),_vm._v(\" \"),_c('v-list-item-action',[(_vm.folder.TotalListCount > 0)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticClass:\"avatar ml-3\"},'div',attrs,false),on),[_c('span',[_vm._v(_vm._s(_vm.folder.TotalListCount))])])]}}],null,false,1127908016)},[_vm._v(\"\\n \"+_vm._s(_vm.badgeTooltipsContent)+\"\\n \")]):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport * as API from \"@/api/Api\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\n\r\n@Component\r\nexport default class FolderThumbnail extends Vue {\r\n @Prop() folder!: RowShare.ListTreeFolder;\r\n @Prop() organizationId!: string | null;\r\n @Prop() listDragged!:RowShare.ListThumbnailInfo;\r\n\r\n get badgeTooltipsContent() {\r\n return this.$i18n.t('MyTables_TotalCount', [this.folder.TotalListCount]).toString();\r\n }\r\n\r\n getContentUrl() {\r\n return {\r\n name: \"MyTables\",\r\n params: {\r\n organizationId: this.organizationId,\r\n folderId: this.folder.Id\r\n }\r\n };\r\n }\r\n\r\n enteredElement(){\r\n let elem = document.getElementById(this.folder.Id);\r\n if(this.listDragged.Owned && this.folder.CanCurrentUserCreateList && !this.folder.IsInRecycleBin && elem){\r\n elem.classList.add('drop-allowed');\r\n }\r\n if((!this.listDragged.Owned || !this.folder.CanCurrentUserCreateList) && !this.folder.IsInRecycleBin && elem){\r\n elem.classList.add('drop-not-allowed');\r\n }\r\n }\r\n\r\n leftElement(){\r\n let elem = document.getElementById(this.folder.Id);\r\n if(elem){\r\n elem.classList.remove('drop-allowed');\r\n elem.classList.remove('drop-not-allowed');\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./FolderThumbnail.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./FolderThumbnail.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FolderThumbnail.vue?vue&type=template&id=15b47f5e&scoped=true&\"\nimport script from \"./FolderThumbnail.vue?vue&type=script&lang=ts&\"\nexport * from \"./FolderThumbnail.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FolderThumbnail.vue?vue&type=style&index=0&id=15b47f5e&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 \"15b47f5e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"list-browser-actions-bar\",attrs:{\"id\":\"my-tables-actions\"}},[_c('div',{staticClass:\"action-area\"},[(_vm.folder.CanCurrentUserCreateList && _vm.folder.HasRemainingListSlot)?_c('v-btn',{staticClass:\"list-browser-actions-bar-action\",attrs:{\"link\":\"\",\"text\":\"\",\"color\":\"primary\",\"small\":\"\",\"to\":_vm.createTableLocation}},[_c('v-icon',{staticClass:\"list-browser-actions-bar-action-icon\",attrs:{\"x-small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fa-plus\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_Actions_NewTable'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),_c('create-folder-action',{staticClass:\"list-browser-actions-bar-action\",attrs:{\"canCreate\":_vm.folder.CanCurrentUserCreateFolder,\"organizationId\":_vm.organizationId,\"folderId\":_vm.folder.Id}},[_c('v-icon',{staticClass:\"list-browser-actions-bar-action-icon\",attrs:{\"x-small\":\"\"}},[_vm._v(\"fa-folder-open\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('MyTables_Actions_NewFolder')))])],1),_vm._v(\" \"),_c('rename-folder-action',{staticClass:\"list-browser-actions-bar-action\",attrs:{\"canRename\":_vm.folder.CanCurrentUserCreateFolder && !_vm.isRootFolder && _vm.folder.CanCurrentUserRenameFolder,\"organizationId\":_vm.organizationId,\"folderId\":_vm.folder.Id,\"newName\":_vm.folder.Name,\"parentFolderId\":_vm.parentFolderId},on:{\"update:newName\":function($event){return _vm.$set(_vm.folder, \"Name\", $event)},\"update:new-name\":function($event){return _vm.$set(_vm.folder, \"Name\", $event)}}},[_c('v-icon',{staticClass:\"list-browser-actions-bar-action-icon\",attrs:{\"x-small\":\"\"}},[_vm._v(\"fa-pencil-alt\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('MyTables_Actions_RenameFolder')))])],1),_vm._v(\" \"),_c('delete-folder-action',{staticClass:\"list-browser-actions-bar-action\",attrs:{\"canDelete\":_vm.folder.CanCurrentUserCreateFolder && !_vm.isRootFolder && _vm.folder.CanCurrentUserDeleteFolder,\"organizationId\":_vm.organizationId,\"folderId\":_vm.folder.Id,\"parentFolderId\":_vm.parentFolderId,\"newName\":_vm.folder.Name},on:{\"update:newName\":function($event){return _vm.$set(_vm.folder, \"Name\", $event)},\"update:new-name\":function($event){return _vm.$set(_vm.folder, \"Name\", $event)}}},[_c('v-icon',{staticClass:\"list-browser-actions-bar-action-icon\",attrs:{\"x-small\":\"\"}},[_vm._v(\"fa-trash\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('MyTables_Actions_DeleteFolder')))])],1),_vm._v(\" \"),_c('edit-authorization-action',{staticClass:\"list-browser-actions-bar-action\",attrs:{\"canEdit\":_vm.folder.CanCurrentUserManageAccesses,\"displayInheritConfiguration\":!_vm.isRootFolder,\"organizationId\":_vm.organizationId,\"parentFolderId\":_vm.parentFolderId,\"folder\":_vm.folder},on:{\"update:organizationId\":function($event){_vm.organizationId=$event},\"update:organization-id\":function($event){_vm.organizationId=$event},\"update:parentFolderId\":function($event){_vm.parentFolderId=$event},\"update:parent-folder-id\":function($event){_vm.parentFolderId=$event},\"update:folder\":function($event){_vm.folder=$event}}},[_c('v-icon',{staticClass:\"list-browser-actions-bar-action-icon\",attrs:{\"x-small\":\"\"}},[_vm._v(\"fa-unlock\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('MyTables_Actions_EditAuthorization')))])],1),_vm._v(\" \"),_c('manage-owners-action',{staticClass:\"list-browser-actions-bar-action\",attrs:{\"canManage\":_vm.folder.CanCurrentUserManageAccesses && !_vm.isRootFolder,\"organizationId\":_vm.organizationId,\"folderId\":_vm.folder.Id,\"parentFolderId\":_vm.parentFolderId},on:{\"update:organizationId\":function($event){_vm.organizationId=$event},\"update:organization-id\":function($event){_vm.organizationId=$event},\"update:folderId\":function($event){return _vm.$set(_vm.folder, \"Id\", $event)},\"update:folder-id\":function($event){return _vm.$set(_vm.folder, \"Id\", $event)},\"update:parentFolderId\":function($event){_vm.parentFolderId=$event},\"update:parent-folder-id\":function($event){_vm.parentFolderId=$event}}},[_c('v-icon',{staticClass:\"list-browser-actions-bar-action-icon\",attrs:{\"x-small\":\"\"}},[_vm._v(\"fa-user\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('MyTables_Actions_ManageOwners')))])],1),_vm._v(\" \"),(_vm.folder.IsRecycleBin)?_c('div',{staticClass:\"list-browser-actions-bar-action\"},[_c('confirmation-dialog',{attrs:{\"dialogState\":_vm.recycleBinModal,\"title\":_vm.$t('MyTables_RecycleBin_EmptyModalTitle'),\"description\":_vm.$t('MyTables_RecycleBin_EmptyModalDescription'),\"modalConfirmationReally\":_vm.$t('MyTables_RecycleBin_EmptyModalWarning'),\"actionButtonText\":_vm.$t('MyTables_RecycleBin_EmptyModalButton'),\"cancelButtonText\":_vm.$t('Form_CancelButton'),\"externalError\":_vm.emptyRecycleBinErrorMessage,\"actionButtonIcon\":\"trash-alt\"},on:{\"submit\":_vm.emptyRecycleBinConfirmed,\"cancel\":_vm.cancelled}}),_vm._v(\" \"),_c('div',{on:{\"click\":function($event){_vm.recycleBinModal=true}}},[_c('v-icon',{staticClass:\"list-browser-actions-bar-action-icon\",attrs:{\"x-small\":\"\"}},[_vm._v(\"fa-trash\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('MyTables_EmptyRecycleBin')))])],1)],1):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.canCreate)?_c('div',[_c('div',{on:{\"click\":function($event){_vm.createFolderModal=true}}},[_vm._t(\"default\")],2),_vm._v(\" \"),(!_vm.dialogAlreadyExistInDOM)?_c('single-form-dialog',{attrs:{\"id\":_vm.createFolderDialogName,\"dialogState\":_vm.createFolderModal,\"title\":_vm.$t('MyTables_Actions_NewFolder'),\"inputPlaceholder\":_vm.$t('MyTables_CreateFolderModal_Placeholder'),\"cancelButtonText\":_vm.$t('MyTables_FolderModal_CancelButton'),\"actionButtonText\":_vm.$t('MyTables_CreateFolderModal_CreateButton'),\"errorMessage\":_vm.$t('MyTables_Validation_Required_Folder_Name'),\"externalError\":_vm.createFolderServerErrorMessage,\"validationRules\":{required: true},\"actionButtonIcon\":\"plus\",\"inputName\":_vm.$t('Form_TableName')},on:{\"update:externalError\":function($event){_vm.createFolderServerErrorMessage=$event},\"update:external-error\":function($event){_vm.createFolderServerErrorMessage=$event},\"submit\":_vm.createFolder,\"cancel\":_vm.cancelled}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import SingleFormDialog from '@/views/MyTables/SingleFormDialog.vue';\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n import { ListTreeHelper } from '@/utils/ListTreeHelper';\r\n\r\n @Component({\r\n name:'CreateFolderAction',\r\n components: { SingleFormDialog }\r\n })\r\n export default class CreateFolderAction extends Vue {\r\n\r\n @Prop({ default: false }) canCreate!: boolean;\r\n @Prop({ default: '' }) organizationId!: string;\r\n @Prop({ default: '' }) folderId!: string;\r\n\r\n private createFolderModal=false;\r\n createFolderDialogName : string = 'create-folder-modal';\r\n createFolderServerErrorMessage: string = '';\r\n\r\n get dialogAlreadyExistInDOM(): boolean {\r\n return !!document.getElementById(this.createFolderDialogName);\r\n }\r\n\r\n async createFolder(folderName: string): Promise {\r\n this.createFolderServerErrorMessage = \"\";\r\n \r\n let organizationId = this.organizationId ? this.organizationId : \"\";\r\n let folderId = this.folderId !== '' ? this.folderId : \"\";\r\n let createInfo = {\r\n folderId: this.folderId,\r\n orgId: this.organizationId,\r\n folderName: folderName\r\n };\r\n\r\n if(!ListTreeModule.listTree || !ListTreeModule.organizationsTree)\r\n return;\r\n\r\n let existingFolder = await ListTreeHelper.getFolderByNameInParentFolder(ListTreeModule.listTree, this.organizationId,this.folderId,folderName);\r\n if(existingFolder==null){\r\n let existingList = await ListTreeHelper.getListByNameInParentFolder(ListTreeModule.listTree, this.organizationId,this.folderId, folderName);\r\n if(existingList==null){\r\n await ListTreeModule.createFolder(createInfo).then((res:any)=>{\r\n this.createFolderModal = false;\r\n }).catch((error:any)=>{\r\n let errorMessage : string;\r\n if (error.Exception != undefined)\r\n {\r\n errorMessage = error.Exception.Message;\r\n } \r\n else\r\n {\r\n errorMessage = error.message ? error.message : error.Message;\r\n if(errorMessage.includes('RS')){\r\n errorMessage = this.$t('ExceptionCode_'+ error.Code).toString();\r\n }\r\n }\r\n this.createFolderServerErrorMessage = errorMessage;\r\n })\r\n }\r\n else{\r\n this.createFolderServerErrorMessage = this.$t('MyTables_CreateFolderModal_ExistingList').toString();\r\n } \r\n }\r\n else{\r\n this.createFolderServerErrorMessage = this.$t('MyTables_CreateFolderModal_ExistingFolder').toString();\r\n }\r\n }\r\n\r\n cancelled(){\r\n this.createFolderServerErrorMessage = \"\";\r\n this.createFolderModal = false;\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreateFolder.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreateFolder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateFolder.vue?vue&type=template&id=0570f2ea&\"\nimport script from \"./CreateFolder.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateFolder.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.canRename)?_c('div',[_c('div',{on:{\"click\":function($event){_vm.renameFolderModal=true}}},[_vm._t(\"default\")],2),_vm._v(\" \"),(!_vm.dialogAlreadyExistInDOM)?_c('single-form-dialog',{attrs:{\"id\":_vm.renameFolderDialogName,\"dialogState\":_vm.renameFolderModal,\"title\":_vm.$t('MyTables_Actions_RenameFolder'),\"inputName\":_vm.$t('Form_FolderName'),\"inputPlaceholder\":_vm.$t('Form_FolderName'),\"formModel\":_vm.newName,\"cancelButtonText\":_vm.$t('MyTables_FolderModal_CancelButton'),\"actionButtonText\":_vm.$t('MyTables_RenameFolderModal_RenameButton'),\"errorMessage\":_vm.$t('MyTables_Validation_Required_Folder_Name'),\"externalError\":_vm.renameFolderServerErrorMessage,\"validationRules\":{required: true},\"actionButtonIcon\":\"pencil-alt\"},on:{\"update:formModel\":function($event){_vm.newName=$event},\"update:form-model\":function($event){_vm.newName=$event},\"update:externalError\":function($event){_vm.renameFolderServerErrorMessage=$event},\"update:external-error\":function($event){_vm.renameFolderServerErrorMessage=$event},\"submit\":_vm.renameFolder,\"cancel\":_vm.cancelled}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import SingleFormDialog from '@/views/MyTables/SingleFormDialog.vue';\r\n import * as API from '@/api/Api';\r\n import * as RowShare from '@/models/RowShare';\r\n import { Action, Getter, namespace } from 'vuex-class';\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n import { ListTreeHelper } from '@/utils/ListTreeHelper';\r\n\r\n @Component({\r\n name:'RenameFolderAction',\r\n components: { SingleFormDialog }\r\n })\r\n export default class RenameFolderAction extends Vue{\r\n\r\n @Prop({ default: false }) canRename!: boolean;\r\n @Prop({ default: '' }) organizationId!: string;\r\n @Prop({ default: '' }) folderId!: string;\r\n @Prop({ default: '' }) parentFolderId!: string;\r\n @Prop({ default: '' }) newName!: string;\r\n\r\n private renameFolderModal = false;\r\n renameFolderDialogName : string = 'rename-folder-modal';\r\n renameFolderServerErrorMessage: string = '';\r\n\r\n get dialogAlreadyExistInDOM(): boolean {\r\n return !!document.getElementById(this.renameFolderDialogName);\r\n }\r\n\r\n async renameFolder(newFolderName: string) : Promise {\r\n this.renameFolderServerErrorMessage = '';\r\n \r\n let renameInfo = {\r\n parentFolderId: this.parentFolderId,\r\n folderId: this.folderId,\r\n orgId: this.organizationId,\r\n folderName: newFolderName\r\n };\r\n \r\n if(!ListTreeModule.listTree || !ListTreeModule.organizationsTree)\r\n return;\r\n\r\n let existingFolderInAboveLevel = await ListTreeHelper.getFolderByNameInParentFolder(ListTreeModule.listTree, this.organizationId,this.parentFolderId,newFolderName);\r\n if(existingFolderInAboveLevel==null){\r\n let existingListInAboveLevel = await ListTreeHelper.getListByNameInParentFolder(ListTreeModule.listTree, this.organizationId,this.parentFolderId,newFolderName);\r\n if(existingListInAboveLevel==null){\r\n await ListTreeModule.renameFolder(renameInfo).then((res:any)=>{\r\n this.renameFolderModal = false;\r\n }).catch((error:any)=>{\r\n let errorMessage : string;\r\n if (error.Exception != undefined)\r\n {\r\n errorMessage = error.Exception.Message;\r\n }\r\n else\r\n {\r\n errorMessage = error.message ? error.message : error.Message;\r\n }\r\n this.renameFolderServerErrorMessage = errorMessage;\r\n })\r\n }\r\n else{\r\n this.renameFolderServerErrorMessage = this.$t('MyTables_CreateFolderModal_ExistingList').toString();\r\n } \r\n }\r\n else{\r\n this.renameFolderServerErrorMessage = this.$t('MyTables_CreateFolderModal_ExistingFolder').toString();\r\n } \r\n }\r\n\r\n cancelled(){\r\n this.renameFolderServerErrorMessage = \"\";\r\n this.renameFolderModal = false;\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RenameFolder.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RenameFolder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RenameFolder.vue?vue&type=template&id=5d6d3aef&\"\nimport script from \"./RenameFolder.vue?vue&type=script&lang=ts&\"\nexport * from \"./RenameFolder.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.canDelete)?_c('div',[_c('div',{on:{\"click\":function($event){_vm.recycleBinModal = true}}},[_vm._t(\"default\")],2),_vm._v(\" \"),(!_vm.dialogAlreadyExistInDOM)?_c('confirmation-dialog',{attrs:{\"id\":_vm.deleteFolderDialogName,\"dialogState\":_vm.recycleBinModal,\"title\":_vm.$t('MyTables_DeleteFolderModal_Title'),\"description\":_vm.getDescription,\"modalConfirmationReally\":_vm.$t('MyTables_DeleteFolderModal_Confirmation_Text'),\"externalError\":_vm.deleteFolderServerErrorMessage,\"actionButtonText\":_vm.$t('MyTables_DeleteFolderModal_DeleteButton'),\"cancelButtonText\":_vm.$t('MyTables_FolderModal_CancelButton'),\"actionButtonIcon\":\"trash-alt\",\"submitLoading\":_vm.isDeleting},on:{\"update:externalError\":function($event){_vm.deleteFolderServerErrorMessage=$event},\"update:external-error\":function($event){_vm.deleteFolderServerErrorMessage=$event},\"submit\":_vm.moveFolderToRecycleBin,\"cancel\":_vm.cancelled}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport { ListTreeHelper } from '@/utils/ListTreeHelper';\r\n\r\n@Component({\r\n name: 'DeleteFolderAction',\r\n components: { ConfirmationDialog }\r\n})\r\nexport default class DeleteFolderAction extends Vue {\r\n\r\n @Prop({ default: false }) canDelete!: boolean;\r\n @Prop({ default: '' }) organizationId!: string;\r\n @Prop({ default: '' }) folderId!: string;\r\n @Prop({ default: '' }) parentFolderId!: string;\r\n @Prop({ default: '' }) newName!: string;\r\n\r\n isDeleting: boolean = false;\r\n\r\n private recycleBinModal = false;\r\n deleteFolderDialogName: string = 'delete-folder-modal';\r\n deleteFolderServerErrorMessage: string = '';\r\n\r\n @Watch('recycleBinModal')\r\n resetErrorMessage() {\r\n this.deleteFolderServerErrorMessage = '';\r\n }\r\n\r\n get parentTableLocation(): RouterLocation {\r\n return {\r\n name: \"MyTables\",\r\n params: {\r\n organizationId: this.organizationId,\r\n folderId: this.parentFolderId ? this.parentFolderId : null\r\n }\r\n };\r\n }\r\n\r\n get dialogAlreadyExistInDOM(): boolean {\r\n return !!document.getElementById(this.deleteFolderDialogName);\r\n }\r\n get getDescription() {\r\n return this.$i18n.t('MyTables_DeleteFolderModal_Description', [this.newName]).toString();\r\n }\r\n async moveFolderToRecycleBin(): Promise {\r\n this.isDeleting = true;\r\n this.deleteFolderServerErrorMessage = \"\";\r\n try {\r\n if (this.folderId && ListTreeModule.listTree ) {\r\n let recycleBin = ListTreeHelper.getRecycleBin(ListTreeModule.listTree, this.organizationId)\r\n let deleteInfo = {\r\n folderId: this.folderId,\r\n organizationId: this.organizationId,\r\n parentFolderId: this.parentFolderId,\r\n recycleBin: recycleBin ? recycleBin.Id : null\r\n };\r\n await ListTreeModule.removeFolder(deleteInfo).then((res: any) => {\r\n this.recycleBinModal = false;\r\n this.isDeleting = false;\r\n //the route to redirect has to be that one before updating the recycle bin because when doing that, \r\n //the parent folder changes and the redirection is not well done. That's why deleteInfo.parentFolderId is used.\r\n let newRoute = {\r\n name: \"MyTables\",\r\n params: {\r\n organizationId: this.organizationId,\r\n folderId: deleteInfo.parentFolderId\r\n }\r\n }\r\n this.$router.push(newRoute);\r\n }).catch((error: any) => {\r\n this.isDeleting = false;\r\n let errorMessage: string;\r\n if (error.Exception != undefined) {\r\n errorMessage = error.Exception.Message;\r\n }\r\n else {\r\n errorMessage = error.message ? error.message : error.Message;\r\n }\r\n this.deleteFolderServerErrorMessage = errorMessage;\r\n })\r\n }\r\n else {\r\n throw new Error(\"Failed to delete folder\");\r\n }\r\n }\r\n catch (error: any) {\r\n this.isDeleting = false;\r\n this.deleteFolderServerErrorMessage = error;\r\n }\r\n }\r\n\r\n cancelled() {\r\n this.recycleBinModal = false;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DeleteFolder.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DeleteFolder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeleteFolder.vue?vue&type=template&id=2644de20&\"\nimport script from \"./DeleteFolder.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeleteFolder.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.canEdit)?_c('div',[_c('div',{on:{\"click\":function($event){_vm.authorizationModal=true}}},[_vm._t(\"default\")],2),_vm._v(\" \"),(!_vm.dialogAlreadyExistInDOM)?_c('permission-dialog',{attrs:{\"id\":_vm.editAuthDialogName,\"size\":\"lg\",\"title\":_vm.$t('MyTables_AuthorizationModal_Title'),\"description\":_vm.$t('MyTables_AuthorizationModal_Subtitle'),\"folderId\":_vm.folder.Id,\"organizationId\":_vm.organizationId,\"parentFolderId\":_vm.parentFolderId,\"accessMode\":_vm.folder.AccessMode,\"displayInherit\":_vm.displayInheritConfiguration,\"dialogState\":_vm.authorizationModal},on:{\"update:folderId\":function($event){return _vm.$set(_vm.folder, \"Id\", $event)},\"update:folder-id\":function($event){return _vm.$set(_vm.folder, \"Id\", $event)},\"update:organizationId\":function($event){_vm.organizationId=$event},\"update:organization-id\":function($event){_vm.organizationId=$event},\"update:parentFolderId\":function($event){_vm.parentFolderId=$event},\"update:parent-folder-id\":function($event){_vm.parentFolderId=$event},\"update:accessMode\":function($event){return _vm.$set(_vm.folder, \"AccessMode\", $event)},\"update:access-mode\":function($event){return _vm.$set(_vm.folder, \"AccessMode\", $event)},\"cancel\":_vm.cancelled}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"900\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.dialogState),callback:function ($$v) {_vm.dialogState=$$v},expression:\"dialogState\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2 pb-0\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1 pb-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.description)+\"\\n \")]),_vm._v(\" \"),(_vm.parentFolderId!='00000000000000000000000000000000')?_c('div',[_c('v-card-text',{staticClass:\"mt-1 pb-0 px-6 subtitle-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_AuthorizationModal_InheritPermissions_Title'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-italic py-0 px-6\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_AuthorizationModal_InheritPermissions_Description'))+\"\\n \")]),_vm._v(\" \"),_c('v-switch',{staticClass:\"px-7 my-0\",attrs:{\"inset\":\"\"},on:{\"change\":_vm.toggleInheritMode},model:{value:(_vm.inheritAccess),callback:function ($$v) {_vm.inheritAccess=$$v},expression:\"inheritAccess\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',{staticClass:\"mt-1 pb-0 subtitle-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_AuthorizationModal_ExplicitPermissions_Title'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-italic py-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_AuthorizationModal_ExplicitPermissions_Description'))+\"\\n \")]),_vm._v(\" \"),(_vm.usersListFolderAccesses.length > 0)?_c('v-card-text',{staticClass:\"list-accesses\"},_vm._l((_vm.usersListFolderAccesses),function(access,index){return _c('v-row',{key:access.Id},[_c('v-col',{staticClass:\"guest-name\",attrs:{\"cols\":\"4\"}},[_c('bigram',{staticClass:\"mr-2\",attrs:{\"dense\":\"\",\"listAccess\":access}}),_vm._v(\" \"),_c('span',{attrs:{\"title\":access.guestName}},[_vm._v(_vm._s(access.guestName))])],1),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-btn-toggle',{attrs:{\"mandatory\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.onChangeSaveFolderAccess(access,index)}},model:{value:(access.AccessMode),callback:function ($$v) {_vm.$set(access, \"AccessMode\", $$v)},expression:\"access.AccessMode\"}},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\",\"value\":0}},[_vm._v(_vm._s(_vm.$t('MyTables_AuthorizationModal_ExplicitPermissions_PermissionNone')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\",\"value\":1}},[_vm._v(_vm._s(_vm.$t('MyTables_AuthorizationModal_ExplicitPermissions_PermissionRead')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\",\"value\":2}},[_vm._v(_vm._s(_vm.$t('MyTables_AuthorizationModal_ExplicitPermissions_PermissionWrite')))])],1)],1),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeAccess(access)}}},[_c('v-icon',[_vm._v(\"fa fa-trash\")])],1)],1)],1)}),1):_c('v-card-text',{staticClass:\"text-center mt-2 pb-0 subtitle-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyTables_AuthorizationModal_ExplicitPermissions_EmptyText'))+\"\\n \")]),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-container',[(_vm.displayAddForm)?_c('v-card',[_c('v-card-text',{staticClass:\"subtitle-1 font-weight-bold py-1\"},[_vm._v(_vm._s(_vm.$t('MyTables_AuthorizationModal_ExplicitPermissions_New')))]),_vm._v(\" \"),_c('v-divider',{staticClass:\"py-1\"}),_vm._v(\" \"),_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('security-principal-dropdown',{ref:\"dropdown\",attrs:{\"organization\":_vm.currentOrganization,\"filterExistingPrincipals\":_vm.currentDisplayedPrincipals,\"multiple\":false,\"openDirection\":\"auto\",\"customPlaceHolder\":_vm.customPlaceHolder,\"memberCreationEnabled\":false},model:{value:(_vm.selectedPrincipal),callback:function ($$v) {_vm.selectedPrincipal=$$v},expression:\"selectedPrincipal\"}})],1),_vm._v(\" \"),_c('v-col',[_c('v-select',{attrs:{\"id\":\"select-permission\",\"items\":_vm.permissions,\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\"},model:{value:(_vm.newFolderAccess.AccessMode),callback:function ($$v) {_vm.$set(_vm.newFolderAccess, \"AccessMode\", $$v)},expression:\"newFolderAccess.AccessMode\"}})],1),_vm._v(\" \"),_c('v-col',[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.saveNewFolderAccess}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_Add'))+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.toggleAddForm}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_Cancel'))+\"\\n \")])],1)],1)],1):_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"my-2\",attrs:{\"small\":\"\",\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.toggleAddForm}},[_c('v-icon',[_vm._v(\"fa-plus\")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:_vm.classes,attrs:{\"title\":_vm.tooltip},on:{\"click\":function($event){return _vm.$emit('click')}}},[(_vm.bigram)?_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.bigram)+\"\\n \")]):_c('div',[_c('i',{staticClass:\"v-icon fal fa-user\"}),_c('i',{staticClass:\"v-icon fal fa-question\"})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { OwnerType } from '@/models/User';\r\nimport { Utils } from './Utilities';\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport i18n from '@/modules/Localization';\r\n\r\nexport class BigramHelper {\r\n\r\n public static getBigramCssClass(backgroundColorIndex: number | null, type: OwnerType): string {\r\n let result = \"rs-bigram\";\r\n\r\n if (Utils.isNumber(backgroundColorIndex)) {\r\n result += \" color\" + backgroundColorIndex;\r\n }\r\n\r\n if (type == OwnerType.Group) {\r\n result += \" guest-group\";\r\n }\r\n else if (type == OwnerType.Team) {\r\n result += \" guest-team\";\r\n }\r\n else if (type == OwnerType.MyOrganization) {\r\n result = \"rs-bigram header-guestsBar-external header-guestsBar-building-org\";\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public static getAssignationResultFromSecurityPrincipal(securityPrincipal: RowShare.SecurityPrincipal | string | null){\r\n if(!securityPrincipal)\r\n return undefined;\r\n\r\n // got a security principal\r\n if(securityPrincipal instanceof RowShare.SecurityPrincipal) {\r\n const ownerType = securityPrincipal.type == RowShare.SecurityPrincipalType.Group\r\n ? RowShare.OwnerIdType.Group\r\n : RowShare.OwnerIdType.User;\r\n\r\n return {\r\n ownerId: ownerType == RowShare.OwnerIdType.Group ? securityPrincipal.GroupId : securityPrincipal.MemberEmail,\r\n ownerIdType: ownerType,\r\n securityPrincipal: securityPrincipal\r\n };\r\n }\r\n\r\n // got a new member email\r\n return {\r\n ownerId: securityPrincipal,\r\n ownerIdType: RowShare.OwnerIdType.User,\r\n };\r\n }\r\n\r\n public static getBigramClassesForSecurityPrincipal(securityPrincipal: RowShare.SecurityPrincipal, dense: boolean, xsmall: boolean = false) {\r\n return this.getBigramClasses(securityPrincipal, null, null, null, null, dense, xsmall);\r\n }\r\n\r\n public static getBigramClassesForRowOwner(rowOwner: RowShare.RowOwner, dense: boolean, xsmall: boolean = false) {\r\n return this.getBigramClasses(null, rowOwner, null, null, null, dense, xsmall);\r\n }\r\n\r\n public static getBigramClassesForListAccess(listAccess: RowShare.ListAccess, dense: boolean, xsmall: boolean = false) {\r\n return this.getBigramClasses(null, null, listAccess, null, null, dense, xsmall);\r\n }\r\n\r\n public static getBigramClassesForColumnAccess(columnAccess: RowShare.ColumnAccess, dense: boolean, xsmall: boolean = false) {\r\n return this.getBigramClasses(null, null, null, columnAccess, null, dense, xsmall);\r\n }\r\n\r\n public static getBigramClassesForRtcUser(rtcUser: RowShare.RealTimeCollaborationEntity, dense: boolean, xsmall: boolean = false) {\r\n return this.getBigramClasses(null, null, null, null, rtcUser, dense, xsmall);\r\n }\r\n\r\n private static getBigramClasses(securityPrincipal: RowShare.SecurityPrincipal | null, rowOwner: RowShare.RowOwner | null,\r\n listAccess: RowShare.ListAccess | null, columnAccess: RowShare.ColumnAccess | null, rtcUser: RowShare.RealTimeCollaborationEntity | null, dense: boolean,\r\n xsmall: boolean) {\r\n let res = [\"rs-bigram\"];\r\n\r\n let bgIndex: number | null = null;\r\n if(listAccess) {\r\n bgIndex = listAccess.Guest.BackgroundColorIndex;\r\n }\r\n else if(securityPrincipal) {\r\n bgIndex = securityPrincipal.BackgroundColorIndex;\r\n }\r\n else if(rowOwner) {\r\n bgIndex = rowOwner.BackgroundColorIndex;\r\n }\r\n else if(columnAccess) {\r\n bgIndex = columnAccess.Guest.BackgroundColorIndex;\r\n }\r\n else if(rtcUser) {\r\n bgIndex = rtcUser.backgroundColorIndex;\r\n }\r\n\r\n if(Utils.isNumber(bgIndex))\r\n res.push(\"color\" + bgIndex.toString());\r\n\r\n\r\n if(dense)\r\n res.push(\"rs-bigram-dense\");\r\n\r\n if(xsmall) {\r\n res.push(\"rs-bigram-xsmall\");\r\n }\r\n\r\n const type = BigramHelper.getNormalizedSecurityPrincipalType(securityPrincipal, rowOwner, listAccess, columnAccess);\r\n switch(type){\r\n case (RowShare.SecurityPrincipalType.Group):\r\n res.push(\"rs-bigram-group\");\r\n break;\r\n case (RowShare.SecurityPrincipalType.DirectReports):\r\n case (RowShare.SecurityPrincipalType.AllReports):\r\n res.push(\"rs-bigram-team\");\r\n break;\r\n }\r\n\r\n let ownerName: string | null = null;\r\n if(listAccess)\r\n ownerName = listAccess.Guest.DisplayName;\r\n else if(securityPrincipal)\r\n ownerName = securityPrincipal.displayName;\r\n else if(rowOwner) {\r\n ownerName = rowOwner.DisplayName;\r\n }\r\n\r\n if(Utils.isNullOrEmpty(ownerName))\r\n res.push(\"rs-bigram-unknown\");\r\n else if(ownerName === RowShare.surveyUserEmail || ownerName === '(' + RowShare.surveyUserEmail + ')')\r\n res.push(\"rs-bigram-survey\");\r\n // else if ((/\\([^@]+@[^\\.]+\\.\\w+\\)/gi).test(ownerName))\r\n else if (Utils.validateEmail(ownerName))\r\n res.push(\"rs-bigram-noaccount\");\r\n\r\n return res;\r\n }\r\n\r\n public static getBigramTooltipForSecurityPrincipal(securityPrincipal: RowShare.SecurityPrincipal) {\r\n return this.getBigramTooltip(securityPrincipal, null, null, null, null);\r\n }\r\n\r\n public static getBigramTooltipForRowOwner(rowOwner: RowShare.RowOwner) {\r\n return this.getBigramTooltip(null, rowOwner, null, null, null);\r\n }\r\n\r\n public static getBigramTooltipForListAccess(listAccess: RowShare.ListAccess) {\r\n return this.getBigramTooltip(null, null, listAccess, null, null);\r\n }\r\n\r\n public static getBigramTooltipForColumnAccess(columnAccess: RowShare.ColumnAccess) {\r\n return this.getBigramTooltip(null, null, null, columnAccess, null);\r\n }\r\n\r\n public static getBigramTooltipForForRtcUser(user: RowShare.RealTimeCollaborationEntity) {\r\n return this.getBigramTooltip(null, null, null, null, user);\r\n }\r\n\r\n private static getBigramTooltip(securityPrincipal: RowShare.SecurityPrincipal | null, rowOwner: RowShare.RowOwner | null,\r\n listAccess: RowShare.ListAccess | null, columnAccess: RowShare.ColumnAccess | null, user: RowShare.RealTimeCollaborationEntity | null) {\r\n const type = BigramHelper.getNormalizedSecurityPrincipalType(securityPrincipal, rowOwner, listAccess, columnAccess);\r\n\r\n let ownerName: string | null = null;\r\n if(listAccess) {\r\n ownerName = listAccess.Guest.DisplayName;\r\n }\r\n else if(securityPrincipal) {\r\n ownerName = securityPrincipal.displayName;\r\n }\r\n else if(rowOwner) {\r\n ownerName = rowOwner.DisplayName;\r\n }\r\n else if(columnAccess) {\r\n ownerName = columnAccess.Guest.DisplayName;\r\n }\r\n\r\n let result = ownerName;\r\n if (type == RowShare.SecurityPrincipalType.DirectReports)\r\n result = i18n.t(\"ListAccess_DirectReportsTeamNameFormat\", [ownerName]).toString();\r\n else if(type == RowShare.SecurityPrincipalType.AllReports)\r\n result = i18n.t(\"ListAccess_AllReportsTeamNameFormat\", [ownerName]).toString();\r\n\r\n if(Utils.isNullOrEmpty(ownerName))\r\n result = i18n.t(\"MemberRenderer_UnknownUserTooltip\", [ownerName]).toString();\r\n else if(ownerName === RowShare.surveyUserEmail || ownerName === '(' + RowShare.surveyUserEmail + ')')\r\n result = i18n.t(\"MemberRenderer_SurveyUserTooltip\", [ownerName]).toString();\r\n else if ((/\\([^@]+@[^\\.]+\\.\\w+\\)/gi).test(ownerName))\r\n result = i18n.t(\"MemberRenderer_NoAccountUserTooltip\", [ownerName]).toString();\r\n\r\n if (user) {\r\n result = user.authorName;\r\n }\r\n\r\n return result ?? \"\";\r\n }\r\n\r\n private static getNormalizedSecurityPrincipalType(securityPrincipal: RowShare.SecurityPrincipal | null, rowOwner: RowShare.RowOwner | null,\r\n listAccess: RowShare.ListAccess | null, columnAccess: RowShare.ColumnAccess | null) : RowShare.SecurityPrincipalType | null {\r\n if(listAccess || rowOwner || columnAccess) {\r\n let type = listAccess ? listAccess.Guest.Type : (columnAccess ? columnAccess.Guest?.Type : rowOwner?.Type)\r\n\r\n switch(type){\r\n case (RowShare.OwnerType.User):\r\n return RowShare.SecurityPrincipalType.User;\r\n case (RowShare.OwnerType.Member):\r\n return RowShare.SecurityPrincipalType.Member;\r\n case (RowShare.OwnerType.Group):\r\n return RowShare.SecurityPrincipalType.Group;\r\n case (RowShare.OwnerType.Team):\r\n if(!listAccess && !columnAccess)\r\n return null;\r\n\r\n if(listAccess) {\r\n if (listAccess.Options & RowShare.AccessOptions.ManagedOfMember) {\r\n if (listAccess.Options & RowShare.AccessOptions.Recursive) {\r\n return RowShare.SecurityPrincipalType.AllReports;\r\n } else {\r\n return RowShare.SecurityPrincipalType.DirectReports;\r\n }\r\n }\r\n }\r\n else if (columnAccess) {\r\n if(columnAccess.TeamGrant == RowShare.TeamType.Direct) {\r\n return RowShare.SecurityPrincipalType.DirectReports;\r\n }\r\n else if (columnAccess.TeamGrant == RowShare.TeamType.Extended) {\r\n return RowShare.SecurityPrincipalType.AllReports;\r\n }\r\n }\r\n default:\r\n return null;\r\n }\r\n } else if(securityPrincipal) {\r\n return securityPrincipal.type;\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n","\r\nimport {Component, Prop, Vue} from \"vue-property-decorator\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport {BigramHelper} from \"@/utils/BigramHelper\";\r\n\r\n@Component({ name: \"Bigram\" })\r\nexport default class Bigram extends Vue {\r\n @Prop({type: Boolean, default: false}) dense!: boolean;\r\n @Prop({type: Boolean, default: false}) xsmall!: boolean;\r\n @Prop() listAccess!: RowShare.ListAccess;\r\n @Prop() securityPrincipal!: RowShare.SecurityPrincipal;\r\n @Prop() rowOwner!: RowShare.RowOwner;\r\n @Prop() columnAccess!: RowShare.ColumnAccess;\r\n @Prop() rtcUser!: RowShare.RealTimeCollaborationEntity\r\n\r\n get bigram(){\r\n if(this.listAccess) {\r\n return this.listAccess.Guest.Bigram;\r\n }\r\n else if(this.securityPrincipal) {\r\n return this.securityPrincipal.Bigram;\r\n }\r\n else if(this.rowOwner) {\r\n return this.rowOwner.Bigram;\r\n }\r\n else if(this.columnAccess) {\r\n return this.columnAccess.Guest?.Bigram;\r\n } else if(this.rtcUser) {\r\n return this.rtcUser.bigram;\r\n }\r\n else\r\n return null;\r\n }\r\n\r\n get classes() {\r\n if(this.listAccess) {\r\n return BigramHelper.getBigramClassesForListAccess(this.listAccess, this.dense, this.xsmall);\r\n }\r\n else if(this.securityPrincipal) {\r\n return BigramHelper.getBigramClassesForSecurityPrincipal(this.securityPrincipal, this.dense, this.xsmall);\r\n }\r\n else if(this.rowOwner) {\r\n return BigramHelper.getBigramClassesForRowOwner(this.rowOwner, this.dense, this.xsmall);\r\n }\r\n else if(this.columnAccess) {\r\n return BigramHelper.getBigramClassesForColumnAccess(this.columnAccess, this.dense, this.xsmall);\r\n } else if (this.rtcUser) {\r\n return BigramHelper.getBigramClassesForRtcUser(this.rtcUser, this.dense, this.xsmall);\r\n }\r\n }\r\n\r\n get tooltip(): string {\r\n if(this.listAccess) {\r\n return BigramHelper.getBigramTooltipForListAccess(this.listAccess);\r\n }\r\n else if(this.securityPrincipal) {\r\n return BigramHelper.getBigramTooltipForSecurityPrincipal(this.securityPrincipal);\r\n }\r\n else if(this.rowOwner) {\r\n return BigramHelper.getBigramTooltipForRowOwner(this.rowOwner);\r\n }\r\n else if(this.columnAccess) {\r\n return BigramHelper.getBigramTooltipForColumnAccess(this.columnAccess);\r\n } else if(this.rtcUser) {\r\n return BigramHelper.getBigramTooltipForForRtcUser(this.rtcUser);\r\n }\r\n else {\r\n return \"\";\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Bigram.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Bigram.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Bigram.vue?vue&type=template&id=281fd23d&scoped=true&\"\nimport script from \"./Bigram.vue?vue&type=script&lang=ts&\"\nexport * from \"./Bigram.vue?vue&type=script&lang=ts&\"\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 \"281fd23d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('multiselect',{ref:\"multiselect\",attrs:{\"options\":_vm.allPrincipals,\"track-by\":\"value\",\"label\":\"searchBy\",\"selectLabel\":\"\",\"showLabels\":false,\"multiple\":_vm.multiple,\"placeholder\":_vm.placeholder,\"tagPlaceholder\":_vm.createTagPlaceholder,\"taggable\":_vm.memberCreationEnabled && (_vm.organization && _vm.organization.CanCurrentUserManage) && _vm.canCreateTagForCurrentSearch,\"option-height\":48,\"hideSelected\":true,\"open-direction\":_vm.openDirection},on:{\"input\":_vm.onValueChanged,\"tag\":_vm.onNewTag,\"close\":function($event){return _vm.$emit('close')},\"search-change\":_vm.onTagboxSearchChanged},scopedSlots:_vm._u([{key:\"singleLabel\",fn:function({ option }){return [_c('div',{staticClass:\"d-flex align-center\"},[(option.securityPrincipal && option.securityPrincipal.IsMyOrganization)?_c('v-avatar',{staticClass:\"mr-1\",attrs:{\"size\":\"30\",\"title\":option.text}},[(_vm.getIconPath(option.securityPrincipal))?_c('v-img',{attrs:{\"src\":_vm.getIconPath(option.securityPrincipal)}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1):(option.securityPrincipal)?_c('bigram',{attrs:{\"dense\":\"\",\"securityPrincipal\":option.securityPrincipal}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"ml-2 tag-text\",attrs:{\"title\":option.text}},[_vm._v(_vm._s(option.text))])],1)]}},{key:\"tag\",fn:function({ option, remove }){return [_c('v-chip',{staticClass:\"selected-chip ma-1\",attrs:{\"close\":\"\",\"close-icon\":\"fa-times\",\"label\":\"\"},on:{\"click:close\":function($event){return remove(option)}}},[(option.securityPrincipal && option.securityPrincipal.IsMyOrganization)?_c('v-avatar',{staticClass:\"mr-1\",attrs:{\"size\":\"30\",\"title\":option.text}},[(_vm.getIconPath(option.securityPrincipal))?_c('v-img',{attrs:{\"src\":_vm.getIconPath(option.securityPrincipal)}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1):(option.securityPrincipal)?_c('bigram',{attrs:{\"dense\":\"\",\"securityPrincipal\":option.securityPrincipal}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"ml-2 tag-text\",attrs:{\"title\":option.text}},[_vm._v(_vm._s(option.text))])],1)]}},{key:\"option\",fn:function(props){return [_c('div',{staticClass:\"d-flex align-center\",class:{'newMember': !props.option.securityPrincipal}},[(props.option.securityPrincipal && props.option.securityPrincipal.IsMyOrganization)?_c('v-avatar',{staticClass:\"mr-1\",attrs:{\"size\":\"40\",\"title\":props.option.text}},[(_vm.getIconPath(props.option.securityPrincipal))?_c('v-img',{attrs:{\"src\":_vm.getIconPath(props.option.securityPrincipal)}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1):_c('bigram',{attrs:{\"securityPrincipal\":props.option.securityPrincipal}}),_vm._v(\" \"),_c('div',{staticClass:\"ml-2 d-flex flex-column\"},[_c('strong',{attrs:{\"title\":props.option.text}},[_vm._v(_vm._s(props.option.text))]),_vm._v(\" \"),(props.option.hasEmail)?_c('span',{staticClass:\"mt-1\",attrs:{\"title\":props.option.email}},[_vm._v(\"\\n \"+_vm._s(props.option.email)+\"\\n \")]):_vm._e()])],1)]}}]),model:{value:(_vm.selection),callback:function ($$v) {_vm.selection=$$v},expression:\"selection\"}},[_vm._v(\" \"),_vm._v(\" \"),_vm._v(\" \"),_c('template',{slot:\"noResult\"},[(_vm.organization && _vm.organization.CanCurrentUserManage && _vm.memberCreationEnabled)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SecurityPrincipalDropdown_TagboxNoResultsAdmin'))+\"\\n \")]):(_vm.organization && _vm.organization.CanCurrentUserManage && !_vm.memberCreationEnabled)?_c('span',[_vm._v(\" \\n \"+_vm._s(_vm.$t('SecurityPrincipalDropdown_TagboxNoMemberCreation'))+\"\\n \")]):_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SecurityPrincipalDropdown_TagboxNoResultsNotAdmin'))+\"\\n \")])]),_vm._v(\" \"),_c('template',{slot:\"noOptions\"},[_c('span',[_vm._v(_vm._s(_vm.$t('SecurityPrincipalDropdown_EmptyList')))])]),_vm._v(\" \"),(_vm.dropdownIcon)?_c('template',{slot:\"caret\"},[_c('v-icon',{staticClass:\"dropdown-icon\",attrs:{\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.dropdownIcon))])],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport * as API from '@/api/Api';\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport Multiselect from 'vue-multiselect';\r\nimport Bigram from \"@/views/components/Bigram.vue\";\r\n\r\n@Component({name: \"SecurityPrincipalDropdown\", components: { Multiselect, Bigram }})\r\nexport default class SecurityPrincipalDropdown extends Vue{\r\n @Prop({required: true}) value!: (RowShare.SecurityPrincipal | string) | (RowShare.SecurityPrincipal | string)[];\r\n @Prop({required: true}) organization!: RowShare.Organization;\r\n @Prop({default: true}) includeTeams!: boolean;\r\n @Prop({default: true}) memberCreationEnabled!: boolean;\r\n @Prop({default: true}) showMyOrganization!: boolean;\r\n @Prop({default: true}) multiple!: boolean;\r\n @Prop({default: \"\"}) openDirection!: string;\r\n @Prop() filterExistingPrincipals!: RowShare.SecurityPrincipal[];\r\n @Prop({ default:'' }) customPlaceHolder!:string | null;\r\n @Prop() dropdownIcon!: string;\r\n allPrincipals: RowShare.DropdownMember[] = [];\r\n selection: RowShare.DropdownMember | RowShare.DropdownMember[] = [];\r\n\r\n currentGuestSearch: string = \"\";\r\n canCreateTagForCurrentSearch = false;\r\n\r\n async mounted() {\r\n await this.initListItems();\r\n if(this.value) {\r\n if(this.multiple) {\r\n this.selection = (this.value).map(v => new RowShare.DropdownMember(v));\r\n }\r\n else {\r\n this.selection = new RowShare.DropdownMember(this.value);\r\n }\r\n this.onValueChanged();\r\n }\r\n }\r\n\r\n @Watch('filterExistingPrincipals')\r\n async initListItems() {\r\n let principals = await API.SecurityPrincipal.loadForOrganization(this.organization.Id, this.includeTeams);\r\n\r\n if(principals){\r\n const filterExistingPrincipalsIds = this.filterExistingPrincipals?.map(l => {return l.id}) ?? [];\r\n principals = principals?.filter( principal => {\r\n if(!this.showMyOrganization && principal.IsMyOrganization) {\r\n return false; \r\n }\r\n return !filterExistingPrincipalsIds.includes(principal.id);\r\n })\r\n\r\n }\r\n this.allPrincipals = principals ? principals.map(s => new RowShare.DropdownMember(s)) : [];\r\n }\r\n\r\n onValueChanged(){\r\n let evtArgs: (RowShare.SecurityPrincipal | string) | (RowShare.SecurityPrincipal | string)[];\r\n\r\n if(this.multiple) {\r\n let vals = this.selection;\r\n evtArgs = vals.map(vm => vm.isNew ? vm.text : vm.securityPrincipal);\r\n } else {\r\n let val = this.selection;\r\n evtArgs = val.isNew ? val.text : val.securityPrincipal;\r\n }\r\n\r\n this.$emit('input', evtArgs)\r\n }\r\n\r\n get createTagPlaceholder(){\r\n return this.$t(\"SecurityPrincipalDropdown_TagboxAddNewMemberMessage\", [this.currentGuestSearch]).toString();\r\n }\r\n \r\n get placeholder() {\r\n if(!Utils.isNullOrWhiteSpace(this.customPlaceHolder)){\r\n return this.customPlaceHolder;\r\n }\r\n if(this.organization && this.organization.CanCurrentUserManage){\r\n return this.$t(\"SecurityPrincipalDropdown_TagboxPlaceholderAdmin\",[this.currentGuestSearch]).toString();\r\n }else{\r\n return this.$t(\"SecurityPrincipalDropdown_TagboxPlaceholderNotAdmin\",[this.currentGuestSearch]).toString();\r\n }\r\n }\r\n\r\n onNewTag (newTag: string) {\r\n if(!Utils.validateEmail(newTag))\r\n return;\r\n\r\n var newItem = new RowShare.DropdownMember({\r\n value: newTag,\r\n text: newTag,\r\n searchBy: newTag,\r\n isNew: true\r\n });\r\n\r\n if(this.multiple)\r\n (this.selection).push(newItem);\r\n else\r\n this.selection = newItem;\r\n\r\n this.onValueChanged();\r\n }\r\n\r\n onTagboxSearchChanged(searchQuery: string){\r\n this.currentGuestSearch = searchQuery;\r\n\r\n let isValidEmail = Utils.validateEmail(this.currentGuestSearch);\r\n let isDuplicate = false;\r\n\r\n if(this.multiple)\r\n isDuplicate = !!(this.selection).find(g => g.value == this.currentGuestSearch);\r\n\r\n let memberAlreadyExists = this.allPrincipals.find(p => p.email?.toLowerCase() == this.currentGuestSearch);\r\n\r\n this.canCreateTagForCurrentSearch = isValidEmail && !isDuplicate && !memberAlreadyExists;\r\n }\r\n \r\n activate(){\r\n ((this.$refs.multiselect)).activate();\r\n }\r\n\r\n clearSelection() {\r\n this.selection = []; \r\n }\r\n\r\n getIconPath(principal: RowShare.SecurityPrincipal) {\r\n if(!principal || !principal.IconPath) {\r\n return \"\";\r\n }\r\n let path = principal.IconPath\r\n if(!path) {\r\n return \"\";\r\n }\r\n if(!path.startsWith(\"/\")) {\r\n path = \"/\" + path + '?_ssb_img=S;w:40;h:40';\r\n }\r\n else {\r\n path = \"\";\r\n }\r\n return path;\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SecurityPrincipalDropdown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SecurityPrincipalDropdown.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SecurityPrincipalDropdown.vue?vue&type=template&id=5586b862&scoped=true&\"\nimport script from \"./SecurityPrincipalDropdown.vue?vue&type=script&lang=ts&\"\nexport * from \"./SecurityPrincipalDropdown.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SecurityPrincipalDropdown.vue?vue&type=style&index=0&id=5586b862&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 \"5586b862\",\n null\n \n)\n\nexport default component.exports","\r\n import {Component, Prop, Vue, Watch} from 'vue-property-decorator';\r\n import * as Models from \"@/models/RowShare\";\r\n import * as API from \"@/api/Api\";\r\n\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n import Bigram from \"@/views/components/Bigram.vue\";\r\n import { FolderAccess } from '@/models/RowShare';\r\n import SecurityPrincipalDropdown from \"@/views/components/SecurityPrincipalDropdown.vue\";\r\n\r\n @Component({name:'PermissionDialog',components: {Bigram, SecurityPrincipalDropdown }})\r\n\r\n export default class PermissionDialog extends Vue{\r\n @Prop() id!: string | null;\r\n @Prop() title!:string | null;\r\n @Prop() description!:string;\r\n @Prop() folderId!: string;\r\n @Prop() organizationId!: string;\r\n @Prop() parentFolderId!: string;\r\n @Prop() accessMode!: Models.FolderAccessMode;\r\n @Prop({ default: 'md' }) size!: string | null;\r\n @Prop({ default: true }) displayInherit!: boolean;\r\n @Prop() dialogState!: boolean;\r\n @Prop({default: true}) multiple!: boolean;\r\n @Prop({default: true}) memberCreationEnabled!: boolean;\r\n inheritAccess: boolean = true;\r\n displayAddForm: boolean = false;\r\n isError: boolean = false;\r\n newFolderAccess= new FolderAccess();\r\n currentAccesses = new Array();\r\n principals = new Array>();\r\n savedAccess = new Array();\r\n permissions = new Array>();\r\n usersListFolderAccesses: Array;\r\n currentOrganization: Models.Organization | null = null;\r\n selectedPrincipal: Models.SecurityPrincipal | string | null = null;\r\n constructor(){\r\n super();\r\n this.usersListFolderAccesses = [];\r\n }\r\n\r\n @Watch('dialogState')\r\n async onShow(){\r\n this.currentOrganization = await API.Organization.load(this.organizationId);\r\n this.displayAddForm = false;\r\n this.inheritAccess = this.accessMode != Models.FolderAccessMode.DontInherit;\r\n await this.loadAccesses();\r\n this.permissions = [\r\n { \r\n value: Models.FolderAccessMode.None, \r\n text: this.$i18n\r\n .t('MyTables_AuthorizationModal_ExplicitPermissions_PermissionNone')\r\n .toString()\r\n },\r\n { \r\n value: Models.FolderAccessMode.Read, \r\n text: this.$i18n\r\n .t('MyTables_AuthorizationModal_ExplicitPermissions_PermissionRead')\r\n .toString()\r\n }, \r\n { \r\n value: Models.FolderAccessMode.Write, \r\n text: this.$i18n\r\n .t('MyTables_AuthorizationModal_ExplicitPermissions_PermissionWrite')\r\n .toString()\r\n }\r\n ];\r\n }\r\n async loadAccesses() {\r\n this.usersListFolderAccesses = (await API.Folder.loadAccesses(this.folderId)) ?? [];\r\n }\r\n \r\n private async saveNewFolderAccess(){\r\n if(this.selectedPrincipal instanceof Models.SecurityPrincipal){\r\n if(!(this.newFolderAccess.AccessMode >=0 && (this.selectedPrincipal instanceof Models.SecurityPrincipal))){\r\n this.isError = true; \r\n } else\r\n {\r\n let folderAccessToSave = new Models.FolderAccess();\r\n folderAccessToSave.FolderId = this.folderId;\r\n folderAccessToSave.AccessMode = this.newFolderAccess.AccessMode;\r\n folderAccessToSave.GroupId = this.selectedPrincipal.GroupId;\r\n folderAccessToSave.GroupName = this.selectedPrincipal.GroupName;\r\n folderAccessToSave.MemberName = this.selectedPrincipal.MemberName;\r\n folderAccessToSave.Id = this.selectedPrincipal.id;\r\n folderAccessToSave.MemberEmail = this.selectedPrincipal.MemberEmail;\r\n folderAccessToSave.MemberOrganizationId = this.selectedPrincipal.MemberOrganizationId;\r\n folderAccessToSave.Options = this.selectedPrincipal.Options;\r\n let newCreatedFolderAccess = await API.Folder.saveAccess(folderAccessToSave);\r\n if(newCreatedFolderAccess){\r\n this.usersListFolderAccesses.push(newCreatedFolderAccess);\r\n }\r\n this.toggleAddForm();\r\n }\r\n }\r\n }\r\n\r\n private toggleAddForm(): void {\r\n if(!this.displayAddForm) \r\n this.newFolderAccess = new FolderAccess();\r\n this.displayAddForm = !this.displayAddForm;\r\n this.isError = false;\r\n this.selectedPrincipal=null;\r\n }\r\n\r\n hideModal(): void {\r\n // this.dialogDisplay = false;\r\n this.displayAddForm = false;\r\n }\r\n \r\n async toggleInheritMode(): Promise {\r\n let inheritConfig = {\r\n Id: this.folderId,\r\n ParentId: this.parentFolderId,\r\n AccessMode: this.inheritAccess ? \r\n Models.FolderAccessMode.None : \r\n Models.FolderAccessMode.DontInherit,\r\n OrganizationId: this.organizationId\r\n };\r\n await ListTreeModule.setInheritAccess(inheritConfig);\r\n }\r\n\r\n onCancel(){\r\n this.$emit('cancel');\r\n }\r\n\r\n removeAccess(access: Models.FolderAccess) {\r\n API.Folder.deleteAccess(access).then((deletedAccess) => {\r\n if(deletedAccess){\r\n this.loadAccesses();\r\n }\r\n }).catch((error) => {\r\n console.error('Une erreur s\\'est produite lors de la suppression de Folder Access :', error)});\r\n }\r\n public onChangeSaveFolderAccess(access: Models.FolderAccess,index: number) {\r\n API.Folder.saveAccess(access).then((savedAccess) => {\r\n if(savedAccess) {\r\n this.usersListFolderAccesses[index].Guest.DisplayName = savedAccess.guestName;\r\n this.usersListFolderAccesses[index].AccessMode = savedAccess.AccessMode;\r\n }\r\n }).catch((error) => {\r\n console.error('Une erreur s\\'est produite lors de la sauvegarde de Folder Access :', error);\r\n });\r\n }\r\n public get currentDisplayedPrincipals() {\r\n return this.usersListFolderAccesses.map((currentListOfFolderAccess)=> {\r\n const principal = new Models.SecurityPrincipal();\r\n principal.GroupId = currentListOfFolderAccess.GroupId;\r\n principal.GroupName = currentListOfFolderAccess.GroupName;\r\n principal.MemberEmail = currentListOfFolderAccess.MemberEmail;\r\n principal.MemberOrganizationId = currentListOfFolderAccess.MemberOrganizationId;\r\n principal.MemberName = currentListOfFolderAccess.MemberName;\r\n principal.Options = currentListOfFolderAccess.Options;\r\n return principal;\r\n });\r\n }\r\n public get customPlaceHolder(){\r\n return this.$i18n.t('MyTables_AuthorizationModal_PrincipalPlaceholder').toString();\r\n }\r\n }\r\n\r\n class selectOptions {\r\n value!: T | null;\r\n text!: string;\r\n }\r\n\r\n class groupedOptions {\r\n options!: Array>;\r\n label!: string;\r\n }\r\n\r\n class AccessModel{\r\n principal!: string | null;\r\n permission!: Models.FolderAccessMode;\r\n }\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PermissionDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PermissionDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PermissionDialog.vue?vue&type=template&id=310b43d0&scoped=true&\"\nimport script from \"./PermissionDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./PermissionDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PermissionDialog.vue?vue&type=style&index=0&id=310b43d0&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 \"310b43d0\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import * as API from \"@/api/Api\";\r\n import * as Models from \"@/models/RowShare\";\r\n import { Action, Getter, namespace } from \"vuex-class\";\r\n import PermissionDialog from '@/views/MyTables/PermissionDialog.vue';\r\n\r\n @Component({\r\n name:'EditAuthorizationAction',\r\n components: { PermissionDialog }\r\n })\r\n export default class EditAuthorizationAction extends Vue{\r\n\r\n @Prop({ default: false }) canEdit!: boolean;\r\n @Prop({ default: '' }) organizationId!: string;\r\n @Prop({ default: '' }) folder!: Models.ListTreeFolder;\r\n @Prop({ default: '' }) parentFolderId!: string;\r\n @Prop({ default: true }) displayInheritConfiguration!: boolean;\r\n private authorizationModal = false;\r\n\r\n editAuthDialogName : string = 'edit-auth-modal';\r\n editAuthServerErrorMessage: string = '';\r\n\r\n get dialogAlreadyExistInDOM(): boolean {\r\n return !!document.getElementById(this.editAuthDialogName);\r\n }\r\n\r\n cancelled(){\r\n this.authorizationModal = false;\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EditAuthorization.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EditAuthorization.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditAuthorization.vue?vue&type=template&id=9cb9336a&\"\nimport script from \"./EditAuthorization.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditAuthorization.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.canManage)?_c('div',[_c('div',{on:{\"click\":function($event){_vm.manageOwnersModal=true}}},[_vm._t(\"default\")],2),_vm._v(\" \"),(!_vm.dialogAlreadyExistInDOM)?_c('owners-dialog',{attrs:{\"id\":_vm.manageOwnersDialogName,\"title\":_vm.$t('MyTables_ManageOwnersModal_Title'),\"description\":_vm.$t('MyTables_ManageOwnersModal_Description'),\"cancelButtonText\":_vm.$t('MyTables_FolderModal_CloseButton'),\"defaultOptionText\":_vm.$t('MyTables_ManageOwnersModal_DefaultOption'),\"tableTitle\":_vm.$t('MyTables_ManageOwnersModal_TableTitle'),\"folderId\":_vm.folderId,\"organizationId\":_vm.organizationId,\"dialogState\":_vm.manageOwnersModal},on:{\"update:folderId\":function($event){_vm.folderId=$event},\"update:folder-id\":function($event){_vm.folderId=$event},\"update:organizationId\":function($event){_vm.organizationId=$event},\"update:organization-id\":function($event){_vm.organizationId=$event},\"cancel\":_vm.cancelled}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"600\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.dialogState),callback:function ($$v) {_vm.dialogState=$$v},expression:\"dialogState\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1 pb-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.description)+\"\\n \")]),_vm._v(\" \"),_c('v-container',[_c('v-row',[_c('v-col',[_c('v-card',[_c('v-card-title',{staticClass:\"py-1\"},[_vm._v(_vm._s(_vm.tableTitle))]),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-list',{staticClass:\"mx-2 my-2\"},[_c('v-list-item-group',_vm._l((_vm.folderOwners),function(owner){return _c('v-list-item',{key:owner.OwnerEmail,attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(owner.OwnerName + \" ( \" + owner.OwnerEmail + \" )\"))])],1),_vm._v(\" \"),_c('v-list-item-icon',[_c('v-icon',{on:{\"click\":function($event){return _vm.removeOwner(owner)}}},[_vm._v(\"fa-times-circle\")])],1)],1)}),1)],1),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),(_vm.displayAddForm)?_c('v-select',{staticClass:\"mx-2 my-2\",attrs:{\"item-text\":_vm.textOption,\"item-value\":\"Email\",\"items\":_vm.organizationUsers,\"standard\":\"\",\"item-disabled\":_vm.isUserDisabled,\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.handleAddOwner},model:{value:(_vm.selectedUserEmail),callback:function ($$v) {_vm.selectedUserEmail=$$v},expression:\"selectedUserEmail\"}}):_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"my-2\",attrs:{\"small\":\"\",\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.toggleAddForm}},[_c('v-icon',[_vm._v(\"fa-plus\")])],1)],1)],1)],1)],1)],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer')],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import * as Models from \"@/models/RowShare\";\r\n import * as API from \"@/api/Api\";\r\n import _ from 'lodash';\r\n\r\n @Component({\r\n name:'OwnerDialog2'\r\n })\r\n export default class OwnerDialog2 extends Vue{\r\n \r\n @Prop() id!: string | null;\r\n @Prop() title!: string | null;\r\n @Prop() cancelButtonText!: string | null;\r\n @Prop() actionButtonText!: string | null;\r\n @Prop() description!: string;\r\n @Prop({ default: ''}) defaultOptionText!: string;\r\n @Prop({ default: 'md' }) size!: string | null;\r\n @Prop({ default: 'times' }) cancelButtonIcon!: string;\r\n @Prop({ default: '' }) folderId!: string;\r\n @Prop({ default: '' }) organizationId!: string;\r\n @Prop({ default: '' }) tableTitle!: string;\r\n @Prop() dialogState!:boolean;\r\n\r\n private folderOwners: Array = [];\r\n private displayAddForm: boolean = false;\r\n private organizationUsers: Array = [];\r\n private selectedUserEmail: string | null = null;\r\n\r\n \r\n //The only way to execute a method when the modal is open is by watching the boolean variable \r\n @Watch('dialogState')\r\n async resetModal(){\r\n this.displayAddForm = false;\r\n let currentOwners = await API.Folder.loadOwners(this.folderId);\r\n this.folderOwners = currentOwners ? currentOwners : [];\r\n let currentOrganizationUsers = await API.Member.loadForParent(this.organizationId);\r\n this.organizationUsers = currentOrganizationUsers ? currentOrganizationUsers : [];\r\n }\r\n\r\n toggleAddForm(){\r\n this.displayAddForm = !this.displayAddForm;\r\n }\r\n\r\n async handleAddOwner(){\r\n if(this.selectedUserEmail){\r\n let newOwner = new Models.FolderOwner();\r\n newOwner.OwnerEmail = this.selectedUserEmail;\r\n newOwner.OwnerOrganizationId = this.organizationId;\r\n newOwner.FolderId = this.folderId;\r\n let addedOwner = await API.Folder.saveOwner(newOwner);\r\n if (addedOwner){\r\n this.folderOwners.push(addedOwner);\r\n this.selectedUserEmail = null;\r\n this.toggleAddForm();\r\n }\r\n } \r\n }\r\n\r\n isUserDisabled(user: Models.Member) : boolean{\r\n let alreadyOwner = _.find(this.folderOwners, { OwnerEmail: user.Email})\r\n return !!alreadyOwner;\r\n }\r\n\r\n async removeOwner(owner: Models.FolderOwner){\r\n let removedOwner = await API.Folder.deleteOwner(owner);\r\n if(removedOwner) {\r\n const index = this.folderOwners.indexOf(owner, 0);\r\n if (index > -1) {\r\n this.folderOwners.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n onCancel(){\r\n this.$emit('cancel');\r\n }\r\n\r\n textOption(item:Models.Member){\r\n return item.Name + ' - ' + item.Email\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OwnersDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OwnersDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OwnersDialog.vue?vue&type=template&id=e1e284e0&scoped=true&\"\nimport script from \"./OwnersDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./OwnersDialog.vue?vue&type=script&lang=ts&\"\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 \"e1e284e0\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n import OwnersDialog from \"@/views/MyTables/FolderActions/OwnersDialog.vue\";\r\n import * as API from \"@/api/Api\";\r\n import * as Models from \"@/models/RowShare\";\r\n import { Action, Getter, namespace } from \"vuex-class\";\r\n\r\n @Component({\r\n name:'ManageOwnersAction',\r\n components: { OwnersDialog }\r\n })\r\n export default class ManageOwnersAction extends Vue{\r\n\r\n @Prop({ default: false }) canManage!: boolean;\r\n @Prop({ default: '' }) organizationId!: string;\r\n @Prop({ default: '' }) folderId!: string;\r\n\r\n private manageOwnersModal = false;\r\n manageOwnersDialogName : string = 'manage-owners-modal';\r\n ManageOwnersServerErrorMessage: string = '';\r\n\r\n get dialogAlreadyExistInDOM(): boolean {\r\n return !!document.getElementById(this.manageOwnersDialogName);\r\n }\r\n\r\n cancelled(){\r\n this.manageOwnersModal = false;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ManageOwners.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ManageOwners.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageOwners.vue?vue&type=template&id=e2117378&\"\nimport script from \"./ManageOwners.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageOwners.vue?vue&type=script&lang=ts&\"\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","\r\n import { Component, Prop } from \"vue-property-decorator\";\r\n import { Location as RouterLocation } from \"vue-router\";\r\n import { ListTreeModule } from '@/store/ListTreeStore'\r\n import * as RowShare from \"@/models/RowShare\"; \r\n import { FormValidation } from \"@/views/components/FormValidation\";\r\n import CreateFolderAction from '@/views/MyTables/FolderActions/CreateFolder.vue';\r\n import RenameFolderAction from '@/views/MyTables/FolderActions/RenameFolder.vue';\r\n import DeleteFolderAction from '@/views/MyTables/FolderActions/DeleteFolder.vue';\r\n import EditAuthorizationAction from '@/views/MyTables/FolderActions/EditAuthorization.vue';\r\n import ManageOwnersAction from '@/views/MyTables/FolderActions/ManageOwners.vue';\r\n import ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\n\r\n @Component({ \r\n name: 'MyTablesActions',\r\n components: { \r\n CreateFolderAction, \r\n RenameFolderAction,\r\n DeleteFolderAction,\r\n EditAuthorizationAction,\r\n ManageOwnersAction,\r\n ConfirmationDialog }\r\n })\r\n export default class MyTablesActions extends FormValidation {\r\n\r\n @Prop() organizationId!: string | null;\r\n @Prop() folder!: RowShare.ListTreeFolder;\r\n @Prop() parentFolderId!: string | null;\r\n\r\n private emptyRecycleBinModalId = 'empty-bin';\r\n private emptyRecycleBinErrorMessage = '';\r\n private recycleBinModal=false;\r\n\r\n get createTableLocation() : RouterLocation {\r\n return {\r\n name: \"CreateTable\",\r\n query: {\r\n organization: this.organizationId,\r\n folderId: this.folder ? this.folder.Id : null\r\n }\r\n };\r\n }\r\n\r\n get isRootFolder() : boolean {\r\n \r\n let personalOrgRootFolderIds = new Array();\r\n if (ListTreeModule.listTree){\r\n ListTreeModule.listTree.Organizations\r\n .forEach((organization) => {\r\n if(organization.RootFolder)\r\n personalOrgRootFolderIds.push(organization.RootFolder.Id);\r\n });\r\n }\r\n if (!this.folder) \r\n return false;\r\n\r\n return personalOrgRootFolderIds.includes(this.folder.Id);\r\n }\r\n\r\n get parentTableLocation() : RouterLocation {\r\n return {\r\n name: \"MyTables\",\r\n params: {\r\n organizationId: this.organizationId,\r\n folderId: this.parentFolderId ? this.parentFolderId : null\r\n }\r\n };\r\n }\r\n\r\n emptyRecycleBinConfirmed() : void{\r\n try{\r\n let infoToEmptyRecycleBin = {\r\n recycleBinId:this.folder.Id,\r\n organizationId:this.organizationId\r\n }\r\n ListTreeModule.emptyRecycleBin(infoToEmptyRecycleBin);\r\n this.recycleBinModal=false;\r\n this.$router.push(this.parentTableLocation);\r\n }\r\n catch(error: any){\r\n this.emptyRecycleBinErrorMessage = error.message;\r\n }\r\n \r\n }\r\n\r\n cancelled(){\r\n this.recycleBinModal = false;\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyTablesActions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyTablesActions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyTablesActions.vue?vue&type=template&id=0f3104fc&scoped=true&\"\nimport script from \"./MyTablesActions.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyTablesActions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyTablesActions.vue?vue&type=style&index=0&id=0f3104fc&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 \"0f3104fc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"rs-page-load-spinner-container\"},[_c('img',{staticClass:\"rs-page-load-spinner\",style:({ width: _vm.dimension + 'px', height: _vm.dimension + 'px' }),attrs:{\"src\":require(\"@/assets/static/images/logo_small.svg\")}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n @Component\r\n export default class PageLoadSpinner extends Vue {\r\n @Prop({default: 80}) dimension!: number;\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PageLoadSpinner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PageLoadSpinner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageLoadSpinner.vue?vue&type=template&id=627465c4&scoped=true&\"\nimport script from \"./PageLoadSpinner.vue?vue&type=script&lang=ts&\"\nexport * from \"./PageLoadSpinner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PageLoadSpinner.vue?vue&type=style&index=0&id=627465c4&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 \"627465c4\",\n null\n \n)\n\nexport default component.exports","import _ from 'lodash';\r\n\r\nexport class ArrayUtils {\r\n static sort(\r\n array: Array, \r\n sortField: string | object, \r\n sortDirection: boolean | 'asc' | 'desc' = 'asc')\r\n : Array\r\n {\r\n return _.orderBy(array, sortField, sortDirection);\r\n }\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.resultNumber > 0)?_c('div',{staticClass:\"lists-wrapper\"},[_c('div',{staticClass:\"result-header-container mb-3\"},[_c('div',{staticClass:\"result-header\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Mytables_SearchResult_Title'))+\" \\\"\"+_vm._s(_vm.searchText)+\"\\\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"result-header-command\"},[_c('div',{staticClass:\"result-header ml-5\",on:{\"click\":_vm.toggleSortDirection}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-sort\")]),_vm._v(\" \"),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t('MyTables_Sort_Text')))])],1)])]),_vm._v(\" \"),_c('v-data-iterator',{attrs:{\"items\":_vm.orderedFolders,\"hide-default-footer\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('span')]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',_vm._l((props.items),function(folder){return _c('v-col',{key:folder.Id,attrs:{\"draggable\":\"true\",\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"},on:{\"click\":_vm.resetSearch}},[_c('folder-thumbnail',{attrs:{\"folder\":folder,\"organizationId\":_vm.organizationId}})],1)}),1)]}}],null,false,2383614785)}),_vm._v(\" \"),_c('v-data-iterator',{attrs:{\"items\":_vm.orderedLists,\"hide-default-footer\":\"\",\"disable-pagination\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('span')]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',_vm._l((props.items),function(list){return _c('v-col',{key:list.Id,attrs:{\"draggable\":\"true\",\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('list-thumbnail',{attrs:{\"list\":list,\"folder\":_vm.folder,\"organizationId\":_vm.organizationId,\"showSubmenu\":true}})],1)}),1)]}}],null,false,2236505769)})],1):_vm._e(),_vm._v(\" \"),(_vm.deletedResultNumber > 0)?_c('div',{staticClass:\"lists-wrapper\"},[_c('div',{staticClass:\"mt-3 mb-3\"},[_vm._v(_vm._s(_vm.$t('Mytables_SearchResult_DeletedTitle')))]),_vm._v(\" \"),_c('v-data-iterator',{attrs:{\"items\":_vm.orderedDeletedFolders,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('span')]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',_vm._l((props.items),function(folder){return _c('v-col',{key:folder.Id,attrs:{\"draggable\":\"true\",\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"},on:{\"click\":_vm.resetSearch}},[_c('folder-thumbnail',{attrs:{\"folder\":folder,\"organizationId\":_vm.organizationId}})],1)}),1)]}}],null,false,2383614785)}),_vm._v(\" \"),_c('v-data-iterator',{attrs:{\"items\":_vm.orderedDeletedLists,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('span')]},proxy:true},{key:\"default\",fn:function(props){return [_c('v-row',_vm._l((props.items),function(list){return _c('v-col',{key:list.Id,attrs:{\"draggable\":\"true\",\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('list-thumbnail',{attrs:{\"list\":list,\"folder\":_vm.folder,\"organizationId\":_vm.organizationId,\"showSubmenu\":true}})],1)}),1)]}}],null,false,2236505769)})],1):_vm._e(),_vm._v(\" \"),(_vm.allResultNumber == 0)?_c('div',{staticClass:\"lists-wrapper\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Mytables_SearchResult_NoResult'))+\" \\\"\"+_vm._s(_vm.searchText)+\"\\\"\\n \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import objectScan from 'object-scan';\r\n\r\nexport class JsonObjectSearch{\r\n\r\n static findFirstNodeById(id: any, searchtarget: any, searchField: string = 'Id'): any{\r\n let result : object | null = null;\r\n\r\n objectScan([`**.${searchField}`], {\r\n filterFn: (params: any) => \r\n {\r\n if (params.value === id) {\r\n result = params.parents[0];\r\n }\r\n },\r\n breakFn: () => result !== null\r\n })(searchtarget);\r\n\r\n return result;\r\n }\r\n\r\n static searchAllNodesByName(name: string, searchtarget: any, searchField: string = 'Name'): Array{\r\n let result : Array = new Array();\r\n \r\n if(name && name !== ''){\r\n objectScan([`**.${searchField}`], {\r\n filterFn: (params: any) => \r\n {\r\n let lowercasedValue = params.value.toLowerCase();\r\n let lowercasedName = name.toLowerCase();\r\n if (lowercasedValue.includes(lowercasedName)) {\r\n result.push(params.parents[0]);\r\n }\r\n }\r\n })(searchtarget);\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","\r\n import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n import * as Models from \"@/models/RowShare\";\r\n import ListThumbnail from \"./ListThumbnail.vue\";\r\n import FolderThumbnail from \"./FolderThumbnail.vue\";\r\n import { ArrayUtils } from '@/utils/Array';\r\n import { EventBus } from '@/modules/EventBus';\r\n import { JsonObjectSearch } from '@/utils/Search';\r\n\r\n @Component({\r\n components: {\r\n ListThumbnail,\r\n FolderThumbnail\r\n }\r\n })\r\n export default class SearchResult extends Vue{\r\n \r\n private organizationId: string = '';\r\n private folder : Models.ListTreeFolder | null = null;\r\n \r\n private searchText : string = '';\r\n private folders: Array = [];\r\n private lists: Array = [];\r\n private deletedFolders: Array = [];\r\n private deletedLists: Array = [];\r\n private sortDirection : boolean | 'asc' | 'desc' = 'asc';\r\n\r\n get orderedFolders(): Array{\r\n return ArrayUtils.sort(\r\n this.folders, \r\n [(folder: { Name: string; }) => folder.Name.toLowerCase()],\r\n this.sortDirection);\r\n }\r\n\r\n get orderedLists(): Array{\r\n return ArrayUtils.sort(\r\n this.lists, \r\n [(list: { Name: string; }) => list.Name.toLowerCase()], \r\n this.sortDirection);\r\n }\r\n\r\n get orderedDeletedFolders(): Array{\r\n return ArrayUtils.sort(\r\n this.deletedFolders, \r\n [(folder: { Name: string; }) => folder.Name.toLowerCase()],\r\n this.sortDirection);\r\n }\r\n\r\n get orderedDeletedLists(): Array{\r\n return ArrayUtils.sort(\r\n this.deletedLists, \r\n [(list: { Name: string; }) => list.Name.toLowerCase()], \r\n this.sortDirection);\r\n }\r\n \r\n get resultNumber(): number {\r\n return this.orderedFolders.length + this.orderedLists.length;\r\n }\r\n\r\n get deletedResultNumber(): number {\r\n return this.orderedDeletedFolders.length + this.orderedDeletedLists.length;\r\n }\r\n\r\n get allResultNumber(): number {\r\n return this.resultNumber + this.deletedResultNumber;\r\n }\r\n\r\n created(){\r\n EventBus.$on(Models.Event.SEARCH_TRIGGERED, \r\n (searchText: string, \r\n folder: Models.ListTreeFolder, \r\n orgId: string) => {\r\n this.folder = folder;\r\n this.organizationId = orgId;\r\n this.onSearchTriggered(searchText);\r\n });\r\n }\r\n\r\n onSearchTriggered(searchText: string){\r\n this.searchText = searchText;\r\n\r\n if(searchText !== '') {\r\n let currentFolder = this.folder ? this.folder: null;\r\n let searchResult: Array = JsonObjectSearch.searchAllNodesByName(searchText, currentFolder);\r\n \r\n let items = searchResult.filter(result => result.ParentId ?\r\n (!result.IsRecycleBin && !result.IsInRecycleBin) :\r\n !result.IsInRecycleBin);\r\n \r\n this.folders = items.filter(result => result.ParentId \r\n && result.ParentId!='00000000000000000000000000000000');\r\n this.lists = items.filter(result => !result.ParentId);\r\n\r\n let deletedItems = searchResult.filter(result => result.ParentId ? \r\n (!result.IsRecycleBin && result.IsInRecycleBin) : \r\n result.IsInRecycleBin);\r\n this.deletedFolders = deletedItems.filter(result => result.ParentId);\r\n this.deletedLists = deletedItems.filter(result => !result.ParentId);\r\n }\r\n }\r\n\r\n resetSearch(){\r\n EventBus.$emit(Models.Event.SEARCH_RESET);\r\n }\r\n\r\n toggleSortDirection(){\r\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SearchResult.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SearchResult.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchResult.vue?vue&type=template&id=5f853532&scoped=true&\"\nimport script from \"./SearchResult.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchResult.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SearchResult.vue?vue&type=style&index=0&id=5f853532&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 \"5f853532\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport * as Models from \"@/models/RowShare\";\r\nimport MyTablesDisabledOrganization from \"@/views/MyTables/MyTablesDisabledOrganization.vue\";\r\nimport ListThumbnail from \"./ListThumbnail.vue\";\r\nimport FolderThumbnail from \"./FolderThumbnail.vue\";\r\nimport MyTablesActions from \"./MyTablesActions.vue\";\r\nimport PageLoadSpinner from \"@/views/layouts/LayoutParts/PageLoadSpinner.vue\";\r\nimport { List } from '@/models/List';\r\nimport { ListThumbnailInfo, ListTreeFolder } from '@/models/RowShare';\r\nimport { ArrayUtils } from '@/utils/Array';\r\nimport { RowShareException} from '@/api/ApiUtils';\r\nimport SearchResult from './SearchResult.vue';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { UserModule } from '@/store/UserStore';\r\n\r\n@Component({\r\n components: {\r\n PageLoadSpinner,\r\n ListBrowser,\r\n ListThumbnail,\r\n FolderThumbnail,\r\n MyTablesActions,\r\n MyTablesDisabledOrganization,\r\n SearchResult\r\n }\r\n})\r\nexport default class ListBrowser extends Vue {\r\n\r\n @Prop() organizationId!: string | null;\r\n @Prop() folderId!: string;\r\n @Prop({ default: null }) lmCurrent!: string | null;\r\n\r\n private listDragged = new ListThumbnailInfo();\r\n private folderIdDragged = '';\r\n private sortDirection: boolean | 'asc' | 'desc' = 'asc';\r\n private displaySearchResult: boolean = false;\r\n\r\n private lmRecents: string = \"Recents\";\r\n private lmFavorites: string = \"Favorites\";\r\n private searchText: string = '';\r\n\r\n created() {\r\n EventBus.$on(Models.Event.TOGGLE_RECENT, this.onToggleRecentOrFavorites);\r\n EventBus.$on(Models.Event.TOGGLE_FAVOURITE, this.onToggleRecentOrFavorites);\r\n EventBus.$on(Models.Event.SEARCH_TRIGGERED, this.onSearch);\r\n EventBus.$on(Models.Event.SEARCH_RESET, this.onSearchReset);\r\n }\r\n\r\n async beforeMount() {\r\n this.refreshTrees(false);\r\n }\r\n\r\n async mounted() {\r\n this.updateTabTitle();\r\n }\r\n\r\n beforeDestroy() { \r\n EventBus.$off([Models.Event.TOGGLE_RECENT, \r\n Models.Event.TOGGLE_FAVOURITE,\r\n Models.Event.SEARCH_TRIGGERED,\r\n Models.Event.SEARCH_RESET]);\r\n }\r\n\r\n @Watch('currentFolder')\r\n updateTabTitle() {\r\n if (!this.currentFolder) {\r\n document.title = \"RowShare\";\r\n } else {\r\n if (this.currentFolder.Id == this.currentOrganization?.RootFolder.Id)\r\n document.title = this.currentOrganization.Name + \" | RowShare\";\r\n else\r\n document.title = this.currentFolder.Name + \" | RowShare\";\r\n }\r\n }\r\n\r\n viewAll() {\r\n this.resetSearch();\r\n this.lmCurrent = \"\";\r\n }\r\n\r\n async refreshTrees(enforce: boolean | false) {\r\n await ListTreeModule.refreshOrganizationsTreeIfMissing(false);\r\n ListTreeModule.refreshListTreeIfMissing(enforce)\r\n .catch((e: RowShareException) => {\r\n if (e.httpResponse?.status == 404\r\n || e.httpResponse?.status == 401 \r\n || e.httpResponse?.status == 403) {\r\n if (!UserModule.CurrentUser.IsAnonymous)\r\n window.location.href = '/OrganizationAccessDenied';\r\n\r\n else\r\n window.location.href = '/login?ReturnUrl=MyTables';\r\n }}); \r\n }\r\n\r\n get showRecents(): boolean {\r\n if (this.lmCurrent === this.lmRecents)\r\n {\r\n EventBus.$emit(Models.Event.TOGGLE_RECENT);\r\n EventBus.$off(Models.Event.TOGGLE_RECENT)\r\n return true;\r\n }\r\n else\r\n {\r\n EventBus.$on(Models.Event.TOGGLE_RECENT, this.onToggleRecentOrFavorites);\r\n return false;\r\n }\r\n }\r\n\r\n get showFavorites(): boolean {\r\n if (this.lmCurrent === this.lmFavorites)\r\n {\r\n EventBus.$emit(Models.Event.TOGGLE_FAVOURITE);\r\n EventBus.$off(Models.Event.TOGGLE_FAVOURITE)\r\n return true;\r\n }\r\n else\r\n {\r\n EventBus.$on(Models.Event.TOGGLE_FAVOURITE, this.onToggleRecentOrFavorites);\r\n return false;\r\n }\r\n }\r\n\r\n get canAddNewList(): boolean {\r\n if (this.currentOrganization && this.currentOrganization.IsEnabled && this.currentFolder)\r\n return this.currentFolder.CanCurrentUserCreateList && this.currentFolder.HasRemainingListSlot;\r\n\r\n return false;\r\n }\r\n\r\n get orderedFolders(): Array {\r\n if (this.currentFolder) {\r\n let folders = this.currentFolder.Folders;\r\n return ArrayUtils.sort(\r\n folders,\r\n [(folder: { Name: string; }) => folder.Name.toLowerCase()],\r\n this.sortDirection);\r\n }\r\n return new Array();\r\n }\r\n\r\n get orderedLists(): Array {\r\n if (this.currentFolder) {\r\n let lists = this.currentFolder.Lists;\r\n return ArrayUtils.sort(\r\n lists,\r\n [(list: { Name: string; }) => list.Name.toLowerCase()],\r\n this.sortDirection);\r\n }\r\n return new Array();\r\n }\r\n\r\n get createTableLocation(): RouterLocation {\r\n return {\r\n name: \"CreateTable\",\r\n query: {\r\n organization: this.currentOrganization?.Id,\r\n folderId: this.currentFolder?.Id\r\n }\r\n };\r\n }\r\n\r\n get currentOrganization(): Models.ListTreeOrganization | null {\r\n return ListTreeModule.currentOrganization;\r\n }\r\n\r\n get currentFolder(): Models.ListTreeFolder | null {\r\n return ListTreeModule.currentFolder;\r\n }\r\n\r\n get otherOrganizations(): Array | null {\r\n if (!ListTreeModule.organizationsTree)\r\n return null;\r\n\r\n return ListTreeModule.organizationsTree.Organizations.filter(o => o.Id != this.currentOrganization?.Id).sort((o1, o2) => o1.Name.toLowerCase().localeCompare(o2.Name.toLowerCase()));\r\n }\r\n\r\n get orgIcon(): string | null {\r\n if (this.currentOrganization?.IconPath) {\r\n return (\r\n \"/\" + this.currentOrganization.IconPath + \"?_ssb_img=S;w:64;h:64\"\r\n );\r\n }\r\n else {\r\n return \"@/assets/static/images/org.svg\"\r\n }\r\n }\r\n\r\n get recentLinkUrl() {\r\n if (this.showRecents) {\r\n return { name: 'MyTables', params: { organizationId: this.currentOrganization?.Id } };\r\n }\r\n else {\r\n return { name: 'MyTables', params: { organizationId: this.currentOrganization?.Id, folderId: this.lmRecents } };\r\n }\r\n }\r\n\r\n get favLinkUrl() {\r\n if (this.showFavorites) {\r\n return { name: 'MyTables', params: { organizationId: this.currentOrganization?.Id } };\r\n }\r\n else {\r\n return { name: 'MyTables', params: { organizationId: this.currentOrganization?.Id, folderId: this.lmFavorites } };\r\n }\r\n }\r\n\r\n dragStart(list: Models.ListThumbnailInfo, folderId: string, ev: Event) {\r\n this.orderedFolders.forEach(fol => {\r\n let elem = document.getElementById(fol.Id);\r\n if (elem) {\r\n elem.classList.add('stop-pointer-events');\r\n }\r\n });\r\n this.listDragged = list;\r\n this.folderIdDragged = folderId;\r\n }\r\n\r\n clearDragInfo() {\r\n this.clearStyleClass();\r\n this.listDragged = new ListThumbnailInfo();\r\n this.folderIdDragged = '';\r\n }\r\n\r\n clearStyleClass() {\r\n this.orderedFolders.forEach(fol => {\r\n let elem = document.getElementById(fol.Id);\r\n if (elem) {\r\n elem.classList.remove('drop-allowed');\r\n elem.classList.remove('drop-not-allowed');\r\n elem.classList.remove('stop-pointer-events');\r\n }\r\n });\r\n }\r\n\r\n droppedItem(folder: ListTreeFolder) {\r\n if (!folder.IsRecycleBin && folder.CanCurrentUserCreateList) {\r\n if (this.listDragged.Id != null && this.listDragged.Id != undefined && this.listDragged.Owned) {\r\n let listToMoveData = new List();\r\n listToMoveData.Id = this.listDragged.Id;\r\n listToMoveData.FolderId = folder.Id;\r\n listToMoveData.OrganizationId = this.currentOrganization?.Id ?? '';\r\n\r\n let deleteInfo = {\r\n listId: this.listDragged.Id,\r\n folderId: this.folderIdDragged,\r\n organizationId: this.currentOrganization?.Id\r\n }\r\n\r\n let allInfoToMove = {\r\n listToMove: listToMoveData,\r\n moveFrom: deleteInfo,\r\n listThumbnail: this.listDragged\r\n }\r\n ListTreeModule.moveList(allInfoToMove);\r\n }\r\n }\r\n this.clearDragInfo();\r\n }\r\n\r\n toggleSortDirection() {\r\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\r\n }\r\n\r\n private timeout!: number;\r\n searchInsideCurrentFolder(): void {\r\n if (this.currentOrganization?.RootFolder && (this.searchText.length > 1 || this.searchText.length == 0)) {\r\n if (!this.timeout) {\r\n this.timeout = setTimeout(() => {\r\n this.timeout = 0;\r\n EventBus.$emit(Models.Event.SEARCH_TRIGGERED,\r\n this.searchText,\r\n this.currentOrganization?.RootFolder,\r\n this.currentOrganization?.Id);\r\n\r\n }, 500);\r\n }\r\n }\r\n }\r\n\r\n resetSearch() {\r\n EventBus.$emit(Models.Event.SEARCH_RESET);\r\n }\r\n\r\n onSearch(searchText: string, folder: Models.ListTreeFolder, orgId: string) {\r\n if (searchText) {\r\n this.displaySearchResult = searchText != '';\r\n }\r\n else {\r\n this.displaySearchResult = false;\r\n }\r\n }\r\n\r\n onSearchReset() {\r\n this.searchText = '';\r\n this.displaySearchResult = false;\r\n }\r\n\r\n onToggleRecentOrFavorites(){\r\n this.refreshTrees(true);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListBrowser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListBrowser.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListBrowser.vue?vue&type=template&id=fac4b1c2&scoped=true&\"\nimport script from \"./ListBrowser.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListBrowser.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListBrowser.vue?vue&type=style&index=0&id=fac4b1c2&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 \"fac4b1c2\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n import * as Router from \"vue-router\";\r\n import * as API from \"@/api/Api\";\r\n import * as RowShare from \"@/models/RowShare\";\r\n import PageTitle from \"@/views/layouts/LayoutParts/PageTitle.vue\";\r\n import ListBrowser from \"@/views/MyTables/ListBrowser.vue\";\r\n import { Utils } from \"@/utils/Utilities\";\r\n import { TrackingUtils } from \"@/utils/Tracking\";\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n\r\n @Component({\r\n name: \"MyTables\",\r\n components: { PageTitle, ListBrowser }\r\n })\r\n export default class MyTables extends Vue {\r\n @Prop() organizationId!: string | null;\r\n @Prop() folderId!: string | null;\r\n @Prop({default: null}) lmCurrent!: string | null;\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyTables.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyTables.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyTables.vue?vue&type=template&id=6f42a330&scoped=true&\"\nimport script from \"./MyTables.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyTables.vue?vue&type=script&lang=ts&\"\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 \"6f42a330\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"margin-container create-table business-page-new\"},[_c('page-title',{attrs:{\"title\":_vm.pageTitle}}),_vm._v(\" \"),_c('create-table-actions',{attrs:{\"headerHtml\":_vm.pageDescription}}),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-row',[_c('v-col',{staticClass:\"col-sm-12\"},[_c('div',{staticClass:\"search-wrapper rs-flex-list\"},[_c('h2',{staticClass:\"catalog-search-title\"},[_vm._v(_vm._s(_vm.$t('CreateTable_CatalogTitle')))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.filteredCatalog!==null)?_c('v-text-field',{attrs:{\"hide-details\":\"\",\"solo\":\"\",\"dense\":\"\",\"single-line\":\"\",\"clearable\":\"\",\"append-icon\":\"fa-search\",\"placeholder\":_vm.$t('CreateTable_SearchPlaceholder')},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}):_vm._e()],1),_vm._v(\" \"),(_vm.filteredCatalog===null)?_c('page-load-spinner'):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"category-wrapper\"},[_c('v-chip-group',{attrs:{\"mandatory\":\"\"},model:{value:(_vm.selectedCategory),callback:function ($$v) {_vm.selectedCategory=$$v},expression:\"selectedCategory\"}},_vm._l((_vm.categories),function(category){return _c('v-chip',{key:category.Id,attrs:{\"outlined\":\"\",\"filter\":\"\",\"color\":category.Color},on:{\"click\":function($event){return _vm.filterCategory(category)}}},[_vm._v(\"\\n \"+_vm._s(category.Name)+\"\\n \")])}),1)],1),_vm._v(\" \"),_c('transition-group',{staticClass:\"catalog-wrapper rs-flex-list\",attrs:{\"name\":\"catalog-wrapper\",\"tag\":\"div\"}},_vm._l((_vm.filteredCatalog),function(entry){return _c('div',{key:entry.ListId,staticClass:\"catalog-item rs-card\"},[_c('img',{staticClass:\"catalog-item-cover\",attrs:{\"src\":entry.CoverImageUrl}}),_vm._v(\" \"),_c('h3',{staticClass:\"catalog-item-title\"},[_vm._v(_vm._s(entry.DisplayName))]),_vm._v(\" \"),_c('p',{staticClass:\"catalog-item-description\"},[_vm._v(_vm._s(entry.ShortDescription))]),_vm._v(\" \"),_c('div',{staticClass:\"catalog-item-btn-wrapper\"},[_c('v-btn',{staticClass:\"catalog-item-btn\",attrs:{\"loading\":_vm.loadingEntry == entry.ListId,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.useTemplate(entry)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableCopy_UseThisTemplate'))+\"\\n \")])],1)])}),0)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.filteredCatalog && _vm.filteredCatalog.length > 0)?_c('create-table-actions',{attrs:{\"headerTitle\":_vm.$t('CreateTable_StillLookingTitle'),\"headerHtml\":_vm.stillLookingSubtitle}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Module, VuexModule, Mutation, Action, MutationAction, getModule } from 'vuex-module-decorators'\r\nimport * as API from '@/api/Api';\r\nimport * as Models from \"@/models/RowShare\";\r\nimport store from '@/modules/Store';\r\nimport { Catalog } from '@/api/Api';\r\n\r\n@Module({ dynamic: true, store: store, name: 'CatalogStore' })\r\nexport class CatalogStore extends VuexModule {\r\n catalog = new Array();\r\n categories = new Array();\r\n\r\n get isCatalogEmpty(): boolean {\r\n return this.catalog == null || this.catalog.length == 0;\r\n }\r\n\r\n get isCategoryListEmpty(): boolean {\r\n return this.categories == null || this.categories.length == 0;\r\n }\r\n\r\n @MutationAction({ mutate: ['catalog', 'categories'] })\r\n async fetchCatalogData(): Promise {\r\n var catalogItemList = await API.Catalog.load({ clearCache: true });\r\n\r\n const categoryList: Array = [];\r\n if (catalogItemList != null) {\r\n for (var i = 0; i < catalogItemList.length; ++i) {\r\n const list = catalogItemList[i];\r\n let itemIsNotInTheListYet: boolean =\r\n categoryList.find(i => i.Id == list.Category.Id) === undefined;\r\n if (itemIsNotInTheListYet) {\r\n categoryList.push(list.Category);\r\n }\r\n }\r\n }\r\n\r\n return {catalog: catalogItemList, categories: categoryList};\r\n }\r\n \r\n @Action\r\n async getTableTemplateInfoByListId(listId: string): Promise {\r\n \r\n let inCatalog = this.isListInCatalog(listId);\r\n \r\n if (inCatalog[0]) {\r\n // retrieve the list from local store\r\n let storeCatalogTemplate = inCatalog[1];\r\n\r\n //// This situation should never happen\r\n if (storeCatalogTemplate == null || storeCatalogTemplate === undefined) {\r\n throw new Error('Could not retrieve list from local Vuex store');\r\n }\r\n\r\n let result = new Models.TableTemplate();\r\n result.ListId = listId;\r\n result.Title = storeCatalogTemplate.DisplayName;\r\n result.Description = storeCatalogTemplate.LongDescription;\r\n result.InCatalog = true;\r\n\r\n return result;\r\n }\r\n else {\r\n // Query list from API if is not in the store\r\n let result = new Models.TableTemplate();\r\n await API.Catalog\r\n .getTableTemplateInfoById(listId, { clearCache: true })\r\n .then(data => {\r\n const tableTemplateInfo: Models.TableTemplate | null = data;\r\n result = tableTemplateInfo;\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n // Check if list is in Catalog and return it if it is\r\n @Action\r\n isListInCatalog(listId : string) : [boolean, Models.CatalogItem | null | undefined] {\r\n let findStatus = this.catalog.find(l => l.ListId == listId);\r\n let inCatalogStatus = !this.isCatalogEmpty && findStatus !== undefined;\r\n let currentItem = inCatalogStatus ? findStatus : null;\r\n\r\n return [inCatalogStatus, currentItem];\r\n }\r\n}\r\n\r\nexport const CatalogModule = getModule(CatalogStore)\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{staticClass:\"mb-5\"},[(_vm.headerTitle)?_c('h2',{staticClass:\"catalog-search-title\"},[_vm._v(_vm._s(_vm.headerTitle))]):_vm._e(),_vm._v(\" \"),(_vm.headerHtml)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.headerHtml)}})]):_vm._e(),_vm._v(\" \"),(_vm.userNotConnected)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[(_vm.isNotOnPrem)?_c('v-col',{attrs:{\"cols\":\"10\",\"md\":\"4\"}},[_c('div',{staticClass:\"rs-card rs-card-clickable create-table-action create-table-help ma-auto\",on:{\"click\":function($event){return _vm.gotToDemo()}}},[_c('img',{attrs:{\"src\":require(\"@/assets/static/images/create_table_help.svg\")}}),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.$t('Header_Signup'))),_c('v-icon',{staticClass:\"ml-2\",attrs:{\"color\":\"darkest\",\"small\":\"\"}},[_vm._v(\"far fa-arrow-alt-circle-right\")])],1)])]):_vm._e()],1)],1):_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"10\",\"md\":\"4\"}},[_c('div',{staticClass:\"rs-card create-table-action ma-auto\"},[_c('div',{staticClass:\"pa-1 user-connected rs-card-clickable\",on:{\"click\":_vm.openFile}},[(!_vm.isFileLoading)?_c('v-icon',{staticClass:\"mb-2\",attrs:{\"x-large\":\"\",\"color\":\"excel\"}},[_vm._v(\"fas fa-file-excel \")]):_vm._e(),_vm._v(\" \"),(_vm.isFileLoading)?_c('v-icon',{staticClass:\"fa-spin import-xslx-icon\",attrs:{\"color\":\"excel\",\"spin\":\"\"}},[_vm._v(\"fas fa-spinner-third\")]):_vm._e(),_vm._v(\" \"),_c('div',{on:{\"click\":function($event){$event.stopPropagation();}}},[(!_vm.isFileLoading)?_c('v-file-input',{staticClass:\"import-file-input\",attrs:{\"clearable\":false,\"hide-details\":\"\",\"single-line\":\"\",\"solo\":\"\",\"id\":\"xlsx-import\",\"placeholder\":_vm.$t('CreateTable_DropOrPickAFile'),\"accept\":\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"},on:{\"change\":_vm.onFileChanged},model:{value:(_vm.excelFile),callback:function ($$v) {_vm.excelFile=$$v},expression:\"excelFile\"}}):_vm._e()],1),_vm._v(\" \"),_c('h3',{staticClass:\"mt-6\"},[_vm._v(_vm._s(_vm.$t('CreateTable_ImportAFile'))+\" \"),_c('v-icon',{attrs:{\"color\":\"darkest\",\"small\":\"\"}},[_vm._v(\"far fa-arrow-alt-circle-right\")])],1)],1),_vm._v(\" \"),(_vm.userNotConnected)?_c('div',{staticClass:\"user-not-connected\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('CreateTable_UserMustBeConnected')))]),_vm._v(\" \"),_c('div',{staticClass:\"my-3\"},[_c('v-btn',{staticClass:\"text-none flex-justify mx-1 mb-1\",attrs:{\"color\":\"primary\",\"to\":_vm.signInLink}},[_vm._v(_vm._s(_vm.$t('Header_Login')))]),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-btn',{staticClass:\"text-none flex-justify mb-1\",attrs:{\"color\":\"primary\",\"to\":_vm.signUpLink}},[_vm._v(_vm._s(_vm.$t('Header_Signup')))]):_vm._e()],1)]):_vm._e()])]),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"10\",\"md\":\"4\"}},[(!_vm.hasClickedCreateBlankTable)?_c('a',{staticClass:\"rs-card create-table-action rs-card-clickable create-table-from-scratch ma-auto\",attrs:{\"href\":_vm.getCreateBlankTableUrl()},on:{\"click\":function($event){_vm.hasClickedCreateBlankTable=true}}},[_c('img',{attrs:{\"src\":require(\"@/assets/static/images/create_custom_table.svg\")}}),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.$t('CreateTable_StartFromScratch'))+\" \"),_c('v-icon',{attrs:{\"color\":\"darkest\",\"small\":\"\"}},[_vm._v(\"far fa-arrow-alt-circle-right\")])],1)]):_c('div',{staticClass:\"rs-card create-table-action rs-card-loading create-table-from-scratch ma-auto\"},[_c('img',{attrs:{\"src\":require(\"@/assets/static/images/create_custom_table.svg\")}}),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.$t('CreateTable_StartFromScratch'))+\" \"),_c('v-icon',{attrs:{\"color\":\"darkest\",\"small\":\"\"}},[_vm._v(\"far fa-arrow-alt-circle-right\")])],1)])]),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-col',{attrs:{\"cols\":\"10\",\"md\":\"4\"}},[_c('div',{staticClass:\"rs-card rs-card-clickable create-table-action create-table-help ma-auto\",on:{\"click\":function($event){return _vm.openCalendly()}}},[_c('img',{attrs:{\"src\":require(\"@/assets/static/images/create_table_help.svg\")}}),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.$t('CreateTable_TeamHelp'))+\" \"),_c('v-icon',{attrs:{\"color\":\"darkest\",\"small\":\"\"}},[_vm._v(\"far fa-arrow-alt-circle-right\")])],1)])]):_vm._e()],1)],1),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"12\",\"justify-content\":\"center\"}},[(_vm.importError)?_c('h4',{staticClass:\"error--text\"},[_vm._v(_vm._s(_vm.importErrorMessage))]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import { UserModule } from '@/store/UserStore'\r\n import { Getter, namespace } from \"vuex-class\";\r\n import * as API from '@/api/Api';\r\n import * as RowShare from '@/models/RowShare';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import { Utils } from \"@/utils/Utilities\";\r\n import { ApiUtils } from '@/api/ApiUtils';\r\n import { ResLoader } from '@/utils/ResLoader';\r\n import { Location as RouterLocation } from \"vue-router\";\r\n\r\n declare var Calendly: any;\r\n\r\n @Component({\r\n name: \"CreateTableActions\"\r\n })\r\n export default class CreateTableActions extends Vue {\r\n\r\n // Fields\r\n isFileLoading: boolean = false;\r\n excelFile: File | null = null;\r\n importError:boolean = false;\r\n importErrorMessage=\"\";\r\n userNotConnected=false;\r\n hasClickedCreateBlankTable = false;\r\n\r\n // Properties\r\n @Prop() private headerHtml!: string;\r\n @Prop() private headerTitle!: string;\r\n\r\n async created(){\r\n let scriptPromise = this.$loadScript('https://assets.calendly.com/assets/external/widget.js');\r\n let user = UserModule.CurrentUser;\r\n ResLoader.loadCss('https://assets.calendly.com/assets/external/widget.css');\r\n\r\n let res = await Promise.all([scriptPromise]);\r\n\r\n if(!user || user.IsAnonymous){\r\n this.userNotConnected = true;\r\n }\r\n }\r\n\r\n // Methods\r\n onFileChanged(e: Event) {\r\n this.importError = false;\r\n this.importErrorMessage = \"\";\r\n if(this.excelFile && this.excelFile.size > 0){\r\n let folderId = this.$route.query.folderId ? this.$route.query.folderId.toString() : \"\";\r\n this.isFileLoading = true;\r\n API.Folder.import(folderId, this.excelFile)\r\n .then(res => {\r\n if (res === null) {\r\n this.isFileLoading = false;\r\n this.importErrorMessage=this.$i18n.t('CreateTable_ErrorMessage').toString();\r\n this.importError = true;\r\n return;\r\n } else if (res instanceof RowShare.Folder) {\r\n window.location.href = \"/MyTables?key=&organizationParentFolderId=\" + res.Id;\r\n } else if (res.length > 1) {\r\n window.location.href = \"/MyTables/\" + res[0].OrganizationId+\"/\"+res[0].FolderId;\r\n } else if (res.length == 1) {\r\n window.location.href = \"/t/\" + res[0].Id;\r\n }\r\n })\r\n .catch(err => {\r\n this.importErrorMessage = err._message;\r\n this.importError = true;\r\n this.isFileLoading = false});\r\n }\r\n }\r\n\r\n getCreateBlankTableUrl() {\r\n let folderIdStr = this.$route.query.folderId ? \"&folderId=\" + this.$route.query.folderId : \"\";\r\n return this.$i18n.t('BlankTableUrlPattern', { folderId: folderIdStr }).toString();\r\n }\r\n\r\n openCalendly() {\r\n Calendly.initPopupWidget({ url: this.$i18n.t('CreateTable_CalendlyUrl').toString() });\r\n }\r\n\r\n openFile() { \r\n var elem = document.getElementById('xlsx-import');\r\n if (elem != null) {\r\n elem.click();\r\n }\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get signUpLink(){\r\n return {\r\n name: \"SignUp\",\r\n query: {\r\n ReturnUrl: this.$route.fullPath,\r\n }\r\n };\r\n }\r\n\r\n get signInLink(){\r\n return {\r\n name: \"Login\",\r\n query: {\r\n ReturnUrl: this.$route.fullPath,\r\n }\r\n };\r\n }\r\n\r\n gotToDemo() {\r\n window.location.href = this.$i18n.t(\"Header_SignupUrl\").toString();\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreateTableActions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreateTableActions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateTableActions.vue?vue&type=template&id=4d381215&scoped=true&\"\nimport script from \"./CreateTableActions.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateTableActions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateTableActions.vue?vue&type=style&index=0&id=4d381215&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 \"4d381215\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import { CatalogModule } from '@/store/CatalogStore'\r\n import PageTitle from '@/views/layouts/LayoutParts/PageTitle.vue';\r\n import PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n import Fuse, { IFuseOptions } from 'fuse.js';\r\n import * as RowShare from '@/models/RowShare';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import { Utils } from \"@/utils/Utilities\";\r\n import { Location as RouterLocation } from 'vue-router';\r\n import CreateTableActions from '@/views/CreateTable/CreateTableActions.vue';\r\n import { EventBus } from '@/modules/EventBus';\r\n import { UserModule } from '@/store/UserStore';\r\n\r\n @Component({\r\n name: \"CreateTable\",\r\n components: { PageTitle, CreateTableActions, PageLoadSpinner }\r\n })\r\n export default class CreateTable extends Vue {\r\n \r\n // Properties\r\n @Prop() folderId!: string;\r\n @Prop() organizationId!: string;\r\n @Prop() category!: string;\r\n\r\n // Fields\r\n private embedRoot: string = process.env.VUE_APP_EMBED_ROOT;\r\n\r\n private categories: RowShare.CatalogCategory[] = [];\r\n\r\n private activeCategory: RowShare.CatalogCategory | null = null;\r\n\r\n private indexedCatalog: RowShare.CatalogItem[] | null = null;\r\n\r\n private search: string = \"\";\r\n\r\n private searchEngine: Fuse | null = null;\r\n\r\n private filePath: string | null = null;\r\n\r\n private hasChangedLanguage: boolean = false;\r\n\r\n private selectedCategory: number = 0;\r\n \r\n private loadingEntry: string | null = null;\r\n\r\n // Computed Properties\r\n get filteredCatalog() {\r\n if (this.searchEngine === null || Utils.isNullOrWhiteSpace(this.search))\r\n return this.indexedCatalog;\r\n\r\n return this.searchEngine.search(this.search).map(result => result.item);\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n\r\n // Lifecycle Hooks\r\n async created(){\r\n EventBus.$on(RowShare.Event.LOCALE_CHANGED, async() => {\r\n await this.onLocaleChanged();\r\n });\r\n }\r\n\r\n async mounted() : Promise {\r\n if (this.isNotOnPrem){\r\n await this.initCatalog();\r\n }\r\n }\r\n\r\n // Methods\r\n async initCatalog() : Promise {\r\n\r\n if (!this.isNotOnPrem)\r\n return;\r\n\r\n // Fetch into store\r\n if(CatalogModule.isCatalogEmpty || this.hasChangedLanguage){\r\n await CatalogModule.fetchCatalogData();\r\n this.hasChangedLanguage = false;\r\n }\r\n\r\n // Retrieve data from store\r\n this.indexedCatalog = CatalogModule.catalog;\r\n\r\n // Add all categories filter\r\n let allCategory = {\r\n Id: \"all\",\r\n Name: this.$i18n.tc('CreateTable_AllCategory'),\r\n DisplayName: this.$i18n.tc('CreateTable_AllCategory'),\r\n Color: \"primary\",\r\n Description: \"\",\r\n IsDefault: true\r\n };\r\n this.activeCategory = allCategory;\r\n this.categories = [];\r\n this.categories.push(allCategory, ...CatalogModule.categories);\r\n if(this.category && this.category!=''){\r\n let cat = this.categories.find(c => c.Id == this.category);\r\n if(cat){\r\n this.filterCategory(cat);\r\n this.selectedCategory = this.categories.indexOf(cat);\r\n }\r\n }\r\n\r\n this.initSearch();\r\n }\r\n\r\n async onLocaleChanged() :Promise {\r\n this.hasChangedLanguage = true;\r\n if (this.isNotOnPrem){\r\n await this.initCatalog();\r\n }\r\n }\r\n\r\n initSearch() : void {\r\n if (!this.isNotOnPrem)\r\n return;\r\n\r\n if (this.indexedCatalog == null)\r\n return;\r\n\r\n const options: IFuseOptions = {\r\n shouldSort: true,\r\n threshold: 0.1,\r\n minMatchCharLength: 2,\r\n distance: 5000,\r\n keys: ['DisplayName', 'ShortDescription']\r\n };\r\n this.searchEngine = new Fuse(this.indexedCatalog, options);\r\n this.search = \"\";\r\n }\r\n\r\n getCreateTableUrl(entry: RowShare.CatalogItem) : string {\r\n let folderIdStr = this.folderId ? `&folderId=${this.folderId}` : '';\r\n let listIdStr = \"key=\" + entry.ListId;\r\n return `/action/clonelist?${listIdStr}`+\r\n folderIdStr+\r\n '©options=CopyRows:true;'+\r\n 'CopyReports:true;'+\r\n 'ForceUseUserFolder:true;'+\r\n 'CreateNotifications:true;'+\r\n 'AutoRowsHeight:true;';\r\n }\r\n \r\n useTemplate(entry: RowShare.CatalogItem) {\r\n this.loadingEntry = entry.ListId;\r\n window.location.href = this.getCreateTableUrl(entry);\r\n }\r\n\r\n filterCategory(category: RowShare.CatalogCategory) : void {\r\n this.activeCategory = category;\r\n if (category.Id == \"all\") {\r\n this.indexedCatalog = CatalogModule.catalog;\r\n } else if (CatalogModule.catalog) {\r\n let catContent = CatalogModule.catalog\r\n .filter(i => i.Category.Id == category.Id);\r\n this.indexedCatalog = catContent ? catContent : null;\r\n }\r\n\r\n this.initSearch();\r\n }\r\n\r\n get pageTitle(){\r\n return this.$route.query.fromSignup\r\n ? this.$i18n.t('CreateTable_PageTitle_FromSignup', [this.$route.query.fromSignup]).toString() \r\n : this.$i18n.t('CreateTable_PageTitle').toString();\r\n }\r\n\r\n get pageDescription(){\r\n\r\n let user = UserModule.CurrentUser;\r\n if(user === null || user.IsAnonymous) {\r\n return this.$i18n.t('CreateTable_PageDescriptionAnonymous').toString();\r\n }\r\n\r\n return this.$route.query.fromSignup\r\n ? this.$i18n.t('CreateTable_PageDescription_FromSignup', [this.$route.query.fromSignup]).toString() \r\n : this.$i18n.t('CreateTable_PageDescription').toString();\r\n }\r\n\r\n get stillLookingSubtitle(){\r\n let user = UserModule.CurrentUser;\r\n if(user === null || user.IsAnonymous) {\r\n return this.$i18n.t('CreateTable_StillLookingSubtitleAnonymous').toString();\r\n }\r\n\r\n return this.$i18n.t('CreateTable_StillLookingSubtitle').toString();\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreateTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CreateTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateTable.vue?vue&type=template&id=8e0786ac&scoped=true&\"\nimport script from \"./CreateTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateTable.vue?vue&type=style&index=0&id=8e0786ac&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 \"8e0786ac\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.$vuetify.breakpoint.mobile)?_c('list-form-view',{attrs:{\"listVM\":_vm.listVM,\"currentRowId\":_vm.currentRowId}}):_c('rs-table',{ref:\"grid\",attrs:{\"listVM\":_vm.listVM,\"highlightRows\":_vm.highlightRows}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"fill-height table-page-container\"},[(this.currentList && _vm.listVM.list)?_c('list-toolbar',{class:_vm.canShowSharingBar ? 'mb-1' : '',attrs:{\"listVM\":_vm.listVM,\"hideMenu\":_vm.hasSelectedRows,\"gridViewVM\":_vm.gridViewVM}}):_vm._e(),_vm._v(\" \"),(_vm.canShowSharingBar)?_c('sharing-bar',{staticClass:\"flex-grow-0\",attrs:{\"displayModeVM\":_vm.gridViewVM,\"listVM\":_vm.listVM}}):_vm._e(),_vm._v(\" \"),(_vm.hasSelectedRows)?_c('selected-rows-bar',{staticClass:\"flex-grow-0\",attrs:{\"selectedRows\":_vm.selectedRows,\"displayModeVM\":_vm.gridViewVM}}):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"flex-grow-1 backgrounds ma-0 pa-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"grid-container\"},[_c('RowshareGrid',{attrs:{\"list\":_vm.currentList,\"gridViewVM\":_vm.gridViewVM,\"highlightRows\":_vm.highlightRows}})],1),_vm._v(\" \"),_c('v-col',{staticClass:\"add-column ma-0 pa-0\",attrs:{\"cols\":\"1\"}},[(_vm.gridViewVM.canAddColumn)?_c('v-btn',{staticClass:\"ml-n7 mt-1\",attrs:{\"small\":\"\",\"fab\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.addColumn()}}},[_c('div',{staticClass:\"add-column-header\"},[_c('div',{staticClass:\"left-rectangle\"}),_vm._v(\" \"),_c('div',{staticClass:\"right-rectangle\"}),_vm._v(\" \"),_c('div',[_c('v-icon',{staticClass:\"plus-icon\",attrs:{\"x-small\":\"\",\"color\":\"white\"}},[_vm._v(\"fal fa-plus\")])],1)])]):_vm._e()],1)],1),_vm._v(\" \"),(_vm.gridViewVM && _vm.gridViewVM.listVM.canAddNewRow && !_vm.gridViewVM.listVM.specialRowsDisplayed)?_c('v-btn',{staticClass:\"add-row-fab\",attrs:{\"fixed\":\"\",\"small\":\"\",\"fab\":\"\",\"bottom\":\"\",\"left\":\"\",\"color\":\"primary\",\"loading\":_vm.gridViewVM.preparingAdd},on:{\"click\":function($event){return _vm.gridViewVM.addRow()}}},[_c('div',{staticClass:\"add-row-header\"},[_c('div',{staticClass:\"top-rectangle\"}),_vm._v(\" \"),_c('div',{staticClass:\"bottom-rectangle\"}),_vm._v(\" \"),_c('div',[_c('v-icon',{staticClass:\"plus-icon\",attrs:{\"x-small\":\"\",\"color\":\"white\"}},[_vm._v(\"fal fa-plus\")])],1)])]):_vm._e(),_vm._v(\" \"),(_vm.hasRtcViewers)?_c('div',{staticClass:\"rtcViewers\"},[_c('span',{staticClass:\"rtcViewers--label mr-2\"},[_vm._v(_vm._s(_vm.$t('Rtc_ViewersLabel')))]),_vm._v(\" \"),_vm._l((_vm.rtcUsers),function(ui){return _c('bigram',{staticClass:\"bigram ma-1\",attrs:{\"rtc-user\":ui,\"xsmall\":\"\"}})})],2):_vm._e(),_vm._v(\" \"),_c('comment-editor-dialog'),_vm._v(\" \"),_c('row-merge-dialog',{attrs:{\"currentList\":_vm.currentList,\"displayModeVM\":_vm.gridViewVM}}),_vm._v(\" \"),_c('chart-configuration-dialog',{attrs:{\"listVM\":_vm.gridViewVM.listVM,\"gridViewVM\":_vm.gridViewVM}}),_vm._v(\" \"),_c('chart-dialog'),_vm._v(\" \"),_c('relation-editor-dialog'),_vm._v(\" \"),_c('add-column-dialog',{attrs:{\"list\":_vm.currentList,\"gridViewVM\":_vm.gridViewVM}}),_vm._v(\" \"),_c('assignation-dialog',{attrs:{\"currentOrganization\":_vm.currentOrganization},on:{\"close\":_vm.onAssignRowsDialogClosed}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-toolbar',{staticClass:\"list-toolbar\",attrs:{\"height\":\"70\"}},[_c('v-toolbar-items',[(_vm.showReturnToTable || _vm.specialRowsDisplayed)?_c('v-btn',{attrs:{\"depressed\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.returnToTable()}}},[_c('v-icon',{attrs:{\"dense\":\"\"}},[_vm._v(\"fa-arrow-left\")])],1):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"mx-4\",attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"px-0\"},[(_vm.currentList && _vm.currentList.IconPath)?_c('v-img',{staticClass:\"list-icon ma-0 pa-0\",attrs:{\"src\":_vm.listIconUrl,\"validate-on-blur\":\"\"}}):_c('p',{staticClass:\"list-default-icon ma-0 pa-0\"})],1)],1)],1),_vm._v(\" \"),(_vm.isEditing)?_c('v-text-field',{staticClass:\"list-name-edit\",attrs:{\"loading\":_vm.updatingName,\"error-messages\":_vm.nameUpdateErrors,\"autofocus\":\"\"},on:{\"blur\":_vm.saveListName,\"keydown\":_vm.onListNameKeyDown},model:{value:(_vm.currentList.DisplayName),callback:function ($$v) {_vm.$set(_vm.currentList, \"DisplayName\", $$v)},expression:\"currentList.DisplayName\"}}):_c('v-toolbar-title',[_c('p',{staticClass:\"list-title\",class:{locked: !_vm.currentList.Owned || _vm.currentList.LoadedByReadOnlyMember || _vm.specialRowsDisplayed},attrs:{\"title\":_vm.currentList.DisplayName},on:{\"dblclick\":_vm.editListName}},[_vm._v(\"\\n \"+_vm._s(_vm.currentList.DisplayName)+\"\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"list-owners\",class:{locked: !_vm.currentList.Owned || _vm.currentList.LoadedByReadOnlyMember || _vm.specialRowsDisplayed},on:{\"click\":_vm.manageOwners}},[_vm._v(_vm._s(_vm.ownersNicknames))]),_vm._v(\" \"),(_vm.currentList.Owned && !_vm.ownersNicknames)?_c('p',{staticClass:\"list-owners\",on:{\"click\":_vm.manageOwners}},[_vm._v(_vm._s(_vm.$t('ListToolBar_NoOwner')))]):_vm._e()]),_vm._v(\" \"),(!_vm.hideMenu && !_vm.specialRowsDisplayed)?_c('v-toolbar-items',{staticClass:\"btn-icon-navbar\"},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},on:{\"input\":_vm.onMenuToggle},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"fal fa-ellipsis-v\")])],1)]}}],null,false,1169433541)},[_vm._v(\" \"),_c('v-list',[(_vm.currentList.Owned && !_vm.currentList.LoadedByReadOnlyMember)?_c('v-list-item',{on:{\"click\":_vm.openTableSettings}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-cog\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_Settings'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.printTable}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-print\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_PrintTable'))+\"\\n \")])],1)],1),_vm._v(\" \"),_c('v-list-group',{on:{\"click\":function($event){$event.stopPropagation();{}}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-file-excel\")])],1),_vm._v(\" \"),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('ListToolBar_Excel')))])]},proxy:true},{key:\"appendIcon\",fn:function(){return [_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-chevron-down\")])]},proxy:true}],null,false,4080855018),model:{value:(_vm.excelMenuOpened),callback:function ($$v) {_vm.excelMenuOpened=$$v},expression:\"excelMenuOpened\"}},[_vm._v(\" \"),_vm._v(\" \"),_c('v-list-group',{attrs:{\"sub-group\":\"\",\"prepend-icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();{}}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-cloud-download\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('ListToolBar_Export')))])],1)]},proxy:true},{key:\"appendIcon\",fn:function(){return [_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-chevron-down\")])]},proxy:true}],null,false,2155307330),model:{value:(_vm.exportMenuOpened),callback:function ($$v) {_vm.exportMenuOpened=$$v},expression:\"exportMenuOpened\"}},[_vm._v(\" \"),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.downloadExcel}},[_c('v-list-item-icon'),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('ListToolBar_ExportExcel')))])],1)],1),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.downloadCsv}},[_c('v-list-item-icon'),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('ListToolBar_ExportCSV')))])],1)],1)],1),_vm._v(\" \"),(_vm.currentList.CanUpdate)?_c('import-dialog',{attrs:{\"listVM\":_vm.listVM,\"gridViewVM\":_vm.gridViewVM}},[_c('v-list-item',{staticClass:\"pl-8\",on:{\"click\":function($event){{}}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-cloud-upload\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_Import'))+\"\\n \")])],1)],1)],1):_vm._e()],1),_vm._v(\" \"),(_vm.canRunRowMerge)?_c('v-list-item',{class:{'premiumfunction-menu': !_vm.hasRowMerge},on:{\"click\":_vm.onRowMergeClicked}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-file-alt\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_RowMerge'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentList.Owned)?_c('survey-mode-dialog',{attrs:{\"listId\":_vm.currentList.Id}},[_c('v-list-item',{on:{\"click\":function($event){{}}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-user\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_SurveyMode'))+\"\\n \")])],1)],1)],1):_vm._e(),_vm._v(\" \"),(!_vm.isMsTeamsApp)?_c('copy-list-dialog',{attrs:{\"listId\":_vm.currentList.Id,\"folder\":_vm.folder,\"organizationId\":_vm.organizationId}},[_c('v-list-item',{on:{\"click\":function($event){{}}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-copy\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s((_vm.currentList.Owned)? _vm.$t('CopyListDialog_Title') : _vm.$t('MyTables_Actions_DuplicateTable'))+\"\\n \")])],1)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.canShowArchivedRows)?_c('v-list-item',{class:{'premiumfunction-menu': !_vm.hasArchiveRows},on:{\"click\":_vm.onArchivedRowsClicked}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-archive\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_ArchivedRows'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentList.CanUpdate)?_c('v-list-item',{on:{\"click\":_vm.onDeletedRowsClicked}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash-alt\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_DeletedRows'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentList.CanCurrentUserExportAudit)?_c('v-divider'):_vm._e(),_vm._v(\" \"),(_vm.currentList.CanCurrentUserExportAudit)?_c('v-list-item',{attrs:{\"title\":_vm.$t('ListToolBar_ExportAudit_Tooltip')},on:{\"click\":_vm.onExportAuditClicked}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"secondary\"}},[_vm._v(\"fal fa-history\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"secondary--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_ExportAudit'))+\"\\n \")])],1)],1):_vm._e()],1)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentList.hasDescription && !_vm.specialRowsDisplayed)?_c('v-toolbar-items',{staticClass:\"btn-icon-navbar\"},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-info-circle\")])],1)]}}],null,false,2492000873),model:{value:(_vm.displayDescription),callback:function ($$v) {_vm.displayDescription=$$v},expression:\"displayDescription\"}},[_vm._v(\" \"),_c('v-card',[_c('v-card-title',{staticClass:\"list-descrtiption-title\",attrs:{\"title\":_vm.currentList.DisplayName}},[_vm._v(\"\\n \"+_vm._s(_vm.currentList.DisplayName)+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{on:{\"click\":_vm.hideDescription}},[_vm._v(\"fal fa-times\")])],1),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-card-text',{staticClass:\"list-description\",domProps:{\"innerHTML\":_vm._s(_vm.getDescriptionContent(_vm.currentList.Description))}}),_vm._v(\" \"),_c('v-card-text',[_c('v-switch',{attrs:{\"color\":\"primary\",\"label\":_vm.showDescriptionNextTimeLabel},model:{value:(_vm.showDescription),callback:function ($$v) {_vm.showDescription=$$v},expression:\"showDescription\"}})],1)],1)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isLoggedIn && !_vm.specialRowsDisplayed)?_c('v-toolbar-items',{staticClass:\"btn-icon-navbar\"},[(_vm.userListLinks.isFavorite)?_c('v-btn',{attrs:{\"color\":\"primary\",\"icon\":\"\",\"title\":_vm.$t('ListToolBar_RemoveFromFavoritesTitle')},on:{\"click\":_vm.removeFromFavorites}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-star\")])],1):_c('v-btn',{attrs:{\"icon\":\"\",\"title\":_vm.$t('ListToolBar_AddToFavoritesTitle')},on:{\"click\":_vm.addToFavorites}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-star\")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isLoggedIn && !_vm.specialRowsDisplayed)?_c('v-toolbar-items',{staticClass:\"btn-icon-navbar\"},[_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":true},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\",\"color\":_vm.notificationsIconColor}},on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.notificationsIcon))])],1)]}}],null,false,3584081570)},[_vm._v(\" \"),_c('v-list',[_c('v-list-item-group',{attrs:{\"color\":\"primary\"},model:{value:(_vm.selectedEmailNotifications),callback:function ($$v) {_vm.selectedEmailNotifications=$$v},expression:\"selectedEmailNotifications\"}},[_c('v-list-item',{attrs:{\"value\":_vm.noNotifications},on:{\"click\":_vm.unsubscribeFromEmailNotifications}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-bell-slash\")])],1),_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_UnsubscribeFromEmailNotifications'))+\"\\n \")],1),_vm._v(\" \"),_c('v-list-item',{attrs:{\"value\":_vm.ownedNotifications},on:{\"click\":_vm.subscribeToOwnedRowsEmailNotifications}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-bell\")])],1),_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_SubscribeToOwnedRowsEmailNotifications'))+\"\\n \")],1),_vm._v(\" \"),_c('v-list-item',{attrs:{\"value\":_vm.allNotifications},on:{\"click\":_vm.subscribeToAllEmailNotifications}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-bell\")])],1),_vm._v(\"\\n \"+_vm._s(_vm.$t('ListToolBar_SubscribeToAllEmailNotifications'))+\"\\n \")],1)],1)],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.specialRowsDisplayed)?_c('v-chip',{staticClass:\"special-rows\",attrs:{\"color\":_vm.specialRowsChipColor,\"large\":\"\"}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.specialRowsName)}})]):_vm._e(),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.gridViewVM)?_c('v-text-field',{staticClass:\"search-field\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\",\"hide-details\":\"\",\"placeholder\":_vm.$t('GlobalSearch_Placeholder')},on:{\"input\":_vm.onGridSearchChanged},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('div',{staticClass:\"search-icon-wrapper\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-search\")])],1)]},proxy:true}],null,false,2098491212),model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}}):_vm._e(),_vm._v(\" \"),(_vm.gridViewVM && !_vm.specialRowsDisplayed)?_c('view-selector',{attrs:{\"displayModeVM\":_vm.gridViewVM}}):_vm._e(),_vm._v(\" \"),_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"600\"},on:{\"click:outside\":_vm.onCancelManageOwners,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancelManageOwners.apply(null, arguments)}},model:{value:(_vm.showManageTableOwners),callback:function ($$v) {_vm.showManageTableOwners=$$v},expression:\"showManageTableOwners\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListOwnerModal_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancelManageOwners}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1 pb-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ListOwnerModal_Subtitle'))+\"\\n \")]),_vm._v(\" \"),_c('table-owner-selector',{attrs:{\"listId\":_vm.listVM.list.Id,\"organizationId\":_vm.currentList.OrganizationId}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('v-row',[_c('v-col',[_c('v-card',{staticClass:\"pb-4\"},[_c('v-list',{staticClass:\"mx-2 my-2\"},[_c('v-list-item-group',_vm._l((_vm.listOwners),function(owner){return _c('v-list-item',{key:owner.OwnerEmail,attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(owner.OwnerName + \" (\" + owner.OwnerEmail + \")\"))])],1),_vm._v(\" \"),(_vm.listOwners.length>1)?_c('v-list-item-icon',[_c('v-icon',{on:{\"click\":function($event){return _vm.removeOwner(owner)}}},[_vm._v(\"fa-times-circle\")])],1):_vm._e()],1)}),1)],1),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-autocomplete',{ref:\"field\",staticClass:\"mx-2 mt-2\",attrs:{\"id\":\"autocompleteInput\",\"append-outer-icon\":\"$vuetify.icon.plus\",\"item-text\":_vm.textOption,\"item-value\":\"Email\",\"items\":_vm.organizationMembers,\"standard\":\"\",\"item-disabled\":_vm.isUserOwner,\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"true\",\"menu-props\":_vm.defaultProps},on:{\"change\":_vm.handleAddTableOwner,\"blur\":_vm.closeInput},model:{value:(_vm.selectedUserEmail),callback:function ($$v) {_vm.selectedUserEmail=$$v},expression:\"selectedUserEmail\"}})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport * as API from \"@/api/Api\";\r\nimport * as Models from \"@/models/RowShare\";\r\nimport _ from 'lodash';\r\nimport { EventBus } from \"@/modules/EventBus\";\r\n\r\n@Component({\r\n name:'TableOwnerSelector'\r\n})\r\nexport default class TableOwnerSelector extends Vue{\r\n \r\n @Prop() organizationId!:string\r\n @Prop() listId!:string;\r\n\r\n private displayAddForm: boolean = false;\r\n private listOwners: Array =[];\r\n private organizationMembers:Array = [];\r\n private selectedUserEmail: string | null = null;\r\n\r\n private defaultProps = { maxHeight: 150 }\r\n \r\n closeInput(){\r\n let elem = this.$refs.field as HTMLFormElement;\r\n elem.blur();\r\n }\r\n\r\n async mounted(){\r\n let currentOwners = await API.List.loadOwners(this.listId);\r\n this.listOwners = currentOwners ? currentOwners : [];\r\n let currentOrganizationMembers = await API.Member.loadForParent(this.organizationId);\r\n this.organizationMembers = currentOrganizationMembers?.filter(m => m.IsEnabled) ? currentOrganizationMembers?.filter(m => m.IsEnabled) : [];\r\n }\r\n\r\n \r\n toggleAddForm(){\r\n this.displayAddForm = !this.displayAddForm;\r\n }\r\n\r\n textOption(item:Models.Member){\r\n return item.nameOrEmail + ' - ' + item.Email\r\n }\r\n\r\n isUserOwner(user: Models.Member) : boolean{\r\n let alreadyOwner = _.find(this.listOwners, { OwnerEmail: user.Email})\r\n return !!alreadyOwner;\r\n }\r\n\r\n async handleAddTableOwner(){\r\n if(this.selectedUserEmail){\r\n let newOwner = new Models.ListOwner();\r\n newOwner.ListId = this.listId;\r\n newOwner.OwnerEmail = this.selectedUserEmail;\r\n newOwner.OwnerOrganizationId = this.organizationId;\r\n let addedOwner = await API.List.saveOwner(newOwner);\r\n if (addedOwner){\r\n this.listOwners.push(addedOwner);\r\n this.selectedUserEmail = null;\r\n this.toggleAddForm();\r\n EventBus.$emit(Models.Event.LISTINFO_CHANGED);\r\n }\r\n } \r\n }\r\n\r\n async removeOwner(owner: Models.ListOwner){\r\n if(this.listOwners.length>1){\r\n let removedOwner = await API.List.deleteOwner(owner);\r\n if(removedOwner) {\r\n const index = this.listOwners.indexOf(owner, 0);\r\n if (index > -1) {\r\n this.listOwners.splice(index, 1);\r\n }\r\n EventBus.$emit(Models.Event.LISTINFO_CHANGED);\r\n }\r\n } \r\n }\r\n\r\n}\r\n","import _ from 'lodash';\r\n\r\nexport const enum KeyCodes {\r\n DOM_VK_CANCEL = 3,\r\n DOM_VK_HELP = 6,\r\n DOM_VK_BACK_SPACE = 8,\r\n DOM_VK_TAB = 9,\r\n DOM_VK_CLEAR = 12,\r\n DOM_VK_RETURN = 13,\r\n DOM_VK_ENTER = 14,\r\n DOM_VK_SHIFT = 16,\r\n DOM_VK_CONTROL = 17,\r\n DOM_VK_ALT = 18,\r\n DOM_VK_PAUSE = 19,\r\n DOM_VK_CAPS_LOCK = 20,\r\n DOM_VK_ESCAPE = 27,\r\n DOM_VK_SPACE = 32,\r\n DOM_VK_PAGE_UP = 33,\r\n DOM_VK_PAGE_DOWN = 34,\r\n DOM_VK_END = 35,\r\n DOM_VK_HOME = 36,\r\n DOM_VK_LEFT = 37,\r\n DOM_VK_UP = 38,\r\n DOM_VK_RIGHT = 39,\r\n DOM_VK_DOWN = 40,\r\n DOM_VK_PRINTSCREEN = 44,\r\n DOM_VK_INSERT = 45,\r\n DOM_VK_DELETE = 46,\r\n DOM_VK_0 = 48,\r\n DOM_VK_1 = 49,\r\n DOM_VK_2 = 50,\r\n DOM_VK_3 = 51,\r\n DOM_VK_4 = 52,\r\n DOM_VK_5 = 53,\r\n DOM_VK_6 = 54,\r\n DOM_VK_7 = 55,\r\n DOM_VK_8 = 56,\r\n DOM_VK_9 = 57,\r\n DOM_VK_SEMICOLON = 59,\r\n DOM_VK_EQUALS = 61,\r\n DOM_VK_A = 65,\r\n DOM_VK_B = 66,\r\n DOM_VK_C = 67,\r\n DOM_VK_D = 68,\r\n DOM_VK_E = 69,\r\n DOM_VK_F = 70,\r\n DOM_VK_G = 71,\r\n DOM_VK_H = 72,\r\n DOM_VK_I = 73,\r\n DOM_VK_J = 74,\r\n DOM_VK_K = 75,\r\n DOM_VK_L = 76,\r\n DOM_VK_M = 77,\r\n DOM_VK_N = 78,\r\n DOM_VK_O = 79,\r\n DOM_VK_P = 80,\r\n DOM_VK_Q = 81,\r\n DOM_VK_R = 82,\r\n DOM_VK_S = 83,\r\n DOM_VK_T = 84,\r\n DOM_VK_U = 85,\r\n DOM_VK_V = 86,\r\n DOM_VK_W = 87,\r\n DOM_VK_X = 88,\r\n DOM_VK_Y = 89,\r\n DOM_VK_Z = 90,\r\n DOM_VK_CONTEXT_MENU = 93,\r\n DOM_VK_NUMPAD0 = 96,\r\n DOM_VK_NUMPAD1 = 97,\r\n DOM_VK_NUMPAD2 = 98,\r\n DOM_VK_NUMPAD3 = 99,\r\n DOM_VK_NUMPAD4 = 100,\r\n DOM_VK_NUMPAD5 = 101,\r\n DOM_VK_NUMPAD6 = 102,\r\n DOM_VK_NUMPAD7 = 103,\r\n DOM_VK_NUMPAD8 = 104,\r\n DOM_VK_NUMPAD9 = 105,\r\n DOM_VK_MULTIPLY = 106,\r\n DOM_VK_ADD = 107,\r\n DOM_VK_SEPARATOR = 108,\r\n DOM_VK_SUBTRACT = 109,\r\n DOM_VK_DECIMAL = 110,\r\n DOM_VK_DIVIDE = 111,\r\n DOM_VK_F1 = 112,\r\n DOM_VK_F2 = 113,\r\n DOM_VK_F3 = 114,\r\n DOM_VK_F4 = 115,\r\n DOM_VK_F5 = 116,\r\n DOM_VK_F6 = 117,\r\n DOM_VK_F7 = 118,\r\n DOM_VK_F8 = 119,\r\n DOM_VK_F9 = 120,\r\n DOM_VK_F10 = 121,\r\n DOM_VK_F11 = 122,\r\n DOM_VK_F12 = 123,\r\n DOM_VK_F13 = 124,\r\n DOM_VK_F14 = 125,\r\n DOM_VK_F15 = 126,\r\n DOM_VK_F16 = 127,\r\n DOM_VK_F17 = 128,\r\n DOM_VK_F18 = 129,\r\n DOM_VK_F19 = 130,\r\n DOM_VK_F20 = 131,\r\n DOM_VK_F21 = 132,\r\n DOM_VK_F22 = 133,\r\n DOM_VK_F23 = 134,\r\n DOM_VK_F24 = 135,\r\n DOM_VK_NUM_LOCK = 144,\r\n DOM_VK_SCROLL_LOCK = 145,\r\n DOM_VK_COMMA = 188,\r\n DOM_VK_PERIOD = 190,\r\n DOM_VK_SLASH = 191,\r\n DOM_VK_BACK_QUOTE = 192,\r\n DOM_VK_OPEN_BRACKET = 219,\r\n DOM_VK_BACK_SLASH = 220,\r\n DOM_VK_CLOSE_BRACKET = 221,\r\n DOM_VK_QUOTE = 222,\r\n DOM_VK_META = 224\r\n}","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TableOwnerSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TableOwnerSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TableOwnerSelector.vue?vue&type=template&id=287d900e&scoped=true&\"\nimport script from \"./TableOwnerSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./TableOwnerSelector.vue?vue&type=script&lang=ts&\"\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 \"287d900e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{on:{\"click\":_vm.openDialog}},[_vm._t(\"default\"),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"700\"},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SurveyDialog_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',[_c('v-switch',{attrs:{\"loading\":_vm.savingList,\"inset\":\"\",\"color\":\"primary\",\"label\":_vm.$t('SurveyDialog_SurveyMode')},model:{value:(_vm.allowSurvey),callback:function ($$v) {_vm.allowSurvey=$$v},expression:\"allowSurvey\"}}),_vm._v(\"\\n \"+_vm._s(_vm.$t('SurveyDialog_Description'))+\"\\n \"),_c('v-row',{staticClass:\"ma-0 pa-0 align-center link\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pl-1 ma-0\",class:{'blurred': !_vm.allowSurvey},attrs:{\"cols\":\"9\"}},[_c('a',{staticClass:\"link--url\",attrs:{\"href\":_vm.surveyUrl,\"target\":\"_blank\"}},[_c('span',[_vm._v(_vm._s(_vm.surveyUrl))])])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"3\"}},[_c('v-btn',{staticClass:\"text-none px-1 link--button\",attrs:{\"tile\":\"\",\"elevation\":\"0\",\"block\":\"\",\"disabled\":!_vm.allowSurvey},on:{\"click\":_vm.copyLink}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"dense\":\"\"}},[_vm._v(\"fa-clipboard\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SurveyDialog_CopyLink'))+\"\\n \")],1)],1)],1)],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-btn',{staticClass:\"text-none\",attrs:{\"tile\":\"\",\"color\":\"primary\",\"disabled\":!_vm.allowSurvey,\"block\":\"\",\"href\":_vm.surveyUrl,\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"dense\":\"\"}},[_vm._v(\"fa-external-link\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SurveyDialog_ViewSurvey'))+\"\\n \")],1)],1)],1),_vm._v(\" \"),_c('toaster',{attrs:{\"showToaster\":_vm.showToaster,\"toasterColor\":_vm.toasterColor,\"toasterText\":_vm.toasterText,\"toasterTimeOut\":2000,\"toasterIcon\":_vm.toasterIcon}})],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-snackbar',{attrs:{\"value\":_vm.showToaster,\"color\":_vm.toasterColor,\"bottom\":\"\",\"left\":\"\",\"timeout\":_vm.toasterTimeOut},on:{\"input\":_vm.closeToaster},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"white\",\"dense\":\"\"},on:{\"click\":_vm.closeToaster}},[_vm._v(\"fa-times\")])]},proxy:true}])},[(_vm.toasterIcon)?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"white\",\"dense\":\"\"}},[_vm._v(_vm._s(_vm.toasterIcon))]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.toasterText)+\"\\n \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({\r\n name:'Toaster'\r\n})\r\nexport default class Toaster extends Vue{\r\n\r\n @Prop({default:'false'}) showToaster!:boolean;\r\n @Prop() toasterText!:string;\r\n @Prop() toasterColor!:string;\r\n @Prop() toasterTimeOut!: number;\r\n @Prop() toasterIcon!:string;\r\n\r\n constructor(){\r\n super();\r\n }\r\n\r\n closeToaster(){\r\n this.$emit(\"closeToasterEvent\");\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Toaster.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Toaster.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Toaster.vue?vue&type=template&id=0ddacbce&scoped=true&\"\nimport script from \"./Toaster.vue?vue&type=script&lang=ts&\"\nexport * from \"./Toaster.vue?vue&type=script&lang=ts&\"\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 \"0ddacbce\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport * as models from '@/models/RowShare';\r\nimport * as api from '@/api/Api';\r\nimport Toaster from '@/views/layouts/LayoutParts/Toaster.vue';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\n\r\n@Component({name: 'SurveyModeDialog', components: {Toaster}})\r\nexport default class SurveyModeDialog extends Vue{\r\n @Prop() listId!: string;\r\n showDialog: boolean = false;\r\n savingList: boolean = false;\r\n showToaster: boolean = false;\r\n toasterColor: string = \"\";\r\n toasterText: string = \"\";\r\n toasterIcon: string = \"\";\r\n\r\n get currentList() {\r\n return ListTreeModule.currentList;\r\n }\r\n\r\n get allowSurvey() {\r\n if(this.currentList) {\r\n return this.currentList.AllowSurvey;\r\n }\r\n return false;\r\n }\r\n\r\n set allowSurvey(value: boolean) {\r\n if(this.currentList) {\r\n this.currentList.AllowSurvey = value;\r\n this.savingList = true;\r\n api.List.save(this.currentList)\r\n .then((list: models.List | null) => {\r\n this.savingList = false;\r\n if(list) {\r\n ListTreeModule.updateCurrentList({ listId: this.listId, allowSurvey: false});\r\n }\r\n })\r\n }\r\n }\r\n\r\n get surveyUrl() {\r\n if(this.currentList) {\r\n return `${window.location.protocol}//${window.location.host}/survey/${this.currentList.Id}`;\r\n }\r\n return \"\";\r\n }\r\n\r\n onCancel() {\r\n this.showDialog = false;\r\n }\r\n\r\n openDialog() {\r\n setTimeout(() => this.showDialog = true);\r\n }\r\n\r\n copyLink() {\r\n let url = this.surveyUrl;\r\n document.addEventListener('copy', this.copyToClipboard);\r\n document.execCommand('copy');\r\n this.toasterColor = \"success\";\r\n this.toasterText = this.$i18n.t('SurveyDialog_LinkCopied').toString();\r\n this.toasterIcon = \"fal fa-check\";\r\n this.showToaster = true;\r\n }\r\n\r\n copyToClipboard(event: ClipboardEvent) {\r\n event.clipboardData?.setData('text/plain', this.surveyUrl);\r\n event.preventDefault();\r\n document.removeEventListener('copy', this.copyToClipboard);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SurveyModeDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SurveyModeDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SurveyModeDialog.vue?vue&type=template&id=371dac8b&scoped=true&\"\nimport script from \"./SurveyModeDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SurveyModeDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SurveyModeDialog.vue?vue&type=style&index=0&id=371dac8b&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 \"371dac8b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.displayModeVM.viewManager.personalViews.length > 0 || _vm.displayModeVM.viewManager.sharedViews.length > 0 || _vm.displayModeVM.viewManager.isNotDefault)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-1\",attrs:{\"color\":\"grey lighten-1\",\"outlined\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"far fa-eye\")]),_vm._v(\"\\r\\n \"+_vm._s(_vm.displayModeVM.viewManager.currentView ? _vm.displayModeVM.viewManager.currentView.Name : _vm.$t('Views_GenericViews_BasedOnDefaultView'))+\"\\r\\n \"),_c('v-icon',{staticClass:\"ml-1\",attrs:{\"small\":\"\"}},[_vm._v(\"far fa-chevron-down\")])],1)]}}],null,false,816119250),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_vm._v(\" \"),_c('v-card',[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('Views_GenericViewsHeader')))]),_vm._v(\" \"),(_vm.displayModeVM.viewManager.isNotDefault)?_c('v-list-item',{on:{\"click\":_vm.confirmSaveCurrentView}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"far fa-save\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Views_SaveCurrentView')))])],1)],1):_vm._e(),_vm._v(\" \"),_c('v-list-item-group',{attrs:{\"color\":\"primary\"}},[_c('v-list-item',{on:{\"click\":_vm.applyDefaultView}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"far fa-th\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Views_GenericViews_ApplyDefaultView')))])],1)],1),_vm._v(\" \"),(_vm.displayModeVM.viewManager.personalViews.length > 0)?_c('v-subheader',[_vm._v(_vm._s(_vm.$t('Views_PersonalViewsHeader')))]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.displayModeVM.viewManager.personalViews),function(personalView){return _c('v-tooltip',{key:personalView.Id,attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-list-item',_vm._g(_vm._b({staticClass:\"pr-0\",on:{\"click\":function($event){return _vm.applyView(personalView)}}},'v-list-item',attrs,false),on),[_c('v-list-item-icon',{staticClass:\"mr-1 align-self-center\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"far fa-eye\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"view-name\"},[_vm._v(_vm._s(personalView.Name))])],1),_vm._v(\" \"),(_vm.displayModeVM.viewManager.isNotDefault)?_c('v-list-item-action',{staticClass:\"ma-0\"},[_c('v-btn',{attrs:{\"tile\":\"\",\"icon\":\"\",\"title\":_vm.$t('Views_ReplaceTooltip')},on:{\"click\":function($event){$event.stopPropagation();return _vm.confirmUpdateExistingView(personalView)}}},[_c('v-icon',{attrs:{\"x-small\":\"\",\"color\":\"grey lighten-1\"}},[_vm._v(\"far fa-save\")])],1)],1):_vm._e(),_vm._v(\" \"),_c('v-list-item-action',{staticClass:\"ma-0\"},[_c('v-btn',{attrs:{\"tile\":\"\",\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteView(personalView)}}},[_c('v-icon',{attrs:{\"x-small\":\"\",\"color\":\"grey lighten-1\"}},[_vm._v(\"far fa-trash-alt\")])],1)],1)],1)]}}],null,true)},[_vm._v(\" \"),_c('div',[_vm._v(_vm._s(personalView.Name)+\":\")]),_vm._v(\" \"),_c('ul',{staticClass:\"view-tooltip\",domProps:{\"innerHTML\":_vm._s(_vm.displayModeVM.viewManager.getViewSummary(personalView))}})])}),_vm._v(\" \"),(_vm.displayModeVM.viewManager.sharedViews.length > 0)?_c('v-subheader',[_vm._v(_vm._s(_vm.$t('Views_SharedViewsHeader')))]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.displayModeVM.viewManager.sharedViews),function(sharedView){return _c('v-tooltip',{key:sharedView.Id,attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-list-item',_vm._g(_vm._b({staticClass:\"pr-0\",on:{\"click\":function($event){return _vm.applyView(sharedView)}}},'v-list-item',attrs,false),on),[_c('v-list-item-icon',{staticClass:\"mr-1 align-self-center\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"far fa-eye\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"view-name\"},[_vm._v(_vm._s(sharedView.Name))])],1),_vm._v(\" \"),(_vm.displayModeVM.viewManager.isNotDefault)?_c('v-list-item-action',{staticClass:\"ma-0\"},[(_vm.displayModeVM.listVM.list.Owned)?_c('v-btn',{attrs:{\"tile\":\"\",\"icon\":\"\",\"title\":_vm.$t('Views_ReplaceTooltip')},on:{\"click\":function($event){$event.stopPropagation();return _vm.confirmUpdateExistingView(sharedView)}}},[_c('v-icon',{attrs:{\"x-small\":\"\",\"color\":\"grey lighten-1\"}},[_vm._v(\"far fa-save\")])],1):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('v-list-item-action',{staticClass:\"ma-0\"},[(_vm.canDeleteView(sharedView))?_c('v-btn',{attrs:{\"tile\":\"\",\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteView(sharedView)}}},[_c('v-icon',{attrs:{\"x-small\":\"\",\"color\":\"grey lighten-1\"}},[_vm._v(\"far fa-trash-alt\")])],1):_vm._e()],1)],1)]}}],null,true)},[_vm._v(\" \"),_c('div',[_vm._v(_vm._s(sharedView.Name)+\":\")]),_vm._v(\" \"),_c('ul',{domProps:{\"innerHTML\":_vm._s(_vm.displayModeVM.viewManager.getViewSummary(sharedView))}})])})],2)],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"700\"},model:{value:(_vm.isSaveViewDialogOpen),callback:function ($$v) {_vm.isSaveViewDialogOpen=$$v},expression:\"isSaveViewDialogOpen\"}},[(_vm.viewBeingSaved)?_c('v-card',[_c('v-card-title',{staticClass:\"px-5\"},[_vm._v(\"\\r\\n \"+_vm._s(_vm.viewBeingSaved.Id ? _vm.$t('Views_SaveModal_SaveExistingTitle', [_vm.viewBeingSaved.Name]) : _vm.$t('Views_SaveModal_SaveNewTitle'))+\"\\r\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('Views_Modal_HelpUrl'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('Views_Modal_HelpUrlText'))+\"\\r\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":function($event){_vm.isSaveViewDialogOpen = false}}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(!_vm.viewBeingSaved.Id)?_c('v-card-text',[_c('div',[_vm._v(_vm._s(_vm.$t('Views_Modal_CreateNewDescription')))])]):_vm._e(),_vm._v(\" \"),(!_vm.viewBeingSaved.Id)?_c('v-card-text',[_c('h4',{staticClass:\"mb-1\"},[_vm._v(_vm._s(_vm.$t(\"ViewSummary_CurrentView_Title\")))]),_vm._v(\" \"),(_vm.savingViewSummary)?_c('ul',{domProps:{\"innerHTML\":_vm._s(_vm.savingViewSummary)}}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.viewBeingSaved.Id)?_c('v-card-text',{staticClass:\"replace-view-container\"},[_c('div',{staticClass:\"replace-view-summary\"},[_c('h4',{staticClass:\"mb-1\"},[_vm._v(_vm._s(_vm.$t(\"View_Replacing_OldSummary\", [_vm.viewBeingSaved.Name])))]),_vm._v(\" \"),(_vm.viewBeingReplacedSummary)?_c('ul',{domProps:{\"innerHTML\":_vm._s(_vm.viewBeingReplacedSummary)}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"replace-view-separator\"}),_vm._v(\" \"),_c('div',{staticClass:\"replace-view-summary\"},[_c('h4',{staticClass:\"mb-1\"},[_vm._v(_vm._s(_vm.$t(\"View_Replacing_NewSummary\")))]),_vm._v(\" \"),(_vm.savingViewSummary)?_c('ul',{domProps:{\"innerHTML\":_vm._s(_vm.savingViewSummary)}}):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('h4',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.$t('Views_SaveModal_ViewName')))]),_vm._v(\" \"),_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.viewBeingSaved.Name),callback:function ($$v) {_vm.$set(_vm.viewBeingSaved, \"Name\", $$v)},expression:\"viewBeingSaved.Name\"}}),_vm._v(\" \"),(_vm.displayModeVM.listVM.list.Owned)?_c('h4',[_vm._v(_vm._s(_vm.$t('Views_SaveModal_ShareTitle')))]):_vm._e(),_vm._v(\" \"),(_vm.displayModeVM.listVM.list.Owned)?_c('v-switch',{attrs:{\"color\":\"primary\",\"label\":_vm.$t('Views_SaveModal_ShareDescription')},model:{value:(_vm.viewBeingSaved.Shared),callback:function ($$v) {_vm.$set(_vm.viewBeingSaved, \"Shared\", $$v)},expression:\"viewBeingSaved.Shared\"}}):_vm._e()],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"d-flex justify-end\"},[_c('span',{staticClass:\"error--text\"},[_vm._v(_vm._s(_vm.saveErrorMessage))])]),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.isSaveViewDialogOpen = false}}},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('Views_Dialog_Cancel'))+\"\\r\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.isSavingView,\"disabled\":!_vm.canSaveCurrentView},on:{\"click\":_vm.saveCurrentView}},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('Views_SaveModal_Save'))+\"\\r\\n \")])],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { Utils } from \"@/utils/Utilities\";\r\nimport ListDisplayModeVM from \"@/viewModels/Table/listDisplayModeVM\";\r\n\r\n@Component({\r\n name: \"ViewSelector\",\r\n components: { }\r\n})\r\nexport default class ViewSelector extends Vue {\r\n @Prop() displayModeVM!: ListDisplayModeVM;\r\n isOpen = false;\r\n\r\n applyDefaultView(){\r\n this.displayModeVM.viewManager.applyDefaultView();\r\n }\r\n\r\n applyView(view: RowShare.View){\r\n this.displayModeVM.viewManager.applyView(view);\r\n }\r\n\r\n isSaveViewDialogOpen = false;\r\n viewBeingReplacedSummary: string | null = null;\r\n savingViewSummary: string | null = null;\r\n viewConfigBeingSaved: RowShare.ListConfiguration | undefined = undefined;\r\n viewBeingSaved: RowShare.View | null = null;\r\n isSavingView = false;\r\n saveErrorMessage: string | null = null;\r\n\r\n get canSaveCurrentView(){\r\n return this.viewBeingSaved && !Utils.isNullOrWhiteSpace(this.viewBeingSaved.Name);\r\n }\r\n\r\n confirmSaveCurrentView(){\r\n if(!this.displayModeVM?.listVM?.list?.Id)\r\n return;\r\n\r\n this.viewBeingSaved = new RowShare.View();\r\n this.viewBeingSaved.ListId = this.displayModeVM.listVM.list.Id;\r\n this.baseConfirmSaveView();\r\n }\r\n\r\n confirmUpdateExistingView(view: RowShare.View){\r\n this.viewBeingSaved = view;\r\n this.viewBeingReplacedSummary = this.displayModeVM.viewManager.getViewSummary(view);\r\n this.baseConfirmSaveView();\r\n }\r\n\r\n baseConfirmSaveView(){\r\n this.viewConfigBeingSaved = this.displayModeVM.viewManager.getCurrentViewConfig();\r\n if(!this.viewConfigBeingSaved)\r\n return;\r\n\r\n this.savingViewSummary = this.displayModeVM.viewManager.getViewConfigSummary(this.viewConfigBeingSaved);\r\n this.saveErrorMessage = null;\r\n\r\n this.isSaveViewDialogOpen = true;\r\n }\r\n\r\n async saveCurrentView(){\r\n if(!this.viewBeingSaved)\r\n return;\r\n\r\n this.isSavingView = true;\r\n \r\n this.viewBeingSaved.Data = JSON.stringify(this.viewConfigBeingSaved);\r\n\r\n const res = await this.displayModeVM.viewManager.saveView(this.viewBeingSaved);\r\n this.isSavingView = false;\r\n\r\n if(res == null)\r\n this.isSaveViewDialogOpen = false;\r\n else\r\n this.saveErrorMessage = res;\r\n }\r\n\r\n canDeleteView(view: RowShare.View){\r\n return !view.Shared || this.displayModeVM?.listVM?.list?.Owned;\r\n }\r\n\r\n deleteView(view: RowShare.View){\r\n let event = new RowShare.ConfirmationRequiredEventParams();\r\n event.title = view.Shared\r\n ? this.$i18n.t('DeleteViewDialog_SharedViewTitle').toString()\r\n : this.$i18n.t('DeleteViewDialog_PersonalViewTitle').toString();\r\n event.description1 = view.Shared\r\n ? this.$i18n.t('DeleteViewDialog_SharedViewDescription', [view.Name]).toString()\r\n : this.$i18n.t('DeleteViewDialog_PersonalViewDescription', [view.Name]).toString();\r\n event.cancelButtonText = this.$i18n.t('Views_Dialog_Cancel').toString();\r\n event.actionButtonText = this.$i18n.t('DeleteViewDialog_Confirm').toString();\r\n event.actionButtonColor = \"error\";\r\n event.actionButtonIcon = \"trash-alt\";\r\n event.onConfirmation = async () => {\r\n await this.displayModeVM.viewManager.deleteView(view);\r\n };\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, event);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ViewSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ViewSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ViewSelector.vue?vue&type=template&id=d4a49df0&scoped=true&\"\nimport script from \"./ViewSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ViewSelector.vue?vue&type=style&index=0&id=d4a49df0&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 \"d4a49df0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{on:{\"click\":_vm.openDialog}},[_vm._t(\"default\"),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"450\"},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ImportDialog_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"href\":_vm.$t('ImportDialog_HelpUrl').toString(),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',[_c('h4',{staticClass:\"mb-2 section-description\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ImportDialog_Description'))+\"\\n \")])]),_vm._v(\" \"),_c('v-card-text',[_c('h4',{staticClass:\"mb-2 section-description\"},[_vm._v(_vm._s(_vm.$t('ImportDialog_DownloadFile')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"text\":\"\",\"disabled\":_vm.processingFile},on:{\"click\":_vm.exportToExcel}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ImportDialog_FileDownloadBtn'))+\"\\n \")])],1),_vm._v(\" \"),_c('v-card-text',[_c('h4',{staticClass:\"mb-2 section-description\"},[_vm._v(_vm._s(_vm.$t('ImportDialog_ImportFile')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"loading\":_vm.processingFile},on:{\"click\":_vm.selectFile}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ImportDialog_FileUploadBtn'))+\"\\n \"),_c('input',{ref:\"fileImportInput\",attrs:{\"type\":\"file\",\"hidden\":\"\",\"accept\":\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel\"},on:{\"change\":_vm.fileSelected}})]),_vm._v(\" \"),(_vm.errorMessage)?_c('p',{staticClass:\"error-message ma-2 mb-2\"},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport {Vue, Component, Watch, Prop} from 'vue-property-decorator';\r\nimport * as api from '@/api/Api';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\nimport * as models from '@/models/RowShare';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport * as RowShare from \"@/models/RowShare\";\r\n@Component({name: 'ImportDialog'})\r\nexport default class ImportDialog extends Vue {\r\n @Prop() listVM!: ListVM;\r\n @Prop() gridViewVM!: GridViewVM;\r\n showDialog: boolean = false;\r\n processingFile: boolean = false;\r\n errorMessage: string = \"\";\r\n\r\n get currentList() {\r\n return ListTreeModule.currentList;\r\n }\r\n\r\n async exportToExcel() {\r\n let context = this.initExportContext()\r\n context.format = RowShare.RowShareServiceFormat.Xls;\r\n context.formatOptions = new RowShare.XlsFormatOptions();\r\n context.formatOptions.IncludeRowDetails = true;\r\n context.formatOptions.OpenXml = true;\r\n let file = await api.List.Export(this.listVM?.list?.Id ?? '', context);\r\n if(file) {\r\n var link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(file);\r\n link.download = file.name;\r\n link.click();\r\n }\r\n }\r\n\r\n initExportContext(): RowShare.ExportContext {\r\n let context = new RowShare.ExportContext();\r\n if(this.gridViewVM?.gridApi) {\r\n let tmpRowIds: string[] = [];\r\n if(this.gridViewVM.isFiltered) {\r\n this.gridViewVM.gridApi.forEachNodeAfterFilterAndSort(n => {\r\n if(!n.group && n.data?.rsRow) {\r\n tmpRowIds.push(n.data.rsRow.Id);\r\n }\r\n });\r\n context.rowIds = tmpRowIds;\r\n }\r\n } else {\r\n context.rowIds = null;\r\n }\r\n return context;\r\n }\r\n\r\n @Watch('showDialog')\r\n initDialog() {\r\n this.errorMessage = \"\";\r\n }\r\n\r\n openDialog() {\r\n setTimeout(() => this.showDialog = true);\r\n }\r\n\r\n onCancel() {\r\n this.showDialog = false;\r\n }\r\n\r\n selectFile() {\r\n let input = (this.$refs.fileImportInput);\r\n if(input) {\r\n this.errorMessage = \"\";\r\n (this.$refs.fileImportInput).value = null;\r\n input.click();\r\n }\r\n }\r\n\r\n fileSelected() {\r\n let files = (this.$refs.fileImportInput).files;\r\n if(files && files.length == 1 && this.currentList?.Id) {\r\n this.processingFile = true;\r\n this.errorMessage = \"\";\r\n api.Folder.importRows(this.currentList.Id, files[0])\r\n .then((res: models.ImportResult | null) => {\r\n if(res) {\r\n if(this.listVM) {\r\n let gridChanged = false;\r\n if(res.AddedRows.length > 0) {\r\n this.gridViewVM.addRowsInUI(res.AddedRows);\r\n gridChanged = true;\r\n }\r\n if(res.UpdatedRows.length > 0) {\r\n this.gridViewVM.updateRowsInUI(res.UpdatedRows);\r\n gridChanged = true;\r\n }\r\n if(gridChanged) {\r\n this.gridViewVM.tryRefreshTotalRow();\r\n EventBus.$emit(models.Event.GRID_INFOS_CHANGED, this.gridViewVM);\r\n }\r\n this.showDialog = false;\r\n }\r\n else {\r\n location.reload();\r\n }\r\n }\r\n })\r\n .catch((error: any) => {\r\n console.log('error');\r\n if(error) {\r\n this.errorMessage = error.message;\r\n }\r\n })\r\n .finally(() => {\r\n this.processingFile = false;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ImportDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ImportDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ImportDialog.vue?vue&type=template&id=d7e466ac&scoped=true&\"\nimport script from \"./ImportDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ImportDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ImportDialog.vue?vue&type=style&index=0&id=d7e466ac&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 \"d7e466ac\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Component, Prop, Vue} from \"vue-property-decorator\";\r\nimport copyListDialog from \"@/views/MyTables/ListActions/CopyListDialog.vue\"\r\nimport * as API from \"@/api/Api\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport TableOwnerSelector from \"@/views/Table/ShareTable/TableOwnerSelector.vue\";\r\nimport {EventBus} from \"@/modules/EventBus\";\r\nimport {SettingNames, Settings} from \"@/utils/Settings\";\r\nimport {KeyCodes} from \"@/utils/KeyCodes\";\r\nimport {ListTreeModule} from \"@/store/ListTreeStore\";\r\nimport surveyModeDialog from \"@/views/Table/ListActions/SurveyModeDialog.vue\";\r\nimport ViewSelector from \"@/views/Table/ViewSelector.vue\";\r\nimport GridViewVM from \"@/viewModels/Table/gridViewVM\";\r\nimport {UserModule} from \"@/store/UserStore\";\r\nimport ListVM from \"@/viewModels/Table/listVM\";\r\nimport {ApplicationModule} from \"@/store/ApplicationStore\";\r\nimport ImportDialog from \"@/views/Table/ListActions/ImportDialog.vue\";\r\nimport colors from 'vuetify/lib/util/colors';\r\nimport linkifyStr from 'linkify-string';\r\nimport { RawLocation } from \"vue-router\";\r\nimport Bigram from \"@/views/components/Bigram.vue\";\r\n\r\n@Component({\r\n name: \"ListToolbar\",\r\n components: {Bigram, TableOwnerSelector, copyListDialog, surveyModeDialog, ViewSelector, ImportDialog }\r\n})\r\nexport default class ListToolbar extends Vue {\r\n @Prop() listVM!: ListVM;\r\n @Prop() gridViewVM!: GridViewVM;\r\n @Prop() showReturnToTable!: boolean;\r\n @Prop() hideMenu!: boolean;\r\n\r\n allNotifications: string = \"all\";\r\n ownedNotifications: string = \"owned\";\r\n noNotifications: string = \"none\";\r\n\r\n currentList: RowShare.List = new RowShare.List();\r\n currentOrg: RowShare.Organization | null = null;\r\n\r\n showManageTableOwners: boolean = false;\r\n userListLinks: RowShare.UserListLink = new RowShare.UserListLink();\r\n currentListInformations: RowShare.ListInformations = new RowShare.ListInformations();\r\n displayDescription: boolean = false;\r\n selectedEmailNotifications: string = \"\";\r\n isEditing: boolean = false;\r\n nameUpdateErrors: string = \"\";\r\n updatingName: boolean = false;\r\n excelMenuOpened: boolean = false;\r\n exportMenuOpened: boolean = false;\r\n menuOpened: boolean = false;\r\n\r\n get isMsTeamsApp(): boolean {\r\n return ApplicationModule.isMsTeamsApp;\r\n }\r\n\r\n get specialRowsDisplayed(): boolean {\r\n return this.listVM.specialRowsDisplayed;\r\n }\r\n\r\n get specialRowsName(): string {\r\n switch(this.listVM?.displayedRows) {\r\n case RowShare.DisplayedRows.Deleted:\r\n return this.$i18n.t('ListToolBar_DeletedRowsDisplayed', [this.organizationCleanDeletedRowsDelay]).toString();\r\n case RowShare.DisplayedRows.Archived:\r\n return this.$i18n.t('ListToolBar_ArchivedRowsDisplayed').toString();\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n get specialRowsChipColor(): string {\r\n switch(this.listVM?.displayedRows) {\r\n case RowShare.DisplayedRows.Deleted:\r\n return \"secondary\";\r\n case RowShare.DisplayedRows.Archived:\r\n return colors.teal.lighten3;\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n get hasArchiveRows(): boolean {\r\n return ListTreeModule.currentOrganization?.HasArchiveRows ?? false;\r\n }\r\n\r\n get hasRowMerge(): boolean {\r\n return ListTreeModule.currentOrganization?.HasRowMerge ?? false;\r\n }\r\n\r\n get showDescriptionNextTimeLabel(): string {\r\n return this.$i18n.t('ListToolBar_ShowDescriptionNextTime').toString();\r\n }\r\n\r\n downloadExcel() {\r\n let context = this.initExportContext()\r\n //let url = `/api/list/export/${this.currentList?.Id}?f=Xls&_xlsoxml=true`;\r\n context.format = RowShare.RowShareServiceFormat.Xls;\r\n context.formatOptions = new RowShare.XlsFormatOptions();\r\n context.formatOptions.OpenXml = true;\r\n this.downloadFile(context);\r\n }\r\n\r\n downloadCsv() {\r\n let context = this.initExportContext()\r\n context.format = RowShare.RowShareServiceFormat.Csv;\r\n context.formatOptions = new RowShare.XlsFormatOptions();\r\n this.downloadFile(context);\r\n }\r\n\r\n async downloadFile(context: RowShare.ExportContext) {\r\n let file = await API.List.Export(this.listVM?.list?.Id ?? '', context);\r\n if(file) {\r\n var link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(file);\r\n link.download = file.name;\r\n link.click();\r\n }\r\n }\r\n\r\n onMenuToggle(opened: boolean) {\r\n if(!opened) {\r\n this.excelMenuOpened = false;\r\n this.exportMenuOpened = false;\r\n }\r\n }\r\n\r\n created() {\r\n this.loadListInfo(false);\r\n this.initUserListLinks();\r\n EventBus.$on(RowShare.Event.LISTINFO_CHANGED, () => this.loadListInfo(false));\r\n this.initCurrentListInformations()\r\n EventBus.$on(RowShare.Event.GRID_CLEAR_FILTERS, () => this.clearSearch())\r\n EventBus.$on(RowShare.Event.GRID_SEARCH_CHANGED, (event: RowShare.GridSearchChangeEventParams) => this.onExternalSearchChanged(event));\r\n }\r\n\r\n beforeDestroy(){\r\n EventBus.$off([\r\n RowShare.Event.LISTINFO_CHANGED,\r\n RowShare.Event.GRID_CLEAR_FILTERS,\r\n RowShare.Event.GRID_SEARCH_CHANGED,\r\n ])\r\n }\r\n\r\n initCurrentListInformations() {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n this.currentListInformations = Settings.getJson(this.listVM.list.Id, SettingNames.information);\r\n if(!this.currentListInformations) {\r\n this.currentListInformations = new RowShare.ListInformations();\r\n this.currentListInformations.hidePermissionsMessage = true;\r\n this.currentListInformations.showDescription = false;\r\n this.showDescription = false;\r\n this.displayDescription = true;\r\n }\r\n else {\r\n this.displayDescription = this.currentListInformations.showDescription;\r\n }\r\n }\r\n\r\n loadListInfo(useCache: boolean = true) {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n API.List.load(this.listVM.list.Id, {cache: useCache}).then(list => {\r\n if(list)\r\n {\r\n this.currentList = list;\r\n }\r\n });\r\n }\r\n\r\n returnToTable() {\r\n if(this.specialRowsDisplayed) {\r\n ListTreeModule.updateCurrentListDisplayedRows(RowShare.DisplayedRows.Active);\r\n }\r\n else {\r\n this.$router.push({name: 'Table', params: {listId: this.listVM.list?.Id}});\r\n }\r\n }\r\n\r\n async initUserListLinks() {\r\n if(!this.isLoggedIn || !this.listVM.list)\r\n return;\r\n let links = await API.UserListLink.loadByList(this.listVM.list.Id);\r\n if (links)\r\n this.userListLinks = links\r\n }\r\n\r\n public get isLoggedIn() {\r\n var user = UserModule.CurrentUser;\r\n return user != null && !user.IsAnonymous;\r\n }\r\n\r\n public get listIconUrl() {\r\n if( this.currentList?.IconPath) {\r\n return '/' + this.currentList.IconPath + \"?_ssb_img=S;w:48;h:48\";\r\n }\r\n }\r\n\r\n public get ownersNicknames() : string {\r\n if(!this.currentList?.OwnersNicknames || this.currentList.OwnersNicknames.length == 0) {\r\n return \"\";\r\n }\r\n var maxOwnersDisplay = 3;\r\n let owners: string[] = [];\r\n let othersOwners: string[] = [];\r\n for (let index = 0; index < this.currentList.OwnersNicknames.length; index++) {\r\n if(owners.length < maxOwnersDisplay) {\r\n owners.push(this.currentList.OwnersNicknames[index]);\r\n }\r\n else {\r\n othersOwners.push(this.currentList.OwnersNicknames[index]);\r\n }\r\n }\r\n\r\n if(othersOwners.length > 0) {\r\n if(othersOwners.length == 1) {\r\n owners.push(...othersOwners);\r\n }\r\n else {\r\n owners.push(this.$i18n.t('ListToolbar_ManyOtherOwners', [othersOwners.length]).toString());\r\n }\r\n }\r\n\r\n return owners.join(', ');\r\n }\r\n\r\n public get notificationsIcon() : string {\r\n let result : string = \"\";\r\n\r\n if(this.userListLinks) {\r\n if(this.userListLinks.isAllRowsEmailNotifications) {\r\n result = \"fa-bell\";\r\n this.selectedEmailNotifications = this.allNotifications;\r\n }\r\n if(this.userListLinks.isOwnedRowsEmailNotifications) {\r\n result = \"far fa-bell\";\r\n this.selectedEmailNotifications = this.ownedNotifications;\r\n }\r\n }\r\n\r\n if(result.length === 0) {\r\n result = \"fa-bell-slash\";\r\n this.selectedEmailNotifications = this.noNotifications;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public get notificationsIconColor() : string {\r\n if(!this.userListLinks.isNoEmailNotifications) {\r\n return \"primary\";\r\n }\r\n return \"\";\r\n }\r\n\r\n public get showDescription() : boolean {\r\n return this.currentListInformations.showDescription;\r\n }\r\n\r\n public set showDescription(value: boolean) {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n this.currentListInformations.showDescription = value;\r\n Settings.setJson(this.listVM.list.Id, SettingNames.information, this.currentListInformations)\r\n }\r\n\r\n get folder(): RowShare.ListTreeFolder | null {\r\n return ListTreeModule.currentFolder;\r\n }\r\n\r\n get organizationId(): string {\r\n return ListTreeModule.currentOrganization?.Id ?? \"\";\r\n }\r\n\r\n get organizationCleanDeletedRowsDelay(): string {\r\n return ListTreeModule?.currentOrganization?.SubscriptionCleanDeletedRowsDelay.toString() ?? \"\";\r\n }\r\n\r\n getRowMergeGenerationContext(): RowShare.ReportGenerationContext {\r\n let context = new RowShare.ReportGenerationContext();\r\n context.totalTableRowCount = this.currentList.RowCount;\r\n context.hasReadOnlyRows = false;\r\n if(this.gridViewVM?.gridApi) {\r\n var tmpRowIds: string[] = [];\r\n this.gridViewVM.gridApi.forEachNodeAfterFilterAndSort(n => {\r\n if(!n.group && n.data?.rsRow) {\r\n tmpRowIds.push(n.data.rsRow.Id);\r\n if(!n.data.rsRow.CanUpdate || n.data.isLocked) {\r\n context.hasReadOnlyRows = true;\r\n }\r\n }\r\n });\r\n context.rowIds = tmpRowIds;\r\n } else {\r\n context.rowIds = null;\r\n }\r\n return context;\r\n }\r\n\r\n initExportContext(): RowShare.ExportContext {\r\n let context = new RowShare.ExportContext();\r\n if(this.gridViewVM?.gridApi) {\r\n let tmpRowIds: string[] = [];\r\n if(this.gridViewVM.isFiltered) {\r\n this.gridViewVM.gridApi.forEachNodeAfterFilterAndSort(n => {\r\n if(!n.group && n.data?.rsRow) {\r\n tmpRowIds.push(n.data.rsRow.Id);\r\n }\r\n });\r\n context.rowIds = tmpRowIds;\r\n }\r\n } else {\r\n context.rowIds = null;\r\n }\r\n return context;\r\n }\r\n\r\n get canRunRowMerge(): boolean {\r\n return ListTreeModule.currentListCapabilities?.rowMerge ?? false;\r\n }\r\n\r\n onRowMergeClicked() {\r\n if (this.hasRowMerge) {\r\n //here => the user has the authorization to make row merge, so i execute the same code before my modifications\r\n // Event $emit updated to be sur that generation context is calculated each time\r\n let context = this.getRowMergeGenerationContext();\r\n EventBus.$emit(RowShare.Event.ROWMERGE_REQUEST, context);\r\n } else {\r\n //here => the user has not authorization\r\n EventBus.$emit(RowShare.Event.SHOW_UPSELL_DIALOG, {\r\n title: this.$i18n.t('UpsellDialog_Title').toString(),\r\n description: this.$i18n.t('UpsellDialog_Description_RowMerge').toString()\r\n });\r\n }\r\n }\r\n\r\n onExportAuditClicked(){\r\n const a = document.createElement('a');\r\n document.body.appendChild(a);\r\n a.download = \"audit\";\r\n a.href = `/api/audit/export/${this.currentList?.Id}?f=csv`;\r\n a.click();\r\n }\r\n\r\n manageOwners() {\r\n if(!this.currentList.Owned || this.currentList.LoadedByReadOnlyMember || this.specialRowsDisplayed) {\r\n return;\r\n }\r\n this.showManageTableOwners = true;\r\n }\r\n\r\n onCancelManageOwners() {\r\n this.showManageTableOwners = false;\r\n }\r\n\r\n addToFavorites() {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n API.UserListLink.save(this.listVM.list.Id, RowShare.UserListLinkTypes.Favorite).then(link => {\r\n if(link) {\r\n this.userListLinks = link;\r\n }\r\n });\r\n }\r\n\r\n removeFromFavorites() {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n API.UserListLink.remove(this.listVM.list.Id, RowShare.UserListLinkTypes.Favorite).then(link => {\r\n if(link) {\r\n this.userListLinks = link;\r\n }\r\n });\r\n }\r\n\r\n async unsubscribeFromEmailNotifications() {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n this.userListLinks = await API.UserListLink.remove(this.listVM.list.Id, RowShare.UserListLinkTypes.AllRowsEmailNotifications);\r\n this.userListLinks = await API.UserListLink.remove(this.listVM.list.Id, RowShare.UserListLinkTypes.OwnedRowsEmailNotifications);\r\n //added by soukayna\r\n this.userListLinks = await API.UserListLink.save(this.listVM.list.Id, RowShare.UserListLinkTypes.NoEmailNotifications);\r\n }\r\n\r\n async subscribeToOwnedRowsEmailNotifications() {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n this.userListLinks = await API.UserListLink.remove(this.listVM.list.Id, RowShare.UserListLinkTypes.AllRowsEmailNotifications);\r\n this.userListLinks = await API.UserListLink.remove(this.listVM.list.Id, RowShare.UserListLinkTypes.NoEmailNotifications);\r\n this.userListLinks = await API.UserListLink.save(this.listVM.list.Id, RowShare.UserListLinkTypes.OwnedRowsEmailNotifications);\r\n }\r\n\r\n async subscribeToAllEmailNotifications() {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n this.userListLinks = await API.UserListLink.save(this.listVM.list.Id, RowShare.UserListLinkTypes.AllRowsEmailNotifications);\r\n this.userListLinks = await API.UserListLink.remove(this.listVM.list.Id, RowShare.UserListLinkTypes.OwnedRowsEmailNotifications);\r\n this.userListLinks = await API.UserListLink.remove(this.listVM.list.Id, RowShare.UserListLinkTypes.NoEmailNotifications);\r\n }\r\n\r\n hideDescription() {\r\n this.displayDescription = false;\r\n }\r\n\r\n onListNameKeyDown(event: KeyboardEvent) {\r\n if(event.keyCode === KeyCodes.DOM_VK_RETURN) {\r\n this.saveListName();\r\n }\r\n else if(event.keyCode === KeyCodes.DOM_VK_ESCAPE) {\r\n this.loadListInfo();\r\n this.isEditing = false;\r\n this.nameUpdateErrors = \"\";\r\n }\r\n }\r\n\r\n saveListName() {\r\n this.nameUpdateErrors = \"\";\r\n this.updatingName = true;\r\n API.List.save(this.currentList).then(list => {\r\n if(list){\r\n this.currentList = list;\r\n EventBus.$emit(RowShare.Event.LISTNAME_CHANGED);\r\n }\r\n this.isEditing = false;\r\n })\r\n .catch((exc: Error) =>{\r\n this.nameUpdateErrors = this.$i18n.t('ListToolBar_ErrorSavingName', [exc.message]).toString();\r\n })\r\n .finally(() => {\r\n this.updatingName = false;\r\n });\r\n }\r\n\r\n editListName() {\r\n if(!this.currentList.Owned || this.currentList.LoadedByReadOnlyMember || this.specialRowsDisplayed) {\r\n return;\r\n }\r\n this.isEditing = true;\r\n this.nameUpdateErrors = \"\";\r\n }\r\n\r\n onDeletedRowsClicked() {\r\n ListTreeModule.updateCurrentListDisplayedRows(RowShare.DisplayedRows.Deleted);\r\n }\r\n\r\n onArchivedRowsClicked() {\r\n if(this.hasArchiveRows) {\r\n ListTreeModule.updateCurrentListDisplayedRows(RowShare.DisplayedRows.Archived);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.SHOW_UPSELL_DIALOG, {\r\n title: this.$i18n.t('UpsellDialog_Title').toString(),\r\n description: this.$i18n.t('UpsellDialog_Description_ArchiveRows').toString()\r\n });\r\n }\r\n }\r\n\r\n get canShowArchivedRows(): boolean {\r\n return !this.showReturnToTable && (this.listVM.list?.Owned ?? false);\r\n }\r\n\r\n /** Print **/\r\n printTable() {\r\n let location = this.$router.resolve({name: 'TablePrint'});\r\n if(location?.resolved) {\r\n window.open(location.href);\r\n }\r\n }\r\n\r\n /** Pivot **/\r\n pivotTable() {\r\n let location = this.$router.resolve({name: 'PivotTable'});\r\n if(location?.resolved) {\r\n window.open(location.href);\r\n }\r\n }\r\n\r\n /** search **/\r\n\r\n searchText: string | null = null;\r\n searchTextChangedTimeout: number = 0;\r\n\r\n onGridSearchChanged(){\r\n if(this.searchTextChangedTimeout)\r\n clearTimeout(this.searchTextChangedTimeout);\r\n\r\n this.searchTextChangedTimeout = setTimeout(()=>{\r\n EventBus.$emit(RowShare.Event.GRID_SEARCH_CHANGED, {searchText: this.searchText, saveValue: true});\r\n }, 500);\r\n }\r\n\r\n clearSearch() {\r\n this.searchText = null;\r\n EventBus.$emit(RowShare.Event.GRID_SEARCH_CHANGED, {searchText: this.searchText, saveValue: true});\r\n }\r\n\r\n onExternalSearchChanged(event: RowShare.GridSearchChangeEventParams){\r\n if(event.source === \"external\")\r\n this.searchText = event.searchText;\r\n }\r\n\r\n getDescriptionContent(content: string) {\r\n return linkifyStr(content, {target: '_blank'});\r\n }\r\n\r\n openTableSettings() {\r\n EventBus.$emit(RowShare.Event.SHOW_SIDEPANEL_TABLE_SETTINGS, {listId: this.listVM.list?.Id});\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListToolbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListToolbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListToolbar.vue?vue&type=template&id=2ebd3f78&scoped=true&\"\nimport script from \"./ListToolbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListToolbar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListToolbar.vue?vue&type=style&index=0&id=2ebd3f78&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 \"2ebd3f78\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-toolbar',{attrs:{\"color\":\"backgrounds\",\"flat\":\"\",\"dense\":\"\"}},[(!_vm.isListShared && _vm.currentList.Owned && !_vm.currentList.LoadedByReadOnlyMember && !_vm.specialRowsDisplayed)?_c('v-toolbar-title',{staticClass:\"mx-1 sharingbar-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SharingBar_NoGuests'))+\"\\n \")]):(_vm.currentList.Owned && _vm.isListShared && !_vm.specialRowsDisplayed)?_c('v-toolbar-title',{staticClass:\"mx-1 sharingbar-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SharingBar_SharedWith'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.sharedWithMyOrganization && _vm.currentList.Owned && !_vm.specialRowsDisplayed)?_c('v-toolbar-items',{staticClass:\"mx-1 align-center\"},[_c('v-avatar',{staticClass:\"bigram\",attrs:{\"size\":\"30\",\"title\":_vm.myOrganizationName},on:{\"click\":_vm.editSharing}},[(_vm.myOrganizationIconPath !== null)?_c('v-img',{attrs:{\"src\":_vm.myOrganizationIconPath}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentList.Owned && !_vm.specialRowsDisplayed)?_c('v-toolbar-items',{staticClass:\"align-center\"},[_vm._l((_vm.firstListUsersAccesses),function(access){return _c('bigram',{key:access.Id,staticClass:\"bigram\",attrs:{\"listAccess\":access,\"dense\":\"\"},on:{\"click\":_vm.editSharing}})}),_vm._v(\" \"),(_vm.hasOtherListUsersAccesses)?_c('v-menu',{attrs:{\"max-width\":\"190\",\"open-on-hover\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\",\"close-on-content-click\":\"\",\"open-delay\":\"300\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-avatar',_vm._g({staticClass:\"bigram other-accesses mr-2\",attrs:{\"size\":\"30\"},on:{\"click\":_vm.editSharing}},on),[_c('span',{staticClass:\"primary--text font-weight-bold\"},[_vm._v(_vm._s(\"+\" + _vm.otherListUsersAccessesCount))])])]}}],null,false,1986365358)},[_vm._v(\" \"),_c('v-sheet',_vm._l((_vm.otherListUsersAccesses),function(access){return _c('bigram',{key:access.Id,staticClass:\"bigram ma-1\",attrs:{\"listAccess\":access,\"dense\":\"\"},on:{\"click\":_vm.editSharing}})}),1)],1):_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.externalAccessAllowed && _vm.currentList.Owned && !_vm.specialRowsDisplayed)?_c('v-toolbar-items',{staticClass:\"mx-1 align-center\"},[_c('v-avatar',{staticClass:\"bigram\",attrs:{\"size\":\"30\",\"color\":\"primary\",\"title\":_vm.$t('SharingBar_AllowPublicToolTip')}},[_c('v-icon',{staticClass:\"white--text\"},[_vm._v(\"fal fa-globe\")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentList.Owned && !_vm.currentList.LoadedByReadOnlyMember && !_vm.specialRowsDisplayed)?_c('v-toolbar-items',[_c('v-row',{attrs:{\"align-content\":\"center\"}},[_c('v-col',[(_vm.isListShared)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"elevation\":\"0\",\"color\":\"secondary\"},on:{\"click\":_vm.addNewGuests}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SharingBar_InviteMoreGuests'))+\"\\n \")]):_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"secondary\",\"small\":\"\",\"elevation\":\"0\"},on:{\"click\":_vm.addNewGuests}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SharingBar_StartSharing'))+\"\\n \")])],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-toolbar-items',{staticClass:\"mr-2\"},[_c('v-row',{attrs:{\"align-content\":\"center\"}},[_c('v-col',[(_vm.obsoleteFilters)?_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"outlined\":\"\",\"text\":\"\"},on:{\"click\":_vm.restoreFilters}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-redo\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SharingBar_RestoreFilters'))+\"\\n \")],1):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('v-toolbar-items',[_c('v-row',{attrs:{\"align-content\":\"center\"}},[_c('v-col',[(_vm.canChooseColor)?_c('color-picker',{on:{\"change\":_vm.onColorSelected},model:{value:(_vm.selectedColor),callback:function ($$v) {_vm.selectedColor=$$v},expression:\"selectedColor\"}},[_c('v-chip',{staticClass:\"my-2 mr-2\",attrs:{\"outlined\":\"\",\"label\":\"\",\"link\":\"\",\"color\":\"primary\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/palette-blue.svg\"),\"contain\":\"\",\"height\":\"20\",\"width\":\"20\"}})],1)],1):_vm._e()],1)],1)],1),_vm._v(\" \"),(_vm.canRequestAnalysis)?_c('v-toolbar-items',[_c('v-chip',{staticClass:\"my-2 mr-2 indicator\",attrs:{\"color\":_vm.analysisChipColor,\"outlined\":\"\",\"label\":\"\"},on:{\"click\":_vm.onListAnalysisChipClicked}},[[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.analysisIcon))]),_vm._v(\" \"),_c('span',{staticClass:\"indicator--label\"},[_vm._v(_vm._s(_vm.analysisLabel))])]],2),_vm._v(\" \"),_c('list-analysis-dialog',{on:{\"requestAnalysis\":_vm.onAnalysisRequested}})],1):_vm._e(),_vm._v(\" \"),_c('v-toolbar-items',{staticClass:\"mr-5\"},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-chip',{staticClass:\"my-2 mr-2 indicator\",attrs:{\"outlined\":\"\",\"label\":\"\",\"color\":\"primary\"}},[[_c('div',_vm._g({staticClass:\"row-groupby\"},on),[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fasl fa-table-pivot\")]),_vm._v(\" \"),_c('span',{staticClass:\"indicator--label\",attrs:{\"title\":_vm.rowGroupsTooltipText}},[_vm._v(_vm._s(_vm.rowGroupsLabel))])],1),_vm._v(\" \"),(_vm.canClearRowGroups)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\",\"text\":\"\",\"title\":_vm.clearRowGroupsTooltipText},on:{\"click\":_vm.clearRowGroups}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-times\")])],1):_vm._e()]],2)]}}]),model:{value:(_vm.groupMenuOpened),callback:function ($$v) {_vm.groupMenuOpened=$$v},expression:\"groupMenuOpened\"}},[_vm._v(\" \"),_c('v-card',{staticClass:\"group-menu--card\"},[_c('v-card-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SharingBar_NoRowGroupLabel'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),(!_vm.$vuetify.breakpoint.mobile)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('SharingBar_GroupMenu_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.closeGroupMenu}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SharingBar_GroupMenuDescription'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"columns-treeview pa-0 ma-0\"},_vm._l((_vm.currentListColumnsForRowGrouping),function(column){return _c('v-row',{key:column.SortOrder,staticClass:\"pa-0 ma-0\",attrs:{\"no-gutters\":\"\"},on:{\"click\":function($event){return _vm.toggleRowGroupColumnSelected(column)}}},[_c('v-col',{staticClass:\"columns-treeview--checkbox ml-1\",attrs:{\"cols\":\"1\"}},[(_vm.isRowGroupColumnSelected(column))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fa-square-check\")]):_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-square\")])],1),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(column.Name)+\"\\n \")])],1)}),1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.clearRowGroups}},[_vm._v(_vm._s(_vm.$t('SharingBar_ClearRowGroups')))])],1)],1)],1),_vm._v(\" \"),_c('v-chip',{staticClass:\"my-2 mr-2 indicator\",attrs:{\"outlined\":\"\",\"label\":\"\",\"color\":\"primary\"}},[[_vm._v(\"\\n \"+_vm._s(_vm.rowsCountLabel)+\"\\n \"),(_vm.canClearRowsFilter)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\",\"text\":\"\",\"title\":_vm.clearFiltersTooltipText},on:{\"click\":_vm.clearFilters}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-times\")])],1):_vm._e()]],2),_vm._v(\" \"),(_vm.canClearHiddenColumns)?_c('v-chip',{staticClass:\"my-2 mr-2 indicator\",attrs:{\"outlined\":\"\",\"label\":\"\",\"color\":\"primary\"}},[[_vm._v(\" \\n \"+_vm._s(_vm.columnsCountLabel)+\"\\n \"),_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\",\"text\":\"\",\"title\":_vm.clearHiddenColumnsTooltipText},on:{\"click\":_vm.clearHiddenColumns}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-times\")])],1)]],2):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Action, getModule, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport store from \"@/modules/Store\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport * as API from \"@/api/Api\";\r\nimport { Utils } from \"@/utils/Utilities\";\r\n\r\n@Module({ dynamic: true, store: store, name: 'ListStore'})\r\nexport class ListStore extends VuexModule {\r\n\r\n /** Getters **/\r\n currentList: RowShare.List | null = null;\r\n currentAccesses: Array | null = null;\r\n\r\n /** Mutations **/\r\n @Mutation\r\n loadCurrentListIntoStore(list: RowShare.List): void {\r\n this.currentList = list;\r\n }\r\n\r\n @Mutation\r\n loadCurrentListAccessesIntoStore(accesses: Array): void {\r\n this.currentAccesses = accesses;\r\n }\r\n\r\n @Mutation\r\n updateListAccess(access: RowShare.ListAccess): void {\r\n if(!access || !this.currentAccesses){\r\n return;\r\n }\r\n let accessIndex = this.currentAccesses?.findIndex(a => a.Id == access.Id);\r\n if(!Utils.isNumber(accessIndex) || accessIndex < 0){\r\n this.currentAccesses?.push(access);\r\n }\r\n else\r\n {\r\n this.currentAccesses[accessIndex] = access;\r\n }\r\n }\r\n\r\n @Mutation\r\n removeListAccess(access: RowShare.ListAccess): void {\r\n if(!access || !this.currentAccesses){\r\n return;\r\n }\r\n let accessIndex = this.currentAccesses.findIndex(a => a.Id == access.Id);\r\n if(Utils.isNumber(accessIndex) && accessIndex >= 0){\r\n this.currentAccesses.splice(accessIndex, 1);\r\n }\r\n }\r\n\r\n /** Actions **/\r\n @Action({rawError: true})\r\n async refreshCurrentList(listId: string) {\r\n let list = await API.List.load(listId);\r\n this.context.commit('loadCurrentListIntoStore', list);\r\n }\r\n\r\n @Action({rawError: true})\r\n async refreshCurrentAccesses(listId: string) {\r\n let accesses = await API.ListAccess.loadByList(listId);\r\n this.context.commit('loadCurrentListAccessesIntoStore', accesses);\r\n }\r\n\r\n @Action({rawError: true})\r\n async saveListAccess(payload: {access: RowShare.ListAccess, sendNotification: boolean}) {\r\n if(!payload || ! payload.access){\r\n return;\r\n }\r\n let updatedAccess = await API.ListAccess.save(payload.access, payload.sendNotification);\r\n this.context.commit('updateListAccess', updatedAccess);\r\n }\r\n\r\n @Action({rawError: true})\r\n async saveList(list: RowShare.List) {\r\n if(!list){\r\n return;\r\n }\r\n let updatedList = await API.List.save(list);\r\n this.context.commit('loadCurrentListIntoStore', updatedList);\r\n }\r\n\r\n @Action({rawError: true})\r\n async deleteListAccess(access: RowShare.ListAccess) {\r\n await API.ListAccess.remove(access);\r\n this.context.commit('removeListAccess', access);\r\n }\r\n}\r\n\r\nexport const ListModule = getModule(ListStore);","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({},on),[_vm._t(\"default\")],2)]}}],null,true)},[_vm._v(\" \"),_c('v-card',[_c('v-color-picker',{attrs:{\"value\":_vm.selectedValue,\"hide-sliders\":\"\",\"hide-canvas\":\"\",\"hide-inputs\":\"\",\"hide-mode-switch\":\"\",\"show-swatches\":\"\",\"swatches\":_vm.swatches,\"swatches-max-height\":\"500\"},on:{\"update:color\":_vm.colorUpdate}}),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.clearColor}},[_vm._v(_vm._s(_vm.$t('ColorPicker_ClearColor')))])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, ModelSync } from 'vue-property-decorator';\r\n\r\n@Component({name: 'ColorPicker'})\r\nexport default class ColorPicker extends Vue {\r\n \r\n @ModelSync('value', 'change') selectedColorName!: string;\r\n\r\n swatches: any = [];\r\n\r\n constructor() {\r\n super();\r\n this.swatches = [\r\n [this.$vuetify.theme.currentTheme.color0, this.$vuetify.theme.currentTheme.color1, this.$vuetify.theme.currentTheme.color2, this.$vuetify.theme.currentTheme.color3, \r\n this.$vuetify.theme.currentTheme.color4, this.$vuetify.theme.currentTheme.color5, this.$vuetify.theme.currentTheme.color6, this.$vuetify.theme.currentTheme.color7],\r\n [this.$vuetify.theme.currentTheme.color8, this.$vuetify.theme.currentTheme.color9, this.$vuetify.theme.currentTheme.color10, this.$vuetify.theme.currentTheme.color11,\r\n this.$vuetify.theme.currentTheme.color12, this.$vuetify.theme.currentTheme.color13, this.$vuetify.theme.currentTheme.color14, this.$vuetify.theme.currentTheme.color15],\r\n [this.$vuetify.theme.currentTheme.color16, this.$vuetify.theme.currentTheme.color17, this.$vuetify.theme.currentTheme.color18, this.$vuetify.theme.currentTheme.color19,\r\n this.$vuetify.theme.currentTheme.color20, this.$vuetify.theme.currentTheme.color21, this.$vuetify.theme.currentTheme.color22, this.$vuetify.theme.currentTheme.color23],\r\n [this.$vuetify.theme.currentTheme.color24, this.$vuetify.theme.currentTheme.color25, this.$vuetify.theme.currentTheme.color26, this.$vuetify.theme.currentTheme.color27, \r\n this.$vuetify.theme.currentTheme.color28, this.$vuetify.theme.currentTheme.color29, this.$vuetify.theme.currentTheme.color30, this.$vuetify.theme.currentTheme.color31]\r\n ];\r\n }\r\n\r\n get selectedValue(): string {\r\n if(!this.selectedColorName) {\r\n return '#FFFFFF';\r\n }\r\n var color = this.$vuetify.theme.currentTheme[this.selectedColorName];\r\n if (color) {\r\n return color;\r\n } else {\r\n return \"#FFFFFF\";\r\n }\r\n }\r\n\r\n set selectedValue(value: string) {\r\n let colorClass = '';\r\n if(!value) {\r\n this.selectedColorName = '';\r\n return;\r\n }\r\n Object.keys(this.$vuetify.theme.currentTheme).forEach((key) => {\r\n if (this.$vuetify.theme.currentTheme[key] == value.toUpperCase()) {\r\n if(colorClass != key) {\r\n colorClass = key;\r\n }\r\n }\r\n });\r\n this.selectedColorName = colorClass;\r\n }\r\n\r\n clearColor() {\r\n this.selectedValue = \"\";\r\n }\r\n\r\n colorUpdate(event: any) {\r\n if(this.selectedValue === event.hex) {\r\n return;\r\n }\r\n this.selectedValue = event.hex;\r\n this.$emit('change');\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColorPicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColorPicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColorPicker.vue?vue&type=template&id=4b965a84&\"\nimport script from \"./ColorPicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColorPicker.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"600\"},on:{\"click:outside\":_vm.closeDialog},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ListAnalysisDialog_Title\"))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"href\":_vm.$t('ListAnalysisDialog_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_HelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\"},on:{\"click\":_vm.closeDialog}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ListAnalysisDialog_Description\"))+\"\\n \")]),_vm._v(\" \"),(_vm.errorMessage)?_c('v-card-text',[_c('span',{staticClass:\"error--text\"},[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),_vm._v(\" \"),_c('v-card-actions',[_c('v-checkbox',{staticClass:\"pt-0 mt-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"color\":\"primary\",\"label\":_vm.$t('ListAnalysisDialog_Confirm')},model:{value:(_vm.userConfirmed),callback:function ($$v) {_vm.userConfirmed=$$v},expression:\"userConfirmed\"}}),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.closeDialog}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"Common_Cancel\"))+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.userConfirmed},on:{\"click\":_vm.onListAnalysisRequest}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ListAnalysisDialog_RequestAnalysis\"))+\"\\n \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport * as Api from '@/api/Api';\r\nimport { ApiUtils } from '@/api/ApiUtils';\r\n\r\n@Component({name: \"ListAnalysisDialog\"})\r\nexport default class ListAnalysisDialog extends Vue {\r\n\r\n listId: string = \"\";\r\n\r\n showDialog: boolean = false;\r\n userConfirmed: boolean = false;\r\n errorMessage: string = \"\";\r\n\r\n created() {\r\n EventBus.$on(RowShare.Event.LISTANALYSIS_REQUEST, (params: RowShare.listAnalysisRequestEventParams) => this.init(params));\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off(RowShare.Event.LISTANALYSIS_REQUEST);\r\n }\r\n\r\n init(params: RowShare.listAnalysisRequestEventParams) {\r\n this.listId = params.listId;\r\n this.showDialog = true;\r\n }\r\n\r\n async onListAnalysisRequest() {\r\n let result = await Api.List.requestListAnalysis(this.listId);\r\n if (result?.IsValid) {\r\n let job = result.Value;\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: this.$i18n.t('ListAnalysisDialog_JobCreated').toString(),\r\n autoHide: true,\r\n type: RowShare.NotificationType.success\r\n });\r\n this.$emit('requestAnalysis', job);\r\n setTimeout(() => {this.closeDialog()}, 0);\r\n } else {\r\n if(result != null && (result?.Errors.length ?? 0) > 0) {\r\n this.errorMessage = ApiUtils.GetApiErrorDescription(result.Errors[0]);\r\n }\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.userConfirmed = false;\r\n this.showDialog = false;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListAnalysisDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListAnalysisDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListAnalysisDialog.vue?vue&type=template&id=60a5f7fc&\"\nimport script from \"./ListAnalysisDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListAnalysisDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListAnalysisDialog.vue?vue&type=style&index=0&id=60a5f7fc&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","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport Bigram from \"@/views/components/Bigram.vue\";\r\nimport { ListModule } from \"@/store/ListStore\";\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport ListDisplayModeVM from \"@/viewModels/Table/listDisplayModeVM\";\r\nimport ListVM from \"@/viewModels/Table/listVM\";\r\nimport RowVM from \"@/viewModels/Table/rowVM\";\r\nimport { UserModule } from \"@/store/UserStore\";\r\nimport ColorPicker from \"@/views/components/ColorPicker.vue\";\r\nimport ListAnalysisDialog from \"@/views/Table/ListActions/ListAnalysisDialog.vue\";\r\nimport { Job } from \"@/api/Job\";\r\nimport { JobStatus } from \"@/models/RowShare\";\r\n\r\n@Component({\r\n name: \"SharingBar\",\r\n components: { Bigram, ColorPicker, ListAnalysisDialog }\r\n})\r\nexport default class SharingBar extends Vue {\r\n @Prop() listVM!: ListVM;\r\n @Prop() displayModeVM!: ListDisplayModeVM;\r\n\r\n totalRowsCount: number | null = null;\r\n visibleRowsCount: number | null = null;\r\n totalColumnsCount: number | null = null;\r\n visibleColumnsCount: number | null = null;\r\n rowGroupsCount: number | null = null;\r\n rowGroupsColNames: string[] = [];\r\n isFiltered: boolean = false;\r\n cellSelected: boolean = false;\r\n selectedColor: string = \"\";\r\n groupMenuOpened: boolean = false;\r\n selectedGroupColumnIds: string[] = [];\r\n obsoleteFilters: boolean = false;\r\n currentAnalysis: RowShare.Job | null = null;\r\n\r\n\r\n created() { \r\n EventBus.$on(RowShare.Event.GRID_INFOS_CHANGED, (displayModeVM: ListDisplayModeVM) => this.onGridInfosChanged(displayModeVM));\r\n EventBus.$on(RowShare.Event.GRID_SELECTION_CHANGED, (displayModeVM: ListDisplayModeVM) => this.onGridSelectionChanged(displayModeVM));\r\n EventBus.$on(RowShare.Event.ROW_MODIFIED, (rowVM: RowVM) => this.obsoleteFilters = this.isFiltered);\r\n EventBus.$on(RowShare.Event.LISTACCESSES_CHANGED, this.onListAccessesChanged);\r\n }\r\n\r\n beforeMount() {\r\n this.onListAccessesChanged();\r\n this.onGridInfosChanged(this.displayModeVM);\r\n if(this.listVM.list) {\r\n this.currentAnalysis = null;\r\n Job.loadLastAnalysisJob(this.listVM.list.Id)\r\n .then((result) => {\r\n if(result && result.IsValid && result.Value) {\r\n if(result.Value.Status !== JobStatus.Finished) {\r\n this.currentAnalysis = new RowShare.Job();\r\n Object.assign(this.currentAnalysis, result.Value);\r\n this.currentAnalysis.updateStatusAsync(5000);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n \r\n beforeDestroy(){\r\n EventBus.$off([\r\n RowShare.Event.GRID_INFOS_CHANGED, \r\n RowShare.Event.ROW_MODIFIED,\r\n RowShare.Event.LISTACCESSES_CHANGED,\r\n RowShare.Event.GRID_SELECTION_CHANGED\r\n ]);\r\n if(this.currentAnalysis) {\r\n RowShare.Job.clearAllJobUpdateTimeout();\r\n }\r\n }\r\n\r\n onGridInfosChanged(displayModeVM: ListDisplayModeVM) {\r\n this.refreshIndicators(displayModeVM);\r\n }\r\n\r\n onGridSelectionChanged(displayModeVM: ListDisplayModeVM) {\r\n this.cellSelected = displayModeVM.cellSelected;\r\n }\r\n\r\n onColorSelected() {\r\n if(this.selectedColor == undefined) {\r\n return;\r\n }\r\n\r\n EventBus.$emit(RowShare.Event.GRID_CHOOSE_CELL_COLOR, this.selectedColor);\r\n }\r\n\r\n closeGroupMenu() {\r\n if(this.groupMenuOpened) {\r\n this.groupMenuOpened = false;\r\n }\r\n }\r\n\r\n onListAnalysisChipClicked() {\r\n if(this.currentAnalysis?.Status === RowShare.JobStatus.AnalysisDone) {\r\n this.currentAnalysis.Status = RowShare.JobStatus.Finished;\r\n Job.save(this.currentAnalysis)\r\n .then((result) => {\r\n if(result && result.IsValid) {\r\n EventBus.$emit(RowShare.Event.LISTANALYSIS_SHOWRESULTS, result.Value);\r\n }\r\n });\r\n }\r\n else {\r\n if(this.listVM?.list && (!this.currentAnalysis || this.currentAnalysis.Status === RowShare.JobStatus.Finished \r\n || this.currentAnalysis.Status === RowShare.JobStatus.Error)) {\r\n EventBus.$emit(RowShare.Event.LISTANALYSIS_REQUEST, {listId: this.listVM.list.Id});\r\n }\r\n }\r\n }\r\n\r\n onAnalysisRequested(job: RowShare.Job) {\r\n if(job) {\r\n RowShare.Job.clearAllJobUpdateTimeout();\r\n this.currentAnalysis = new RowShare.Job();\r\n Object.assign(this.currentAnalysis, job); \r\n this.currentAnalysis.updateStatusAsync(5000);\r\n }\r\n }\r\n\r\n get canRequestAnalysis() {\r\n // Don't show analysis on PROD or OnPrem\r\n if(!document.location.hostname.includes('beta') && !document.location.hostname.includes('rowsharedev')) {\r\n return false;\r\n }\r\n if (this.isOnPrem)\r\n return false;\r\n\r\n return this.listVM.list?.Owned ?? false;\r\n }\r\n\r\n get isOnPrem(){\r\n return OnPremModule.isOnPrem;;\r\n }\r\n\r\n get analysisIcon(): string {\r\n var res: string = \"fal fa-robot\";\r\n if(this.currentAnalysis && this.currentAnalysis.Status !== JobStatus.Finished) {\r\n res += \" fa-fade\";\r\n }\r\n return res;\r\n }\r\n\r\n get analysisChipColor(): string {\r\n if(!this.currentAnalysis) {\r\n return \"primary\";\r\n }\r\n switch(this.currentAnalysis.Status) {\r\n case JobStatus.Error: {\r\n return \"error\";\r\n }\r\n case JobStatus.AnalysisDone: {\r\n return \"success\";\r\n }\r\n default: {\r\n return \"primary\";\r\n }\r\n }\r\n }\r\n\r\n get analysisLabel(): string {\r\n if(this.currentAnalysis != null && this.currentAnalysis.Status != RowShare.JobStatus.Finished) {\r\n return RowShare.Job.getStatusString(this.currentAnalysis.Status);\r\n }\r\n return this.$i18n.t(\"SharingBar_RunListAnalysisBtnLabel\").toString();\r\n }\r\n\r\n get canChooseColor() {\r\n return (this.cellSelected && !this.specialRowsDisplayed && this.isLoggedIn);\r\n }\r\n\r\n get isLoggedIn() {\r\n var user = UserModule.CurrentUser;\r\n return user != null && !user.IsAnonymous;\r\n }\r\n\r\n get currentListColumnsForRowGrouping() {\r\n return this.listVM.columns?.filter((c) => c.isRowGroupingEnabled);\r\n }\r\n\r\n get specialRowsDisplayed(): boolean {\r\n return this.listVM.specialRowsDisplayed;\r\n }\r\n\r\n get currentList(): RowShare.List | null {\r\n return ListModule.currentList;\r\n }\r\n\r\n get externalAccessAllowed(): boolean {\r\n if(!ListModule.currentList) {\r\n return false;\r\n }\r\n return ListModule.currentList.AllowPublic;\r\n }\r\n\r\n get currentAccesses(): RowShare.ListAccess[] | null {\r\n return ListModule.currentAccesses;\r\n }\r\n\r\n get listUsersAccesses() {\r\n if(!this.currentAccesses) {\r\n return null\r\n }\r\n return this.currentAccesses.filter(acc => !acc.IsMyOrganization);\r\n }\r\n\r\n get firstListUsersAccesses() {\r\n if(!this.listUsersAccesses) {\r\n return null;\r\n }\r\n if(this.listUsersAccesses.length <= 6) {\r\n return this.listUsersAccesses;\r\n }\r\n\r\n return [this.listUsersAccesses[0], this.listUsersAccesses[1], this.listUsersAccesses[2], this.listUsersAccesses[3], this.listUsersAccesses[4]];\r\n }\r\n\r\n get otherListUsersAccesses() {\r\n if(!this.listUsersAccesses) {\r\n return null;\r\n }\r\n\r\n return this.listUsersAccesses.filter(acc => (this.firstListUsersAccesses?.find(ca => ca.Id == acc.Id) ?? null) == null );\r\n }\r\n\r\n get otherListUsersAccessesCount() {\r\n if(!this.otherListUsersAccesses) {\r\n return 0;\r\n }\r\n return this.otherListUsersAccesses.length;\r\n }\r\n\r\n get hasOtherListUsersAccesses() {\r\n return this.otherListUsersAccessesCount > 0;\r\n }\r\n\r\n get hasAdvancedListAccesses() {\r\n if(!this.currentAccesses) {\r\n return false;\r\n }\r\n return this.currentAccesses.findIndex(acc => acc.isAdvancedAccess) > -1;\r\n }\r\n\r\n get listMyOrganizationAccess() {\r\n if(!this.currentAccesses) {\r\n return null\r\n }\r\n return this.currentAccesses.filter(acc => acc.IsMyOrganization);\r\n }\r\n\r\n get myOrganizationIconPath() {\r\n if(!this.listMyOrganizationAccess) {\r\n return \"\";\r\n }\r\n let path = this.listMyOrganizationAccess[0]?.Guest?.IconPath\r\n if(!path) {\r\n return \"\";\r\n }\r\n if(!path.startsWith(\"/\")) {\r\n path = \"/\" + path + '?_ssb_img=S;w:40;h:40';\r\n }\r\n else {\r\n path = null;\r\n }\r\n return path;\r\n }\r\n\r\n get clearFiltersTooltipText() {\r\n return this.$i18n.t('SharingBar_ClearFiltersTooltipText').toString()\r\n }\r\n\r\n get clearHiddenColumnsTooltipText() {\r\n return this.$i18n.t('SharingBar_ClearHiddenColumnsTooltipText').toString()\r\n }\r\n\r\n get clearRowGroupsTooltipText() {\r\n return this.$i18n.t('SharingBar_ClearRowGroups').toString();\r\n }\r\n\r\n addNewGuests() {\r\n if(this.listVM.list?.LoadedByReadOnlyMember)\r\n return;\r\n\r\n EventBus.$emit(RowShare.Event.SHOW_SIDEPANEL_SHARING, {listId: this.listVM.list?.Id, addGuest: true,\r\n advancedMode: this.hasAdvancedListAccesses});\r\n }\r\n\r\n onListAccessesChanged() {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n ListModule.refreshCurrentAccesses(this.listVM.list.Id);\r\n ListModule.refreshCurrentList(this.listVM.list.Id);\r\n }\r\n\r\n editSharing() {\r\n if(this.listVM.list?.LoadedByReadOnlyMember)\r\n return;\r\n \r\n EventBus.$emit(RowShare.Event.SHOW_SIDEPANEL_SHARING, {listId: this.listVM.list?.Id, addGuest: false,\r\n advancedMode: this.hasAdvancedListAccesses});\r\n }\r\n\r\n get isListShared(): boolean {\r\n if(this.currentList) {\r\n return (this.currentList.AllowPublic || ((this.currentAccesses?.length ?? 0) > 0));\r\n }\r\n return false;\r\n }\r\n\r\n get myOrganizationName(): string {\r\n if(!this.listMyOrganizationAccess){\r\n return \"\";\r\n }\r\n if(this.listMyOrganizationAccess[0]?.Guest?.Name)\r\n {\r\n return this.listMyOrganizationAccess[0].Guest.Name;\r\n }\r\n return \"\";\r\n }\r\n\r\n get sharedWithMyOrganization(): boolean {\r\n return (this.listMyOrganizationAccess?.length ?? 0) > 0;\r\n }\r\n\r\n get rowsCountLabel() {\r\n if(!this.totalRowsCount) {\r\n return this.$i18n.t('SharingBar_NoRowsLabel');\r\n }\r\n else if(this.totalRowsCount === 1) {\r\n return this.$i18n.t('SharingBar_OneRowLabel');\r\n }\r\n else if(this.totalRowsCount === this.visibleRowsCount) {\r\n return this.$i18n.t('SharingBar_AllRowsLabel', {totalRowsCount: this.totalRowsCount});\r\n }\r\n else { \r\n return this.$i18n.t('SharingBar_RowsCountLabel', {visibleRowsCount: this.visibleRowsCount, totalRowsCount: this.totalRowsCount});\r\n }\r\n }\r\n\r\n get columnsCountLabel() {\r\n if(!this.totalColumnsCount) {\r\n return \"\"; // Should not occur\r\n }\r\n if(this.totalColumnsCount === 1) {\r\n return this.$i18n.t('SharingBar_OneColumnLabel');\r\n }\r\n else if(this.totalColumnsCount === this.visibleColumnsCount) {\r\n return this.$i18n.t('SharingBar_AllColumnsLabel', {totalColumnsCount: this.totalColumnsCount});\r\n }\r\n else {\r\n return this.$i18n.t('SharingBar_ColumnsCountLabel', {visibleColumnsCount: this.visibleColumnsCount, totalColumnsCount: this.totalColumnsCount});\r\n }\r\n }\r\n\r\n get rowGroupsLabel() {\r\n if(!this.rowGroupsCount || this.rowGroupsCount == 0) {\r\n return this.$i18n.t('SharingBar_NoRowGroupLabel');\r\n }\r\n if(this.rowGroupsCount === 1) {\r\n return this.$i18n.t('SharingBar_OneRowGroupLabel', this.rowGroupsColNames);\r\n }\r\n else {\r\n return this.$i18n.t('SharingBar_RowGroupsCountLabel', [this.rowGroupsCount]);\r\n }\r\n }\r\n\r\n get rowGroupsTooltipText() {\r\n if(!this.rowGroupsCount) {\r\n return \"\";\r\n }\r\n return this.$i18n.t('SharingBar_RowGroupsTooltipText', [this.rowGroupsColNames.join(', ')]);\r\n }\r\n\r\n get canClearRowsFilter() {\r\n return (this.visibleRowsCount ?? 0) < (this.totalRowsCount ?? 0);\r\n }\r\n\r\n get canClearHiddenColumns() {\r\n return (this.visibleColumnsCount ?? 0) < (this.totalColumnsCount ?? 0); \r\n }\r\n\r\n get canClearRowGroups() {\r\n return (this.rowGroupsCount ?? 0) > 0;\r\n }\r\n\r\n refreshIndicators(displayModeVM: ListDisplayModeVM) {\r\n this.$nextTick(() => {\r\n this.totalRowsCount = displayModeVM.totalRowsCount;\r\n this.visibleRowsCount = displayModeVM.visibleRowsCount;\r\n this.totalColumnsCount = displayModeVM.totalColumnsCount;\r\n this.visibleColumnsCount = displayModeVM.visibleColumnsCount;\r\n this.rowGroupsCount = displayModeVM.rowGroupsCount;\r\n this.rowGroupsColNames = displayModeVM.rowGroupsColNames;\r\n this.selectedGroupColumnIds = displayModeVM.getRowGroupColumnsIds() ?? [];\r\n this.obsoleteFilters = (displayModeVM.displayedRowIds != null);\r\n this.isFiltered = displayModeVM.isFiltered;\r\n });\r\n }\r\n\r\n clearFilters() {\r\n EventBus.$emit(RowShare.Event.GRID_CLEAR_FILTERS);\r\n }\r\n\r\n clearRowGroups() {\r\n EventBus.$emit(RowShare.Event.GRID_CLEAR_ROWGROUPS);\r\n this.groupMenuOpened = false;\r\n }\r\n\r\n clearHiddenColumns() {\r\n EventBus.$emit(RowShare.Event.GRID_CLEAR_HIDDENCOLUMNS);\r\n }\r\n\r\n restoreFilters() {\r\n EventBus.$emit(RowShare.Event.RESTORE_FILTERS);\r\n }\r\n\r\n toggleRowGroupColumnSelected(column: RowShare.Column) {\r\n if(!column) {\r\n return;\r\n }\r\n\r\n if(!this.selectedGroupColumnIds.includes(column.Id)) {\r\n this.selectedGroupColumnIds.push(column.Id);\r\n EventBus.$emit(RowShare.Event.GRID_ADD_ROWGROUP, column.Id);\r\n }\r\n else {\r\n var index = this.selectedGroupColumnIds.indexOf(column.Id);\r\n if(index > -1) {\r\n this.selectedGroupColumnIds.splice(index, 1);\r\n }\r\n EventBus.$emit(RowShare.Event.GRID_REMOVE_ROWGROUP, column.Id);\r\n }\r\n }\r\n\r\n isRowGroupColumnSelected(column: RowShare.Column) {\r\n if(!column) {\r\n return false;\r\n }\r\n return this.selectedGroupColumnIds.includes(column.Id);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SharingBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SharingBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SharingBar.vue?vue&type=template&id=44e576f4&scoped=true&\"\nimport script from \"./SharingBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./SharingBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SharingBar.vue?vue&type=style&index=0&id=44e576f4&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 \"44e576f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mb-1 selected-rows-bar-wrapper\"},[_c('v-toolbar',{staticClass:\"lightest--text\",attrs:{\"color\":\"primary\",\"flat\":\"\",\"height\":\"44\",\"align-center\":\"\"}},[_c('v-toolbar-items',{staticClass:\"mx-1 selected-rows-bar--title\"},[_c('span',{staticClass:\"row-count\"},[_vm._v(_vm._s(_vm.selectedRows.length))]),_vm._v(\" \"+_vm._s(_vm.selectedRows.length == 1 ?\n _vm.$t('SelectedRows_SelectedRow') : _vm.$t('SelectedRows_SelectedRows'))+\"\\n \")]),_vm._v(\" \"),_c('v-toolbar-items',[(_vm.canCloneRows)?_c('v-btn',{staticClass:\"lightest--text text-none v-size--default font-weight-regular\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onCloneRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-clone\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_Duplicate'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canAssignRows)?_c('v-btn',{staticClass:\"lightest--text text-none v-size--default font-weight-regular\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onAssignRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-user\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_Assign'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canDeleteRows)?_c('v-btn',{staticClass:\"lightest--text text-none v-size--default font-weight-regular\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onDeleteRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash-alt\")]),_vm._v(\"\\n \"+_vm._s(_vm.deleteRowsButtonLabel)+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canRunRowMerge)?_c('v-btn',{staticClass:\"lightest--text text-none v-size--default font-weight-regular\",class:{ 'premiumfunction-button': !_vm.hasRowMerge },attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onRowMergeClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-file-alt\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_RowMerge'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canCopyMoveRows)?_c('v-btn',{staticClass:\"lightest--text text-none v-size--default font-weight-regular\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onCopyMoveRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-long-arrow-right\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_CopyMove'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canRemindUsers)?_c('v-btn',{staticClass:\"lightest--text v-size--default font-weight-regular\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onRemindUsersClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-paper-plane\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_RemindUsers'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.deletedRowsDisplayed)?_c('v-btn',{staticClass:\"lightest--text v-size--default font-weight-regular\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onRestoreRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash-undo-alt\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_RestoreRows'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canArchiveRows)?_c('v-btn',{staticClass:\"lightest--text v-size--default font-weight-regular\",class:{ 'premiumfunction-button': !_vm.hasArchiveRows },attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onArchiveRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-archive\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_ArchiveRows'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canUnarchiveRows)?_c('v-btn',{staticClass:\"lightest--text v-size--default font-weight-regular\",attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onUnarchiveRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-box-up\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_UnarchiveRows'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canLockRows)?_c('v-btn',{staticClass:\"lightest--text v-size--default font-weight-regular\",class:{ 'premiumfunction-button': !_vm.hasLockRows },attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onLockRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-lock-keyhole\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_LockRows'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.canUnlockRows)?_c('v-btn',{staticClass:\"lightest--text v-size--default font-weight-regular\",class:{ 'premiumfunction-button': !_vm.hasLockRows },attrs:{\"small\":\"\",\"text\":\"\"},on:{\"click\":_vm.onUnlockRowsClicked}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-lock-keyhole-open\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_UnlockRows'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),_c('color-picker',{staticClass:\"ma-0\",on:{\"change\":_vm.onColorSelected},model:{value:(_vm.selectedColor),callback:function ($$v) {_vm.selectedColor=$$v},expression:\"selectedColor\"}},[_c('v-btn',{staticClass:\"lightest--text v-size--default font-weight-regular pa-0\",attrs:{\"height\":\"100%\",\"text\":\"\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/palette-white.svg\"),\"contain\":\"\",\"height\":\"20\",\"width\":\"20\"}})],1)],1)],1)],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"600\"},model:{value:(_vm.isCloneRowsModalOpen),callback:function ($$v) {_vm.isCloneRowsModalOpen=$$v},expression:\"isCloneRowsModalOpen\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_CloneRowsModal_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),(!_vm.isCloningAfterEach && !_vm.isCloningAtBottom)?_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCloseCloneDlg}},[_vm._v(\"fa-times\")]):_vm._e()],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_CloneRowsModal_Description'))+\"\\n \")]),_vm._v(\" \"),(_vm.isCloningAfterEach || _vm.isCloningAtBottom)?_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_CloneRowsModal_Processing'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.hasErrors)?_c('v-card-text',[_c('div',{staticClass:\"rounded-md pa-4 text-left error--text error lighten-2 clone-error\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"error-icon\"},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fal fa-times-circle\")])],1),_vm._v(\" \"),_c('v-col',{staticClass:\"pl-2\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[(_vm.hasApiErrors)?_c('span',[_vm._v(_vm._s(_vm.$t('SelectedRows_CloneRowsModal_ApiErrors')))]):(_vm.cloneErrorMessage)?_c('span',[_vm._v(_vm._s(_vm.$t('SelectedRows_CloneRowsModal_ProcessingError')))]):_vm._e()])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[(_vm.hasApiErrors)?_c('ul',_vm._l((_vm.apiErrors),function(error){return _c('li',{key:error.ExceptionCode},[_vm._v(\"\\n \"+_vm._s(_vm.GetErrorDescription(error))+\"\\n \")])}),0):(_vm.cloneErrorMessage)?_c('span',[_vm._v(_vm._s(_vm.cloneErrorMessage))]):_vm._e()])],1)],1)],1)],1)]):_vm._e(),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),(!_vm.isCloningAtBottom)?_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"disabled\":!_vm.canCloneRowsAfterEach,\"loading\":_vm.isCloningAfterEach},on:{\"click\":_vm.onCloneRowsModalAfterEachClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_CloneRowsModal_UnderEach'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.isCloningAfterEach)?_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"loading\":_vm.isCloningAtBottom},on:{\"click\":_vm.onCloneRowsModalAllAtBottomClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_CloneRowsModal_AllAtBottom'))+\"\\n \")]):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('copy-move-rows-dialog',{attrs:{\"currentList\":_vm.currentList,\"showDialog\":_vm.isCopyMoveRowsModalOpen,\"rows\":_vm.selectedRows,\"displayModeVM\":_vm.displayModeVM},on:{\"cancel\":_vm.closeAndResetAllModals}}),_vm._v(\" \"),_c('remind-users-dialog',{attrs:{\"currentList\":_vm.currentList,\"showDialog\":_vm.isRemindUsersModalOpen,\"rows\":_vm.selectedRowVMs,\"displayModeVM\":_vm.displayModeVM},on:{\"cancel\":_vm.closeAndResetAllModals}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"700\"},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.dialogOpened),callback:function ($$v) {_vm.dialogOpened=$$v},expression:\"dialogOpened\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"px-5\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CopyMoveRowsDialog_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('CopyMoveRowsDialog_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n \"+_vm._s(_vm.$t('CopyMoveRowsDialog_Description'))+\"\\n \")]),_vm._v(\" \"),(_vm.hasErrors)?_c('v-card-text',[_c('div',{staticClass:\"rounded-md pa-4 text-left error--text error lighten-2 comparaison-error\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"error-icon\"},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fal fa-times-circle\")])],1),_vm._v(\" \"),_c('v-col',{staticClass:\"pl-2\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[(_vm.hasComparaisonErrors)?_c('span',[_vm._v(_vm._s(_vm.$t('CopyMoveRowsDialog_ComparaisonErrors')))]):(_vm.processingError)?_c('span',[_vm._v(_vm._s(_vm.$t('CopyMoveRowsDialog_ProcessingError')))]):_vm._e()])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[(_vm.hasComparaisonErrors)?_c('ul',_vm._l((_vm.comparaisonErrors),function(error){return _c('li',{key:error.ExceptionCode},[_vm._v(\"\\n \"+_vm._s(_vm.GetErrorDescription(error))+\"\\n \")])}),0):(_vm.processingError)?_c('span',[_vm._v(_vm._s(_vm.processingError))]):_vm._e()])],1)],1)],1)],1)]):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('v-autocomplete',{attrs:{\"loading\":_vm.loadingSiblings,\"disabled\":_vm.processingTransfer,\"outlined\":\"\",\"label\":_vm.siblingsLabel,\"items\":_vm.targetLists,\"item-text\":\"Path\",\"item-value\":\"Id\"},model:{value:(_vm.targetListId),callback:function ($$v) {_vm.targetListId=$$v},expression:\"targetListId\"}})],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"color\":\"primary\",\"loading\":_vm.processingCopy,\"disabled\":_vm.copyDisabled},on:{\"click\":function($event){return _vm.copyMoveRows(false)}}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"fal fa-clone\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('CopyMoveRowsDialog_Copy'))+\"\\n \")],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"loading\":_vm.processingMove,\"disabled\":_vm.moveDisabled},on:{\"click\":function($event){return _vm.copyMoveRows(true)}}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"fal fa-cut\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('CopyMoveRowsDialog_Move'))+\"\\n \")],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\r\nimport * as models from '@/models/RowShare';\r\nimport * as api from '@/api/Api';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport { ApiUtils, RowShareException } from '@/api/ApiUtils';\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport ListDisplayModeVM from '@/viewModels/Table/listDisplayModeVM';\r\nimport { RouterUtils } from '@/modules/Router';\r\nimport { ApiResult } from '@/models/ApiResult';\r\n\r\n@Component({ name: 'CopyMoveRowsDialog'})\r\nexport default class CopyMoveRowsDialog extends Vue {\r\n @Prop() rows!: agGrid.IRowNode[];\r\n @Prop() showDialog!: boolean;\r\n @Prop() currentList!: models.List;\r\n @Prop() displayModeVM!: ListDisplayModeVM;\r\n\r\n dialogOpened: boolean = false;\r\n loadingSiblings: boolean = true;\r\n targetLists: models.ListThumbnailInfo[] = [];\r\n targetListId: string = \"\";\r\n comparaisonErrors: models.ApiError[] | null = null;\r\n processingCopy: boolean = false;\r\n processingMove: boolean = false;\r\n processingError: string = \"\";\r\n\r\n get processingTransfer(): boolean {\r\n return this.processingCopy || this.processingMove;\r\n }\r\n \r\n get hasErrors(): boolean {\r\n return (this.hasComparaisonErrors || this.processingError != \"\");\r\n }\r\n\r\n get hasComparaisonErrors(): boolean {\r\n return (this.comparaisonErrors?.length ?? 0) > 0;\r\n }\r\n\r\n get siblingsLabel(): string {\r\n return this.$i18n.t('CopyMoveRowsDialog_TargetList').toString();\r\n }\r\n\r\n get copyDisabled(): boolean {\r\n return (this.targetListId == \"\") || this.processingMove;\r\n }\r\n\r\n get moveDisabled(): boolean {\r\n return (this.targetListId == \"\") || this.processingCopy || this.selectionHasLockedRows;\r\n }\r\n\r\n get rowIds(): string[] {\r\n let rowIds: string[] = [];\r\n for(let i = 0; i < this.rows.length; ++i){\r\n let rowVM = (this.rows[i].data);\r\n if(rowVM.rsRow.Id) {\r\n rowIds.push(rowVM.rsRow.Id)\r\n }\r\n }\r\n return rowIds;\r\n }\r\n\r\n get selectionHasLockedRows(): boolean {\r\n if(!this.rows || this.rows.length === 0) {\r\n return false;\r\n }\r\n return this.rows.findIndex(r => (r.data)?.isLocked ?? -1) > -1;\r\n }\r\n\r\n\r\n @Watch('showDialog')\r\n initDialog() {\r\n this.dialogOpened = this.showDialog;\r\n this.processingCopy = false;\r\n this.processingMove = false;\r\n this.processingError = \"\";\r\n this.targetListId = \"\";\r\n this.targetLists = [];\r\n this.comparaisonErrors = [];\r\n if(this.showDialog) {\r\n this.loadingSiblings = true;\r\n api.ListTree.loadSiblings(this.currentList.Id)\r\n .then((siblings: models.ListThumbnailInfo[] | null) => {\r\n if(siblings) {\r\n this.targetLists = siblings.filter(s => s.Id != this.currentList.Id && !s.IsInRecycleBin);\r\n }\r\n })\r\n .finally(() => {\r\n this.loadingSiblings = false;\r\n });\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.dialogOpened = false;\r\n this.$emit('cancel');\r\n }\r\n\r\n copyMoveRows(move: boolean) {\r\n this.processingCopy = !move;\r\n this.processingMove = move;\r\n this.comparaisonErrors = [];\r\n\r\n this.processCopyMoveRows(move).then((result: ApiResult | null) => {\r\n if(result && result.IsValid) {\r\n if(move) {\r\n var rowVMs = this.rows.map(node => node.data);\r\n EventBus.$emit(models.Event.ROW_DELETE, rowVMs);\r\n }\r\n else {\r\n this.displayModeVM.deselectAllRows();\r\n }\r\n this.onCancel();\r\n } else {\r\n if(!result)\r\n this.processingError = this.$i18n.t('CopyMoveRowsDialog_ProcessingError').toString();\r\n else\r\n this.comparaisonErrors = result.Errors;\r\n }\r\n this.processingCopy = false;\r\n this.processingMove = false;\r\n }).catch((exc: RowShareException) => {\r\n this.processingError = exc.message;\r\n }).finally(() => {\r\n this.processingMove = false;\r\n this.processingCopy = false;\r\n });\r\n }\r\n\r\n async processCopyMoveRows(move: boolean) : Promise | null> {\r\n if(move) {\r\n const moveBlobInsteadOfCopyStr = RouterUtils.getCaseInsentiveQuery(this.$route, \"moveBlobInsteadOfCopy\");\r\n var moveBlobInsteadOfCopy = moveBlobInsteadOfCopyStr != \"false\";\r\n\r\n return api.Row.move(this.currentList.Id, this.targetListId, this.rowIds, moveBlobInsteadOfCopy);\r\n }\r\n else {\r\n return api.Row.copy(this.currentList.Id, this.targetListId, this.rowIds);\r\n }\r\n }\r\n \r\n public GetErrorDescription(error: models.ApiError) {\r\n return ApiUtils.GetApiErrorDescription(error);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CopyMoveRowsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CopyMoveRowsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CopyMoveRowsDialog.vue?vue&type=template&id=5d4fa457&scoped=true&\"\nimport script from \"./CopyMoveRowsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CopyMoveRowsDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CopyMoveRowsDialog.vue?vue&type=style&index=0&id=5d4fa457&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 \"5d4fa457\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"720\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.dialogOpened),callback:function ($$v) {_vm.dialogOpened=$$v},expression:\"dialogOpened\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"px-5\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('RemindUsersDialog_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),(!_vm.$vuetify.breakpoint.mobile)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('RemindUsersDialog_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',[_c('span',[_vm._v(_vm._s(_vm.$t('RemindUsersDialog_Description')))])]),_vm._v(\" \"),(_vm.didntSentTo)?_c('v-card-text',[_c('span',{staticClass:\"error--text\"},[_vm._v(_vm._s(_vm.didntSentTo))])]):_vm._e(),_vm._v(\" \"),(_vm.noOneToSend)?_c('v-card-text',[_c('span',{staticClass:\"error--text\"},[_vm._v(_vm._s(_vm.$t('RemindUsersDialog_NoOneToSend')))])]):_c('v-card-text',[(_vm.loadingRecipients)?_c('span',[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"indeterminate\":\"\"}})],1):_c('span',[_vm._v(_vm._s(_vm.sendingRemindersTo))])]),_vm._v(\" \"),_c('v-card-text',[_c('v-textarea',{attrs:{\"outlined\":\"\",\"placeholder\":_vm.$t('RemindUsersDialog_MessagePlaceHolder')},model:{value:(_vm.message),callback:function ($$v) {_vm.message=$$v},expression:\"message\"}})],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(_vm._s(_vm.$t('Action_Cancel')))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.sendingReminders,\"disabled\":!_vm.canSendReminders},on:{\"click\":_vm.sendReminders}},[_vm._v(_vm._s(_vm.$t('RemindUsersDialog_Send')))])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { RowNode } from 'ag-grid-community';\r\nimport {Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport { Row } from '@/api/Api';\r\nimport { Member, List, Event, GlobalNotificationEventParams, NotificationType } from '@/models/RowShare';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport ListDisplayModeVM from '@/viewModels/Table/listDisplayModeVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\n\r\n@Component({name: 'RemindUsersDialog'})\r\nexport default class RemindUsersDialog extends Vue {\r\n @Prop() displayModeVM!: ListDisplayModeVM \r\n @Prop() currentList!: List\r\n @Prop() rows!: RowVM[];\r\n @Prop() showDialog!: boolean;\r\n\r\n dialogOpened: boolean = false;\r\n message: string = \"\";\r\n sendingReminders: boolean = false;\r\n membersToNotify: Member[] | null = null;\r\n notNotifiedMembers: Member[] | null = null; \r\n loadingRecipients: boolean = false;\r\n\r\n get sendingRemindersTo(): string {\r\n if(!this.membersToNotify || this.membersToNotify.length == 0) {\r\n return \"\";\r\n }\r\n let membersList = this.formatMembersList(this.membersToNotify, 3);\r\n return this.$i18n.t('RemindUsersDialog_SendingTo', {membersList: membersList}).toString();\r\n \r\n }\r\n\r\n get didntSentTo(): string {\r\n if(!this.notNotifiedMembers || this.notNotifiedMembers.length == 0) {\r\n return \"\";\r\n }\r\n let memberList = this.formatMembersList(this.notNotifiedMembers);\r\n return this.$i18n.t('RemindUsersDialog_NotSentTo', {membersList: memberList}).toString();\r\n }\r\n\r\n get selectedRowsIds(): string[] | null {\r\n if(this.rows && this.rows.length > 0) {\r\n return this.rows.map(rvm => rvm.rsRow.Id);\r\n }\r\n return null;\r\n }\r\n\r\n get canSendReminders() : boolean {\r\n if(!this.membersToNotify || this.membersToNotify.length == 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n get noOneToSend() : boolean {\r\n return (this.membersToNotify?.length ?? 0) == 0 && !this.loadingRecipients;\r\n }\r\n\r\n\r\n @Watch('showDialog')\r\n initDialog() {\r\n this.dialogOpened = this.showDialog;\r\n this.message = \"\";\r\n this.sendingReminders = false;\r\n this.loadingRecipients = true;\r\n this.membersToNotify = null;\r\n this.notNotifiedMembers = null;\r\n if(this.showDialog && this.selectedRowsIds && this.selectedRowsIds.length > 0) {\r\n this.loadingRecipients = true;\r\n Row.getRowOwners(this.selectedRowsIds)\r\n .then(members => {\r\n if(members){\r\n this.membersToNotify = members.filter(m => m.IsUser);\r\n this.notNotifiedMembers = members.filter(m => !m.IsUser);\r\n }\r\n this.loadingRecipients = false;\r\n });\r\n }\r\n }\r\n \r\n onCancel() {\r\n this.dialogOpened = false;\r\n this.$emit('cancel');\r\n }\r\n\r\n sendReminders() {\r\n this.sendingReminders = true;\r\n if(this.selectedRowsIds && this.selectedRowsIds.length > 0) {\r\n Row.SendOwnerReminders(this.selectedRowsIds, this.message)\r\n .then(() => {\r\n this.displayModeVM.deselectAllRows();\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('RemindUsersDialog_RemindersSent').toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n type: NotificationType.success});\r\n this.onCancel();\r\n this.sendingReminders = false;\r\n });\r\n }\r\n }\r\n\r\n formatMembersList(list: Array | null, maxMembers: number = 0) {\r\n let membersList: string = \"\";\r\n if(list && (list.length ?? 0) > 0) {\r\n let sep: string = \"\";\r\n if(maxMembers === 0) {\r\n maxMembers = list.length;\r\n }\r\n if(maxMembers > list.length) {\r\n maxMembers = list.length;\r\n }\r\n for(let i = 0; i < maxMembers; i++) {\r\n membersList += sep + list[i].Name;\r\n sep = \", \"; \r\n }\r\n if(maxMembers < list.length) {\r\n membersList += this.$i18n.t('RemindUsersDialog_MoreMembers', {memberCount: list.length - maxMembers}).toString();\r\n }\r\n }\r\n return membersList;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RemindUsersDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RemindUsersDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RemindUsersDialog.vue?vue&type=template&id=13b67978&\"\nimport script from \"./RemindUsersDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RemindUsersDialog.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"600\"},on:{\"click:outside\":_vm.closeDialog},model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('AssignDialog_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"href\":_vm.$t('AssignDialog_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_HelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\"},on:{\"click\":_vm.closeDialog}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('AssignDialog_Description'))+\"\\n \"),_c('br'),_vm._v(\" \"),_c('security-principal-dropdown',{attrs:{\"organization\":_vm.currentOrganization,\"includeTeams\":false,\"showMyOrganization\":false,\"multiple\":false,\"openDirection\":\"bottom\"},model:{value:(_vm.selectedPrincipal),callback:function ($$v) {_vm.selectedPrincipal=$$v},expression:\"selectedPrincipal\"}})],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"text\":\"\",\"color\":\"normal\"},on:{\"click\":_vm.closeDialog}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('AssignDialog_Cancel'))+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"loading\":_vm.processing},on:{\"click\":_vm.assignRows}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('AssignDialog_Confirm'))+\"\\n \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import * as RowShare from \"@/models/RowShare\";\r\nimport * as Api from '@/api/Api';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { i18n } from '@/modules/Localization';\r\n\r\nexport class MemberHelper {\r\n\r\n public static addMemberIfNecessary(securityPrincipal: string | RowShare.SecurityPrincipal | null | undefined, organizationId: string | null | undefined) {\r\n // If securityPrincipal is a string, it means that a member needs to be created\r\n if(!organizationId || !securityPrincipal || !Utils.isString(securityPrincipal))\r\n return;\r\n \r\n let newMember = new RowShare.Member();\r\n newMember.Email = securityPrincipal;\r\n let mail = securityPrincipal.split('@'); \r\n newMember.Name = mail[0];\r\n newMember.OrganizationId = organizationId;\r\n \r\n Api.Member.save(newMember)\r\n .then((member) => {\r\n if(member) {\r\n EventBus.$emit(RowShare.Event.ORGANIZATION_CHANGED);\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: RowShare.NotificationType.success,\r\n message: i18n.t('Assign_AddMemberSuccess', {email: member.Email, name: member.Name}).toString()\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide : false,\r\n type : RowShare.NotificationType.error,\r\n message : i18n.t('Assign_CannotAddMember').toString()});\r\n });\r\n }\r\n\r\n}","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport SecurityPrincipalDropdown from \"@/views/components/SecurityPrincipalDropdown.vue\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport RowVM from \"@/viewModels/Table/rowVM\";\r\nimport { MemberHelper } from \"@/utils/MemberHelper\";\r\nimport { BigramHelper } from \"@/utils/BigramHelper\";\r\n\r\n@Component({ name: \"AssignationDialog\", components: { SecurityPrincipalDropdown }})\r\nexport default class AssignationDialog extends Vue {\r\n @Prop() currentOrganization!: RowShare.Organization;\r\n selectedPrincipal: RowShare.SecurityPrincipal | string | null = null;\r\n selectedRows: RowVM[] = [];\r\n processing: boolean = false;\r\n showMe: boolean = false;\r\n\r\n created() {\r\n EventBus.$on(RowShare.Event.ASSIGNROWS_REQUEST, (selectedRows: RowVM[]) => this.init(selectedRows));\r\n }\r\n\r\n destroy() {\r\n EventBus.$off(RowShare.Event.ASSIGNROWS_REQUEST);\r\n }\r\n\r\n init(selectedRows: RowVM[]) {\r\n this.selectedRows = selectedRows;\r\n this.showMe = true;\r\n }\r\n\r\n closeDialog() {\r\n this.selectedRows = [];\r\n this.showMe = false;\r\n this.$emit('close');\r\n }\r\n\r\n async assignRows(){\r\n this.processing = true;\r\n MemberHelper.addMemberIfNecessary(this.selectedPrincipal, this.currentOrganization?.Id);\r\n\r\n for(let i = 0; i < this.selectedRows.length; ++i){\r\n let rowVM = this.selectedRows[i];\r\n rowVM.setAssignation(BigramHelper.getAssignationResultFromSecurityPrincipal(this.selectedPrincipal));\r\n await rowVM.innerSave();\r\n }\r\n this.processing = false;\r\n this.closeDialog();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AssignationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AssignationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssignationDialog.vue?vue&type=template&id=5600682d&\"\nimport script from \"./AssignationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssignationDialog.vue?vue&type=script&lang=ts&\"\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 {Action, getModule, Module, Mutation, VuexModule} from 'vuex-module-decorators'\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport {computeConcernedEventsForUer, RealTimeCollaborationEventType} from \"@/models/RowShare\";\r\nimport store from '@/modules/Store';\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport {UserModule} from \"@/store/UserStore\";\r\nimport {ListTreeModule} from \"@/store/ListTreeStore\";\r\nimport {EventBus} from \"@/modules/EventBus\";\r\n\r\n@Module({dynamic: true, store: store, name: 'RealTimeCollaborationStore'})\r\nexport class RealTimeCollaborationStore extends VuexModule {\r\n private _connection = new signalR.HubConnectionBuilder()\r\n .withUrl(`${process.env.VUE_APP_SIGNALR_URL}`) // for beta\r\n // .withUrl('https://www.rowsharedev.com/signalr/EventsHub') // for local\r\n .configureLogging(signalR.LogLevel.Warning)\r\n .build();\r\n public connectedUsers: RowShare.RealTimeCollaborationEntity[] = [];\r\n public inEditionCells: RowShare.EditingCell[] = [];\r\n public createdRows: string[] = [];\r\n public history: RowShare.RtcHistoryItem[] = [];\r\n\r\n /** Getters and Setters **/\r\n get currentList() : RowShare.List | null {\r\n return ListTreeModule.currentList;\r\n }\r\n\r\n get hasAudit(): boolean {\r\n return ListTreeModule.currentOrganization?.HasAudit ?? false;\r\n }\r\n\r\n get hasRtcHistory(): boolean {\r\n // return true;\r\n return ListTreeModule.currentOrganization?.HasRtcHistory ?? false;\r\n }\r\n\r\n get isAdmin(): boolean {\r\n return this.currentList?.Owned ?? false;\r\n }\r\n\r\n get currentUser() : RowShare.User | null {\r\n return UserModule.CurrentUser;\r\n }\r\n\r\n get connection(): signalR.HubConnection {\r\n return this._connection;\r\n }\r\n\r\n set connection(value: signalR.HubConnection) {\r\n this._connection = value;\r\n }\r\n\r\n get ConnectedUsers() : RowShare.RealTimeCollaborationEntity[] {\r\n return this.connectedUsers;\r\n }\r\n\r\n get getHistory(): RowShare.RtcHistoryItem[] {\r\n return this.history;\r\n }\r\n\r\n /** Mutations **/\r\n\r\n // @Mutation\r\n // addConnectedUser(incomingUsers: RowShare.User[]): void {\r\n // this.connectedUsers = incomingUsers;\r\n // }\r\n //\r\n // @Mutation\r\n // removeConnectedUser(outgoingUsers: RowShare.User[]): void {\r\n // this.connectedUsers = outgoingUsers;\r\n // }\r\n\r\n @Mutation\r\n updateHistory(h: RowShare.RtcHistoryItem): void {\r\n this.history.push(h);\r\n }\r\n\r\n @Mutation\r\n updateConnectedUsers(incomingUsers: RowShare.RealTimeCollaborationEntity[]): void {\r\n this.connectedUsers = incomingUsers;\r\n }\r\n\r\n @Mutation\r\n addEditingCell(entity: RowShare.RealTimeCollaborationEntity): void {\r\n const rowId = entity.data[\"rowId\"];\r\n const columnId = entity.data[\"columnId\"];\r\n const editingCell = new RowShare.EditingCell();\r\n editingCell.connectionId = entity.connectionId;\r\n editingCell.rowId = rowId;\r\n editingCell.columnId = columnId;\r\n editingCell.backgroundColorIndex = entity.data[\"backgroundColorIndex\"];\r\n this.inEditionCells.push(editingCell);\r\n EventBus.$emit(entity.eventType, rowId, columnId);\r\n }\r\n\r\n @Mutation\r\n addNewRow(entity: RowShare.RealTimeCollaborationEntity): void {\r\n const rowId: string = entity.data[\"rowId\"];\r\n this.createdRows = [rowId];\r\n EventBus.$emit(entity.eventType, entity);\r\n }\r\n\r\n @Mutation\r\n removeEditingCell(entity: RowShare.RealTimeCollaborationEntity): void {\r\n const rowId: string = entity.data[\"rowId\"];\r\n const columnId: string = entity.data[\"columnId\"];\r\n this.inEditionCells = this.inEditionCells.filter(x =>\r\n x.connectionId != entity.connectionId\r\n && x.rowId !== rowId\r\n && x.columnId !== columnId\r\n );\r\n EventBus.$emit(entity.eventType, rowId, columnId);\r\n }\r\n\r\n @Mutation\r\n updateEditingCellsForSubscribeEvent(eCells : RowShare.EditingCell[]) {\r\n this.inEditionCells = eCells;\r\n for (const ec of eCells) {\r\n EventBus.$emit(RowShare.RealTimeCollaborationEventType.RowCellLock, ec.rowId, ec.columnId);\r\n }\r\n }\r\n\r\n @Mutation\r\n updateEditingCellsForUnSubscribeEvent(eCells : RowShare.EditingCell[]) {\r\n for (const ec of eCells) {\r\n this.inEditionCells = this.inEditionCells.filter(x =>\r\n x.connectionId !== ec.connectionId\r\n && x.rowId !== ec.rowId\r\n && x.columnId !== ec.columnId\r\n )\r\n EventBus.$emit(RowShare.RealTimeCollaborationEventType.RowCellUnlock, ec.rowId, ec.columnId);\r\n }\r\n }\r\n\r\n /** Actions **/\r\n\r\n @Action({rawError: true})\r\n async processHistory(entity: RowShare.RealTimeCollaborationEntity) : Promise {\r\n if(!RowShare.RtcHistoryItem.isSupportedEvent(entity)) {\r\n return\r\n }\r\n if (!this.hasAudit) {\r\n return\r\n }\r\n const h = new RowShare.RtcHistoryItem(entity)\r\n this.context.commit('updateHistory', h);\r\n }\r\n\r\n @Action({rawError: true})\r\n async processBroadcastEvent(message: string) : Promise {\r\n const entity = JSON.parse(message) as RowShare.RealTimeCollaborationEntity;\r\n\r\n await this.processHistory(entity);\r\n\r\n if (this.connection.connectionId === entity.connectionId) {\r\n return;\r\n }\r\n\r\n switch (entity.eventType) {\r\n case RowShare.RealTimeCollaborationEventType.RowCellLock:\r\n this.context.commit('addEditingCell', entity);\r\n return;\r\n case RowShare.RealTimeCollaborationEventType.RowCellUnlock:\r\n this.context.commit('removeEditingCell', entity);\r\n return;\r\n case RowShare.RealTimeCollaborationEventType.RowCreate:\r\n this.context.commit('addNewRow', entity);\r\n return;\r\n }\r\n\r\n EventBus.$emit(entity.eventType, entity);\r\n }\r\n\r\n @Action({rawError: true})\r\n async processSubscribeEvent(message: string): Promise {\r\n const coWorkers = JSON.parse(message) as RowShare.RealTimeCollaborationEntity[];\r\n const remainingUsers = coWorkers\r\n .filter(coWorker => coWorker.connectionId !== this.connection.connectionId);\r\n // .map(coWorker => Object.assign(new RowShare.User(), coWorker.user));\r\n\r\n this.context.commit('updateConnectedUsers', remainingUsers);\r\n }\r\n\r\n @Action({rawError: true})\r\n async processUnSubscribeEvent(message: string): Promise {\r\n const coWorkers = JSON.parse(message) as RowShare.RealTimeCollaborationEntity[];\r\n const remainingUsers = coWorkers\r\n .filter(coWorker => coWorker.connectionId !== this.connection.connectionId);\r\n // .map(coWorker => Object.assign(new RowShare.User(), coWorker.user));\r\n\r\n this.context.commit('updateConnectedUsers', remainingUsers);\r\n }\r\n\r\n @Action({rawError: true})\r\n async processEditingCellsEvent(message: string) : Promise {\r\n const payload = JSON.parse(message);\r\n const entity = payload.entity;\r\n switch (entity.eventType) {\r\n case RowShare.RealTimeCollaborationEventType.Subscribe:\r\n this.context.commit('updateEditingCellsForSubscribeEvent', payload.editingCells as RowShare.EditingCell[]);\r\n return;\r\n case RowShare.RealTimeCollaborationEventType.UnSubscribe:\r\n this.context.commit('updateEditingCellsForUnSubscribeEvent', payload.editingCells as RowShare.EditingCell[]);\r\n return;\r\n }\r\n }\r\n\r\n @Action({rawError: true})\r\n async startAndSubscribe(): Promise {\r\n if (this.connection.state === \"Connecting\" || this.connection.state == \"Connected\") {\r\n //console.log(\"SignalR already connected\")\r\n return;\r\n }\r\n\r\n try {\r\n this.connection.on(\"ReceiveBroadcastEvent\", async(message: string) => {\r\n await this.processBroadcastEvent(message);\r\n });\r\n\r\n this.connection.on(\"ReceiveSubscribeEvent\", async(message: string) => {\r\n await this.processSubscribeEvent(message);\r\n });\r\n\r\n this.connection.on(\"ReceiveUnSubscribeEvent\", async (message: string) => {\r\n await this.processUnSubscribeEvent(message);\r\n });\r\n\r\n this.connection.on(\"ReceiveEditingCells\", async (message: string) => {\r\n await this.processEditingCellsEvent(message);\r\n });\r\n\r\n // if after 30 min we receive nothing from the server, then the connection is broken (before my update, default value was 30 seconds)\r\n this.connection.serverTimeoutInMilliseconds = 1_800_000; // wait 30 minutes before considering connection is lost\r\n this.connection.keepAliveIntervalInMilliseconds = 60_0000; // ping every 1 min\r\n await this.connection.start();\r\n\r\n let nonConcernedEvents: RealTimeCollaborationEventType[] = [];\r\n if (!this.currentList?.Owned) {\r\n nonConcernedEvents.push(RealTimeCollaborationEventType.Subscribe);\r\n nonConcernedEvents.push(RealTimeCollaborationEventType.UnSubscribe);\r\n }\r\n const consideredEvents = computeConcernedEventsForUer(nonConcernedEvents);\r\n const entity: RowShare.RealTimeCollaborationEntity = {\r\n connectionId: this.connection.connectionId!,\r\n connectionDate: new Date().toISOString(),\r\n eventType: \"Subscribe\",\r\n methodToInvoke: \"Subscribe\", // not relevant in this case\r\n groupId: this.currentList!.Id,\r\n authorName: this.currentUser!.Owner!.DisplayName,\r\n authorEmail: this.currentUser!.Email,\r\n bigram: this.currentUser!.Owner!.Bigram!,\r\n backgroundColorIndex: this.currentUser!.Owner!.BackgroundColorIndex!,\r\n data: {\r\n \"consideredEvents\": consideredEvents.join(\",\"),\r\n },\r\n }\r\n await this.connection.invoke(\"Subscribe\", JSON.stringify(entity));\r\n //console.log(`user ${entity.authorName} subscribed to list: ${entity.groupId}`);\r\n } catch (err) {\r\n console.error(\"error during start and subscribe: \", err);\r\n }\r\n }\r\n\r\n @Action({rawError: true})\r\n async stopAndUnsubscribe(): Promise {\r\n try {\r\n if (!this.connection || this.connection.state !== \"Connected\") {\r\n return;\r\n }\r\n await this.connection.stop();\r\n } catch (err) {\r\n console.error(\"error during stop and unsubscribe: \", err);\r\n }\r\n }\r\n\r\n @Action({rawError: true})\r\n async broadcast(event: Record): Promise {\r\n //console.log(event)\r\n try {\r\n if (!this.connection || this.connection.state !== \"Connected\") {\r\n return;\r\n }\r\n const entity: RowShare.RealTimeCollaborationEntity = {\r\n connectionId: this.connection.connectionId!,\r\n connectionDate: new Date().toISOString(),\r\n eventType: event[\"type\"] as string,\r\n methodToInvoke: \"Broadcast\",\r\n groupId: this.currentList!.Id,\r\n authorName: this.currentUser!.Owner!.DisplayName,\r\n authorEmail: this.currentUser!.Email,\r\n bigram: this.currentUser!.Owner!.Bigram!,\r\n backgroundColorIndex: this.currentUser!.Owner!.BackgroundColorIndex!,\r\n data: event[\"data\"] as Record,\r\n }\r\n await this.connection.invoke(\"Broadcast\", JSON.stringify(entity));\r\n } catch (err) {\r\n console.error(\"error during broadcast event: \", err);\r\n }\r\n }\r\n}\r\n\r\nexport const RealTimeCollaborationModule = getModule(RealTimeCollaborationStore);\r\n","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport * as agGrid from 'ag-grid-community';\r\nimport * as API from \"@/api/Api\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { ApiError, GridErrorEventParams } from \"@/models/RowShare\";\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport CopyMoveRowsDialog from '@/views/Table/ListActions/CopyMoveRowsDialog.vue';\r\nimport RemindUsersDialog from '@/views/Table/ListActions/RemindUsersDialog.vue';\r\nimport ListDisplayModeVM from \"@/viewModels/Table/listDisplayModeVM\";\r\nimport { ApiUtils } from \"@/api/ApiUtils\";\r\nimport { Utils } from \"@/utils/Utilities\";\r\nimport AssignationDialog from '@/views/Table/ListActions/AssignationDialog.vue';\r\nimport { UserModule } from \"@/store/UserStore\";\r\nimport ColorPicker from \"@/views/components/ColorPicker.vue\";\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\n@Component({ name: \"SelectedRowsBar\", components: { AssignationDialog, CopyMoveRowsDialog, RemindUsersDialog, ColorPicker } })\r\nexport default class SelectedRowsBar extends Vue {\r\n @Prop() selectedRows!: agGrid.IRowNode[]\r\n @Prop() displayModeVM!: ListDisplayModeVM;\r\n selectedColor: string = \"\";\r\n\r\n\r\n get cellSelected() {\r\n return this.displayModeVM?.cellSelected ?? false;\r\n }\r\n\r\n get selectedRowVMs() {\r\n return this.selectedRows.map(node => node.data);\r\n }\r\n\r\n isCloneRowsModalOpen: boolean = false;\r\n isCopyMoveRowsModalOpen: boolean = false;\r\n isRemindUsersModalOpen: boolean = false;\r\n\r\n isCurrentModalLoading: boolean = false;\r\n isCloningAtBottom: boolean = false;\r\n isCloningAfterEach: boolean = false;\r\n\r\n onColorSelected(value: string) {\r\n if(this.selectedColor == undefined) {\r\n return;\r\n }\r\n EventBus.$emit(RowShare.Event.GRID_CHOOSE_CELL_COLOR, this.selectedColor);\r\n }\r\n\r\n get canChooseColor() {\r\n return (this.cellSelected && !this.specialRowsDisplayed && this.isLoggedIn);\r\n }\r\n\r\n get isLoggedIn() {\r\n var user = UserModule.CurrentUser;\r\n return user != null && !user.IsAnonymous;\r\n }\r\n\r\n /** Clone rows **/\r\n cloneErrorMessage: string = '';\r\n apiErrors: ApiError[] = [];\r\n\r\n get hasApiErrors() {\r\n return this.apiErrors.length > 0;\r\n }\r\n\r\n get hasErrors() {\r\n return this.apiErrors.length > 0 || !Utils.isNullOrWhiteSpace(this.cloneErrorMessage);\r\n }\r\n\r\n get specialRowsDisplayed(): boolean {\r\n return this.displayModeVM?.listVM?.specialRowsDisplayed;\r\n }\r\n\r\n get deletedRowsDisplayed(): boolean {\r\n return this.displayModeVM?.listVM?.deletedRowsDisplayed;\r\n }\r\n\r\n get archivedRowsDisplayed(): boolean {\r\n return this.displayModeVM?.listVM?.archivedRowsDisplayed;\r\n }\r\n\r\n get hasArchiveRows(): boolean {\r\n return this.currentOrganization?.HasArchiveRows ?? false;\r\n }\r\n\r\n get hasLockRows(): boolean {\r\n return this.currentOrganization?.HasLockRows ?? false;\r\n }\r\n\r\n get hasRowMerge(): boolean {\r\n return this.currentOrganization?.HasRowMerge ?? false;\r\n }\r\n\r\n get canCloneRows() {\r\n if (this.specialRowsDisplayed) {\r\n return false;\r\n }\r\n if (this.selectedRows.length <= 0)\r\n return false;\r\n\r\n if (!this.displayModeVM) {\r\n return false;\r\n }\r\n\r\n if (this.displayModeVM.listVM.hasUniqueColumns)\r\n return false;\r\n\r\n if (this.selectedRows.length == 1 && this.displayModeVM.listVM.canAddNewRow)\r\n return true;\r\n else\r\n return this.displayModeVM.listVM.canAddSeveralNewRows;\r\n }\r\n\r\n get canCloneRowsAfterEach() {\r\n return !this.displayModeVM.isSorted;\r\n }\r\n\r\n onCloneRowsClicked() {\r\n this.isCloneRowsModalOpen = true;\r\n this.cloneErrorMessage = \"\";\r\n }\r\n\r\n async onCloneRowsModalAllAtBottomClicked() {\r\n await this.cloneSelectedRows(true);\r\n }\r\n\r\n async onCloneRowsModalAfterEachClicked() {\r\n await this.cloneSelectedRows(false);\r\n }\r\n\r\n async onCloseCloneDlg() {\r\n if (this.isCloningAtBottom || this.isCloningAfterEach) {\r\n return; //no close possible during cloning : blocking call for consistency and performance (only one final loadforparent) \r\n }\r\n this.closeAndResetAllModals();\r\n }\r\n\r\n async cloneSelectedRows(insertAtBottom: boolean) {\r\n this.cloneErrorMessage = \"\";\r\n this.apiErrors = [];\r\n let lastIndex = this.currentList!.RowCount - 1;\r\n if (insertAtBottom) {\r\n this.isCloningAtBottom = true;\r\n }\r\n else {\r\n this.isCloningAfterEach = true;\r\n }\r\n try {\r\n if (insertAtBottom) {\r\n let result = await API.Row.cloneMultiple(this.selectedRowsIds, insertAtBottom, RealTimeCollaborationModule.connection.connectionId);\r\n if (result?.IsValid) {\r\n let clonedRows = result.Value;\r\n var nbCloned = clonedRows.length;\r\n for (let currCloned = 0; currCloned < nbCloned; currCloned++) {\r\n let refresh = (currCloned == nbCloned - 1)\r\n await this.displayModeVM.insertClonedRowInUI(clonedRows[currCloned], lastIndex + 1, refresh);\r\n lastIndex++;\r\n }\r\n this.displayModeVM.scrollToIndex(lastIndex);\r\n }\r\n else {\r\n this.apiErrors = result?.Errors ?? [];\r\n }\r\n }\r\n else {\r\n var nbSelectedRows = this.selectedRows.length;\r\n for (let currCloned = 0; currCloned < nbSelectedRows; currCloned++){\r\n let rowVM = (this.selectedRows[currCloned].data);\r\n let clonedRow = await API.Row.clone(rowVM.rsRow.Id, insertAtBottom, RealTimeCollaborationModule.connection.connectionId);\r\n var index = this.displayModeVM.getRowNodeIndex(this.selectedRows[currCloned].id ?? \"\");\r\n var newAgIdx = index == -1 ? undefined : (index + 1);\r\n let refresh = (currCloned == nbSelectedRows - 1)\r\n await this.displayModeVM.insertClonedRowInUI(clonedRow, newAgIdx, refresh);\r\n }\r\n }\r\n EventBus.$emit(RowShare.Event.ROW_ADDED, this.selectedRows[0].data);\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n catch (err: any) {\r\n this.cloneErrorMessage = err.message;\r\n }\r\n finally {\r\n this.isCloningAtBottom = false;\r\n this.isCloningAfterEach = false;\r\n }\r\n\r\n if (!this.cloneErrorMessage && !this.hasApiErrors) {\r\n this.closeAndResetAllModals(true);\r\n }\r\n\r\n }\r\n\r\n /** Archive rows **/\r\n get canArchiveRows() {\r\n return (this.currentList?.Owned ?? false) && !this.specialRowsDisplayed && !this.selectionHasLockedRows;\r\n }\r\n\r\n onArchiveRowsClicked() {\r\n if (!this.hasArchiveRows) {\r\n EventBus.$emit(RowShare.Event.SHOW_UPSELL_DIALOG, {\r\n title: this.$i18n.t('UpsellDialog_Title').toString(),\r\n description: this.$i18n.t('UpsellDialog_Description_ArchiveRows').toString()\r\n });\r\n }\r\n else {\r\n var evtArgs = new RowShare.ConfirmationRequiredEventParams();\r\n if (this.selectedRows.length == 1) {\r\n evtArgs.title = this.$i18n.t(`ArchiveConfirmation_SingleRowTitle`, [this.selectedRows[0].data.rsRow.DescriptorFormattedValue]).toString();\r\n evtArgs.description1 = this.$i18n.t(`ArchiveConfirmation_SingleRowDescription`, [this.selectedRows[0].data.rsRow.DescriptorFormattedValue]).toString();\r\n } else {\r\n evtArgs.title = this.$i18n.t(`ArchiveConfirmation_Title`, [this.selectedRows.length]).toString();\r\n evtArgs.description1 = this.$i18n.t(`ArchiveConfirmation_Description`, [this.selectedRows.length]).toString();\r\n }\r\n evtArgs.cancelButtonText = this.$i18n.t(\"Common_Cancel\").toString();\r\n evtArgs.actionButtonText = this.$i18n.t(`ArchiveConfirmation_ConfirmButton`).toString();\r\n evtArgs.actionButtonIcon = \"archive\";\r\n evtArgs.actionButtonColor = \"primary\";\r\n\r\n evtArgs.onConfirmation = async () => {\r\n try {\r\n const alreadySavedRows = this.selectedRows.filter(r => !r.data.isNew);\r\n let apiRes: RowShare.ApiResult | null = null;\r\n\r\n if (alreadySavedRows.length > 0) {\r\n apiRes = await API.Row.archive(alreadySavedRows.map(node => node.data.rsRow.Id), RealTimeCollaborationModule.connection.connectionId);\r\n }\r\n\r\n if (apiRes) {\r\n if (apiRes.IsValid && apiRes.Value) {\r\n var vms = this.selectedRows.map(node => node.data);\r\n EventBus.$emit(RowShare.Event.ROW_ARCHIVE, vms);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.ROW_ERROR, { message: this.$i18n.t(apiRes.Errors[0].ExceptionCode.toString()).toString() });\r\n }\r\n }\r\n } catch (err: any) {\r\n EventBus.$emit(RowShare.Event.ROW_ERROR, { message: err._message });\r\n }\r\n }\r\n\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n }\r\n\r\n get canUnarchiveRows() {\r\n return (this.currentList?.Owned ?? false) && this.archivedRowsDisplayed;\r\n }\r\n\r\n async onUnarchiveRowsClicked() {\r\n let result = await API.Row.unarchive(this.selectedRowsIds, RealTimeCollaborationModule.connection.connectionId);\r\n if (result) {\r\n if (result.IsValid) {\r\n EventBus.$emit(RowShare.Event.ROW_UNARCHIVE, this.selectedRowVMs);\r\n this.closeAndResetAllModals(true);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n title: this.$i18n.t('SelectedRows_UnarchiveRowsError').toString(),\r\n type: RowShare.NotificationType.error,\r\n duplicateId: 'UnarchiveRows',\r\n message: this.$i18n.t(result.Errors[0].ExceptionCode.toString()).toString()\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** Delete rows **/\r\n\r\n get canDeleteRows() {\r\n return ((!this.selectedRows.find(node => !((node.data)).rsRow.CanSuppress))\r\n && ((this.currentList?.Owned ?? false)\r\n || !(this.currentList?.HasUserReadOnlyColumn ?? false)\r\n && !(this.currentList?.HasUserHiddenColumn ?? false))\r\n && !this.selectionHasLockedRows);\r\n }\r\n\r\n onDeleteRowsClicked() {\r\n let parentRowsInSelection = false;\r\n this.selectedRows.forEach(row => {\r\n if (row?.data.rsRow?.IsParentRow) {\r\n parentRowsInSelection = true;\r\n return;\r\n }\r\n });\r\n\r\n if (parentRowsInSelection) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: this.$i18n.t('SelectedRows_CannotDeleteReferenced').toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 10000,\r\n type: 'error',\r\n duplicateId: 'CannotDeleteRows'\r\n });\r\n }\r\n else {\r\n var evtArgs = new RowShare.ConfirmationRequiredEventParams();\r\n if (this.selectedRows.length == 1) {\r\n evtArgs.title = this.$i18n.t(`SelectedRows_${this.deletedRowsDisplayed ? 'Hard' : ''}DeleteModal_SingleRowTitle`, [this.selectedRows[0].data.rsRow.DescriptorFormattedValue]).toString();\r\n evtArgs.description1 = this.$i18n.t(`SelectedRows_${this.deletedRowsDisplayed ? 'Hard' : ''}DeleteModal_SingleRowDescription`, [this.selectedRows[0].data.rsRow.DescriptorFormattedValue]).toString();\r\n } else {\r\n evtArgs.title = this.$i18n.t(`SelectedRows_${this.deletedRowsDisplayed ? 'Hard' : ''}DeleteModal_Title`, [this.selectedRows.length]).toString();\r\n evtArgs.description1 = this.$i18n.t(`SelectedRows_${this.deletedRowsDisplayed ? 'Hard' : ''}DeleteModal_Description`, [this.selectedRows.length]).toString();\r\n }\r\n evtArgs.cancelButtonText = this.$i18n.t(\"SelectedRows_DeleteModal_CancelButton\").toString();\r\n evtArgs.actionButtonText = this.$i18n.t(`SelectedRows_${this.deletedRowsDisplayed ? 'Hard' : ''}DeleteModal_ConfirmButton`).toString();\r\n evtArgs.actionButtonIcon = \"trash-alt\";\r\n evtArgs.actionButtonColor = \"error\";\r\n\r\n evtArgs.onConfirmation = async () => {\r\n try {\r\n const alreadySavedRows = this.selectedRows.filter(r => !r.data.isNew);\r\n let apiRes: boolean | null = true;\r\n\r\n if (alreadySavedRows.length > 0) {\r\n apiRes = await API.Row.deleteBatch(alreadySavedRows.map(node => node.data.rsRow.Id), this.deletedRowsDisplayed, RealTimeCollaborationModule.connection.connectionId);\r\n }\r\n\r\n if (apiRes) {\r\n var vms = this.selectedRows.map(node => node.data);\r\n EventBus.$emit(RowShare.Event.ROW_DELETE, vms);\r\n }\r\n } catch (err: any) {\r\n EventBus.$emit(RowShare.Event.ROW_ERROR, { message: err._message });\r\n }\r\n }\r\n\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n }\r\n\r\n get deleteRowsButtonLabel(): string {\r\n return this.deletedRowsDisplayed ? this.$i18n.t('SelectedRows_HardDelete').toString() : this.$i18n.t('SelectedRows_Delete').toString();\r\n }\r\n /** Assignation **/\r\n\r\n get canAssignRows() {\r\n return !this.selectedRows.find(node => !((node.data)).rsRow.CanAssign) && !this.specialRowsDisplayed && !this.selectionHasLockedRows;\r\n }\r\n\r\n onAssignRowsClicked() {\r\n EventBus.$emit(RowShare.Event.ASSIGNROWS_REQUEST, this.selectedRowVMs);\r\n }\r\n\r\n /** Copy / move rows **/\r\n\r\n get canCopyMoveRows(): boolean {\r\n return (this.currentList?.Owned ?? false) && !this.specialRowsDisplayed;\r\n }\r\n\r\n onCopyMoveRowsClicked() {\r\n this.isCopyMoveRowsModalOpen = true;\r\n }\r\n\r\n /** RowMerge **/\r\n get rowMergeGenerationContext(): RowShare.ReportGenerationContext {\r\n let context = new RowShare.ReportGenerationContext();\r\n context.rowIds = this.selectedRowsIds;\r\n context.totalTableRowCount = this.currentList?.RowCount ?? 0;\r\n context.hasReadOnlyRows = this.readOnlyRowsInSelection;\r\n return context;\r\n }\r\n\r\n get canRunRowMerge(): boolean {\r\n return (ListTreeModule.currentListCapabilities?.rowMerge ?? false) && !this.specialRowsDisplayed\r\n && (this.currentList?.ReportCount ?? 0) > 0;\r\n }\r\n\r\n onRowMergeClicked() {\r\n if (!this.hasRowMerge) {\r\n EventBus.$emit(RowShare.Event.SHOW_UPSELL_DIALOG, {\r\n title: this.$i18n.t('UpsellDialog_Title').toString(),\r\n description: this.$i18n.t('UpsellDialog_Description_RowMerge').toString()\r\n });\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.ROWMERGE_REQUEST, this.rowMergeGenerationContext);\r\n }\r\n }\r\n\r\n /** Remind users **/\r\n get canRemindUsers(): boolean {\r\n return (this.currentList?.Owned ?? false) && !this.specialRowsDisplayed && !this.selectionHasLockedRows;\r\n }\r\n\r\n onRemindUsersClicked() {\r\n this.isRemindUsersModalOpen = true;\r\n }\r\n\r\n //** Restore rows **/\r\n async onRestoreRowsClicked() {\r\n let result = await API.Row.Restore(this.selectedRowsIds);\r\n if (result) {\r\n if (result.IsValid) {\r\n EventBus.$emit(RowShare.Event.ROW_RESTORE, this.selectedRowVMs);\r\n this.closeAndResetAllModals(true);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n title: this.$i18n.t('SelectedRows_RestoreRowsError').toString(),\r\n type: RowShare.NotificationType.error,\r\n duplicateId: 'RestoreRows',\r\n message: this.$i18n.t(result.Errors[0].ExceptionCode.toString()).toString()\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** Lock/Unlock rows */\r\n public get selectionHasLockedRows(): boolean {\r\n if (!this.selectedRows || this.selectedRows.length === 0) {\r\n return false;\r\n }\r\n return this.selectedRows.findIndex(sr => (sr.data)?.isLocked ?? -1) > -1;\r\n }\r\n\r\n public get selectionHasUnlockedRows(): boolean {\r\n if (!this.selectedRows || this.selectedRows.length === 0) {\r\n return false;\r\n }\r\n return this.selectedRows.findIndex(sr => !(sr.data)?.isLocked ?? -1) > -1;\r\n }\r\n\r\n public get canLockRows(): boolean {\r\n return (this.currentList?.Owned ?? false) && !this.specialRowsDisplayed && this.selectionHasUnlockedRows;\r\n }\r\n\r\n async onLockRowsClicked() {\r\n if (!this.hasLockRows) {\r\n EventBus.$emit(RowShare.Event.SHOW_UPSELL_DIALOG, {\r\n title: this.$i18n.t('UpsellDialog_Title').toString(),\r\n description: this.$i18n.t('UpsellDialog_Description_LockRows').toString()\r\n });\r\n }\r\n else {\r\n let result = await API.Row.lock(this.selectedRowsIds, RealTimeCollaborationModule.connection.connectionId);\r\n if (result) {\r\n if (result.IsValid && result.Value) {\r\n this.displayModeVM.updateRowsInUI(result.Value);\r\n this.closeAndResetAllModals(true);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n title: this.$i18n.t('SelectedRows_LockRowsError').toString(),\r\n type: RowShare.NotificationType.error,\r\n duplicateId: 'LockRows',\r\n message: this.$i18n.t(result.Errors[0].ExceptionCode.toString()).toString()\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n public get canUnlockRows(): boolean {\r\n return (this.currentList?.Owned ?? false) && !this.specialRowsDisplayed && this.selectionHasLockedRows;\r\n }\r\n\r\n async onUnlockRowsClicked() {\r\n let result = await API.Row.unlock(this.selectedRowsIds, RealTimeCollaborationModule.connection.connectionId);\r\n if (result) {\r\n if (result.IsValid && result.Value) {\r\n this.displayModeVM.updateRowsInUI(result.Value);\r\n this.closeAndResetAllModals(true);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n title: this.$i18n.t('SelectedRows_UnlockRowsError').toString(),\r\n type: RowShare.NotificationType.error,\r\n duplicateId: 'UnlockRows',\r\n message: this.$i18n.t(result.Errors[0].ExceptionCode.toString()).toString()\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** Commons **/\r\n async mounted() {\r\n }\r\n\r\n closeAndResetAllModals(clearSelection: boolean = false) {\r\n this.isCloneRowsModalOpen = false;\r\n this.isCopyMoveRowsModalOpen = false;\r\n this.isRemindUsersModalOpen = false;\r\n\r\n this.isCurrentModalLoading = false;\r\n this.isCloningAtBottom = false;\r\n this.isCloningAfterEach = false;\r\n if (clearSelection) {\r\n this.displayModeVM.deselectAllRows();\r\n }\r\n }\r\n\r\n get currentOrganization(): RowShare.ListTreeOrganization | null {\r\n return ListTreeModule.currentOrganization;\r\n }\r\n\r\n get currentList(): RowShare.List | null {\r\n return ListTreeModule.currentList;\r\n }\r\n\r\n get selectedRowsIds(): string[] {\r\n let rowIds: string[] = [];\r\n for (let i = 0; i < this.selectedRows.length; ++i) {\r\n let rowVM = (this.selectedRows[i].data);\r\n if (rowVM.rsRow.Id) {\r\n rowIds.push(rowVM.rsRow.Id)\r\n }\r\n }\r\n return rowIds;\r\n }\r\n\r\n get selectedrsRows(): RowShare.Row[] {\r\n let rsRows: RowShare.Row[] = [];\r\n for (let i = 0; i < this.selectedRows.length; ++i) {\r\n let rowVM = (this.selectedRows[i].data);\r\n if (rowVM.rsRow.Id) {\r\n rsRows.push(rowVM.rsRow)\r\n }\r\n }\r\n return rsRows;\r\n }\r\n\r\n get readOnlyRowsInSelection(): boolean {\r\n for (let i = 0; i < this.selectedRows.length; ++i) {\r\n let rowVM = (this.selectedRows[i].data);\r\n if (!rowVM.rsRow.CanUpdate || rowVM.isLocked) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public GetErrorDescription(error: RowShare.ApiError) {\r\n return ApiUtils.GetApiErrorDescription(error);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SelectedRowsBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SelectedRowsBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectedRowsBar.vue?vue&type=template&id=32cfc28f&scoped=true&\"\nimport script from \"./SelectedRowsBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectedRowsBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SelectedRowsBar.vue?vue&type=style&index=0&id=32cfc28f&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 \"32cfc28f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.gridViewVM.readyToShowTheGrid)?_c('ag-grid-vue',{staticClass:\"ag-theme-alpine col-md-12 rs-grid mt-0 pt-0\",staticStyle:{\"height\":\"100%\",\"width\":\"100%\"},attrs:{\"columnDefs\":_vm.gridViewVM.listColumns,\"defaultColDef\":_vm.defaultColumnSettings,\"gridOptions\":_vm.gridOptions,\"pinnedBottomRowData\":_vm.gridViewVM.bottomPinnedRows,\"context\":_vm.gridViewVM,\"tabToNextCell\":_vm.tabToNextCell,\"postProcessPopup\":_vm.postProcessPopup,\"getLocaleText\":_vm.getLocaleText},on:{\"gridReady\":_vm.gridReady,\"cellValueChanged\":_vm.onCellValueChanged,\"selectionChanged\":_vm.onSelectionChanged}}):_c('PageLoadSpinner')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import * as RowShare from '@/models/RowShare';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport { i18n } from \"@/modules/Localization\";\r\nimport * as agGrid from 'ag-grid-community';\r\nimport { Utils } from '@/utils/Utilities';\r\n\r\nexport default abstract class BaseColumnProxy{\r\n parseInitialTypedValue(rsColumn: RowShare.Column, rowVM: RowVM): any {\r\n return rowVM.rsRow.Values[rsColumn.Name] ?? \"\"\r\n }\r\n \r\n getFormulaError(rsColumn: RowShare.Column, rowVM: RowVM) : string | null {\r\n if(!rsColumn.isFormula)\r\n return null;\r\n\r\n var val = rowVM?.rsRow.Values[rsColumn.Name] ?? \"\";\r\n if(!val || typeof val !== 'string')\r\n return null;\r\n\r\n const regex = /^#LQL\\d*:\\s(.*)$/i;\r\n var match = val.match(regex);\r\n \r\n if(match && match.length > 1)\r\n return \"Error: \" + match[1];\r\n else\r\n return null;\r\n }\r\n\r\n getAPIVal(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n return val;\r\n }\r\n \r\n areEquals(val1: any, val2: any) {\r\n return val1 === val2;\r\n }\r\n\r\n /** Display & rendering **/\r\n\r\n shouldSuppressKeyboardEvent(rsCol: RowShare.Column) { \r\n return false;\r\n }\r\n\r\n isAlwaysEditable() {\r\n return false;\r\n }\r\n\r\n abstract getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string;\r\n\r\n getFormattedHtml(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n return this.getFormattedText(rsColumn, rowVM, val);\r\n }\r\n\r\n getFormattedHtmlTooltip(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string | null {\r\n return this.getFormattedHtml(rsColumn, rowVM, val);\r\n }\r\n\r\n getCellIconClasses(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string[] | null {\r\n return null;\r\n }\r\n\r\n getRendererWrapperClass(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string | null {\r\n return null;\r\n }\r\n\r\n getRenderer(rsCol: RowShare.Column) : string{\r\n return 'ProxyBasedRenderer';\r\n }\r\n\r\n /** Filters **/\r\n getCustomFilter(rsCol: RowShare.Column) : null | string{\r\n return null;\r\n }\r\n\r\n getCustomFilterParams(rsCol: RowShare.Column) : null | any {\r\n return { \r\n excelMode: 'windows',\r\n comparator: (valueA: any, valueB: any) => {\r\n const a = Utils.normalizeString(valueA ?? \"\") ?? \"\";\r\n const b = Utils.normalizeString(valueB ?? \"\") ?? \"\";\r\n\r\n if (a == b)\r\n return 0;\r\n return (a > b) ? 1 : -1;\r\n },\r\n refreshValuesOnOpen: true,\r\n caseSensitive: true,\r\n textFormatter: (value: string) => {\r\n return Utils.normalizeString(value);\r\n }\r\n };\r\n }\r\n\r\n getQuickFilterText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n return val;\r\n }\r\n\r\n /** Aggregation **/\r\n\r\n canShowTotal(rsColumn: RowShare.Column) : boolean {\r\n return false;\r\n }\r\n\r\n addToTotal(currentAggResult: any, rowVM: RowVM, rsColumn: RowShare.Column): any {\r\n return null;\r\n }\r\n\r\n formatTotal(aggResult: any, rowCount: number, rsColumn: RowShare.Column): any {\r\n return null;\r\n }\r\n\r\n protected getRowCountFormat(basePattern: string, aggResult: number, rowCount: number){\r\n let patternName = basePattern;\r\n if(aggResult == 1)\r\n patternName = basePattern + \"_OneValue\";\r\n else if (aggResult > 1)\r\n patternName = basePattern + \"_MultipleValues\";\r\n else\r\n patternName = basePattern + \"_NoValue\";\r\n\r\n return i18n.t(patternName, {\r\n valueCount: aggResult,\r\n totalRowCount: rowCount,\r\n }).toString();\r\n }\r\n\r\n /** Clipboard **/\r\n getClipboardValue(rsColumn: RowShare.Column, rowVM: RowVM, val: any): any {\r\n return this.getFormattedText(rsColumn, rowVM, val);\r\n }\r\n \r\n /** Grid context menu **/\r\n getContextMenuEntries(params: agGrid.GetContextMenuItemsParams) : agGrid.MenuItemDef[] | null {\r\n return null;\r\n }\r\n\r\n /** Group/Pivot/Charts Mode **/\r\n getEnableRowGrouping(rsColumn: RowShare.Column): boolean {\r\n return true;\r\n }\r\n\r\n getEnableAggregate(rsColumn: RowShare.Column): boolean {\r\n return false;\r\n }\r\n\r\n get enablePivot() {\r\n return true;\r\n }\r\n\r\n /** Sorting **/\r\n compareValues(rsColumn: RowShare.Column, valX: any, valY: any, nodeX: any, nodeY: any) : number | null {\r\n return null;\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport { isNumber } from 'lodash';\r\nimport { ColumnStrongType } from '@/models/Column';\r\nimport { Utils } from '@/utils/Utilities';\r\n\r\nexport default class NumericColumnProxy extends BaseColumnProxy {\r\n parseInitialTypedValue(rsColumn: RowShare.Column, rowVM: RowVM): any {\r\n switch(rsColumn.Type) {\r\n case ColumnStrongType.RowIndex:\r\n return rowVM.rsRow.Index ?? null;\r\n }\r\n\r\n const val = rowVM.rsRow.Values[rsColumn.Name];\r\n if(val) {\r\n var number = Number.parseFloat(val);\r\n if(isNaN(number)) {\r\n return null;\r\n }\r\n return number;\r\n }\r\n return val;\r\n }\r\n\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n if(rsColumn) {\r\n if(Utils.isString(val)) {\r\n val = (val).replace(/\\s/g, \"\").replace(',','.');\r\n }\r\n let num = Number.parseFloat(val);\r\n let res = this.formatNum(num, rsColumn);\r\n if(!res) {\r\n return res;\r\n }\r\n return (rsColumn.Prefix ?? '') + res + (rsColumn.Suffix ?? '');\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n private formatNum(num: number, rsColumn: RowShare.Column){\r\n if(isNaN(num))\r\n return \"\";\r\n\r\n return num.toLocaleString(navigator.language, {\r\n useGrouping: rsColumn.showThousandsSeparator,\r\n minimumFractionDigits: rsColumn.MaxDecimals,\r\n maximumFractionDigits: rsColumn.MaxDecimals\r\n })\r\n }\r\n\r\n /** Filters **/\r\n getCustomFilter(rsCol: RowShare.Column) : null | string{\r\n return \"agNumberColumnFilter\";\r\n }\r\n\r\n getCustomFilterParams(rsCol: RowShare.Column) : null | any {\r\n return {\r\n inRangeInclusive: true,\r\n filterOptions: [\r\n 'equals',\r\n 'notEqual',\r\n 'lessThan',\r\n 'lessThanOrEqual',\r\n 'greaterThan',\r\n 'greaterThanOrEqual',\r\n 'inRange',\r\n {\r\n displayKey: 'blanks',\r\n displayName: 'Blanks',\r\n predicate: function (filterValue: any, cellValue: any) {\r\n return cellValue === undefined || cellValue === null || cellValue === \"\";\r\n },\r\n numberOfInputs: 0,\r\n },\r\n {\r\n displayKey: 'notblanks',\r\n displayName: 'Not Blanks',\r\n predicate: function (filterValue: any, cellValue: any) {\r\n return cellValue !== undefined && cellValue !== null && cellValue !== \"\";\r\n },\r\n numberOfInputs: 0,\r\n },\r\n ]\r\n }\r\n }\r\n\r\n /** Aggregation **/\r\n\r\n canShowTotal(rsColumn: RowShare.Column) : boolean {\r\n return rsColumn.Type != ColumnStrongType.AutoNumber && rsColumn.Type != ColumnStrongType.RowIndex;\r\n }\r\n\r\n addToTotal(currentAggResult: any, rowVM: RowVM, rsColumn: RowShare.Column): any {\r\n const val = rowVM?.getValue(rsColumn, this) ?? 0;\r\n if(val && isNumber(val))\r\n currentAggResult += val;\r\n \r\n return currentAggResult\r\n }\r\n\r\n formatTotal(aggResult: any, rowCount: number, rsColumn: RowShare.Column): any {\r\n return this.formatNum(aggResult, rsColumn);\r\n }\r\n\r\n /** Clipboard **/\r\n getClipboardValue(rsColumn: RowShare.Column, rowVM: RowVM, val: any): any {\r\n if(isNumber(val)) {\r\n return val.toLocaleString(navigator.language, {useGrouping: false});\r\n }\r\n return \"\";\r\n }\r\n\r\n /** Pivot/Charts Mode **/\r\n getEnableRowGrouping(rsColumn: RowShare.Column): boolean {\r\n return ![ColumnStrongType.RowIndex, ColumnStrongType.AutoNumber].includes(rsColumn.Type);\r\n }\r\n\r\n getEnableAggregate(rsColumn: RowShare.Column): boolean {\r\n return ![ColumnStrongType.RowIndex, ColumnStrongType.AutoNumber].includes(rsColumn.Type);\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { ColumnStrongType } from '@/models/Column';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\n\r\nexport default class TextColumnProxy extends BaseColumnProxy {\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n if(rsColumn.Type == ColumnStrongType.RichText) {\r\n var span = document.createElement('span');\r\n span.innerHTML = val;\r\n return span.textContent || span.innerText;\r\n } \r\n\r\n return Utils.escapeHTML(val);\r\n }\r\n\r\n getFormattedHtml(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n if(rsColumn.Type == ColumnStrongType.Text) {\r\n return \"\" + Utils.escapeHTML(val) + \"\";\r\n }\r\n else {\r\n return val;\r\n }\r\n }\r\n \r\n shouldSuppressKeyboardEvent(rsCol: RowShare.Column) { \r\n return rsCol.Type == ColumnStrongType.RichText;\r\n } \r\n\r\n /** Aggregation **/\r\n\r\n canShowTotal(rsColumn: RowShare.Column) : boolean {\r\n return true;\r\n }\r\n\r\n addToTotal(currentAggResult: any, rowVM: RowVM, rsColumn: RowShare.Column): any {\r\n if(rowVM && !Utils.isNullOrWhiteSpace(rowVM.getValue(rsColumn, this)))\r\n currentAggResult++;\r\n \r\n return currentAggResult;\r\n }\r\n\r\n formatTotal(aggResult: any, rowCount: number): any {\r\n return this.getRowCountFormat(\"Aggregation_TextFormat\", aggResult, rowCount);\r\n }\r\n \r\n /** Filters **/\r\n \r\n getCustomFilterParams(rsCol: RowShare.Column) : null | any {\r\n var res = super.getCustomFilterParams(rsCol);\r\n\r\n if(rsCol.Type == ColumnStrongType.RichText) {\r\n if(!res)\r\n res = {};\r\n \r\n res.cellRenderer = (params: ICellRendererParams) => {\r\n if (!params.value || params.value === '(Select All)')\r\n return params.value;\r\n \r\n return \"\" + params.value + \"\";\r\n };\r\n\r\n res.valueFormatter = (params: ICellRendererParams) => {\r\n var span = document.createElement('span');\r\n span.innerHTML = params.value;\r\n return span.textContent || span.innerText;\r\n };\r\n } else if(rsCol.Type == ColumnStrongType.Text) {\r\n res.cellRenderer = (params: ICellRendererParams) => {\r\n if (!params.value || params.value === '(Select All)')\r\n return params.value;\r\n \r\n return \"\" + params.value + \"\";\r\n };\r\n } \r\n\r\n return res;\r\n }\r\n}","import { Utils } from './Utilities';\r\nimport TimeSpan from './TimeSpan';\r\n\r\nexport class DateTime {\r\n\r\n static parseDateTime(value: any, defaultValue: T): Date | T {\r\n if (Utils.isDate(value)) {\r\n return value;\r\n }\r\n\r\n if (Utils.isString(value)) {\r\n // Format /Date(+)/\r\n // ticks = ticks Unix Epoch => milliseconds since 1st january 1970\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date\r\n let a = /\\/Date\\(((?:-|\\+)?\\d*)((?:-|\\+)\\d*)?\\)\\//.exec(value);\r\n if (a) {\r\n var date = new Date(+a[1]);\r\n // if our value didn't include an offset then we bascially want to display the same date for every user whatever his / her timezone is.\r\n // so with the following line we want to \"cancel\" the local timezone\r\n // new Date(ticks) = new Date(Ticks + getTimeZone) => We need to remove the timezone\r\n date = new Date(date.getTime() + (date.getTimezoneOffset() * 60 * 1000));\r\n if (a[2]) {\r\n // if serveur has provided an offset, then we want to take this offset in account\r\n // this is the case for exemple for row creation date for row last modification date, for reminders, etc.\r\n var tz = +a[2]; // +0200, -0130\r\n var offset = (tz / 100 * 60) + (tz % 100); // minutes\r\n return new Date(date.getTime() + offset * 60000);\r\n }\r\n return date;\r\n }\r\n\r\n // Format 0000-00-00T00:00:00\r\n // Format 0000-00-00 00:00:00\r\n // Format 0000/00/00 00:00:00\r\n let b = /(\\d{4})(\\/|-)(\\d{1,2})(\\/|-)(\\d{1,2})((T| )(\\d{1,2}):(\\d{1,2})(:(\\d{1,2})))?/.exec(value);\r\n if (b) {\r\n // [\"2012-01-01T01:02:03\", \"2012\", \"-\", \"01\", \"-\", \"01\", \"T01:02:03\", \"T\", \"01\", \"02\", \":03\", \"03\"]\r\n let year = Utils.parseInteger(b[1], 0);\r\n let month = Utils.parseInteger(b[3], 1) - 1; // 0 based\r\n let day = Utils.parseInteger(b[5], 0);\r\n let hours = Utils.parseInteger(b[8], 0);\r\n let minutes = Utils.parseInteger(b[9], 0);\r\n let seconds = Utils.parseInteger(b[11], 0);\r\n\r\n return new Date(year, month, day, hours, minutes, seconds, 0);\r\n }\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n static parseTime(value: any, defaultValue: T): TimeSpan | T {\r\n if (value instanceof TimeSpan) {\r\n return value;\r\n }\r\n\r\n if (Utils.isString(value)) {\r\n const a = /(\\d+):(\\d+)(?::(\\d+))?/.exec(value);\r\n if (a) {\r\n const hours = parseInt(a[1], 10);\r\n const minutes = parseInt(a[2], 10);\r\n const seconds = parseInt(a[3], 10);\r\n return TimeSpan.fromTime(hours, minutes, seconds);\r\n }\r\n }\r\n\r\n if (typeof value === \"number\" && isFinite(value)) {\r\n return TimeSpan.fromTicks(value);\r\n }\r\n\r\n const ticks = parseInt(value, 10);\r\n if (isFinite(ticks)) {\r\n return Utils.parseTime(ticks, defaultValue);\r\n }\r\n\r\n return defaultValue;\r\n }\r\n}","import * as RowShare from \"@/models/RowShare\";\r\nimport { DateTime } from \"@/utils/Date\";\r\nimport TimeSpan from \"@/utils/TimeSpan\";\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\n\r\nexport default class TimeColumnProxy extends BaseColumnProxy {\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n let timespan = DateTime.parseTime(val, null);\r\n let result: string = \"\";\r\n if(timespan) {\r\n result = timespan.hours.toString().padStart(2, '0') + \":\" + timespan.minutes.toString().padStart(2, '0');\r\n if(timespan.seconds > 0) {\r\n result += \":\" + timespan.seconds.toString().padStart(2, '0');\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}","export default abstract class rowBaseVM {\r\n get isTotalRow(): boolean {\r\n return false;\r\n }\r\n\r\n get isLocked(): boolean {\r\n return false;\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport ColumnVM from './columnVM'\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport * as API from '@/api/Api';\r\nimport { ColumnStrongType, RelatedRow, Row, RowErrorEventParams } from '@/models/RowShare';\r\nimport FileVM from './FileVM';\r\nimport { i18n } from \"@/modules/Localization\";\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { BigramHelper } from '@/utils/BigramHelper';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport RsColumnManager from '@/columnProxies/RsColumnManager';\r\nimport ListVM from './listVM';\r\nimport rowBaseVM from './rowBaseVM';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { el } from '@fullcalendar/core/internal-common';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\nexport default class RowVM extends rowBaseVM {\r\n public static readonly rowPositionLast = \"_rowPositionLast\";\r\n public static readonly cellNotAccessible = \"||NotAccessibleCell||\";\r\n\r\n private static nextRowVMId = 0;\r\n\r\n rowVMId: string;\r\n listVM: ListVM;\r\n rsRow: RowShare.Row;\r\n isNew: Boolean = false;\r\n dirtyValues: any = null;\r\n valuesBeingSaved: any = null;\r\n removed = false;\r\n\r\n constructor(listVM: ListVM, row: RowShare.Row) {\r\n super();\r\n this.rowVMId = row?.Id ? row.Id : \"\" + RowVM.nextRowVMId++;\r\n this.listVM = listVM;\r\n this.rsRow = row;\r\n }\r\n\r\n // public get rowVMId(): string {\r\n // return this.rsRow?.Id ?? \"\"+ RowVM.nextRowVMId++;\r\n // }\r\n\r\n public get isLocked(): boolean {\r\n return (this.rsRow?.Status ?? RowShare.DataStatus.Normal) == RowShare.DataStatus.Locked && !this.editionInProgress;\r\n }\r\n\r\n public get editionInProgress(): boolean {\r\n return (this.rsRow?.Status ?? RowShare.DataStatus.Normal) == RowShare.DataStatus.EditionInProgress;\r\n }\r\n\r\n public static createNewRow(listVM: ListVM, listId: string): RowVM {\r\n var newRow = new RowShare.Row();\r\n newRow.Values = {};\r\n newRow.ListId = listId;\r\n newRow.CanAssign = true;\r\n newRow.CanSuppress = true;\r\n newRow.CanUpdate = true;\r\n\r\n // setting an estimated index to enable ordering the form view\r\n // if rowVMs is missing, this is survey, index is not used\r\n if (listVM.rowVMs) {\r\n var maxIdx = 0;\r\n for (let i = 0; i < listVM.rowVMs.length; ++i) {\r\n var tmpIdx = listVM.rowVMs[i].rsRow.Index;\r\n if (tmpIdx > maxIdx)\r\n maxIdx = tmpIdx;\r\n }\r\n newRow.Index = maxIdx + 1;\r\n }\r\n\r\n var res = new RowVM(listVM, newRow);\r\n res.rsRow = newRow;\r\n res.isNew = true;\r\n\r\n if (listVM.columns) {\r\n for (const col of listVM.columns) {\r\n if (col.DefaultValue && !col.isFormula) {\r\n newRow.Values[col.DisplayName] = col.DefaultValue;\r\n const proxy = RsColumnManager.getProxy(col.Type);\r\n res.setValue(col, proxy.parseInitialTypedValue(col, res));\r\n }\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n public getValue(rsColumn: RowShare.Column, columnProxy: BaseColumnProxy) {\r\n const colName = rsColumn.DisplayName;\r\n\r\n if (this.dirtyValues) {\r\n var dirtyVal = this.dirtyValues[colName];\r\n if (dirtyVal !== undefined)\r\n return dirtyVal;\r\n }\r\n\r\n if (this.valuesBeingSaved) {\r\n var valBeingSaved = this.valuesBeingSaved[colName];\r\n if (valBeingSaved !== undefined)\r\n return valBeingSaved;\r\n }\r\n // Used for related rows/columns\r\n if (this.rsRow.Values[colName] === RowVM.cellNotAccessible) {\r\n return RowVM.cellNotAccessible;\r\n }\r\n return columnProxy.parseInitialTypedValue(rsColumn, this);\r\n }\r\n\r\n public getAssignation() {\r\n if (this.dirtyValues) {\r\n var dirtyVal = this.dirtyValues[ColumnVM.rowOwnerHeaderId];\r\n if (dirtyVal !== undefined)\r\n return dirtyVal;\r\n }\r\n\r\n if (this.valuesBeingSaved) {\r\n var valBeingSaved = this.valuesBeingSaved[ColumnVM.rowOwnerHeaderId];\r\n if (valBeingSaved !== undefined)\r\n return valBeingSaved;\r\n }\r\n\r\n return {\r\n ownerId: this.rsRow.OwnerId,\r\n ownerIdType: this.rsRow.OwnerIdType,\r\n rowOwner: this.rsRow.Owner\r\n };\r\n }\r\n\r\n public getOwnerSortValue() {\r\n const assignation = this.getAssignation();\r\n if (!assignation.rowOwner && !assignation.SecurityPrincipal) {\r\n return \"\";\r\n }\r\n return assignation.rowOwner\r\n ? BigramHelper.getBigramTooltipForRowOwner(assignation.rowOwner)\r\n : BigramHelper.getBigramTooltipForSecurityPrincipal(assignation.securityPrincipal);\r\n }\r\n\r\n public setValue(col: RowShare.Column, val: any) {\r\n // When refreshing a row, the call to rowNode.setDataValue required to refresh formula will\r\n // ends up calling setValue, but this should be stopped to avoid useless save (which occured in loop for \r\n // some customers, resulting in a high load on the server)\r\n if (col.isFormula)\r\n return;\r\n\r\n\r\n // check is required here since flaging the value as dirty would result in this unchanged value\r\n // being saved on next cellValueChanged event for any 'actually' changed value\r\n // For new row, default values will seem unchanged but still need to be saved \r\n const proxy = RsColumnManager.getProxy(col.Type);\r\n var oldValue = this.getValue(col, proxy);\r\n if (!this.isNew && proxy.areEquals(val, oldValue))\r\n return;\r\n\r\n if (!this.dirtyValues)\r\n this.dirtyValues = {};\r\n\r\n this.dirtyValues[col.DisplayName] = val;\r\n\r\n EventBus.$emit(RowShare.Event.ROW_MODIFIED, this);\r\n }\r\n\r\n public setRelatedRow(col: RowShare.Column, val: string) {\r\n // Value for child columns is actually the related row id\r\n if (!col.HasParentColumn) {\r\n return;\r\n }\r\n\r\n var related = this.getRelatedRow(col) ?? new RowShare.RelatedRow();\r\n var modified = (related?.ParentRowId ?? '') != val;\r\n related.ChildRowId = this.rsRow.Id;\r\n related.ParentRowId = val;\r\n related.RelationColumnId = col.RelationColumnId;\r\n if (!modified) {\r\n return;\r\n }\r\n if (!this.dirtyValues) {\r\n this.dirtyValues = {};\r\n }\r\n this.dirtyValues[col.RelationColumnId] = related;\r\n this.innerSave();\r\n EventBus.$emit(RowShare.Event.ROW_MODIFIED, this);\r\n }\r\n\r\n public getRelatedRow(col: RowShare.Column): RowShare.RelatedRow | null | undefined {\r\n if (!this.rsRow.HasRelatedRows)\r\n return null;\r\n else\r\n return this.rsRow.ParentRows.find(r => r.ChildRowId === this.rsRow.Id && r.RelationColumnId === col.RelationColumnId) ?? null;\r\n }\r\n\r\n public async loadRelatedRow(col: RowShare.Column): Promise {\r\n if(!this.rsRow.Id) {\r\n return null;\r\n }\r\n if (!this.rsRow.HasRelatedRows) {\r\n let pr = await this.getParentRowsAsync(col);\r\n this.rsRow.ParentRows = pr ?? [];\r\n if (this.rsRow.ParentRows.length > 0)\r\n return this.rsRow.ParentRows.find(r => r.ChildRowId === this.rsRow.Id && r.RelationColumnId === col.RelationColumnId) ?? null;\r\n else\r\n return null;\r\n }\r\n else\r\n return this.rsRow.ParentRows.find(r => r.ChildRowId === this.rsRow.Id && r.RelationColumnId === col.RelationColumnId) ?? null;\r\n }\r\n\r\n public async getParentRowsAsync(col: RowShare.Column): Promise {\r\n //mass load by loadforparent does not load related rows\r\n //direct call when needed ONLY\r\n let current = await API.Row.load(this.rsRow.Id);\r\n if (current && current.HasRelatedRows)\r\n return current.ParentRows;\r\n else\r\n return null;\r\n }\r\n\r\n public setAssignation(val: any) {\r\n // same as set value\r\n var oldValue = this.getAssignation();\r\n if (val == oldValue)\r\n return;\r\n\r\n if (!this.dirtyValues)\r\n this.dirtyValues = {};\r\n\r\n this.dirtyValues[ColumnVM.rowOwnerHeaderId] = val;\r\n EventBus.$emit(RowShare.Event.ROW_MODIFIED, this);\r\n }\r\n\r\n public setInsertBeforeRowId(insertBeforeRowId: string | undefined) {\r\n if (!this.dirtyValues)\r\n this.dirtyValues = {};\r\n\r\n this.dirtyValues[ColumnVM.insertBeforeRowIdId] = insertBeforeRowId;\r\n EventBus.$emit(RowShare.Event.ROW_MODIFIED, this);\r\n }\r\n\r\n public async moveBefore(beforeId: string) {\r\n this.setInsertBeforeRowId(beforeId);\r\n await this.innerSave();\r\n }\r\n\r\n public async moveLast() {\r\n this.setInsertBeforeRowId(RowVM.rowPositionLast);\r\n await this.innerSave();\r\n }\r\n\r\n async cellValueChanged(col: RowShare.Column, newValue: any, oldValue: any) {\r\n // seems redundant with the test in setValue, but even if the value is not flagged as dirty\r\n // we still need to avoid an empty save \r\n const proxy = col?.Type ? RsColumnManager.getProxy(col.Type) : undefined;\r\n if ((proxy && proxy.areEquals(newValue, oldValue)) || newValue === oldValue || col?.isFormula)\r\n return;\r\n\r\n // only one save at a time for a given row\r\n if (this.valuesBeingSaved)\r\n return;\r\n\r\n this.innerSave();\r\n }\r\n\r\n async saveSurvey() {\r\n if (this.valuesBeingSaved)\r\n return;\r\n\r\n await this.innerSave(true);\r\n }\r\n\r\n async innerSave(isAnonymousSurveyAnswer: boolean = false) {\r\n this.valuesBeingSaved = this.dirtyValues;\r\n this.dirtyValues = null;\r\n this.resetAllErrors();\r\n this.listVM.notifyRowVMUpdated(this);\r\n\r\n try {\r\n // boucle sur les colonnes et construire values/files\r\n let filesToSave: RowShare.PostedFile[] = [];\r\n let filesToDelete: RowShare.PostedFile[] = [];\r\n let relatedRowsToSave: RowShare.RelatedRow[] = [];\r\n let valuesToSave: any = null;\r\n if(!this.valuesBeingSaved) {\r\n this.valuesBeingSaved = {};\r\n }\r\n\r\n if (!this.listVM.columns)\r\n throw new Error(\"Error - No columns loaded\");\r\n\r\n for (const col of this.listVM.columns) {\r\n let colAccessor = col.HasParentColumn ? col.RelationColumnId : col.Name;\r\n if (this.valuesBeingSaved[colAccessor] === undefined) {\r\n continue;\r\n }\r\n if (col.HasParentColumn) {\r\n let colValue = this.valuesBeingSaved[colAccessor];\r\n if (colValue) {\r\n let index = relatedRowsToSave.findIndex(rrts => (\r\n (rrts.ChildRowId == colValue.ChildRowId && rrts.ParentRowId == colValue.ParentRowId && rrts.RelationColumnId == colValue.RelationColumnId)));\r\n if (index < 0) {\r\n relatedRowsToSave.push(colValue);\r\n }\r\n }\r\n }\r\n else if (col.Type == ColumnStrongType.Image || col.Type == ColumnStrongType.File) {\r\n let colValue = this.valuesBeingSaved[colAccessor];\r\n if (colValue) {\r\n let file = new RowShare.PostedFile(col, colValue.File)\r\n if (file.hasData) {\r\n filesToSave.push(file);\r\n }\r\n else {\r\n filesToDelete.push(file);\r\n }\r\n }\r\n }\r\n else {\r\n if (!valuesToSave)\r\n valuesToSave = {};\r\n\r\n const proxy = RsColumnManager.getProxy(col.Type);\r\n valuesToSave[colAccessor] = proxy.getAPIVal(col, this, this.valuesBeingSaved[colAccessor]);\r\n }\r\n }\r\n\r\n let shoudRefreshOthers = false;\r\n if (valuesToSave || filesToSave.length > 0 || relatedRowsToSave.length > 0 || this.valuesBeingSaved[ColumnVM.insertBeforeRowIdId]) {\r\n if (!valuesToSave)\r\n valuesToSave = {};\r\n\r\n let insertBeforeRowId = this.valuesBeingSaved[ColumnVM.insertBeforeRowIdId];\r\n let moveLast: boolean | undefined = undefined;\r\n if (insertBeforeRowId == RowVM.rowPositionLast) {\r\n insertBeforeRowId = undefined;\r\n moveLast = true;\r\n }\r\n\r\n var apiSavedRow = await API.Row.save({\r\n Id: this.rsRow.Id,\r\n ListId: this.rsRow.ListId,\r\n Version: this.rsRow.Version,\r\n Values: valuesToSave,\r\n InsertBeforeRowId: insertBeforeRowId,\r\n MoveLast: moveLast,\r\n IsAnonymousSurveyAnswer: isAnonymousSurveyAnswer,\r\n ParentRows: relatedRowsToSave,\r\n RtcConnectionId: RealTimeCollaborationModule.connection.connectionId\r\n }, filesToSave);\r\n\r\n if (apiSavedRow) {\r\n this.rsRow = apiSavedRow;\r\n this.isNew = false;\r\n\r\n // if row saved succeed but assign failed, we don't want to save these values again\r\n for (const savedValue in valuesToSave) {\r\n this.valuesBeingSaved[savedValue] = undefined;\r\n }\r\n shoudRefreshOthers = !!insertBeforeRowId;\r\n this.valuesBeingSaved[ColumnVM.insertBeforeRowIdId] = undefined;\r\n } else {\r\n throw new Error(\"Missing API response\");\r\n }\r\n }\r\n for (const f of filesToDelete) {\r\n var rowAfterFileDelete = await API.Row.deleteRowFile(this.rsRow.Id, f.column.Index, RealTimeCollaborationModule.connection.connectionId, { clearCache: true });\r\n if (rowAfterFileDelete) {\r\n this.rsRow = rowAfterFileDelete;\r\n }\r\n }\r\n\r\n // assignation\r\n var newOwner = this.valuesBeingSaved[ColumnVM.rowOwnerHeaderId];\r\n if (newOwner) {\r\n var apiSavedRow = await API.Row.assignRowOwner({\r\n Id: this.rsRow.Id,\r\n Version: this.rsRow.Version,\r\n OwnerId: newOwner.ownerId,\r\n OwnerIdType: newOwner.ownerIdType\r\n });\r\n\r\n if (apiSavedRow) {\r\n this.rsRow = apiSavedRow;\r\n this.isNew = false;\r\n this.getAssignation()\r\n if (!this.rsRow.OwnerHasAccessToList) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHideAfterMs: 10000,\r\n autoHide: true,\r\n duplicateId: 'OwnerHasNoAccessToList',\r\n message: this.listVM.list?.Owned ? i18n.t('Common_OwnerHasNoAccessToList_Admin', [this.rsRow.Owner.DisplayName]) : i18n.t('Common_OwnerHasNoAccessToList', [this.rsRow.Owner.DisplayName]),\r\n type: RowShare.NotificationType.warning,\r\n title: i18n.t('Common_OwnerHasNoAccesToListTitle'),\r\n showActionButton: this.listVM.list?.Owned,\r\n actionButtonText: i18n.t('Common_AddOwnerToListAccesses'),\r\n actionButtonClick: () => {\r\n var sp: RowShare.SecurityPrincipal = new RowShare.SecurityPrincipal();\r\n if (this.rsRow.OwnerIdType == RowShare.OwnerIdType.Group) {\r\n sp.GroupId = this.rsRow.OwnerId;\r\n sp.GroupName = this.rsRow.Owner.DisplayName;\r\n }\r\n else if (this.rsRow.OwnerIdType == RowShare.OwnerIdType.User) {\r\n sp.MemberEmail = this.rsRow.OwnerId;\r\n sp.MemberName = this.rsRow.Owner.DisplayName;\r\n sp.MemberOrganizationId = this.listVM.list?.OrganizationId ?? '';\r\n }\r\n sp.Bigram = this.rsRow.Owner.Bigram;\r\n sp.BackgroundColorIndex = this.rsRow.Owner.BackgroundColorIndex;\r\n EventBus.$emit(RowShare.Event.SHOW_SIDEPANEL_SHARING, {\r\n listId: this.listVM.list?.Id,\r\n inviteParams: {\r\n listId: this.listVM.list?.Id,\r\n selectedGuests: [sp]\r\n }\r\n });\r\n }\r\n });\r\n }\r\n } else {\r\n throw new Error(\"Missing API response\");\r\n }\r\n }\r\n\r\n EventBus.$emit(RowShare.Event.ROW_SAVED, this);\r\n\r\n if (this.dirtyValues)\r\n this.innerSave();\r\n else\r\n this.valuesBeingSaved = null;\r\n\r\n this.listVM.notifyRowVMUpdated(this);\r\n\r\n if (shoudRefreshOthers) {\r\n this.listVM.refreshRowsFromServer();\r\n }\r\n } catch (err: any) {\r\n console.log(\"An error occured while saving the row\");\r\n console.log(err);\r\n this.hasError = true;\r\n if (err._message)\r\n this._globalErrorMessage = err._message;\r\n if (err.validationErrors)\r\n this._cellsErrorMessages = err.validationErrors;\r\n\r\n const errorTitle = Utils.isNullOrWhiteSpace(this.rsRow.DescriptorFormattedValue)\r\n ? null\r\n : i18n.t(\"ErrorNotif_RowErrorTitleTemplate\", [this.rsRow.DescriptorFormattedValue]).toString();\r\n\r\n EventBus.$emit(RowShare.Event.ROW_ERROR, { rowVM: this, title: errorTitle, message: err._message });\r\n\r\n let shouldResave = this.dirtyValues ? true : false;\r\n\r\n // reset all values that couldn't be saved as dirty, except for those that have been re-edited since\r\n if (!this.dirtyValues) this.dirtyValues = {};\r\n for (const colName in this.valuesBeingSaved) {\r\n if (this.dirtyValues[colName] === undefined)\r\n this.dirtyValues[colName] = this.valuesBeingSaved[colName];\r\n }\r\n\r\n if (shouldResave)\r\n this.innerSave();\r\n else {\r\n this.valuesBeingSaved = null;\r\n }\r\n this.listVM.notifyRowVMUpdated(this);\r\n }\r\n finally {\r\n this.listVM.refreshCell(this);\r\n }\r\n }\r\n\r\n async refreshValues(row: Row) {\r\n if (!this.dirtyValues && !this.valuesBeingSaved) {\r\n this.rsRow = row;\r\n this.listVM.notifyRowVMUpdated(this);\r\n this.listVM.refreshCell(this);\r\n }\r\n }\r\n\r\n async refreshIndexAndVersion(row: Row) { \r\n this.rsRow.Index = row.Index;\r\n this.rsRow.Version = row.Version;\r\n }\r\n\r\n /** State management **/\r\n\r\n public hasError: boolean = false;\r\n public _globalErrorMessage: string | null = null;\r\n public _cellsErrorMessages: { Column: string, Message: string }[] | null = null;\r\n public hasCellError(rsColumn: RowShare.Column) {\r\n return this.getCellError(rsColumn) != null;\r\n }\r\n public getCellError(rsColumn: RowShare.Column): string | null {\r\n if (!this._cellsErrorMessages || !rsColumn)\r\n return null;\r\n\r\n var cellError = this._cellsErrorMessages.find(e => e.Column == rsColumn.DisplayName);\r\n if (cellError)\r\n return cellError.Message;\r\n\r\n return null;\r\n }\r\n public isSavingCell(rsColumn: RowShare.Column) {\r\n if (!this.valuesBeingSaved || !rsColumn)\r\n return false;\r\n\r\n var cell = this.valuesBeingSaved[rsColumn.DisplayName];\r\n if (cell !== undefined)\r\n return true;\r\n\r\n return false;\r\n }\r\n public resetAllErrors() {\r\n this.hasError = false;\r\n this._globalErrorMessage = null;\r\n this._cellsErrorMessages = null;\r\n }\r\n\r\n public get isReadOnly() {\r\n return (!this.rsRow.CanAssign && !this.rsRow.CanSuppress && !this.rsRow.CanUpdate) || this.listVM?.specialRowsDisplayed || this.isLocked;\r\n }\r\n}","import * as RowShare from \"@/models/RowShare\";\r\nimport { ColumnStrongType, LookUpItem } from '@/models/Column';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { List } from \"@/api/List\";\r\nimport { SetFilterValuesFuncParams } from \"ag-grid-community\";\r\n\r\nexport default class LookupColumnProxy extends BaseColumnProxy {\r\n parseInitialTypedValue(rsColumn: RowShare.Column, rowVM: RowVM): any {\r\n const val = rowVM.rsRow.Values[rsColumn.Name];\r\n\r\n if(rsColumn.isLookupMultiValued)\r\n return this.parseMultivaluedCell(val);\r\n else if(val && val != \"\")\r\n return [val];\r\n else\r\n return val;\r\n }\r\n\r\n getAPIVal(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n return val ? val?.join('\\0') : val;\r\n }\r\n\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n return this.formatValue(val);\r\n }\r\n\r\n\r\n formatValue(val: any) {\r\n if(!val || !Utils.isArray(val))\r\n return val;\r\n\r\n var res = val.length > 0 ? val[0] : \"\";\r\n for(let i = 1; i < val.length; ++i){\r\n res += \" | \" + val[i];\r\n }\r\n return res;\r\n }\r\n\r\n getFormattedHtml(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n const lookupItems = rsColumn.parsedLookupItems;\r\n \r\n var res = \"\";\r\n if(!val) {\r\n return res;\r\n }\r\n\r\n if(val === RowVM.cellNotAccessible) {\r\n res += `${RowVM.cellNotAccessible}`;\r\n }\r\n else {\r\n const firstTag = val.length > 0 ? val[0] : null;\r\n const allTagsButFirst = val.length > 1 ? val.slice(1) : [];\r\n\r\n if(firstTag) {\r\n res += `\r\n
1 ? 'not-single-chip' : ''}\">\r\n \r\n ${firstTag}\r\n \r\n
`;\r\n }\r\n\r\n for(let i = 0; i < allTagsButFirst.length; ++i){\r\n res += `\r\n \r\n ${allTagsButFirst[i]}\r\n `;\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n getRendererWrapperClass(){\r\n return \"lookup-renderer\";\r\n }\r\n\r\n areEquals(val1: any, val2: any) {\r\n if((val1 === null || val1 === undefined || val1 === \"\" || (Utils.isArray(val1) && val1.length == 0)) && (val2 === null || val2 === undefined || val2 === \"\" || (Utils.isArray(val2) && val2.length == 0)))\r\n return true;\r\n\r\n if(!Utils.isArray(val1) || !Utils.isArray(val2)) {\r\n return false;\r\n }\r\n\r\n if(val1.length != val2.length) {\r\n return false;\r\n }\r\n\r\n for (let index = 0; index < val1.length; index++) {\r\n if(val1[index] != val2[index]) {\r\n return false;\r\n } \r\n }\r\n return true;\r\n }\r\n\r\n shouldSuppressKeyboardEvent(rsCol: RowShare.Column) { \r\n return true;\r\n } \r\n\r\n /** Filters **/\r\n async getFilterValues(params: SetFilterValuesFuncParams, rsCol: RowShare.Column) {\r\n var res: Array = [];\r\n res = await List.loadChoice(rsCol.ListId, rsCol.DisplayName) ?? [];\r\n if(rsCol?.Type === ColumnStrongType.LookUp) {\r\n let lookupValues = rsCol.parsedLookupItems.map(l => l.name);\r\n lookupValues.forEach((val) => {\r\n if(!res.includes(val)) {\r\n res.push(val);\r\n }\r\n });\r\n }\r\n else if(rsCol?.Type === ColumnStrongType.LookUpList) {\r\n let lookuplistValues = await List.loadChoice(rsCol.LookupListId, rsCol.LookupListColumnName);\r\n lookuplistValues?.forEach(val => {\r\n if(!res.includes(val)) {\r\n res.push(val);\r\n }\r\n });\r\n }\r\n res.sort((x: string | null, y: string | null) => {\r\n if(x == null) {\r\n if(y == null) {\r\n return 0;\r\n }\r\n return -1;\r\n }\r\n if(y == null) {\r\n return 1;\r\n }\r\n let valx = x.toLowerCase();\r\n let valy = y.toLowerCase();\r\n if(valx < valy) {\r\n return -1;\r\n }\r\n else if(valx > valy) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n res.unshift(null);\r\n params.success(res);\r\n }\r\n\r\n getCustomFilterParams(rsCol: RowShare.Column) : Promise {\r\n var res = super.getCustomFilterParams(rsCol);\r\n res.suppressSorting = true;\r\n res.values = (params: SetFilterValuesFuncParams) => this.getFilterValues(params, rsCol);\r\n return res;\r\n }\r\n\r\n /* Internal */\r\n\r\n getItemClasses(lookupItems: LookUpItem[], name: string) {\r\n let color = \"\";\r\n if(lookupItems && lookupItems.length > 0){\r\n let itemIndex = lookupItems.findIndex(item => item.name == name);\r\n if(itemIndex != undefined && itemIndex > -1) {\r\n color = lookupItems[itemIndex].color;\r\n }\r\n }\r\n if(color == \"\"){\r\n color = \"primary\";\r\n }\r\n\r\n if(color == \"primary\")\r\n color += \" v-chip--outlined primary--text\";\r\n\r\n return color;\r\n }\r\n\r\n parseMultivaluedCell(value: string[] | string | null | undefined): string[] | null | undefined {\r\n if (Utils.isNullOrUndefined(value)) {\r\n return value;\r\n }\r\n\r\n if (Utils.isArray(value)) {\r\n return value;\r\n }\r\n\r\n if (Utils.isString(value) && value != '') {\r\n return value.split(\"\\0\");\r\n }\r\n return null;\r\n }\r\n\r\n /** Sorting **/\r\n compareValues(rsColumn:RowShare.Column, valX: any, valY: any, nodeX: any, nodeY: any): number | null {\r\n // Remove accents and uppercase to sort\r\n let formattedX = this.formatValue(valX).normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\").toLowerCase();\r\n let formattedY = this.formatValue(valY).normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\").toLowerCase();\r\n\r\n if(formattedX == formattedY) {\r\n return 0;\r\n }\r\n else {\r\n return (formattedX > formattedY) ? 1 : -1;\r\n }\r\n }\r\n}","import * as RowShare from \"@/models/RowShare\";\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport { Utils } from \"@/utils/Utilities\";\r\nimport BaseColumnProxy from './BaseColumnProxy';\r\n\r\nexport default class PercentageColumnProxy extends BaseColumnProxy {\r\n parseInitialTypedValue(rsColumn: RowShare.Column, rowVM: RowVM): any {\r\n const val = rowVM.rsRow.Values[rsColumn.Name];\r\n return val ? Number.parseFloat(val) : val;\r\n }\r\n\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any): string {\r\n if(val !== undefined && val !== null && Utils.isNumber(val)) {\r\n // In javascript 0.14 * 100 = 14.000000000000002 !!!\r\n return (val * 1000 / 10).toFixed(rsColumn.MaxDecimals >=2 ? rsColumn.MaxDecimals - 2 : 0) + ' %';\r\n }\r\n return \"\";\r\n }\r\n\r\n getFormattedHtml(rsColumn: RowShare.Column, rowVM: RowVM, val: any): string {\r\n if(!rsColumn || val === undefined || val === null){\r\n return \"\";\r\n }\r\n\r\n if(val.value !== undefined && val.value !== null) {\r\n val = val.value;\r\n }\r\n \r\n if (!Utils.isNumber(val)) {\r\n return \"\";\r\n }\r\n\r\n if(!rsColumn.useSmartRenderer) {\r\n return this.getFormattedText(rsColumn, rowVM, val);\r\n }\r\n\r\n let minValue = 0;\r\n let valueRange = 1;\r\n\r\n if (Utils.isNumber(rsColumn.MinValue) && Utils.isNumber(rsColumn.MaxValue)) {\r\n minValue = rsColumn.MinValue;\r\n valueRange = rsColumn.MaxValue - rsColumn.MinValue;\r\n }\r\n\r\n const position = (val - minValue) * 100 / valueRange;\r\n\r\n var cellContent = `\r\n
= 75 ? 'high' : position >= 25 ? 'medium' : 'low'}\">\r\n
\r\n ${this.getFormattedText(rsColumn, rowVM, val)}\r\n
\r\n
\r\n \r\n
\r\n
\r\n `;\r\n return cellContent;\r\n }\r\n\r\n getEnableAggregate(rsColumn: RowShare.Column): boolean {\r\n return true;\r\n } \r\n}\r\n","import RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport { ColumnStrongType } from '@/models/Column';\r\nimport { OwnerIdType } from \"@/models/Row\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { Utils } from \"@/utils/Utilities\";\r\nimport i18n from '@/modules/Localization';\r\nimport { BigramHelper } from '@/utils/BigramHelper';\r\n\r\nexport default class MemberColumnProxy extends BaseColumnProxy {\r\n parseInitialTypedValue(rsColumn: RowShare.Column, rowVM: RowVM): any {\r\n switch(rsColumn.Type) {\r\n case ColumnStrongType.StatusChangeByUserName:\r\n return rowVM.rsRow.StatusChangeByUserName ?? null;\r\n }\r\n return rowVM.rsRow.Values[rsColumn.Name];\r\n }\r\n\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n if(rowVM) {\r\n return this.parseInitialTypedValue(rsColumn, rowVM);\r\n }\r\n return val;\r\n }\r\n\r\n parse(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : {tooltip: string | null, iconClasses: string[] | null} {\r\n const rsRow = rowVM?.rsRow;\r\n const res: {tooltip: string | null, iconClasses: string[] | null} = {tooltip: null, iconClasses: null};\r\n\r\n if(!rsRow) {\r\n return res;\r\n }\r\n let value = this.getFormattedText(rsColumn, rowVM, val);\r\n let isSurveyUser = (value === RowShare.surveyUserEmail || value === '(' + RowShare.surveyUserEmail + ')');\r\n res.tooltip = null;\r\n res.iconClasses = [];\r\n \r\n if(rsColumn.isOwnerInfo && !isSurveyUser) {\r\n res.iconClasses.push('color' + rowVM.rsRow.OwnerBackgroundColorIndex + \"--text\");\r\n res.iconClasses.push(\"fa\");\r\n } else {\r\n res.iconClasses.push('grey--text');\r\n res.iconClasses.push(\"far\")\r\n }\r\n\r\n if(rsColumn.isOwnerInfo && rsRow?.OwnerIdType == OwnerIdType.Group) {\r\n // groups\r\n res.iconClasses.push(\"fa-users\")\r\n } else if(Utils.isNullOrEmpty(value)) {\r\n // unknown\r\n res.iconClasses.push(\"fa-question\")\r\n res.tooltip = i18n.t(\"MemberRenderer_UnknownUserTooltip\").toString();\r\n } else if(isSurveyUser){\r\n // survey\r\n res.iconClasses.push(\"fa-user\")\r\n res.tooltip = i18n.t(\"MemberRenderer_SurveyUserTooltip\").toString();\r\n } else {\r\n // user\r\n res.iconClasses.push(\"fa-user\")\r\n const regex = /\\([^@]+@[^\\.]+\\.\\w+\\)/gi;\r\n if (regex.test(val)) {\r\n res.tooltip = i18n.t(\"MemberRenderer_NoAccountUserTooltip\").toString();\r\n }\r\n else {\r\n if(rsColumn?.isEmail){\r\n res.tooltip = i18n.t(\"EmailRenderer_Tooltip\", {email: value}).toString();\r\n }\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n getFormattedHtmlTooltip(rsColumn: RowShare.Column, rowVM: RowVM, val: any){\r\n var tooltip = this.parse(rsColumn, rowVM, val).tooltip;\r\n\r\n if(!tooltip)\r\n return val;\r\n\r\n return `${val}

${tooltip}`;\r\n }\r\n\r\n getCellIconClasses(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n return this.parse(rsColumn, rowVM, val).iconClasses;\r\n }\r\n \r\n getQuickFilterText(rsColumn: RowShare.Column, rowVM: RowVM, val: any): string {\r\n return this.getFormattedText(rsColumn, rowVM, val);\r\n }\r\n\r\n getCustomFilterParams(rsCol: RowShare.Column) {\r\n var res = super.getCustomFilterParams(rsCol);\r\n if(rsCol.isOwnerInfo) {\r\n res.keyCreator = (params: any) => this.getFormattedText(rsCol, params.data, params.value);\r\n }\r\n res.convertValuesToStrings = true;\r\n return res\r\n }\r\n\r\n compareValues(rsColumn: RowShare.Column, valX: any, valY: any, nodeX: any, nodeY: any): number | null {\r\n\r\n if(!(rsColumn?.isOwnerInfo ?? false)) {\r\n return null;\r\n }\r\n let caseSensitiveX = this.getFormattedText(rsColumn, nodeX.data, valX);\r\n let caseSensitiveY = this.getFormattedText(rsColumn, nodeY.data, valY);\r\n\r\n let x = caseSensitiveX.toLowerCase();\r\n let y = caseSensitiveY.toLowerCase();\r\n\r\n // if lower case equal, use a case sensitive sort\r\n if (x === y) {\r\n if(caseSensitiveX !== caseSensitiveY)\r\n return caseSensitiveX > caseSensitiveY ? 1 : -1;\r\n\r\n return 0;\r\n }\r\n \r\n return x > y ? 1 : -1;\r\n \r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport { ColumnStrongType } from '@/models/Column';\r\nimport { DateTime } from '@/utils/Date';\r\nimport moment from 'moment';\r\nimport { Utils } from '@/utils/Utilities';\r\n\r\nexport default class DateTimeColumnProxy extends BaseColumnProxy {\r\n parseInitialTypedValue(rsColumn: RowShare.Column, rowVM: RowVM): any {\r\n // if(rsColumn.Type == ColumnStrongType.CreationDate) {\r\n // return rowVM.rsRow.CreatedDateUtc ? new Date(rowVM.rsRow.CreatedDateUtc) : undefined;\r\n // }\r\n // else if(rsColumn.Type == ColumnStrongType.LastWriteDate) {\r\n // return rowVM.rsRow.ModifiedDateUtc ? new Date(rowVM.rsRow.ModifiedDateUtc) : undefined;\r\n // }\r\n // else \r\n if(rsColumn.Type == ColumnStrongType.StatusChangeDateTime) {\r\n return rowVM.rsRow.StatusDateUtc ? new Date(rowVM.rsRow.StatusDateUtc) : undefined;\r\n }\r\n return DateTime.parseDateTime(rowVM.rsRow.Values[rsColumn.Name], null);\r\n }\r\n\r\n getAPIVal(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n if(!val)\r\n return \"\";\r\n\r\n return moment.utc([\r\n val.getFullYear(),\r\n val.getMonth(),\r\n val.getDate(),\r\n val.getHours(),\r\n val.getMinutes(),\r\n 0,\r\n 0\r\n ]).toDate().toJSON();\r\n }\r\n\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n if(val) {\r\n if(this.isDateTimeValue(rsColumn)){\r\n let options: any = { dateStyle: \"short\", timeStyle: val.getSeconds() > 0 ? \"medium\" : \"short\"};\r\n return val.toLocaleString(navigator.language, options);\r\n }\r\n return val.toLocaleDateString(navigator.language);\r\n }\r\n return \"\";\r\n }\r\n\r\n getFormattedHtmlTooltip(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n if(val) {\r\n let options: any = {dateStyle: \"full\"};\r\n if(this.isDateTimeValue(rsColumn)) {\r\n options.timeStyle = val.getSeconds() > 0 ? \"medium\" : \"short\";\r\n return val.toLocaleString(navigator.language, options);\r\n }\r\n return val.toLocaleDateString(navigator.language, options);\r\n }\r\n return \"\";\r\n }\r\n\r\n getCellIconClasses(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n if(!rsColumn || rsColumn.Type != ColumnStrongType.Reminder || val == null)\r\n return null;\r\n if (!(val instanceof Date)) {\r\n return null;\r\n }\r\n const reminderDate : Date = moment.utc([\r\n val.getUTCFullYear(),\r\n val.getUTCMonth(),\r\n val.getUTCDate(),\r\n val.getUTCHours(),\r\n val.getUTCMinutes(),\r\n 0,\r\n 0\r\n ]).toDate();\r\n\r\n const currentDate: Date = new Date();\r\n\r\n if (currentDate > reminderDate){\r\n return ['fa', 'fa-bell-exclamation', 'error--text']\r\n }\r\n\r\n return ['fa', 'fa-bell'];\r\n }\r\n\r\n isDateTimeValue(rsColumn: RowShare.Column): boolean {\r\n if(rsColumn) {\r\n return rsColumn.isDateTimeFormat;\r\n }\r\n return false;\r\n }\r\n\r\n areEquals(val1: any, val2: any) {\r\n if(val1 === null || val1 === undefined || val2 === null || val2 === undefined)\r\n return val1 === val2;\r\n\r\n if(!Utils.isDate(val1) || !Utils.isDate(val2)) {\r\n return false;\r\n }\r\n\r\n\r\n return val1.getTime() === val2.getTime();\r\n }\r\n\r\n /** Filters **/\r\n\r\n getCustomFilter(rsCol: RowShare.Column) : null | string{\r\n return \"agDateColumnFilter\";\r\n }\r\n\r\n getCustomFilterParams(rsCol: RowShare.Column) : null | any {\r\n return {\r\n inRangeInclusive: true,\r\n filterOptions: [\r\n 'equals',\r\n 'notEqual',\r\n 'lessThan',\r\n 'lessThanOrEqual',\r\n 'greaterThan',\r\n 'greaterThanOrEqual',\r\n 'inRange',\r\n {\r\n displayKey: 'blanks',\r\n displayName: 'Blanks',\r\n predicate: function (filterValue: any, cellValue: any) {\r\n return !cellValue || cellValue == \"\";\r\n },\r\n numberOfInputs: 0,\r\n },\r\n {\r\n displayKey: 'notblanks',\r\n displayName: 'Not Blanks',\r\n predicate: function (filterValue: any, cellValue: any) {\r\n return cellValue && cellValue != \"\";\r\n },\r\n numberOfInputs: 0,\r\n },\r\n ],\r\n comparator: (filterLocalDateAtMidnight: any, cellValue: any) => {\r\n let dateCellValue = DateTime.parseDateTime(cellValue, null);\r\n\r\n if(dateCellValue == null) {\r\n return 0;\r\n }\r\n\r\n let dateToCompare = new Date(dateCellValue.getFullYear(), dateCellValue.getMonth(), dateCellValue.getDate());\r\n if(dateToCompare < filterLocalDateAtMidnight) {\r\n return -1;\r\n }\r\n else if(dateToCompare > filterLocalDateAtMidnight) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n }\r\n }\r\n\r\n getQuickFilterText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n return this.getFormattedText(rsColumn, rowVM, val) + \" \" + this.getFormattedHtmlTooltip(rsColumn, rowVM, val);\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport i18n from '@/modules/Localization';\r\n\r\nexport default class EmailColumnProxy extends BaseColumnProxy {\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n return val;\r\n }\r\n\r\n getFormattedHtmlTooltip(rsColumn: RowShare.Column, rowVM: RowVM, val: any){\r\n if(val)\r\n return `${val}
${i18n.t(\"EmailRenderer_Tooltip\").toString()}
`\r\n else\r\n return null;\r\n }\r\n\r\n getCellIconClasses(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n return ['fal', 'fa-envelope'];\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport i18n from '@/modules/Localization';\r\nimport { Hyperlink } from \"@/models/Hyperlink\";\r\n\r\nexport default class HyperLinkColumnProxy extends BaseColumnProxy {\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n let link = new Hyperlink(val);\r\n return link.displayName ? link.displayName : link.url;\r\n }\r\n\r\n getFormattedHtmlTooltip(rsColumn: RowShare.Column, rowVM: RowVM, val: any){\r\n let link = new Hyperlink(val);\r\n if(link.url){\r\n return `${link.displayName}
${i18n.t(\"HyperlinkRenderer_Tooltip\").toString()}
`\r\n }\r\n else {\r\n return link.displayName;\r\n }\r\n }\r\n\r\n getFormattedHtml(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n if(!rsColumn || val === undefined || val === null){\r\n return \"\";\r\n }\r\n let link = new Hyperlink(val);\r\n\r\n var cellContent = `\r\n `;\r\n \r\n return cellContent;\r\n }\r\n\r\n getCellIconClasses(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n if(val != null && val != undefined && val != \"\")\r\n {\r\n return ['fal', 'fa-external-link'];\r\n } \r\n return null;\r\n }\r\n\r\n isAlwaysEditable() {\r\n return true;\r\n }\r\n\r\n /** Clipboard **/\r\n getClipboardValue(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n let link = new Hyperlink(val);\r\n let result = link?.url ?? \"\";\r\n if(link.displayName) {\r\n result += '|' + link.displayName;\r\n }\r\n return result;\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport i18n from '@/modules/Localization';\r\n\r\nexport default class TwoStatesBooleanColumnProxy extends BaseColumnProxy {\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n return val;\r\n }\r\n\r\n getFormattedHtml(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n if(!rsColumn || val === undefined || val === null)\r\n return \"\";\r\n\r\n var cellValue = Utils.parseBoolean(val, false);\r\n\r\n return cellValue\r\n ? ``\r\n : '';\r\n }\r\n\r\n /** Filters **/\r\n getCustomFilterParams(rsCol: RowShare.Column) : Promise {\r\n var res = super.getCustomFilterParams(rsCol);\r\n res.valueFormatter = (params: agGrid.ValueFormatterParams) => {\r\n if(params.value === true) {\r\n return i18n.t('Common_True').toString();\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n /** Aggregation **/\r\n\r\n canShowTotal() : boolean {\r\n return true;\r\n }\r\n\r\n addToTotal(currentAggResult: any, rowVM: RowVM, rsColumn: RowShare.Column): any {\r\n const val = Utils.parseBoolean(rowVM?.getValue(rsColumn, this), false)\r\n if(val)\r\n currentAggResult++;\r\n \r\n return currentAggResult\r\n }\r\n\r\n formatTotal(aggResult: any, rowCount: number): any {\r\n return this.getRowCountFormat(\"Aggregation_TwoStateBooleanFormat\", aggResult, rowCount);\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport i18n from '@/modules/Localization';\r\nimport FileVM from '@/viewModels/Table/FileVM';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport { params } from 'vee-validate/dist/types/rules/alpha';\r\n\r\nexport default class BlobColumnProxy extends BaseColumnProxy {\r\n isAlwaysEditable() {\r\n return true;\r\n }\r\n\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n return val;\r\n }\r\n \r\n getFormattedHtml(rsColumn: RowShare.Column, rowVM: RowVM, val: any): string {\r\n return this.innerGetHtml(rsColumn, rowVM, val, true)\r\n }\r\n\r\n getFormattedHtmlTooltip(rsColumn: RowShare.Column, rowVM: RowVM, val: any): string {\r\n return this.innerGetHtml(rsColumn, rowVM, val, false)\r\n }\r\n\r\n innerGetHtml(rsColumn: RowShare.Column, rowVM: RowVM, val: any, isThumbnail: boolean): string {\r\n if(!rsColumn || val === undefined || val === null || val === \"\")\r\n return \"\";\r\n\r\n var isImage = val?.ContentType?.startsWith('image/') ?? false; \r\n \r\n var downloadUrl = \"\";\r\n if(val?.AbsoluteFileUrl){\r\n let url = new URL(val?.AbsoluteFileUrl);\r\n if(url) {\r\n downloadUrl = url.pathname;\r\n }\r\n }\r\n\r\n var thumbnailUrl = '';\r\n var cellContent = \"\";\r\n\r\n if(isImage) {\r\n thumbnailUrl = downloadUrl + (isThumbnail ? \"?_ssb_img=S;h:40\" : \"\");\r\n cellContent = `\r\n
\r\n \r\n
\r\n `;\r\n } \r\n else {\r\n cellContent = `\r\n
\r\n \r\n ${val.FileName}\r\n
\r\n `;\r\n }\r\n\r\n return cellContent;\r\n }\r\n\r\n areEquals(val1: any, val2: any) {\r\n if(val1 === null || val1 === undefined || val2 === null || val2 === undefined)\r\n return val1 === val2;\r\n\r\n return val1.AbsoluteFileUrl === val2.AbsoluteFileUrl\r\n && val1.ContentType === val2.ContentType\r\n && val1.FileName === val2.FileName\r\n && val1.ImageUrl === val2.ImageUrl\r\n && val1.LastWriteTimeUtc === val2.LastWriteTimeUtc\r\n && val1.Size == val2.Size;\r\n }\r\n\r\n /** Filters **/\r\n \r\n getCustomFilterParams(rsCol: RowShare.Column) : null | any {\r\n var res = super.getCustomFilterParams(rsCol);\r\n \r\n res.valueFormatter = (params: ICellRendererParams) => {\r\n if(params.value)\r\n return i18n.t(\"Filter_Blob_NotEmpty\").toString();\r\n else\r\n return i18n.t(\"Filter_Blob_Empty\").toString();\r\n }\r\n\r\n return res;\r\n }\r\n\r\n /** Clipboard **/\r\n getClipboardValue(rsColumn: RowShare.Column, rowVM: RowVM, val: any): any {\r\n let fileVM = val;\r\n if(fileVM) {\r\n return fileVM.AbsoluteFileUrl ? fileVM.AbsoluteFileUrl : fileVM.ImageUrl;\r\n }\r\n return null;\r\n }\r\n\r\n /** Grid context menu **/\r\n getContextMenuEntries(params: agGrid.GetContextMenuItemsParams) : agGrid.MenuItemDef[] | null {\r\n if(!params.value)\r\n return null;\r\n\r\n return [new ShowImageContextMenuEntry(params)];\r\n }\r\n}\r\n\r\n\r\nclass ShowImageContextMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('Grid_DownloadBlobContextMenuEntry').toString();\r\n\r\n private params: agGrid.GetContextMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams){\r\n this.params = params;\r\n }\r\n\r\n public action = () => {\r\n let file = this.params.value;\r\n if(file.AbsoluteFileUrl) {\r\n let url = new URL(file.AbsoluteFileUrl);\r\n if(url) {\r\n window?.open(url.pathname, '_blank')?.focus();\r\n }\r\n }\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\n\r\nexport default class CommentColumnProxy extends BaseColumnProxy {\r\n parseInitialTypedValue(rsColumn: RowShare.Column, rowVM: RowVM): any {\r\n const comment = rowVM.rsRow.Values[rsColumn.Name];\r\n var count = comment?.CommentCount;\r\n\r\n if(count === undefined || count === null)\r\n return count;\r\n\r\n var res = Number.parseFloat(count);\r\n return res;\r\n }\r\n\r\n getFormattedText(rsColumn: RowShare.Column, rowVM: RowVM, val: any) : string {\r\n return val;\r\n }\r\n\r\n getRenderer(rsCol: RowShare.Column) : string{\r\n return 'CommentRenderer';\r\n }\r\n \r\n isAlwaysEditable() {\r\n return true;\r\n }\r\n\r\n /** Filters **/\r\n getCustomFilter(rsCol: RowShare.Column) : null | string{\r\n return \"agNumberColumnFilter\";\r\n }\r\n\r\n getCustomFilterParams(rsCol: RowShare.Column) : null | any {\r\n return {\r\n inRangeInclusive: true,\r\n filterOptions: [\r\n 'equals',\r\n 'notEqual',\r\n 'lessThan',\r\n 'lessThanOrEqual',\r\n 'greaterThan',\r\n 'greaterThanOrEqual',\r\n 'inRange'\r\n ]\r\n }\r\n }\r\n\r\n /** Clipboard **/\r\n getClipboardValue(rsColumn: RowShare.Column, rowVM: RowVM, val: any) {\r\n return `${rsColumn.DisplayName} : ${val ?? 0}`;\r\n }\r\n \r\n}","import { ICellRendererComp, ICellRendererParams } from \"ag-grid-community\";\r\nimport RowVM from \"@/viewModels/Table/rowVM\";\r\nimport ColumnVM from \"@/viewModels/Table/columnVM\";\r\nimport { upperFirst } from \"lodash\";\r\n\r\n/**\r\n * Generic renderer that uses the methods provided by the ColumnProxy from ColumnVM\r\n */\r\nexport default class ProxyBasedRenderer implements ICellRendererComp {\r\n cellContainer!: HTMLElement;\r\n cellValue!: HTMLElement;\r\n errorIcon!: HTMLElement;\r\n savingIcon!: HTMLElement;\r\n cellIcon!: HTMLElement;\r\n\r\n init(params: ICellRendererParams){\r\n const rowVM = params.data;\r\n const colVM = params.colDef;\r\n\r\n if(!colVM?.columnProxy) {\r\n return;\r\n }\r\n\r\n this.cellContainer = document.createElement(\"div\");\r\n this.cellContainer.classList.add(\"cell-container\");\r\n let wrapperClass = colVM.columnProxy.getRendererWrapperClass(colVM.rsColumn, rowVM, params.value);\r\n if(wrapperClass)\r\n this.cellContainer.classList.add(wrapperClass);\r\n\r\n this.errorIcon = document.createElement(\"i\");\r\n this.errorIcon.classList.add(\"v-icon\", \"notranslate\",\"mr-1\", \"cell-container-status-icon\", \"cell-container-error-icon\", \"far\", \"fa-exclamation-circle\",\r\n \"theme--light\",\"error--text\");\r\n \r\n this.errorIcon.title = rowVM?.getCellError((params.colDef).rsColumn) || \"\";\r\n this.cellContainer.appendChild(this.errorIcon);\r\n this.savingIcon = document.createElement(\"i\");\r\n this.savingIcon.classList.add(\"mr-1\",\"cell-container-status-icon\", \"cell-container-saving-icon\", \"far\", \"fa-spinner-third\", \"fa-spin\", \"primary--text\");\r\n this.cellContainer.appendChild(this.savingIcon);\r\n\r\n let val = this.getVal(params.value, colVM, rowVM);\r\n\r\n // optional cell icon\r\n var cellIconClasses = colVM.columnProxy.getCellIconClasses(colVM.rsColumn, rowVM, params.value ?? \"\");\r\n if(cellIconClasses){\r\n this.cellIcon = document.createElement(\"i\");\r\n this.cellIcon.classList.add(\"v-icon\", \"notranslate\", \"theme--light\", \"grid-cell-icon\", \"mr-2\");\r\n for(let c of cellIconClasses)\r\n this.cellIcon.classList.add(c);\r\n \r\n if(!val) {\r\n this.cellIcon.style.display = 'none';\r\n }\r\n\r\n this.cellContainer.appendChild(this.cellIcon);\r\n }\r\n\r\n this.cellValue = document.createElement(\"span\");\r\n this.cellValue.classList.add(\"content\");\r\n this.cellValue.innerHTML = val;\r\n this.cellContainer.appendChild(this.cellValue);\r\n }\r\n\r\n getGui(): HTMLElement {\r\n return this.cellContainer;\r\n }\r\n \r\n private getVal(paramsVal : any, colVM: ColumnVM, rowVM: RowVM){\r\n if(paramsVal === RowVM.cellNotAccessible) {\r\n return paramsVal;\r\n }\r\n let formulaError = colVM.columnProxy.getFormulaError(colVM.rsColumn, rowVM);\r\n if(formulaError) {\r\n return formulaError; \r\n } else { \r\n return colVM.columnProxy.getFormattedHtml(colVM.rsColumn, rowVM, paramsVal ?? \"\") ?? \"\";\r\n }\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n const rowVM = params.data;\r\n const colVM = params.colDef;\r\n\r\n if(!colVM?.columnProxy) {\r\n return true;\r\n }\r\n\r\n let val = this.getVal(params.value, colVM, rowVM);\r\n this.cellValue.innerHTML = val;\r\n this.errorIcon.title = rowVM?.getCellError((params.colDef).rsColumn) || \"\";\r\n if(this.cellIcon) {\r\n this.cellIcon.style.display = (params.value && !this.errorIcon.title) ? 'inherit' : 'none';\r\n }\r\n return true;\r\n }\r\n}","import { CellDoubleClickedEvent, ICellRendererComp, ICellRendererParams } from \"ag-grid-community\";\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\n\r\nexport default class CommentRenderer implements ICellRendererComp {\r\n rsRow!: RowVM | null;\r\n rsColumn!: ColumnVM | null;\r\n commentCount!: number;\r\n cellContainer!: HTMLElement;\r\n cellValue!: HTMLElement;\r\n params!: ICellRendererParams;\r\n\r\n init(params: ICellRendererParams) {\r\n this.params = params;\r\n this.rsRow = params.node.data;\r\n this.rsColumn = params.colDef;\r\n\r\n if(!this.rsColumn || !this.rsRow)\r\n return;\r\n \r\n this.commentCount = params.value ?? 0;\r\n\r\n this.cellContainer = document.createElement(\"span\");\r\n this.cellContainer.classList.add(\"comment-renderer\");\r\n this.cellContainer.setAttribute(\"data-comment-count\", this.commentCount.toString());\r\n this.cellContainer.innerHTML = \"\";\r\n if(this.commentCount == 0)\r\n this.cellContainer.classList.add(\"comment-renderer-empty\");\r\n }\r\n\r\n getGui(): HTMLElement{\r\n return this.cellContainer;\r\n }\r\n\r\n refresh(params: ICellRendererParams) {\r\n this.params = params;\r\n this.commentCount = params.value ?? 0;\r\n\r\n if(this.cellContainer) {\r\n if(this.commentCount == 0) {\r\n this.cellContainer.classList.add(\"comment-renderer-empty\");\r\n }\r\n else {\r\n this.cellContainer.classList.remove(\"comment-renderer-empty\");\r\n }\r\n }\r\n \r\n return true;\r\n }\r\n}","import { ICellRendererComp, ICellRendererParams } from \"ag-grid-community\";\r\nimport { BigramHelper } from \"@/utils/BigramHelper\";\r\nimport RowVM from \"@/viewModels/Table/rowVM\";\r\nimport ColumnVM from \"@/viewModels/Table/columnVM\";\r\n\r\nexport default class RowOwnerHeaderRenderer implements ICellRendererComp {\r\n cellContainer!: HTMLElement;\r\n params!: ICellRendererParams;\r\n\r\n init(params: ICellRendererParams) {\r\n this.params = params;\r\n\r\n this.cellContainer = document.createElement(\"div\");\r\n this.cellContainer.classList.add(\"bigram-renderer\");\r\n \r\n const bigramElement = this.createBigramElement();\r\n if(!bigramElement)\r\n return;\r\n\r\n this.cellContainer.appendChild(bigramElement);\r\n }\r\n\r\n createBigramElement(){\r\n const rowVM = this.params.node.data;\r\n const colVM = this.params.colDef;\r\n const assignation = rowVM?.getAssignation();\r\n \r\n if(!colVM || !rowVM || !assignation)\r\n return null;\r\n\r\n const bigramElement = document.createElement(\"div\");\r\n\r\n // the grid does not show row owners bigrams \r\n if(!rowVM.listVM.list?.ShowOwnerInformations || rowVM.isNew)\r\n return;\r\n\r\n var classes = assignation.rowOwner\r\n ? BigramHelper.getBigramClassesForRowOwner(assignation.rowOwner, true)\r\n : BigramHelper.getBigramClassesForSecurityPrincipal(assignation.securityPrincipal, true);\r\n\r\n bigramElement.classList.add(...classes);\r\n bigramElement.title = assignation.rowOwner\r\n ? BigramHelper.getBigramTooltipForRowOwner(assignation.rowOwner)\r\n : BigramHelper.getBigramTooltipForSecurityPrincipal(assignation.securityPrincipal);\r\n\r\n if(classes.includes(\"rs-bigram-unknown\"))\r\n bigramElement.innerHTML = \"\";\r\n else if(classes.includes(\"rs-bigram-survey\"))\r\n bigramElement.innerHTML = \"\";\r\n else\r\n bigramElement.innerText = assignation.rowOwner ? assignation.rowOwner.Bigram : assignation.securityPrincipal?.Bigram;\r\n \r\n return bigramElement;\r\n }\r\n \r\n getGui(): HTMLElement{\r\n return this.cellContainer;\r\n }\r\n\r\n refresh(params: ICellRendererParams) {\r\n this.params = params;\r\n this.cellContainer.innerHTML = '';\r\n\r\n const bigramElement = this.createBigramElement();\r\n if(bigramElement)\r\n this.cellContainer.appendChild(bigramElement);\r\n return true;\r\n }\r\n\r\n destroy() {\r\n }\r\n}","import i18n from \"@/modules/Localization\";\r\nimport { ICellRendererComp, ICellRendererParams } from \"ag-grid-community\";\r\n\r\nexport default class TotalRowHeaderRenderer implements ICellRendererComp {\r\n cellContainer!: HTMLElement;\r\n\r\n init(params: ICellRendererParams){\r\n this.cellContainer = document.createElement(\"div\");\r\n this.cellContainer.classList.add(\"total-row-header-renderer\");\r\n this.cellContainer.innerText = i18n.t(\"Aggregation_RowHeader\").toString();\r\n }\r\n\r\n getGui(): HTMLElement {\r\n return this.cellContainer;\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n return true;\r\n }\r\n}","import { ICellRendererComp, ICellRendererParams } from \"ag-grid-community\";\r\n\r\nexport default class TotalRowRenderer implements ICellRendererComp {\r\n cellContainer!: HTMLElement;\r\n\r\n init(params: ICellRendererParams){\r\n this.cellContainer = document.createElement(\"div\");\r\n this.cellContainer.classList.add(\"total-row-renderer\");\r\n this.cellContainer.innerText = params.value;\r\n }\r\n\r\n getGui(): HTMLElement {\r\n return this.cellContainer;\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.cellContainer.innerText = params.value;\r\n return true;\r\n }\r\n}","import { ICellRendererParams, ITooltipComp, ITooltipParams } from \"ag-grid-community\";\r\nimport RowVM from \"@/viewModels/Table/rowVM\";\r\nimport ColumnVM from \"@/viewModels/Table/columnVM\";\r\nimport RsColumnManager from \"@/columnProxies/RsColumnManager\";\r\nimport i18n from \"@/modules/Localization\";\r\n\r\n/**\r\n * Generic renderer that uses the methods provided by the ColumnProxy from ColumnVM\r\n */\r\nexport default class ProxyBasedTooltipRenderer implements ITooltipComp {\r\n cellContainer!: HTMLElement;\r\n cellValue!: HTMLElement;\r\n cellIcon!: HTMLElement;\r\n\r\n init(params: ITooltipParams){\r\n const rowVM = params.data;\r\n const colVM = params.colDef;\r\n \r\n const proxy = RsColumnManager.getProxy(colVM.rsColumn.Type);\r\n let val = rowVM?.getValue(colVM.rsColumn, proxy); \r\n\r\n this.cellContainer = document.createElement(\"div\");\r\n this.cellContainer.classList.add(\"cell-tooltip-container\");\r\n let wrapperClass = colVM.columnProxy.getRendererWrapperClass(colVM.rsColumn, rowVM, val);\r\n if(wrapperClass) {\r\n this.cellContainer.classList.add(wrapperClass);\r\n }\r\n \r\n let html = \"\";\r\n if(val === RowVM.cellNotAccessible) {\r\n html = \"\" + i18n.t(\"Notif_NotAccessibleCell\").toString() + \"\";\r\n }\r\n else {\r\n html = colVM.columnProxy.getFormattedHtmlTooltip(colVM.rsColumn, rowVM, val) ?? \"\"; \r\n }\r\n\r\n // optional cell icon\r\n var cellIconClasses = colVM.columnProxy.getCellIconClasses(colVM.rsColumn, rowVM, val);\r\n if(cellIconClasses){\r\n this.cellIcon = document.createElement(\"i\");\r\n this.cellIcon.classList.add(\"v-icon\", \"notranslate\", \"theme--light\", \"grid-cell-icon\", \"mr-2\");\r\n for(let c of cellIconClasses)\r\n this.cellIcon.classList.add(c);\r\n \r\n if(!html) {\r\n this.cellIcon.style.display = 'none';\r\n }\r\n\r\n this.cellContainer.appendChild(this.cellIcon);\r\n }\r\n\r\n this.cellValue = document.createElement(\"span\");\r\n this.cellValue.classList.add(\"content\");\r\n this.cellValue.innerHTML = html;\r\n this.cellContainer.appendChild(this.cellValue);\r\n }\r\n\r\n getGui(): HTMLElement {\r\n return this.cellContainer;\r\n }\r\n}","import { Utils } from \"@/utils/Utilities\";\r\nimport { ICellRendererComp, ICellRendererParams } from \"ag-grid-community\";\r\n\r\nexport default class GroupRowRenderer implements ICellRendererComp {\r\n cellContainer!: HTMLElement;\r\n\r\n init(params: ICellRendererParams){\r\n this.cellContainer = document.createElement(\"div\");\r\n this.cellContainer.innerText = `${params.value}`;\r\n this.cellContainer.title = params.value;\r\n this.cellContainer.style.textOverflow = 'ellipsis';\r\n this.cellContainer.style.overflow = 'hidden';\r\n if(params.node.data != undefined) {\r\n this.cellContainer.innerText = \"\";\r\n }\r\n }\r\n\r\n getGui(): HTMLElement {\r\n return this.cellContainer;\r\n }\r\n\r\n refresh(params: ICellRendererParams): boolean {\r\n this.cellContainer.innerText = `${params.value}`;\r\n if(params.node.data != undefined) {\r\n this.cellContainer.innerText = \"\";\r\n }\r\n return true;\r\n }\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',[_c('v-card-text',{staticClass:\"pa-0 blob-editor-card\"},[_c('blob-field',{ref:\"blobfield\",attrs:{\"column\":_vm.params.colDef.rsColumn,\"rowVM\":_vm.params.data},model:{value:(_vm.currentFile),callback:function ($$v) {_vm.currentFile=$$v},expression:\"currentFile\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"blob-field-wrapper\"},[_c('v-overlay',{staticClass:\"delete-overlay\",attrs:{\"opacity\":0.8,\"absolute\":\"\",\"value\":_vm.removeImageConfirmation}},[_c('v-btn',{staticClass:\"text-none ma-3\",attrs:{\"text\":\"\",\"color\":\"white\",\"ripple\":false},on:{\"click\":_vm.cancelled}},[_vm._v(_vm._s(_vm.$t('Action_Cancel')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none ma-3\",attrs:{\"ripple\":false,\"color\":\"error\"},on:{\"click\":_vm.removeImage}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"fal fa-trash-alt\")]),_vm._v(_vm._s(_vm.$t('Action_ConfirmDelete')))],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"px-0 ma-2 blob-field-toolbar\"},[(_vm.canUpdateFile)?_c('v-btn',{ref:\"openPickerBtn\",staticClass:\"text-none mr-1\",attrs:{\"text\":\"\",\"small\":!_vm.$vuetify.breakpoint.mobile,\"x-small\":_vm.$vuetify.breakpoint.mobile,\"color\":\"primary\"},on:{\"click\":_vm.selectFile}},[_c('input',{ref:\"inputFile\",staticClass:\"pa-0 ma-0 hidden\",attrs:{\"type\":\"file\",\"hidden\":\"\",\"accept\":_vm.authorizedFiles},on:{\"change\":_vm.onFileUpdated}}),_vm._v(\" \"),(_vm.hasData)?_c('span',[_vm._v(_vm._s(_vm.$t('Action_Update')))]):_c('span',[_vm._v(_vm._s(_vm.$t('Action_AddFile')))])]):_vm._e(),_vm._v(\" \"),(_vm.hasData && _vm.canRemoveImage)?_c('v-btn',{staticClass:\"mr-1\",attrs:{\"small\":!_vm.$vuetify.breakpoint.mobile,\"x-small\":_vm.$vuetify.breakpoint.mobile,\"text\":\"\",\"color\":\"primary\",\"height\":_vm.$vuetify.breakpoint.mobile ? 24 : 40,\"width\":_vm.$vuetify.breakpoint.mobile ? 24 : 40},on:{\"click\":_vm.confirmRemoveImage}},[_c('v-icon',{staticClass:\"ma-0 pa-0\",attrs:{\"small\":!_vm.$vuetify.breakpoint.mobile,\"x-small\":_vm.$vuetify.breakpoint.mobile,\"color\":\"primary\"}},[_vm._v(\"far fa-trash-alt\")])],1):_vm._e(),_vm._v(\" \"),(_vm.hasData)?_c('v-btn',{staticClass:\"text-none pa-0\",class:_vm.canUpdateFile ? '' : 'ml-1',attrs:{\"small\":!_vm.$vuetify.breakpoint.mobile,\"x-small\":_vm.$vuetify.breakpoint.mobile,\"color\":\"primary\",\"target\":\"_blank\",\"height\":_vm.$vuetify.breakpoint.mobile ? 24 : 40,\"width\":_vm.$vuetify.breakpoint.mobile ? 24 : 40,\"href\":_vm.downloadUrl,\"download\":\"\"},on:{\"click\":function($event){$event.stopPropagation();{}}}},[_c('v-icon',{staticClass:\"ma-0 pa-0\",attrs:{\"small\":!_vm.$vuetify.breakpoint.mobile,\"x-small\":_vm.$vuetify.breakpoint.mobile}},[_vm._v(\"fal fa-arrow-to-bottom\")])],1):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"px-0 ma-2 blob-field-toolbar\"},[(_vm.hasData)?_c('div',{staticClass:\"blob-field-filename\",attrs:{\"title\":_vm.fileName}},[_vm._v(_vm._s(_vm.fileName))]):_vm._e()]),_vm._v(\" \"),(_vm.isImage)?_c('div',[_c('v-img',{attrs:{\"src\":_vm.thumbnailUrl,\"max-width\":\"310\",\"max-height\":\"30vh\",\"contain\":\"\"}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class FileVM {\r\n ContentType!: string;\r\n FileName!: string;\r\n ImageUrl!: string;\r\n AbsoluteFileUrl!: string;\r\n Size!: number;\r\n LastWriteTimeUtc!: Date;\r\n File!: File | undefined;\r\n}","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport FileVM from '@/viewModels/Table/FileVM';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\nimport { ColumnStrongType } from '@/models/Column';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\n\r\n@Component({name: \"BlobField\", components: { ConfirmationDialog }})\r\nexport default class BlobField extends Vue{\r\n @Prop() value !: FileVM | null; \r\n @Prop() column !: RowShare.Column;\r\n @Prop() rowVM!: RowVM;\r\n\r\n selectedFile: FileVM | null = null;\r\n removeImageConfirmation: boolean = false;\r\n\r\n get hasData(){\r\n return this.value && this.value.FileName;\r\n }\r\n\r\n get fileName() {\r\n return this.value?.FileName ?? \"\";\r\n }\r\n\r\n get fileSize() {\r\n if(this.value?.Size){\r\n return Utils.humanFileSize(this.value.Size);\r\n }\r\n return \"\";\r\n }\r\n\r\n get downloadUrl() {\r\n if(this.value?.AbsoluteFileUrl){\r\n let url = new URL(this.value?.AbsoluteFileUrl);\r\n if(url) {\r\n return url.pathname;\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n get thumbnailUrl() {\r\n if(this.downloadUrl) {\r\n return this.downloadUrl + \"?_ssb_img=S\" + encodeURIComponent(';w:310');\r\n }\r\n return \"\";\r\n }\r\n\r\n get canRemoveImage() {\r\n if(this.column.isMandatory || !this.canUpdateFile || this.column.isChildColumn) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n get canUpdateFile(){\r\n if(!this.rowVM.rsRow.CanUpdate || this.column.IsReadOnly || this.column.isChildColumn || this.rowVM.isLocked)\r\n return false;\r\n \r\n return true;\r\n }\r\n\r\n selectFile() {\r\n this.focusButton();\r\n let imputElt = this.$refs.inputFile as HTMLInputElement;\r\n if(imputElt) {\r\n imputElt.click();\r\n }\r\n }\r\n \r\n focusButton(){\r\n let element = (this.$refs.openPickerBtn).$el as HTMLButtonElement;\r\n if(element){\r\n this.$nextTick(() => {\r\n element.focus(); \r\n });\r\n }\r\n }\r\n\r\n onFileUpdated(event: any) {\r\n let newFile = new FileVM();\r\n newFile.FileName = event.target.files[0].name;\r\n newFile.File = event.target.files[0];\r\n newFile.Size = event.target.files[0].size;\r\n this.selectedFile = newFile;\r\n this.$emit('input', this.selectedFile)\r\n }\r\n\r\n removeImage() {\r\n this.selectedFile = new FileVM();\r\n this.$emit('input', this.selectedFile)\r\n this.removeImageConfirmation = false;\r\n }\r\n\r\n cancelled() {\r\n this.removeImageConfirmation = false;\r\n }\r\n\r\n confirmRemoveImage() {\r\n this.removeImageConfirmation = true;\r\n }\r\n\r\n get isImage(): boolean {\r\n if(this.value?.ContentType) {\r\n return this.value.ContentType.startsWith('image/');\r\n }\r\n return false;\r\n }\r\n\r\n get authorizedFiles(): string {\r\n if(this.column.Type == ColumnStrongType.Image){\r\n return \"image/*\";\r\n }\r\n else{\r\n return \"*/*\";\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BlobField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BlobField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BlobField.vue?vue&type=template&id=5da4b5e4&scoped=true&\"\nimport script from \"./BlobField.vue?vue&type=script&lang=ts&\"\nexport * from \"./BlobField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BlobField.vue?vue&type=style&index=0&id=5da4b5e4&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 \"5da4b5e4\",\n null\n \n)\n\nexport default component.exports","\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport FileVM from '@/viewModels/Table/FileVM';\r\nimport BlobField from '@/views/Table/cellsComponents/Blob/BlobField.vue';\r\n\r\n@Component({name: \"BlobEditor\", components: { BlobField }})\r\nexport default class BlobEditor extends Vue{\r\n params!: ICellEditorParams;\r\n pCurrentFile: FileVM | null = null;\r\n\r\n openedWithTab = false;\r\n\r\n get currentFile() : FileVM | null{\r\n return this.pCurrentFile;\r\n }\r\n set currentFile(value : FileVM | null){\r\n this.pCurrentFile = value;\r\n this.params.api?.stopEditing();\r\n }\r\n\r\n mounted(){\r\n this.pCurrentFile = this.params.value;\r\n Vue.nextTick(() => {\r\n if(this.pCurrentFile)\r\n return;\r\n\r\n let tabRef = (this.params.context)['tabbedIntoCellEditor'];\r\n let thisTabRef = this.params.data.rsRow.Id + '|' + this.params.colDef.colId;\r\n \r\n // reset until next navigation, otherwise tabing, closing, and dbl-clicking would detect a tab instead of dblclick\r\n (this.params.context)['tabbedIntoCellEditor'] = null;\r\n\r\n if(tabRef === thisTabRef) {\r\n (this.$refs.blobfield).focusButton();\r\n } else {\r\n (this.$refs.blobfield).selectFile();\r\n }\r\n });\r\n }\r\n\r\n isPopup(){\r\n return true;\r\n }\r\n\r\n getValue(){\r\n return this.currentFile;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BlobEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BlobEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BlobEditor.vue?vue&type=template&id=ef386426&scoped=true&\"\nimport script from \"./BlobEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BlobEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BlobEditor.vue?vue&type=style&index=0&id=ef386426&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 \"ef386426\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('button',{ref:\"btn\",staticClass:\"ml-1 open-comment-btn\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.openCommentDialog}},[_vm._v(\"\\n Add comment\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport * as API from '@/api/Api';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\n\r\n\r\n@Component({name: \"CommentEditor\", components: { ConfirmationDialog }})\r\nexport default class CommentEditor extends Vue{\r\n params!: ICellEditorParams;\r\n openedWithTab = false;\r\n\r\n isPopup() { return false; }\r\n\r\n getValue() { return this.params.value; }\r\n\r\n mounted() {\r\n Vue.nextTick(() => {\r\n let tabRef = (this.params.context)['tabbedIntoCellEditor'];\r\n let thisTabRef = this.params.data.rsRow.Id + '|' + this.params.colDef.colId;\r\n \r\n // reset until next navigation, otherwise tabing, closing, and dbl-clicking would detect a tab instead of dblclick\r\n (this.params.context)['tabbedIntoCellEditor'] = null;\r\n\r\n if(tabRef === thisTabRef) {\r\n let element = this.$refs.btn as HTMLButtonElement;\r\n if(element)\r\n element.focus();\r\n } else {\r\n this.openCommentDialog();\r\n }\r\n });\r\n }\r\n\r\n openCommentDialog(){\r\n EventBus.$emit(RowShare.Event.ROW_EDIT_COMMENTS, {\r\n row: (this.params.data).rsRow,\r\n column: (this.params.colDef).rsColumn,\r\n list: (this.params.data).listVM.list,\r\n refreshParentRow: () => this.refreshParentRow()\r\n });\r\n }\r\n\r\n async refreshParentRow() {\r\n let rsRow = this.params.data;\r\n if(rsRow?.rsRow) {\r\n let updatedRow = await API.Row.load(rsRow.rsRow.Id);\r\n if(updatedRow) {\r\n rsRow.rsRow = updatedRow;\r\n this.params.node.setData(rsRow);\r\n this.params.api?.refreshCells({rowNodes: [this.params.node], force: true});\r\n }\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CommentEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CommentEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommentEditor.vue?vue&type=template&id=1b6ec591&scoped=true&\"\nimport script from \"./CommentEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommentEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommentEditor.vue?vue&type=style&index=0&id=1b6ec591&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 \"1b6ec591\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"editor\",attrs:{\"id\":\"datetimeEditorContainer\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-text-field',{ref:\"datetimeInput\",staticClass:\"mb-1\",attrs:{\"outlined\":\"\",\"single-line\":\"\",\"dense\":\"\",\"hide-details\":\"auto\"},on:{\"change\":_vm.updateDatePicker},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [(_vm.isReminder)?_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fa fa-bell\")]):_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-calendar\")])]},proxy:true}]),model:{value:(_vm.formattedDateTime),callback:function ($$v) {_vm.formattedDateTime=$$v},expression:\"formattedDateTime\"}}),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('vc-date-picker',{ref:\"datePicker\",attrs:{\"trim-weeks\":\"\",\"is-expanded\":\"\",\"mode\":_vm.selectionMode,\"locale\":_vm.locale,\"is24hr\":_vm.is24hrTimeFormat,\"is-required\":_vm.isRequired},on:{\"input\":_vm.pickerChanged},model:{value:(_vm.pickerValue),callback:function ($$v) {_vm.pickerValue=$$v},expression:\"pickerValue\"}})],1),_vm._v(\" \"),_c('v-card-actions',{staticClass:\"pt-0\"},[_c('v-btn',{staticClass:\"text-none pa-1\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.chooseNow}},[_vm._v(_vm._s(_vm.nowLabel))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.isDateTime)?_c('v-btn',{staticClass:\"text-none pa-1\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.closeEditor(true)}}},[_vm._v(_vm._s(_vm.$t('Action_Cancel')))]):_vm._e(),_vm._v(\" \"),(_vm.isDateTime)?_c('v-btn',{staticClass:\"text-none pa-1\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.closeEditor(false)}}},[_vm._v(_vm._s(_vm.$t('Action_Validate')))]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport moment from 'moment';\r\nimport { DateTime } from '@/utils/Date';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport { ColumnStrongType } from '@/models/Column';\r\n\r\n@Component({name: \"DateTimeEditor\"})\r\nexport default class DateTimeEditor extends Vue{\r\n params!: ICellEditorParams;\r\n selectedDateTime: Date | null = null;\r\n formattedDateTime: string = \"\";\r\n timeOut!: number;\r\n\r\n isInitialized = false;\r\n\r\n mounted() {\r\n this.pickerValue = this.currentDate;\r\n \r\n this.$nextTick(() => {\r\n this.isInitialized = true;\r\n (this.$refs.datetimeInput)?.focus();\r\n })\r\n }\r\n\r\n get isDateTime():boolean {\r\n let rsColumn = (this.params.colDef)?.rsColumn;\r\n return rsColumn?.isDateTimeFormat;\r\n }\r\n\r\n get isReminder():boolean {\r\n let rsColumn = (this.params.colDef)?.rsColumn;\r\n return rsColumn.Type == ColumnStrongType.Reminder;\r\n }\r\n\r\n get selectionMode() {\r\n return this.isDateTime ? 'dateTime' : 'date';\r\n }\r\n\r\n get currentDate(): Date | null {\r\n return DateTime.parseDateTime(this.params.value, null);\r\n }\r\n\r\n get locale() {\r\n return window.navigator.language;\r\n }\r\n\r\n get isRequired() {\r\n if(this.isDateTime) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getValue() {\r\n this.updateDatePicker();\r\n return this.selectedDateTime;\r\n }\r\n\r\n get pickerValue(): Date | null {\r\n return this.selectedDateTime;\r\n }\r\n\r\n set pickerValue(value: Date | null) {\r\n\r\n if(value) {\r\n this.selectedDateTime = value;\r\n }\r\n let options: any = {dateStyle: \"short\", timeStyle: \"short\"};\r\n if(this.selectedDateTime) {\r\n this.formattedDateTime = this.isDateTime ? this.selectedDateTime.toLocaleString(navigator.language, options) : this.selectedDateTime.toLocaleDateString(navigator.language);\r\n }\r\n else\r\n {\r\n this.formattedDateTime = \"\";\r\n } \r\n let picker = (this.$refs.datePicker);\r\n if(picker && this.pickerValue){\r\n picker.move(this.pickerValue);\r\n }\r\n }\r\n\r\n pickerChanged() {\r\n if(this.isInitialized && !this.isDateTime){\r\n this.params.api?.stopEditing();\r\n }\r\n }\r\n\r\n isPopup() {\r\n return true;\r\n }\r\n\r\n updateDatePicker() {\r\n moment.locale(this.locale);\r\n let date = moment(this.formattedDateTime, [\"L LT\", \"L LTS\"]);\r\n if(date.isValid()){\r\n this.pickerValue = date.toDate();\r\n (this.$refs.datePicker).move(this.pickerValue);\r\n }\r\n else\r\n {\r\n this.selectedDateTime = null;\r\n this.pickerValue = null;\r\n }\r\n }\r\n\r\n get nowLabel() {\r\n if(this.isDateTime) {\r\n return this.$i18n.t('Action_Now').toString();\r\n }\r\n else {\r\n return this.$i18n.t('Action_Today').toString();\r\n }\r\n }\r\n\r\n closeEditor(cancel: boolean) {\r\n this.params.api?.stopEditing(cancel);\r\n }\r\n\r\n chooseNow() {\r\n this.pickerValue = moment().toDate();\r\n this.pickerChanged();\r\n }\r\n\r\n get is24hrTimeFormat(): boolean {\r\n moment.locale(this.locale);\r\n // Try to parse a time in 24hr format using browser locale.\r\n // if date is invalid, browser is in 12hr time format\r\n let date = moment(\"14:00\", \"LT\", true);\r\n return date.isValid();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DateTimeEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DateTimeEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DateTimeEditor.vue?vue&type=template&id=1201b33e&scoped=true&\"\nimport script from \"./DateTimeEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./DateTimeEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DateTimeEditor.vue?vue&type=style&index=0&id=1201b33e&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 \"1201b33e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{class:{'hyperlink-editor' : this.canEditValue},attrs:{\"elevation\":\"0\"}},[_c('v-btn',{staticClass:\"mb-1\",attrs:{\"small\":\"\",\"href\":_vm.formattedLinkUrl,\"disabled\":_vm.disableLink,\"target\":\"blank\",\"color\":\"primary\",\"icon\":\"\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-external-link\")])],1),_vm._v(\" \"),(_vm.canEditValue)?_c('v-text-field',{ref:\"urlField\",staticClass:\"my-2\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.urlLabel,\"placeholder\":_vm.urlPlaceholder,\"type\":\"url\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\"))return null;return _vm.onUrlTabPress.apply(null, arguments)}},model:{value:(_vm.linkUrl),callback:function ($$v) {_vm.linkUrl=$$v},expression:\"linkUrl\"}}):_vm._e(),_vm._v(\" \"),(_vm.canEditValue)?_c('v-text-field',{ref:\"displayNameField\",staticClass:\"my-2\",attrs:{\"id\":\"displayName\",\"autocomplete\":\"displayName\",\"name\":\"displayName\",\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.nameLabel,\"placeholder\":_vm.namePlaceholder},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\"))return null;return _vm.onNameTabPress.apply(null, arguments)}},model:{value:(_vm.linkName),callback:function ($$v) {_vm.linkName=$$v},expression:\"linkName\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Hyperlink } from '@/models/RowShare';\r\nimport { ICellEditorParams } from 'node_modules/ag-grid-community/main';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({name: \"HyperlinkEditor\"})\r\nexport default class HyperlinkEditor extends Vue {\r\n params!: ICellEditorParams;\r\n link: Hyperlink | null = null;\r\n\r\n isPopup(): boolean {\r\n return this.canEditValue;\r\n }\r\n\r\n mounted() {\r\n this.refreshDisplay();\r\n this.$nextTick(() => {\r\n (this.$refs.urlField)?.focus();\r\n if (this.params.eventKey && this.params.eventKey.length == 1 && this.link?.displayName) {\r\n (this.$refs.displayNameField)?.focus();\r\n }\r\n });\r\n }\r\n\r\n refreshDisplay() {\r\n let val = '';\r\n \r\n if (this.params.eventKey === \"Delete\") // suppr \r\n val = '';\r\n else if (this.params.eventKey && this.params.eventKey.length == 1)\r\n val = this.params.value + this.params.eventKey;\r\n else\r\n val = this.params.value ?? '';\r\n\r\n this.link = new Hyperlink(val);\r\n }\r\n\r\n onUrlTabPress(event: KeyboardEvent) {\r\n if(!event.shiftKey) {\r\n ((this.$refs.displayNameField).$el).focus();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n onNameTabPress(event: KeyboardEvent) {\r\n if(event.shiftKey) {\r\n ((this.$refs.urlField).$el).focus();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n get urlLabel(): string {\r\n return this.$i18n.t(\"HyperlinkEditor_urlLabel\").toString();\r\n }\r\n\r\n get nameLabel(): string {\r\n return this.$i18n.t(\"HyperlinkEditor_nameLabel\").toString();\r\n }\r\n\r\n get linkUrl(): string {\r\n if(!this.link) {\r\n return \"\";\r\n }\r\n return this.link.url ?? \"\";\r\n }\r\n\r\n set linkUrl(value: string) {\r\n if(this.link) {\r\n this.link.url = value;\r\n }\r\n }\r\n\r\n get formattedLinkUrl(): string {\r\n if(this.link != null) {\r\n if(this.link.url == \"\") {\r\n return \"\";\r\n }\r\n return this.link.url.startsWith('http') ? this.link.url : 'http://' + this.link.url;\r\n }\r\n return \"\";\r\n }\r\n\r\n get linkName(): string {\r\n if(!this.link) {\r\n return \"\";\r\n }\r\n return this.link.displayName ?? \"\";\r\n }\r\n\r\n set linkName(value: string) {\r\n if(this.link) {\r\n this.link.displayName = value;\r\n }\r\n }\r\n\r\n get urlPlaceholder() {\r\n return this.$i18n.t(\"HyperlinkEditor_urlPlaceholder\").toString();\r\n }\r\n\r\n get namePlaceholder() {\r\n return this.$i18n.t(\"HyperlinkEditor_namePlaceholder\").toString();\r\n }\r\n\r\n get disableLink(): boolean {\r\n return this.linkUrl == \"\";\r\n }\r\n\r\n getValue() {\r\n if(this.link != null) {\r\n let cellValue = this.link.url;\r\n if(this.link.displayName) {\r\n cellValue += \"|\" + this.link.displayName;\r\n }\r\n return cellValue;\r\n }\r\n return \"\";\r\n }\r\n\r\n get canEditValue(): boolean {\r\n return this?.params?.data?.rsRow?.CanUpdate && !this.params?.data.isLocked;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./HyperlinkEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./HyperlinkEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HyperlinkEditor.vue?vue&type=template&id=4a946fba&scoped=true&\"\nimport script from \"./HyperlinkEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./HyperlinkEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HyperlinkEditor.vue?vue&type=style&index=0&id=4a946fba&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 \"4a946fba\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"editor\",style:('min-width:' + _vm.minWidth + 'px'),attrs:{\"id\":\"container\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.cancel.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\"))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.onTabPressed.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\"))return null;if(!$event.shiftKey)return null;return _vm.onShiftTabPressed.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.onEnterPressed.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;return _vm.onCtrlEnterPressed.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;return _vm.onCtrlEnterPressed.apply(null, arguments)}]}},[_c('lookup-field',{ref:\"lookupfield\",attrs:{\"rowVM\":_vm.params.data,\"column\":_vm.params.colDef.rsColumn,\"listVM\":_vm.params.context.listVM},on:{\"valueChanged\":_vm.onDropdownClosed}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('multiselect',{ref:\"multiselect\",attrs:{\"options\":_vm.lookupItems,\"track-by\":\"name\",\"label\":\"name\",\"showLabels\":false,\"multiple\":_vm.isLookupMultiValued,\"placeholder\":\"\",\"option-height\":40,\"maxHeight\":200,\"close-on-select\":!_vm.isLookupMultiValued,\"options-limit\":10000,\"loading\":_vm.loadingItems,\"open-direction\":\"auto\"},on:{\"input\":_vm.onValueChanged},scopedSlots:_vm._u([{key:\"singleLabel\",fn:function({ option }){return [_c('v-chip',{staticClass:\"white--text lookupItem\",attrs:{\"label\":\"\",\"color\":option.color,\"outlined\":option.noColorDefined}},[_c('span',{class:option.noColorDefined?'':option.color},[_vm._v(_vm._s(option.name))])])]}},{key:\"tag\",fn:function({ option, remove }){return [_c('span',{staticClass:\"lookupItem mx-1 mb-2 v-chip v-chip--label theme--light v-size--default tag\",class:option.color + (option.noColorDefined ? ' v-chip--outlined primary--text' : '')},[_c('span',{staticClass:\"valueItem\"},[_vm._v(_vm._s(option.name))]),_vm._v(\" \"),_c('button',{staticClass:\"v-icon notranslate v-chip__close v-icon--link v-icon--right fal fa-times theme--light\",staticStyle:{\"font-size\":\"18px\"},attrs:{\"type\":\"button\",\"tabindex\":\"-1\"},on:{\"click\":function($event){return remove(option)}}})])]}},{key:\"option\",fn:function(props){return [_c('div',{staticClass:\"d-flex flex-nowrap\"},[_c('div',{staticClass:\"align-self-center mr-2\"},[(_vm.isLookupMultiValued && _vm.isSelected(props.option))?_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"fa-check-square\")]):_vm._e(),_vm._v(\" \"),(_vm.isLookupMultiValued && !_vm.isSelected(props.option))?_c('v-icon',{attrs:{\"color\":\"grey-lighten2\"}},[_vm._v(\"far fa-square\")]):_vm._e(),_vm._v(\" \"),(!_vm.isLookupMultiValued && _vm.isSelected(props.option))?_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fa-check\")]):_c('div',{staticClass:\"filler\"})],1),_vm._v(\" \"),_c('div',[_c('v-chip',{staticClass:\"white--text lookupItem\",class:props.option.noColorDefined?'single-value':'',attrs:{\"label\":\"\",\"link\":\"\",\"color\":props.option.color,\"outlined\":props.option.noColorDefined}},[_c('span',{class:props.option.noColorDefined?'':props.option.color},[_vm._v(_vm._s(props.option.name))])])],1)])]}}]),model:{value:(_vm.selectedValues),callback:function ($$v) {_vm.selectedValues=$$v},expression:\"selectedValues\"}},[_vm._v(\" \"),_vm._v(\" \"),_vm._v(\" \"),_c('template',{slot:\"noResult\"},[_c('span',[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]),_vm._v(\" \"),_c('template',{slot:\"noOptions\"},[_c('span',[_vm._v(_vm._s(_vm.$t('Common_EmptyList')))])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport * as API from \"@/api/Api\";\r\nimport * as Models from '@/models/RowShare';\r\nimport { ColumnStrongType, LookUpItem } from '@/models/RowShare';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport Multiselect from 'vue-multiselect';\r\nimport RsColumnManager from '@/columnProxies/RsColumnManager';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\n\r\n@Component({ name: 'LookupField', components:{ Multiselect }})\r\nexport default class LookupField extends Vue {\r\n @Prop() rowVM !: RowVM;\r\n @Prop() column !: Models.Column;\r\n @Prop() listVM !: ListVM;\r\n\r\n selectedValues: LookUpItem[] | LookUpItem | null = null;\r\n //isLookupMultiValued: boolean = false;\r\n lookupItems: LookUpItem[] = [];\r\n loadingItems: boolean = false;\r\n\r\n public get isLookupMultiValued(): boolean {\r\n if(this.column) {\r\n return this.column.isLookupMultiValued;\r\n }\r\n return false;\r\n }\r\n\r\n async init() {\r\n if(this.column) {\r\n this.loadingItems = true;\r\n this.initListItems()\r\n .then(() => { \r\n this.loadingItems = false;\r\n this.initSelectedValues();\r\n });\r\n }\r\n }\r\n\r\n initSelectedValues() {\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n\r\n if(this.isLookupMultiValued) {\r\n let stringValues = this.rowVM.getValue(this.column, proxy);\r\n if(stringValues && stringValues.length > 0) {\r\n this.selectedValues = [];\r\n for (const strVal of stringValues) {\r\n let val = this.lookupItems?.find(item => item.name == strVal) ?? null;\r\n if(val)\r\n this.selectedValues.push(val);\r\n else if (strVal) {\r\n let newItem = new LookUpItem(strVal, \"\");\r\n this.selectedValues.push();\r\n this.lookupItems.push(newItem);\r\n }\r\n }\r\n this.selectedValues = this.lookupItems?.filter(item => stringValues.includes(item.name));\r\n } else {\r\n this.selectedValues = null;\r\n }\r\n } else {\r\n var value = this.rowVM.getValue(this.column, proxy);\r\n var strVal = value ? value[0] : null;\r\n this.selectedValues = this.lookupItems?.find(item => item.name == strVal) ?? null;\r\n if(this.selectedValues == null && strVal?.length > 0) {\r\n this.selectedValues = new LookUpItem(strVal, \"\");\r\n this.lookupItems.unshift(this.selectedValues);\r\n } else if(this.selectedValues != null) {\r\n // we move the item in first position because vuemultiselect won't let us center on it when opening\r\n this.lookupItems.splice(this.lookupItems.indexOf(this.selectedValues), 1);\r\n this.lookupItems.unshift(this.selectedValues); \r\n }\r\n }\r\n }\r\n\r\n async initListItems() { \r\n if(this.column) {\r\n if(this.column.Type == ColumnStrongType.LookUpList) {\r\n this.lookupItems = (await API.List.loadChoice(this.column.LookupListId, this.column.LookupListColumnName))?.map(item => new LookUpItem(item, \"\")) ?? [];\r\n }\r\n else {\r\n this.lookupItems = this.column.parsedLookupItems;\r\n }\r\n }\r\n }\r\n \r\n activate(){\r\n ((this.$refs.multiselect)).activate();\r\n }\r\n\r\n isSelected(item: LookUpItem) {\r\n if(this.isLookupMultiValued && Utils.isArray(this.selectedValues)) {\r\n let idx = this.selectedValues.findIndex(i => i.name == item.name);\r\n return idx > -1;\r\n } else {\r\n return this.selectedValues == item;\r\n }\r\n }\r\n\r\n getValue(){\r\n let res: string[] = [];\r\n if(this.selectedValues) {\r\n if(this.isLookupMultiValued && Utils.isArray(this.selectedValues)) {\r\n res = this.selectedValues.map(item => item.name);\r\n }\r\n else {\r\n res = [(this.selectedValues)?.name];\r\n }\r\n }\r\n return res;\r\n }\r\n\r\n onValueChanged() {\r\n this.$emit('valueChanged', this.getValue())\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LookupField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LookupField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LookupField.vue?vue&type=template&id=22e3fcfd&scoped=true&\"\nimport script from \"./LookupField.vue?vue&type=script&lang=ts&\"\nexport * from \"./LookupField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LookupField.vue?vue&type=style&index=0&id=22e3fcfd&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 \"22e3fcfd\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport LookupField from '@/views/Table/cellsComponents/Lookup/LookupField.vue'\r\n\r\n@Component({ name: \"LookupEditor\", components: { LookupField } })\r\nexport default class LookupEditor extends Vue{\r\n params!: ICellEditorParams;\r\n\r\n get lookupfield() : LookupField {\r\n return this.$refs.lookupfield;\r\n }\r\n\r\n mounted(){\r\n this.refreshDisplay();\r\n }\r\n\r\n async refreshDisplay() {\r\n this.lookupfield.init();\r\n setTimeout(() => {\r\n this.lookupfield.activate();\r\n }, 0);\r\n }\r\n\r\n isPopup() { \r\n return true;\r\n }\r\n\r\n getValue(){\r\n return this.lookupfield.getValue();\r\n }\r\n\r\n onDropdownClosed(){\r\n if(!this.lookupfield.isLookupMultiValued) {\r\n setTimeout(() => {this.params.stopEditing()}, 0);\r\n }\r\n }\r\n\r\n get minWidth(){\r\n return this.params.column.getActualWidth();\r\n }\r\n \r\n cancel() {\r\n setTimeout(() => {\r\n this.params.api?.stopEditing(true);\r\n this.params.api?.setFocusedCell(this.params.rowIndex, this.params.column);\r\n }, 0);\r\n }\r\n\r\n onEnterPressed() {\r\n // set timeout is required because vue-multiselect need to be able to select the value before the editor is destroyed\r\n if(!this.lookupfield.isLookupMultiValued) {\r\n setTimeout(() => {\r\n this.params.api?.stopEditing();\r\n this.params.api?.setFocusedCell(this.params.rowIndex, this.params.column);\r\n }, 0);\r\n }\r\n }\r\n\r\n onCtrlEnterPressed(){\r\n // no set timeout here, strl enter should only close the lookup\r\n this.params.api?.stopEditing();\r\n this.params.api?.setFocusedCell(this.params.rowIndex, this.params.column);\r\n }\r\n\r\n onTabPressed(){\r\n this.params.api?.tabToNextCell();\r\n }\r\n\r\n onShiftTabPressed(){\r\n this.params.api?.tabToPreviousCell();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LookupEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LookupEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LookupEditor.vue?vue&type=template&id=69a7aa5f&scoped=true&\"\nimport script from \"./LookupEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./LookupEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LookupEditor.vue?vue&type=style&index=0&id=69a7aa5f&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 \"69a7aa5f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{directives:[{name:\"currency\",rawName:\"v-currency\",value:(_vm.options),expression:\"options\"}],ref:\"numberInput\",attrs:{\"value\":_vm.formattedValue,\"solo\":\"\",\"dense\":\"\",\"flat\":\"\",\"single-line\":\"\",\"hide-details\":\"\",\"reverse\":\"\"},on:{\"change\":_vm.onChange,\"input\":_vm.onInput}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { KeyCodes } from '@/utils/KeyCodes';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport { Column } from '@/models/Column';\r\nimport { CurrencyInputOptions } from 'vue-currency-input';\r\nimport numeral from 'numeral';\r\n\r\n@Component({name: \"NumberEditor\"})\r\nexport default class NumberEditor extends Vue{\r\n params!: ICellEditorParams;\r\n isPercentage: boolean = false;\r\n maxValue: number | null = null;\r\n minValue: number | null = null;\r\n\r\n options : CurrencyInputOptions = {currency: undefined, locale: navigator.language};\r\n\r\n formattedValue: string | null = null;\r\n\r\n get rsColumnSettings(): Column | null {\r\n let col = this.params?.colDef;\r\n if(!col) {\r\n return null;\r\n }\r\n return col.rsColumn;\r\n }\r\n\r\n onInput(value: any) {\r\n this.formattedValue = value;\r\n }\r\n\r\n onChange(value: any) {\r\n this.formattedValue = value;\r\n }\r\n\r\n mounted(){\r\n this.refreshDisplay();\r\n this.$nextTick(() => {\r\n (this.$refs.numberInput)?.focus();\r\n });\r\n }\r\n\r\n created() {\r\n if(this.rsColumnSettings) {\r\n this.isPercentage = this.rsColumnSettings.isPercentage;\r\n if(Utils.isNumber(this.rsColumnSettings.MinValue)) {\r\n this.minValue = this.rsColumnSettings.MinValue;\r\n if(this.isPercentage) {\r\n this.minValue = this.minValue * 100;\r\n }\r\n }\r\n if(Utils.isNumber(this.rsColumnSettings.MaxValue)) {\r\n this.maxValue = this.rsColumnSettings.MaxValue;\r\n if(this.isPercentage) {\r\n this.maxValue = this.maxValue * 100;\r\n }\r\n }\r\n }\r\n this.options.distractionFree = { hideCurrencySymbol: true, hideGroupingSymbol: !this.rsColumnSettings?.showThousandsSeparator, hideNegligibleDecimalDigits: true}\r\n if(this.rsColumnSettings?.MaxDecimals) {\r\n this.options.precision = !this.isPercentage ? this.rsColumnSettings.MaxDecimals : ((this.rsColumnSettings.MaxDecimals - 2) < 0 ? 0 : (this.rsColumnSettings?.MaxDecimals - 2));\r\n }\r\n else {\r\n this.options.precision = 0;\r\n }\r\n this.$ci.globalOptions = this.options;\r\n }\r\n\r\n refreshDisplay() {\r\n // undefined would produce a 0, while null is leave as it\r\n let cellValue = numeral(this.params.value ?? null);\r\n if(cellValue.value() !== null && this.isPercentage) {\r\n cellValue = cellValue.multiply(100);\r\n }\r\n if (this.params.eventKey === \"Delete\") { // suppr \r\n cellValue.set(null);\r\n }\r\n else if (this.params.eventKey && this.params.eventKey.length == 1 && \"-0123456789\".includes(this.params.eventKey)) {\r\n if(cellValue.value() !== null) {\r\n cellValue = numeral(cellValue.value()?.toString() + this.params.eventKey);\r\n }\r\n else {\r\n cellValue = numeral(this.params.eventKey);\r\n }\r\n }\r\n if(this.params.eventKey == '-' && cellValue.value() === null) {\r\n this.formattedValue = '-';\r\n }\r\n else {\r\n this.$ci.setValue(this.$refs.numberInput, cellValue.value());\r\n }\r\n }\r\n\r\n getValue(){\r\n let value = numeral(this.$ci.getValue(this.$refs.numberInput));\r\n if(value.value() === null) {\r\n return null;\r\n }\r\n return this.isPercentage ? value.divide(100).value() : value.value();\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NumberEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NumberEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NumberEditor.vue?vue&type=template&id=162d8fd4&scoped=true&\"\nimport script from \"./NumberEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./NumberEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NumberEditor.vue?vue&type=style&index=0&id=162d8fd4&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 \"162d8fd4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('button',{ref:\"btn\",staticClass:\"ml-1\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.openRelationDialog}},[_vm._v(\"\\n Add link\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport { Row } from '@/api/Api';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport * as Models from '@/models/RowShare';\r\n\r\n@Component({ name: \"RelationEditor\"})\r\nexport default class RelationEditor extends Vue{\r\n params!: ICellEditorParams;\r\n\r\n async mounted(){\r\n let column = (this.params.colDef)?.rsColumn;\r\n if(column?.IsReadOnly) {\r\n this.params.api.stopEditing(true);\r\n return;\r\n }\r\n this.openRelationDialog();\r\n }\r\n\r\n openRelationDialog(){\r\n EventBus.$emit(Models.Event.ROW_EDIT_RELATED_ROWS, {\r\n rowVM: (this.params.data),\r\n relatedListId: (this.params.colDef)?.rsColumn?.RelatedListId,\r\n column: (this.params.colDef)?.rsColumn,\r\n refreshParentRow: () => {\r\n this.refreshParentRow();\r\n }\r\n });\r\n }\r\n\r\n isPopup() { return false; }\r\n\r\n getValue() { return this.params.value; }\r\n\r\n cancel() {\r\n setTimeout(() => {\r\n this.params.api?.stopEditing(true);\r\n this.params.api?.setFocusedCell(this.params.rowIndex, this.params.column);\r\n }, 0);\r\n }\r\n\r\n async refreshParentRow() {\r\n let rsRow = this.params.data;\r\n this.params.api?.stopEditing(true); //On fait croire à AG-Grid qu'on n'a pas modifié la cellule\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RelationEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RelationEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RelationEditor.vue?vue&type=template&id=2aaa0290&scoped=true&\"\nimport script from \"./RelationEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./RelationEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RelationEditor.vue?vue&type=style&index=0&id=2aaa0290&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 \"2aaa0290\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"pa-0 richtext-grid-editor-wrapper\",attrs:{\"width\":_vm.cardWidth},on:{\"keydown\":_vm.onKeydown}},[_c('v-card-text',{staticClass:\"pa-0\"},[_c('rich-text-field',{ref:\"richtextfield\",attrs:{\"autofocus\":true},model:{value:(_vm.editorContent),callback:function ($$v) {_vm.editorContent=$$v},expression:\"editorContent\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.editor)?_c('div',{staticClass:\"richtext-container pa-2\"},[_c('div',{staticClass:\"pa-0\"},[_c('v-toolbar',{staticClass:\"mb-3 px-0\",attrs:{\"height\":\"24\",\"elevation\":\"0\"}},[_c('v-toolbar-items',{staticClass:\"py-0 px-n1\"},[_c('v-btn',{class:{'is-active': _vm.editor.isActive('bold')},attrs:{\"tabindex\":\"-1\",\"text\":\"\",\"tile\":\"\",\"x-small\":\"\",\"title\":\"Ctrl + B\"},on:{\"click\":function($event){_vm.editor.chain().focus().toggleBold().run()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-bold\")])],1),_vm._v(\" \"),_c('v-btn',{class:{'is-active': _vm.editor.isActive('italic')},attrs:{\"tabindex\":\"-1\",\"text\":\"\",\"tile\":\"\",\"x-small\":\"\",\"title\":\"Ctrl + I\"},on:{\"click\":function($event){_vm.editor.chain().focus().toggleItalic().run()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-italic\")])],1),_vm._v(\" \"),_c('v-btn',{class:{'is-active': _vm.editor.isActive('underline')},attrs:{\"tabindex\":\"-1\",\"text\":\"\",\"tile\":\"\",\"x-small\":\"\",\"title\":\"Ctrl + U\"},on:{\"click\":function($event){_vm.editor.chain().focus().toggleUnderline().run()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-underline\")])],1),_vm._v(\" \"),_c('v-btn',{class:{'is-active': _vm.editor.isActive('strike')},attrs:{\"tabindex\":\"-1\",\"text\":\"\",\"tile\":\"\",\"x-small\":\"\",\"title\":\"Ctrl + Shift + X\"},on:{\"click\":function($event){_vm.editor.chain().focus().toggleStrike().run()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-strikethrough\")])],1),_vm._v(\" \"),_c('v-divider',{staticClass:\"mx-0\",attrs:{\"vertical\":\"\"}}),_vm._v(\" \"),_c('v-btn',{class:{'is-active': _vm.editor.isActive('bulletList')},attrs:{\"tabindex\":\"-1\",\"text\":\"\",\"tile\":\"\",\"x-small\":\"\",\"title\":\"Ctrl + Shift + 8\"},on:{\"click\":function($event){_vm.editor.chain().focus().toggleBulletList().run()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-list\")])],1),_vm._v(\" \"),_c('v-btn',{class:{'is-active': _vm.editor.isActive('orderedList')},attrs:{\"tabindex\":\"-1\",\"text\":\"\",\"tile\":\"\",\"x-small\":\"\",\"title\":\"Ctrl + Shift + 7\"},on:{\"click\":function($event){_vm.editor.chain().focus().toggleOrderedList().run()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-list-ol\")])],1),_vm._v(\" \"),_c('v-divider',{staticClass:\"mx-0\",attrs:{\"vertical\":\"\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"tabindex\":\"-1\",\"text\":\"\",\"tile\":\"\",\"x-small\":\"\",\"title\":\"Ctrl + Z\"},on:{\"click\":function($event){_vm.editor.chain().focus().undo().run()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-undo\")])],1),_vm._v(\" \"),_c('v-btn',{attrs:{\"tabindex\":\"-1\",\"text\":\"\",\"tile\":\"\",\"x-small\":\"\",\"title\":\"Ctrl + Shift + Z\"},on:{\"click\":function($event){_vm.editor.chain().focus().redo().run()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-redo\")])],1)],1)],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"pa-1 richtext-editor\"},[(_vm.editor)?_c('editor-content',{staticClass:\"richtext-editor--content\",attrs:{\"tabindex\":\"-1\",\"editor\":_vm.editor},on:{\"keydown\":_vm.onKeydown}}):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Vue, Component, Prop} from 'vue-property-decorator';\r\nimport {Editor, EditorContent, EditorOptions } from \"@tiptap/vue-2\";\r\nimport StarterKit from '@tiptap/starter-kit'\r\nimport Underline from '@tiptap/extension-underline'\r\nimport { KeyCodes } from '@/utils/KeyCodes';\r\n\r\n@Component({name: \"RichTextField\", components: { EditorContent }})\r\nexport default class RichTextField extends Vue {\r\n @Prop({default: null}) value!: string | null;\r\n @Prop({default: false}) autofocus!: boolean;\r\n\r\n editor: any = null;\r\n\r\n // using an initializer to handle explicit external changes in the value (ex: row reloaded)\r\n init() {\r\n if(this.value == null)\r\n return;\r\n\r\n if(this.editor != null) {\r\n this.editor.commands.setContent(this.value, false)\r\n return;\r\n }\r\n\r\n // using editor new to pass content instead of set content improve the ctrl + z behavior \r\n //this.editor.commands.setContent(val, false);\r\n var editorOptions = >{\r\n extensions: [\r\n StarterKit,\r\n Underline,\r\n ],\r\n content: this.value,\r\n onUpdate: () => this.$emit('input', this.editor.getHTML()),\r\n onBlur: () => this.$emit('blur'),\r\n editorProps : {\r\n handleKeyDown: (view: any, event: KeyboardEvent) => this.onKeydown(view, event)\r\n }\r\n };\r\n if(this.autofocus)\r\n editorOptions.autofocus = 'end';\r\n\r\n this.editor = new Editor(editorOptions);\r\n }\r\n\r\n beforeDestroy() {\r\n if(this.editor)\r\n this.editor.destroy();\r\n }\r\n\r\n onKeydown(editorView: any, event: KeyboardEvent) : boolean{\r\n if((event.ctrlKey || event.metaKey) && event.keyCode == KeyCodes.DOM_VK_RETURN) {\r\n return true;\r\n }\r\n return false;\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RichTextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RichTextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RichTextField.vue?vue&type=template&id=8db30902&scoped=true&\"\nimport script from \"./RichTextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./RichTextField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RichTextField.vue?vue&type=style&index=0&id=8db30902&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 \"8db30902\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { KeyCodes } from '@/utils/KeyCodes';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport RichTextField from '@/views/Table/cellsComponents/RichText/RichTextField.vue'\r\n\r\n@Component({name: \"RichTextEditor\", components: { RichTextField }})\r\nexport default class RichTextEditor extends Vue {\r\n params!: ICellEditorParams;\r\n\r\n editorContent: string | null = null;\r\n minimumWidth: number = 400;\r\n\r\n get cardWidth() {\r\n return Math.max(this.minimumWidth, this.params.column.getActualWidth());\r\n }\r\n\r\n isPopup() {\r\n return true;\r\n }\r\n\r\n getPopupPosition() {\r\n return \"over\";\r\n }\r\n\r\n created() {\r\n var val = '';\r\n if (this.params.eventKey === \"Delete\") // suppr \r\n val = '';\r\n else if (this.params.eventKey && this.params.eventKey.length == 1)\r\n val = this.params.value + this.params.eventKey;\r\n else\r\n val = this.params.value;\r\n\r\n this.editorContent = val; \r\n this.$nextTick(() => {\r\n (this.$refs.richtextfield).init(); \r\n }); \r\n }\r\n\r\n getValue() {\r\n return this.editorContent;\r\n }\r\n\r\n cancel() {\r\n this.params.api?.stopEditing(true);\r\n this.params.api?.setFocusedCell(this.params.rowIndex, this.params.column);\r\n }\r\n\r\n validate() {\r\n this.params.api?.stopEditing();\r\n this.params.api?.setFocusedCell(this.params.rowIndex, this.params.column);\r\n }\r\n\r\n onKeydown(event: KeyboardEvent) {\r\n if((event.ctrlKey || event.metaKey) && event.keyCode == KeyCodes.DOM_VK_RETURN) {\r\n this.validate();\r\n event.stopImmediatePropagation();\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RichTextEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RichTextEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RichTextEditor.vue?vue&type=template&id=0639d15f&scoped=true&\"\nimport script from \"./RichTextEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./RichTextEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RichTextEditor.vue?vue&type=style&index=0&id=0639d15f&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 \"0639d15f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"editor\",attrs:{\"id\":\"container\"}},[_c('div',{staticClass:\"bigram-wrapper py-2\"},[_c('bigram',{attrs:{\"dense\":\"\",\"rowOwner\":_vm.rowOwner}}),_vm._v(\" \"),_c('strong',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t('Action_Assign')))])],1),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-wrapper\"},[_c('security-principal-dropdown',{attrs:{\"organization\":_vm.currentOrganization,\"includeTeams\":false,\"showMyOrganization\":false,\"multiple\":false,\"openDirection\":\"auto\",\"memberCreationEnabled\":true},on:{\"close\":_vm.onDropdownClosed},model:{value:(_vm.selectedPrincipal),callback:function ($$v) {_vm.selectedPrincipal=$$v},expression:\"selectedPrincipal\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport * as API from '@/api/Api';\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport SecurityPrincipalDropdown from \"@/views/components/SecurityPrincipalDropdown.vue\";\r\nimport Bigram from \"@/views/components/Bigram.vue\";\r\nimport { BigramHelper } from '@/utils/BigramHelper';\r\nimport { MemberHelper } from '@/utils/MemberHelper';\r\n\r\n@Component({name: \"RowOwnerHeaderEditor\", components: { SecurityPrincipalDropdown, Bigram }})\r\nexport default class RowOwnerHeaderEditor extends Vue{\r\n params!: ICellEditorParams;\r\n orgMembers: API.SecurityPrincipal[] = [];\r\n\r\n selectedPrincipal: RowShare.SecurityPrincipal | string | null = null;\r\n\r\n get rowOwner(){\r\n var rowVM = this.params.data;\r\n return rowVM?.rsRow?.Owner;\r\n }\r\n\r\n getValue(){\r\n return BigramHelper.getAssignationResultFromSecurityPrincipal(this.selectedPrincipal);\r\n }\r\n\r\n onDropdownClosed(){\r\n if(this.selectedPrincipal && this.currentOrganization) {\r\n MemberHelper.addMemberIfNecessary(this.selectedPrincipal, this.currentOrganization.Id);\r\n }\r\n this.params.stopEditing();\r\n }\r\n\r\n isPopup() { \r\n return true;\r\n }\r\n\r\n get currentOrganization() : RowShare.ListTreeOrganization | null {\r\n return ListTreeModule.currentOrganization;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowOwnerHeaderEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowOwnerHeaderEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RowOwnerHeaderEditor.vue?vue&type=template&id=4259b202&scoped=true&\"\nimport script from \"./RowOwnerHeaderEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./RowOwnerHeaderEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RowOwnerHeaderEditor.vue?vue&type=style&index=0&id=4259b202&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 \"4259b202\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-text-field',{ref:\"textInput\",staticClass:\"editor\",attrs:{\"solo\":\"\",\"dense\":\"\",\"flat\":\"\",\"single-line\":\"\",\"hide-details\":\"\",\"maxlength\":_vm.maxLength},model:{value:(_vm.cellValue),callback:function ($$v) {_vm.cellValue=$$v},expression:\"cellValue\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\n\r\n\r\n@Component({name: \"TextEditor\"})\r\nexport default class TextEditor extends Vue{\r\n params!: ICellEditorParams;\r\n cellValue: string = \"\";\r\n maxLength: number|null = null; \r\n\r\n mounted(){\r\n this.refreshDisplay();\r\n this.$nextTick(() => {\r\n (this.$refs.textInput)?.focus();\r\n });\r\n }\r\n \r\n refreshDisplay() {\r\n let column = this.params.colDef;\r\n if(column && column.rsColumn && column.rsColumn.MaxLength > 0) {\r\n this.maxLength = column.rsColumn.MaxLength;\r\n }\r\n\r\n if (this.params.eventKey === \"Delete\") // suppr \r\n this.cellValue = '';\r\n else if (this.params.eventKey?.length === 1)\r\n this.cellValue = this.params.value + this.params.eventKey;\r\n else\r\n this.cellValue = this.params.value;\r\n }\r\n\r\n getValue(){\r\n return this.cellValue;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TextEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TextEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextEditor.vue?vue&type=template&id=20433b93&scoped=true&\"\nimport script from \"./TextEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TextEditor.vue?vue&type=style&index=0&id=20433b93&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 \"20433b93\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-text-field',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('##:##:?#?#'),expression:\"'##:##:?#?#'\"}],ref:\"textInput\",staticClass:\"editor\",attrs:{\"solo\":\"\",\"dense\":\"\",\"flat\":\"\",\"single-line\":\"\",\"hide-details\":\"\"},model:{value:(_vm.cellValue),callback:function ($$v) {_vm.cellValue=$$v},expression:\"cellValue\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({name: \"TimeEditor\"})\r\nexport default class TimeEditor extends Vue{\r\n params!: ICellEditorParams;\r\n cellValue: string = \"\";\r\n maxLength: number|null = null;\r\n\r\n mounted(){\r\n this.refreshDisplay(); \r\n this.$nextTick(() => {\r\n (this.$refs.textInput)?.focus();\r\n });\r\n }\r\n\r\n refreshDisplay() {\r\n if (this.params.eventKey === \"Delete\") // suppr \r\n this.cellValue = '';\r\n else if (this.params.eventKey && this.params.eventKey.length == 1 && \"0123456789:\".includes(this.params.eventKey))\r\n this.cellValue = this.params.value + this.params.eventKey;\r\n else\r\n this.cellValue = this.params.value;\r\n }\r\n\r\n getValue() {\r\n if(this.cellValue == '') {\r\n return '';\r\n }\r\n if(this.cellValue.match(/^\\d{2}:\\d{2}:\\d{2}$/) || this.cellValue.match(/^\\d{2}:\\d{2}$/))\r\n return this.cellValue;\r\n if(this.cellValue.match(/^\\d{2}:\\d{2}:\\d{1}$/) || this.cellValue.match(/^\\d{2}:\\d{1}$/))\r\n return this.cellValue + '0';\r\n if(this.cellValue.match(/^\\d{2}:\\d{2}:$/)) \r\n return this.cellValue.substring(0, 5);\r\n else {\r\n return this.params.value;\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TimeEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TimeEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeEditor.vue?vue&type=template&id=d499740a&scoped=true&\"\nimport script from \"./TimeEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimeEditor.vue?vue&type=style&index=0&id=d499740a&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 \"d499740a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-checkbox',{ref:\"ckb\",staticClass:\"editor ma-0 pa-0 pl-3\",attrs:{\"color\":\"primary\",\"dense\":\"\",\"hide-details\":\"\",\"on-icon\":\"fal fa-check-square\",\"off-icon\":\"fal fa-square\",\"outlined\":\"\",\"ripple\":false},model:{value:(_vm.cellValue),callback:function ($$v) {_vm.cellValue=$$v},expression:\"cellValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({name: \"TwoStatesBooleanEditor\"})\r\nexport default class TwoStatesBooleanEditor extends Vue{\r\n params!: ICellEditorParams;\r\n cellValue: boolean = false;\r\n\r\n mounted(){\r\n var startEditWithKeyboard = !!this.params.eventKey;\r\n \r\n let tabRef = (this.params.context)['tabbedIntoCellEditor'];\r\n let thisTabRef = this.params.data.rsRow.Id + '|' + this.params.colDef.colId;\r\n \r\n // reset until next navigation, otherwise tabing, closing, and dbl-clicking would detect a tab instead of dblclick\r\n (this.params.context)['tabbedIntoCellEditor'] = null;\r\n\r\n if(tabRef === thisTabRef)\r\n startEditWithKeyboard = true;\r\n\r\n this.refreshDisplay();\r\n\r\n if(startEditWithKeyboard) {\r\n Vue.nextTick(() => {\r\n let rootElt = (this.$refs.ckb).$el as HTMLElement;\r\n var inputElt = rootElt.getElementsByTagName(\"input\");\r\n if(inputElt && inputElt.length > 0)\r\n inputElt[0].focus();\r\n });\r\n } else {\r\n this.cellValue = !this.cellValue;\r\n }\r\n }\r\n\r\n refreshDisplay() {\r\n this.cellValue = Utils.parseBoolean(this.params.value, false);\r\n }\r\n\r\n getValue(){\r\n return this.cellValue;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TwoStatesBooleanEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TwoStatesBooleanEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TwoStatesBooleanEditor.vue?vue&type=template&id=078060c8&scoped=true&\"\nimport script from \"./TwoStatesBooleanEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TwoStatesBooleanEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TwoStatesBooleanEditor.vue?vue&type=style&index=0&id=078060c8&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 \"078060c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({hover}){return [_c('v-row',{staticClass:\"column-header flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-btn',{staticClass:\"columnGroup-header--collapse\",attrs:{\"tile\":\"\",\"text\":\"\",\"x-small\":\"\"},on:{\"click\":_vm.toggleExpanded}},[(_vm.params.columnGroup.isExpanded())?_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fal fa-chevron-left\")]):_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fal fa-chevron-right\")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-row',{staticClass:\"pa-0 ma-0 flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"column-title\",attrs:{\"cols\":\"11\"}},[(_vm.relationColumnId)?_c('v-tooltip',{staticClass:\"mr-2\",attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"small\":\"\"}},on),[_vm._v(\"fal fa-link\")])]}}],null,true)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ColumnGroup_Header_TooltipText'))+\"\\n \")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.params.displayName)+\"\\n \")],1)],1)],1)],1)],1),_vm._v(\" \"),(_vm.isMenuEnabled)?_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-col',_vm._g({staticClass:\"column-menu\"},on),[_c('v-row',{staticClass:\"pa-0 ma-0 column-menu--icon\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0 ma-0\"},[(hover || _vm.menuOpened)?_c('v-icon',[_vm._v(\"fal fa-ellipsis-v\")]):_vm._e()],1)],1)],1)]}}],null,true),model:{value:(_vm.menuOpened),callback:function ($$v) {_vm.menuOpened=$$v},expression:\"menuOpened\"}},[_vm._v(\" \"),_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.showColumnSettings}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Action_ColumnSettings')))])],1),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.removeRelationColumn}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Action_RemoveRelationColumn')))])],1)],1)],1):_vm._e()],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport * as models from '@/models/RowShare';\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\nimport * as API from \"@/api/Api\";\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport ListDisplayModeVM from '@/viewModels/Table/listDisplayModeVM';\r\nimport _ from 'lodash';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\n@Component({name: \"columnGroupHeader\"})\r\nexport default class columnGroupHeader extends Vue {\r\n params!: agGrid.IHeaderGroupParams;\r\n\r\n relationColumn: models.Column | null = null;\r\n menuOpened: boolean = false;\r\n\r\n async created() {\r\n if(this.relationColumnId) {\r\n this.relationColumn = await API.Column.load(this.relationColumnId);\r\n }\r\n }\r\n\r\n get relationColumnId(): string { \r\n return (this.params)?.relationColumnId ?? \"\";\r\n }\r\n\r\n get isMenuEnabled(): boolean {\r\n let gridContext = this.params.context;\r\n return (gridContext.listVM.list?.Owned ?? false) && (this.relationColumnId !== \"\");\r\n }\r\n\r\n get currentRoute() {\r\n return this.$router.currentRoute.fullPath;\r\n }\r\n\r\n get listId(): string {\r\n return this.relationColumn?.ListId ?? \"\";\r\n }\r\n\r\n removeRelationColumn() {\r\n var evtArgs = new models.ConfirmationRequiredEventParams(); \r\n evtArgs.title = this.$i18n.t(\"ColumnGroupMenu_DeleteRelationColumn_Title\", [this.relationColumn?.DisplayName, this.params.columnGroup.getChildren()?.length ?? \"\"]).toString();\r\n evtArgs.description1 = this.$i18n.t(\"ColumnGroupMenu_DeleteRelationColumn_Description\", [this.relationColumn?.DisplayName]).toString();\r\n evtArgs.cancelButtonText = this.$i18n.t(\"ColumnGroupMenu_DeleteRelationColumn_CancelButton\").toString();\r\n evtArgs.actionButtonText = this.$i18n.t(\"ColumnGroupMenu_DeleteRelationColumn_ConfirmButton\").toString();\r\n evtArgs.actionButtonIcon = \"trash-alt\";\r\n evtArgs.actionButtonColor = \"error\";\r\n\r\n evtArgs.onConfirmation = async () => {\r\n if(!this.relationColumn)\r\n return;\r\n\r\n this.relationColumn.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n API.Column.remove(this.relationColumn).then((apiRes: boolean | null) => {\r\n let gridViewVM = this.params.context;\r\n if(apiRes && this.params?.api && gridViewVM.listVM.columns) {\r\n\r\n _.remove(gridViewVM.listVM.columns, c => c.RelationColumnId === this.relationColumnId);\r\n let colDefs = this.params.api.getColumnDefs();\r\n if(!colDefs)\r\n return;\r\n\r\n let deletedIndex = colDefs.findIndex(def => (def).headerGroupComponentParams?.relationColumnId === this.relationColumnId);\r\n if(deletedIndex > -1) { \r\n colDefs.splice(deletedIndex, 1);\r\n }\r\n\r\n this.params.api.setColumnDefs(colDefs);\r\n this.params.api.redrawRows();\r\n EventBus.$emit(models.Event.GRID_INFOS_CHANGED, this.params.context);\r\n \r\n } else {\r\n EventBus.$emit(models.Event.GRID_ERROR, { message: this.$i18n.t(\"ColumnGroupMenu_DeleteRelationColumn_ErrorTemplate\", [this.relationColumn?.DisplayName]).toString() });\r\n }\r\n }).catch((err: any) => {\r\n console.log(err);\r\n EventBus.$emit(models.Event.GRID_ERROR, { message: err._message });\r\n });\r\n }\r\n\r\n EventBus.$emit(models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n\r\n }\r\n\r\n showColumnSettings() {\r\n EventBus.$emit(models.Event.SHOW_SIDEPANEL_COLUMN_SETTINGS, \r\n {columnId: this.relationColumnId, listId: this.listId});\r\n }\r\n toggleExpanded() {\r\n this.params.setExpanded(!this.params.columnGroup.isExpanded());\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./columnGroupHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./columnGroupHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./columnGroupHeader.vue?vue&type=template&id=4ecd89f6&scoped=true&\"\nimport script from \"./columnGroupHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./columnGroupHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./columnGroupHeader.vue?vue&type=style&index=0&id=4ecd89f6&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 \"4ecd89f6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"header-container\"},[_c('v-menu',{attrs:{\"disabled\":_vm.descriptionDisabled,\"open-on-hover\":\"\",\"close-delay\":\"500\",\"offset-y\":\"\",\"open-delay\":\"1500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-hover',{scopedSlots:_vm._u([{key:\"default\",fn:function({hover}){return [_c('v-row',_vm._g({staticClass:\"column-header flex-nowrap\",attrs:{\"no-gutters\":\"\"}},on),[_c('v-col',[_c('v-row',{staticClass:\"pa-0 ml-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0 mr-2 column-indicators\"},[(_vm.columnDescription.specialColumnIcon)?_c('v-icon',{staticClass:\"column-indicator mr-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.columnDescription.specialColumnIcon)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.columnDescription.columnHasPermissions)?_c('v-icon',{staticClass:\"column-indicator mr-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.columnDescription.permissionsIcon)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.columnDescription.columnIsMandatory)?_c('v-icon',{staticClass:\"mandatory-indicator\",attrs:{\"color\":\"error\"}},[_vm._v(\"fa-asterisk\")]):_vm._e()],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 mr-2 column-actions\"},[(_vm.isSortable)?_c('v-btn',{staticClass:\"mr-2 pa-0 column-indicator clickable\",attrs:{\"icon\":\"\",\"elevation\":\"0\",\"x-small\":\"\"},on:{\"click\":_vm.toggleSort}},[_c('v-icon',{staticClass:\"column-indicator\",attrs:{\"x-small\":\"\"}},[_vm._v(_vm._s(_vm.columnDescription.getSortIcon(hover)))])],1):_vm._e(),_vm._v(\" \"),(!_vm.columnDescription.isRowGroupColumn)?_c('v-icon',{staticClass:\"column-indicator clickable\",attrs:{\"id\":'filterMenu-' + _vm.params.column.getId()},on:{\"click\":_vm.filterColumn}},[_vm._v(_vm._s(_vm.getFilterIcon(hover)))]):_vm._e()],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-row',{staticClass:\"pa-0 ma-0 flex-nowrap\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"column-title\"},[_vm._v(\"\\n \"+_vm._s(_vm.columnDescription.columnTitle)+\"\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"column-subheader\"},[_vm._v(\"\\n \"+_vm._s(_vm.columnDescription.columnSubName)+\"\\n \")])],1)],1)],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"column-menu\",on:{\"click\":_vm.columnMenu}},[_c('v-row',{staticClass:\"pa-0 ma-0 column-menu--hidden\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.columnDescription.hiddenColumnsBesideCount),expression:\"columnDescription.hiddenColumnsBesideCount\"}],staticClass:\"pa-0 ma-0\"},[_vm._v(\"+\"+_vm._s(_vm.columnDescription.hiddenColumnsBesideCount))])])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"pa-0 ma-0 column-menu--icon\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0 ma-0\"},[((hover && _vm.isMenuEnabled) || _vm.columnMenuOpened)?_c('v-icon',{attrs:{\"id\":'columnMenu-' + _vm.params.column.getId()}},[_vm._v(\"fal fa-ellipsis-v\")]):_vm._e()],1)],1)],1)],1)]}}],null,true)})]}},{key:\"default\",fn:function(){return [_c('column-description',{attrs:{\"colDesc\":_vm.columnDescription}})]},proxy:true}]),model:{value:(_vm.showColumnDescription),callback:function ($$v) {_vm.showColumnDescription=$$v},expression:\"showColumnDescription\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-list',{staticClass:\"column-description\",attrs:{\"dense\":\"\"}},[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--title\"},[_vm._v(\"\\n \"+_vm._s(_vm.colDesc.columnTitle)+\"\\n \")]),_vm._v(\" \"),_c('v-list-item-subtitle',{staticClass:\"column-description--description\"},[_vm._v(\"\\n \"+_vm._s(_vm.colDesc.columnSubName)+\"\\n \")])],1)],1),_vm._v(\" \"),(_vm.colDesc.columnHasSpecialProperties)?_c('v-divider',{staticClass:\"column-description--divider\",attrs:{\"role\":\"presentation\"}}):_vm._e(),_vm._v(\" \"),(_vm.colDesc.isRowGroupColumn)?_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--properties\"},[_c('p',[_vm._v(_vm._s(_vm.$t('ColumnDescription_RowGroups')))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.colDesc.rowGroupsColumns),function(groupedColumn){return _c('li',{key:groupedColumn.ColId},[_vm._v(\"\\n \"+_vm._s(groupedColumn.headerName)+\"\\n \")])}),0)])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.colDesc.columnIsMandatory)?_c('v-list-item',[_c('v-list-item-icon',{staticClass:\"mr-1 column-description--icon\"},[_c('v-icon',{attrs:{\"x-small\":\"\",\"color\":\"error\"}},[_vm._v(\"fa-asterisk\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--properties\"},[_vm._v(\"\\n \"+_vm._s(_vm.colDesc.mandatoryDescription)+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.colDesc.columnHasHiddenPermissions)?_c('v-list-item',[_c('v-list-item-icon',{staticClass:\"mr-1 column-description--icon\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fal fa-eye-slash\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--properties\"},[_vm._v(\"\\n \"+_vm._s(_vm.colDesc.hiddenPermissionsDescription)+\"\\n \")])],1)],1):(_vm.colDesc.columnHasReadOnlyPermissions)?_c('v-list-item',[_c('v-list-item-icon',{staticClass:\"mr-1 column-description--icon\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fal fa-lock-open\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--properties\"},[_vm._v(\"\\n \"+_vm._s(_vm.colDesc.readOnlyPermissionsDescription)+\"\\n \")])],1)],1):(_vm.colDesc.columnIsReadOnly)?_c('v-list-item',[_c('v-list-item-icon',{staticClass:\"mr-1 column-description--icon\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fal fa-lock\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--properties\"},[_vm._v(\"\\n \"+_vm._s(_vm.colDesc.readOnlyDescription)+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.colDesc.sortDescription)?_c('v-list-item',[_c('v-list-item-icon',{staticClass:\"mr-1 column-description--icon\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(_vm._s(_vm.colDesc.getSortIcon(false)))])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--properties\"},[_vm._v(\"\\n \"+_vm._s(_vm.colDesc.sortDescription)+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.colDesc.formulaDescription && _vm.isAdmin)?_c('v-list-item',[_c('v-list-item-icon',{staticClass:\"mr-1 column-description--icon\"},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fal fa-function\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--properties\",domProps:{\"innerHTML\":_vm._s(_vm.colDesc.formulaDescription)}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.colDesc.hiddenColumnsBesideCount)?_c('v-divider',{staticClass:\"column-description--divider\",attrs:{\"role\":\"presentation\"}}):_vm._e(),_vm._v(\" \"),(_vm.colDesc.hiddenColumnsBesideCount)?_c('v-list-item',{attrs:{\"dense\":\"\"}},[_c('v-list-item-icon',{staticClass:\"mr-1 column-description--icon\"},[_vm._v(\"\\n +\"+_vm._s(_vm.colDesc.hiddenColumnsBesideCount)+\"\\n \")]),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"column-description--properties\"},[_vm._v(\"\\n \"+_vm._s(_vm.colDesc.hiddenColumnDescription)+\"\\n \")])],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { IColumnDescription } from '@/viewModels/Table/IColumnDescription';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport {UserModule} from \"@/store/UserStore\";\r\nimport * as API from \"@/api/Api\";\r\nimport {ListTreeModule} from \"@/store/ListTreeStore\";\r\nimport {Member} from \"@/models/Member\";\r\n\r\n@Component({name: \"ColumnDescription\"})\r\nexport default class ColumnDescription extends Vue {\r\n @Prop() colDesc!: IColumnDescription;\r\n\r\n get isAdmin() {\r\n return ListTreeModule.currentList?.Owned\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnDescription.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnDescription.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnDescription.vue?vue&type=template&id=908fb806&scoped=true&\"\nimport script from \"./ColumnDescription.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnDescription.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnDescription.vue?vue&type=style&index=0&id=908fb806&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 \"908fb806\",\n null\n \n)\n\nexport default component.exports","import * as RowShare from '@/models/RowShare';\r\nimport i18n from '@/modules/Localization';\r\nimport ColumnVM from './columnVM';\r\nimport { IColumnDescription } from './IColumnDescription';\r\nimport { Utils } from '@/utils/Utilities';\r\n\r\nexport class ColumnDescriptionVM implements IColumnDescription {\r\n columnSorted: boolean = false;\r\n columnSortedAsc: boolean = false;\r\n columnSortedDesc: boolean = false;\r\n currentColumn: RowShare.Column | null = null;\r\n isRowGroupColumn: boolean = false;\r\n rowGroupsColumns: ColumnVM[] = [];\r\n \r\n constructor(column: RowShare.Column | null) {\r\n this.currentColumn = column;\r\n }\r\n\r\n get columnTitle() {\r\n return this.currentColumn?.DisplayName ?? \"\";\r\n }\r\n\r\n get columnHasSpecialProperties() {\r\n return this.columnIsMandatory || this.columnSorted;\r\n }\r\n\r\n get columnHasPermissions() {\r\n return (this.columnIsReadOnly && !this.currentColumn?.isGenerated) || this.columnHasReadOnlyPermissions || this.columnHasHiddenPermissions;\r\n }\r\n\r\n get columnIsMandatory(): boolean {\r\n if(this.currentColumn) {\r\n return this.currentColumn.isMandatory;\r\n }\r\n return false;\r\n }\r\n\r\n get columnIsReadOnly(): boolean {\r\n if(this.currentColumn) {\r\n return this.currentColumn.IsReadOnly;\r\n }\r\n return false;\r\n }\r\n\r\n get columnHasHiddenPermissions(): boolean {\r\n return this.currentColumn?.HasHiddenPermissions ?? false;\r\n }\r\n\r\n get columnHasReadOnlyPermissions(): boolean {\r\n return this.currentColumn?.HasReadOnlyPermissions ?? false;\r\n }\r\n\r\n get columnSubName(): string {\r\n if(this.currentColumn) {\r\n return this.currentColumn.SubName;\r\n }\r\n return \"\";\r\n }\r\n \r\n\r\n get columnIsFormula(): boolean {\r\n if(this.currentColumn) {\r\n return this.currentColumn.isFormula;\r\n }\r\n return false;\r\n }\r\n\r\n get sortDescription(): string {\r\n if(this.columnSortedAsc) {\r\n return i18n.t('HeaderDescription_SortedAsc').toString();\r\n }\r\n if(this.columnSortedDesc) {\r\n return i18n.t('HeaderDescription_SortedDesc').toString();\r\n }\r\n return \"\";\r\n }\r\n\r\n get formulaDescription(): string {\r\n if(this.currentColumn?.isFormula) {\r\n return i18n.t('HeaderDescription_Formula', {formula: this.currentColumn.DefaultValue}).toString();\r\n }\r\n return \"\";\r\n }\r\n\r\n get mandatoryDescription(): string {\r\n return i18n.t('HeaderDescription_Mandatory').toString();\r\n }\r\n\r\n get readOnlyDescription(): string {\r\n return i18n.t('HeaderDescription_ReadOnly').toString();\r\n }\r\n\r\n get readOnlyPermissionsDescription(): string {\r\n return i18n.t('HeaderDescription_HasReadOnlyPermissions').toString();\r\n }\r\n\r\n get hiddenPermissionsDescription(): string {\r\n return i18n.t('HeaderDescription_HasHiddenPermissions').toString();\r\n }\r\n \r\n hiddenColumnsBesideCount: number = 0;\r\n\r\n get hiddenColumnDescription(): string {\r\n return i18n.t('HeaderDescription_HiddenColumns', {hiddenColumnsCount: this.hiddenColumnsBesideCount}).toString();\r\n }\r\n\r\n getSortIcon(hover: boolean): string {\r\n if(!hover && !this.columnSorted) {\r\n return \"fal fa-fw\";\r\n }\r\n if(this.columnSortedAsc) {\r\n return \"fal fa-sort-amount-down-alt\";\r\n }\r\n else if(this.columnSortedDesc) {\r\n return \"fal fa-sort-amount-down\";\r\n }\r\n else {\r\n return \"fal fa-sort-alt\"\r\n }\r\n } \r\n\r\n get specialColumnIcon(): string {\r\n if(this.columnIsFormula) {\r\n return \"fal fa-function\";\r\n }\r\n else if(this.currentColumn?.isMember) {\r\n return \"fal fa-user\";\r\n }\r\n else if(this.currentColumn?.isGenerated) {\r\n return \"fal fa-cogs\";\r\n }\r\n return \"\";\r\n }\r\n\r\n get permissionsIcon(): string {\r\n if(this.columnHasHiddenPermissions) {\r\n return \"fal fa-eye-slash\";\r\n }\r\n else if(this.columnHasReadOnlyPermissions) {\r\n return \"fal fa-lock-open\";\r\n }\r\n else if(this.columnIsReadOnly) {\r\n return \"fal fa-lock\";\r\n }\r\n return \"\";\r\n }\r\n\r\n get columnIsChild(): boolean {\r\n if(this.currentColumn) {\r\n return this.currentColumn.isChildColumn;\r\n }\r\n return false;\r\n }\r\n\r\n get columnGroupName(): string {\r\n if(this.currentColumn) {\r\n return this.currentColumn.ColumnGroup;\r\n }\r\n return \"\";\r\n }\r\n}\r\n\r\nexport class ColumnDescriptionCollection {\r\n descriptions: ColumnDescriptionVM[];\r\n\r\n constructor() {\r\n this.descriptions = [];\r\n }\r\n \r\n public add(colDescVM: ColumnDescriptionVM) {\r\n this.descriptions.push(colDescVM);\r\n }\r\n\r\n public get columns(): ColumnDescriptionVM[] {\r\n return this.descriptions;\r\n }\r\n\r\n isFirstOfGroup(index: number): boolean {\r\n let currentColumn = this.descriptions[index].currentColumn;\r\n if(!Utils.isNullOrWhiteSpace(currentColumn?.ColumnGroup)) {\r\n if(index === 0) {\r\n return true;\r\n }\r\n else {\r\n let prevColumn = this.descriptions[index - 1].currentColumn;\r\n return Utils.isNullOrWhiteSpace(prevColumn?.ColumnGroup) || prevColumn?.ColumnGroup != currentColumn?.ColumnGroup;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n isMiddleOfGroup(index: number): boolean {\r\n let currentColumn = this.descriptions[index].currentColumn;\r\n if(!Utils.isNullOrWhiteSpace(currentColumn?.ColumnGroup)) {\r\n if(index > 0 && index < this.descriptions.length - 1) {\r\n let nextColumn = this.descriptions[index + 1].currentColumn;\r\n let prevColumn = this.descriptions[index - 1].currentColumn;\r\n return !Utils.isNullOrWhiteSpace(prevColumn?.ColumnGroup) && prevColumn?.ColumnGroup === currentColumn?.ColumnGroup &&\r\n !Utils.isNullOrWhiteSpace(nextColumn?.ColumnGroup) && nextColumn?.ColumnGroup === currentColumn?.ColumnGroup;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n isLastOfGroup(index: number): boolean {\r\n let currentColumn = this.descriptions[index].currentColumn;\r\n if(!Utils.isNullOrWhiteSpace(currentColumn?.ColumnGroup)) {\r\n if(index === this.descriptions.length-1) {\r\n return true;\r\n }\r\n else {\r\n let nextColumn = this.descriptions[index + 1].currentColumn;\r\n return Utils.isNullOrWhiteSpace(nextColumn?.ColumnGroup) || nextColumn?.ColumnGroup != currentColumn?.ColumnGroup;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}","import { i18n } from \"@/modules/Localization\";\r\nimport { ColDef, ColumnApi } from \"ag-grid-community\";\r\nimport ColumnVM from \"./columnVM\";\r\nimport { IColumnDescription } from \"./IColumnDescription\";\r\n\r\nexport default class groupRowColumnDescriptionVM implements IColumnDescription {\r\n columnSorted: boolean = false;\r\n columnSortedAsc: boolean = false;\r\n columnSortedDesc: boolean = false;\r\n columnSettings: ColDef | null = null;\r\n isRowGroupColumn: boolean = true;\r\n columnApi: ColumnApi | null = null;\r\n \r\n constructor(columnSettings: ColDef, columnApi: ColumnApi) {\r\n this.columnSettings = columnSettings;\r\n this.columnApi = columnApi;\r\n }\r\n\r\n get columnTitle() {\r\n if(this.rowGroupsColumns) {\r\n if(this.rowGroupsColumns.length > 0) {\r\n var rowGroupsColumnsNames = this.rowGroupsColumns.map(rgc => rgc.headerName);\r\n return i18n.t('SharingBar_OneRowGroupLabel', [rowGroupsColumnsNames.join(', ')]).toString();\r\n }\r\n }\r\n return this.columnSettings?.headerName ?? \"\";\r\n }\r\n\r\n get rowGroupsColumns(): ColumnVM[] {\r\n return this.columnApi?.getRowGroupColumns().map(rgc => rgc.getColDef()) ?? [];\r\n }\r\n\r\n get columnHasSpecialProperties() {\r\n return true;\r\n }\r\n\r\n get columnHasPermissions() {\r\n return false;\r\n }\r\n\r\n get columnIsMandatory(): boolean {\r\n return false;\r\n }\r\n\r\n get columnIsReadOnly(): boolean {\r\n return false;\r\n }\r\n\r\n get columnSubName(): string {\r\n return \"\";\r\n }\r\n \r\n get columnHasHiddenPermissions(): boolean {\r\n return false;\r\n }\r\n\r\n get columnHasReadOnlyPermissions(): boolean {\r\n return false;\r\n }\r\n\r\n get columnIsFormula(): boolean {\r\n return false;\r\n }\r\n\r\n get sortDescription(): string {\r\n if(this.columnSortedAsc) {\r\n return i18n.t('HeaderDescription_SortedAsc').toString();\r\n }\r\n if(this.columnSortedDesc) {\r\n return i18n.t('HeaderDescription_SortedDesc').toString();\r\n }\r\n return \"\";\r\n }\r\n\r\n get formulaDescription(): string {\r\n return \"\";\r\n }\r\n\r\n get mandatoryDescription(): string {\r\n return \"\";\r\n }\r\n\r\n get readOnlyDescription(): string {\r\n return \"\";\r\n }\r\n\r\n get readOnlyPermissionsDescription(): string {\r\n return \"\";\r\n }\r\n\r\n get hiddenPermissionsDescription(): string {\r\n return \"\";\r\n }\r\n \r\n hiddenColumnsBesideCount: number = 0;\r\n\r\n get hiddenColumnDescription(): string {\r\n return i18n.t('HeaderDescription_HiddenColumns', {hiddenColumnsCount: this.hiddenColumnsBesideCount}).toString();\r\n }\r\n\r\n getSortIcon(hover: boolean): string {\r\n if(!hover && !this.columnSorted) {\r\n return \"fal fa-fw\";\r\n }\r\n if(this.columnSortedAsc) {\r\n return \"fal fa-sort-amount-down-alt\";\r\n }\r\n else if(this.columnSortedDesc) {\r\n return \"fal fa-sort-amount-down\";\r\n }\r\n else {\r\n return \"fal fa-sort-alt\"\r\n }\r\n }\r\n\r\n get specialColumnIcon(): string {\r\n return \"\";\r\n }\r\n\r\n get permissionsIcon(): string {\r\n return \"\";\r\n }\r\n\r\n get columnIsChild(): boolean {\r\n return false;\r\n }\r\n\r\n}","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport * as models from '@/models/RowShare';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\nimport * as API from \"@/api/Api\";\r\nimport ColumnDescription from \"@/views/Table/ColumnDescription.vue\"\r\nimport { KeyCodes } from \"@/utils/KeyCodes\"; \r\nimport { ColumnDescriptionVM } from '@/viewModels/Table/ColumnDescriptionVM';\r\nimport { IColumnDescription } from '@/viewModels/Table/IColumnDescription';\r\nimport groupRowColumnDescriptionVM from '@/viewModels/Table/groupRowColumnDescriptionVM';\r\n\r\n@Component({name: \"columnHeader\", components: { ColumnDescription }})\r\nexport default class columnHeader extends Vue {\r\n params!: agGrid.IHeaderParams;\r\n\r\n showColumnDescription: boolean = false;\r\n descriptionDisabled: boolean = false;\r\n columnFiltered: boolean = false;\r\n columnMenuOpened: boolean = false;\r\n filterMenuOpened: boolean = false;\r\n hiddenColumnsBeside: agGrid.Column[] = [];\r\n // isInRenameMode : boolean = false;\r\n // isRenaming : boolean = false;\r\n\r\n columnDescription: IColumnDescription | null = null;\r\n\r\n created() {\r\n if(this.currentColumnSettings?.colId != ColumnVM.autoGroupColumnId) {\r\n this.columnDescription = new ColumnDescriptionVM(this.currentColumn);\r\n }\r\n else {\r\n this.columnDescription = new groupRowColumnDescriptionVM(this.params.column.getColDef(), this.params.columnApi)\r\n }\r\n\r\n this.columnDescription.hiddenColumnsBesideCount = this.hiddenColumnsBesideCount;\r\n\r\n this.params.column.addEventListener('sortChanged', this.sortChanged);\r\n this.params.column.addEventListener('menuVisibleChanged', this.menuVisibleChanged);\r\n this.params.column.addEventListener('filterActiveChanged', this.filerActiveChanged);\r\n this.refreshDescriptionDisabled();\r\n this.sortChanged();\r\n this.filerActiveChanged();\r\n }\r\n\r\n destroy() {\r\n this.params.column.removeEventListener('sortChanged', this.sortChanged);\r\n this.params.column.removeEventListener('menuVisibleChanged', this.menuVisibleChanged);\r\n this.params.column.removeEventListener('filterActiveChanged', this.filerActiveChanged);\r\n }\r\n\r\n get isCompact(): boolean {\r\n return this.currentColumn?.isCompact ?? false;\r\n }\r\n\r\n get isSortable(): boolean {\r\n return this.params.enableSorting ?? false;\r\n }\r\n\r\n get isMenuEnabled(): boolean {\r\n return this.params.enableMenu;\r\n }\r\n\r\n get currentColumn(): models.Column | null {\r\n let col = this.currentColumnSettings;\r\n if(col) {\r\n return col.rsColumn;\r\n }\r\n return null;\r\n }\r\n\r\n get currentList(): models.List | null {\r\n let gridViewVM = this.params.context;\r\n if(!gridViewVM) {\r\n return null;\r\n }\r\n return gridViewVM.listVM.list;\r\n }\r\n\r\n get currentColumnSettings(): ColumnVM | null {\r\n return (this.params.api.getColumnDef(this.params.column));\r\n }\r\n \r\n get hiddenColumnsBesideCount(): number {\r\n let colState = this.params.columnApi.getColumnState();\r\n let hiddenColCount = 0;\r\n let index = colState.findIndex(c => c.colId == this.currentColumn?.Id) + 1;\r\n let hiddenCol: boolean = true;\r\n\r\n do {\r\n hiddenCol = colState[index]?.hide ?? false;\r\n if(hiddenCol) {\r\n let col = this.params.columnApi.getColumn(colState[index].colId);\r\n if(col) {\r\n hiddenColCount++;\r\n }\r\n }\r\n index++;\r\n } while(index < colState.length && hiddenCol);\r\n\r\n return hiddenColCount;\r\n }\r\n\r\n toggleSort(event: MouseEvent) {\r\n this.params.progressSort(event.ctrlKey); \r\n }\r\n\r\n sortChanged() {\r\n if(!this.columnDescription) {\r\n return;\r\n }\r\n let sort = this.params.column.getSort();\r\n this.columnDescription.columnSortedAsc = sort === 'asc';\r\n this.columnDescription.columnSortedDesc = sort === 'desc';\r\n this.columnDescription.columnSorted = this.columnDescription.columnSortedAsc || this.columnDescription.columnSortedDesc; \r\n }\r\n\r\n\r\n filerActiveChanged() {\r\n this.columnFiltered = this.params.column.isFilterActive();\r\n }\r\n\r\n filterColumn() {\r\n this.filterMenuOpened = true;\r\n let parentElementPrefix = 'filterMenu-';\r\n this.openColumnMenu(['filterMenuTab'], parentElementPrefix);\r\n }\r\n\r\n menuVisibleChanged() {\r\n if(!this.params.column.isMenuVisible()) {\r\n this.columnMenuOpened = false;\r\n this.filterMenuOpened = false;\r\n }\r\n this.refreshDescriptionDisabled();\r\n }\r\n\r\n refreshDescriptionDisabled() {\r\n this.descriptionDisabled = this.params.column.isMenuVisible() || !this.params.displayName;\r\n }\r\n\r\n columnMenu() {\r\n if(!this.isMenuEnabled) {\r\n return;\r\n }\r\n this.columnMenuOpened = true;\r\n let parentElementPrefix = 'columnMenu-';\r\n this.openColumnMenu(['generalMenuTab'], parentElementPrefix);\r\n }\r\n\r\n openColumnMenu(tabs: agGrid.ColumnMenuTab[], parentElementPrefix: string) {\r\n this.showColumnDescription = false;\r\n let coldef = this.params.column.getColDef();\r\n coldef.menuTabs = tabs;\r\n \r\n let parentElement = document.getElementById(parentElementPrefix + this.params.column.getId());\r\n if(parentElement)\r\n this.params.showColumnMenu(parentElement);\r\n }\r\n\r\n getFilterIcon(hover: boolean) {\r\n if(!hover && !this.columnFiltered && !this.filterMenuOpened) {\r\n return \"fal fa-fw\";\r\n }\r\n if(this.columnFiltered) {\r\n return \"fa-filter\";\r\n }\r\n else {\r\n return \"fal fa-filter\";\r\n }\r\n }\r\n\r\n showHiddenColumns() {\r\n let gridContext = this.params.context;\r\n if(gridContext) {\r\n gridContext.showHiddenColumnsBeside(this.params.column);\r\n }\r\n }\r\n\r\n // startRenamingColumn() {\r\n // if(!this.currentList?.Owned) {\r\n // return;\r\n // }\r\n // if(!this.columnDescription?.isRowGroupColumn) {\r\n // this.isInRenameMode = true;\r\n // this.$nextTick(() => {(this.$refs.columnNameInput)?.focus();}); \r\n // }\r\n // }\r\n\r\n // renameColumn() {\r\n // if(!this.currentColumn || this.currentColumn.DisplayName == this.currentColumn.Name) {\r\n // this.isInRenameMode = false;\r\n // return;\r\n // }\r\n\r\n // this.isRenaming = true;\r\n // API.Column.save(this.currentColumn).then(savedColumn => {\r\n // if(savedColumn){\r\n // let col = (this.params.api.getColumnDef(this.params.column));\r\n // let oldName = col.rsColumn.DisplayName;\r\n // let newName = savedColumn.DisplayName;\r\n // col.rsColumn = savedColumn;\r\n // if(this.params?.api) {\r\n // this.params.api.refreshHeader();\r\n // }\r\n // let gridView = this.params.context; \r\n // if(gridView) {\r\n // if (savedColumn.NeedsListReload)\r\n // gridView.listVM.refreshRowsFromServer();\r\n // if(gridView.listVM.columns) {\r\n // var idx = gridView.listVM.columns.findIndex(c => c.Id == savedColumn.Id);\r\n // gridView.listVM.columns[idx] = savedColumn;\r\n // }\r\n // }\r\n // }\r\n // this.isInRenameMode = false;\r\n // })\r\n // .catch((exc: Error) =>{\r\n // //this.nameUpdateErrors = this.$i18n.t('ListToolBar_ErrorSavingName', [exc.message]).toString();\r\n // })\r\n // .finally(() => {\r\n // this.isRenaming = false;\r\n // });\r\n // }\r\n \r\n // onColumnNameKeyDown(event: KeyboardEvent) {\r\n // if(event.code === \"Enter\" || event.code === \"NumpadEnter\") {\r\n // this.renameColumn();\r\n // }\r\n // else if(event.keyCode === KeyCodes.DOM_VK_ESCAPE) {\r\n // //this.loadListInfo();\r\n // this.isInRenameMode = false;\r\n // if(this.currentColumn)\r\n // this.currentColumn.Name = this.currentColumn?.DisplayName;\r\n // }\r\n // 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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./columnHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./columnHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./columnHeader.vue?vue&type=template&id=8c0e91ae&scoped=true&\"\nimport script from \"./columnHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./columnHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./columnHeader.vue?vue&type=style&index=0&id=8c0e91ae&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 \"8c0e91ae\",\n null\n \n)\n\nexport default component.exports","import * as RowShare from '@/models/RowShare';\r\n\r\nimport BaseColumnProxy from \"./BaseColumnProxy\";\r\nimport NumericColumnProxy from \"./NumericColumnProxy\";\r\nimport TextColumnProxy from \"./TextColumnProxy\";\r\nimport TimeColumnProxy from \"./TimeColumnProxy\";\r\nimport LookupColumnProxy from \"./LookupColumnProxy\";\r\nimport PercentageColumnProxy from \"./PercentageColumnProxy\";\r\nimport MemberColumnProxy from \"./MemberColumnProxy\";\r\nimport DateTimeColumnProxy from \"./DateTimeColumnProxy\";\r\nimport EmailColumnProxy from \"./EmailColumnProxy\";\r\nimport HyperLinkColumnProxy from \"./HyperLinkColumnProxy\";\r\nimport TwoStatesBooleanColumnProxy from \"./TwoStatesBooleanColumnProxy\";\r\nimport BlobColumnProxy from \"./BlobColumnProxy\";\r\nimport CommentColumnProxy from \"./CommentColumnProxy\";\r\n\r\nimport ProxyBasedRenderer from \"@/views/Table/cellsComponents/ProxyBasedRenderer\";\r\nimport CommentRenderer from '@/views/Table/cellsComponents/Comment/CommentRenderer';\r\nimport RowOwnerHeader from '@/views/Table/cellsComponents/RowOwner/RowOwnerHeaderRenderer';\r\nimport TotalRowHeaderRenderer from \"@/views/Table/cellsComponents/TotalRowHeaderRenderer\";\r\nimport TotalRowRenderer from \"../views/Table/cellsComponents/TotalRowRenderer\";\r\nimport ProxyBasedTooltipRenderer from '@/views/Table/cellsComponents/ProxyBasedTooltipRenderer';\r\nimport GroupRowRenderer from '@/views/Table/cellsComponents/GroupRowRenderer';\r\n\r\nimport BlobEditor from '@/views/Table/cellsComponents/Blob/BlobEditor.vue';\r\nimport CommentEditor from '@/views/Table/cellsComponents/Comment/CommentEditor.vue';\r\nimport DateTimeEditor from '@/views/Table/cellsComponents/DateTime/DateTimeEditor.vue';\r\nimport HyperlinkEditor from \"@/views/Table/cellsComponents/Hyperlink/HyperlinkEditor.vue\";\r\nimport LookupEditor from '@/views/Table/cellsComponents/Lookup/LookupEditor.vue';\r\nimport NumberEditor from '@/views/Table/cellsComponents/Number/NumberEditor.vue';\r\nimport RelationEditor from '@/views/Table/cellsComponents/Relation/RelationEditor.vue';\r\nimport RichTextEditor from \"@/views/Table/cellsComponents/RichText/RichTextEditor.vue\";\r\nimport RowOwnerHeaderEditor from '@/views/Table/cellsComponents/RowOwner/RowOwnerHeaderEditor.vue';\r\nimport TextEditor from '@/views/Table/cellsComponents/Text/TextEditor.vue';\r\nimport TimeEditor from '@/views/Table/cellsComponents/DateTime/TimeEditor.vue';\r\nimport TwoStatesBooleanEditor from \"@/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanEditor.vue\";\r\n\r\nimport columnGroupHeader from '@/views/Table/GridView/columnGroupHeader.vue';\r\nimport columnHeader from '@/views/Table/GridView/columnHeader.vue';\r\n\r\nexport default class RsColumnManager{\r\n\r\n private static _textProxy = new TextColumnProxy();\r\n private static _numberProxy = new NumericColumnProxy();\r\n private static _lookupProxy = new LookupColumnProxy();\r\n private static _memberProxy = new MemberColumnProxy();\r\n private static _dateTimeProxy = new DateTimeColumnProxy();\r\n private static _blobProxy = new BlobColumnProxy();\r\n private static _percentageProxy = new PercentageColumnProxy();\r\n\r\n private static readonly _proxies: Map = new Map([\r\n // text\r\n [RowShare.ColumnStrongType.Text, RsColumnManager._textProxy],\r\n [RowShare.ColumnStrongType.RichText, RsColumnManager._textProxy],\r\n // numbers\r\n [RowShare.ColumnStrongType.Number, RsColumnManager._numberProxy],\r\n [RowShare.ColumnStrongType.DecimalNumber, RsColumnManager._numberProxy],\r\n [RowShare.ColumnStrongType.AutoNumber, RsColumnManager._numberProxy],\r\n [RowShare.ColumnStrongType.Percentage, RsColumnManager._percentageProxy],\r\n [RowShare.ColumnStrongType.RowIndex, RsColumnManager._numberProxy],\r\n // Dates and times\r\n [RowShare.ColumnStrongType.Time, new TimeColumnProxy()],\r\n [RowShare.ColumnStrongType.Date, RsColumnManager._dateTimeProxy],\r\n [RowShare.ColumnStrongType.DateTime, RsColumnManager._dateTimeProxy],\r\n [RowShare.ColumnStrongType.Reminder, RsColumnManager._dateTimeProxy],\r\n [RowShare.ColumnStrongType.CreationDate, RsColumnManager._dateTimeProxy],\r\n [RowShare.ColumnStrongType.LastWriteDate, RsColumnManager._dateTimeProxy],\r\n // lookups\r\n [RowShare.ColumnStrongType.LookUp, RsColumnManager._lookupProxy],\r\n [RowShare.ColumnStrongType.LookUpList, RsColumnManager._lookupProxy],\r\n // members\r\n [RowShare.ColumnStrongType.OwnerEmail, RsColumnManager._memberProxy],\r\n [RowShare.ColumnStrongType.OwnerName, RsColumnManager._memberProxy],\r\n [RowShare.ColumnStrongType.CreatedByUserEmail, RsColumnManager._memberProxy],\r\n [RowShare.ColumnStrongType.CreatedByUserName, RsColumnManager._memberProxy],\r\n [RowShare.ColumnStrongType.LastWriteUserEmail, RsColumnManager._memberProxy],\r\n [RowShare.ColumnStrongType.LastWriteUserName, RsColumnManager._memberProxy],\r\n [RowShare.ColumnStrongType.MemberManagerEmail, RsColumnManager._memberProxy],\r\n [RowShare.ColumnStrongType.MemberManagerName, RsColumnManager._memberProxy],\r\n // Files\r\n [RowShare.ColumnStrongType.File, RsColumnManager._blobProxy],\r\n [RowShare.ColumnStrongType.Image, RsColumnManager._blobProxy],\r\n // others\r\n [RowShare.ColumnStrongType.Email, new EmailColumnProxy()],\r\n [RowShare.ColumnStrongType.Hyperlink, new HyperLinkColumnProxy()],\r\n [RowShare.ColumnStrongType.TwoStatesBoolean, new TwoStatesBooleanColumnProxy()],\r\n [RowShare.ColumnStrongType.Comment, new CommentColumnProxy()],\r\n\r\n // Fake columns type to be able to use proxies for deleted rows display\r\n [RowShare.ColumnStrongType.StatusChangeByUserName, RsColumnManager._memberProxy],\r\n [RowShare.ColumnStrongType.StatusChangeDateTime, RsColumnManager._dateTimeProxy],\r\n ]);\r\n\r\n public static getProxy(type: RowShare.ColumnStrongType) : BaseColumnProxy{\r\n return RsColumnManager._proxies.get(type) ?? RsColumnManager._textProxy;\r\n }\r\n\r\n public static renderers = {\r\n // column headers\r\n columnHeader: columnHeader,\r\n columnGroupHeader: columnGroupHeader\r\n };\r\n \r\n public static simpleRenderers = {\r\n // generic\r\n ProxyBasedRenderer: ProxyBasedRenderer,\r\n ProxyBasedTooltipRenderer: ProxyBasedTooltipRenderer,\r\n \r\n // text\r\n //// AutoNumberRenderer: TextRenderer,\r\n // others\r\n CommentRenderer: CommentRenderer,\r\n // technical cells\r\n RowOwnerHeader: RowOwnerHeader,\r\n TotalRowRenderer: TotalRowRenderer,\r\n TotalRowHeaderRenderer: TotalRowHeaderRenderer,\r\n GroupRowRenderer: GroupRowRenderer,\r\n // to be implemented\r\n //// RichTextRenderer: TextRenderer,\r\n }\r\n \r\n public static editors = {\r\n AutoNumberEditor: TextEditor,\r\n CommentEditor: CommentEditor,\r\n CreatedByUserEmailEditor: TextEditor,\r\n CreatedByUserNameEditor: TextEditor,\r\n DateEditor: DateTimeEditor,\r\n DateTimeEditor: DateTimeEditor,\r\n DecimalNumberEditor: NumberEditor,\r\n EmailEditor: TextEditor,\r\n FileEditor: BlobEditor,\r\n HyperlinkEditor: HyperlinkEditor,\r\n ImageEditor: BlobEditor,\r\n LastWriteUserEmailEditor: TextEditor,\r\n LastWriteUserNameEditor: TextEditor,\r\n LookUpEditor: LookupEditor,\r\n LookUpListEditor: LookupEditor,\r\n MemberManagerEmailEditor: TextEditor,\r\n MemberManagerNameEditor: TextEditor,\r\n NumberEditor: NumberEditor,\r\n OwnerEmailEditor: TextEditor,\r\n OwnerNameEditor: TextEditor,\r\n PercentageEditor: NumberEditor,\r\n ReminderEditor: DateTimeEditor,\r\n RichTextEditor: RichTextEditor,\r\n TextEditor: TextEditor,\r\n TimeEditor: TimeEditor,\r\n TwoStatesBooleanEditor: TwoStatesBooleanEditor,\r\n // technical cells\r\n RowOwnerHeaderEditor: RowOwnerHeaderEditor,\r\n RelationEditor: RelationEditor,\r\n }\r\n}","import * as RowShare from '@/models/RowShare';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport * as API from '@/api/Api';\r\nimport RsColumnManager from '@/columnProxies/RsColumnManager';\r\nimport BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\nimport { Settings } from \"@/utils/Settings\";\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport i18n from '@/modules/Localization';\r\nimport RowVM from './rowVM';\r\nimport { ColumnStrongType } from '@/models/RowShare';\r\nimport FileVM from '@/viewModels/Table/FileVM';\r\nimport rowVM from './rowVM';\r\nimport GridViewVM from './gridViewVM';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { cl } from '@fullcalendar/core/internal-common';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\nexport default class ColumnVM implements agGrid.ColDef{\r\n public static readonly rowOwnerHeaderId = \"_rowOwnerHeader\";\r\n public static readonly addColumnHeaderId= \"_addColumnHeader\";\r\n public static readonly insertBeforeRowIdId= \"_insertBeforeRowId\";\r\n public static readonly autoGroupColumnId = \"ag-Grid-AutoColumn\";\r\n public static readonly statusChangeDateTimeId = \"_statusChangedDateTime\";\r\n public static readonly statusChangeByUserId = \"_statusChangeByUser\";\r\n\r\n headerName?: string;\r\n colId?: string;\r\n valueGetter?: ((params: agGrid.ValueGetterParams) => any) | string;\r\n valueSetter?: ((params: agGrid.ValueSetterParams) => boolean) | string;\r\n width?: number;\r\n minWidth?: number;\r\n cellRenderer?: { new (): agGrid.ICellRendererComp; } | agGrid.ICellRendererFunc | string;\r\n cellRendererSelector?: agGrid.CellRendererSelectorFunc; \r\n cellEditor?: { new (): agGrid.ICellEditorComp; } | string;\r\n tooltipComponent?: { new (): agGrid.ITooltipComp; } | string;\r\n tooltipValueGetter?: (params: agGrid.ITooltipParams) => string;\r\n sortable?: boolean = true;\r\n comparator?: (valueA: any, valueB: any, nodeA: agGrid.IRowNode, nodeB: agGrid.IRowNode, isInverted: boolean) => number;\r\n resizable?: boolean = true;\r\n editable?: boolean | ((params: agGrid.EditableCallbackParams) => boolean);\r\n filter?: string | { new (): agGrid.IFilterComp; } | boolean = true;\r\n filterParams?: any;\r\n getQuickFilterText?: (params: agGrid.GetQuickFilterTextParams) => string;\r\n cellClassRules?: agGrid.CellClassRules;\r\n cellClass?: string | string[] | ((cellClassParams: agGrid.CellClassParams) => string | string[]);\r\n headerClass?: string | string[] | ((params: any) => string | string[]);\r\n type?: string | string[];\r\n suppressMenu?: boolean;\r\n suppressKeyboardEvent?: (params: agGrid.SuppressKeyboardEventParams) => boolean;\r\n aggFunc?: string | agGrid.IAggFunc | null;\r\n hide?: boolean;\r\n pinned?: boolean | 'left' | 'right' | null;\r\n chartDataType?: 'category' | 'series' | 'time' | 'excluded';\r\n enableRowGroup?: boolean;\r\n enablePivot?: boolean;\r\n enableValue?: boolean;\r\n toolPanelClass?: string | string[] | ((params: any) => string | string[]); \r\n autoHeight?: boolean;\r\n wrapText?: boolean;\r\n lockPinned?: boolean;\r\n keyCreator?: (params: agGrid.KeyCreatorParams) => string;\r\n columnGroupShow?: agGrid.ColumnGroupShowType;\r\n\r\n cellLocked: boolean = false;\r\n\r\n rsList: RowShare.List;\r\n rsColumn: RowShare.Column;\r\n\r\n columnProxy: BaseColumnProxy;\r\n printMode: boolean = false;\r\n\r\n constructor(rsList: RowShare.List, rsColumn: RowShare.Column, listSettings?: RowShare.ListSettings | null, printMode?: boolean){\r\n this.columnProxy = RsColumnManager.getProxy(rsColumn.Type);\r\n \r\n this.colId = rsColumn.Id;\r\n this.headerName = rsColumn.DisplayName;\r\n\r\n this.valueGetter = (params) => {\r\n let rsCol = (params.colDef).rsColumn;\r\n if(rsCol?.isOwnerInfo) {\r\n return params.data?.getAssignation()\r\n }\r\n return params.data?.getValue((params.colDef).rsColumn, this.columnProxy);\r\n }\r\n this.valueSetter = (params) => {\r\n let rsCol = (params.colDef).rsColumn;\r\n if(rsCol?.isOwnerInfo) {\r\n return params.data?.setAssignation(params.newValue);\r\n }\r\n return params.data?.setValue(rsCol, params.newValue);\r\n }\r\n this.tooltipValueGetter = params => params.value ? '-' : ''; // empty string will prevent opening the tooltip, and tooltip renderer won't use this value to display its content\r\n \r\n let savedWidth = Settings.getColumnProperty(rsList.Id, rsColumn.Id, 'width') ?? 0;\r\n this.width = (savedWidth > 0 ? savedWidth : (rsColumn.DefaultWidth > 0 ? rsColumn.DefaultWidth : 150));\r\n this.editable = this.checkIsEditable.bind(this);\r\n if(rsColumn.isNumber) {\r\n this.type = \"numericColumn\";\r\n this.chartDataType = 'series';\r\n if(rsColumn.Type !== ColumnStrongType.RowIndex && rsColumn.Type !== ColumnStrongType.AutoNumber) {\r\n this.toolPanelClass = 'column-numeric';\r\n }\r\n }\r\n this.rsColumn = new RowShare.Column();\r\n this.rsList = rsList;\r\n Object.assign(this.rsColumn, rsColumn);\r\n this.lockPinned = true;\r\n\r\n if(this.rsList.RowsAutoHeight && (rsColumn.Type ?? \"\") == ColumnStrongType.RichText) {\r\n this.autoHeight = true;\r\n }\r\n\r\n this.cellRendererSelector = (params) => {\r\n var row = params.data;\r\n if(row?.isTotalRow) {\r\n return {component: \"TotalRowRenderer\"};\r\n }\r\n if(row?.getValue(this.rsColumn, this.columnProxy) === RowVM.cellNotAccessible) {\r\n return { component: \"ProxyBasedRenderer\" };\r\n }\r\n return { component: this.columnProxy.getRenderer(rsColumn)};\r\n }\r\n if(this.rsColumn.HasParentColumn && this.rsColumn.RelatedListId) {\r\n this.cellEditor = \"RelationEditor\";\r\n }\r\n else if(this.rsColumn.isOwnerInfo) {\r\n this.cellEditor = \"RowOwnerHeaderEditor\";\r\n }\r\n else {\r\n this.cellEditor = rsColumn.Type.toString() + \"Editor\";\r\n }\r\n this.tooltipComponent = 'ProxyBasedTooltipRenderer';\r\n \r\n let customFilter = this.columnProxy.getCustomFilter(this.rsColumn);\r\n if(customFilter)\r\n this.filter = customFilter;\r\n\r\n let customFilterParams = this.columnProxy.getCustomFilterParams(this.rsColumn);\r\n if(customFilterParams)\r\n this.filterParams = customFilterParams;\r\n\r\n this.getQuickFilterText = (params: agGrid.GetQuickFilterTextParams) => {\r\n return this.columnProxy.getQuickFilterText((params.colDef).rsColumn, params.data, params.value);\r\n };\r\n\r\n this.suppressKeyboardEvent = (params) => {\r\n if(params && params.editing && this.columnProxy.shouldSuppressKeyboardEvent(this.rsColumn)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n this.cellClassRules = ColumnVM.getCellClassRules(rsColumn, rsList);\r\n this.cellClass = (params: agGrid.CellClassParams) => ColumnVM.getCellClasses(params.data?.rsRow, this.rsList, this.rsColumn);// [rsColumn.Type + '-col'];\r\n this.headerClass = (params: agGrid.HeaderClassParams) => ColumnVM.getHeaderClasses(this.rsList, this.rsColumn)\r\n if(listSettings){\r\n this.hide = ColumnVM.isHiddenColumn(rsColumn, listSettings);\r\n }\r\n if(rsColumn.isCompact) {\r\n this.minWidth = 5;\r\n }\r\n this.pinned = rsColumn.LeftPinned;\r\n if(printMode != undefined) {\r\n this.printMode = printMode;\r\n }\r\n\r\n if(this.rsColumn.isOwnerInfo || this.rsColumn.isDateFormat || this.rsColumn.isDateTimeFormat) {\r\n this.keyCreator = (params: any) => this.columnProxy.getFormattedText(this.rsColumn, params.data, params.value);\r\n }\r\n \r\n this.comparator = (valueA, valueB, nodeA, nodeB, isInverted) => {\r\n // we need to check if rows are new first to ensure they will appear at the end\r\n // checking B first is required when adding multiple rows one after another (the newest row will be B)\r\n\r\n if(nodeB?.data?.isNew)\r\n return isInverted ? 1 : -1;\r\n if(nodeA?.data?.isNew)\r\n return isInverted ? -1 : 1;\r\n \r\n // this is used to always sort empty values last\r\n if (valueA === null || valueA === undefined || valueA === \"\")\r\n return isInverted ? -1 : 1;\r\n if (valueB === null || valueB === undefined || valueB === \"\")\r\n return isInverted ? 1 : -1;\r\n\r\n let comparedValues = this.columnProxy.compareValues(this.rsColumn, valueA, valueB, nodeA, nodeB);\r\n if(comparedValues != null) {\r\n return comparedValues;\r\n }\r\n\r\n // text values should be sorted regardless of the case\r\n let a = valueA, b = valueB;\r\n switch(this.rsColumn.Type) {\r\n case ColumnStrongType.Text:\r\n case ColumnStrongType.RichText:\r\n case ColumnStrongType.Email:\r\n case ColumnStrongType.Hyperlink:\r\n case ColumnStrongType.MemberManagerEmail:\r\n case ColumnStrongType.MemberManagerName:\r\n case ColumnStrongType.LastWriteUserEmail:\r\n case ColumnStrongType.LastWriteUserEmail:\r\n case ColumnStrongType.CreatedByUserEmail:\r\n case ColumnStrongType.CreatedByUserName:\r\n a = Utils.normalizeString(a) ?? \"\" ;\r\n b = Utils.normalizeString(b) ?? \"\";\r\n break;\r\n }\r\n\r\n // if lower case equal, use a case sensitive sort\r\n if (a === b) {\r\n if(valueA !== valueB)\r\n return valueA > valueB ? 1 : -1;\r\n\r\n return 0;\r\n }\r\n \r\n return a > b ? 1 : -1;\r\n }\r\n this.enablePivot = this.columnProxy.enablePivot;\r\n this.enableRowGroup = this.columnProxy.getEnableRowGrouping(this.rsColumn);\r\n this.enableValue = this.columnProxy.getEnableAggregate(this.rsColumn);\r\n }\r\n\r\n private checkIsEditable(params: agGrid.EditableCallbackParams): boolean {\r\n const colVM = params.colDef;\r\n /*if (colVM.cellLocked) {\r\n return false;\r\n }*/\r\n\r\n if(params.data?.listVM.specialRowsDisplayed) {\r\n return false;\r\n }\r\n var row = (params.data);\r\n if(row?.rsRow && row.rsRow.Values[this.rsColumn.DisplayName] === rowVM.cellNotAccessible) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Notif_NotEditableCell\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n return false;\r\n }\r\n\r\n if(this.columnProxy.isAlwaysEditable()) {\r\n return true;\r\n }\r\n\r\n if(this.rsColumn.isOwnerInfo) {\r\n if(row.isNew) {\r\n return false;\r\n }\r\n if(!params?.data?.rsRow?.CanAssign && !row.isNew) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t('Notif_CannotAssignRow').toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n if(!params?.data?.rsRow?.CanUpdate) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Notif_ReadOnlyRow\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n return false;\r\n }\r\n\r\n if(params?.data?.isLocked) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Notif_LockedRow\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n return false;\r\n }\r\n\r\n if(params?.data?.editionInProgress) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Rtc_Notif_Editing_Row\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n return false;\r\n }\r\n\r\n return !this.rsColumn.IsReadOnly;\r\n }\r\n\r\n private static isHiddenColumn(rsColumn: RowShare.Column, settings: RowShare.ListSettings): boolean {\r\n if(settings?.configuration?.hiddenColumns) {\r\n return settings.configuration.hiddenColumns.findIndex(hc => hc === rsColumn.Id) > -1;\r\n }\r\n return false;\r\n }\r\n\r\n public static getHeaderClasses(rsList: RowShare.List, rsColumn: RowShare.Column) {\r\n let classes: string[] = [];\r\n if(!rsList || !rsColumn) {\r\n return classes;\r\n }\r\n classes.push(rsColumn.Type + '-col-header');\r\n\r\n if(rsColumn.ColumnGroup) {\r\n classes.push('column-grouped');\r\n }\r\n \r\n if(rsColumn.HasParentColumn ?? false) {\r\n classes.push('column-relation');\r\n }\r\n\r\n if(rsColumn.isCompact) {\r\n classes.push('compact-col-header');\r\n }\r\n\r\n if(rsColumn.Color && (rsColumn.ColorType === RowShare.ColumnColorType.All || rsColumn.ColorType === RowShare.ColumnColorType.Header)) {\r\n classes.push(rsColumn.Color);\r\n }\r\n\r\n return classes;\r\n }\r\n\r\n public static getCellClasses(rsRow: RowShare.Row, rsList: RowShare.List, rsColumn: RowShare.Column) {\r\n let classes: string[] = [];\r\n\r\n if(!rsRow || !rsList || !rsColumn) {\r\n return [];\r\n }\r\n\r\n classes.push(rsColumn.Type + '-col');\r\n\r\n if(rsColumn?.HasParentColumn ?? false) {\r\n classes.push('cell-relation');\r\n }\r\n if(rsColumn.isCompact) {\r\n classes.push('compact-col');\r\n }\r\n\r\n let colId: string = \"\";\r\n let rowId: string = \"\";\r\n\r\n colId = rsColumn.Id;\r\n rowId = rsRow.Id;\r\n\r\n if(colId && rowId) {\r\n let color = rsList.CellsColorsList.find(cc => cc.ColumnId == colId && cc.RowId == rowId);\r\n if(color) {\r\n classes.push(color.Color);\r\n }\r\n else {\r\n color = rsList.CellsColorsList.find(cc => cc.RowId == rowId && !cc.ColumnId);\r\n if(color) {\r\n classes.push(color.Color);\r\n }\r\n else {\r\n let columnColor = rsColumn.Color;\r\n if(columnColor && (rsColumn.ColorType === RowShare.ColumnColorType.Cells || rsColumn.ColorType === RowShare.ColumnColorType.All)) {\r\n classes.push(columnColor);\r\n }\r\n }\r\n }\r\n\r\n const cell = RealTimeCollaborationModule\r\n .inEditionCells\r\n .find(x => x.rowId === rowId && x.columnId === colId);\r\n if (cell) {\r\n classes.push(...['cell-editing', 'cell-editing-color'+cell.backgroundColorIndex])\r\n }\r\n }\r\n\r\n return classes;\r\n }\r\n\r\n public static getCellClassRules(rsColumn: RowShare.Column | null = null, rsList: RowShare.List | null = null) : agGrid.CellClassRules {\r\n return {\r\n 'grid-cell-error' : (params: any) => params.data?.hasCellError(rsColumn),\r\n 'grid-cell-saving' : (params: any) => params.data?.isSavingCell(rsColumn),\r\n 'grid-cell-numeric' : (params: any) => params.colDef.type === 'numericColumn',\r\n 'ag-right-aligned-cell' : (params: any) => params.colDef.type === 'numericColumn',\r\n 'grid-cell-datetime' : (params: any) => (params.colDef.rsColumn?.isDateFormat || params.colDef.rsColumn?.isDateTimeFormat),\r\n 'grid-cell-alwayseditable' : (params: any) => rsColumn? (rsColumn.Type === RowShare.ColumnStrongType.Comment || rsColumn.Type === RowShare.ColumnStrongType.Hyperlink) : false,\r\n 'left-data-cell': (params: agGrid.CellClassParams) => {\r\n let leftCol = params.columnApi.getDisplayedColBefore(params.column);\r\n return params.column?.getColId() != ColumnVM.rowOwnerHeaderId && (leftCol == null || leftCol.getColId() == ColumnVM.rowOwnerHeaderId);\r\n },\r\n 'right-data-cell': (params: agGrid.CellClassParams) => {\r\n let colStates = params.columnApi.getColumnState().filter(cs => cs.colId != ColumnVM.rowOwnerHeaderId && cs.colId != ColumnVM.autoGroupColumnId && !cs.hide);\r\n if(colStates && colStates.length > 0) {\r\n return params.colDef.colId == colStates[colStates.length - 1].colId;\r\n }\r\n return false;\r\n },\r\n 'cell-not-accessible' : (params: any) => { \r\n if(params.data?.rsRow && rsColumn) {\r\n return params.data?.rsRow.Values[rsColumn.DisplayName] === rowVM.cellNotAccessible;\r\n }\r\n return false;\r\n },\r\n // 'cell-locked' : (params: any) : boolean => {\r\n // const cell = RealTimeCollaborationModule\r\n // .inEditionCells\r\n // .find(x => x.rowId === params.data.rsRow.Id && x.columnId === params.colDef.colId);\r\n // return !!cell;\r\n // }\r\n };\r\n }\r\n\r\n public static onColumnResized(event: agGrid.ColumnResizedEvent, printMode: boolean){\r\n if(!event.columns || (event.columns.length ?? 0) == 0 || !event.finished)\r\n return;\r\n \r\n event.columns.forEach((gridCol => {\r\n let colVM = gridCol.getColDef();\r\n if(printMode) {\r\n event.api.refreshHeader();\r\n return;\r\n }\r\n // Save special columns widths in localstorage\r\n if(colVM.colId === ColumnVM.autoGroupColumnId ||\r\n colVM.colId === ColumnVM.statusChangeByUserId ||\r\n colVM.colId === ColumnVM.statusChangeDateTimeId) {\r\n var listId = (event.context)?.listVM?.list?.Id;\r\n if(listId) {\r\n Settings.setColumnProperty(listId, colVM.colId, \"width\", gridCol.getActualWidth());\r\n }\r\n return;\r\n }\r\n \r\n const rsColumn = colVM.rsColumn;\r\n if(!rsColumn)\r\n return;\r\n \r\n var newWidth = gridCol.getActualWidth();\r\n if(!colVM.rsList || rsColumn.DefaultWidth == newWidth)\r\n return;\r\n \r\n rsColumn.DefaultWidth = newWidth;\r\n Settings.setColumnProperty(colVM.rsList.Id, rsColumn.Id, \"width\", newWidth);\r\n \r\n if(colVM.rsList.Owned) {\r\n rsColumn.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n API.Column.saveWidth(rsColumn);\r\n }\r\n \r\n }));\r\n }\r\n\r\n public static onColumnPinned(event: agGrid.ColumnPinnedEvent) {\r\n if(!event.columns) {\r\n return;\r\n }\r\n event.columns.forEach(column => {\r\n var colVM = column.getColDef();\r\n if(colVM) {\r\n if(colVM.rsList.Owned && colVM.colId) {\r\n API.Column.savePinned(colVM.colId, (event.pinned === true || event.pinned === 'left'), RealTimeCollaborationModule.connection.connectionId)\r\n .then(res => {\r\n if(res) {\r\n var index = -1;\r\n index = event.columnApi.getColumnState().findIndex(col => event.columnApi.getDisplayedColAfter(column)?.getId() === col.colId);\r\n if(!event.pinned) {\r\n index--;\r\n }\r\n if(index > -1) {\r\n event.columnApi.moveColumn(column, index);\r\n } \r\n }\r\n });\r\n }\r\n } \r\n });\r\n event.api.refreshCells();\r\n event.api.refreshHeader();\r\n }\r\n\r\n public static processCellForClipboard(params: agGrid.ProcessCellForExportParams) {\r\n let colVM = params.column.getColDef();\r\n let rowVM = params.node?.data;\r\n if(rowVM?.isTotalRow) {\r\n return params.value;\r\n }\r\n if(colVM && colVM.columnProxy && params.node) {\r\n params.value = colVM.columnProxy.getClipboardValue(colVM.rsColumn, rowVM, params.value);\r\n }\r\n\r\n if(colVM.colId == ColumnVM.rowOwnerHeaderId && rowVM?.rsRow) {\r\n params.value = rowVM.rsRow.Owner.Name;\r\n }\r\n return params.value;\r\n }\r\n}\r\n","import { i18n } from \"@/modules/Localization\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { RowErrorEventParams } from '@/models/RowShare';\r\nimport RowVM from \"./rowVM\";\r\nimport * as API from \"@/api/Api\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport ListDisplayModeVM from \"./listDisplayModeVM\";\r\nimport { ListTreeModule } from \"@/store/ListTreeStore\";\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\nexport default class GridActions {\r\n static removeRow (rowVM: RowVM, displayModeVM: ListDisplayModeVM, hardDelete: boolean, removeFromUICallback: () => void) {\r\n\r\n if(rowVM?.rsRow?.IsParentRow) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: i18n.t('ContextMenu_DeleteRow_CannotDeleteReferenced').toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 10000,\r\n type: 'error',\r\n duplicateId: 'CannotDeleteRow'\r\n });\r\n }\r\n else {\r\n var evtArgs = new RowShare.ConfirmationRequiredEventParams();\r\n evtArgs.title = i18n.t(`ContextMenu_${hardDelete ? 'Hard' : ''}DeleteRow_Title`, [rowVM.rsRow.DescriptorFormattedValue]).toString();\r\n evtArgs.description1 = i18n.t(`ContextMenu_${hardDelete ? 'Hard' : ''}DeleteRow_Description`, [rowVM.rsRow.DescriptorFormattedValue]).toString();\r\n evtArgs.cancelButtonText = i18n.t(\"ContextMenu_DeleteRow_CancelButton\").toString();\r\n evtArgs.actionButtonText = i18n.t(`ContextMenu_${hardDelete ? 'Hard' : ''}DeleteRow_ConfirmButton`).toString();\r\n evtArgs.actionButtonIcon = \"trash-alt\";\r\n evtArgs.actionButtonColor = 'error';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n rowVM.removed = true;\r\n\r\n if(rowVM.isNew) {\r\n removeFromUICallback();\r\n if(rowVM.listVM.rowVMs) {\r\n const index = rowVM.listVM.rowVMs.findIndex(rvm => rvm.rowVMId == rowVM.rowVMId);\r\n if (index > -1) {\r\n rowVM.listVM.rowVMs.splice(index, 1);\r\n }\r\n }\r\n EventBus.$emit(RowShare.Event.ROW_DELETE, [rowVM]);\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, displayModeVM);\r\n return;\r\n }\r\n\r\n API.Row.deleteBatch([rowVM.rsRow.Id], hardDelete, RealTimeCollaborationModule.connection.connectionId).then((apiRes: boolean | null) => {\r\n if(apiRes){\r\n removeFromUICallback();\r\n if(rowVM.listVM.rowVMs) {\r\n const index = rowVM.listVM.rowVMs.findIndex(rvm => rvm.rowVMId == rowVM.rowVMId);\r\n if (index > -1) {\r\n rowVM.listVM.rowVMs.splice(index, 1);\r\n }\r\n }\r\n EventBus.$emit(RowShare.Event.ROW_DELETE, [rowVM]);\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, displayModeVM);\r\n }\r\n }).catch((err: any) => {\r\n EventBus.$emit(RowShare.Event.ROW_ERROR, {\r\n rowVM: rowVM,\r\n title: i18n.t(\"ErrorNotif_RowErrorTitleTemplate\", [rowVM.rsRow.DescriptorFormattedValue]).toString(),\r\n message: err._message});\r\n });\r\n }\r\n\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n }\r\n\r\n static archiveRow(rowVM: RowVM, displayModeVM: ListDisplayModeVM, removeFromUICallback: () => void) {\r\n if(!(ListTreeModule.currentOrganization?.HasArchiveRows ?? false)) {\r\n EventBus.$emit(RowShare.Event.SHOW_UPSELL_DIALOG, {\r\n title: i18n.t('UpsellDialog_Title').toString(),\r\n description: i18n.t('UpsellDialog_Description_ArchiveRows').toString()\r\n }); \r\n }\r\n else {\r\n var evtArgs = new RowShare.ConfirmationRequiredEventParams();\r\n evtArgs.title = i18n.t(`ArchiveConfirmation_SingleRowTitle`, [rowVM.rsRow.DescriptorFormattedValue]).toString();\r\n evtArgs.description1 = i18n.t(`ArchiveConfirmation_SingleRowDescription`,[rowVM.rsRow.DescriptorFormattedValue]).toString();\r\n evtArgs.cancelButtonText = i18n.t(\"Common_Cancel\").toString();\r\n evtArgs.actionButtonText = i18n.t(`ArchiveConfirmation_ConfirmButton`).toString();\r\n evtArgs.actionButtonIcon = \"archive\";\r\n evtArgs.actionButtonColor = \"primary\";\r\n\r\n evtArgs.onConfirmation = async () => {\r\n try {\r\n let apiRes: RowShare.ApiResult | null = null;\r\n apiRes = await API.Row.archive([rowVM.rsRow.Id], RealTimeCollaborationModule.connection.connectionId);\r\n \r\n if(apiRes) {\r\n if(apiRes.IsValid && apiRes.Value) {\r\n EventBus.$emit(RowShare.Event.ROW_ARCHIVE, [rowVM]);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.ROW_ERROR, {message: i18n.t(apiRes.Errors[0].ExceptionCode.toString()).toString()});\r\n }\r\n }\r\n } catch(err: any) {\r\n EventBus.$emit(RowShare.Event.ROW_ERROR, {message: err._message});\r\n }\r\n }\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n }\r\n}","import * as agGrid from 'ag-grid-community';\r\nimport { i18n } from \"@/modules/Localization\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport * as API from \"@/api/Api\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport ColumnVM from './columnVM'\r\nimport RowVM from './rowVM'\r\nimport GridViewVM from './gridViewVM'\r\nimport { UserModule } from '@/store/UserStore';\r\nimport GridActions from './GridActions';\r\nimport { ApplicationModule } from '@/store/ApplicationStore';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\nexport class GridContextMenu {\r\n public static getContextMenuItems(params: agGrid.GetContextMenuItemsParams) : (string | agGrid.MenuItemDef)[]{\r\n var menuItems : (string | agGrid.MenuItemDef)[] = [];\r\n\r\n menuItems.push('copy');\r\n menuItems.push('copyWithHeaders');\r\n\r\n if(!params?.node?.data || params.node.data.isTotalRow || params.api.getEditingCells().length > 0)\r\n return menuItems;\r\n\r\n var rowVM = params.node.data;\r\n var colVM = params.column?.getColDef();\r\n\r\n if(colVM) {\r\n var colActions = colVM.columnProxy?.getContextMenuEntries(params);\r\n if(colActions) {\r\n menuItems.push('separator');\r\n for(let i = 0; i <= colActions.length; ++i)\r\n menuItems.push(colActions[i]);\r\n }\r\n }\r\n\r\n\r\n var gridViewVM = params.context;\r\n let specialRowsDisplayed = gridViewVM.listVM?.specialRowsDisplayed;\r\n if(!rowVM.isNew && !specialRowsDisplayed) {\r\n menuItems.push('separator');\r\n if(!ApplicationModule.isMsTeamsApp) {\r\n menuItems.push(new RowFormViewContextMenuEntry(params));\r\n }\r\n menuItems.push(new SidePanelFormViewContextMenuEntry(params));\r\n if (!rowVM.listVM.hasUniqueColumns && !gridViewVM.isSorted && gridViewVM.listVM.canAddNewRow)\r\n menuItems.push(new CloneRowContextMenuEntry(params));\r\n if(rowVM.listVM.canAddNewRow && ((gridViewVM?.rowGroupsCount ?? 0) <= 0) && !gridViewVM.isSorted)\r\n menuItems.push(new InsertRowContextMenuEntry(params));\r\n }\r\n\r\n if(gridViewVM.listVM?.displayedRows === RowShare.DisplayedRows.Deleted) {\r\n menuItems.push('separator');\r\n menuItems.push(new RestoreRowContextMenuEntry(params));\r\n }\r\n if(gridViewVM.listVM?.displayedRows === RowShare.DisplayedRows.Archived) {\r\n menuItems.push('separator');\r\n menuItems.push(new UnarchiveRowContextMenuEntry(params));\r\n }\r\n\r\n if((rowVM.rsRow.CanSuppress)\r\n && ((rowVM.listVM.list?.Owned ?? false)\r\n || !(rowVM.listVM.hasReadOnlyColumns)\r\n && !(rowVM.listVM.hasHiddenColumns))\r\n && !rowVM.isLocked) {\r\n menuItems.push(new DeleteRowContextMenuEntry(params, gridViewVM.listVM.deletedRowsDisplayed));\r\n }\r\n\r\n if((rowVM.listVM.list?.Owned ?? false) && gridViewVM.listVM.activeRowsDisplayed) {\r\n if(rowVM.isLocked) {\r\n menuItems.push(new UnlockRowContextMenuEntry(params));\r\n }\r\n else {\r\n menuItems.push(new ArchiveRowContextMenuEntry(params));\r\n menuItems.push(new LockRowContextMenuEntry(params));\r\n }\r\n }\r\n\r\n if(UserModule.CurrentUser.IsAdministrator) {\r\n menuItems.push('separator'); \r\n menuItems.push(new RowIdContextMenuEntry(params));\r\n }\r\n\r\n return menuItems;\r\n }\r\n}\r\n\r\nclass SidePanelFormViewContextMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('Grid_SidePanelFormView').toString();\r\n private params: agGrid.GetContextMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams) {\r\n this.params = params;\r\n }\r\n\r\n public action = () => {\r\n if(!this.params.node) {\r\n return;\r\n }\r\n const rowVM = this.params.node.data;\r\n const gridViewVM = this.params.context;\r\n EventBus.$emit(RowShare.Event.SHOW_SIDEPANEL_FORMVIEW, {ListVM: gridViewVM?.listVM, rowId: rowVM.rsRow?.Id})\r\n }\r\n}\r\n\r\nclass RowFormViewContextMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('Grid_RowFormView').toString();\r\n\r\n private params: agGrid.GetContextMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams){\r\n this.params = params;\r\n }\r\n\r\n public action = () => {\r\n if(!this.params.node)\r\n return;\r\n\r\n var listId = this.params.node.data.rsRow.ListId;\r\n var rowId = this.params.node.data.rsRow.Id;\r\n window.location.href = '/tf/' + listId + '/' + rowId;\r\n }\r\n}\r\n\r\nclass CloneRowContextMenuEntry implements agGrid.MenuItemDef {\r\n\r\n public name = i18n.t('ContextMenu_CloneRow').toString();\r\n\r\n private params: agGrid.GetContextMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams){\r\n this.params = params;\r\n }\r\n\r\n public action = async () =>{\r\n if(!this.params.node)\r\n return;\r\n\r\n const gridViewVM = this.params.context;\r\n const rowVM = this.params.node.data;\r\n var newAgIdx = 0 ;\r\n try {\r\n let clonedRow = await API.Row.clone(rowVM.rsRow.Id, false, RealTimeCollaborationModule.connection.connectionId);\r\n newAgIdx = (this.params.node.rowIndex ?? 0) + 1;\r\n await gridViewVM.insertClonedRowInUI(clonedRow, newAgIdx, true);\r\n EventBus.$emit(RowShare.Event.ROW_ADDED, rowVM);\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, gridViewVM);\r\n }\r\n catch(err: any) \r\n {\r\n EventBus.$emit(RowShare.Event.GRID_ERROR, { message: err.message });\r\n } \r\n }\r\n}\r\nclass InsertRowContextMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('ContextMenu_InsertRow').toString();\r\n\r\n private params: agGrid.GetContextMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams){\r\n this.params = params;\r\n }\r\n\r\n public action = () => {\r\n if(!this.params.node)\r\n return;\r\n\r\n const gridViewVM = this.params.context;\r\n gridViewVM.addRow(this.params.node);\r\n }\r\n}\r\n\r\nclass DeleteRowContextMenuEntry implements agGrid.MenuItemDef {\r\n private defaultLabel = i18n.t('ContextMenu_DeleteRow').toString();\r\n\r\n public name = this.defaultLabel;\r\n\r\n private params: agGrid.GetContextMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams, deletedRowsDisplayed: boolean) {\r\n if(deletedRowsDisplayed) {\r\n this.name = i18n.t('ContextMenu_HardDeleteRow').toString();\r\n }\r\n this.params = params;\r\n }\r\n\r\n public action = () => {\r\n if(!this.params.node)\r\n return;\r\n\r\n const rowVM = this.params.node.data;\r\n const gridApi = this.params.api;\r\n const gridViewVM = this.params.context;\r\n if(!rowVM || ! gridApi) {\r\n \r\n console.error(\"Failed deleting the row\");\r\n return;\r\n }\r\n \r\n GridActions.removeRow(rowVM, gridViewVM, gridViewVM.listVM.deletedRowsDisplayed, () => {});\r\n }\r\n}\r\n\r\nclass ArchiveRowContextMenuEntry implements agGrid.MenuItemDef {\r\n private defaultLabel = i18n.t('ContextMenu_ArchiveRow').toString();\r\n public name = this.defaultLabel;\r\n private params: agGrid.GetContextMenuItemsParams;\r\n private archiveIcon = \"\";\r\n public icon: string;\r\n public cssClasses: string[] | undefined = [];\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams) {\r\n this.params = params;\r\n this.icon = this.archiveIcon;\r\n if(!(ListTreeModule.currentOrganization?.HasArchiveRows ?? false)) {\r\n this.cssClasses?.push('premiumfunction-contextMenu');\r\n }\r\n }\r\n\r\n public action = () => {\r\n if(!this.params.node) {\r\n return;\r\n }\r\n\r\n const rowVM = this.params.node.data;\r\n const gridApi = this.params.api;\r\n const gridViewVM = this.params.context;\r\n if(!rowVM || !gridApi) {\r\n console.error(\"Failed archiving the row (rowVM or gridAPI undefined)\");\r\n return;\r\n }\r\n GridActions.archiveRow(rowVM, gridViewVM, () => {\r\n gridApi.applyTransaction({remove: [rowVM]});\r\n EventBus.$emit(RowShare.Event.ROW_ARCHIVE, [rowVM]);\r\n });\r\n }\r\n}\r\n\r\nclass UnarchiveRowContextMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('ContextMenu_UnarchiveRow').toString();\r\n private params: agGrid.GetContextMenuItemsParams;\r\n constructor(params: agGrid.GetContextMenuItemsParams) {\r\n this.params = params;\r\n }\r\n\r\n public action = async () => {\r\n if(!this.params.node) {\r\n return;\r\n }\r\n const rowVM = this.params.node.data;\r\n const gridViewVM = this.params.context;\r\n if(!rowVM?.rsRow?.Id || !gridViewVM) {\r\n return;\r\n }\r\n let result = await API.Row.unarchive([rowVM.rsRow.Id], RealTimeCollaborationModule.connection.connectionId);\r\n if(result) {\r\n if(result.IsValid && result.Value) {\r\n EventBus.$emit(RowShare.Event.ROW_UNARCHIVE, [rowVM]);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n title: i18n.t('ContextMenu_UnarchiveRowError').toString(),\r\n type: RowShare.NotificationType.error,\r\n duplicateId: 'UnarchiveRows',\r\n message: i18n.t(result.Errors[0].ExceptionCode.toString()).toString()\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nclass RestoreRowContextMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('ContextMenu_RestoreRow').toString();\r\n private params: agGrid.GetContextMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams) {\r\n this.params = params;\r\n }\r\n\r\n public action = async () => {\r\n if(!this.params.node) {\r\n return;\r\n }\r\n const rowVM = this.params.node.data;\r\n const gridViewVM = this.params.context;\r\n if(!rowVM?.rsRow?.Id || !gridViewVM) {\r\n return;\r\n }\r\n let result = await API.Row.Restore([rowVM.rsRow.Id]);\r\n if(result) {\r\n if(result.IsValid && result.Value) {\r\n EventBus.$emit(RowShare.Event.ROW_RESTORE, [rowVM]);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n title: i18n.t('ContextMenu_RestoreRowsError').toString(),\r\n type: RowShare.NotificationType.error,\r\n duplicateId: 'RestoreRows',\r\n message: i18n.t(result.Errors[0].ExceptionCode.toString()).toString()\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nclass RowIdContextMenuEntry implements agGrid.MenuItemDef {\r\n public name = \"Row ID\";\r\n\r\n private params: agGrid.GetContextMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams){\r\n this.params = params;\r\n const rowVM = this.params?.node?.data;\r\n if(rowVM?.rsRow?.Id)\r\n this.name = rowVM?.rsRow?.Id;\r\n }\r\n\r\n public action = () => {\r\n document.addEventListener('copy', (event: ClipboardEvent) => this.copyToClipboard(event));\r\n document.execCommand('copy');\r\n }\r\n \r\n copyToClipboard(event: ClipboardEvent) {\r\n if(!this.params.node)\r\n return;\r\n\r\n const rowVM = this.params.node.data;\r\n event.clipboardData?.setData('text/plain', rowVM?.rsRow?.Id);\r\n event.preventDefault();\r\n document.removeEventListener('copy', this.copyToClipboard);\r\n }\r\n}\r\n\r\nclass LockRowContextMenuEntry implements agGrid.MenuItemDef {\r\n private defaultLabel = i18n.t('ContextMenu_LockRow').toString();\r\n public name = this.defaultLabel;\r\n private params: agGrid.GetContextMenuItemsParams;\r\n private lockIcon = \"\";\r\n public icon: string;\r\n public cssClasses: string[] | undefined = [];\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams) {\r\n this.params = params;\r\n this.icon = this.lockIcon;\r\n if(!(ListTreeModule.currentOrganization?.HasLockRows ?? false)) {\r\n this.cssClasses?.push('premiumfunction-contextMenu');\r\n }\r\n }\r\n\r\n public action = async () => {\r\n if(!this.params.node) {\r\n return;\r\n }\r\n\r\n const rowVM = this.params.node.data;\r\n const gridApi = this.params.api;\r\n const gridViewVM = this.params.context;\r\n if(!rowVM || !gridApi) {\r\n console.error(\"Failed locking the row (rowVM or gridAPI undefined)\");\r\n return;\r\n }\r\n\r\n if(!(ListTreeModule.currentOrganization?.HasLockRows ?? false)) {\r\n EventBus.$emit(RowShare.Event.SHOW_UPSELL_DIALOG, {\r\n title: i18n.t('UpsellDialog_Title').toString(),\r\n description: i18n.t('UpsellDialog_Description_LockRows').toString()\r\n });\r\n return;\r\n }\r\n\r\n let apiRes: RowShare.ApiResult | null = null;\r\n apiRes = await API.Row.lock([rowVM.rsRow.Id], RealTimeCollaborationModule.connection.connectionId);\r\n if(apiRes) {\r\n if(apiRes.IsValid && apiRes.Value) {\r\n EventBus.$emit(RowShare.Event.ROW_LOCKED, apiRes.Value);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n title: i18n.t('ContextMenu_LockRowError').toString(),\r\n type: RowShare.NotificationType.error,\r\n duplicateId: 'LockRows',\r\n message: i18n.t(apiRes.Errors[0].ExceptionCode.toString()).toString()\r\n });\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nclass UnlockRowContextMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('ContextMenu_UnlockRow').toString();\r\n private params: agGrid.GetContextMenuItemsParams;\r\n private unlockIcon = \"\";\r\n public icon: string;\r\n\r\n constructor(params: agGrid.GetContextMenuItemsParams) {\r\n this.params = params;\r\n this.icon = this.unlockIcon;\r\n }\r\n\r\n public action = async () => {\r\n if(!this.params.node) {\r\n return;\r\n }\r\n const rowVM = this.params.node.data;\r\n const gridViewVM = this.params.context;\r\n if(!rowVM?.rsRow?.Id || !gridViewVM) {\r\n return;\r\n }\r\n let result = await API.Row.unlock([rowVM.rsRow.Id], RealTimeCollaborationModule.connection.connectionId);\r\n if(result) {\r\n if(result.IsValid && result.Value) {\r\n EventBus.$emit(RowShare.Event.ROW_UNLOCKED, result.Value);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 5000,\r\n title: i18n.t('ContextMenu_UnlockRowError').toString(),\r\n type: RowShare.NotificationType.error,\r\n duplicateId: 'UnlockRows',\r\n message: i18n.t(result.Errors[0].ExceptionCode.toString()).toString()\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport '@fortawesome/fontawesome-pro/css/all.css'\r\nimport '@fortawesome/fontawesome-pro/css/sharp-light.css'\r\nimport colors from 'vuetify/lib/util/colors';\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n breakpoint: {\r\n mobileBreakpoint: 'xs',\r\n },\r\n icons: {\r\n iconfont: 'fa'\r\n },\r\n theme:{\r\n options: {\r\n customProperties: true\r\n },\r\n themes:{\r\n light:{\r\n lightest: '#ffffff',\r\n darkest: '#131523',\r\n primary: {\r\n darken1: '#1742de',\r\n base: '#295ff2',\r\n lighten1: '#90c0ff',\r\n lighten2: '#eef5ff',\r\n },\r\n secondary: {\r\n darken1: \"#EB9605\",\r\n base: '#E9A42F',\r\n lighten1: '#FFBB39',\r\n lighten2: '#FFF4E1',\r\n lighten3: '#FDF7ED'\r\n },\r\n warning: {\r\n darken1: \"#EB9605\",\r\n base: '#E9A42F',\r\n lighten1: '#FFBB39',\r\n lighten2: '#FFF4E1',\r\n },\r\n error: {\r\n darken1: '#F44A3E',\r\n base: '#F66B62',\r\n lighten1: '#FE8D85',\r\n lighten2: '#FFECEB',\r\n },\r\n success: {\r\n darken1: '#168867',\r\n base: '#4FB399',\r\n lighten1: '#7EC8B4',\r\n lighten2: '#E2F3EE',\r\n },\r\n grey: {\r\n darken1: '#344054',\r\n base:'#475467',\r\n lighten1:'#98A2B3',\r\n lighten2:'#E4E7EC',\r\n },\r\n deeppurple: {\r\n base: colors.deepPurple.accent1\r\n },\r\n teal: {\r\n darken4: colors.teal.darken4,\r\n darken3: colors.teal.darken3,\r\n darken2: colors.teal.darken2,\r\n darken1: colors.teal.darken1,\r\n base: colors.teal.base,\r\n lighten1: colors.teal.lighten1,\r\n lighten2: colors.teal.lighten2,\r\n lighten3: colors.teal.lighten3,\r\n lighten4: colors.teal.lighten4,\r\n lighten5: colors.teal.lighten5\r\n },\r\n backgrounds:'#f7f8fb',\r\n icon:'#eef2fc',\r\n \r\n facebook: '#4267B2',\r\n google: '#DB4437',\r\n excel: '#1d6f42',\r\n windows: '#01A6F0',\r\n color0: '#30D98D', \r\n color1: '#FAF5C2', \r\n color2: '#DBEAE5', \r\n color3: '#488B49', \r\n color4: '#0B6E4F',\r\n color5: '#A88261', \r\n color6: '#F46B82', \r\n color7: '#F2DBEC', \r\n color8: '#E81E62', \r\n color9: '#A51080', \r\n color10: '#5FADAF', \r\n color11: '#39116A',\r\n color12: '#FBE946', \r\n color13: '#ECB95B', \r\n color14: '#F09942', \r\n color15: '#F36416', \r\n color16: '#E94F37', \r\n color17: '#F0D9DD', \r\n color18: '#96031A',\r\n color19: '#69140E', \r\n color20: '#037971', \r\n color21: '#E1F1FF', \r\n color22: '#00B4CC', \r\n color23: '#36A0FC', \r\n color24: '#496DDB', \r\n color25: '#244F94',\r\n color26: '#7C8AA2', \r\n color27: '#E0E5E7', \r\n color28: '#4E8098', \r\n color29: '#765941', \r\n color30: '#30505F', \r\n color31: '#152229'\r\n }\r\n }\r\n }\r\n});\r\n\r\n\r\n","import * as agGrid from 'ag-grid-community';\r\nimport { i18n } from \"@/modules/Localization\";\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport * as models from \"@/models/RowShare\";\r\nimport * as api from \"@/api/Api\";\r\nimport router from '@/modules/Router';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport vuetify from \"@/modules/Vuetify\";\r\nimport ListDisplayModeVM from './listDisplayModeVM';\r\nimport _ from \"lodash\";\r\nimport { GlobalNotificationEventParams } from '@/models/RowShare';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { ColumnTypes } from '@/utils/ColumnTypes';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\nexport class columnContextMenu {\r\n public static getMainMenuItems(params: agGrid.GetMainMenuItemsParams) {\r\n let columnMenu = [];\r\n let grid = params.context;\r\n let hasHiddenColumnBeside: boolean = false;\r\n let colState = params.columnApi?.getColumnState() ?? [];\r\n let displayedColBefore = params.columnApi?.getDisplayedColBefore(params.column);\r\n let firstColumn = !displayedColBefore || (displayedColBefore.getColId() == ColumnVM.rowOwnerHeaderId);\r\n let lastDiplayedColumn = (!params.columnApi?.getDisplayedColAfter(params.column) && firstColumn);\r\n let isAutoGroupColumn = (params.column.getId() === ColumnVM.autoGroupColumnId);\r\n let specialRowsDisplayed = grid.listVM?.specialRowsDisplayed;\r\n let listOwned = grid?.listVM.list?.Owned;\r\n\r\n let colIndex = colState.findIndex(cs => cs.colId == params.column.getColId());\r\n if(colIndex > -1 && colIndex + 1 < colState.length)\r\n {\r\n hasHiddenColumnBeside = colState[colIndex + 1].hide ?? false;\r\n }\r\n let rsColumn = (params.column.getColDef())?.rsColumn;\r\n \r\n if(listOwned && !grid?.listVM.list?.LoadedByReadOnlyMember && !isAutoGroupColumn && !specialRowsDisplayed) {\r\n columnMenu.push(new columnSettingsMenuEntry(params));\r\n columnMenu.push(new columnPermissionsMenuEntry(params));\r\n if(rsColumn?.canEditIsMandatory){\r\n columnMenu.push(new toggleMandatoryColumnMenuEntry(params));\r\n }\r\n columnMenu.push('separator');\r\n }\r\n columnMenu.push('autoSizeThis');\r\n columnMenu.push('autoSizeAll');\r\n\r\n if(listOwned && !grid?.listVM.list?.LoadedByReadOnlyMember && !vuetify.framework.breakpoint.mobile && !isAutoGroupColumn\r\n && (Utils.isNullOrWhiteSpace(rsColumn.ColumnGroup) || params.column.getPinned()== 'left')) {\r\n columnMenu.push(new togglePinColumnMenuEntry(params.column, grid));\r\n }\r\n if(!firstColumn && !isAutoGroupColumn) {\r\n columnMenu.push(new hideColumnMenuEntry(params));\r\n }\r\n\r\n if(hasHiddenColumnBeside) {\r\n columnMenu.push(new showHiddenColumnsMenuEntry(params.column, grid));\r\n }\r\n\r\n if(isAutoGroupColumn) {\r\n columnMenu.push('separator');\r\n columnMenu.push(new expandAllMenuEntry(params));\r\n columnMenu.push(new collapseAllMenuEntry(params));\r\n }\r\n\r\n if((!rsColumn?.isMandatory || hasHiddenColumnBeside || grid?.listVM.list?.Owned) && !isAutoGroupColumn) {\r\n columnMenu.push('separator');\r\n }\r\n \r\n var columnTypes = ColumnTypes.getColumnTypes(true, ListTreeModule.currentOrganization?.HasRowMetadatas ?? false);\r\n var columnTypeIndex = columnTypes.findIndex((type) => type.StrongType === rsColumn.Type);\r\n \r\n var columnType = columnTypes[columnTypeIndex];\r\n\r\n if(!isAutoGroupColumn && !specialRowsDisplayed && !rsColumn.HasParentColumn && listOwned && !grid?.listVM.list?.LoadedByReadOnlyMember) {\r\n columnMenu.push(new insertColumnBefore(params));\r\n if(rsColumn.Type !== models.ColumnStrongType.AutoNumber && (!(rsColumn.isTechnical && !rsColumn.isOwnerInfo) || columnType.HasRequiredSubscription)) {\r\n columnMenu.push(new cloneColumnAfter(params));\r\n }\r\n }\r\n\r\n if(listOwned && !grid?.listVM.list?.LoadedByReadOnlyMember && !isAutoGroupColumn && !specialRowsDisplayed) {\r\n if(!params.column?.getColDef()?.lockPosition && !lastDiplayedColumn && !(firstColumn && hasHiddenColumnBeside) && rsColumn?.canBeRemoved) {\r\n columnMenu.push(new removeColumnMenuEntry(params));\r\n }\r\n }\r\n if(params.column.isAllowRowGroup() && !isAutoGroupColumn) {\r\n columnMenu.push('separator');\r\n if(params.column.isRowGroupActive()) {\r\n columnMenu.push('rowUnGroup');\r\n }\r\n else {\r\n columnMenu.push('rowGroup');\r\n }\r\n }\r\n \r\n if(isAutoGroupColumn) {\r\n columnMenu.push('separator');\r\n columnMenu.push(new clearRowGroupsColumnMenuEntry());\r\n }\r\n\r\n if(!isAutoGroupColumn && (rsColumn.isDateFormat || rsColumn.isDateTimeFormat)) {\r\n columnMenu.push(new showCalendarView(params));\r\n }\r\n return columnMenu;\r\n }\r\n}\r\n\r\nclass clearRowGroupsColumnMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('SharingBar_ClearRowGroups').toString();\r\n\r\n public action = () => {\r\n EventBus.$emit(models.Event.GRID_CLEAR_ROWGROUPS); \r\n }\r\n}\r\n\r\nclass insertColumnBefore implements agGrid.MenuItemDef {\r\n public name = i18n.t('Action_InsertColumnBefore').toString();\r\n public cssClasses = ['insertColumn--menu'];\r\n private listId: string;\r\n private columnId: string;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.listId = params?.context?.listVM?.list?.Id;\r\n this.columnId = params.column.getColId();\r\n }\r\n\r\n public action = () => {\r\n EventBus.$emit(models.Event.ADD_COLUMN, { insertBeforeColumnId: this.columnId });\r\n }\r\n}\r\n\r\nclass cloneColumnAfter implements agGrid.MenuItemDef {\r\n public name = i18n.t('Action_CloneColumnAfter').toString();\r\n public cssClasses = ['cloneColumnAfter--menu'];\r\n private rsColumn: models.Column;\r\n private params: agGrid.GetMainMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) { \r\n this.params = params; \r\n this.rsColumn = (params.column.getColDef())?.rsColumn;\r\n }\r\n\r\n public action = async () => {\r\n if(!this.rsColumn)\r\n return;\r\n\r\n var cloneColumnResult = await api.Column.clone(this.rsColumn.Id, RealTimeCollaborationModule.connection.connectionId);\r\n if(cloneColumnResult?.IsValid) {\r\n let gridViewVM = this.params.context;\r\n gridViewVM.insertColumnInUI(cloneColumnResult.Value, this.rsColumn.Id, \"after\");\r\n }\r\n }\r\n\r\n}\r\n\r\nclass showCalendarView implements agGrid.MenuItemDef {\r\n public name = i18n.t('Action_CalendarView').toString();\r\n public cssClasses = ['calendarView--menu'];\r\n\r\n private listId: string;\r\n private startColumnId: string;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.listId = params?.context?.listVM?.list?.Id;\r\n this.startColumnId = params.column.getColId();\r\n }\r\n\r\n public action = () => {\r\n if(this.listId && this.startColumnId) {\r\n router.push({ name: 'Calendar', params: {listId: this.listId, startColumnId: this.startColumnId }});\r\n }\r\n }\r\n}\r\n\r\nclass columnPermissionsMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('Action_ColumnPermissions').toString();\r\n\r\n private columnId: string;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.columnId = params.column.getColId();\r\n }\r\n\r\n public action = () => {\r\n EventBus.$emit(models.Event.SHOW_SIDEPANEL_COLUMN_PERMISSIONS, { columnId: this.columnId});\r\n }\r\n}\r\n\r\nclass expandAllMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('Action_ExpandAll').toString();\r\n\r\n private params: agGrid.GetMainMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.params = params;\r\n }\r\n\r\n public action = () => {\r\n this.params?.api?.expandAll();\r\n }\r\n}\r\n\r\nclass collapseAllMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('Action_CollapseAll').toString();\r\n\r\n private params: agGrid.GetMainMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.params = params;\r\n }\r\n\r\n public action = () => {\r\n this.params?.api?.collapseAll();\r\n }\r\n}\r\n\r\nclass columnSettingsMenuEntry implements agGrid.MenuItemDef {\r\n public name = i18n.t('Action_ColumnSettings').toString();\r\n\r\n private params: agGrid.GetMainMenuItemsParams;\r\n private rsColumn: models.Column;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.params = params;\r\n this.rsColumn = (this.params.column.getColDef())?.rsColumn;\r\n }\r\n\r\n public action = () => {\r\n let listId = this.params?.context?.listVM?.list?.Id;\r\n if(listId) {\r\n EventBus.$emit(models.Event.SHOW_SIDEPANEL_COLUMN_SETTINGS, \r\n {columnId: this.rsColumn.RelationColumnId ?? this.params.column.getColId(), listId: listId});\r\n }\r\n }\r\n}\r\n\r\nclass toggleMandatoryColumnMenuEntry implements agGrid.MenuItemDef {\r\n private params: agGrid.GetMainMenuItemsParams;\r\n private rsColumn: models.Column;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.params = params;\r\n this.rsColumn = (this.params.column.getColDef())?.rsColumn;\r\n this.icon = this.rsColumn?.isMandatory ? this.mandatoryIcon : \"\"; \r\n }\r\n\r\n private mandatoryIcon = \"\";\r\n\r\n public name = i18n.t('Action_ToggleMandatoryColumn').toString();\r\n\r\n public action = () => {\r\n this.toggleMandatoryColumn(this.params.column);\r\n };\r\n\r\n async toggleMandatoryColumn(column: agGrid.Column) {\r\n if(!column){\r\n return;\r\n }\r\n let colVM = column.getColDef();\r\n if(colVM) {\r\n colVM.rsColumn.isMandatory = !colVM.rsColumn.isMandatory;\r\n colVM.rsColumn.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n api.Column.save(colVM.rsColumn).then(savedColumn => {\r\n if(savedColumn) {\r\n colVM.rsColumn = savedColumn;\r\n if(this.params?.api) {\r\n this.params.api.refreshHeader();\r\n }\r\n \r\n var displayModeVM = this.params.context;\r\n if( displayModeVM.listVM.columns) {\r\n var idx = displayModeVM.listVM.columns.findIndex(c => c.Id == savedColumn.Id);\r\n displayModeVM.listVM.columns[idx] = savedColumn;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n \r\n public icon: string = \"\";\r\n}\r\n\r\nclass removeColumnMenuEntry implements agGrid.MenuItemDef {\r\n private params: agGrid.GetMainMenuItemsParams;\r\n private rsColumn: models.Column;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.params = params;\r\n this.rsColumn = (this.params.column.getColDef())?.rsColumn;\r\n }\r\n\r\n public name = i18n.t('Action_RemoveColumn').toString();\r\n\r\n public action = async () => {\r\n if(!this.rsColumn)\r\n return;\r\n\r\n if(await api.Column.IsReferenced(this.rsColumn.Id)) {\r\n EventBus.$emit(models.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: i18n.t('ColumnMenu_CannotDeleteReferenced').toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 10000,\r\n type: 'error',\r\n duplicateId: 'CannotDeleteColumn'\r\n });\r\n }\r\n else {\r\n var evtArgs = new models.ConfirmationRequiredEventParams();\r\n evtArgs.title = i18n.t(\"ColumnMenu_DeleteColumn_Title\", [this.rsColumn?.DisplayName]).toString();\r\n evtArgs.description1 = i18n.t(\"ColumnMenu_DeleteColumn_Description\", [this.rsColumn?.DisplayName]).toString();\r\n evtArgs.cancelButtonText = i18n.t(\"ColumnMenu_DeleteColumn_CancelButton\").toString();\r\n evtArgs.actionButtonText = i18n.t(\"ColumnMenu_DeleteColumn_ConfirmButton\").toString();\r\n evtArgs.actionButtonIcon = \"trash-alt\";\r\n evtArgs.actionButtonColor = \"error\";\r\n\r\n evtArgs.onConfirmation = async () => {\r\n if(!this.rsColumn)\r\n return;\r\n\r\n this.rsColumn.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n api.Column.remove(this.rsColumn).then((apiRes: boolean | null) => {\r\n let gridViewVM = this.params.context;\r\n\r\n if(apiRes && this.params?.api && gridViewVM.listVM.columns) {\r\n\r\n _.remove(gridViewVM.listVM.columns, c => c.Id == this.rsColumn.Id);\r\n\r\n let colDefs = this.params.api.getColumnDefs();\r\n if(!colDefs)\r\n return;\r\n\r\n if(this.rsColumn.ColumnGroup) {\r\n this.removeFromGroup(colDefs, this.rsColumn.Id);\r\n } else {\r\n let deletedIndex = colDefs.findIndex(def => def && (def).colId == this.rsColumn.Id);\r\n if(deletedIndex > -1) \r\n colDefs.splice(deletedIndex, 1);\r\n }\r\n\r\n this.params.api.setColumnDefs(colDefs);\r\n this.params.api.redrawRows();\r\n EventBus.$emit(models.Event.GRID_INFOS_CHANGED, this.params.context);\r\n \r\n } else {\r\n EventBus.$emit(models.Event.GRID_ERROR, { message: i18n.t(\"ColumnMenu_DeleteColumn_ErrorTemplate\", [this.rsColumn?.DisplayName]).toString() });\r\n }\r\n }).catch((err: any) => {\r\n console.log(err);\r\n EventBus.$emit(models.Event.GRID_ERROR, { message: err._message });\r\n });\r\n }\r\n\r\n EventBus.$emit(models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n }\r\n\r\n public removeFromGroup(colDefs: (agGrid.ColDef | agGrid.ColGroupDef)[], colId: string) : boolean {\r\n for(let i = 0; i < colDefs.length; ++i) {\r\n const children = (colDefs[i] as any).children;\r\n if(children) {\r\n if(this.removeFromGroup(children, colId))\r\n return true;\r\n } else {\r\n let colVM = colDefs[i];\r\n if(colVM && colVM.rsColumn?.Id == colId) {\r\n colDefs.splice(i, 1);\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nclass hideColumnMenuEntry implements agGrid.MenuItemDef {\r\n private params: agGrid.GetMainMenuItemsParams;\r\n\r\n constructor(params: agGrid.GetMainMenuItemsParams) {\r\n this.params = params;\r\n }\r\n\r\n public name = i18n.t('Action_HideColumn').toString();\r\n\r\n public action = () => {\r\n (this.params.context).hideColumn(this.params.column);\r\n }\r\n}\r\n\r\nclass showHiddenColumnsMenuEntry implements agGrid.MenuItemDef {\r\n private column: agGrid.Column;\r\n private gridContext: GridViewVM;\r\n\r\n constructor(column: agGrid.Column, context: GridViewVM) {\r\n this.column = column;\r\n this.gridContext = context;\r\n }\r\n\r\n public name = i18n.t('Action_ShowHiddenColumns').toString();\r\n\r\n public action = () => {\r\n this.gridContext.showHiddenColumnsBeside(this.column);\r\n }\r\n}\r\n\r\nclass togglePinColumnMenuEntry implements agGrid.MenuItemDef {\r\n private gridContext: GridViewVM;\r\n private column: agGrid.Column;\r\n\r\n constructor(column: agGrid.Column, context: GridViewVM) {\r\n this.gridContext = context;\r\n this.column = column;\r\n this.name = i18n.t('Grid_pinColumn').toString();\r\n\r\n this.gridContext.execOnceColumnApiIsReady(columnApi => {\r\n let colState = columnApi.getColumnState().find(cs => cs.colId === this.column.getColId());\r\n if(colState) {\r\n if(colState.pinned === true || colState.pinned === 'left') {\r\n this.name = i18n.t('Grid_noPin').toString();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public name: string;\r\n\r\n public action = () => {\r\n this.gridContext.togglePinColumn(this.column);\r\n }\r\n}\r\n\r\n// To Use if empty column function is re-activated\r\n//\r\n// async emptyColumn(columnId: string) {\r\n// let rsColumn = await API.Column.load(columnId);\r\n// if(!rsColumn) {\r\n// return;\r\n// }\r\n\r\n// var evtArgs = new RowShare.ConfirmationRequiredEventParams();\r\n// evtArgs.title = this.$i18n.t('ColumnMenu_ClearColumn_Title', [rsColumn.DisplayName]).toString();\r\n// evtArgs.description1 = this.$i18n.t('ColumnMenu_ClearColumn_Description', [rsColumn.DisplayName]).toString();\r\n// evtArgs.cancelButtonText = this.$i18n.t(\"ColumnMenu_ClearColumn_CancelButton\").toString();\r\n// evtArgs.actionButtonText = this.$i18n.t(\"ColumnMenu_ClearColumn_ConfirmButton\").toString();\r\n\r\n// evtArgs.onConfirmation = () => {\r\n// if(!rsColumn){\r\n// return;\r\n// }\r\n// API.Column.clear(rsColumn.Id)\r\n// .then(result => {\r\n// if(result) {\r\n// this.gridViewVM.refreshRowsFromServer();\r\n// }\r\n// })\r\n// .catch((err: any) => {\r\n// EventBus.$emit(RowShare.Event.GRID_ERROR, { message: err._message });\r\n// });\r\n// }\r\n// EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n// }\r\n","import * as RowShare from '@/models/RowShare';\r\nimport BaseColumnProxy from '../../columnProxies/BaseColumnProxy';\r\nimport ColumnVM from './columnVM'\r\nimport GridViewVM from './gridViewVM'\r\nimport rowBaseVM from './rowBaseVM';\r\n\r\nexport default class RowTotalVM extends rowBaseVM {\r\n gridViewVM: GridViewVM;\r\n\r\n constructor(gridViewVM: GridViewVM){\r\n super();\r\n this.gridViewVM = gridViewVM;\r\n }\r\n\r\n public getValue(rsColumn: RowShare.Column, columnProxy: BaseColumnProxy) {\r\n if(!this.gridViewVM?.gridApi)\r\n return null;\r\n \r\n if(!columnProxy.canShowTotal(rsColumn))\r\n return null;\r\n\r\n let total = 0, rowCount = 0;\r\n this.gridViewVM.gridApi.forEachNodeAfterFilter(rowNode => {\r\n total = columnProxy.addToTotal(total, rowNode.data, rsColumn);\r\n rowCount++;\r\n });\r\n return columnProxy.formatTotal(total, rowCount, rsColumn);\r\n }\r\n\r\n\r\n public get isTotalRow() { return true; }\r\n\r\n /** Replicating some rowVM functions to let the renderer works with this custom row **/\r\n public getAssignation(){ return null; }\r\n public hasCellError(rsColumn: RowShare.Column) { return false; }\r\n public getCellError(rsColumn: RowShare.Column) : string | null { return null; }\r\n public isSavingCell(rsColumn: RowShare.Column) { return false; }\r\n}","import * as API from '@/api/Api';\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport * as agGrid from 'ag-grid-community';\r\nimport { ListConfiguration, ListSettings } from '@/models/RowShare';\r\nimport ColumnVM from './columnVM';\r\nimport i18n from '@/modules/Localization';\r\nimport ListDisplayModeVM from '../../viewModels/Table/listDisplayModeVM';\r\nimport ListVMListener from './listVMListener';\r\nimport ListVM from './listVM';\r\nimport RowVM from './rowVM';\r\n\r\nexport default class ViewManager implements ListVMListener {\r\n public isLoadingAllViews = false;\r\n public allViewsLoaded = false;\r\n\r\n displayModeVM: ListDisplayModeVM;\r\n currentView: RowShare.View | null = null;\r\n sharedViews = new Array()\r\n personalViews = new Array()\r\n\r\n constructor(displayModeVM: ListDisplayModeVM){\r\n this.displayModeVM = displayModeVM;\r\n \r\n this.displayModeVM.listVM.registerListener(this);\r\n }\r\n \r\n onListUpdated(listVM : ListVM) : void {\r\n if(listVM.list)\r\n this.loadAllView()\r\n }\r\n\r\n onColumnsUpdated(listVM : ListVM) : void {}\r\n onRowVMsUpdated(listVM : ListVM) : void {}\r\n onBeforeRowVMsUdated(listVM: ListVM): void {}\r\n onRowVMUpdated(rowVM : RowVM) : void {}\r\n refreshCell(rowVM : RowVM) : void {}\r\n\r\n public async loadAllView(forceReload: boolean = false, idToSelect: string | null = null) {\r\n if(this.isLoadingAllViews || (this.allViewsLoaded && !forceReload) || !this.displayModeVM.listVM.list)\r\n return;\r\n\r\n this.isLoadingAllViews = true;\r\n this.sharedViews = new Array()\r\n this.personalViews = new Array()\r\n\r\n let views = await API.View.loadForParent(this.displayModeVM.listVM.list.Id);\r\n if(!views)\r\n return;\r\n\r\n const lastUsedId = this.getLastUsedViewId();\r\n for (let i = 0; i < views.length; ++i) {\r\n const view = views[i];\r\n if (view.Shared)\r\n this.sharedViews.push(view);\r\n else\r\n this.personalViews.push(view);\r\n\r\n if((idToSelect && idToSelect == view.Id) || (!idToSelect && lastUsedId == view.Id))\r\n this.currentView = view;\r\n }\r\n\r\n this.allViewsLoaded = true;\r\n this.isLoadingAllViews = false;\r\n }\r\n\r\n public isNotDefault = false;\r\n\r\n public onViewDataChanged(){\r\n //this.displayModeVM.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n let newState = false;\r\n\r\n // is current grid filtered ?\r\n let filters = this.displayModeVM.getCurrentFilters();// gridApi.getFilterModel();\r\n if(Object.keys(filters).length > 0)\r\n newState = true;\r\n\r\n // is current grid sorted or does it have hidden columns ?\r\n var currentSort = this.displayModeVM.getCurrentSort();\r\n if(currentSort && currentSort.length > 0)\r\n newState = true;\r\n \r\n var hiddenCols = this.displayModeVM.getHiddenColumnsIds();\r\n if(hiddenCols && hiddenCols.length > 0)\r\n newState = true;\r\n \r\n // are rows grouped ?\r\n var rowGroupCols = this.displayModeVM.getRowGroupColumnsIds();\r\n if(rowGroupCols && rowGroupCols.length > 0) {\r\n newState = true;\r\n }\r\n\r\n var valueCols = this.displayModeVM.getValueColumns();\r\n if(valueCols && valueCols.length > 0) {\r\n newState = true;\r\n }\r\n\r\n var collapsedColumnGroups = this.displayModeVM.getCollapsedColumnGroups();\r\n if(collapsedColumnGroups && collapsedColumnGroups.length > 0) {\r\n newState = true;\r\n }\r\n \r\n this.isNotDefault = newState; \r\n //});\r\n }\r\n\r\n public onFilterChanged(event: agGrid.FilterChangedEvent){\r\n this.onViewDataChanged();\r\n }\r\n\r\n public onSortChange(event: agGrid.SortChangedEvent){\r\n this.onViewDataChanged();\r\n }\r\n\r\n public onColumnVisibleChanged(event: agGrid.ColumnVisibleEvent){\r\n this.onViewDataChanged();\r\n }\r\n\r\n public onColumnRowGroupChanged(event: agGrid.ColumnRowGroupChangedEvent) {\r\n this.onViewDataChanged();\r\n }\r\n\r\n public onColumnGroupOpenedChanged(event: agGrid.ColumnGroupOpenedEvent) {\r\n this.onViewDataChanged();\r\n }\r\n\r\n public applyDefaultView(){\r\n this.displayModeVM.clearFilters();\r\n this.displayModeVM.clearHiddenColumns();\r\n this.displayModeVM.clearSortOrder();\r\n this.displayModeVM.clearRowGroups();\r\n this.displayModeVM.clearValueColumns();\r\n this.displayModeVM.clearCollapsedColumnGroups();\r\n \r\n this.currentView = null;\r\n this.saveLastUsedViewToLocalStorage(null);\r\n }\r\n\r\n public applyView(view: RowShare.View){\r\n // parse view data\r\n const viewConfig = JSON.parse(view.Data);\r\n if(!viewConfig) {\r\n this.applyDefaultView();\r\n return;\r\n }\r\n\r\n this.displayModeVM.applyFilters(viewConfig);\r\n this.displayModeVM.applySort(viewConfig);\r\n this.displayModeVM.applyHiddenColumns(viewConfig);\r\n this.displayModeVM.applyValueColumns(viewConfig);\r\n this.displayModeVM.applyRowGroupColumns(viewConfig);\r\n this.displayModeVM.applyCollapsedColumnGroups(viewConfig);\r\n\r\n this.currentView = view;\r\n this.saveLastUsedViewToLocalStorage(view.Id);\r\n }\r\n\r\n public async saveView(view: RowShare.View) : Promise {\r\n try {\r\n const newView = await API.View.save(view);\r\n this.loadAllView(true, newView.Id);\r\n this.saveLastUsedViewToLocalStorage(newView.Id);\r\n return null;\r\n } catch(err: any) {\r\n return i18n.t(\"ExceptionCode_\" + err.code).toString();\r\n }\r\n }\r\n\r\n public getCurrentViewConfig() : RowShare.ListConfiguration | undefined {\r\n return this.displayModeVM.getCurrentViewConfig();\r\n }\r\n\r\n async deleteView(view: RowShare.View){\r\n if(this.currentView == view)\r\n this.currentView = null;\r\n\r\n await API.View.remove(view.Id);\r\n \r\n this.loadAllView(true);\r\n }\r\n\r\n getViewSummary(view: RowShare.View){\r\n const viewConfig = JSON.parse(view.Data);\r\n if(!viewConfig)\r\n return null;\r\n\r\n return this.getViewConfigSummary(viewConfig);\r\n }\r\n\r\n getViewConfigSummary(viewConfig: ListConfiguration) : string | null{\r\n let res = \"\";\r\n if(!viewConfig) {\r\n return null;\r\n }\r\n\r\n // sorts\r\n if(viewConfig.sortOrder) {\r\n const allSortStr = new Array();\r\n for(let i = 0; i < viewConfig.sortOrder.length; ++i){\r\n const sort = viewConfig.sortOrder[i];\r\n var sortedColName = '';\r\n if(sort.colId == ColumnVM.rowOwnerHeaderId) {\r\n sortedColName = i18n.t(\"ViewSummary_OwnerColumnDisplayName\").toString();\r\n } else {\r\n const rsCol = this.displayModeVM.listVM.columns?.find(c => c.Id == sort.colId);\r\n sortedColName = rsCol ? rsCol.DisplayName : '';\r\n }\r\n\r\n let sortPattern = \"ViewSummary_SortDesc\";\r\n if(sort.sort == \"asc\")\r\n sortPattern = \"ViewSummary_SortAsc\";\r\n \r\n if(sortedColName != '')\r\n allSortStr.push(\"
  • \" + i18n.t(sortPattern, [sortedColName]) + \"
  • \");\r\n }\r\n res += allSortStr.join(\"\\n\")\r\n }\r\n\r\n // hidden cols\r\n if(viewConfig.hiddenColumns) {\r\n const hiddenColumnsNames = viewConfig.hiddenColumns.map(hc => {\r\n if(hc == ColumnVM.rowOwnerHeaderId) {\r\n return i18n.t(\"ViewSummary_OwnerColumnDisplayName\").toString();\r\n } else {\r\n const rsCol = this.displayModeVM.listVM.columns?.find(c => c.Id == hc);\r\n return rsCol ? rsCol.DisplayName : null;\r\n }\r\n }).filter(hc => hc != null);\r\n\r\n const hiddenColCount = hiddenColumnsNames.length;\r\n\r\n const hiddenColPattern = hiddenColCount > 1 ? \"ViewSummary_HiddenColumns\" : \"ViewSummary_HiddenColumn\";\r\n if(hiddenColCount > 0)\r\n res += \"
  • \" + i18n.t(hiddenColPattern, [hiddenColCount, hiddenColumnsNames.join(\", \")]) + \"
  • \";\r\n }\r\n\r\n // filters\r\n\r\n if(viewConfig.filters) {\r\n for (let [key, value] of Object.entries(viewConfig.filters)) {\r\n \r\n var filteredColName = '';\r\n if(key == ColumnVM.rowOwnerHeaderId) {\r\n filteredColName = i18n.t(\"ViewSummary_OwnerColumnDisplayName\").toString();\r\n } else {\r\n const rsCol = this.displayModeVM.listVM.columns?.find(c => c.Id == key);\r\n filteredColName = rsCol ? rsCol.DisplayName : '';\r\n }\r\n\r\n if(filteredColName != '')\r\n res += \"
  • \" + i18n.t(\"ViewSummary_FilteredColumn\", [filteredColName]) + \"
  • \";\r\n }\r\n }\r\n\r\n // row group columns\r\n if(viewConfig?.sideBar?.rowGroupColumns) {\r\n const rowGroupColumnsNames = viewConfig.sideBar.rowGroupColumns.map(rgc => {\r\n const rsCol = this.displayModeVM.listVM.columns?.find(c => c.Id == rgc);\r\n return rsCol ? rsCol.DisplayName : null;\r\n }).filter(rgc => rgc != null);\r\n\r\n const rowGroupColCount = rowGroupColumnsNames.length;\r\n\r\n if(rowGroupColCount > 0)\r\n res += \"
  • \" + i18n.t(\"ViewSummary_RowGroupColumns\", [rowGroupColumnsNames.join(\", \")]) + \"
  • \";\r\n }\r\n\r\n // Collapsed groups\r\n if((viewConfig.collapsedColumnGroups?.length ?? 0) > 0) {\r\n const collapsedGroupsPattern = viewConfig.collapsedColumnGroups.length > 1 ? \"ViewSummary_CollapsedGroups\" : \"ViewSummary_CollapsedGroup\";\r\n res += \"
  • \" + i18n.t(collapsedGroupsPattern, [viewConfig.collapsedColumnGroups.length, viewConfig.collapsedColumnGroups.join(\", \")]) + \"
  • \";\r\n }\r\n \r\n return res;\r\n }\r\n\r\n public saveLastUsedViewToLocalStorage(viewId: string | null) {\r\n if(!this.displayModeVM || !this.displayModeVM.listVM.list)\r\n return;\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(this.displayModeVM.listVM.list.Id);\r\n if(!currentSettings.configuration)\r\n currentSettings.configuration = new ListConfiguration();\r\n \r\n currentSettings.configuration.viewId = viewId;\r\n\r\n ListSettings.saveListSettingsToLocalStorage(this.displayModeVM.listVM.list.Id, currentSettings);\r\n }\r\n\r\n public getLastUsedViewId() : string | null {\r\n if(!this.displayModeVM || !this.displayModeVM.listVM.list)\r\n return null;\r\n\r\n let currentSettings = ListSettings.loadListSettingsFromLocalStorage(this.displayModeVM.listVM.list.Id);\r\n if(!currentSettings.configuration)\r\n currentSettings.configuration = new ListConfiguration();\r\n \r\n return currentSettings.configuration.viewId;\r\n }\r\n}","import RowVM from '@/viewModels/Table/rowVM'\r\nimport ColumnVM from '@/viewModels/Table/columnVM'\r\nimport * as agGrid from 'ag-grid-community';\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport * as Api from '@/api/Api';\r\nimport RowTotalVM from './rowTotalVM';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport ViewManager from './viewManager';\r\nimport { i18n } from '@/modules/Localization';\r\nimport ListDisplayModeVM from '@/viewModels/Table/listDisplayModeVM';\r\nimport { BigramHelper } from '@/utils/BigramHelper';\r\nimport ListVM from './listVM';\r\nimport rowBaseVM from './rowBaseVM';\r\nimport { Settings } from '@/utils/Settings';\r\nimport {ListConfiguration, rowGroupStatus} from \"@/models/RowShare\";\r\nimport { ColumnTypes } from '@/utils/ColumnTypes';\r\nimport * as API from '@/api/Api'\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\nexport default class GridViewVM implements ListDisplayModeVM {\r\n listColumns: Array = [];\r\n pGridApi: agGrid.GridApi | null = null;\r\n pColumnApi: agGrid.ColumnApi | null = null;\r\n printMode: boolean = false;\r\n\r\n viewManager: ViewManager;\r\n\r\n rowAssignedToCurrentUserCount: number = -1;\r\n\r\n displayedRowIds: string[] | null = null;\r\n currentQuickFilter: string | null = null;\r\n preparingAdd: boolean = false;\r\n previousDisplayedRows: RowShare.DisplayedRows | null = null;\r\n previousRowNode: agGrid.IRowNode | null = null;\r\n\r\n public listVM: ListVM;\r\n\r\n constructor(listVM: ListVM) {\r\n this.listVM = listVM;\r\n this.listVM.registerListener(this);\r\n\r\n this.viewManager = new ViewManager(this);\r\n\r\n EventBus.$on(RowShare.Event.ROW_ADDED, (rowVM: RowVM) => listVM.refreshRowAssignedToCurrentUserCount());\r\n EventBus.$on(RowShare.Event.ROW_MODIFIED, (rowVM: RowVM) => listVM.refreshRowAssignedToCurrentUserCount());\r\n EventBus.$on(RowShare.Event.ROW_DELETE, (rowVMs: RowVM[]) => this.removeRowsFromGrid(rowVMs));\r\n EventBus.$on(RowShare.Event.ROW_RESTORE, (rowVMs: RowVM[]) => this.removeRowsFromGrid(rowVMs));\r\n EventBus.$on(RowShare.Event.ROW_ARCHIVE, (rowVMs: RowVM[]) => this.removeRowsFromGrid(rowVMs));\r\n EventBus.$on(RowShare.Event.ROW_UNARCHIVE, (rowVms: RowVM[]) => this.removeRowsFromGrid(rowVms));\r\n EventBus.$on(RowShare.Event.GRID_CLEAR_HIDDENCOLUMNS, () => this.clearHiddenColumns());\r\n EventBus.$on(RowShare.Event.GRID_CLEAR_FILTERS, () => this.clearFilters());\r\n EventBus.$on(RowShare.Event.RESTORE_FILTERS, () => this.restoreFilters());\r\n EventBus.$on(RowShare.Event.GRID_CLEAR_ROWGROUPS, () => this.onRowGroupsCleared());\r\n EventBus.$on(RowShare.Event.ROW_SAVED, () => this.tryRefreshTotalRow());\r\n EventBus.$on(RowShare.Event.GRID_CHOOSE_CELL_COLOR, (color: string) => this.onCellColorSelected(color));\r\n EventBus.$on(RowShare.Event.GRID_ADD_ROWGROUP, (colId: string) => this.onRowGroupColumnAdded(colId));\r\n EventBus.$on(RowShare.Event.GRID_REMOVE_ROWGROUP, (colId: string) => this.onRowGroupColumnRemoved(colId));\r\n EventBus.$on(RowShare.Event.ROW_LOCKED, (updatedRows: RowShare.Row[]) => this.updateRowsInUI(updatedRows));\r\n EventBus.$on(RowShare.Event.ROW_UNLOCKED, (updatedRows: RowShare.Row[]) => this.updateRowsInUI(updatedRows));\r\n EventBus.$on(RowShare.Event.GRID_SHOW_ROWS, (rowIds: string[]) => this.flashRows(rowIds, false));\r\n EventBus.$on(RowShare.Event.COLUMN_PERMISSIONS_CHANGED, (columnId: string) => this.onColumnPermissionsChanged(columnId));\r\n\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowCellUpdate, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowCellUpdateEvent(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowCreate, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowCreateEvent(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowDelete, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowDeleteEvent(entity));\r\n\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.ColumnDelete, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processColumnDeleteEvent(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.ColumnCreate, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processColumnCreateEvent(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.ColumnSave, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processColumnSaveEvent(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.ColumnClone, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processColumnCloneEvent(entity));\r\n\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowSaveComment, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowSaveComment(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowDeleteComment, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowDeleteComment(entity));\r\n\r\n // EventBus.$on(RowShare.RealTimeCollaborationEventType.RowSave, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowSave(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowSaveBlob, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowSaveBlob(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowDeleteBlob, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowDeleteBlob(entity));\r\n\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowLock, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowLockEvent(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowUnlock, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowUnLockEvent(entity));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowArchive, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processRowArchiveEvent(entity));\r\n\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowCellLock, async(rowId: string, columnId: string) => await this.processRowCellLockEvent(rowId, columnId));\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.RowCellUnlock, async(rowId: string, columnId: string) => await this.processRowCellUnLockEvent(rowId, columnId));\r\n\r\n EventBus.$on(RowShare.RealTimeCollaborationEventType.ListDelete, async(entity: RowShare.RealTimeCollaborationEntity) => await this.processListDeleteEvent(entity));\r\n }\r\n\r\n async processRowSaveComment(entity: RowShare.RealTimeCollaborationEntity) {\r\n await this.processRowCellUpdateEvent(entity);\r\n }\r\n\r\n async processRowDeleteComment(entity: RowShare.RealTimeCollaborationEntity) {\r\n await this.processRowCellUpdateEvent(entity);\r\n }\r\n\r\n async processRowSave(entity: RowShare.RealTimeCollaborationEntity) {\r\n await this.processRowCellUpdateEvent(entity);\r\n }\r\n\r\n async processRowSaveBlob(entity: RowShare.RealTimeCollaborationEntity) {\r\n await this.processRowCellUpdateEvent(entity);\r\n }\r\n\r\n async processRowDeleteBlob(entity: RowShare.RealTimeCollaborationEntity) {\r\n await this.processRowCellUpdateEvent(entity);\r\n }\r\n\r\n async processRowCellUpdateEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const rowId: string = entity.data[\"rowId\"];\r\n const columnId: string = entity.data[\"columnId\"];\r\n const row = await API.Row.load(rowId);\r\n if (!row) return;\r\n const rowVM = new RowVM(this.listVM, row);\r\n this.listVM.notifyRowVMUpdated(rowVM);\r\n this.flashRow(rowId, columnId);\r\n }\r\n\r\n async processRowCreateEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const rowId: string = entity.data[\"rowId\"];\r\n const insertBeforeRowId: string = entity.data[\"insertBeforeRowId\"];\r\n\r\n const row = await API.Row.load(rowId);\r\n if (!row) return;\r\n\r\n row.InsertBeforeRowId = insertBeforeRowId;\r\n let idx = this.getRowNodeIndex(insertBeforeRowId) + 1;\r\n\r\n await this.insertClonedRowInUI(row, idx, true);\r\n }\r\n\r\n async processRowDeleteEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n if (!entity || !entity.data) return\r\n const rowId: string = entity.data[\"rowId\"];\r\n if (!rowId) return;\r\n\r\n const rowNode = this.gridApi?.getRowNode(rowId);\r\n if (!rowNode) return;\r\n\r\n rowNode.data.removed = true;\r\n rowNode.data.Status = RowShare.DataStatus.DeletionInProgress;\r\n this.listVM.notifyRowVMUpdated(rowNode.data as RowVM);\r\n\r\n setTimeout(() => {\r\n if (!rowNode) return;\r\n this.removeRowsFromGrid([rowNode.data])\r\n }, 3000)\r\n }\r\n\r\n flashRow(rowId: string, colId: string | null = null) {\r\n const rowNode = this.gridApi?.getRowNode(rowId);\r\n if(!rowNode) return;\r\n this.gridApi?.flashCells({\r\n rowNodes: [rowNode],\r\n columns: colId ? [colId] : [],\r\n flashDelay: 1000,\r\n fadeDelay: 100,\r\n });\r\n }\r\n\r\n async processRowLockEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const rowId: string = entity.data[\"rowId\"];\r\n const rowNode = this.gridApi?.getRowNode(rowId);\r\n if (!rowNode) return;\r\n const rowVM = rowNode.data as RowVM;\r\n rowVM.rsRow.Status = RowShare.DataStatus.Locked;\r\n this.listVM.notifyRowVMUpdated(rowVM);\r\n this.flashRow(rowId);\r\n }\r\n\r\n async processRowUnLockEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const rowId: string = entity.data[\"rowId\"];\r\n const rowNode = this.gridApi?.getRowNode(rowId);\r\n if (!rowNode) return;\r\n const rowVM = rowNode.data as RowVM;\r\n rowVM.rsRow.Status = RowShare.DataStatus.Normal;\r\n this.listVM.notifyRowVMUpdated(rowVM);\r\n this.flashRow(rowId);\r\n }\r\n\r\n async processRowArchiveEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const rowId: string = entity.data[\"rowId\"];\r\n const row = await API.Row.load(rowId);\r\n if (!row) return;\r\n const rowVM = new RowVM(this.listVM, row);\r\n this.flashRow(rowId);\r\n setTimeout(() =>\r\n this.removeRowsFromGrid([rowVM])\r\n ,1500\r\n )\r\n }\r\n\r\n async processRowCellLockEvent(rowId: string, columnId: string) {\r\n\r\n const rowNode = this.gridApi?.getRowNode(rowId);\r\n if (!rowNode) return;\r\n\r\n const rowVM = rowNode.data as RowVM;\r\n rowVM.rsRow.Status = RowShare.DataStatus.EditionInProgress;\r\n this.listVM.notifyRowVMUpdated(rowVM);\r\n\r\n const col = this.columnApi?.getColumn(columnId)\r\n if(!col) return;\r\n\r\n const colDef = col?.getColDef()\r\n if (!colDef) return;\r\n\r\n // colDef.cellLocked = true;\r\n\r\n this.gridApi?.refreshCells({\r\n rowNodes: [rowNode],\r\n columns: [col]\r\n });\r\n }\r\n\r\n async processRowCellUnLockEvent(rowId: string, columnId: string) {\r\n if (rowId === \"\" && columnId === \"\") {\r\n this.gridApi?.refreshCells({force: true});\r\n return;\r\n }\r\n\r\n const rowNode = this.gridApi?.getRowNode(rowId);\r\n if (!rowNode) return;\r\n\r\n const rowVM = rowNode.data as RowVM;\r\n rowVM.rsRow.Status = RowShare.DataStatus.Normal;\r\n this.listVM.notifyRowVMUpdated(rowVM);\r\n\r\n const col = this.columnApi?.getColumn(columnId)\r\n if(!col) return;\r\n\r\n this.gridApi?.refreshCells({\r\n rowNodes: [rowNode],\r\n columns: [col],\r\n force: true\r\n });\r\n }\r\n\r\n async processListDeleteEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n let event = new RowShare.ConfirmationRequiredEventParams();\r\n event.title = i18n.t('Rtc_List_Title_Delete').toString();\r\n event.description1 = i18n.t('Rtc_List_Description_Delete', [entity.authorName]).toString();\r\n event.actionButtonText = i18n.t('Rtc_List_ActionButton_Delete').toString();\r\n event.actionButtonColor = \"primary\";\r\n event.persistent = true;\r\n event.onConfirmation = async () => {\r\n window.location.href = \"/\";\r\n };\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, event);\r\n }\r\n\r\n async processColumnDeleteEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const colName: string = entity.data[\"displayName\"];\r\n const msg = i18n.t('Rtc_Column_Delete', [colName, entity.authorName, entity.authorEmail]).toString();\r\n this.showStructuralChangePopupMessage(msg);\r\n }\r\n\r\n async processColumnCreateEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const colName: string = entity.data[\"displayName\"];\r\n const msg = i18n.t('Rtc_Column_Create', [colName, entity.authorName, entity.authorEmail]).toString();\r\n this.showStructuralChangePopupMessage(msg);\r\n }\r\n\r\n async processColumnSaveEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const displayName: string = entity.data[\"displayName\"];\r\n const oldName: string = entity.data[\"oldName\"];\r\n const newName: string = entity.data[\"newName\"];\r\n let msg = \"\";\r\n if (oldName && newName){\r\n msg = i18n.t('Rtc_Column_Name_Change', [oldName, newName, entity.authorName, entity.authorEmail]).toString();\r\n } else {\r\n msg = i18n.t('Rtc_Column_Save', [displayName, entity.authorName, entity.authorEmail]).toString();\r\n }\r\n this.showStructuralChangePopupMessage(msg);\r\n }\r\n\r\n async processColumnCloneEvent(entity: RowShare.RealTimeCollaborationEntity) {\r\n const colName: string = entity.data[\"displayName\"];\r\n const msg = i18n.t('Rtc_Column_Clone', [colName, entity.authorName, entity.authorEmail]).toString();\r\n this.showStructuralChangePopupMessage(msg);\r\n }\r\n\r\n showStructuralChangePopupMessage(message: string) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: false,\r\n type: RowShare.NotificationType.warning,\r\n message: message,\r\n showActionButton: true,\r\n actionButtonText: i18n.t('Rtc_Column_ActionButton').toString(),\r\n actionButtonClick: () => {\r\n window.location.reload()\r\n }\r\n });\r\n }\r\n\r\n dispose(): void {\r\n this.listVM.unregisterListener(this);\r\n\r\n EventBus.$off(\r\n [\r\n RowShare.Event.ROW_ADDED,\r\n RowShare.Event.ROW_MODIFIED,\r\n RowShare.Event.ROW_DELETE,\r\n RowShare.Event.ROW_RESTORE,\r\n RowShare.Event.ROW_ARCHIVE,\r\n RowShare.Event.ROW_UNARCHIVE,\r\n RowShare.Event.GRID_CLEAR_HIDDENCOLUMNS,\r\n RowShare.Event.GRID_CLEAR_FILTERS,\r\n RowShare.Event.RESTORE_FILTERS,\r\n RowShare.Event.GRID_CLEAR_ROWGROUPS,\r\n RowShare.Event.ROW_SAVED,\r\n RowShare.Event.GRID_CHOOSE_CELL_COLOR,\r\n RowShare.Event.GRID_ADD_ROWGROUP,\r\n RowShare.Event.GRID_REMOVE_ROWGROUP,\r\n RowShare.Event.ROW_LOCKED,\r\n RowShare.Event.ROW_UNLOCKED,\r\n RowShare.Event.GRID_SHOW_ROWS,\r\n RowShare.Event.COLUMN_PERMISSIONS_CHANGED,\r\n ]\r\n );\r\n }\r\n\r\n onListUpdated() { }\r\n\r\n onBeforeRowVMsUdated(listVM: ListVM): void {\r\n if (listVM.rowVMs == null) {\r\n return;\r\n }\r\n this.execOnceGridApiIsReady((gridApi) => {\r\n setTimeout(() => { gridApi?.showLoadingOverlay() }, 0);\r\n });\r\n }\r\n\r\n onRowVMsUpdated() {\r\n if (this.listVM.rowVMs == null)\r\n return;\r\n\r\n this.execOnceGridApiIsReady((gridApi) => {\r\n // do not user databinding for rowdata, it is only one way and pushing the new rows to VM.listRows\r\n // to keep it up to date will refresh the whole grid if using binding (and refreshing will close the active editor)\r\n if (this.listVM.rowVMs &&\r\n (gridApi.getDisplayedRowCount() != this.listVM.rowVMs.length || gridApi.getDisplayedRowCount() == 0 || this.previousDisplayedRows != this.listVM.displayedRows)) {\r\n gridApi.setRowData(this.listVM.rowVMs);\r\n this.listVM.refreshRowAssignedToCurrentUserCount();\r\n }\r\n });\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n if (this.listVM.specialRowsDisplayed) {\r\n this.addStatusColumns();\r\n }\r\n else {\r\n this.removeStatusColumns();\r\n }\r\n setTimeout(() => {\r\n if ((this.listVM.rowVMs?.length ?? 0) > 0) {\r\n this.gridApi?.hideOverlay();\r\n this.previousDisplayedRows = this.listVM.displayedRows;\r\n }\r\n }, 0);\r\n\r\n if (this.listVM.list?.ShowTotals) {\r\n this.rowTotalVM = new RowTotalVM(this);\r\n }\r\n }\r\n\r\n get statusChangeUserHeader(): string {\r\n switch (this.listVM?.displayedRows) {\r\n case RowShare.DisplayedRows.Deleted:\r\n return i18n.t('DeletedBy_HeaderName').toString();\r\n case RowShare.DisplayedRows.Archived:\r\n return i18n.t('ArchivedBy_HeaderName').toString();\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n get statusChangeDateHeader(): string {\r\n switch (this.listVM?.displayedRows) {\r\n case RowShare.DisplayedRows.Deleted:\r\n return i18n.t('DeletedDate_HeaderName').toString();\r\n case RowShare.DisplayedRows.Archived:\r\n return i18n.t('ArchivedDate_HeaderName').toString();\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n get cellSelected(): boolean {\r\n return (this.gridApi?.getCellRanges()?.length ?? 0) > 0;\r\n }\r\n\r\n onCellColorSelected(color: string) {\r\n this.gridApi?.showLoadingOverlay();\r\n setTimeout(() => this.setCellRangesColor(color), 0);\r\n }\r\n\r\n async setCellRangesColor(colorClass: string) {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n\r\n let cellRanges = this.gridApi.getCellRanges();\r\n let rowsSelected = this.gridApi.getSelectedNodes();\r\n if ((!cellRanges || cellRanges.length == 0) && (!rowsSelected || rowsSelected.length == 0)) {\r\n return;\r\n }\r\n const list = this.listVM.list;\r\n if (!list) {\r\n return;\r\n }\r\n let nodesToRefresh: agGrid.IRowNode[] = [];\r\n let columnsToRefresh: agGrid.Column[] = [];\r\n let cellsRangesColor: RowShare.CellColor[] = [];\r\n\r\n if (cellRanges) {\r\n // Getting cells to color from selected range(s)\r\n cellRanges.forEach((range) => {\r\n let firstRowIndex = Math.min(range.startRow?.rowIndex ?? 0, range.endRow?.rowIndex ?? 0);\r\n let lastRowIndex = Math.max(range.startRow?.rowIndex ?? 0, range.endRow?.rowIndex ?? 0);\r\n for (var rowIndex = firstRowIndex; rowIndex <= lastRowIndex; rowIndex++) {\r\n var rowModel = this.gridApi?.getModel();\r\n const rowNode = rowModel?.getRow(rowIndex);\r\n if (!rowNode) {\r\n return;\r\n }\r\n const rowId = rowNode.data?.rsRow.Id;\r\n\r\n range.columns.forEach((column) => {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n if (!rowNode.data?.rsRow.CanUpdate) {\r\n return;\r\n }\r\n const colDef = column.getColDef();\r\n const rsColumn = (colDef).rsColumn;\r\n if (!rsColumn) {\r\n return;\r\n }\r\n cellsRangesColor.push({\r\n RowId: rowId,\r\n ColumnId: rsColumn.Id,\r\n Color: colorClass\r\n });\r\n columnsToRefresh.push(column);\r\n });\r\n nodesToRefresh.push(rowNode);\r\n }\r\n });\r\n }\r\n\r\n if (rowsSelected) {\r\n rowsSelected.forEach((row) => {\r\n let rowId = row.data?.rsRow.Id;\r\n cellsRangesColor.push({\r\n RowId: rowId,\r\n ColumnId: '',\r\n Color: colorClass\r\n });\r\n });\r\n nodesToRefresh.push(...rowsSelected);\r\n }\r\n\r\n //save cells colors\r\n let colors = await Api.CellColor.saveColors(cellsRangesColor);\r\n\r\n // force refresh\r\n let colDefs = this.gridApi.getColumnDefs();\r\n if (colDefs) {\r\n colDefs.forEach((column) => {\r\n let colDef = column;\r\n if (colDef?.rsList) {\r\n colDef.rsList.CellsColors = colors ?? \"\";\r\n }\r\n });\r\n }\r\n this.gridApi.hideOverlay();\r\n this.gridApi.clearRangeSelection();\r\n this.gridApi.refreshCells({ rowNodes: nodesToRefresh, force: true });\r\n this.gridApi.redrawRows({ rowNodes: nodesToRefresh });\r\n this.deselectAllRows();\r\n }\r\n\r\n\r\n addStatusColumns() {\r\n if (!this.listColumns || !this.listVM?.list) {\r\n return;\r\n }\r\n let settings = RowShare.ListSettings.loadListSettingsFromLocalStorage(this.listVM.list.Id);\r\n\r\n let statusColumns: agGrid.ColDef[] = [];\r\n\r\n // Create fake RowShare columns to be able to use column proxies\r\n let fakeRsColumn = new RowShare.Column();\r\n fakeRsColumn.Id = ColumnVM.statusChangeByUserId;\r\n fakeRsColumn.DisplayName = this.statusChangeUserHeader;\r\n fakeRsColumn.Type = RowShare.ColumnStrongType.StatusChangeByUserName;\r\n fakeRsColumn.LeftPinned = true;\r\n var colVM = new ColumnVM(this.listVM.list, fakeRsColumn, settings, this.printMode);\r\n (colVM).lockPosition = true;\r\n (colVM).lockVisible = true;\r\n let headerClass = (this.listVM.displayedRows == RowShare.DisplayedRows.Deleted) ? 'status-col--deleted' : 'status-col--archived';\r\n colVM.headerClass = headerClass;\r\n statusColumns.push(colVM);\r\n fakeRsColumn = new RowShare.Column();\r\n fakeRsColumn.Id = ColumnVM.statusChangeDateTimeId;\r\n fakeRsColumn.DisplayName = this.statusChangeDateHeader;\r\n fakeRsColumn.Type = RowShare.ColumnStrongType.StatusChangeDateTime;\r\n fakeRsColumn.LeftPinned = true;\r\n fakeRsColumn.DefaultWidth = 175;\r\n var colVM = new ColumnVM(this.listVM.list, fakeRsColumn, settings, this.printMode);\r\n (colVM).lockPosition = true;\r\n (colVM).lockVisible = true;\r\n (colVM).sort = \"desc\";\r\n colVM.headerClass = headerClass;\r\n statusColumns.push(colVM);\r\n\r\n this.listColumns.splice(1, 0, ...statusColumns);\r\n setTimeout(() => {\r\n let col = this.columnApi?.getColumn((this.listColumns[3]).colId) // First column after columns added\r\n if (col) {\r\n this.gridApi?.refreshCells({ columns: [col], force: true });\r\n this.gridApi?.refreshHeader();\r\n }\r\n }, 0);\r\n this.clearFilters();\r\n this.clearSortOrder();\r\n this.clearAllSavedFilters();\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n\r\n removeStatusColumns() {\r\n if (!this.listColumns) {\r\n return;\r\n }\r\n if (!this.listColumns.find(lc => {\r\n let colId = (lc)?.colId;\r\n return colId == ColumnVM.statusChangeByUserId || colId == ColumnVM.statusChangeDateTimeId;\r\n })) {\r\n return;\r\n }\r\n this.clearFilters();\r\n this.clearSortOrder();\r\n this.clearAllSavedFilters();\r\n this.currentQuickFilter\r\n this.listColumns = this.listColumns.filter(lc => {\r\n let colId = (lc)?.colId;\r\n return colId != ColumnVM.statusChangeByUserId && colId != ColumnVM.statusChangeDateTimeId;\r\n });\r\n setTimeout(() => {\r\n this.gridApi?.refreshCells();\r\n this.gridApi?.refreshHeader();\r\n }, 0);\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n\r\n onColumnsUpdated() {\r\n if (!this.listVM.columns || !this.listVM.list)\r\n return;\r\n\r\n let settings = RowShare.ListSettings.loadListSettingsFromLocalStorage(this.listVM.list.Id);\r\n\r\n var allCols: Array = [];\r\n this.listVM.columns.forEach(c => {\r\n let colVM = new ColumnVM(this.listVM.list, c, settings, this.printMode);\r\n if (c.ColumnGroup && c.ColumnGroup !== '') {\r\n let group = allCols.find(ac => ac.headerName == c.ColumnGroup && (ac).children);\r\n if (group == null || group == undefined) {\r\n group = { headerName: c.ColumnGroup, headerClass: ['colGroupHeader'], children: [], marryChildren: true };\r\n (group).headerGroupComponent = 'columnGroupHeader';\r\n (group).openByDefault = true;\r\n if (c.HasParentColumn) {\r\n (>group.headerClass).push('group-relation');\r\n (group).headerGroupComponentParams = { relationColumnId: c.RelationColumnId };\r\n }\r\n (group).groupId = c.ColumnGroup;\r\n allCols.push(group);\r\n }\r\n else {\r\n colVM.columnGroupShow = 'open';\r\n }\r\n (group).children.push(colVM);\r\n }\r\n else {\r\n allCols.push(colVM);\r\n }\r\n });\r\n\r\n let firstCol = allCols[0];\r\n if (Object.keys(firstCol).find((key) => key === 'children') != undefined) {\r\n ((firstCol).children[0]).pinned = 'left';\r\n }\r\n else {\r\n (firstCol).pinned = 'left';\r\n }\r\n\r\n allCols.unshift({\r\n colId: ColumnVM.rowOwnerHeaderId,\r\n valueGetter: params => params.data?.getAssignation(),\r\n valueSetter: params => params.data?.setAssignation(params.newValue),\r\n cellClassRules: ColumnVM.getCellClassRules(),\r\n pinned: 'left',\r\n cellClass: 'technical-left-col',\r\n cellRendererSelector: (params) => {\r\n var row = params.data;\r\n if (!row) {\r\n return undefined;\r\n }\r\n if (row.isTotalRow) {\r\n return { component: \"TotalRowHeaderRenderer\" };\r\n }\r\n return { component: 'RowOwnerHeader' };\r\n },\r\n cellEditor: 'RowOwnerHeaderEditor',\r\n editable: (params) => {\r\n if (!params.data?.rsRow?.CanAssign) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Notif_CannotAssignRow\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n return false;\r\n }\r\n if (params.data?.isLocked) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Notif_LockedRow\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n return false;\r\n }\r\n return (this.listVM?.list?.ShowOwnerInformations ?? false) && !this.listVM.specialRowsDisplayed && !params.data?.isNew;\r\n },\r\n rowDrag: params => params.data?.rsRow.CanUpdate && !params.data?.isNew && !this.listVM.specialRowsDisplayed && !params.data?.isLocked,\r\n rowDragText: (params, dragItemCount) => {\r\n return params.rowNode?.data?.rsRow.DescriptorFormattedValue;\r\n },\r\n suppressKeyboardEvent: (params) => params?.editing,\r\n suppressSizeToFit: true,\r\n resizable: false,\r\n lockVisible: true,\r\n suppressColumnsToolPanel: true,\r\n suppressFiltersToolPanel: true,\r\n chartDataType: 'excluded',\r\n checkboxSelection: params => !params.data?.isNew && !params.node.group,\r\n headerCheckboxSelection: true,\r\n headerCheckboxSelectionFilteredOnly: true,\r\n minWidth: this.listVM.list.ShowOwnerInformations ? 95 : 60,\r\n maxWidth: this.listVM.list.ShowOwnerInformations ? 95 : 60,\r\n suppressMovable: true,\r\n lockPosition: true,\r\n lockPinned: true,\r\n sortable: true,\r\n comparator: (valueA, valueB, nodeA, nodeB, isInverted) => {\r\n const a = nodeA.data?.getOwnerSortValue().toLowerCase();\r\n const b = nodeB.data?.getOwnerSortValue().toLowerCase();\r\n\r\n if (a == b) {\r\n return 0;\r\n }\r\n if (a == \"\") {\r\n return 1;\r\n }\r\n if (b == \"\") {\r\n return -1;\r\n }\r\n return (a > b) ? 1 : -1;\r\n },\r\n suppressMenu: true,\r\n filter: true,\r\n keyCreator: (params: any) => {\r\n if (params.value?.rowOwner)\r\n return BigramHelper.getBigramTooltipForRowOwner(params.value?.rowOwner);\r\n else\r\n return BigramHelper.getBigramTooltipForSecurityPrincipal(params.value?.securityPrincipal);\r\n },\r\n filterParams: {\r\n excelMode: 'windows',\r\n comparator: (valueA: any, valueB: any) => {\r\n const a = valueA.toLowerCase();\r\n const b = valueB.toLowerCase();\r\n\r\n if (a == b)\r\n return 0;\r\n return (a > b) ? 1 : -1;\r\n },\r\n convertValuesToStrings: true,\r\n },\r\n\r\n });\r\n this.listColumns = allCols;\r\n setTimeout(() => {\r\n this.execOnceColAndGridApiAreReady(gridApi => {\r\n if (settings.configuration?.filters) {\r\n const filters = settings.configuration.filters;\r\n gridApi.setFilterModel(filters);\r\n if (Object.keys(filters).length !== 0) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Notif_FilterRestored\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 10000\r\n });\r\n }\r\n }\r\n });\r\n }, 0);\r\n\r\n this.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n if (settings.configuration) {\r\n if (settings.configuration.sortOrder) {\r\n columnApi.applyColumnState({\r\n state: settings.configuration.sortOrder,\r\n defaultState: { sort: null },\r\n });\r\n }\r\n if (settings.configuration.sideBar?.valueColumns) {\r\n this.applyValueColumns(settings.configuration);\r\n }\r\n if (settings.configuration.sideBar?.rowGroupColumns) {\r\n this.setRowGroupColumns(settings.configuration.sideBar.rowGroupColumns);\r\n }\r\n if ((settings.configuration.collapsedColumnGroups?.length ?? 0) > 0) {\r\n this.applyCollapsedColumnGroups(settings.configuration);\r\n }\r\n }\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n });\r\n }\r\n\r\n public get gridApi(): agGrid.GridApi | null {\r\n return this.pGridApi;\r\n }\r\n public set gridApi(val: agGrid.GridApi | null) {\r\n this.pGridApi = val;\r\n if (this.pGridApi) {\r\n for (let i = 0; i < this.funcToExecOnceGridApiIsReady.length; ++i) {\r\n this.funcToExecOnceGridApiIsReady[i](this.pGridApi);\r\n }\r\n this.funcToExecOnceGridApiIsReady = [];\r\n\r\n this.tryRunFuncWaitingForColAndGridApi();\r\n }\r\n }\r\n\r\n public get columnApi(): agGrid.ColumnApi | null {\r\n return this.pColumnApi;\r\n }\r\n public set columnApi(val: agGrid.ColumnApi | null) {\r\n this.pColumnApi = val;\r\n if (this.pColumnApi) {\r\n for (let i = 0; i < this.funcToExecOnceColumnApiIsReady.length; ++i) {\r\n this.funcToExecOnceColumnApiIsReady[i](this.pColumnApi);\r\n }\r\n this.funcToExecOnceColumnApiIsReady = [];\r\n\r\n this.tryRunFuncWaitingForColAndGridApi();\r\n }\r\n }\r\n\r\n removeRowsFromGrid(rowVMs: RowVM[]) {\r\n this.listVM.refreshRowAssignedToCurrentUserCount();\r\n this.removeRowsInUI(rowVMs);\r\n this.tryRefreshTotalRow();\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n\r\n private tryRunFuncWaitingForColAndGridApi() {\r\n if (this.columnApi && this.gridApi) {\r\n for (let i = 0; i < this.funcToExecOnceColAndGridApiAreReady.length; ++i) {\r\n this.funcToExecOnceColAndGridApiAreReady[i](this.gridApi, this.columnApi);\r\n }\r\n this.funcToExecOnceColAndGridApiAreReady = [];\r\n }\r\n }\r\n\r\n bottomPinnedRows: RowTotalVM[] = [];\r\n set rowTotalVM(val: RowTotalVM | null) {\r\n if (val)\r\n this.bottomPinnedRows = [val];\r\n else\r\n this.bottomPinnedRows = [];\r\n }\r\n get rowTotalVM(): RowTotalVM | null {\r\n if (this.bottomPinnedRows.length == 1)\r\n return this.bottomPinnedRows[0];\r\n else\r\n return null;\r\n }\r\n\r\n tryRefreshTotalRow() {\r\n if (this.listVM.list?.ShowTotals && this.gridApi) {\r\n const totalRow = this.gridApi.getPinnedBottomRow(0);\r\n if (totalRow)\r\n this.gridApi.refreshCells({ rowNodes: [totalRow] });\r\n }\r\n }\r\n\r\n\r\n public get readyToShowTheGrid(): boolean {\r\n return this.listColumns.length > 0 && this.listVM.rowVMs != null;\r\n }\r\n\r\n private funcToExecOnceGridApiIsReady: Array<(gridApi: agGrid.GridApi) => void> = [];\r\n\r\n public execOnceGridApiIsReady(func: (gridApi: agGrid.GridApi) => void) {\r\n if (this.gridApi) {\r\n func(this.gridApi);\r\n } else {\r\n this.funcToExecOnceGridApiIsReady.push(func);\r\n }\r\n }\r\n\r\n private funcToExecOnceColumnApiIsReady: Array<(columnApi: agGrid.ColumnApi) => void> = [];\r\n\r\n public execOnceColumnApiIsReady(func: (columnApi: agGrid.ColumnApi) => void) {\r\n if (this.columnApi) {\r\n func(this.columnApi);\r\n } else {\r\n this.funcToExecOnceColumnApiIsReady.push(func);\r\n }\r\n }\r\n\r\n private funcToExecOnceColAndGridApiAreReady: Array<(gridApi: agGrid.GridApi, columnApi: agGrid.ColumnApi) => void> = [];\r\n\r\n public execOnceColAndGridApiAreReady(func: (gridApi: agGrid.GridApi, columnApi: agGrid.ColumnApi) => void) {\r\n if (this.gridApi && this.columnApi) {\r\n func(this.gridApi, this.columnApi);\r\n } else {\r\n this.funcToExecOnceColAndGridApiAreReady.push(func);\r\n }\r\n }\r\n\r\n deselectAllRows() {\r\n if (this.gridApi) {\r\n this.gridApi.deselectAll();\r\n }\r\n }\r\n\r\n public addRow(beforeRowNode: agGrid.IRowNode | undefined = undefined) {\r\n if (!this.gridApi)\r\n return;\r\n this.preparingAdd = true;\r\n setTimeout(() => {\r\n if (!this.listVM.list)\r\n return;\r\n\r\n if (this.gridApi?.isColumnFilterPresent() || this.gridApi?.isQuickFilterPresent() || (this.displayedRowIds?.length ?? 0) > 0) {\r\n if (this.displayedRowIds) {\r\n this.displayedRowIds = [];\r\n }\r\n this.gridApi?.forEachNodeAfterFilter((node) => {\r\n if (node.id) {\r\n if (!this.displayedRowIds) {\r\n this.displayedRowIds = [];\r\n }\r\n this.displayedRowIds.push(node.id);\r\n }\r\n });\r\n this.gridApi?.setFilterModel(null);\r\n EventBus.$emit(RowShare.Event.GRID_SEARCH_CHANGED, { searchText: null, saveValue: false, source: \"external\" });\r\n this.gridApi?.onFilterChanged();\r\n }\r\n var newRowVM = RowVM.createNewRow(this.listVM, this.listVM.list.Id);\r\n var agIdx: number | undefined = undefined;\r\n\r\n if (beforeRowNode) {\r\n let beforeRow = beforeRowNode.data\r\n agIdx = beforeRowNode.rowIndex ?? undefined;\r\n newRowVM.rsRow.Index = beforeRow.rsRow.Index;\r\n newRowVM.setInsertBeforeRowId(beforeRow.rsRow.Id);\r\n this.gridApi?.forEachNode(n => {\r\n let nVM = n.data;\r\n if (nVM.rsRow.Index >= beforeRow?.rsRow?.Index)\r\n nVM.rsRow.Index++;\r\n });\r\n }\r\n\r\n try {\r\n var rowNodeTransactions = this.gridApi?.applyTransaction({ add: [newRowVM], addIndex: agIdx });\r\n if (rowNodeTransactions && rowNodeTransactions.add && rowNodeTransactions.add.length > 0) {\r\n this.listVM.rowVMs?.push(newRowVM);\r\n EventBus.$emit(RowShare.Event.ROW_ADDED, [newRowVM]);\r\n var rowIndex = rowNodeTransactions.add[0].rowIndex\r\n this.gridApi?.refreshClientSideRowModel();\r\n if (rowIndex != undefined) {\r\n let flatColumns: agGrid.ColDef[] = [];\r\n\r\n this.listColumns.forEach(c => {\r\n var children = (c).children;\r\n if (children) {\r\n children.forEach(child => {\r\n flatColumns.push(child);\r\n });\r\n }\r\n else {\r\n flatColumns.push(c);\r\n }\r\n })\r\n\r\n var colToEdit = /*this.listColumns*/flatColumns.find(c => {\r\n let rsCol = (c).rsColumn;\r\n if (!rsCol)\r\n return false;\r\n\r\n return !rsCol.IsReadOnly && !rsCol.isOwnerInfo;\r\n }) as agGrid.ColDef;\r\n\r\n if (!colToEdit) {\r\n return;\r\n }\r\n\r\n let editCell: agGrid.StartEditingCellParams = {\r\n rowIndex: rowIndex,\r\n colKey: colToEdit?.colId ?? \"\"\r\n };\r\n this.gridApi?.ensureColumnVisible(colToEdit?.colId ?? \"\");\r\n this.gridApi?.startEditingCell(editCell);\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n }\r\n }\r\n finally {\r\n this.preparingAdd = false;\r\n }\r\n }, 0);\r\n }\r\n\r\n public onRowVMUpdated(rowVM: RowVM): void {\r\n if (!this.gridApi)\r\n return;\r\n\r\n const rowNode = this.gridApi.getRowNode(rowVM.rowVMId);\r\n if (rowNode) {\r\n rowNode.setData(rowVM);\r\n this.gridApi.applyTransaction({ update: [rowVM] });\r\n this.columnApi?.getAllDisplayedColumns()?.forEach((column) => {\r\n var colVM = column.getColDef();\r\n if(colVM?.rsColumn && (colVM.rsColumn.isFormula)) {\r\n rowNode.setDataValue(column, rowVM.getValue(colVM.rsColumn, colVM.columnProxy));\r\n }\r\n });\r\n }\r\n }\r\n\r\n public refreshCell(rowVM: RowVM): void {\r\n if (!this.gridApi)\r\n return;\r\n\r\n const rowNode = this.gridApi.getRowNode(rowVM.rowVMId);\r\n if (rowNode) {\r\n this.gridApi.refreshCells({ rowNodes: [rowNode], force: true });\r\n }\r\n }\r\n\r\n public async insertClonedRowInUI(clonedRow: RowShare.Row, insertAtIdx: number | undefined, refresh: boolean | undefined): Promise {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n var newRowVM = new RowVM(this.listVM, clonedRow);\r\n if (insertAtIdx) {\r\n var rowNode = this.gridApi.getDisplayedRowAtIndex(insertAtIdx);\r\n var parentNode = rowNode?.parent;\r\n while (parentNode?.parent) {\r\n parentNode = parentNode.parent;\r\n }\r\n if (parentNode) {\r\n insertAtIdx = parentNode.allLeafChildren.findIndex(node => node.id == rowNode?.id);\r\n }\r\n }\r\n var rowNodeTransaction = this.gridApi.applyTransaction({ add: [newRowVM], addIndex: insertAtIdx });\r\n if (rowNodeTransaction && ((this.displayedRowIds?.length) ?? 0 > 0)) {\r\n rowNodeTransaction.add.forEach(rn => {\r\n if (rn?.id) {\r\n this.displayedRowIds?.push(rn.id);\r\n }\r\n });\r\n }\r\n this.listVM.rowVMs?.push(newRowVM);\r\n if (refresh) {\r\n await this.listVM.refreshRowsFromServer(true);\r\n this.gridApi.onFilterChanged();\r\n }\r\n }\r\n\r\n getRowNodeIndex(id: string): number {\r\n return this.gridApi?.getRowNode(id)?.rowIndex ?? -1;\r\n }\r\n\r\n public scrollToIndex(index: number): void {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n let rowCount = this.gridApi.getDisplayedRowCount();\r\n this.gridApi.ensureIndexVisible(index > rowCount ? rowCount : index);\r\n }\r\n\r\n public insertColumnInUI(newColumn: RowShare.Column, insertColumnId: string, insertPosition: \"after\"|\"before\"): void {\r\n if(newColumn && this.listVM.list && this.gridApi && this.columnApi) {\r\n let addColVM = new ColumnVM(this.listVM.list, newColumn);\r\n let colDefs = this.gridApi.getColumnDefs();\r\n if(!colDefs)\r\n return;\r\n\r\n if(addColVM.rsColumn.ColumnGroup) {\r\n var group = colDefs.find(cd => (cd)?.groupId === addColVM.rsColumn.ColumnGroup);\r\n if(group) {\r\n group.children.push(addColVM);\r\n }\r\n }\r\n else {\r\n colDefs.push(addColVM);\r\n }\r\n this.listVM.columns?.push(newColumn);\r\n this.gridApi.setColumnDefs(colDefs);\r\n var newAgCol = this.columnApi.getColumn(addColVM.colId);\r\n if(insertColumnId) {\r\n var agColInsert = this.columnApi.getColumn(insertColumnId);\r\n var agColInsertIndex = this.columnApi.getAllGridColumns().findIndex(c => c.getColId() == insertColumnId);\r\n if(newAgCol && agColInsertIndex > -1) {\r\n if(insertPosition == \"after\") {\r\n agColInsertIndex++;\r\n }\r\n this.columnApi.moveColumn(newAgCol, agColInsertIndex);\r\n }\r\n if(newAgCol && agColInsert && agColInsert.isPinned()) {\r\n this.columnApi.setColumnPinned(newAgCol, 'left');\r\n }\r\n }\r\n\r\n var columnTypes = ColumnTypes.getColumnTypes(true, true);\r\n var columnTypeIndex = columnTypes.findIndex((ct) => ct.StrongType == addColVM.rsColumn.Type);\r\n if(columnTypeIndex >= 0) {\r\n if(columnTypes[columnTypeIndex].mustRefreshValuesFromServer || addColVM.rsColumn.isFormula ) {\r\n this.listVM.refreshRowsFromServer();\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n if(newAgCol) {\r\n this.gridApi?.ensureColumnVisible(addColVM.colId ?? \"\");\r\n this.gridApi?.refreshCells();\r\n this.gridApi?.redrawRows();\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n }, 0);\r\n }\r\n }\r\n\r\n public addRowsInUI(newRows: RowShare.Row[]): void {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n let rowVMs = newRows.map(nr => new RowVM(this.listVM, nr));\r\n this.gridApi.applyTransaction({ add: rowVMs });\r\n this.listVM.rowVMs?.push(...rowVMs);\r\n };\r\n\r\n public updateRowsInUI(updatedRows: RowShare.Row[]): void {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n let rowVMs = updatedRows.map(ur => new RowVM(this.listVM, ur));\r\n rowVMs.forEach(rowvm => {\r\n var index = this.listVM.rowVMs?.findIndex(rvm => rvm.rsRow?.Id === rowvm.rsRow?.Id) ?? -1;\r\n if (index > -1 && this.listVM?.rowVMs) {\r\n this.listVM.rowVMs[index] = rowvm;\r\n }\r\n });\r\n this.gridApi.applyTransaction({ update: rowVMs });\r\n };\r\n\r\n public removeRowsInUI(rowVMs: RowVM[]): void {\r\n if (!this.gridApi)\r\n return;\r\n\r\n this.gridApi.applyTransaction({ remove: rowVMs });\r\n }\r\n\r\n public get canAddColumn() {\r\n return this.gridApi\r\n && this.columnApi\r\n && this.listVM.rowVMs\r\n && this.listColumns\r\n && this.listVM.list\r\n && this.listVM.list.Owned\r\n && !this.listVM.list.LoadedByReadOnlyMember\r\n && !this.listVM.specialRowsDisplayed;\r\n }\r\n\r\n public hideColumn(column: agGrid.Column) {\r\n if (this.listVM.list?.Id && this.columnApi) {\r\n this.columnApi.setColumnVisible(column, false);\r\n }\r\n }\r\n\r\n public onColumnVisibleChanged(event: agGrid.ColumnVisibleEvent) {\r\n if (!this.printMode && !this.listVM.specialRowsDisplayed) {\r\n RowShare.ListSettings.saveHiddenColumns(this);\r\n }\r\n this.gridApi?.refreshHeader();\r\n this.viewManager.onColumnVisibleChanged(event);\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n\r\n public onColumnGroupOpenedChanged(event: agGrid.ColumnGroupOpenedEvent) {\r\n if (!this.printMode && !this.listVM.specialRowsDisplayed) {\r\n RowShare.ListSettings.saveCollapsedColumnGroups(this);\r\n }\r\n this.viewManager.onColumnGroupOpenedChanged(event);\r\n }\r\n\r\n public onRowGroupOpenedChanged(event: agGrid.RowGroupOpenedEvent){\r\n let groupStatus = new rowGroupStatus();\r\n groupStatus.expanded = event.node.expanded;\r\n groupStatus.rowGroupColumnId = event.node.rowGroupColumn?.getColId()!;\r\n groupStatus.key = event.node.key!;\r\n RowShare.ListSettings.saveGroups(this.listVM.list!.Id!, groupStatus);\r\n }\r\n\r\n public isGroupOpenByDefault(params: agGrid.IsGroupOpenByDefaultParams): boolean {\r\n let currentSettings = RowShare.ListSettings.loadListSettingsFromLocalStorage(this.listVM.list!.Id!) ?? new RowShare.ListSettings();\r\n if (!currentSettings.configuration) {\r\n currentSettings.configuration = new ListConfiguration();\r\n }\r\n currentSettings.configuration.groups = currentSettings.configuration.groups ?? [];\r\n let key = params.rowNode.key;\r\n let existingGroup = currentSettings.configuration.groups.find(status => status.key === key && status.rowGroupColumnId === params.rowGroupColumn.getId());\r\n if (existingGroup) { //at this point, we process an existing group\r\n return existingGroup.expanded;\r\n }\r\n else {\r\n if (params.rowNode.leafGroup) {\r\n return false; // return false implies this node will not expand\r\n }\r\n return true; //return true implies this node will expand\r\n }\r\n }\r\n\r\n public getHiddenColumnsIds(): string[] | undefined {\r\n if (!this.columnApi)\r\n return;\r\n\r\n let columnsState = this.columnApi.getColumnState();\r\n return columnsState.filter(cs => cs.hide && cs.colId).map(cs => cs.colId);\r\n }\r\n\r\n public getCollapsedColumnGroups(): string[] | undefined {\r\n if (!this.columnApi) {\r\n return;\r\n }\r\n let colGroups = this.columnApi.getAllDisplayedColumnGroups();\r\n if (colGroups) {\r\n let collapsedColumnGroups: string[] = [];\r\n colGroups.forEach(cg => {\r\n if (cg) {\r\n var colDef = cg.getDefinition();\r\n if (colDef) {\r\n let id = colDef.groupId;\r\n if (id) {\r\n let group = this.columnApi?.getColumnGroup(id);\r\n if (!(group?.isExpanded() ?? true)) {\r\n if (!collapsedColumnGroups.includes(id)) {\r\n collapsedColumnGroups.push(id);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return collapsedColumnGroups;\r\n }\r\n }\r\n\r\n public showHiddenColumnsBeside(column: agGrid.Column) {\r\n if (!column || !this.columnApi || !this.gridApi) {\r\n return;\r\n }\r\n\r\n let colState = this.columnApi.getColumnState();\r\n let index = colState.findIndex(c => c.colId == column.getColId()) + 1;\r\n let hiddenCol: boolean = true;\r\n let hiddenCols: agGrid.Column[] = [];\r\n\r\n do {\r\n hiddenCol = colState[index]?.hide ?? false;\r\n if (hiddenCol) {\r\n let col = this.columnApi.getColumn(colState[index].colId);\r\n if (col) {\r\n hiddenCols.push(col);\r\n }\r\n }\r\n index++;\r\n } while (index < colState.length && hiddenCol);\r\n\r\n this.columnApi.setColumnsVisible(hiddenCols, true);\r\n if (!this.printMode) {\r\n RowShare.ListSettings.saveHiddenColumns(this);\r\n }\r\n this.gridApi.refreshHeader();\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n\r\n public clearHiddenColumns(): void {\r\n this.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n let hiddenColumns = columnApi.getColumnState()\r\n .filter(cs => cs.colId && cs.colId != ColumnVM.rowOwnerHeaderId && cs.hide === true)\r\n .map(cs => cs.colId ?? \"\");\r\n\r\n if (hiddenColumns && hiddenColumns.length > 0) {\r\n columnApi.setColumnsVisible(hiddenColumns, true);\r\n if (!this.printMode) {\r\n RowShare.ListSettings.saveHiddenColumns(this);\r\n }\r\n gridApi.refreshHeader();\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n });\r\n }\r\n\r\n public clearCollapsedColumnGroups(): void {\r\n this.execOnceColumnApiIsReady((columnApi) => {\r\n let colGroups = columnApi.getAllDisplayedColumnGroups();\r\n if (colGroups) {\r\n colGroups.forEach(cg => {\r\n let groupId = (cg.getDefinition())?.groupId;\r\n if (groupId) {\r\n columnApi.setColumnGroupOpened(groupId, true);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public clearSortOrder(): void {\r\n this.execOnceColumnApiIsReady((columnApi) => {\r\n columnApi.applyColumnState({ defaultState: { sort: null } });\r\n });\r\n }\r\n\r\n public clearFilters(): void {\r\n this.displayedRowIds = null;\r\n this.execOnceGridApiIsReady((gridApi) => {\r\n gridApi.setFilterModel(null);\r\n gridApi.onFilterChanged();\r\n });\r\n }\r\n\r\n public clearRowGroups(): void {\r\n this.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n columnApi.setRowGroupColumns([]);\r\n gridApi.refreshHeader();\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n });\r\n }\r\n\r\n public onRowGroupsCleared(): void {\r\n this.clearGroupFromLocalStorage()\r\n this.clearRowGroups();\r\n this.clearValueColumns();\r\n }\r\n\r\n public clearGroupFromLocalStorage() {\r\n let currentSettings = RowShare.ListSettings.loadListSettingsFromLocalStorage(this.listVM.list!.Id!) ?? new RowShare.ListSettings();\r\n if (!currentSettings.configuration) {\r\n currentSettings.configuration = new ListConfiguration();\r\n }\r\n currentSettings.configuration.groups = [];\r\n RowShare.ListSettings.saveListSettingsToLocalStorage(this.listVM.list!.Id!, currentSettings);\r\n }\r\n\r\n public clearValueColumns(): void {\r\n this.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n let valCol = this.getValueColumns();\r\n if (valCol) {\r\n columnApi.removeValueColumns(valCol.map(vc => vc.colId));\r\n }\r\n gridApi.refreshHeader();\r\n });\r\n }\r\n\r\n public clearVisibleToolPanel(): void {\r\n this.execOnceGridApiIsReady((gridApi) => {\r\n gridApi.closeToolPanel();\r\n });\r\n }\r\n\r\n public restoreVisibleToolPanel() {\r\n if (!this.listVM.list) {\r\n return;\r\n }\r\n let settings = RowShare.ListSettings.loadListSettingsFromLocalStorage(this.listVM.list.Id);\r\n if (settings?.configuration) {\r\n this.applyVisibleToolPanel(settings.configuration);\r\n }\r\n }\r\n\r\n public restoreFilters() {\r\n if (!this.listVM.list)\r\n return;\r\n\r\n let settings = RowShare.ListSettings.loadListSettingsFromLocalStorage(this.listVM.list.Id);\r\n this.displayedRowIds = null;\r\n this.gridApi?.onFilterChanged();\r\n setTimeout(() => {\r\n if (settings.configuration?.filters) {\r\n this.gridApi?.setFilterModel(settings.configuration.filters);\r\n }\r\n if (this.currentQuickFilter) {\r\n this.gridApi?.setQuickFilter(this.currentQuickFilter);\r\n EventBus.$emit(RowShare.Event.GRID_SEARCH_CHANGED, { searchText: this.currentQuickFilter, saveValue: true, source: \"external\" });\r\n }\r\n this.gridApi?.onFilterChanged();\r\n }, 0);\r\n }\r\n\r\n public clearAllSavedFilters() {\r\n this.displayedRowIds = null;\r\n this.gridApi?.onFilterChanged();\r\n EventBus.$emit(RowShare.Event.GRID_SEARCH_CHANGED, { searchText: null, saveValue: true, source: \"external\" });\r\n }\r\n\r\n public moveColumns(columns: agGrid.Column[], toIndex: number) {\r\n if (!this.columnApi || !this.gridApi || !this.listVM.list?.Owned || this.printMode || columns.length == 0 || toIndex == 0\r\n || this.listVM.specialRowsDisplayed) {\r\n return;\r\n }\r\n\r\n Api.Column.moveColumns(columns.map(c => c.getColId()), toIndex, this.listVM.list.Id, this.listVM.columns?.length ?? 0, RealTimeCollaborationModule.connection.connectionId)\r\n .then(savedColumns => {\r\n if (savedColumns) {\r\n savedColumns.forEach(sc => {\r\n var colVM = this.gridApi?.getColumnDef(sc.Id);\r\n if (colVM) {\r\n colVM.rsColumn = sc;\r\n }\r\n var displayModeVM = this;\r\n if (displayModeVM.listVM.columns) {\r\n var idx = displayModeVM.listVM.columns.findIndex(c => c.Id == sc.Id);\r\n displayModeVM.listVM.columns[idx] = sc;\r\n }\r\n });\r\n }\r\n });\r\n this.gridApi.refreshCells();\r\n this.gridApi.refreshHeader();\r\n }\r\n\r\n public togglePinColumn(column: agGrid.Column) {\r\n if (!column || !this.columnApi || !this.gridApi) {\r\n return;\r\n }\r\n let colState = this.columnApi.getColumnState().find(cs => cs.colId === column.getColId());\r\n if (!colState) {\r\n return;\r\n }\r\n\r\n let pinned = (colState.pinned === true || colState.pinned === 'left');\r\n this.columnApi.setColumnPinned(column, pinned ? null : 'left');\r\n this.gridApi.refreshHeader();\r\n }\r\n\r\n public get totalRowsCount(): number {\r\n let count = 0;\r\n this.gridApi?.forEachNode((node: agGrid.IRowNode) => {\r\n if (!node.group) {\r\n count++;\r\n }\r\n });\r\n return count;\r\n }\r\n\r\n public get visibleRowsCount(): number {\r\n let count = 0;\r\n if (this.pGridApi) {\r\n this.pGridApi.forEachNodeAfterFilter((node: agGrid.IRowNode) => {\r\n if (!node.group) {\r\n count++;\r\n }\r\n })\r\n }\r\n return count;\r\n }\r\n\r\n public get totalColumnsCount(): number {\r\n return (this.listVM.columns?.length ?? 0) + (this.listVM.specialRowsDisplayed ? 2 : 0);\r\n }\r\n\r\n public get visibleColumnsCount(): number {\r\n if (!this.pColumnApi) {\r\n return this.totalColumnsCount;\r\n }\r\n if (!this.pColumnApi || !this.pColumnApi.getColumnState()) {\r\n return 0;\r\n }\r\n let visiblecolumns = this.pColumnApi.getColumnState().filter(cs => (this.pColumnApi?.getColumn(cs.colId)).colDef.rsColumn && !cs.hide);\r\n return visiblecolumns.length;\r\n }\r\n\r\n public get rowGroupsCount(): number {\r\n return this.rowGroupsColNames?.length ?? 0;\r\n }\r\n\r\n public get rowGroupsColNames(): string[] {\r\n let result: string[] = [];\r\n if (this.pColumnApi) {\r\n let colGroups = this.pColumnApi.getRowGroupColumns();\r\n if (colGroups) {\r\n result = colGroups.map(rgc => (rgc.getColDef().headerName) ?? '').filter(n => n && n != null && n != '');\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public setRowGroupColumns(columns: string[]) {\r\n this.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n columnApi.setRowGroupColumns(columns);\r\n setTimeout(() => {\r\n if (this.listVM?.list?.Id) {\r\n var rowGroupWidth = Settings.getColumnProperty(this.listVM.list?.Id, ColumnVM.autoGroupColumnId, 'width') ?? 0;\r\n columnApi.setColumnWidth(ColumnVM.autoGroupColumnId, rowGroupWidth > 0 ? rowGroupWidth : 200);\r\n }\r\n }, 0);\r\n });\r\n }\r\n\r\n public static isExternalFilterPresent(grid: GridViewVM): boolean {\r\n return grid && grid.displayedRowIds !== null;\r\n }\r\n\r\n public static doesExternalFilterPass(grid: GridViewVM, node: agGrid.IRowNode): boolean {\r\n if (node.id && grid.displayedRowIds != null) {\r\n return (grid.displayedRowIds.indexOf(node.id) > -1) || node.data.isNew;\r\n }\r\n return true;\r\n }\r\n\r\n /** ViewConfig **/\r\n\r\n public getCurrentViewConfig(): RowShare.ListConfiguration | undefined {\r\n if (!this.gridApi || !this.columnApi)\r\n return;\r\n\r\n var viewConfig = new RowShare.ListConfiguration();\r\n\r\n let colState = this.columnApi.getColumnState();\r\n viewConfig.hiddenColumns = colState.filter(s => s.hide).map(s => s.colId);\r\n\r\n viewConfig.filters = this.gridApi.getFilterModel();\r\n viewConfig.sortOrder = colState.filter(s => s.sort).map(s => {\r\n return {\r\n colId: s.colId,\r\n sort: s.sort,\r\n sortIndex: s.sortIndex,\r\n };\r\n });\r\n viewConfig.sideBar.rowGroupColumns = this.columnApi.getRowGroupColumns().map(rgc => rgc.getColId());\r\n let valCol = this.getValueColumns();\r\n if (valCol) {\r\n viewConfig.sideBar.valueColumns = valCol;\r\n }\r\n let collapsedGroups = this.getCollapsedColumnGroups();\r\n if (collapsedGroups && collapsedGroups.length > 0) {\r\n viewConfig.collapsedColumnGroups.push(...collapsedGroups);\r\n }\r\n\r\n return viewConfig;\r\n }\r\n\r\n public applyFilters(viewConfig: RowShare.ListConfiguration): void {\r\n this.execOnceGridApiIsReady((gridApi) => {\r\n gridApi.setFilterModel(viewConfig.filters);\r\n });\r\n }\r\n\r\n public applySort(viewConfig: RowShare.ListConfiguration): void {\r\n this.execOnceColumnApiIsReady((columnApi) => {\r\n columnApi.applyColumnState({\r\n state: viewConfig.sortOrder,\r\n defaultState: { sort: null },\r\n });\r\n });\r\n }\r\n\r\n public applyHiddenColumns(viewConfig: RowShare.ListConfiguration): void {\r\n this.execOnceColumnApiIsReady((columnApi) => {\r\n this.clearHiddenColumns();\r\n if (viewConfig.hiddenColumns) {\r\n for (let i = 0; i < viewConfig.hiddenColumns.length; ++i) {\r\n const col = columnApi.getColumn(viewConfig.hiddenColumns[i]);\r\n if (col)\r\n this.hideColumn(col);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public applyCollapsedColumnGroups(viewConfig: RowShare.ListConfiguration): void {\r\n this.execOnceColumnApiIsReady((columnApi) => {\r\n this.clearCollapsedColumnGroups();\r\n if (viewConfig.collapsedColumnGroups) {\r\n viewConfig.collapsedColumnGroups.forEach(ccg => {\r\n columnApi.setColumnGroupOpened(ccg, false);\r\n });\r\n }\r\n });\r\n }\r\n\r\n public applyRowGroupColumns(viewConfig: RowShare.ListConfiguration): void {\r\n this.setRowGroupColumns(viewConfig.sideBar.rowGroupColumns);\r\n }\r\n\r\n public applyValueColumns(viewConfig: RowShare.ListConfiguration): void {\r\n this.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n this.clearValueColumns();\r\n viewConfig?.sideBar?.valueColumns?.forEach(vc => {\r\n let col = columnApi.getColumn(vc.colId);\r\n if (col) {\r\n col.setValueActive(true);\r\n col.setAggFunc(vc.aggFunction);\r\n columnApi.addValueColumn(col);\r\n }\r\n });\r\n });\r\n }\r\n\r\n public applyVisibleToolPanel(viewConfig: RowShare.ListConfiguration): void {\r\n this.execOnceGridApiIsReady((gridApi) => {\r\n this.clearVisibleToolPanel();\r\n if (viewConfig?.sideBar?.visibleToolPanelId) {\r\n gridApi.openToolPanel(viewConfig.sideBar.visibleToolPanelId);\r\n }\r\n });\r\n }\r\n\r\n public getCurrentFilters(): any {\r\n if (!this.gridApi)\r\n return;\r\n\r\n return this.gridApi.getFilterModel();\r\n }\r\n\r\n public get isFiltered(): boolean {\r\n if (!this.gridApi) {\r\n return false;\r\n }\r\n return this.gridApi.isAnyFilterPresent();\r\n }\r\n\r\n public get isSorted(): boolean {\r\n if (!this.gridApi) {\r\n return false;\r\n }\r\n return this.columnApi?.getColumnState()?.find(c => c.sort != null) != undefined;\r\n }\r\n\r\n public getCurrentSort(): agGrid.ColumnState[] | undefined {\r\n if (!this.columnApi)\r\n return;\r\n\r\n return this.columnApi.getColumnState()\r\n .filter(function (s) {\r\n return s.sort != null;\r\n })\r\n .map(function (s) {\r\n return {\r\n colId: s.colId,\r\n sort: s.sort,\r\n sortIndex: s.sortIndex,\r\n };\r\n });\r\n }\r\n\r\n public onColumnRowGroupChanged(event: agGrid.ColumnRowGroupChangedEvent) {\r\n if (event.columnApi.getRowGroupColumns().length == 1 && event.columnApi.getValueColumns().length === 0) {\r\n let summableColumns = event.columnApi.getColumns()?.filter((c: agGrid.Column) => {\r\n let colVM = c.getColDef();\r\n if (colVM?.columnProxy) {\r\n return colVM.columnProxy.getEnableAggregate(colVM.rsColumn);\r\n }\r\n return false;\r\n }).map(c => c.getColId());\r\n if (summableColumns && summableColumns.length > 0) {\r\n event.columnApi.setValueColumns(summableColumns);\r\n }\r\n }\r\n RowShare.ListSettings.saveRowGroupColumns(this);\r\n this.viewManager.onColumnRowGroupChanged(event);\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this);\r\n }\r\n\r\n public onRowGroupColumnAdded(colId: string) {\r\n if (!colId) {\r\n return;\r\n }\r\n this.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n columnApi.addRowGroupColumn(colId);\r\n gridApi.refreshHeader();\r\n });\r\n }\r\n\r\n public onRowGroupColumnRemoved(colId: string) {\r\n if (!colId) {\r\n return;\r\n }\r\n this.execOnceColAndGridApiAreReady((gridApi, columnApi) => {\r\n columnApi.removeRowGroupColumn(colId);\r\n gridApi.refreshHeader();\r\n // clearing value columns if no more groups\r\n if(columnApi.getRowGroupColumns().length === 0) {\r\n this.clearValueColumns();\r\n }\r\n });\r\n }\r\n\r\n public onColumnValueChanged(event: agGrid.ColumnValueChangedEvent) {\r\n RowShare.ListSettings.saveValueColumns(this);\r\n }\r\n\r\n public getRowGroupColumnsIds(): string[] | undefined {\r\n if (!this.columnApi) {\r\n return;\r\n }\r\n return this.columnApi.getRowGroupColumns().map(c => c.getColId());\r\n }\r\n\r\n public getValueColumns(): RowShare.valueColumn[] | undefined {\r\n if (!this.columnApi) {\r\n return;\r\n }\r\n return this.columnApi.getValueColumns().map((vc: agGrid.Column) => {\r\n let valCol = new RowShare.valueColumn();\r\n valCol.colId = vc.getColId();\r\n valCol.aggFunction = vc.getAggFunc();\r\n return valCol;\r\n }).filter(vc => vc != undefined && vc.colId);\r\n }\r\n\r\n public getVisibleToolPanelId(): string | undefined {\r\n if (!this.gridApi) {\r\n return;\r\n }\r\n\r\n let openedToolPanelId = this.gridApi.getOpenedToolPanel();\r\n\r\n if (openedToolPanelId == null) {\r\n return;\r\n }\r\n\r\n return openedToolPanelId;\r\n }\r\n\r\n public flashRows(rowIds: string[], moreRows: boolean) {\r\n if((rowIds?.length ?? 0) === 0) {\r\n return;\r\n }\r\n this.execOnceGridApiIsReady((gridApi) => {\r\n const nodes: agGrid.IRowNode[] = [];\r\n\r\n rowIds.forEach((rowId) => {\r\n let rowNode = gridApi.getRowNode(rowId);\r\n if(rowNode) {\r\n nodes.push(rowNode);\r\n }\r\n });\r\n if(nodes.length > 0) {\r\n this.scrollRecursive(gridApi, this.getRowNodeIndex(rowIds[0]), {top: -1, bottom: 0});\r\n setTimeout(() => {\r\n gridApi.flashCells({ rowNodes: nodes, flashDelay: 10000, fadeDelay: 5000});\r\n }, 800);\r\n if(moreRows) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n duplicateId: 'moreRows',\r\n autoHide: true,\r\n autoHideAfterMs: 10000,\r\n type: RowShare.NotificationType.info,\r\n message: i18n.t('Notification_MoreRowsToHighlight').toString()\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n scrollRecursive(gridApi: agGrid.GridApi, index: number, oldScrollPosition: {top: number, bottom: number}) {\r\n if(!gridApi) {\r\n return;\r\n }\r\n var currentScrollPosition = gridApi.getVerticalPixelRange();\r\n //the scrolling has settled - old and current scroll position are identical - exit\r\n if (Math.round(oldScrollPosition.top) === Math.round(currentScrollPosition.top)) {\r\n return;\r\n }\r\n\r\n //more scrolling needed - scroll\r\n setTimeout(() => {\r\n gridApi.ensureIndexVisible(index, \"top\");\r\n this.scrollRecursive(gridApi, index, currentScrollPosition);\r\n }, 200);\r\n }\r\n\r\n\r\n onColumnPermissionsChanged(columnId: string) {\r\n if(!columnId) {\r\n return;\r\n }\r\n this.execOnceGridApiIsReady((gridApi) => {\r\n Api.Column.load(columnId)\r\n .then(column => {\r\n if(column) {\r\n let col = (gridApi.getColumnDef(columnId));\r\n col.rsColumn = column;\r\n gridApi.refreshHeader();\r\n }\r\n });\r\n })\r\n }\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-img',{staticClass:\"mb-4\",attrs:{\"src\":require(\"@/assets/static/images/img_empty_rowmerge.svg\"),\"contain\":\"\",\"max-height\":\"172\"}}),_vm._v(\" \"),(!_vm.specialRowsDisplayed && _vm.canAddRow)?_c('span',[_vm._v(_vm._s(_vm.$t('EmptyTable_AddFirstRow')))]):(!_vm.canAddRow || _vm.specialRowsDisplayed)?_c('span',[_vm._v(_vm._s(_vm.$t('EmptyTable_NothingToDisplay')))]):_vm._e(),_vm._v(\" \"),(!_vm.specialRowsDisplayed && _vm.canAddRow)?_c('v-icon',{staticClass:\"bounce\"},[_vm._v(\"fal fa-arrow-down\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { DisplayedRows } from '@/models/Enums';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport {Vue, Component} from 'vue-property-decorator';\r\n\r\n@Component({name: 'emptyStateOverlay'})\r\nexport default class emptyStateOverlay extends Vue {\r\n\r\n get specialRowsDisplayed(): boolean {\r\n return (ListTreeModule.currentListDisplayedRows != DisplayedRows.Active);\r\n }\r\n get canAddRow(): boolean {\r\n return (ListTreeModule.currentList?.CanCreate ?? false);\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./emptyStateOverlay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./emptyStateOverlay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./emptyStateOverlay.vue?vue&type=template&id=c2e30e86&scoped=true&\"\nimport script from \"./emptyStateOverlay.vue?vue&type=script&lang=ts&\"\nexport * from \"./emptyStateOverlay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./emptyStateOverlay.vue?vue&type=style&index=0&id=c2e30e86&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 \"c2e30e86\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"ma-1 pa-0\"},[_c('div',{staticClass:\"chart-tool-panel-actions ma-1\"},[_c('v-btn',{staticClass:\"pa-1 chart-tool-panel-actions-new\",attrs:{\"color\":\"primary\",\"outlined\":\"\"},on:{\"click\":_vm.addNewChart}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")]),_vm._v(\" \"),_c('span',{staticClass:\"text-wrap\"},[_vm._v(_vm._s(_vm.$t('ChartsToolPanel_NewChart')))])],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.refreshCharts}},[_c('v-icon',[_vm._v(\"fal fa-sync-alt\")])],1)],1),_vm._v(\" \"),_c('v-expansion-panels',{attrs:{\"accordion\":\"\",\"multiple\":\"\",\"flat\":\"\"},model:{value:(_vm.openedPanels),callback:function ($$v) {_vm.openedPanels=$$v},expression:\"openedPanels\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ChartsToolPanel_PublicCharts'))+\"\\n \"),(_vm.sharedCharts)?_c('span',{staticClass:\"ml-1\"},[_vm._v(\"(\"+_vm._s(_vm.sharedCharts.length)+\")\")]):_vm._e()]),_vm._v(\" \"),_c('v-expansion-panel-content',[_c('draggable',{attrs:{\"draggable\":\".shared-chart-wrapper\"},on:{\"change\":_vm.onChartsOrderChanged},model:{value:(_vm.sharedCharts),callback:function ($$v) {_vm.sharedCharts=$$v},expression:\"sharedCharts\"}},_vm._l((_vm.sharedCharts),function(chart){return _c('div',{key:chart.Id,staticClass:\"mb-3 shared-chart-wrapper\"},[_c('chart-renderer',{attrs:{\"chartId\":chart.Id,\"isThumbnail\":true,\"rowIds\":_vm.rowIds,\"width\":\"180\",\"height\":\"200\"}})],1)}),0)],1)],1),_vm._v(\" \"),_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ChartsToolPanel_PrivateCharts'))+\"\\n \"),(_vm.privateCharts)?_c('span',{staticClass:\"ml-1\"},[_vm._v(\"(\"+_vm._s(_vm.privateCharts.length)+\")\")]):_vm._e()]),_vm._v(\" \"),_c('v-expansion-panel-content',[_c('draggable',{attrs:{\"draggable\":\".private-chart-wrapper\"},on:{\"change\":_vm.onChartsOrderChanged},model:{value:(_vm.privateCharts),callback:function ($$v) {_vm.privateCharts=$$v},expression:\"privateCharts\"}},_vm._l((_vm.privateCharts),function(chart){return _c('div',{key:chart.Id,staticClass:\"mb-3 private-chart-wrapper\"},[_c('chart-renderer',{attrs:{\"chartId\":chart.Id,\"isThumbnail\":true,\"rowIds\":_vm.rowIds,\"width\":\"180\",\"height\":\"200\"}})],1)}),0)],1)],1)],1),_vm._v(\" \"),(_vm.hasNoCharts)?_c('div',{staticClass:\"no-data\",on:{\"click\":_vm.addNewChart}},[_c('div',{staticClass:\"no-data-img mb-2\"},[_c('img',{staticClass:\"no-data-img\",attrs:{\"src\":require(\"@/assets/static/images/emptyChartsPanel.svg\")}})]),_vm._v(\" \"),_c('div',{staticClass:\"no-data-text\"},[_vm._v(_vm._s(_vm.$t('ChartsToolPanel_NoCharts')))])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.loadingData)?_c('div',[_c('page-load-spinner')],1):(_vm.loadingErrors)?_c('div',{staticClass:\"loading-error\",on:{\"click\":_vm.maximizeChart}},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"loading-error-text\"},[_vm._v(_vm._s(_vm.loadingErrors))])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!(_vm.loadingErrors || _vm.loadingData)),expression:\"!(loadingErrors || loadingData)\"}],staticClass:\"chart-wrapper\"},[_c('canvas',{class:_vm.isThumbnail ? 'thumbnail-chart' : '',staticStyle:{\"max-height\":\"75vh\"},attrs:{\"id\":_vm.domId,\"width\":_vm.width,\"height\":_vm.height}})])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"loading-error-img mb-2\"},[_c('img',{attrs:{\"src\":require(\"@/assets/static/images/chart_error.svg\")}})])\n}]\n\nexport { render, staticRenderFns }","\r\nimport {Vue, Prop, Component, Watch } from 'vue-property-decorator';\r\nimport Chart, { ChartConfiguration, ChartTypeRegistry } from 'chart.js/auto';\r\nimport 'chartjs-adapter-moment';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport * as API from '@/api/Api';\r\nimport { ChartData, ChartStackedType, Event, maximizeChartEventParams } from '@/models/RowShare';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport moment from 'moment';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n\r\n@Component({name: 'chartRenderer', components: { PageLoadSpinner }})\r\nexport default class charRenderer extends Vue {\r\n @Prop() chartId!: string;\r\n @Prop() width!: string;\r\n @Prop() height!: string;\r\n @Prop() isThumbnail!: boolean;\r\n @Prop() rowIds!: string[] | null;\r\n \r\n configuration!: ChartConfiguration | null;\r\n chart: Chart | null = null;\r\n chartData: ChartData | null = null;\r\n loadingData: boolean = false;\r\n loadingErrors: string = '';\r\n\r\n public get domId() { return this.chartId + (this.isThumbnail ? '_thumbnail' : ''); }\r\n\r\n mounted() {\r\n moment.locale(window.navigator.language);\r\n this.refreshChartData();\r\n }\r\n\r\n destroy() {\r\n if(this.chart) {\r\n this.chart.destroy();\r\n }\r\n }\r\n\r\n @Watch('chartId')\r\n onChartIdChanged(){\r\n this.refreshChartData();\r\n }\r\n\r\n @Watch('rowIds')\r\n onRowIdsChanged(){\r\n this.refreshChartData();\r\n }\r\n\r\n async refreshChartData() {\r\n if(this.chart) {\r\n this.chart.destroy();\r\n }\r\n if(!this.chartId) {\r\n return;\r\n }\r\n this.loadingData = true;\r\n API.Chart.loadChartData(this.chartId, this.rowIds, {cache: false})\r\n .then(datas => {\r\n if(datas) {\r\n this.chartData = datas;\r\n this.configuration = this.chartDataToChartjsConfiguration(this.chartData);\r\n if(this.chart) {\r\n this.chart.destroy();\r\n }\r\n if(this.configuration && this.domId) {\r\n this.chart = new Chart(this.domId, this.configuration); \r\n }\r\n }\r\n })\r\n .catch(err => {\r\n let msg = err._message ? err._message : err;\r\n this.loadingErrors = this.$i18n.t('Charts_ErrorLoadingData', [msg]).toString();\r\n })\r\n .finally(() => {this.loadingData = false;});\r\n }\r\n\r\n private chartDataToChartjsConfiguration(chartData: RowShare.ChartData) : ChartConfiguration {\r\n var config = this.getDefaultConfig(chartData);\r\n\r\n config.data = {\r\n labels: chartData.Labels,\r\n datasets: chartData.DataSets.map(ds => {\r\n var chartJsDataset = {\r\n label: ds.Label,\r\n data: ds.Data.map((value) => value.replaceAll(',','.')),\r\n backgroundColor: ds.BackgroundColor,\r\n borderColor: ds.BackgroundColor\r\n };\r\n\r\n if(chartData.Type == RowShare.ChartType.Area) {\r\n chartJsDataset.fill = true;\r\n }\r\n\r\n return chartJsDataset;\r\n }) \r\n };\r\n\r\n return config;\r\n }\r\n\r\n private getDefaultConfig(chartData: RowShare.ChartData) : Partial {\r\n var res : any = { options : {}};\r\n if(this.isThumbnail) {\r\n res.options.plugins = {\r\n title: {\r\n display: this.isThumbnail,\r\n text: chartData.Name,\r\n },\r\n legend: {\r\n display: !this.isThumbnail,\r\n position: 'right'\r\n }\r\n };\r\n res.options.resizeDelay = 200;\r\n\r\n\r\n res.options.onClick = (e: any) => {\r\n this.maximizeChart();\r\n };\r\n }\r\n\r\n switch(chartData.Type) {\r\n case RowShare.ChartType.Area:\r\n case RowShare.ChartType.Line: {\r\n res.type = \"line\";\r\n res.options.scales = {\r\n x: { ticks:{ display: !this.isThumbnail } },\r\n y: { beginAtZero: true, ticks: {display: !this.isThumbnail} },\r\n };\r\n\r\n if(chartData.Type == RowShare.ChartType.Area)\r\n res.options.scales.y.stacked = true;\r\n\r\n if(chartData.XDataType == RowShare.XDataType.DateTime) {\r\n res.options.scales.x.type = 'time';\r\n res.options.scales.x.beginAtZero = false;\r\n res.options.scales.x.time = { tooltipFormat: this.getTooltipFormatForTimeUnit(chartData) }\r\n\r\n if(chartData.DateGroupingUnit) {\r\n res.options.scales.x.time.unit = RowShare.ChartDateGroupingUnit[chartData.DateGroupingUnit].toLowerCase();\r\n }\r\n /*\r\n res.options.scales.x.time.unit = chartData.DateGroupingUnit\r\n ? RowShare.ChartDateGroupingUnit[chartData.DateGroupingUnit].toLowerCase()\r\n : 'minute';\r\n */\r\n } else if(chartData.XDataType == RowShare.XDataType.Number) {\r\n res.options.scales.x.type = 'linear';\r\n }\r\n\r\n return res;\r\n }\r\n \r\n case RowShare.ChartType.Bar: {\r\n res.type = \"bar\";\r\n \r\n var stacked = chartData.Stacked == ChartStackedType.Normal;\r\n res.options.scales = {\r\n x: { ticks:{ display: !this.isThumbnail }, stacked: stacked },\r\n y: { ticks:{ display: !this.isThumbnail }, stacked: stacked }\r\n };\r\n if(chartData.DataSets.length === 1 && !this.isThumbnail) {\r\n res.options.plugins = {\r\n legend: {\r\n display: false\r\n }\r\n }\r\n }\r\n if(chartData.XDataType == RowShare.XDataType.DateTime) {\r\n res.options.scales.x.type = 'timeseries';\r\n res.options.scales.x.time = { tooltipFormat: this.getTooltipFormatForTimeUnit(chartData) }\r\n\r\n if(chartData.DateGroupingUnit) {\r\n res.options.scales.x.time.unit = RowShare.ChartDateGroupingUnit[chartData.DateGroupingUnit].toLowerCase();\r\n }\r\n }\r\n \r\n return res;\r\n }\r\n\r\n case RowShare.ChartType.Scatter: {\r\n res.type = \"scatter\";\r\n return res;\r\n }\r\n\r\n case RowShare.ChartType.Pie: {\r\n res.type = \"pie\";\r\n return res;\r\n }\r\n\r\n }\r\n }\r\n\r\n public getTooltipFormatForTimeUnit(chartData: RowShare.ChartData){\r\n switch(chartData.DateGroupingUnit) {\r\n case RowShare.ChartDateGroupingUnit.Month :\r\n return \"MMMM YYYY\";\r\n case RowShare.ChartDateGroupingUnit.Day:\r\n return \"LL\";\r\n case RowShare.ChartDateGroupingUnit.Year:\r\n return \"YYYY\";\r\n default:\r\n return chartData.XColumnStrongType == RowShare.ColumnStrongType.Date ? \"LL\" : \"LLLL\";\r\n }\r\n }\r\n\r\n public getChartImage() {\r\n if(this.chart) {\r\n return this.chart.toBase64Image();\r\n }\r\n }\r\n\r\n maximizeChart() {\r\n if(this.isThumbnail) {\r\n let event = new maximizeChartEventParams();\r\n event.chartId = this.chartId;\r\n event.rowIds = this.rowIds;\r\n EventBus.$emit(Event.MAXIMIZE_CHART, event)\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./chartRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./chartRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./chartRenderer.vue?vue&type=template&id=5658c0a8&scoped=true&\"\nimport script from \"./chartRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./chartRenderer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./chartRenderer.vue?vue&type=style&index=0&id=5658c0a8&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 \"5658c0a8\",\n null\n \n)\n\nexport default component.exports","\r\nimport { IToolPanelParams } from 'ag-grid-community';\r\nimport {Vue, Component, Prop } from 'vue-property-decorator';\r\nimport ChartRenderer from '@/views/charts/chartRenderer.vue';\r\nimport * as API from '@/api/Api';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { Chart, Event } from '@/models/RowShare';\r\nimport { ListModule } from '@/store/ListStore';\r\nimport draggable from 'vuedraggable';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\n\r\n@Component({name: 'ChartsToolPanel', components: { ChartRenderer, draggable }})\r\nexport default class ChartsToolPanel extends Vue {\r\n params!: IToolPanelParams;\r\n\r\n privateCharts: Chart[] = [];\r\n sharedCharts: Chart[] = [];\r\n loadingCharts: boolean = false;\r\n rowIds: string[] | null = null;\r\n openedPanels: number[] = [];\r\n\r\n created() {\r\n EventBus.$on(Event.REFRESH_CHARTS, () => this.refreshCharts());\r\n }\r\n\r\n destroy() {\r\n EventBus.$off(Event.REFRESH_CHARTS, () => this.refreshCharts());\r\n }\r\n\r\n async mounted() {\r\n this.refreshCharts();\r\n }\r\n\r\n refreshCharts() {\r\n this.loadingCharts = true;\r\n this.privateCharts = [];\r\n this.sharedCharts = [];\r\n if(this.currentList) {\r\n API.Chart.loadForParent(this.currentList.Id, {cache: false})\r\n .then((charts) => {\r\n if(charts) {\r\n this.privateCharts = charts.filter(c => !c.Shared);\r\n this.sharedCharts = charts.filter(c => c.Shared);\r\n }\r\n this.loadingCharts = false;\r\n this.initOpenedPanels();\r\n this.refreshtoolPanelTabLabel();\r\n });\r\n }\r\n }\r\n\r\n addNewChart() {\r\n EventBus.$emit(Event.ADD_NEW_CHART);\r\n }\r\n\r\n get currentList() {\r\n return ListModule.currentList;\r\n }\r\n\r\n public refreshtoolPanelTabLabel() {\r\n let elements = document.getElementsByClassName('ag-icon-chart');\r\n if(elements.length == 1) {\r\n elements[0].classList.remove('has-charts');\r\n }\r\n let count = this.privateCharts.length + this.sharedCharts.length;\r\n if(count > 0 && elements.length == 1) {\r\n elements[0].classList.add('has-charts');\r\n }\r\n }\r\n\r\n public initOpenedPanels() {\r\n if(this.openedPanels.length > 0) {\r\n return;\r\n }\r\n if((this.sharedCharts?.length ?? 0) > 0) {\r\n this.openedPanels = [0];\r\n }\r\n else if ((this.privateCharts?.length ?? 0) > 0) {\r\n this.openedPanels = [1];\r\n }\r\n }\r\n \r\n public onDataToChartChanged(listVM: ListVM){\r\n var rowIds : string[] = [];\r\n this.params.api.forEachNodeAfterFilter((node: agGrid.IRowNode) => {\r\n if(!node.group && node.data?.rsRow)\r\n rowIds.push(node.data.rsRow.Id);\r\n });\r\n\r\n if(rowIds.length > 0 && (!listVM.rowVMs || rowIds.length < listVM.rowVMs.length))\r\n this.rowIds = rowIds;\r\n else\r\n this.rowIds = null;\r\n }\r\n\r\n public onChartsOrderChanged(e: any){\r\n var newSharedOrder = this.sharedCharts.map(c => c.Id);\r\n var newPrivateOrder = this.privateCharts.map(c => c.Id);\r\n API.Chart.saveOrder(newSharedOrder.concat(newPrivateOrder));\r\n }\r\n\r\n get hasNoCharts(): boolean {\r\n return this.sharedCharts.length == 0 && this.privateCharts.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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ChartsToolPanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ChartsToolPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartsToolPanel.vue?vue&type=template&id=74aae91e&scoped=true&\"\nimport script from \"./ChartsToolPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartsToolPanel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChartsToolPanel.vue?vue&type=style&index=0&id=74aae91e&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 \"74aae91e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"ma-1 pa-4\",attrs:{\"width\":\"100%\"}},[(_vm.hasAnomalies)?_c('v-expansion-panels',{attrs:{\"multiple\":\"\"}},[_vm._l((_vm.currentAnomalies),function(anomaly){return _c('v-expansion-panel',{key:anomaly.RowId},[_c('v-expansion-panel-header',[_vm._v(\"\\n \"+_vm._s(anomaly.RowDescriptor)+\"\\n \")]),_vm._v(\" \"),_c('v-expansion-panel-content',[_vm._v(\"\\n \"+_vm._s(anomaly.Description)+\"\\n \")]),_vm._v(\" \"),_c('v-expansion-panel-content',[_c('v-btn',{attrs:{\"small\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.onShowRowClicked(anomaly.RowId)}}},[_vm._v(_vm._s(_vm.$t('AnalysisToolPanel_GoToLine')))])],1)],1)}),_vm._v(\" \"),(_vm.responseMessage)?_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\"\\n \"+_vm._s(_vm.$t('AnalysisToolPanel_ShowAnalysisResponse'))+\"\\n \")]),_vm._v(\" \"),_c('v-expansion-panel-content',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.responseMessage)}})])],1):_vm._e()],2):(_vm.responseMessage)?_c('v-card-text',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.responseMessage)}})]):_c('v-card-text',[_c('div',{staticClass:\"no-data\"},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.$t('AnalysisToolPanel_NoData'))+\"\\n \")])],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { IToolPanelParams } from 'ag-grid-community';\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport * as models from '@/models/RowShare';\r\nimport { Job } from '@/api/Job';\r\nimport { AnalysisAnomaly } from '@/models/RowShare';\r\nimport {marked} from 'marked';\r\n\r\n@Component({name: 'AnalysisToolPanel'})\r\nexport default class AnalysisToolPanel extends Vue {\r\n params!: IToolPanelParams;\r\n currentAnalysisResponse: models.AnalysisResponse | null = null;\r\n\r\n\r\n created() {\r\n EventBus.$on(models.Event.LISTANALYSIS_REFRESH, (job: models.Job) => this.refreshAnalysis(job));\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off(models.Event.LISTANALYSIS_REFRESH);\r\n }\r\n\r\n refreshAnalysis(job: models.Job) {\r\n this.currentAnalysisResponse = null;\r\n Job.loadAnalysisResponseFromJob(job.Id)\r\n .then(result => {\r\n if(result && result.IsValid) {\r\n this.currentAnalysisResponse = result.Value;\r\n }\r\n });\r\n }\r\n\r\n get hasAnomalies() : boolean {\r\n return (this.currentAnalysisResponse?.Anomalies.length ?? 0) > 0;\r\n }\r\n\r\n get currentAnomalies() : AnalysisAnomaly[] {\r\n if(!this.hasAnomalies || !this.currentAnalysisResponse) {\r\n return [];\r\n }\r\n return this.currentAnalysisResponse.Anomalies;\r\n }\r\n\r\n get responseMessage(): string {\r\n if(!this.currentAnalysisResponse) {\r\n return \"\";\r\n }\r\n return this.markdownToHtml(this.currentAnalysisResponse.ResponseMessage);\r\n }\r\n\r\n onShowRowClicked(rowId: string) {\r\n EventBus.$emit(models.Event.GRID_SHOW_ROWS, [rowId]);\r\n }\r\n\r\n markdownToHtml(md: string) {\r\n let html: string = \"\";\r\n return marked(md);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AnalysisToolPanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AnalysisToolPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnalysisToolPanel.vue?vue&type=template&id=66a7a6f2&\"\nimport script from \"./AnalysisToolPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnalysisToolPanel.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"ma-1 pa-4 d-flex flex-column\",attrs:{\"width\":\"100%\"}},[_c('v-card-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Rtc_HistoryChanges_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('Rtc_HistoryHelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_HelpLinkText'))+\"\\n \")],1)],1),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Rtc_HistoryChanges_SubTitle'))+\"\\n \")]),_vm._v(\" \"),(_vm.hasNoHistoryItem && _vm.hasRtcHistory)?_c('v-card-text',{staticClass:\"flex-grow-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Rtc_EmptyHistoryChanges'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.hasNoHistoryItem && _vm.hasRtcHistory)?_c('v-list',{staticClass:\"flex-grow-1\",staticStyle:{\"overflow\":\"auto\"}},_vm._l((_vm.rtcHistoryItems),function(item){return _c('v-list-item',{staticStyle:{\"min-height\":\"0\"}},[_c('div',[_c('bigram',{staticClass:\"bigram ma-1\",staticStyle:{\"min-height\":\"0\",\"margin-bottom\":\"2px !important\",\"margin-top\":\"2px !important\"},attrs:{\"rtc-user\":item.entity,\"dense\":\"\",\"xsmall\":\"\"}}),_vm._v(\" \"),(item.allowGoToLink())?_c('a',{on:{\"click\":function($event){return item.scrollTo()}}},[_vm._v(_vm._s(item.status))]):_vm._e(),_vm._v(\" \"),(!item.allowGoToLink())?_c('span',[_vm._v(\" \"+_vm._s(item.status))]):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(\" (\"+_vm._s(item.entity.authorName)+\", \"+_vm._s(item.formattedDate)+\")\")])],1)])}),1):_vm._e(),_vm._v(\" \"),(!_vm.hasRtcHistory)?_c('div',{staticClass:\"d-flex justify-center align-center flex-grow-1\"},[_c('div',{staticClass:\"upsell-card\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"upsell-title mb-3\"},[_c('span',[_vm._v(_vm._s(_vm.upsellTitle))])])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"mr-4\",attrs:{\"cols\":\"3\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/sharing_empty_state.svg\"),\"height\":\"100\",\"aspect-ratio\":\"1\",\"contain\":\"\"}})],1),_vm._v(\" \"),_c('v-col',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.upsellDescription)}})])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"to\":{name: 'SubscriptionCheckOut', params: {organizationId: _vm.currentOrganizationId, returnUrl: _vm.currentUrl}}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_GoToCheckOut'))+\" \"),_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-arrow-right\")])],1)],1)],1)],1)],1)],1)]):_vm._e(),_vm._v(\" \"),(_vm.hasAudit)?_c('v-divider'):_vm._e(),_vm._v(\" \"),(_vm.hasAudit)?_c('v-card-actions',[(_vm.auditIsEnabled)?_c('a',{staticClass:\"d-flex align-center mt-2\",attrs:{\"href\":_vm.auditUrl}},[_c('v-icon',{staticClass:\"mx-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"far fa-download\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('Rtc_DownloadHistory')))])],1):_vm._e(),_vm._v(\" \"),(!_vm.auditIsEnabled)?_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Rtc_AuditHelpDescription'))+\" \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":_vm.auditHelpLink}},[_vm._v(_vm._s(_vm.$t('Rtc_AuditHelpLinkClick')))])]):_vm._e()]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Vue, Component} from 'vue-property-decorator';\r\nimport {IToolPanelParams} from 'ag-grid-community';\r\nimport {RtcHistoryItem} from \"@/models/RealTimeCollaboration\";\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\nimport Bigram from \"@/views/components/Bigram.vue\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport {ListTreeModule} from \"@/store/ListTreeStore\";\r\n\r\n@Component({name: 'HistoryToolPanel',\r\n components: {Bigram}\r\n})\r\nexport default class HistoryToolPanel extends Vue {\r\n params!: IToolPanelParams;\r\n\r\n get rtcHistoryItems(): RtcHistoryItem[] {\r\n let items = RealTimeCollaborationModule.getHistory\r\n for (let item of items) {\r\n if (!item.panelParams)\r\n item.panelParams = this.params;\r\n }\r\n items = items.sort((a, b) => b.date.getTime() - a.date.getTime());\r\n return items;\r\n }\r\n\r\n get hasNoHistoryItem(): boolean {\r\n return this.rtcHistoryItems.length === 0;\r\n }\r\n\r\n get hasAudit(): boolean {\r\n return RealTimeCollaborationModule.hasAudit;\r\n }\r\n\r\n get hasRtcHistory(): boolean {\r\n return RealTimeCollaborationModule.hasRtcHistory;\r\n }\r\n\r\n get upsellTitle(): string {\r\n return this.$i18n.t(\"Rtc_UpsellTitle\").toString();\r\n }\r\n\r\n get upsellDescription() : string {\r\n return this.$i18n.t(\"Rtc_UpsellDescription\").toString();\r\n }\r\n\r\n get currentUrl(): string {\r\n return this.$route.fullPath;\r\n }\r\n\r\n get currentOrganizationId(): string {\r\n return ListTreeModule.currentOrganization?.Id ?? \"\"\r\n }\r\n\r\n get currentList(): RowShare.List | null {\r\n return ListTreeModule.currentList;\r\n }\r\n\r\n get auditUrl() : string {\r\n return `/api/audit/export/${this.currentList?.Id}?f=csv`;\r\n }\r\n\r\n get auditIsEnabled() : boolean {\r\n return this.currentList?.CanCurrentUserExportAudit ?? false;\r\n }\r\n\r\n get auditHelpLink() : string {\r\n return this.$i18n.t('Rtc_AuditHelpLink').toString();\r\n //return \"https://help.rowshare.com/l/fr/article/poyr62nhzy-historique-des-modifications\"\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./HistoryToolPanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./HistoryToolPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HistoryToolPanel.vue?vue&type=template&id=ebcc7aec&scoped=true&\"\nimport script from \"./HistoryToolPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./HistoryToolPanel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HistoryToolPanel.vue?vue&type=style&index=0&id=ebcc7aec&prod&scoped=true&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 \"ebcc7aec\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport * as API from '@/api/Api';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport {AgGridVue} from \"ag-grid-vue\";\r\nimport * as agGrid from 'ag-grid-community';\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport { GridContextMenu } from '@/viewModels/Table/gridContextMenu';\r\nimport { columnContextMenu } from '@/viewModels/Table/columnContextMenu';\r\nimport RsColumnManager from '@/columnProxies/RsColumnManager';\r\nimport BlobEditor from '@/views/Table/cellsComponents/Blob/BlobEditor.vue';\r\nimport CommentEditor from '@/views/Table/cellsComponents/Comment/CommentEditor.vue';\r\nimport DateTimeEditor from '@/views/Table/cellsComponents/DateTime/DateTimeEditor.vue';\r\nimport HyperlinkEditor from \"@/views/Table/cellsComponents/Hyperlink/HyperlinkEditor.vue\";\r\nimport LookupEditor from '@/views/Table/cellsComponents/Lookup/LookupEditor.vue';\r\nimport NumberEditor from '@/views/Table/cellsComponents/Number/NumberEditor.vue';\r\nimport RelationEditor from '@/views/Table/cellsComponents/Relation/RelationEditor.vue';\r\nimport RichTextEditor from \"@/views/Table/cellsComponents/RichText/RichTextEditor.vue\";\r\nimport RowOwnerHeaderEditor from '@/views/Table/cellsComponents/RowOwner/RowOwnerHeaderEditor.vue';\r\nimport TextEditor from '@/views/Table/cellsComponents/Text/TextEditor.vue';\r\nimport TimeEditor from '@/views/Table/cellsComponents/DateTime/TimeEditor.vue';\r\nimport TwoStatesBooleanEditor from \"@/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanEditor.vue\";\r\nimport columnGroupHeader from '@/views/Table/GridView/columnGroupHeader.vue';\r\nimport columnHeader from '@/views/Table/GridView/columnHeader.vue';\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\nimport emptyStateOverlay from './emptyStateOverlay.vue';\r\nimport ChartsToolPanel from '@/views/Table/ToolPanel/ChartsToolPanel.vue';\r\nimport AnalysisToolPanel from '@/views/Table/ToolPanel/AnalysisToolPanel.vue';\r\nimport HistoryToolPanel from \"@/views/Table/ToolPanel/HistoryToolPanel.vue\";\r\nimport {RealTimeCollaborationModule, RealTimeCollaborationStore} from \"@/store/RealTimeCollaborationStore\";\r\nimport {RealTimeCollaborationEventType} from \"@/models/RowShare\";\r\nimport {UserModule} from \"@/store/UserStore\";\r\n\r\n\r\n@Component({\r\n name: 'RowshareGrid',\r\n components: { PageLoadSpinner, AgGridVue,\r\n ChartsToolPanel, AnalysisToolPanel, columnHeader, columnGroupHeader, emptyStateOverlay, HistoryToolPanel,\r\n 'AutoNumberEditor': TextEditor,\r\n 'CommentEditor': CommentEditor,\r\n 'CreatedByUserEmailEditor': TextEditor,\r\n 'CreatedByUserNameEditor': TextEditor,\r\n 'DateEditor': DateTimeEditor,\r\n 'DateTimeEditor': DateTimeEditor,\r\n 'DecimalNumberEditor': NumberEditor,\r\n 'EmailEditor': TextEditor,\r\n 'FileEditor': BlobEditor,\r\n 'HyperlinkEditor': HyperlinkEditor,\r\n 'ImageEditor': BlobEditor,\r\n 'LastWriteUserEmailEditor': TextEditor,\r\n 'LastWriteUserNameEditor': TextEditor,\r\n 'LookUpEditor': LookupEditor,\r\n 'LookUpListEditor': LookupEditor,\r\n 'MemberManagerEmailEditor': TextEditor,\r\n 'MemberManagerNameEditor': TextEditor,\r\n 'NumberEditor': NumberEditor,\r\n 'OwnerEmailEditor': TextEditor,\r\n 'OwnerNameEditor': TextEditor,\r\n 'PercentageEditor': NumberEditor,\r\n 'ReminderEditor': DateTimeEditor,\r\n 'RichTextEditor': RichTextEditor,\r\n 'TextEditor': TextEditor,\r\n 'TimeEditor': TimeEditor,\r\n 'TwoStatesBooleanEditor': TwoStatesBooleanEditor,\r\n // technical cells\r\n 'RowOwnerHeaderEditor': RowOwnerHeaderEditor,\r\n 'RelationEditor': RelationEditor\r\n }\r\n})\r\nexport default class RowshareGrid extends Vue{\r\n @Prop() list!: RowShare.List;\r\n @Prop() gridViewVM!: GridViewVM;\r\n @Prop({default: false}) printMode!: boolean;\r\n @Prop({default: false}) pivotMode!: boolean;\r\n @Prop() highlightRows!: string | string[];\r\n\r\n autoGroupColumnSettings: agGrid.ColDef = {\r\n resizable: true, enableRowGroup: false, sortable: true, pinned: 'left', lockPosition: true,\r\n cellClass: 'technical-left-col', cellRenderer: 'agGroupCellRenderer',\r\n cellRendererParams: {\r\n innerRenderer: 'GroupRowRenderer',\r\n footerValueGetter: (params: any) => this.getGroupFooterValue(params)\r\n },\r\n width: 250\r\n }\r\n\r\n gridOptions: agGrid.GridOptions = {\r\n stopEditingWhenCellsLoseFocus: true,\r\n components: Object.assign(RsColumnManager.renderers, RsColumnManager.simpleRenderers),\r\n onColumnResized: this.onColumnResized,\r\n getContextMenuItems: GridContextMenu.getContextMenuItems,\r\n suppressRowClickSelection: true,\r\n rowSelection: 'multiple',\r\n suppressClipboardPaste: true,\r\n headerHeight: 60,\r\n onCellClicked: this.onCellClicked,\r\n onCellEditingStarted: this.onCellEditingStarted,\r\n onCellEditingStopped: this.onCellEditingStopped,\r\n onFilterChanged: this.onFilterChanged,\r\n onSortChanged: this.onSortChange,\r\n onColumnVisible: this.onColumnVisibleChanged,\r\n getMainMenuItems: columnContextMenu.getMainMenuItems,\r\n rowDragManaged: true,\r\n onRowDragEnd: this.onRowDragEnd,\r\n enableRangeSelection: true,\r\n processCellForClipboard: ColumnVM.processCellForClipboard,\r\n cacheQuickFilter: true,\r\n suppressPropertyNamesCheck: true,\r\n getRowId: (params: agGrid.GetRowIdParams) => params.data.rowVMId, // cannot use rsRow.Id as it would be undefined for new row until the first api result\r\n tooltipShowDelay: 800,\r\n showOpenedGroup: true,\r\n //groupDefaultExpanded: -1, // Expand all row groups\r\n autoGroupColumnDef: this.autoGroupColumnSettings,\r\n onColumnRowGroupChanged: this.onColumnRowGroupChanged,\r\n onColumnValueChanged: this.onColumnValueChanged,\r\n groupIncludeFooter: true,\r\n onToolPanelVisibleChanged: this.onToolPanelVisibleChanged,\r\n suppressModelUpdateAfterUpdateTransaction: true,\r\n suppressDragLeaveHidesColumns: true,\r\n onColumnMoved: this.onColumnMoved,\r\n onColumnPinned: ColumnVM.onColumnPinned,\r\n skipHeaderOnAutoSize: true,\r\n onColumnGroupOpened: this.onColumnGroupOpenedChanged,\r\n onRangeSelectionChanged: this.onRangeSelectionChanged,\r\n noRowsOverlayComponent: 'emptyStateOverlay',\r\n loadingOverlayComponent: 'PageLoadSpinner',\r\n suppressRowGroupHidesColumns: true,\r\n onFirstDataRendered: this.onFirstDataRendered,\r\n onRowGroupOpened: this.onRowGroupOpened,\r\n isGroupOpenByDefault: this.isGroupOpenByDefault\r\n };\r\n\r\n isGroupOpenByDefault (params : agGrid.IsGroupOpenByDefaultParams) : boolean {\r\n return this.gridViewVM.isGroupOpenByDefault(params)\r\n }\r\n\r\n defaultColumnSettings: agGrid.ColDef = {\r\n menuTabs: ['filterMenuTab', 'generalMenuTab'],\r\n headerClass: ['colHeader'],\r\n headerComponent: 'columnHeader',\r\n minWidth: 50,\r\n filterParams: {buttons: ['reset', 'apply'], closeOnApply: true },\r\n enableRowGroup: true,\r\n suppressSpanHeaderHeight: true\r\n };\r\n sideBarConfig!: agGrid.SideBarDef;\r\n\r\n getGroupFooterValue(params: any) {\r\n return this.$i18n.t('Grid_GroupFooterLabel', [params.value]).toString();\r\n }\r\n\r\n getLocaleText(params: any): string{\r\n if(params.key && params.key != '') {\r\n var key = 'Grid_' + params.key;\r\n if(this.$i18n.te(key)) {\r\n return this.$i18n.t(key, params.variableValues).toString();\r\n }\r\n }\r\n if(params.defaultValue && params.defaultValue != '') {\r\n return params.defaultValue;\r\n }\r\n return '';\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n created() {\r\n if(!this.printMode) {\r\n this.sideBarConfig = {\r\n toolPanels: [\r\n {\r\n id: 'columns',\r\n labelDefault: this.getLocaleText('columns'),\r\n labelKey: 'columns',\r\n iconKey: 'columns',\r\n toolPanel: 'agColumnsToolPanel',\r\n toolPanelParams: {\r\n suppressPivots: true,\r\n suppressPivotMode: true,\r\n suppressColumnSelectAll: true,\r\n },\r\n },\r\n {\r\n id: 'charts',\r\n labelDefault: this.$i18n.t('ChartsToolPanel_TabLabel').toString(),\r\n labelKey: '',\r\n iconKey: 'chart',\r\n toolPanel: 'ChartsToolPanel'\r\n }\r\n ],\r\n hiddenByDefault: true,\r\n position:'right'\r\n };\r\n }\r\n this.gridOptions.rowClassRules = {\r\n 'grid-row-error' : params => params?.data ? params.data.hasError : false,\r\n 'grid-row-total' : params => params?.data ? params.data.isTotalRow : false,\r\n 'grid-row-readonly' : params => params?.data ? params.data.isReadOnly : false,\r\n 'grid-row-group' : params => params?.node ? params.node.group ?? false : false,\r\n 'grid-row-autoheight' : params => (this.list?.RowsAutoHeight ?? false) && !(params?.data?.isTotalRow ?? false),\r\n 'grid-row-locked' : params => params?.data ? params?.data.isLocked : false,\r\n 'grid-row-editing' : params => params?.data ? params?.data.editionInProgress : false,\r\n 'deleting' : params => params?.data ? params?.data.removed : false,\r\n 'highlight-row' : params => {\r\n if (!params.data) return false;\r\n const row = RealTimeCollaborationModule\r\n .createdRows\r\n .find(rowId => rowId === params?.data?.rsRow?.Id);\r\n return !!row;\r\n\r\n },\r\n };\r\n\r\n this.gridOptions.doesExternalFilterPass = (node) => GridViewVM.doesExternalFilterPass(this.gridViewVM, node);\r\n this.gridOptions.isExternalFilterPresent = () => GridViewVM.isExternalFilterPresent(this.gridViewVM);\r\n this.gridViewVM.gridApi?.setDomLayout(this.printMode ? 'print' : 'normal');\r\n }\r\n\r\n onColumnMoved(event: agGrid.ColumnMovedEvent) {\r\n if(!event.finished || !event.columns || event.columns.length == 0) {\r\n return;\r\n }\r\n let toIndex = -1;\r\n // toIndex event's property is not always correct so get it with getAllGridColumns grid api\r\n var columns = event.columnApi.getAllGridColumns();\r\n if(columns) {\r\n toIndex = columns.findIndex(c => {\r\n if(event.columns && event.columns.length > 0) {\r\n return c.getId() === event.columns[0].getId()\r\n }\r\n return false;\r\n });\r\n }\r\n if(toIndex > -1) {\r\n this.gridViewVM.moveColumns(event.columns ?? [], toIndex);\r\n }\r\n }\r\n\r\n onColumnResized(event: agGrid.ColumnResizedEvent) {\r\n ColumnVM.onColumnResized(event, this.gridViewVM?.printMode)\r\n }\r\n\r\n gridReady(params: agGrid.GridReadyEvent){\r\n this.gridViewVM.gridApi = params.api;\r\n this.gridViewVM.columnApi = params.columnApi;\r\n this.gridViewVM.printMode = this.printMode;\r\n\r\n EventBus.$on(RowShare.Event.GRID_SEARCH_CHANGED, (event: RowShare.GridSearchChangeEventParams) => {\r\n if(this.gridViewVM.gridApi) {\r\n this.gridViewVM.gridApi.setQuickFilter(event.searchText ?? '');\r\n if(event.saveValue) {\r\n this.gridViewVM.currentQuickFilter = event.searchText;\r\n }\r\n }\r\n });\r\n\r\n let app = document.getElementById('app');\r\n if(app) {\r\n this.gridViewVM.gridApi.setPopupParent(app);\r\n }\r\n setTimeout(() => {\r\n this.gridViewVM.tryRefreshTotalRow();\r\n\r\n var toolPanel = this.gridViewVM.gridApi?.getToolPanelInstance('charts');\r\n if(toolPanel) {\r\n var chartToolPanel = (toolPanel);\r\n if(chartToolPanel)\r\n chartToolPanel.onDataToChartChanged(this.gridViewVM.listVM);\r\n }\r\n }, 0);\r\n\r\n if (this.list?.Owned){ //no analysis panel if not owned\r\n\r\n }\r\n\r\n // Show rtc changes history only if owned list (admin)\r\n if (this.list.Owned) {\r\n this.sideBarConfig.toolPanels?.push(\r\n {\r\n id: 'history',\r\n labelDefault: this.$i18n.t('Rtc_HistorylPanel_TabLabel').toString(),\r\n labelKey: 'history',\r\n iconKey: 'history',\r\n toolPanel: 'HistoryToolPanel',\r\n width: 600,\r\n toolPanelParams: {\r\n a: \"\"\r\n }\r\n }\r\n );\r\n }\r\n\r\n // Don't show analysis on PROD and only if owned list and not OnPrem\r\n if ( !this.printMode && this.isNotOnPrem &&\r\n (document.location.hostname.includes('beta') || document.location.hostname.includes('rowsharedev')) &&\r\n (this.list && this.list.Owned)) {\r\n this.sideBarConfig.toolPanels?.push({\r\n id: 'analysis',\r\n labelDefault: this.$i18n.t('AnalysisToolPanel_TabLabel').toString(),\r\n labelKey: '',\r\n iconKey: '',\r\n toolPanel: 'AnalysisToolPanel',\r\n width: 600\r\n });\r\n EventBus.$on(RowShare.Event.LISTANALYSIS_SHOWRESULTS, (job: RowShare.Job) => this.onShowAnalysisResults(job))\r\n setTimeout(() => {\r\n if(this.list?.Id)\r\n {\r\n API.Job.loadLastAnalysisJob(this.list.Id)\r\n .then((result) => {\r\n if(result && result.IsValid && result.Value) {\r\n var job = result.Value;\r\n if(job.Status == RowShare.JobStatus.Finished) {\r\n EventBus.$emit(RowShare.Event.LISTANALYSIS_REFRESH, job);\r\n }\r\n }\r\n });\r\n }\r\n }, 0);\r\n }\r\n\r\n params.api.setSideBar(this.sideBarConfig);\r\n params.api.setSideBarVisible(true);\r\n this.gridViewVM.restoreVisibleToolPanel();\r\n this.gridViewVM.viewManager.onViewDataChanged();\r\n }\r\n\r\n onFirstDataRendered() {\r\n if(this.highlightRows) {\r\n var hRows: string[] = [];\r\n let moreRows = false;\r\n if(Utils.isArray(this.highlightRows)) {\r\n this.highlightRows.forEach(hlr => {\r\n if(hlr != 'more') {\r\n hRows.push(hlr);\r\n }\r\n else {\r\n moreRows = true;\r\n }\r\n });\r\n }\r\n else {\r\n hRows.push(this.highlightRows);\r\n }\r\n if(hRows.length > 0) {\r\n setTimeout(() => {\r\n this.gridViewVM.flashRows(hRows, moreRows);\r\n }, 0);\r\n }\r\n }\r\n }\r\n\r\n onShowAnalysisResults(job: RowShare.Job) {\r\n EventBus.$emit(RowShare.Event.LISTANALYSIS_REFRESH, job);\r\n setTimeout(() => {\r\n if(this.gridViewVM?.gridApi) {\r\n this.gridViewVM.gridApi.openToolPanel('analysis');\r\n }\r\n }, 0);\r\n }\r\n\r\n postProcessPopup(params: agGrid.PostProcessPopupParams) {\r\n if(params.type!==\"columnMenu\") {\r\n return;\r\n }\r\n var ePopup = params.ePopup;\r\n var oldTopStr = ePopup.style.top;\r\n oldTopStr = oldTopStr.substring(0, oldTopStr.indexOf('px'));\r\n var oldTop = parseInt(oldTopStr);\r\n var newTop = oldTop + 20;\r\n ePopup.style.top = newTop + 'px';\r\n }\r\n\r\n async onCellValueChanged(event: agGrid.CellValueChangedEvent){\r\n let rowVM = event.data;\r\n if(!rowVM)\r\n throw new Error(\"Missing row for save event\");\r\n\r\n (rowVM).cellValueChanged((event.colDef).rsColumn, event.newValue, event.oldValue);\r\n }\r\n\r\n handleCellEditing(event: agGrid.CellEditingStartedEvent | agGrid.CellEditingStoppedEvent, lockType: string) {\r\n if(event.column && event.rowIndex != undefined) {\r\n const row = this.gridViewVM.gridApi?.getDisplayedRowAtIndex(event.rowIndex);\r\n const rowId = row?.data.rsRow.Id;\r\n const colDef = (event.column).getColDef();\r\n if(rowId && colDef.colId) {\r\n RealTimeCollaborationModule.broadcast({\r\n \"type\": lockType,\r\n \"data\": {\r\n \"rowId\": rowId,\r\n \"columnId\": colDef.colId,\r\n \"backgroundColorIndex\" : `${UserModule.CurrentUser.Owner?.BackgroundColorIndex}`\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n onCellEditingStarted(event: agGrid.CellEditingStartedEvent) {\r\n this.handleCellEditing(event, RowShare.RealTimeCollaborationEventType.RowCellLock);\r\n }\r\n\r\n onCellEditingStopped(event: agGrid.CellEditingStoppedEvent) {\r\n this.handleCellEditing(event, RowShare.RealTimeCollaborationEventType.RowCellUnlock);\r\n }\r\n\r\n async onSelectionChanged(event: agGrid.SelectionChangedEvent) {\r\n EventBus.$emit(RowShare.Event.ROW_SELECTION_CHANGED, event);\r\n }\r\n\r\n async toggleMandatoryColumn(column: agGrid.Column) {\r\n if(!column){\r\n return;\r\n }\r\n let colVM = column.getColDef();\r\n if(colVM) {\r\n colVM.rsColumn.isMandatory = !colVM.rsColumn.isMandatory;\r\n colVM.rsColumn.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n API.Column.save(colVM.rsColumn).then(savedColumn => {\r\n if(savedColumn && this.gridViewVM.gridApi) {\r\n colVM.rsColumn = savedColumn;\r\n this.gridViewVM.gridApi.refreshHeader();\r\n }\r\n });\r\n }\r\n }\r\n\r\n onCellClicked(event: agGrid.CellClickedEvent) {\r\n let rsColumn = (event.colDef)?.rsColumn;\r\n let mouseEvent = event.event;\r\n\r\n if(!rsColumn || !mouseEvent) {\r\n return;\r\n }\r\n if(rsColumn.isEmail && (mouseEvent.ctrlKey || mouseEvent.metaKey) && event.value) {\r\n let email = '';\r\n if(rsColumn.isOwnerInfo) {\r\n if(Utils.validateEmail(event.value.ownerId)) {\r\n email = event.value.ownerId;\r\n }\r\n }\r\n else if(Utils.validateEmail(event.value)) {\r\n email = event.value;\r\n }\r\n if (email) {\r\n window.location.href = `mailto:${email}`;\r\n }\r\n }\r\n else if(rsColumn.isHyperlink && (mouseEvent.ctrlKey || mouseEvent.metaKey)) {\r\n let link = new RowShare.Hyperlink(event.value);\r\n if(link.url) {\r\n if(!link.url.startsWith('http'))\r\n window.open('http://' + link.url);\r\n else\r\n window.open(link.url);\r\n }\r\n }\r\n }\r\n\r\n onFilterChanged(event: agGrid.FilterChangedEvent){\r\n if(this.gridViewVM.displayedRowIds &&\r\n (this.gridViewVM.gridApi?.isColumnFilterPresent() || this.gridViewVM.gridApi?.isQuickFilterPresent())) {\r\n this.gridViewVM.clearAllSavedFilters();\r\n }\r\n\r\n RowShare.ListSettings.saveFilters(this.gridViewVM);\r\n this.gridViewVM.viewManager.onFilterChanged(event);\r\n this.gridViewVM.gridApi?.deselectAll();\r\n\r\n if(this.list.ShowTotals && this.gridViewVM.gridApi) {\r\n const totalRow = event.api.getPinnedBottomRow(0);\r\n if(totalRow)\r\n this.gridViewVM.gridApi.refreshCells({rowNodes: [totalRow] });\r\n }\r\n\r\n this.refreshDOM();\r\n\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this.gridViewVM);\r\n\r\n var toolPanel = this.gridViewVM.gridApi?.getToolPanelInstance('charts');\r\n if(toolPanel) {\r\n var chartToolPanel = (toolPanel);\r\n if(chartToolPanel)\r\n chartToolPanel.onDataToChartChanged(this.gridViewVM.listVM);\r\n }\r\n }\r\n\r\n onColumnRowGroupChanged(event: agGrid.ColumnRowGroupChangedEvent) {\r\n this.gridViewVM.onColumnRowGroupChanged(event);\r\n }\r\n\r\n onColumnValueChanged(event: agGrid.ColumnValueChangedEvent) {\r\n this.gridViewVM.onColumnValueChanged(event);\r\n }\r\n\r\n onSortChange(event: agGrid.SortChangedEvent){\r\n RowShare.ListSettings.saveSortOrder(this.gridViewVM);\r\n this.gridViewVM.viewManager.onSortChange(event);\r\n this.refreshDOM();\r\n }\r\n\r\n onColumnVisibleChanged(event: agGrid.ColumnVisibleEvent){\r\n this.gridViewVM.onColumnVisibleChanged(event);\r\n }\r\n\r\n onColumnGroupOpenedChanged(event: agGrid.ColumnGroupOpenedEvent) {\r\n this.gridViewVM.onColumnGroupOpenedChanged(event);\r\n }\r\n\r\n onRowGroupOpened(event: agGrid.RowGroupOpenedEvent) {\r\n if (!event || !event.node || !event.node.group) {\r\n return;\r\n }\r\n console.log(event)\r\n this.gridViewVM.onRowGroupOpenedChanged(event);\r\n }\r\n\r\n onRowDragEnd(event: agGrid.RowDragEndEvent){\r\n if(event?.node?.rowIndex == undefined || event?.node?.rowIndex == null)\r\n return;\r\n\r\n let nodeToMove : agGrid.IRowNode | undefined = event.node;\r\n let refNode = event.node.parent?.allLeafChildren[event.node.rowIndex + 1];\r\n\r\n if(!nodeToMove)\r\n return;\r\n\r\n if(refNode)\r\n (nodeToMove.data).moveBefore(refNode.data.rsRow.Id);\r\n else\r\n (nodeToMove.data).moveLast();\r\n }\r\n\r\n onRangeSelectionChanged() {\r\n EventBus.$emit(RowShare.Event.GRID_SELECTION_CHANGED, this.gridViewVM);\r\n }\r\n\r\n tabToNextCell(params: agGrid.TabToNextCellParams){\r\n if(params.nextCellPosition?.column.getColDef().cellEditor) {\r\n let row = this.gridViewVM.gridApi?.getDisplayedRowAtIndex(params.nextCellPosition.rowIndex);\r\n let rowId = row?.data.rsRow.Id;\r\n let colDef = params.nextCellPosition.column.getColDef();\r\n this.gridOptions.context['tabbedIntoCellEditor'] = rowId + '|' + colDef.colId;\r\n }\r\n\r\n return params.nextCellPosition\r\n }\r\n\r\n onRowVMsUpdated() {\r\n EventBus.$emit(RowShare.Event.GRID_INFOS_CHANGED, this.gridViewVM);\r\n }\r\n\r\n\r\n onToolPanelVisibleChanged(event: agGrid.ToolPanelVisibleChangedEvent) {\r\n RowShare.ListSettings.saveToolPanelsStatus(this.gridViewVM);\r\n }\r\n\r\n refreshDOM() {\r\n if(this.gridViewVM.gridApi) {\r\n this.gridViewVM.gridApi.redrawRows();\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowshareGrid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowshareGrid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RowshareGrid.vue?vue&type=template&id=12023ab4&\"\nimport script from \"./RowshareGrid.vue?vue&type=script&lang=ts&\"\nexport * from \"./RowshareGrid.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"620px\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('CommentDialog_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeModal}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_vm._v(\" \"),_c('v-card-text',{ref:\"commentContainer\",staticClass:\"comment-list\"},[_c('v-data-iterator',{attrs:{\"disable-pagination\":\"\",\"loading\":_vm.loadingComments,\"loading-text\":_vm.$t('CommentDialog_Loading'),\"hide-default-footer\":\"\",\"items\":_vm.commentsList},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t('CommentDialog_NoData')))])]},proxy:true},{key:\"default\",fn:function(props){return _vm._l((props.items),function(commentVM){return _c('v-list-item',{key:commentVM.comment.Id},[_c('v-row',{staticClass:\"mt-1\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":commentVM.deletionRequired ? 12 : 11}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-card',{attrs:{\"elevation\":\"2\"}},[_c('v-overlay',{staticClass:\"delete-overlay\",attrs:{\"absolute\":\"\",\"value\":commentVM.deletionRequired}},[_c('v-btn',{staticClass:\"text-none ma-2\",attrs:{\"text\":\"\",\"color\":\"white\",\"ripple\":false},on:{\"click\":function($event){return _vm.cancelDeletion(commentVM)}}},[_vm._v(_vm._s(_vm.$t('Action_Cancel')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none ma-2\",attrs:{\"ripple\":false,\"color\":\"error\"},on:{\"click\":function($event){return _vm.deleteComment(commentVM)}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")]),_vm._v(_vm._s(_vm.$t('Action_ConfirmDelete')))],1)],1),_vm._v(\" \"),_c('v-list-item',[_c('v-list-item-avatar',{staticClass:\"align-self-start mt-3\"},[_c('v-avatar',{class:`color${commentVM.comment.Owner.BackgroundColorIndex}`,attrs:{\"size\":\"40\"}},[_vm._v(\"\\n \"+_vm._s(commentVM.comment.Owner.Bigram)+\"\\n \")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(commentVM.comment.Owner.Name)+\" :\")]),_vm._v(\" \"),_c('v-list-item-subtitle',{staticClass:\"comment-content\",domProps:{\"innerHTML\":_vm._s(_vm.getCommentContent(commentVM.comment.Content))}})],1)],1)],1)],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mt-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-1 comment-date-created\"},[_c('span',{attrs:{\"title\":_vm.getCreatedDate(commentVM.comment.CreatedDate)}},[_vm._v(_vm._s(commentVM.comment.CreatedSince))])])],1)],1),_vm._v(\" \"),(!commentVM.deletionRequired)?_c('v-col',{attrs:{\"cols\":\"1\"}},[(commentVM.comment.Owned)?_c('v-row',{staticClass:\"mt-2\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-btn',{attrs:{\"icon\":\"\",\"ripple\":false,\"small\":\"\"},on:{\"click\":function($event){return _vm.requireDelete(commentVM)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")])],1)],1)],1):_vm._e()],1):_vm._e()],1)],1)})}}])})],1),_vm._v(\" \"),_c('v-card-actions',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.canComment),expression:\"canComment\"}]},[_c('v-textarea',{ref:\"commentInput\",attrs:{\"rows\":\"2\",\"outlined\":\"\",\"label\":_vm.commentInputLabel,\"append-icon\":\"fal fa-paper-plane\"},on:{\"keydown\":_vm.onKeydown,\"click:append\":_vm.addComment},model:{value:(_vm.message),callback:function ($$v) {_vm.message=$$v},expression:\"message\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport * as API from '@/api/Api';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport * as Models from '@/models/RowShare';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { DateTime } from '@/utils/Date';\r\nimport linkifyStr from 'linkify-string';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\n@Component({name: \"CommentEditorDialog\"})\r\nexport default class CommentEditorDialog extends Vue {\r\n commentsList: Array = [];\r\n rsRow!: Models.Row;\r\n rsColumn!: Models.Column;\r\n rsList!: Models.List;\r\n showMe: boolean = false;\r\n loadingComments: boolean = false;\r\n message: string = \"\";\r\n confirmDelete: boolean = false;\r\n currentUser: Models.User | null = null;\r\n scrollCommentsToBottom: boolean = false;\r\n refreshParentRow!: () => void;\r\n\r\n created() {\r\n EventBus.$on(Models.Event.ROW_EDIT_COMMENTS, (params : Models.rowEditCommentsEventParams) => this.init(params))\r\n }\r\n \r\n updated() {\r\n if(this.scrollCommentsToBottom) {\r\n let commContainer = this.$refs.commentContainer as HTMLElement;\r\n if(commContainer){\r\n commContainer.scrollTop = 9999;\r\n }\r\n this.scrollCommentsToBottom = false; \r\n }\r\n if(this.showMe) {\r\n this.$nextTick(() => {\r\n (this.$refs.commentInput)?.focus();\r\n });\r\n }\r\n }\r\n getCommentContent(content: string) {\r\n return linkifyStr(content, {target: '_blank'});\r\n }\r\n\r\n async init(params: Models.rowEditCommentsEventParams){\r\n this.currentUser = UserModule.connectedUser;\r\n this.rsRow = params.row\r\n this.rsColumn = params.column;\r\n this.rsList = params.list;\r\n this.refreshParentRow = params.refreshParentRow;\r\n \r\n if(this.rsRow && this.rsColumn) {\r\n this.loadingComments = true;\r\n this.showMe = true;\r\n let list = await API.Row.loadRowComments(this.rsRow.Id, this.rsColumn.Index)\r\n if(list){\r\n list.map(comm => this.commentsList.push(new commentVM(comm)));\r\n }\r\n this.scrollCommentsToBottom = true;\r\n this.loadingComments = false;\r\n }\r\n }\r\n\r\n closeModal() {\r\n this.showMe = false;\r\n }\r\n\r\n @Watch('showMe')\r\n onToggleVisibility() {\r\n this.commentsList = [];\r\n if(this.$vuetify.breakpoint.mobile) {\r\n let intercomBtn = (document.getElementsByClassName('intercom-launcher')?.item(0));\r\n if(intercomBtn) {\r\n this.showMe ? intercomBtn.style.display = 'none' : intercomBtn.style.display = 'unset';\r\n }\r\n }\r\n }\r\n\r\n get commentInputLabel() {\r\n return this.$i18n.t('CommentDialog_CommentInputLabel').toString();\r\n }\r\n\r\n async addComment() {\r\n if(!Utils.isNullOrWhiteSpace(this.message)) {\r\n let newComment = await API.Row.saveRowComment(this.rsRow.Id, this.rsColumn.Index, this.message, RealTimeCollaborationModule.connection.connectionId);\r\n if(newComment) {\r\n this.commentsList?.push(new commentVM(newComment));\r\n this.message = \"\";\r\n this.scrollCommentsToBottom = true;\r\n if(this.refreshParentRow != undefined){\r\n this.refreshParentRow();\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n onKeydown(event: KeyboardEvent){\r\n if((event.ctrlKey || event.metaKey) && event.keyCode == 13) {\r\n this.addComment();\r\n }\r\n }\r\n\r\n requireDelete(comm: commentVM) {\r\n comm.deletionRequired = true;\r\n }\r\n\r\n cancelDeletion(comm: commentVM){\r\n comm.deletionRequired = false;\r\n }\r\n\r\n deleteComment(comm: commentVM) {\r\n comm.comment.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n API.Row.deleteRowComment(comm.comment).then(deletedComment => {\r\n if(deletedComment) {\r\n let index = this.commentsList.indexOf(comm);\r\n if(index > -1) {\r\n this.commentsList.splice(index, 1);\r\n if(this.refreshParentRow != undefined){\r\n this.refreshParentRow();\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n get canComment() {\r\n if(this.currentUser && !this.currentUser.IsAnonymous){\r\n return this.rsList.Owned || !this.rsColumn.IsReadOnly;\r\n }\r\n return false;\r\n }\r\n\r\n getCreatedDate(date: string) {\r\n let creationDate = DateTime.parseDateTime(date, null);\r\n if(creationDate) {\r\n return creationDate.toLocaleString(navigator.language);\r\n }\r\n }\r\n}\r\n\r\nclass commentVM {\r\n comment!: Models.CommentDetails;\r\n deletionRequired: boolean = false;\r\n\r\n constructor(comment: Models.CommentDetails){\r\n this.comment = comment;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CommentEditorDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CommentEditorDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommentEditorDialog.vue?vue&type=template&id=c54a0528&scoped=true&\"\nimport script from \"./CommentEditorDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommentEditorDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommentEditorDialog.vue?vue&type=style&index=0&id=c54a0528&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 \"c54a0528\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"600\",\"content-class\":_vm.contentClass},model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_c('v-card',{staticClass:\"ma-0 pa-0\"},[_c('v-card-title',{staticClass:\"px-5\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('AddColumn_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('AddColumn_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_HelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-list-item-group',{attrs:{\"color\":\"primary\",\"mandatory\":\"\"},model:{value:(_vm.selectedCategory),callback:function ($$v) {_vm.selectedCategory=$$v},expression:\"selectedCategory\"}},_vm._l((_vm.columnTypeCategories),function(category){return _c('v-list-item',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:({el: '#'+category.Name, container:'.types-container',\n offset:-15,\n onStart: _vm.startAutoScrolling,\n onDone: _vm.doneAutoScrolling }),expression:\"{el: '#'+category.Name, container:'.types-container',\\n offset:-15,\\n onStart: startAutoScrolling,\\n onDone: doneAutoScrolling }\"}],key:category.Name,attrs:{\"value\":category.Name,\"dense\":\"\"}},[_c('v-list-item-content',{staticClass:\"category-item\"},[_vm._v(\"\\n \"+_vm._s(category.DisplayName)+\"\\n \")])],1)}),1)],1),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-row',{staticClass:\"ma-1\"},[_c('v-col',{staticClass:\"py-0\"},[_c('v-item-group',{staticClass:\"types-container px-3\",attrs:{\"id\":\"typesContainer\",\"active-class\":\"type-selected\"},on:{\"change\":_vm.onTypeSelected},model:{value:(_vm.selectedType),callback:function ($$v) {_vm.selectedType=$$v},expression:\"selectedType\"}},_vm._l((_vm.columnTypeCategories),function(category){return _c('v-row',{key:category.Name,staticClass:\"my-1\"},[_c('v-col',{staticClass:\"py-0\"},[_c('v-row',{staticClass:\"mt-1\",attrs:{\"align\":\"center\"}},[_c('v-divider',{attrs:{\"id\":category.Name}}),_vm._v(_vm._s(category.DisplayName)),_c('v-divider')],1),_vm._v(\" \"),_c('v-row',_vm._l((_vm.getTypesForCategory(category.Name)),function(type){return _c('v-col',{key:type.Name,attrs:{\"cols\":\"4\",\"align-self\":\"center\",\"justify-items\":\"center\"}},[_c('v-tooltip',{staticClass:\"d-flex mr-3\",attrs:{\"disabled\":type.HasRequiredSubscription,\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({},on),[_c('v-item',{attrs:{\"value\":type},scopedSlots:_vm._u([{key:\"default\",fn:function({active, toggle}){return [_c('v-card',{class:{'premiumfunction-menu': !type.HasRequiredSubscription, 'type-card' : true, 'pa-0': true, 'backgrounds' : true},attrs:{\"disabled\":!type.HasRequiredSubscription,\"elevation\":active ? 0 : 1,\"height\":\"110\",\"width\":\"115\",\"tile\":\"\"},on:{\"click\":toggle}},[_c('v-card-text',[_c('v-icon',{attrs:{\"disabled\":!type.HasRequiredSubscription,\"color\":\"primary\"}},[_vm._v(_vm._s(type.Icon))])],1),_vm._v(\" \"),_c('v-card-actions',{staticClass:\"type-name py-0\"},[_c('span',[_vm._v(_vm._s(type.DisplayName))])])],1)]}}],null,true)})],1)]}}],null,true)},[_vm._v(\" \"),_c('div',{staticClass:\"info-tooltip\"},[_vm._v(\"\\n \"+_vm._s(_vm.$i18n.t('ColumnTypeCategory_NoAccessToMetaData'))+\"\\n \")])])],1)}),1)],1)],1)}),1)],1)],1)],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"my-1 pa-1\"},[_c('v-col',[_c('v-text-field',{ref:\"txColumnTitle\",attrs:{\"hide-details\":\"auto\",\"outlined\":\"\",\"label\":_vm.$t('AddColumnDialog_ColumnTitleLabel'),\"prepend-inner-icon\":_vm.columnTitleIcon,\"error-messages\":_vm.errorMessage},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.onSubmit.apply(null, arguments)}},model:{value:(_vm.columnTitle),callback:function ($$v) {_vm.columnTitle=$$v},expression:\"columnTitle\"}})],1)],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(_vm._s(_vm.$t('AddColumnDialog_Cancel')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"loading\":_vm.addingColumn},on:{\"click\":_vm.onSubmit}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('AddColumnDialog_Add'))+\"\\n \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {ColumnTypes} from '@/utils/ColumnTypes';\r\nimport {Component, Prop, Vue, Watch} from 'vue-property-decorator';\r\nimport * as Models from '@/models/RowShare';\r\nimport * as API from '@/api/Api';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport ColumnVM from '@/viewModels/Table/columnVM';\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\nimport {Location as RouterLocation} from 'vue-router';\r\nimport {RowShareException} from '@/api/ApiUtils';\r\nimport {EventBus} from '@/modules/EventBus';\r\nimport {UserModule} from '@/store/UserStore';\r\nimport {Utils} from '@/utils/Utilities';\r\nimport {ListTreeModule} from '@/store/ListTreeStore';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\n@Component({name: \"AddColumnDialog\"})\r\nexport default class AddColumnDialog extends Vue{\r\n @Prop() list: Models.List | undefined;\r\n @Prop() gridViewVM!: GridViewVM\r\n\r\n columnTypes: Models.ColumnType[] = [];\r\n columnTypeCategories: Models.ColumnTypeCategory[] = [];\r\n showMe: boolean = false;\r\n selectedCategory: string = Models.ColumnTypeCategoryName.frequent;\r\n selectedType: Models.ColumnType | null = null;\r\n addingColumn: boolean = false;\r\n columnTitle: string = \"\";\r\n errorMessage: string = \"\";\r\n intersectionObserver!: IntersectionObserver;\r\n autoScrolling: boolean = false;\r\n insertBeforeColumnId: string | null = null;\r\n\r\n get frequentTypes() {\r\n return this.columnTypes.filter(type => type.isFrequent);\r\n }\r\n\r\n get contentClass(): string {\r\n return this.isInsertColumn ? \"insert-column-container\" : \"add-column-container\";\r\n }\r\n\r\n get isInsertColumn(): boolean {\r\n return !Utils.isNullOrWhiteSpace(this.insertBeforeColumnId);\r\n }\r\n\r\n get hasRowMetadataSubscription() {\r\n return ListTreeModule.currentOrganization?.HasRowMetadatas ?? false;\r\n }\r\n\r\n getTypesForCategory(category: string) {\r\n if(category == Models.ColumnTypeCategoryName.frequent) {\r\n return this.frequentTypes;\r\n }\r\n return this.columnTypes.filter(type => type.Category == category);\r\n }\r\n\r\n created() {\r\n EventBus.$on(Models.Event.ADD_COLUMN, (params: Models.AddColumnEventParams) => {\r\n this.insertBeforeColumnId = params.insertBeforeColumnId;\r\n this.showMe = true;\r\n });\r\n }\r\n\r\n destroy() {\r\n EventBus.$off(Models.Event.ADD_COLUMN);\r\n }\r\n\r\n @Watch('showMe')\r\n initModal() {\r\n this.columnTypeCategories = ColumnTypes.getColumnTypeCategories();\r\n this.columnTypes = ColumnTypes.getColumnTypes(UserModule.connectedUser?.PreviewFeaturesEnabled ?? false, this.hasRowMetadataSubscription);\r\n this.selectedType = null;\r\n this.columnTitle = \"\";\r\n this.selectedCategory = Models.ColumnTypeCategoryName.frequent;\r\n this.errorMessage = \"\";\r\n if(this.showMe) {\r\n this.$nextTick(() => {\r\n this.$scrollTo('#'+ Models.ColumnTypeCategoryName.frequent, {container: '.types-container', force: true, offset: -100});\r\n let rootElem = document.getElementById(\"typesContainer\");\r\n if(rootElem) {\r\n if(!this.intersectionObserver){\r\n this.intersectionObserver = new IntersectionObserver(\r\n this.onIntersect,\r\n {\r\n root: rootElem,\r\n rootMargin: \"0px 0px -85% 0px\"\r\n }\r\n );\r\n }\r\n this.columnTypeCategories.forEach(category => {\r\n let elem = document.getElementById(category.Name);\r\n if(elem) {\r\n this.intersectionObserver.observe(elem);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n if(this.intersectionObserver){\r\n this.intersectionObserver.disconnect();\r\n }\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.showMe = false;\r\n }\r\n\r\n onIntersect(entries: IntersectionObserverEntry[]) {\r\n if(this.autoScrolling) {\r\n return;\r\n }\r\n entries.forEach(entry => {\r\n if(entry.isIntersecting) {\r\n let target = entry.target;\r\n if(target) {\r\n this.selectedCategory = target.id;\r\n }\r\n }\r\n })\r\n }\r\n\r\n get rootTypesContainer() {\r\n return document.querySelector('.types-container');\r\n }\r\n\r\n onSubmit() {\r\n if(!this.list){\r\n return;\r\n }\r\n if(!this.selectedType) {\r\n this.errorMessage = this.$i18n.t('AddColumnDialog_ColumnTypeMandatory').toString();\r\n return;\r\n }\r\n if(!this.columnTitle) {\r\n this.errorMessage = this.$i18n.t('AddColumnDialog_ColumnTitleMandatory').toString();\r\n (this.$refs.txColumnTitle).focus();\r\n return;\r\n }\r\n this.addingColumn = true;\r\n let newColumn = new Models.Column();\r\n newColumn.ListId = this.list.Id;\r\n newColumn.DisplayName = this.columnTitle;\r\n newColumn.Type = this.selectedType.StrongType;\r\n newColumn.Options = this.selectedType.Options;\r\n newColumn.LookupValues = this.selectedType.values;\r\n newColumn.DefaultValue = this.selectedType.defaultValue;\r\n if(this.insertBeforeColumnId) {\r\n var rsColBefore = this.gridViewVM.columnApi?.getColumn(this.insertBeforeColumnId)?.getDefinition();\r\n var agCol = this.gridViewVM.columnApi?.getColumn(this.insertBeforeColumnId);\r\n if(agCol) {\r\n var rsColBeforeBefore = this.gridViewVM.columnApi?.getDisplayedColBefore(agCol)?.getDefinition();\r\n if(rsColBeforeBefore.rsColumn?.ColumnGroup === rsColBefore.rsColumn.ColumnGroup) {\r\n newColumn.ColumnGroup = rsColBefore.rsColumn.ColumnGroup;\r\n }\r\n }\r\n if(rsColBefore.rsColumn?.LeftPinned) {\r\n newColumn.LeftPinned = true;\r\n }\r\n }\r\n this.errorMessage = \"\";\r\n newColumn.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n API.Column.save(newColumn).then(addedColumn => {\r\n if(addedColumn && this.list && this.gridViewVM.gridApi && this.gridViewVM.columnApi) {\r\n let addColVM = new ColumnVM(this.list, addedColumn);\r\n let colDefs = this.gridViewVM.gridApi.getColumnDefs();\r\n if(!colDefs)\r\n return;\r\n\r\n if(addColVM.rsColumn.ColumnGroup) {\r\n var group = colDefs.find(cd => (cd)?.groupId === addColVM.rsColumn.ColumnGroup);\r\n if(group) {\r\n group.children.push(addColVM);\r\n }\r\n }\r\n else {\r\n colDefs.push(addColVM);\r\n }\r\n this.gridViewVM.listVM.columns?.push(addedColumn);\r\n this.gridViewVM.gridApi.setColumnDefs(colDefs);\r\n if(this.insertBeforeColumnId) {\r\n var agCol = this.gridViewVM.columnApi.getColumn(addColVM.colId);\r\n var agColBefore = this.gridViewVM.columnApi.getColumn(this.insertBeforeColumnId);\r\n var agColBeforeIndex = this.gridViewVM.columnApi.getAllGridColumns().findIndex(c => c.getColId() == this.insertBeforeColumnId);\r\n if(agCol && agColBeforeIndex > -1) {\r\n this.gridViewVM.columnApi.moveColumn(agCol, agColBeforeIndex);\r\n }\r\n if(agCol && agColBefore && agColBefore.isPinned()) {\r\n this.gridViewVM.columnApi.setColumnPinned(agCol, 'left');\r\n }\r\n }\r\n this.addingColumn = false;\r\n this.showMe = false;\r\n if(this.selectedType?.mustBeConfigured){\r\n setTimeout(() => {\r\n if(this.list?.Id) {\r\n EventBus.$emit(Models.Event.SHOW_SIDEPANEL_COLUMN_SETTINGS, \r\n {columnId: addColVM.colId, listId: this.list?.Id});\r\n }\r\n });\r\n }\r\n if(this.selectedType?.mustRefreshValuesFromServer) {\r\n this.gridViewVM.listVM.refreshRowsFromServer();\r\n }\r\n let column = this.gridViewVM.columnApi.getColumn(addColVM.colId);\r\n if(column) {\r\n this.gridViewVM.gridApi.ensureColumnVisible(addColVM.colId ?? \"\");\r\n this.gridViewVM.gridApi.refreshCells({ columns: [column], force: true});\r\n this.gridViewVM.gridApi.redrawRows();\r\n EventBus.$emit(Models.Event.GRID_INFOS_CHANGED, this.gridViewVM);\r\n }\r\n }\r\n }).catch(ex => {\r\n let rsExc = ex as RowShareException;\r\n this.errorMessage = rsExc.message;\r\n this.addingColumn = false;\r\n });\r\n }\r\n\r\n onTypeSelected() {\r\n if(this.selectedType){\r\n this.errorMessage = \"\";\r\n this.$nextTick(() => (this.$refs.txColumnTitle).focus());\r\n }\r\n }\r\n\r\n get columnTitleIcon(): string {\r\n if(this.selectedType) {\r\n return this.selectedType.Icon;\r\n }\r\n return \"fal fa-fw\";\r\n }\r\n\r\n startAutoScrolling(elem: any) {\r\n this.autoScrolling = true;\r\n }\r\n\r\n doneAutoScrolling() {\r\n this.autoScrolling = false;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AddColumnDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AddColumnDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddColumnDialog.vue?vue&type=template&id=6a8c1db8&scoped=true&\"\nimport script from \"./AddColumnDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddColumnDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddColumnDialog.vue?vue&type=style&index=0&id=6a8c1db8&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 \"6a8c1db8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"720\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"px-5\"},[_vm._v(\"\\n \"+_vm._s(_vm.dialogTitle)+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),(!_vm.$vuetify.breakpoint.mobile)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('RowMergeDialog_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(_vm.isTestMode)?_c('v-card-text',[_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeDialog_Test_ModelNameTemplate',[_vm.selectedReport.DisplayName]))+\"\\n \")]):(_vm.hasReports)?_c('v-card-text',[_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeDialog_ChooseTemplate'))+\"\\n \"),_c('v-select',{attrs:{\"disabled\":_vm.disableTemplateChoice,\"loading\":_vm.loadingReports,\"dense\":\"\",\"outlined\":\"\",\"item-text\":\"DisplayName\",\"return-object\":\"\",\"items\":_vm.reportList},model:{value:(_vm.selectedReport),callback:function ($$v) {_vm.selectedReport=$$v},expression:\"selectedReport\"}})],1):_c('v-card-text',{staticClass:\"no-template\"},[_c('v-img',{staticClass:\"mb-4\",attrs:{\"src\":require(\"@/assets/static/images/img_empty_rowmerge.svg\"),\"contain\":\"\",\"max-height\":\"172\"}}),_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeDialog_NoTemplate'))+\"\\n \")],1),_vm._v(\" \"),(_vm.hasReports)?_c('v-card-text',[(_vm.showCopiedToColumn)?_c('div',{staticClass:\"rounded-md pa-4 success lighten-2 mb-3 rowmerge-success\"},[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"small\":\"\",\"color\":\"success\"}},[_vm._v(\"far fa-check-circle\")]),_vm._v(\" \"),_c('span',{staticClass:\"ma-0 font-weight-normal success--text\"},[_vm._v(_vm._s(_vm.$t('RowMergeDialog_ShowCopiedToColumn')))])],1):(!_vm.destinationColumnIsDeleted && !_vm.destinationColumnIsReadOnly && !_vm.destinationRowIsReadOnly)?_c('div',{staticClass:\"rounded-md pa-4 primary lighten-2 mb-3 rowmerge-info\"},[_c('div',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-info-circle\")]),_vm._v(\" \"),_c('span',{staticClass:\"ma-0 font-weight-normal primary--text\"},[_vm._v(_vm._s(_vm.rowCountMessage))])],1)]):_vm._e(),_vm._v(\" \"),(_vm.destinationColumnIsDeleted)?_c('div',{staticClass:\"rounded-md pa-4 lighten-2 mb-3 error rowmerge-error\"},[_c('div',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"far fa-times-circle\")]),_vm._v(\" \"),_c('span',{staticClass:\"ma-0 font-weight-normal error--text\"},[_vm._v(_vm._s(_vm.$t('RowMergeDialog_DestinationColumnNotFound')))])],1)]):_vm._e(),_vm._v(\" \"),(_vm.destinationColumnIsReadOnly)?_c('div',{staticClass:\"rounded-md pa-4 lighten-2 mb-3 error\"},[_c('div',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"far fa-times-circle\")]),_vm._v(\" \"),_c('span',{staticClass:\"ma-0 font-weight-normal error--text\"},[_vm._v(_vm._s(_vm.$t('RowMergeDialog_DestinationColumnIsReadOnly')))])],1)]):_vm._e(),_vm._v(\" \"),(_vm.destinationRowIsReadOnly)?_c('div',{staticClass:\"rounded-md pa-4 lighten-2 mb-3 error\"},[_c('div',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"far fa-times-circle\")]),_vm._v(\" \"),_c('span',{staticClass:\"ma-0 font-weight-normal error--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeDialog_DestinationRowIsReadOnly'))+\"\\n \")])],1)]):_vm._e(),_vm._v(\" \"),(_vm.hasTooManyRows)?_c('div',{staticClass:\"rounded-md pa-4 mb-3 secondary lighten-2 rowmerge-warning\"},[_c('div',[_c('v-icon',{staticClass:\"mr-3\",attrs:{\"small\":\"\",\"color\":\"secondary\"}},[_vm._v(\"fal fa-exclamation-triangle\")]),_vm._v(\" \"),_c('span',{staticClass:\"ma-0 font-weight-normal secondary--text\"},[_vm._v(_vm._s(_vm.tooManyRowsWarning))])],1)]):_vm._e(),_vm._v(\" \"),(_vm.canManageReports)?_c('div',{staticClass:\"mb-2\"},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"link\":\"\",\"plain\":\"\",\"href\":`/tjf/${_vm.currentList.Id}`}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeDialog_ManageReports'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.canShowMyDocuments)?_c('div',[_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"link\":\"\",\"plain\":\"\",\"to\":{name: 'MyDocuments'}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeDialog_MyDocuments'))+\"\\n \")])],1):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.hasReports)?_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(_vm._s(_vm.$t('Common_Close')))]),_vm._v(\" \"),(_vm.showGenerateButton)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"width\":\"150\",\"loading\":_vm.processingReport,\"disabled\":_vm.disableGenerateButton,\"color\":\"primary\"},on:{\"click\":_vm.generate},scopedSlots:_vm._u([{key:\"loader\",fn:function(){return [_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"width\":\"2\",\"size\":\"24\",\"indeterminate\":\"\"}}),_vm._v(\"\\n \"+_vm._s(_vm.jobStatus)+\"\\n \")]},proxy:true}],null,false,4254450845)},[_vm._v(\"\\n \"+_vm._s(_vm.generateButtonTitle)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showDownloadButton)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"download\":\"\",\"color\":\"primary\",\"href\":_vm.documentUrl}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-download\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeDialog_Download'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.hasJobError)?_c('p',{staticClass:\"text-none error--text ma-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.jobStatus)+\"\\n \")]):_vm._e()],1):(_vm.canManageReports)?_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"href\":`/tjf/${_vm.currentList.Id}`}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeDialog_ManageReports'))+\"\\n \")]),_vm._v(\" \"),_c('v-spacer')],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport * as api from '@/api/Api';\r\nimport * as models from '@/models/RowShare';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { ApplicationModule } from '@/store/ApplicationStore';\r\nimport ListDisplayModeVM from '@/viewModels/Table/listDisplayModeVM';\r\n\r\n@Component({name: 'RowMergeDialog'})\r\nexport default class RowMergeDialog extends Vue {\r\n @Prop() currentList!: models.List;\r\n @Prop() displayModeVM!: ListDisplayModeVM\r\n // @Prop() generationContext!: models.ReportGenerationContext; // Récupérer depuis l'event\r\n // @Prop() defaultReportId!: string;\r\n\r\n lastInitialisedListId : string | null = null;\r\n\r\n showDialog: boolean = false;\r\n loadingReports: boolean = false;\r\n reportList: models.Report[] = [];\r\n selectedReport: models.Report | null = null;\r\n processingReport: boolean = false;\r\n currentJob: models.Job | null = null;\r\n disableTemplateChoice: boolean = false;\r\n generationContext: models.ReportGenerationContext | null = null;\r\n defaultReportId: string | null = null;\r\n currentFileTypeColumns: models.Column[] | null = [];\r\n destinationColumnIsDeleted: boolean = false;\r\n destinationColumnIsReadOnly: boolean = false;\r\n destinationRowIsReadOnly: boolean = false;\r\n disableGenerateButton: boolean = false;\r\n rowDestinationOutputMessage: string | null = null;\r\n \r\n created() {\r\n EventBus.$on(models.Event.ROWMERGE_REQUEST, this.executeRowMergeRequest);\r\n this.initReportsList();\r\n }\r\n\r\n async loadColumns(){\r\n await api.Column.loadForList(this.currentList.Id).then(cols => this.currentFileTypeColumns = cols)\r\n if (this.currentFileTypeColumns !== null){\r\n this.currentFileTypeColumns = this.currentFileTypeColumns.filter((col: models.Column) => {\r\n return col.Type === models.ColumnStrongType.File;\r\n });\r\n }\r\n }\r\n\r\n @Watch('showDialog')\r\n initDialog() {\r\n this.currentJob = null;\r\n this.processingReport = false;\r\n this.disableTemplateChoice = false;\r\n this.destinationColumnIsDeleted = false;\r\n this.destinationColumnIsReadOnly = false;\r\n this.destinationRowIsReadOnly = false;\r\n this.disableGenerateButton = false;\r\n if(this.isTestMode) {\r\n var reportIndex = this.reportList.findIndex(rl => rl.Id === this.generationContext?.reportId);\r\n if(reportIndex > -1) {\r\n this.selectedReport = this.reportList[reportIndex];\r\n this.disableTemplateChoice = true;\r\n }\r\n }\r\n if(this.showDialog){\r\n this.validateSelectedReport();\r\n }\r\n }\r\n\r\n @Watch('currentList')\r\n initReportsList() {\r\n if(this.currentList && (this.lastInitialisedListId == null || this.lastInitialisedListId != this.currentList.Id)) {\r\n this.lastInitialisedListId = this.currentList.Id;\r\n this.loadingReports = true;\r\n api.Report.loadByList(this.currentList.Id, {cache: false}).then((reports: models.Report[] | null ) => {\r\n if(reports) { \r\n this.reportList = reports.filter((r: models.Report) => {\r\n if(this.defaultReportId) {\r\n return r.Id === this.defaultReportId\r\n }\r\n else {\r\n return (r.Published && !r.hasConversionError)\r\n }\r\n });\r\n this.loadingReports = false;\r\n if(this.reportList.length > 0) {\r\n this.selectedReport = this.reportList[0];\r\n }\r\n let capabilities = ListTreeModule.currentListCapabilities;\r\n if(!capabilities) {\r\n capabilities = new models.ListCapabilities();\r\n }\r\n capabilities.rowMerge = (this.hasReports || this.currentList.Owned);\r\n ListTreeModule.updateCurrentListCapabilities(capabilities);\r\n }\r\n });\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.showDialog = false;\r\n }\r\n\r\n @Watch('selectedReport')\r\n async validateSelectedReport() {\r\n this.destinationColumnIsDeleted = false;\r\n this.destinationColumnIsReadOnly = false;\r\n this.destinationRowIsReadOnly = false;\r\n this.rowDestinationOutputMessage = this.$i18n.t('RowMergeDialog_DownloadAsFileDestinationPlaceMessage').toString();\r\n\r\n if (this.selectedReport?.OutputDestinationType === models.OutputDestinationType.CopyToColumn) {\r\n //TODO: Voir comment éviter un appel API alors qu'on a les colonnes dans ListVM\r\n //step1: columns verification\r\n await this.loadColumns();\r\n let found = false;\r\n this.currentFileTypeColumns?.forEach((col: models.Column) => {\r\n if(col.Id === this.selectedReport?.OutputDestinationId){\r\n found = true;\r\n this.destinationColumnIsReadOnly = col.IsReadOnly;\r\n //TODO: Ajouter un paramètre à la chaine de traduction\r\n this.rowDestinationOutputMessage = this.$i18n.t('RowMergeDialog_DestinationPlaceMessage', {columnName: col.DisplayName}).toString();\r\n }\r\n });\r\n\r\n if(this.destinationColumnIsReadOnly){\r\n this.disableGenerateButton = true;\r\n return;\r\n }\r\n\r\n if (!found){\r\n this.destinationColumnIsDeleted = true;\r\n this.disableGenerateButton = true;\r\n return;\r\n }\r\n //step 2: rows verification\r\n if(this.generationContext?.hasReadOnlyRows) {\r\n this.destinationRowIsReadOnly = true;\r\n this.disableGenerateButton = true;\r\n return;\r\n }\r\n }\r\n\r\n this.disableGenerateButton = false;\r\n }\r\n\r\n async generate() {\r\n if(!this.selectedReport){\r\n return;\r\n }\r\n\r\n this.disableTemplateChoice = true;\r\n const rows = this.generationContext ? this.generationContext.rowIds : null;\r\n if(this.isTestMode && this.generationContext) {\r\n return api.Report.test(this.generationContext.reportId, this.generationContext.outputFormat)\r\n .then(job => this.startMonitoringJob(job));\r\n }\r\n return api.Report.createJob(this.selectedReport.Id, this.selectedReport.OutputFormat, rows)\r\n .then(result => {\r\n if(result?.IsValid) {\r\n let job = result.Value;\r\n this.startMonitoringJob(job);\r\n }\r\n });\r\n }\r\n\r\n startMonitoringJob(job: models.Job | null) {\r\n if(job == null) {\r\n return;\r\n }\r\n this.processingReport = true;\r\n this.currentJob = new models.Job();\r\n Object.assign(this.currentJob, job);\r\n if(this.currentJob) {\r\n this.currentJob.updateStatusAsync(1000, this.onJobUpdated);\r\n }\r\n this.$emit('JobStarted', job);\r\n }\r\n\r\n onJobUpdated(job: models.Job) {\r\n if(job?.Type === models.JobType.ListReport && this.selectedReport?.OutputDestinationType === models.OutputDestinationType.CopyToColumn &&\r\n job?.Status === models.JobStatus.Finished && this.displayModeVM && this.generationContext?.rowIds) {\r\n \r\n api.Row.loadMultiple(this.generationContext.rowIds)\r\n .then(result => {\r\n if(result?.IsValid) {\r\n this.displayModeVM.updateRowsInUI(result.Value);\r\n }\r\n });\r\n }\r\n }\r\n\r\n executeRowMergeRequest(context: models.ReportGenerationContext) {\r\n if(context == undefined) {\r\n return;\r\n }\r\n this.generationContext = context;\r\n this.showDialog = true;\r\n }\r\n\r\n get isTestMode(): boolean {\r\n return this.generationContext?.testMode ?? false;\r\n }\r\n\r\n get hasReports() {\r\n return this.reportList && this.reportList.length > 0;\r\n }\r\n\r\n get generateButtonTitle() {\r\n if(this.isTestMode) {\r\n return this.$i18n.t('RowMerge_Report_Test').toString();\r\n }\r\n else {\r\n return this.$i18n.t('RowMergeDialog_Generate').toString();\r\n }\r\n }\r\n\r\n get dialogTitle() {\r\n if(this.isTestMode) {\r\n return this.$i18n.t('RowMerge_Report_TestTitle').toString();\r\n }\r\n if(this.hasReports) {\r\n return this.$i18n.t('RowMergeDialog_Title').toString();\r\n }\r\n else {\r\n return this.$i18n.t('RowMergeDialog_NoTemplateTitle').toString();\r\n }\r\n }\r\n\r\n get rowCountMessage(): string {\r\n let rowCount = this.selectedRowsCount;\r\n let message = \"\";\r\n\r\n if(this.isTestMode) {\r\n message = this.$i18n.t('RowMerge_Report_TestDescription').toString();\r\n }\r\n else if (rowCount == null) { \r\n message = this.$i18n.t(\"RowMergeDialog_UnknownRowCount\", {rowCount: rowCount}).toString();\r\n } else if ((this.generationContext?.rowIds?.length ?? 0) > 0) {\r\n if (rowCount > 1) {\r\n message = this.$i18n.t(\"RowMergeDialog_ManyRowsSelection\", {rowCount: rowCount}).toString();\r\n } else {\r\n message = this.$i18n.t(\"RowMergeDialog_OneRowSelection\", {rowCount: rowCount}).toString();\r\n }\r\n } else {\r\n if (rowCount > 1) {\r\n message = this.$i18n.t(\"RowMergeDialog_WholeTable\", {rowCount: rowCount}).toString();\r\n } else if (rowCount == 1) {\r\n message = this.$i18n.t(\"RowMergeDialog_WholeTableOneRow\", {rowCount: rowCount}).toString();\r\n } else {\r\n message = this.$i18n.t(\"RowMergeDialog_UnknownRowCount\", {rowCount: rowCount}).toString();\r\n }\r\n }\r\n\r\n //TODO: Voir si on peut faire mieux que concaténer deux chaines\r\n return `${message} ${this.rowDestinationOutputMessage}`;\r\n }\r\n\r\n get selectedRowsCount(): number {\r\n if(this.generationContext) {\r\n if((this.generationContext.rowIds?.length ?? 0) > 0) {\r\n return this.generationContext.rowIds?.length ?? 0;\r\n }\r\n else\r\n {\r\n return this.generationContext.totalTableRowCount;\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n get hasTooManyRows(): boolean {\r\n return this.selectedRowsCount > 2000;\r\n }\r\n\r\n get tooManyRowsWarning(): string {\r\n if(this.hasTooManyRows) {\r\n return this.$i18n.t('RowMergeDialog_TooManyRows').toString();\r\n }\r\n return \"\";\r\n }\r\n\r\n get canManageReports(): boolean {\r\n return (this.currentList?.Owned ?? false) && this.defaultReportId == null && !ApplicationModule.isMsTeamsApp && !this.isTestMode;\r\n }\r\n\r\n get canShowMyDocuments(): boolean {\r\n return !this.isTestMode && !ApplicationModule.isMsTeamsApp;\r\n }\r\n\r\n get jobStatus(): string {\r\n if(!this.currentJob) {\r\n return \"\";\r\n }\r\n return models.Job.getStatusString(this.currentJob.Status);\r\n }\r\n\r\n get hasJobError(): boolean {\r\n if(this.currentJob?.Status) {\r\n return this.currentJob.Status === models.JobStatus.Error;\r\n }\r\n return false;\r\n }\r\n\r\n get showGenerateButton(): boolean {\r\n return !this.currentJob || !this.currentJob.hasFinished;\r\n }\r\n\r\n get documentUrl(): string {\r\n if(this.currentJob?.OutputFilePath) {\r\n return \"/\" + this.currentJob.OutputFilePath;\r\n }\r\n return \"\";\r\n }\r\n\r\n get showDownloadButton(): boolean {\r\n if(this.currentJob) {\r\n return this.currentJob.hasFinished && !this.hasJobError && this.selectedReport?.OutputDestinationType === models.OutputDestinationType.DownloadFile;\r\n }\r\n return false;\r\n }\r\n\r\n get showCopiedToColumn(): boolean {\r\n if(this.currentJob) {\r\n return this.currentJob.hasFinished && !this.hasJobError && this.selectedReport?.OutputDestinationType === models.OutputDestinationType.CopyToColumn;\r\n }\r\n return false;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowMergeDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowMergeDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RowMergeDialog.vue?vue&type=template&id=e5b94a4a&scoped=true&\"\nimport script from \"./RowMergeDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RowMergeDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RowMergeDialog.vue?vue&type=style&index=0&id=e5b94a4a&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 \"e5b94a4a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"600\"},on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2 mb-1\",attrs:{\"primary-title\":\"\"}},[(_vm.chart.Type != undefined)?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"large\":\"\"}},[_vm._v(_vm._s(_vm.chartTypeIcon))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"title\"},[_c('div',[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('div',{staticClass:\"v-card__subtitle pa-0 grey--text\"},[_vm._v(_vm._s(_vm.listName))])]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('ChartsConfiguration_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(_vm.currentStep==1)?_c('v-card-text',[_c('h3',{staticClass:\"subtitle\"},[_vm._v(_vm._s(_vm.$t('Charts_ChooseType')))])]):_vm._e(),_vm._v(\" \"),(_vm.currentStep==2)?_c('v-card-text',[(_vm.isScatter)?_c('h3',{staticClass:\"subtitle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_ConfigureScatter'))+\"\\n \")]):_c('h3',{staticClass:\"subtitle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_ChooseRowGrouping'))+\"\\n \")])]):_vm._e(),_vm._v(\" \"),(_vm.currentStep==1)?_c('v-card-text',{staticClass:\"align-center\"},[_c('v-radio-group',{staticClass:\"px-0 type-selector\",attrs:{\"active-class\":\"type-selected\",\"dense\":\"\",\"row\":\"\"},model:{value:(_vm.chart.Type),callback:function ($$v) {_vm.$set(_vm.chart, \"Type\", $$v)},expression:\"chart.Type\"}},[_c('v-radio',{attrs:{\"value\":4},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('v-icon',{staticClass:\"chart-type--icon\"},[_vm._v(\"fasl fa-chart-pie\")])]},proxy:true}],null,false,98120263)}),_vm._v(\" \"),_c('v-radio',{attrs:{\"value\":1},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('v-icon',{staticClass:\"chart-type--icon\"},[_vm._v(\"fasl fa-chart-column\")])]},proxy:true}],null,false,1001114605)}),_vm._v(\" \"),_c('v-radio',{attrs:{\"value\":0},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('v-icon',{staticClass:\"chart-type--icon\"},[_vm._v(\"fasl fa-chart-line\")])]},proxy:true}],null,false,2115668213)}),_vm._v(\" \"),_c('v-radio',{attrs:{\"value\":2},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('v-icon',{staticClass:\"chart-type--icon\"},[_vm._v(\"fasl fa-chart-area\")])]},proxy:true}],null,false,1871993836)})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentStep==2)?_c('v-card-text',{staticClass:\"align-center\"},[(_vm.isScatter)?_c('div',[_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_ChooseScatterYColumn'))+\"\\n \")]),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"9\"}})],1)],1):_c('div',[_c('v-row',{staticClass:\"pa-0 my-1\",attrs:{\"no-gutters\":\"\",\"align\":\"end\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_ChooseYColumn'))+\"\\n \")]),_vm._v(\" \"),_c('v-col',{staticClass:\"choice\",attrs:{\"cols\":_vm.canChooseYColumn ? 4 : 6}},[_c('v-select',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"items\":_vm.aggregationFunctions,\"item-text\":\"name\",\"item-value\":\"aggregationFunction\",\"return-object\":\"\"},model:{value:(_vm.selectedAggregationFunction),callback:function ($$v) {_vm.selectedAggregationFunction=$$v},expression:\"selectedAggregationFunction\"}})],1),_vm._v(\" \"),(_vm.canChooseYColumn)?_c('v-col',{staticClass:\"pl-1 center-text\",attrs:{\"cols\":\"1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_OfYColumn'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.canChooseYColumn)?_c('v-col',{staticClass:\"choice\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"item-text\":\"Name\",\"item-value\":\"Id\",\"items\":_vm.yColumnSelection,\"return-object\":\"\"},model:{value:(_vm.selectedYColumn),callback:function ($$v) {_vm.selectedYColumn=$$v},expression:\"selectedYColumn\"}})],1):_vm._e()],1),_vm._v(\" \"),_c('v-row',{staticClass:\"pa-0 my-1\",attrs:{\"no-gutters\":\"\",\"align\":\"end\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_ChooseXColumn'))+\"\\n \")]),_vm._v(\" \"),_c('v-col',{staticClass:\"choice\",attrs:{\"cols\":\"9\"}},[_c('v-select',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"item-text\":\"Name\",\"item-value\":\"Id\",\"items\":_vm.xColumnSelection,\"return-object\":\"\"},model:{value:(_vm.selectedXColumn),callback:function ($$v) {_vm.selectedXColumn=$$v},expression:\"selectedXColumn\"}})],1)],1),_vm._v(\" \"),(_vm.showDateGroupingSelector)?_c('v-row',{staticClass:\"pa-0 my-2\",attrs:{\"no-gutters\":\"\",\"align\":\"end\"}},[_c('v-col',{attrs:{\"cols\":\"1\"}}),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_ChooseDateGrouping'))+\"\\n \")]),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('v-select',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"item-text\":\"name\",\"items\":_vm.dateGroupingUnits,\"return-object\":\"\"},model:{value:(_vm.selectedDateGroupingUnit),callback:function ($$v) {_vm.selectedDateGroupingUnit=$$v},expression:\"selectedDateGroupingUnit\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.canSelectSplitColumn)?_c('v-row',{staticClass:\"pa-0 my-1\",attrs:{\"no-gutters\":\"\",\"align\":\"end\"}},[_c('v-col',{attrs:{\"cols\":\"1\"}}),_vm._v(\" \"),_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"3\"}},[_c('v-checkbox',{attrs:{\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_ChooseSplitColumn'))+\"\\n \")]},proxy:true}],null,false,3838518654),model:{value:(_vm.selectSplitColumn),callback:function ($$v) {_vm.selectSplitColumn=$$v},expression:\"selectSplitColumn\"}})],1),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-select',{attrs:{\"hide-details\":\"\",\"disabled\":!_vm.selectSplitColumn,\"dense\":\"\",\"item-text\":\"Name\",\"item-value\":\"Id\",\"items\":_vm.splitColumnSelection},model:{value:(_vm.selectedSplitColumn),callback:function ($$v) {_vm.selectedSplitColumn=$$v},expression:\"selectedSplitColumn\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.canChooseStacked)?_c('v-row',{staticClass:\"pa-0 my-1\",attrs:{\"no-gutters\":\"\",\"align\":\"end\"}},[_c('v-col',{attrs:{\"cols\":\"1\"}}),_vm._v(\" \"),_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"3\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_ChooseStackOptions'))+\"\\n \")]),_vm._v(\" \"),_c('v-col',{staticClass:\"choice\",attrs:{\"cols\":\"8\"}},[_c('v-radio-group',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"row\":\"\"},model:{value:(_vm.selectedStackOption),callback:function ($$v) {_vm.selectedStackOption=$$v},expression:\"selectedStackOption\"}},[_c('v-radio',{attrs:{\"value\":0},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_Groupped'))+\"\\n \")]},proxy:true}],null,false,4225972745)}),_vm._v(\" \"),_c('v-radio',{attrs:{\"value\":1},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_Stacked'))+\"\\n \")]},proxy:true}],null,false,3178090440)})],1)],1)],1):_vm._e()],1)]):_vm._e(),_vm._v(\" \"),_c('v-card-actions',[(_vm.currentStep > 1)?_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.previousStep()}}},[_vm._v(_vm._s(_vm.$t('Charts_Previous')))]):_vm._e(),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.currentStep < _vm.steps)?_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.chart.Type == undefined},on:{\"click\":function($event){return _vm.nextStep()}}},[_vm._v(_vm._s(_vm.$t('Charts_Next')))]):_vm._e(),_vm._v(\" \"),(_vm.currentStep == _vm.steps)?_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.canCreateChart,\"loading\":_vm.savingChart},on:{\"click\":function($event){return _vm.createChart()}}},[_vm._v(_vm._s(_vm.saveBtnLabel))]):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ChartAggregationFunction, chartAggregationFunctionItem, ChartDateGroupingUnit, chartDateGroupingUnitItem, ChartParameters, ChartStackedType, ChartType } from '@/models/Chart';\r\nimport * as API from '@/api/Api';\r\nimport { Vue, Prop, Component, Watch } from 'vue-property-decorator';\r\nimport { Chart, Column, Event, maximizeChartEventParams } from '@/models/RowShare';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\n\r\n@Component({name: 'chartConfigurationDialog'})\r\nexport default class chartConfigurationDialog extends Vue {\r\n chartId!: string;\r\n showMe: boolean = false;\r\n @Prop() listVM!: ListVM;\r\n @Prop() gridViewVM!: GridViewVM | undefined | null;\r\n\r\n chartParams: ChartParameters = new ChartParameters();\r\n chart: Chart = new Chart();\r\n currentStep: number = 1;\r\n steps: number = 2;\r\n selectedAggregationFunction: chartAggregationFunctionItem | null = null;\r\n selectedXColumn: Column | null = null;\r\n selectedYColumn: Column | null = null;\r\n selectedSplitColumn: string | null = null;\r\n selectedDateGroupingUnit: chartDateGroupingUnitItem | null = null;\r\n selectedStackOption: number | null = null;\r\n\r\n yColumnSelection: Column[] = [];\r\n selectSplitColumn: boolean = false;\r\n savingChart: boolean = false;\r\n editMode: boolean = false;\r\n\r\n created() {\r\n EventBus.$on(Event.ADD_NEW_CHART, this.init)\r\n EventBus.$on(Event.EDIT_CHART, this.init);\r\n }\r\n\r\n destroy() {\r\n EventBus.$off([Event.ADD_NEW_CHART, Event.EDIT_CHART]);\r\n }\r\n\r\n async init(chartToEdit: Chart | null = null) {\r\n if(chartToEdit) {\r\n this.editMode = true;\r\n this.chart = chartToEdit;\r\n Object.assign(this.chartParams, JSON.parse(chartToEdit.Data));\r\n this.chartId = chartToEdit.Id;\r\n this.currentStep = 2;\r\n this.selectedAggregationFunction = this.aggregationFunctions.find((af) => af.aggregationFunction == this.chartParams?.YAggregationFunction) ?? null;\r\n this.selectedXColumn = this.columns.find(c => c.Id == this.chartParams.XColumnId) ?? null;\r\n this.selectedYColumn = this.columns.find(c => c.Id == this.chartParams.YColumnId) ?? null;\r\n this.selectedSplitColumn = this.chartParams.SplitColumnId ?? null;\r\n if(this.chartParams.SplitColumnId??'' !== '') {\r\n this.selectSplitColumn = true;\r\n }\r\n this.selectedStackOption = this.chartParams.Stacked ?? null;\r\n this.selectedDateGroupingUnit = this.dateGroupingUnits.find(dgu => dgu.groupingUnit == this.chartParams.DateGroupingUnit) ?? null;\r\n }\r\n else {\r\n this.currentStep = 1;\r\n this.chartParams = new ChartParameters(); \r\n this.chart = new Chart();\r\n this.selectedAggregationFunction = null;\r\n this.selectedXColumn = null;\r\n this.selectedYColumn = null;\r\n this.selectedSplitColumn = null;\r\n this.selectedDateGroupingUnit = null;\r\n this.selectSplitColumn = false;\r\n this.selectedStackOption = null;\r\n }\r\n this.savingChart = false;\r\n this.showMe = true;\r\n }\r\n\r\n onCancel() {\r\n this.showMe = false;\r\n }\r\n\r\n nextStep() {\r\n if(this.currentStep < this.steps) {\r\n this.currentStep += 1;\r\n }\r\n }\r\n\r\n previousStep() {\r\n if(this.currentStep > 1) {\r\n this.currentStep -= 1;\r\n }\r\n }\r\n\r\n @Watch('selectedAggregationFunction')\r\n onAggregationFunctionSelected() {\r\n if(this.selectedAggregationFunction != null) {\r\n if(this.selectedAggregationFunction.onlyNumericColumns) {\r\n this.yColumnSelection = this.aggregableColumns;\r\n }\r\n else {\r\n this.yColumnSelection = this.columns; \r\n }\r\n this.chartParams.YAggregationFunction = this.selectedAggregationFunction.aggregationFunction;\r\n if(!this.selectedAggregationFunction.canChooseYColumn) {\r\n this.selectedYColumn = null;\r\n }\r\n }\r\n }\r\n\r\n @Watch('selectedXColumn')\r\n onXColumnSelected() {\r\n this.chartParams.XColumnId = '';\r\n if(this.selectedXColumn != null) {\r\n this.chartParams.XColumnId = this.selectedXColumn.Id;\r\n if(!this.selectedXColumn.isDateTimeFormat && !this.selectedXColumn.isDateFormat) {\r\n this.selectedDateGroupingUnit = null;\r\n this.chartParams.DateGroupingQuantity = undefined;\r\n }\r\n else {\r\n this.chartParams.DateGroupingQuantity = 1;\r\n }\r\n }\r\n }\r\n\r\n @Watch('selectedYColumn')\r\n onYColumnSelected() {\r\n this.chartParams.YColumnId = '';\r\n if(this.selectedYColumn != null) {\r\n this.chartParams.YColumnId = this.selectedYColumn.Id;\r\n }\r\n }\r\n\r\n @Watch('selectedSplitColumn')\r\n onSplitColumnSelected() {\r\n this.chartParams.SplitColumnId = undefined;\r\n if(this.selectedSplitColumn != null && this.selectSplitColumn) {\r\n this.chartParams.SplitColumnId = this.selectedSplitColumn;\r\n if(!this.selectedStackOption) {\r\n this.selectedStackOption = ChartStackedType.NotStacked;\r\n }\r\n }\r\n }\r\n\r\n @Watch('selectedStackOption')\r\n onStackOptionSelected() {\r\n switch(this.selectedStackOption) {\r\n case 0:\r\n this.chartParams.Stacked = ChartStackedType.NotStacked;\r\n break;\r\n case 1:\r\n this.chartParams.Stacked = ChartStackedType.Normal;\r\n break;\r\n default: {\r\n this.chartParams.Stacked = undefined;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n @Watch('selectedDateGroupingUnit')\r\n onDateGroupingUnitSelected() {\r\n this.chartParams.DateGroupingUnit = undefined;\r\n if(this.selectedDateGroupingUnit) {\r\n this.chartParams.DateGroupingUnit = this.selectedDateGroupingUnit.groupingUnit;\r\n } \r\n }\r\n\r\n @Watch('selectSplitColumn')\r\n onSelectSplitColumnChanged() {\r\n if(!this.selectSplitColumn && this.chartParams) {\r\n this.chartParams.Stacked = ChartStackedType.NotStacked;\r\n this.selectedSplitColumn = null;\r\n }\r\n }\r\n\r\n @Watch('chart.Type')\r\n onChartTypeChanged() {\r\n if(this.chart.Type === ChartType.Pie) {\r\n this.selectedSplitColumn = null;\r\n this.selectSplitColumn = false;\r\n }\r\n }\r\n\r\n public get isScatter(): boolean {\r\n return (this.chart.Type === ChartType.Scatter);\r\n }\r\n\r\n createChart() {\r\n if(!this.listVM?.list) {\r\n return;\r\n }\r\n this.savingChart = true;\r\n this.chart.DataVersion = 1;\r\n this.chart.ListId = this.listVM.list.Id;\r\n if(Utils.isNullOrWhiteSpace(this.chart.Name)) {\r\n this.chart.Name = this.title;\r\n }\r\n if(this.selectSplitColumn) {\r\n if(this.chart.Type === ChartType.Area) {\r\n this.chartParams.Stacked = ChartStackedType.Normal;\r\n }\r\n else if (this.chart.Type !== ChartType.Bar) {\r\n this.chartParams.Stacked = ChartStackedType.NotStacked;\r\n }\r\n }\r\n this.chart.Data = JSON.stringify(this.chartParams);\r\n\r\n API.Chart.save(this.chart).then((chart) => {\r\n if(chart) {\r\n this.savingChart = false;\r\n EventBus.$emit(Event.REFRESH_CHARTS);\r\n \r\n if(this.gridViewVM?.gridApi) {\r\n var rowIds : string[] = [];\r\n this.gridViewVM.gridApi.forEachNodeAfterFilter((node: agGrid.IRowNode) => {\r\n if(!node.group && node.data?.rsRow)\r\n rowIds.push(node.data.rsRow.Id);\r\n });\r\n\r\n if(rowIds.length > 0 && (!this.listVM.rowVMs || rowIds.length < this.listVM.rowVMs.length))\r\n EventBus.$emit(Event.MAXIMIZE_CHART, {chartId: chart.Id, rowIds: rowIds})\r\n else\r\n EventBus.$emit(Event.MAXIMIZE_CHART, {chartId: chart.Id})\r\n } else {\r\n EventBus.$emit(Event.MAXIMIZE_CHART, {chartId: chart.Id})\r\n }\r\n\r\n this.onCancel();\r\n }\r\n });\r\n }\r\n\r\n public get saveBtnLabel(): string {\r\n return this.editMode ? this.$i18n.t('Charts_Save').toString() : this.$i18n.t('Charts_Create').toString();\r\n }\r\n\r\n\r\n public get title(): string {\r\n if(this.chart.Id) {\r\n return this.chart.Name;\r\n }\r\n let title = \"\";\r\n if(this.selectedYColumn) {\r\n title = this.selectedYColumn.DisplayName;\r\n }\r\n if(this.selectedXColumn) {\r\n title += ` ${this.$i18n.t('Charts_ChooseXColumn').toString().toLowerCase()} ${this.selectedXColumn.DisplayName}`;\r\n }\r\n if(title == \"\") {\r\n title = this.$i18n.t('Charts_NewChart').toString();\r\n }\r\n return title;\r\n }\r\n\r\n public get chartTypeIcon(): string {\r\n if(this.chart.Type != undefined) {\r\n switch(this.chart.Type) {\r\n case ChartType.Line:\r\n return \"fal fa-chart-line\";\r\n case ChartType.Bar:\r\n return \"fal fa-chart-column\";\r\n case ChartType.Area:\r\n return \"fal fa-chart-area\";\r\n case ChartType.Scatter:\r\n return \"fal fa-chart-scatter\";\r\n case ChartType.Pie:\r\n return \"fal fa-chart-pie\";\r\n } \r\n }\r\n return \"\";\r\n }\r\n\r\n public get listName(): string {\r\n return this.listVM?.list?.DisplayName ?? '';\r\n }\r\n\r\n public get columns() {\r\n return this.listVM?.columns || []\r\n }\r\n\r\n public get aggregableColumns() {\r\n return this.columns.filter(c => c.isNumber);\r\n }\r\n\r\n public get aggregationFunctions(): chartAggregationFunctionItem[] {\r\n let result: chartAggregationFunctionItem[] = [];\r\n\r\n result.push({name: this.$i18n.t('Charts_AggFunc_Count').toString(),\r\n aggregationFunction: ChartAggregationFunction.Count,\r\n onlyNumericColumns: false,\r\n canChooseYColumn: false});\r\n result.push({name: this.$i18n.t('Charts_AggFunc_NotNullCount').toString(),\r\n aggregationFunction: ChartAggregationFunction.NotNullCount,\r\n onlyNumericColumns: false,\r\n canChooseYColumn: true});\r\n result.push({name: this.$i18n.t('Charts_AggFunc_Sum').toString(),\r\n aggregationFunction: ChartAggregationFunction.Sum,\r\n onlyNumericColumns: true,\r\n canChooseYColumn: true});\r\n result.push({name: this.$i18n.t('Charts_AggFunc_Max').toString(),\r\n aggregationFunction: ChartAggregationFunction.Max,\r\n onlyNumericColumns: true,\r\n canChooseYColumn: true});\r\n result.push({name: this.$i18n.t('Charts_AggFunc_Min').toString(),\r\n aggregationFunction: ChartAggregationFunction.Min,\r\n onlyNumericColumns: true,\r\n canChooseYColumn: true});\r\n result.push({name: this.$i18n.t('Charts_AggFunc_Avg').toString(),\r\n aggregationFunction: ChartAggregationFunction.Avg,\r\n onlyNumericColumns: true,\r\n canChooseYColumn: true});\r\n\r\n return result;\r\n }\r\n\r\n public get dateGroupingUnits(): chartDateGroupingUnitItem[] {\r\n let result: chartDateGroupingUnitItem[] = [];\r\n\r\n result.push({ name: this.$i18n.t('Charts_DateGroupingUnit_None').toString(), groupingUnit: ChartDateGroupingUnit.None});\r\n result.push({ name: this.$i18n.t('Charts_DateGroupingUnit_Year').toString(), groupingUnit: ChartDateGroupingUnit.Year});\r\n result.push({ name: this.$i18n.t('Charts_DateGroupingUnit_Month').toString(), groupingUnit: ChartDateGroupingUnit.Month});\r\n result.push({ name: this.$i18n.t('Charts_DateGroupingUnit_Day').toString(), groupingUnit: ChartDateGroupingUnit.Day});\r\n // result.push({ name: this.$i18n.t('Charts_DateGroupingUnit_Hour').toString(), groupingUnit: ChartDateGroupingUnit.Hour});\r\n // result.push({ name: this.$i18n.t('Charts_DateGroupingUnit_Minute').toString(), groupingUnit: ChartDateGroupingUnit.Minute});\r\n // result.push({ name: this.$i18n.t('Charts_DateGroupingUnit_Second').toString(), groupingUnit: ChartDateGroupingUnit.Second});\r\n\r\n return result;\r\n }\r\n\r\n public get xColumnSelection(): Column[] {\r\n if(this.chart?.Type === ChartType.Line || this.chart?.Type === ChartType.Area) {\r\n return this.columns.filter(c => c.isNumber || c.isDateTimeFormat || c.isDateFormat);\r\n }\r\n return this.columns;\r\n }\r\n\r\n public get splitColumnSelection(): Column[] {\r\n return this.columns;\r\n }\r\n\r\n public get canCreateChart(): boolean {\r\n if(!this.selectedXColumn || !this.selectedAggregationFunction) {\r\n return false;\r\n }\r\n if(this.selectedAggregationFunction.canChooseYColumn && ! this.selectedYColumn) {\r\n return false;\r\n }\r\n if((this.selectedXColumn.isDateTimeFormat || this.selectedXColumn.isDateFormat) && (!this.selectedDateGroupingUnit || !this.chartParams.DateGroupingQuantity)) {\r\n return false;\r\n }\r\n if(this.selectSplitColumn && !this.selectedSplitColumn) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public get showDateGroupingSelector(): boolean {\r\n if(this.selectedXColumn?.isDateTimeFormat || this.selectedXColumn?.isDateFormat) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public get canSelectSplitColumn(): boolean {\r\n return this.chart?.Type !== ChartType.Pie;\r\n }\r\n\r\n public get canChooseStacked(): boolean {\r\n return this.chart.Type === ChartType.Bar && this.selectSplitColumn && !Utils.isNullOrWhiteSpace(this.selectedSplitColumn);\r\n }\r\n\r\n public get canChooseYColumn(): boolean {\r\n if(this.selectedAggregationFunction) {\r\n return this.selectedAggregationFunction.canChooseYColumn;\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./chartConfigurationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./chartConfigurationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./chartConfigurationDialog.vue?vue&type=template&id=38536ff8&scoped=true&\"\nimport script from \"./chartConfigurationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./chartConfigurationDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./chartConfigurationDialog.vue?vue&type=style&index=0&id=38536ff8&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 \"38536ff8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{on:{\"click:outside\":_vm.onCancel,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.onCancel.apply(null, arguments)}},model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_c('v-card',[_c('v-card-title',[(_vm.isEditingName)?_c('v-text-field',{ref:\"nameInput\",attrs:{\"loading\":_vm.updatingName,\"error-messages\":_vm.nameUpdateErrors},on:{\"blur\":_vm.saveChartName,\"keydown\":_vm.onChartNameKeyDown},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}}):_c('p',{on:{\"dblclick\":_vm.editChartName}},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('ChartsConfiguration_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-menu',{attrs:{\"offset-x\":\"\",\"left\":\"\",\"bottom\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":_vm.initMenu}},on),[_c('v-icon',[_vm._v(\"fal fa-ellipsis-v\")])],1)]}}]),model:{value:(_vm.menuState),callback:function ($$v) {_vm.menuState=$$v},expression:\"menuState\"}},[_vm._v(\" \"),_c('v-list',[(_vm.canEdit)?_c('v-list-item',{on:{\"click\":_vm.editChart}},[_c('v-list-item-icon',{staticClass:\"mr-1\"}),_vm._v(\" \"),_c('v-list-item-content',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_Edit'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.canShare)?_c('v-list-item',{on:{\"click\":_vm.toggleShared}},[_c('v-list-item-icon',{staticClass:\"mr-1 align-center\"},[(_vm.chartShared)?_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-check-square\")]):_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-square\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_Shared'))+\"\\n \")]),_vm._v(\" \"),_c('v-list-item-icon',{staticClass:\"align-center\"},[(_vm.hasNotPublicColumn)?_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"small\":\"\",\"color\":\"warning\",\"dense\":\"\"}},on),[_vm._v(\"fal fa-exclamation-triangle\")])]}}],null,false,2806701496)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_HasNotPublicColumn'))+\"\\n \")]):_vm._e()],1)],1):_vm._e(),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.downloadImage}},[_c('v-list-item-icon',{staticClass:\"mr-1\"}),_vm._v(\" \"),_c('v-list-item-content',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_Download'))+\"\\n \")])],1),_vm._v(\" \"),(!_vm.confirmDeletion && _vm.canRemove)?_c('v-list-item',{on:{\"click\":function($event){_vm.confirmDeletion = true}}},[_c('v-list-item-icon',{staticClass:\"mr-1\"}),_vm._v(\" \"),_c('v-list-item-content',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_Delete'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.confirmDeletion)?_c('v-list-item',{on:{\"click\":_vm.deleteChart}},[_c('v-list-item-icon',{staticClass:\"mr-1\"}),_vm._v(\" \"),_c('v-list-item-content',[_vm._v(\"\\n \"+_vm._s(_vm.$t('Charts_Delete_Really'))+\"\\n \")])],1):_vm._e()],1)],1),_vm._v(\" \"),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.onCancel}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_vm._v(\" \"),_c('v-card-text',[(_vm.chartId)?_c('chart-renderer',{ref:\"renderer\",attrs:{\"chartId\":_vm.chartId,\"rowIds\":_vm.rowIds,\"isThumbnail\":false,\"height\":\"100%\"}}):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport chartRenderer from '@/views/charts/chartRenderer.vue';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { Chart, Event, maximizeChartEventParams, List } from '@/models/RowShare';\r\nimport * as API from '@/api/Api';\r\nimport { KeyCodes } from '@/utils/KeyCodes';\r\n\r\n@Component({name: 'chartDialog', components: { chartRenderer }})\r\nexport default class chartDialog extends Vue {\r\n showMe: boolean = false;\r\n chartId: string = \"\";\r\n chart: Chart | null = null;\r\n menuState: boolean = false;\r\n confirmDeletion: boolean = false;\r\n list: List | null = null;\r\n updatingName: boolean = false;\r\n nameUpdateErrors: string = \"\";\r\n isEditingName: boolean = false;\r\n rowIds: string[] | null = null;\r\n\r\n created() {\r\n EventBus.$on(Event.MAXIMIZE_CHART, this.init);\r\n }\r\n\r\n destroy() {\r\n EventBus.$off(Event.MAXIMIZE_CHART, this.init);\r\n }\r\n\r\n onCancel() {\r\n this.chartId = \"\";\r\n this.showMe = false;\r\n }\r\n\r\n editChart() {\r\n if(this.chart) {\r\n EventBus.$emit(Event.EDIT_CHART, this.chart);\r\n this.onCancel();\r\n }\r\n }\r\n\r\n toggleShared() {\r\n if(this.chart) {\r\n this.chart.Shared = !this.chart.Shared;\r\n API.Chart.save(this.chart).then((chart) =>\r\n { \r\n EventBus.$emit(Event.REFRESH_CHARTS);\r\n });\r\n }\r\n }\r\n\r\n deleteChart() {\r\n if(this.chart) {\r\n API.Chart.remove(this.chart.Id)\r\n .then((deleted) => {\r\n if(deleted) {\r\n EventBus.$emit(Event.REFRESH_CHARTS);\r\n this.menuState = false;\r\n this.showMe = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n downloadImage() {\r\n if(this.imageLink && this.fileName) {\r\n let a = document.createElement('a');\r\n a.href = this.imageLink;\r\n a.download = this.fileName;\r\n a.click();\r\n }\r\n this.menuState = false;\r\n }\r\n\r\n initMenu() {\r\n this.confirmDeletion =false;\r\n }\r\n\r\n saveChartName() {\r\n if(!this.chart) {\r\n return;\r\n }\r\n this.nameUpdateErrors = \"\";\r\n this.updatingName = true;\r\n API.Chart.save(this.chart).then(chart => {\r\n if(chart){\r\n this.chart = chart;\r\n EventBus.$emit(Event.REFRESH_CHARTS);\r\n }\r\n this.isEditingName = false;\r\n })\r\n .catch((exc: Error) =>{\r\n this.nameUpdateErrors = this.$i18n.t('Charts_ErrorSavingName', [exc.message]).toString();\r\n })\r\n .finally(() => {\r\n this.updatingName = false;\r\n });\r\n }\r\n\r\n editChartName() {\r\n if(!this.chart?.Owned) {\r\n return;\r\n }\r\n this.isEditingName = true;\r\n this.$nextTick(() => {\r\n let input = this.$refs.nameInput;\r\n if(input) {\r\n input.focus();\r\n }\r\n });\r\n this.nameUpdateErrors = \"\";\r\n }\r\n\r\n onChartNameKeyDown(event: KeyboardEvent) {\r\n if(event.keyCode === KeyCodes.DOM_VK_RETURN) {\r\n this.saveChartName();\r\n }\r\n else if(event.keyCode === KeyCodes.DOM_VK_ESCAPE) {\r\n this.isEditingName = false;\r\n this.nameUpdateErrors = \"\";\r\n this.loadChartInfo(true)\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n async loadChartInfo(useCache: boolean = false) {\r\n if(!this.chartId) {\r\n return;\r\n }\r\n this.chart = await API.Chart.load(this.chartId, {cache: useCache});\r\n if(this.chart) {\r\n this.list = await API.List.load(this.chart.ListId, {cache: useCache});\r\n }\r\n }\r\n\r\n async init(event: maximizeChartEventParams) {\r\n if(!event?.chartId) {\r\n return;\r\n }\r\n this.isEditingName = false;\r\n this.chartId = event.chartId;\r\n this.rowIds = event.rowIds;\r\n this.loadChartInfo();\r\n this.menuState = false;\r\n this.confirmDeletion = false;\r\n this.showMe = true;\r\n }\r\n\r\n public get title(): string {\r\n if(this.chart) {\r\n return this.chart.Name;\r\n }\r\n return \"\";\r\n }\r\n\r\n public set title(value) {\r\n if(this.chart) {\r\n this.chart.Name = value;\r\n } \r\n }\r\n\r\n public get chartShared(): boolean {\r\n if(this.chart) {\r\n return this.chart.Shared;\r\n }\r\n return false;\r\n }\r\n\r\n public get imageLink() {\r\n let renderer = this.$refs.renderer as chartRenderer;\r\n if(renderer) {\r\n return renderer.getChartImage();\r\n } \r\n }\r\n\r\n public get fileName() {\r\n if(this.chart) {\r\n return this.chart.Name + \".png\";\r\n }\r\n return \"\";\r\n }\r\n\r\n public get canShare(): boolean {\r\n return this.list?.Owned ?? false;\r\n }\r\n\r\n public get canRemove(): boolean {\r\n return this.chart?.Owned ?? false;\r\n }\r\n\r\n public get canEdit(): boolean {\r\n return this.chart?.Owned ?? false;\r\n }\r\n\r\n get hasNotPublicColumn(): boolean {\r\n return this.chart?.HasNotPublicColumn ?? false;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./chartDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./chartDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./chartDialog.vue?vue&type=template&id=4dcdc3fa&scoped=true&\"\nimport script from \"./chartDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./chartDialog.vue?vue&type=script&lang=ts&\"\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 \"4dcdc3fa\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"620px\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_c('v-card',[_c('v-card-title',[_c('div',{staticClass:\"relation-column--title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeModal}},[_c('v-icon',[_vm._v(\"fal fa-times\")])],1)],1),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(_vm._s(_vm.subtitle))]),_vm._v(\" \"),_c('div',{staticClass:\"relatedrows-container\"},[_c('card-view',{ref:\"cardViewer\",attrs:{\"listVM\":_vm.relatedListVM,\"scrollToRowId\":_vm.selectedRowId,\"selectionMode\":true},on:{\"cardClick\":_vm.onCardClick,\"cardDblClick\":_vm.onCardDblClick}})],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.canUnlink},on:{\"click\":_vm.unlinkRow}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"fal fa-unlink\")]),_vm._v(_vm._s(_vm.$t('RelationRowsDialog_UnlinkRow')))],1),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.selectedRowId},on:{\"click\":_vm.linkRow}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\"fal fa-link\")]),_vm._v(_vm._s(_vm.$t('RelationRowsDialog_LinkRow')))],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"list-mobile pa-2\"},[_c('v-text-field',{staticClass:\"ma-0 mb-1\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"prepend-icon\":\"fal fa-search\",\"clearable\":\"\",\"label\":_vm.$t('MobileApp_Search_Placeholder'),\"clear-icon\":\"fal fa-times\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_vm._v(\" \"),(_vm.rowArray != null)?_c('div',{staticClass:\"scroller-wrapper\"},[(_vm.rowArray && _vm.rowArray.length == 0)?_c('v-col',{staticClass:\"text-center\"},[_c('p',[_vm._v(_vm._s(_vm.$t('MobileApp_List_noItem')))])]):_vm._e(),_vm._v(\" \"),_c('v-virtual-scroll',{ref:\"scroller\",staticClass:\"scroller\",attrs:{\"items\":_vm.rowArray,\"item-height\":\"148\",\"bench\":\"2\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ item }){return [_c('v-col',{staticClass:\"table-row\",attrs:{\"cols\":\"12\"}},[_c('row-card',{attrs:{\"id\":'card-'+item.rsRow.Id,\"rowVM\":item,\"currentRowId\":_vm.scrollToRowId},on:{\"cardClick\":_vm.onCardClick,\"cardDblClick\":_vm.onCardDblClick}})],1)]}}],null,false,509603485)})],1):_c('v-row',[_c('v-col',[_c('page-load-spinner',{attrs:{\"dimension\":50}})],1)],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"fullscreen\":true},model:{value:(_vm.dialogDisplay),callback:function ($$v) {_vm.dialogDisplay=$$v},expression:\"dialogDisplay\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MobileApp_DescriptionDialog_Title'))+\"\\n \")]),_vm._v(\" \"),(_vm.description !== '')?_c('v-card-text',{domProps:{\"innerHTML\":_vm._s(_vm.description)}}):_c('v-card-text',[_vm._v(\"\\n \"+_vm._s(_vm.$t('MobileApp_DescriptionDialog_NoDescription'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-actions',[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.toggleDescriptionDisplay}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MobileApp_DescriptionDialog_CloseButtonText'))+\"\\n \")])],1)],1)],1),_vm._v(\" \"),(_vm.canAddRow && _vm.$vuetify.breakpoint.mobile)?_c('v-btn',{staticClass:\"add-row\",attrs:{\"fixed\":\"\",\"dark\":\"\",\"fab\":\"\",\"bottom\":\"\",\"left\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.createRow}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-plus\")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"d-flex flex-row flex-nowrap justify-content-between flex-grow-1 text-truncate row-card pa-0\",class:{'current-row': _vm.isCurrentRow},attrs:{\"ripple\":false,\"elevation\":\"0\"},on:{\"click\":_vm.rowDetail,\"dblclick\":_vm.rowDoubleClick}},[_c('div',{staticClass:\"d-flex flex-column justify-content-between flex-grow-1 text-truncate row-card-text-area pa-2\"},[_c('div',{staticClass:\"card-title text-truncate\"},[_c('div',{staticClass:\"d-flex flex-row\"},[(_vm.rowVM.isLocked)?_c('v-icon',{staticClass:\"mr-2 mb-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-lock-keyhole\")]):_vm._e(),_vm._v(\" \"),(_vm.showOwnerInformation && _vm.rowVM.rsRow && _vm.rowVM.rsRow.Owner && _vm.rowVM.rsRow.Owner.Bigram)?_c('v-avatar',{staticClass:\"row-owner\",style:({ lineHeight: '18px', fontSize: '9px' }),attrs:{\"color\":`color${_vm.rowVM.rsRow.Owner.BackgroundColorIndex}`,\"size\":\"18\"}},[_vm._v(\"\\n \"+_vm._s(_vm.rowVM.rsRow.Owner.Bigram)+\"\\n \")]):(_vm.showOwnerInformation && _vm.rowVM.rsRow && _vm.rowVM.rsRow.Owner)?_c('v-avatar',{staticClass:\"row-owner\",style:({ lineHeight: '18px', fontSize: '9px' }),attrs:{\"size\":\"18\"}},[_c('v-icon',{staticClass:\"pa-0 ma-0 row-owner-unknown\",attrs:{\"color\":\"darkest\"}},[_vm._v(\"fa-user\")]),_vm._v(\" \"),_c('v-icon',{staticClass:\"pa-0 ma-0 row-owner-unknown\",attrs:{\"color\":\"darkest\"}},[_vm._v(\"fa-question\")])],1):_vm._e(),_vm._v(\" \"),(_vm.mainColumn && !_vm.isMainColumnAFile)?_c(_vm.columnRendererName(_vm.mainColumn),{tag:\"component\",staticClass:\"row-title\",attrs:{\"value\":_vm.rowVM.rsRow.Values[_vm.mainColumn.Name],\"column\":_vm.mainColumn,\"rowVM\":_vm.rowVM}}):_c('span',{staticClass:\"row-title text-truncate\"},[_vm._v(_vm._s(_vm.rowVM.rsRow.DescriptorFormattedValue))])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"d-flex flex-row flex-wrap justify-content-between text-truncate\",class:{'cells-container-img': _vm.hasImageColumn, 'cells-container': !_vm.hasImageColumn}},_vm._l((_vm.cols),function(col,index){return _c('div',{key:index,staticClass:\"cell text-truncate\"},[_c('div',{staticClass:\"text-truncate content-placeholder\"},[_vm._v(\"\\n \"+_vm._s(col.DisplayName)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"content-label\"},[_c(_vm.columnRendererName(col),{tag:\"component\",class:{'cell-not-accessible': !_vm.isCellAccessible(col)},attrs:{\"value\":_vm.rowVM.rsRow.Values[col.Name],\"column\":col,\"rowVM\":_vm.rowVM}})],1)])}),0)]),_vm._v(\" \"),(_vm.hasImageColumn)?_c('v-img',{staticClass:\"row-card-cover-image\",attrs:{\"height\":\"142\",\"width\":\"105\",\"src\":_vm.imageColumnUrl}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"text-truncate\"},[_c('span',[_vm._v(_vm._s(_vm.value.CommentCount))]),_vm._v(\" \\n \"),_c('v-icon',{staticClass:\"pb-1\",attrs:{\"x-small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-comment-alt-lines\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { CommentViewModel } from './CommentViewModel';\r\n\r\n @Component({\r\n name: 'CommentCardRenderer'\r\n })\r\n export default class CommentCardRenderer extends Vue {\r\n @Prop({ default : () => {} }) value !: CommentViewModel;\r\n }\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CommentCardRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CommentCardRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommentCardRenderer.vue?vue&type=template&id=ca390132&\"\nimport script from \"./CommentCardRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommentCardRenderer.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-icon',{attrs:{\"x-small\":\"\",\"color\":_vm.color}},[_vm._v(_vm._s(_vm.icon))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Component, Prop, Vue} from 'vue-property-decorator';\r\n\r\n @Component({\r\n name: 'TwoStatesBooleanCardRenderer'\r\n })\r\n export default class TwoStatesBooleanCardRenderer extends Vue {\r\n @Prop({ default : false }) value !: boolean;\r\n\r\n get icon() : string {\r\n return this.value ? 'fa-check' : 'fa-times';\r\n }\r\n\r\n get color() {\r\n return this.value ? 'success' : 'error';\r\n }\r\n }\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TwoStatesBooleanCardRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TwoStatesBooleanCardRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TwoStatesBooleanCardRenderer.vue?vue&type=template&id=5e193807&\"\nimport script from \"./TwoStatesBooleanCardRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./TwoStatesBooleanCardRenderer.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"text-truncate card-renderer\",class:_vm.wrapperClass},[(_vm.val && _vm.cellIconClasses)?_c('i',{staticClass:\"v-icon notranslate theme--light grid-cell-icon mr-1\",class:_vm.cellIconClasses}):_vm._e(),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.innerHtml)}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import * as RowShare from '@/models/RowShare';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n import RowVM from '@/viewModels/Table/rowVM';\r\n import BaseColumnProxy from '@/columnProxies/BaseColumnProxy';\r\n\r\n @Component({ name: 'ProxyBasedCardRenderer' })\r\n export default class ProxyBasedCardRenderer extends Vue {\r\n @Prop() column!: RowShare.Column;\r\n @Prop() rowVM!: RowVM;\r\n\r\n get proxy(){\r\n return RsColumnManager.getProxy(this.column.Type);\r\n }\r\n\r\n get val(){\r\n return this.proxy ? this.rowVM.getValue(this.column, this.proxy) : undefined;\r\n }\r\n\r\n get innerHtml(){\r\n const text = this.proxy.getFormattedHtml(this.column, this.rowVM, this.val); \r\n if(text && text != '')\r\n return text;\r\n else\r\n return '-';\r\n }\r\n \r\n get wrapperClass(){\r\n return this.proxy.getRendererWrapperClass(this.column, this.rowVM, this.val);\r\n }\r\n \r\n get cellIconClasses(){\r\n return this.proxy.getCellIconClasses(this.column, this.rowVM, this.val);\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ProxyBasedCardRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ProxyBasedCardRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProxyBasedCardRenderer.vue?vue&type=template&id=c2a9032e&scoped=true&\"\nimport script from \"./ProxyBasedCardRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProxyBasedCardRenderer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProxyBasedCardRenderer.vue?vue&type=style&index=0&id=c2a9032e&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 \"c2a9032e\",\n null\n \n)\n\nexport default component.exports","\r\n import {Vue, Component, Prop } from 'vue-property-decorator';\r\n import * as Models from '@/models/RowShare';\r\n import * as API from \"@/api/Api\";\r\n import RowVM from '@/viewModels/Table/rowVM';\r\n import CommentCardRenderer from '@/views/Table/cellsComponents/Comment/CommentCardRenderer.vue';\r\n import TwoStatesBooleanCardRenderer from '@/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanCardRenderer.vue'\r\n import ProxyBasedCardRenderer from '@/views/Table/CardView/ProxyBasedCardRenderer.vue';\r\n import FileVM from '@/viewModels/Table/FileVM';\r\n\r\n @Component({\r\n name: 'RowCardMobile',\r\n components: { ProxyBasedCardRenderer, CommentCardRenderer, TwoStatesBooleanCardRenderer }\r\n })\r\n export default class RowCardMobile extends Vue {\r\n\r\n @Prop() rowVM!: RowVM;\r\n @Prop() currentRowId!: string;\r\n @Prop({default: false}) selectionMode!: boolean;\r\n\r\n private isoName : string = 'USD';\r\n\r\n get currentList() : Models.List | null {\r\n return this.rowVM.listVM.list;\r\n }\r\n\r\n get isCurrentRow(): boolean {\r\n if(this.currentRowId === 'new' && !this.rowVM?.rsRow?.Id) {\r\n return true;\r\n }\r\n if(!this.rowVM?.rsRow.Id || !this.currentRowId)\r\n {\r\n return false;\r\n }\r\n return this.rowVM.rsRow.Id === this.currentRowId;\r\n }\r\n\r\n async mounted(){\r\n let currency = await API.Currency.loadByCulture(this.currentList ? this.currentList.Language : 'en');\r\n this.isoName = currency ? currency.IsoName : 'USD';\r\n }\r\n\r\n get imageColumn() : Models.Column | null {\r\n let columns = this.rowVM.listVM.columns;\r\n if(!columns){\r\n return null;\r\n }\r\n return columns.find(col => col.Type == Models.ColumnStrongType.Image) ?? null;\r\n }\r\n\r\n get imageColumnUrl() : string | null {\r\n var col = this.imageColumn;\r\n if(!col)\r\n return null;\r\n \r\n var val = this.rowVM.rsRow.Values[col.Name]\r\n \r\n return val ? val.AbsoluteFileUrl : null;\r\n }\r\n\r\n get hasImageColumn() : boolean {\r\n return this.imageColumn != null;\r\n }\r\n\r\n get showOwnerInformation(): boolean {\r\n return this.currentList ? this.currentList.ShowOwnerInformations : false;\r\n }\r\n\r\n get mainColumn() : Models.Column | null {\r\n let columns = this.rowVM.listVM.columns;\r\n if(!columns){\r\n return new Models.Column();\r\n }\r\n let mainColumn = columns.find(col => col.IsMainColumn);\r\n return mainColumn ? mainColumn : new Models.Column();\r\n }\r\n \r\n get isMainColumnAFile() : boolean {\r\n var mainColumn = this.mainColumn;\r\n return mainColumn != null && (mainColumn.Type == Models.ColumnStrongType.Image || mainColumn.Type == Models.ColumnStrongType.File);\r\n }\r\n\r\n get imageColumnValue(): FileVM | null {\r\n let imageValue = this.imageColumn ? \r\n this.rowVM.rsRow.Values[this.imageColumn.Name]:\r\n null;\r\n if (this.hasImageColumn && !imageValue) {\r\n let defaultImage = new FileVM();\r\n defaultImage.ContentType = 'image/jpeg';\r\n defaultImage.FileName = 'missing-image.png';\r\n defaultImage.ImageUrl = require('@/assets/static/images/image-placeholder.jpg');\r\n defaultImage.AbsoluteFileUrl = require('@/assets/static/images/image-placeholder-big.jpg');\r\n defaultImage.Size = 634001;\r\n defaultImage.LastWriteTimeUtc = new Date();\r\n return defaultImage;\r\n }\r\n else if (this.hasImageColumn && imageValue) {\r\n return imageValue;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n get cols() : Array{\r\n let columns = this.rowVM.listVM.columns;\r\n if(!columns)\r\n return new Array();\r\n \r\n return this.hasImageColumn\r\n ? columns.filter(col => !col.IsMainColumn && col != this.imageColumn).slice(0,4)\r\n : columns.filter(col => !col.IsMainColumn).slice(0,6);\r\n }\r\n \r\n rowDetail(): void {\r\n if(!this.isCurrentRow || this.$route.name ==='Table'){\r\n this.$emit('cardClick', this.rowVM);\r\n }\r\n }\r\n \r\n rowDoubleClick(): void {\r\n this.$emit('cardDblClick', this.rowVM);\r\n }\r\n\r\n columnRendererName(column : Models.Column){\r\n switch(column.Type){\r\n case Models.ColumnStrongType.Comment:\r\n return 'CommentCardRenderer';\r\n case Models.ColumnStrongType.TwoStatesBoolean:\r\n return 'TwoStatesBooleanCardRenderer';\r\n default:\r\n return 'ProxyBasedCardRenderer';\r\n }\r\n }\r\n\r\n isCellAccessible(column: Models.Column) {\r\n return this.rowVM?.rsRow?.Values[column.DisplayName] !== RowVM.cellNotAccessible;\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RowCard.vue?vue&type=template&id=a60892a2&scoped=true&\"\nimport script from \"./RowCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./RowCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RowCard.vue?vue&type=style&index=0&id=a60892a2&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 \"a60892a2\",\n null\n \n)\n\nexport default component.exports","\r\n import {Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { ApplicationModule, ApplicationStore } from '@/store/ApplicationStore'\r\n import * as Models from '@/models/RowShare';\r\n import { Location as RouterLocation } from \"vue-router\";\r\n import { ArrayUtils } from '@/utils/Array';\r\n import PageLoadSpinner from \"@/views/layouts/LayoutParts/PageLoadSpinner.vue\";\r\n import RowCard from \"@/views/Table/CardView/RowCard.vue\";\r\n import Fuse, { IFuseOptions } from 'fuse.js';\r\n import { Utils } from \"@/utils/Utilities\";\r\n import { CommandEvent } from '@/models/RowShare';\r\n import RowVM from '@/viewModels/Table/rowVM';\r\n import ListVM from '@/viewModels/Table/listVM';\r\n //import Fuse from 'fuse.js';\r\n\r\n @Component({name: \"CardView\", components: { PageLoadSpinner, RowCard }})\r\n export default class CardView extends Vue {\r\n @Prop() listVM!: ListVM;\r\n @Prop({default: false }) reload !: boolean;\r\n @Prop() scrollToRowId!: string;\r\n @Prop({default: false}) selectionMode!: boolean;\r\n \r\n //private cardViewVM = new CardViewVM(this.listVM);\r\n\r\n private searchTerm : string = \"\";\r\n private searchEngine: Fuse | null = null;\r\n private currentlyRenderedRows: Array = new Array();\r\n\r\n get rowArray(): any[] | null {\r\n if(!this.listVM.rowVMs)\r\n return null;\r\n\r\n let rows = [];\r\n if (this.searchEngine === null || Utils.isNullOrWhiteSpace(this.searchTerm))\r\n rows = this.listVM.rowVMs;\r\n else\r\n rows = this.searchEngine.search(this.searchTerm).map((result) => result.item);\r\n\r\n if(!rows)\r\n return new Array();\r\n\r\n return ArrayUtils.sort(rows, [(row: RowVM) => row.rsRow.Index], this.sortDirection);\r\n }\r\n\r\n get canAddRow(): boolean {\r\n return this.listVM.list != null && this.listVM.list.CanCreate;\r\n }\r\n\r\n public resetSearchEngine() {\r\n this.search = \"\";\r\n this.initSearch();\r\n }\r\n\r\n async mounted(){\r\n this.initListInfo();\r\n this.initSearch();\r\n this.$nextTick(() => {\r\n this.scrollToRow();\r\n });\r\n }\r\n\r\n @Watch('listVM.rowVMs')\r\n onRowVMsChanged() {\r\n this.initSearch();\r\n this.$nextTick(() => {\r\n this.scrollToRow();\r\n });\r\n }\r\n\r\n @Watch('scrollToRowId')\r\n onScrollToRowIdChanged() {\r\n if(!this.selectionMode) {\r\n this.$nextTick(() => {this.scrollToRow()});\r\n }\r\n }\r\n\r\n scrollToRow() {\r\n let scrollIndex: number | undefined = undefined;\r\n if(this.$route.name === 'Form' && this.$route.params.rowId === 'new') {\r\n if(this.listVM.rowVMs) {\r\n scrollIndex = this.listVM.rowVMs.length - 1;\r\n }\r\n }\r\n else if(this.scrollToRowId && this.rowArray && this.listVM.rowVMs){\r\n scrollIndex = this.rowArray.findIndex(r => r.rsRow.Id === this.scrollToRowId);\r\n }\r\n\r\n if(scrollIndex !== undefined && scrollIndex > -1) {\r\n let element = ((this.$refs.scroller).$el);\r\n if(element != undefined) {\r\n element.scroll({ top: 148 * scrollIndex, behavior:'smooth'}); // 148 * idx\r\n }\r\n }\r\n }\r\n\r\n @Watch(\"listVM.list\")\r\n onListChanged(){\r\n this.initListInfo();\r\n this.initSearch();\r\n }\r\n\r\n async initListInfo(){\r\n if(!this.listVM.list)\r\n return;\r\n\r\n this.description = this.listVM.list.Description ?? '';\r\n ApplicationModule.updateAppCommands(this.setCommand());\r\n \r\n let previousLocation = this.listVM.list.FolderId ?\r\n { \r\n name: 'MyTables',\r\n params: { \r\n folderId: this.listVM.list.FolderId,\r\n organizationId: this.listVM.list.OrganizationId\r\n }\r\n } : '';\r\n ApplicationModule.updateAppPreviousLocation(previousLocation);\r\n }\r\n\r\n createRow() : void {\r\n if(!this.listVM.list)\r\n return;\r\n\r\n this.$router.push({ \r\n name: 'Form',\r\n params: { listId: this.listVM.list.Id, rowId: 'new' },\r\n });\r\n }\r\n\r\n /** Search **/\r\n\r\n get appStore(): ApplicationStore {\r\n return ApplicationStore.state;\r\n }\r\n\r\n pSearch: string | null = null;\r\n\r\n get search(){\r\n return this.pSearch;\r\n }\r\n set search(val){\r\n this.pSearch = val;\r\n\r\n Utils.debounce(500, () => {\r\n this.searchTerm = this.pSearch ?? '';\r\n })();\r\n }\r\n\r\n initSearch() : void {\r\n if (this.listVM.rowVMs == null || this.listVM.rowVMs.length == 0)\r\n return;\r\n\r\n let propertyNames = Object.getOwnPropertyNames(this.listVM.rowVMs[0].rsRow.Values);\r\n let propertyNamesPrefixed = propertyNames.map((propName) => { return {name: propName, getFn: (row: RowVM) => row.rsRow.Values[propName]} });//`rsRow.Values.${name}`);\r\n propertyNamesPrefixed.push({name: 'DescriptorFormattedValue', getFn: (row:RowVM) => row.rsRow.DescriptorFormattedValue});\r\n const options: IFuseOptions = {\r\n shouldSort: true,\r\n threshold: 0.1,\r\n minMatchCharLength: 2,\r\n distance: 5000,\r\n keys: propertyNamesPrefixed //[/*'rsRow.DescriptorFormattedValue'*/, ...propertyNamesPrefixed]\r\n };\r\n this.searchEngine = new Fuse(this.listVM.rowVMs, options);\r\n this.searchTerm = \"\";\r\n }\r\n\r\n /** Sort **/\r\n\r\n private sortDirection : boolean | 'asc' | 'desc' = false;\r\n\r\n get sorterIcon() : string {\r\n return this.sortDirection == 'asc' || this.sortDirection === false ? \r\n \"sort-alpha-up-alt\" : \"sort-alpha-up\";\r\n }\r\n\r\n toggleSortDirection(){\r\n this.sortDirection = \r\n this.sortDirection === 'asc' || this.sortDirection === false ? \r\n 'desc' : 'asc';\r\n }\r\n\r\n /** Registering search and description as layout commands **/\r\n\r\n setCommand(): Array {\r\n let commands = new Array();\r\n\r\n if(this.description && this.description != ''){\r\n let dialog = new Models.CommandEvent();\r\n dialog.order = 1;\r\n dialog.icon = 'info-circle';\r\n dialog.eventName = Models.Event.SHOW_DESCRIPTION_DIALOG;\r\n dialog.color = '#fff';\r\n dialog.isToggable = false;\r\n dialog.isActive = false;\r\n\r\n commands.push(dialog);\r\n } \r\n\r\n return commands;\r\n }\r\n\r\n /** Description **/\r\n\r\n private description: string | null = null;\r\n\r\n get dialogDisplay() : boolean {\r\n let descriptionCommand = ApplicationModule\r\n .mobileAppCommands\r\n .find((c: CommandEvent) => c.eventName == Models.Event.SHOW_DESCRIPTION_DIALOG);\r\n if(descriptionCommand){\r\n return descriptionCommand.isActive;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n\r\n toggleDescriptionDisplay() : void {\r\n ApplicationModule.toggleDescriptionDisplay();\r\n }\r\n\r\n onCardClick(row: RowVM) {\r\n this.$emit('cardClick', row);\r\n }\r\n\r\n onCardDblClick(row: RowVM) {\r\n this.$emit('cardDblClick', row);\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CardView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CardView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardView.vue?vue&type=template&id=58113f01&scoped=true&\"\nimport script from \"./CardView.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardView.vue?vue&type=style&index=0&id=58113f01&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 \"58113f01\",\n null\n \n)\n\nexport default component.exports","import * as Api from '@/api/Api';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport RowVM from './rowVM';\r\nimport ListVMListener from './listVMListener';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport i18n from '@/modules/Localization';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { Event, GlobalNotificationEventParams } from \"@/models/RowShare\";\r\n\r\nexport default class ListVM {\r\n\r\n /** List **/\r\n\r\n private pList: RowShare.List | null = null;\r\n\r\n public get list(): RowShare.List | null {\r\n return this.pList;\r\n }\r\n public set list(val: RowShare.List | null) {\r\n this.pList = val;\r\n this.onListUpdated();\r\n }\r\n public onListUpdated() {\r\n for (let i = 0; i < this.listeners.length; ++i)\r\n this.listeners[i].onListUpdated(this);\r\n }\r\n\r\n /** Rows **/\r\n\r\n private pRowVMs: RowVM[] | null = null;\r\n\r\n public get rowVMs(): RowVM[] | null {\r\n return this.pRowVMs;\r\n }\r\n public set rowVMs(rowVMs: RowVM[] | null) {\r\n this.pRowVMs = rowVMs;\r\n this.onRowVMsUpdated();\r\n }\r\n private onRowVMsUpdated() {\r\n for (let i = 0; i < this.listeners.length; ++i)\r\n this.listeners[i].onRowVMsUpdated(this);\r\n }\r\n\r\n public notifyRowVMsUpdating() {\r\n for (let i = 0; i < this.listeners.length; ++i) {\r\n this.listeners[i].onBeforeRowVMsUdated(this);\r\n }\r\n }\r\n\r\n public notifyRowVMUpdated(rowVM: RowVM) {\r\n for (let i = 0; i < this.listeners.length; ++i)\r\n this.listeners[i].onRowVMUpdated(rowVM);\r\n }\r\n\r\n public refreshCell(rowVM: RowVM): void {\r\n for (let i = 0; i < this.listeners.length; ++i)\r\n this.listeners[i].refreshCell(rowVM);\r\n }\r\n\r\n /** Columns **/\r\n\r\n private pColumns: RowShare.Column[] | null = null;\r\n\r\n public get columns(): RowShare.Column[] | null {\r\n return this.pColumns;\r\n }\r\n public set columns(columns: RowShare.Column[] | null) {\r\n this.pColumns = columns;\r\n this.onColumnsUpdated();\r\n }\r\n private onColumnsUpdated() {\r\n for (let i = 0; i < this.listeners.length; ++i)\r\n this.listeners[i].onColumnsUpdated(this);\r\n }\r\n\r\n /** Updating data **/\r\n\r\n public async refreshRowsFromServer(onlyIndexAndVersion: boolean = false): Promise {\r\n if (!this.list || !this.rowVMs)\r\n return;\r\n\r\n const rows = await Api.Row.loadForList(this.list.Id);\r\n if (!rows || rows.length <= 0)\r\n return;\r\n\r\n let currentRows: RowVM[] = [];\r\n for (let i = 0; i < this.rowVMs.length; ++i) {\r\n let gridRow = this.rowVMs[i];\r\n if (gridRow) {\r\n let serverRow = rows.find(row => row.Id == gridRow.rsRow.Id);\r\n if (serverRow) {\r\n currentRows.push(gridRow);\r\n let rowData = rows.splice(rows.indexOf(serverRow), 1)[0];\r\n if (onlyIndexAndVersion) {\r\n await gridRow.refreshIndexAndVersion(rowData);\r\n }\r\n else {\r\n await gridRow.refreshValues(rowData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // remaining rows are new rows\r\n if (rows.length > 0) {\r\n let newRows = rows.map(r => new RowVM(this, r));\r\n if (newRows && newRows.length > 0) {\r\n currentRows.push(...newRows);\r\n currentRows.sort((x, y) => x.rsRow?.Index - y.rsRow?.Index)\r\n this.rowVMs = currentRows;\r\n }\r\n }\r\n }\r\n\r\n /** Listeners **/\r\n\r\n private listeners: ListVMListener[] = [];\r\n\r\n public registerListener(listener: ListVMListener) {\r\n this.listeners.push(listener);\r\n\r\n // this is required to handle displayModeVMs created after the initial load \r\n listener.onListUpdated(this);\r\n listener.onRowVMsUpdated(this);\r\n listener.onColumnsUpdated(this);\r\n }\r\n public unregisterListener(listener: ListVMListener) {\r\n this.listeners = this.listeners.filter(l => l !== listener);\r\n }\r\n\r\n /** Capabilities check **/\r\n\r\n public get canAddNewRow(): boolean {\r\n if (!this.rowVMs)\r\n return false;\r\n\r\n if (!this.list?.CanCreate)\r\n return false;\r\n\r\n if (!this.list.Owned && this.list.OneRowMaximumPerUser) {\r\n if (!this.rowVMs)\r\n return false;\r\n\r\n if (this.rowAssignedToCurrentUserCount != 0)\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public get canAddSeveralNewRows() {\r\n if (!this.canAddNewRow)\r\n return false;\r\n\r\n if (!this.list?.Owned && this.list?.OneRowMaximumPerUser)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n public get hasUniqueColumns() {\r\n return this.list?.HasUniqueColumn;\r\n }\r\n\r\n public get hasReadOnlyColumns() {\r\n return this.list?.HasUserReadOnlyColumn;\r\n }\r\n\r\n public get hasHiddenColumns() {\r\n return this.list?.HasUserHiddenColumn;\r\n }\r\n\r\n public msTeamsMode: boolean = false;\r\n\r\n public displayedRows: RowShare.DisplayedRows = RowShare.DisplayedRows.Active;\r\n\r\n public get specialRowsDisplayed(): boolean {\r\n return this.displayedRows != RowShare.DisplayedRows.Active;\r\n }\r\n\r\n public get deletedRowsDisplayed(): boolean {\r\n return this.displayedRows == RowShare.DisplayedRows.Deleted;\r\n }\r\n\r\n public get archivedRowsDisplayed(): boolean {\r\n return this.displayedRows == RowShare.DisplayedRows.Archived;\r\n }\r\n\r\n public get activeRowsDisplayed(): boolean {\r\n return this.displayedRows == RowShare.DisplayedRows.Active;\r\n }\r\n\r\n /** Counters **/\r\n\r\n public rowAssignedToCurrentUserCount: number = -1;\r\n\r\n public refreshRowAssignedToCurrentUserCount() {\r\n if (this.rowVMs === null) {\r\n this.rowAssignedToCurrentUserCount = -1;\r\n return;\r\n }\r\n\r\n let count = 0;\r\n for (let i = 0; i < this.rowVMs.length; ++i) {\r\n let vm = this.rowVMs[i];\r\n\r\n let isOwned: boolean;\r\n if (vm.isNew)\r\n isOwned = true;\r\n else\r\n isOwned = vm.rsRow.Owned;\r\n\r\n if (isOwned)\r\n count++;\r\n }\r\n\r\n this.rowAssignedToCurrentUserCount = count;\r\n }\r\n\r\n /** Check Limits **/\r\n public checkLimits() {\r\n if (!this.pList) {\r\n return;\r\n }\r\n let errorRemainingStorage: boolean = false;\r\n let errorRemainingRows: boolean = false;\r\n let warnRemainingRows: boolean = false;\r\n\r\n let listSizeInMb = (this.pList.ListSizeInBytes / 1024 / 1024);\r\n let listMaxSizeInMb = (this.pList.MaxSizeInBytes / 1024 / 1024)\r\n let storageQuotaUsed = (this.pList.ListSizeInBytes / this.pList.MaxSizeInBytes) * 100;\r\n\r\n if (this.pList.RemainingRowCount <= 0) {\r\n errorRemainingRows = true;\r\n warnRemainingRows = false;\r\n }\r\n else if (this.pList.RemainingRowCount <= 100) {\r\n warnRemainingRows = true;\r\n errorRemainingRows = false;\r\n }\r\n if ((listMaxSizeInMb <= 100 && storageQuotaUsed >= 90) || (listMaxSizeInMb - listSizeInMb <= 100 && listMaxSizeInMb > 100)) {\r\n errorRemainingStorage = true;\r\n }\r\n\r\n if (errorRemainingRows || warnRemainingRows) {\r\n let eventRows = {\r\n title: i18n.t('LimitAlertDialog_Title').toString(),\r\n message: (i18n.t('LimitAlertModal_RemainingRowsPattern', { rowCount: this.pList?.RowCount, maxRowCount: this.pList?.MaxRowCount }).toString()),\r\n type: errorRemainingRows ? 'error' : 'warning',\r\n duplicateId: 'remainingRowsNotification',\r\n autoHideAfterMs: 10000,\r\n autoHide: true\r\n }\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, eventRows);\r\n }\r\n if (errorRemainingStorage) {\r\n let eventStorage = {\r\n title: i18n.t('LimitAlertDialog_Title').toString(),\r\n message: (i18n.t('LimitAlertModal_RemainingStoragePattern', { listSize: listSizeInMb.toFixed(2), listMaxSize: listMaxSizeInMb }).toString()),\r\n type: 'error',\r\n duplicateId: 'remainingStorageNotification',\r\n autoHideAfterMs: 10000,\r\n autoHide: true\r\n }\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, eventStorage);\r\n }\r\n }\r\n}","\r\n\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport * as Models from '@/models/RowShare';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport CardView from '@/views/Table/CardView/CardView.vue'\r\nimport RowCard from '@/views/Table/CardView/RowCard.vue';\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport { Column, List, Row } from '@/api/Api';\r\n@Component({name: 'RelationEditorDialog', components: {CardView, RowCard}})\r\nexport default class RelationEditorDialog extends Vue {\r\n rowVM: RowVM | null = null;\r\n relatedListVM: ListVM = new ListVM();\r\n relatedListId: string = \"\";\r\n selectedRowId: string = \"\";\r\n column: Models.Column | null = null;\r\n\r\n showMe: boolean = false;\r\n searchValue: string = \"\";\r\n refreshParentRow!: () => void;\r\n\r\n created() {\r\n EventBus.$on(Models.Event.ROW_EDIT_RELATED_ROWS, this.init);\r\n }\r\n\r\n destroy() {\r\n EventBus.$off([Models.Event.ROW_EDIT_RELATED_ROWS]);\r\n }\r\n\r\n async init(event: Models.rowEditRelatedRowsEventParams) {\r\n this.rowVM = event.rowVM;\r\n this.column = event.column;\r\n this.relatedListId = event.relatedListId;\r\n this.refreshParentRow = event.refreshParentRow;\r\n this.rowVM.loadRelatedRow(this.column).then ( rr => {\r\n this.selectedRowId = rr?.ParentRowId ?? '';\r\n (this.$refs.cardViewer)?.resetSearchEngine();\r\n this.showMe = true;\r\n if(this.relatedListId) {\r\n this.relatedListVM = new ListVM();\r\n List.load(this.relatedListId)\r\n .then(list => {\r\n this.relatedListVM.list = list;\r\n Column.loadForList(this.relatedListId, { cache: true })\r\n .then(cols => {\r\n this.relatedListVM.columns = cols;\r\n Row.loadForList(this.relatedListId, Models.DataStatus.Normal, { cache: true })\r\n .then(rows => {\r\n this.relatedListVM.rowVMs = rows?.map(r => new RowVM(this.relatedListVM, r)) ?? [];\r\n });\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.showMe = false;\r\n this.rowVM = null;\r\n this.column = null;\r\n this.refreshParentRow = () => {};\r\n this.selectedRowId = \"\";\r\n }\r\n\r\n onCardClick(row: RowVM) {\r\n if(row) {\r\n this.selectedRowId = row.rsRow.Id;\r\n }\r\n }\r\n\r\n onCardDblClick(row: RowVM) {\r\n if(row) {\r\n this.selectedRowId = row.rsRow.Id;\r\n this.linkRow();\r\n }\r\n }\r\n\r\n linkRow() {\r\n if(this.selectedRowId && this.column && this.rowVM) {\r\n this.rowVM.setRelatedRow(this.column, this.selectedRowId);\r\n if(this.refreshParentRow !== undefined) {\r\n this.refreshParentRow();\r\n }\r\n this.closeModal();\r\n }\r\n }\r\n\r\n unlinkRow() {\r\n if(this.column && this.rowVM) {\r\n this.rowVM.setRelatedRow(this.column, '');\r\n if(this.refreshParentRow !== undefined) {\r\n this.refreshParentRow();\r\n }\r\n this.closeModal();\r\n }\r\n }\r\n\r\n get title(): string {\r\n if(this.column) {\r\n return this.column.ColumnGroup;\r\n }\r\n return \"\";\r\n }\r\n\r\n get subtitle(): string {\r\n if(this.relatedListVM?.list) {\r\n return this.$i18n.t('RelationRowsDialog_SubTitle', [this.relatedListVM.list.DisplayName]).toString();\r\n }\r\n return \"\";\r\n }\r\n\r\n get canUnlink(): boolean {\r\n if(this.column == null || this.rowVM == null) {\r\n return false;\r\n }\r\n return this.rowVM.getRelatedRow(this.column) != null;\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RelationEditorDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RelationEditorDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RelationEditorDialog.vue?vue&type=template&id=45ecedbd&scoped=true&\"\nimport script from \"./RelationEditorDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RelationEditorDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RelationEditorDialog.vue?vue&type=style&index=0&id=45ecedbd&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 \"45ecedbd\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Prop, Vue, Watch } from \"vue-property-decorator\";\r\nimport Component from 'vue-class-component';\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport * as RowShare from '@/models/RowShare';\r\nimport { Route } from 'vue-router';\r\nimport * as API from '@/api/Api';\r\n// Components\r\nimport ListToolbar from '@/views/Table/ListActions/ListToolbar.vue';\r\nimport SharingBar from '@/views/Table/ShareTable/SharingBar.vue';\r\nimport SelectedRowsBar from '@/views/Table/ListActions/SelectedRowsBar.vue';\r\nimport RowshareGrid from '@/views/Table/GridView/RowshareGrid.vue';\r\nimport Toaster from '@/views/layouts/LayoutParts/Toaster.vue';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport CommentEditorDialog from '@/views/Table/CommentEditorDialog.vue';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport AddColumnDialog from '@/views/Table/AddColumnDialog.vue'\r\nimport GridViewVM from \"@/viewModels/Table/gridViewVM\";\r\nimport RowMergeDialog from '@/views/Table/ListActions/RowMergeDialog.vue';\r\nimport { UserModule } from \"@/store/UserStore\";\r\nimport ListVM from \"@/viewModels/Table/listVM\";\r\nimport chartConfigurationDialog from '@/views/charts/chartConfigurationDialog.vue';\r\nimport chartDialog from '@/views/charts/chartDialog.vue';\r\nimport RelationEditorDialog from '@/views/Table/cellsComponents/Relation/RelationEditorDialog.vue';\r\nimport AssignationDialog from \"@/views/Table/ListActions/AssignationDialog.vue\";\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\"\r\nimport Bigram from \"@/views/components/Bigram.vue\";\r\n\r\n\r\n@Component({\r\n name: \"RsTable\",\r\n components: { ListToolbar, SharingBar, RowshareGrid, Toaster, CommentEditorDialog,\r\n SelectedRowsBar, AddColumnDialog, RowMergeDialog, AssignationDialog,\r\n chartConfigurationDialog, chartDialog, RelationEditorDialog, Bigram }\r\n})\r\nexport default class RsTable extends Vue {\r\n @Prop() listVM!: ListVM;\r\n @Prop() highlightRows!: string | string[];\r\n private selectedRows: agGrid.IRowNode[] = [];\r\n\r\n gridViewVM !: GridViewVM;\r\n\r\n created(){\r\n this.gridViewVM = new GridViewVM(this.listVM)\r\n EventBus.$on(RowShare.Event.ROW_SELECTION_CHANGED, (params: agGrid.SelectionChangedEvent) => this.OnRowSelectionChanged(params));\r\n window.addEventListener('beforeunload', this.beforeUnload);\r\n window.addEventListener('unload', this.unload);\r\n }\r\n\r\n destroyed() {\r\n window.removeEventListener('beforeunload', this.beforeUnload);\r\n window.removeEventListener('unload', this.unload);\r\n EventBus.$off(RowShare.Event.ROW_SELECTION_CHANGED);\r\n this.gridViewVM.dispose();\r\n }\r\n\r\n get rtcUsers(): RowShare.RealTimeCollaborationEntity[] {\r\n return RealTimeCollaborationModule.ConnectedUsers;\r\n }\r\n\r\n get hasRtcViewers(): boolean {\r\n return (this.rtcUsers?.length ?? 0) > 0;\r\n }\r\n\r\n addColumn() {\r\n EventBus.$emit(RowShare.Event.ADD_COLUMN, {insertBeforeColumnId: null});\r\n }\r\n\r\n onAssignRowsDialogClosed() {\r\n this.gridViewVM?.deselectAllRows();\r\n }\r\n\r\n OnRowSelectionChanged(params: agGrid.SelectionChangedEvent){\r\n var tmpSelectedRows: agGrid.IRowNode[] = [];\r\n params.api.clearRangeSelection();\r\n params.api.forEachNodeAfterFilterAndSort(n => {\r\n if(!n.group && n.isSelected()) {\r\n tmpSelectedRows.push(n);\r\n }\r\n });\r\n this.selectedRows = tmpSelectedRows;\r\n\r\n }\r\n\r\n get currentList() : RowShare.List | null {\r\n return ListTreeModule.currentList;\r\n }\r\n\r\n get currentOrganization() : RowShare.ListTreeOrganization | null {\r\n return ListTreeModule.currentOrganization;\r\n }\r\n\r\n get canShowSharingBar() : boolean {\r\n return this.selectedRows.length == 0\r\n && this.currentList != undefined\r\n && this.currentList != null\r\n && this.listVM.list != null\r\n && this.listVM.list != undefined;\r\n }\r\n\r\n get hasSelectedRows(): boolean {\r\n return this.selectedRows.length > 0;\r\n }\r\n\r\n @Watch('currentList')\r\n onCurrentListChanged(){\r\n if(this.currentList) {\r\n document.title = this.currentList.DisplayName + \" | RowShare\";\r\n this.listVM.list = this.currentList;\r\n if(UserModule.CurrentUser != null && !UserModule.CurrentUser.IsAnonymous) {\r\n this.listVM.checkLimits();\r\n // note: added by Soukayan\r\n // RealTimeCollaborationModule.gridViewVM = this.gridViewVM; // signalR injection for update grid view after receiving row cell update event\r\n RealTimeCollaborationModule.startAndSubscribe();\r\n }\r\n } else {\r\n document.title = \"RowShare\";\r\n }\r\n }\r\n\r\n handleBeforeRouteLeave(to: Route, from: Route, next: any) {\r\n if((this.gridViewVM.listVM.rowVMs?.filter(rvm => rvm.dirtyValues || rvm.valuesBeingSaved).length ?? 0) > 0){\r\n let event = new RowShare.ConfirmationRequiredEventParams();\r\n event.title = this.$i18n.t('NotSavedItemsDialog_Title').toString();\r\n event.description1 = this.$i18n.t('NotSavedItemsDialog_Description').toString();\r\n event.cancelButtonText = this.$i18n.t('NotSavedItemsDialog_Cancel').toString();\r\n event.actionButtonText = this.$i18n.t('NotSavedItemsDialog_Validate').toString();\r\n event.actionButtonColor = \"primary\";\r\n event.onConfirmation = async () => {\r\n await RealTimeCollaborationModule.stopAndUnsubscribe();\r\n next();\r\n };\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, event);\r\n }\r\n else {\r\n RealTimeCollaborationModule.stopAndUnsubscribe();\r\n next();\r\n }\r\n }\r\n\r\n beforeUnload(evt: BeforeUnloadEvent) {\r\n if((this.gridViewVM.listVM.rowVMs?.filter(rvm => rvm.dirtyValues || rvm.valuesBeingSaved).length ?? 0) > 0){\r\n evt.returnValue = this.$i18n.t('NotSavedItemsDialog_Description');\r\n evt.preventDefault();\r\n return;\r\n }\r\n RealTimeCollaborationModule.stopAndUnsubscribe();\r\n }\r\n\r\n unload(event: any) {\r\n RealTimeCollaborationModule.stopAndUnsubscribe();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RsTable.vue?vue&type=template&id=fefe1b84&scoped=true&\"\nimport script from \"./RsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./RsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RsTable.vue?vue&type=style&index=0&id=fefe1b84&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 \"fefe1b84\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"listformview-wrapper\"},[(_vm.listVM.list && !_vm.$vuetify.breakpoint.mobile)?_c('list-toolbar',{staticClass:\"mb-1 flex-grow-0\",attrs:{\"listVM\":_vm.listVM,\"showReturnToTable\":true}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"listformview-inner-wrapper\"},[(_vm.canShowCardView)?_c('v-card',{staticClass:\"pa-0 listformview-cardview-card-wrapper\",class:_vm.$vuetify.breakpoint.mobile ? 'ma-0 listformview-mobile' : 'ma-2'},[_c('card-view',{attrs:{\"listVM\":_vm.listVM,\"scrollToRowId\":_vm.scrollToRowId},on:{\"cardClick\":_vm.onCardClick}})],1):_vm._e(),_vm._v(\" \"),(_vm.canShowFormView)?_c('div',{staticClass:\"listformview-form-card-wrapper\",class:_vm.$vuetify.breakpoint.mobile ? 'listformview-form-card-wrapper-mobile' : ''},[_c('v-card',{staticClass:\"pa-0 listformview-form-card\",class:_vm.$vuetify.breakpoint.mobile ? 'ma-0' : 'ma-2'},[_c('row-form-view',{attrs:{\"listVM\":_vm.listVM,\"rowId\":_vm.rowId}})],1)],1):_vm._e()],1),_vm._v(\" \"),(_vm.listVM.list)?_c('row-merge-dialog',{attrs:{\"currentList\":_vm.listVM.list}}):_vm._e(),_vm._v(\" \"),_c('comment-editor-dialog'),_vm._v(\" \"),_c('relation-editor-dialog')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-toolbar',{staticClass:\"form-toolbar\",attrs:{\"height\":\"50\"}},[(_vm.rowVM && _vm.rowVM.rsRow)?_c('bigram',{attrs:{\"rowOwner\":_vm.rowVM.rsRow.Owner}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"text-truncate\"},[(_vm.rowVM && _vm.rowVM.rsRow)?_c('div',{staticClass:\"d-block text-no-wrap text-truncate\"},[_vm._v(_vm._s(_vm.rowVM.rsRow.DescriptorFormattedValue))]):_vm._e(),_vm._v(\" \"),(_vm.listVM.rowVMs && _vm.rowVM && _vm.rowVM.rsRow)?_c('div',{staticClass:\"grey--text text--lighten-1\"},[_vm._v(_vm._s(_vm.rowPosition)+\"/\"+_vm._s(_vm.listVM.rowVMs.length))]):_vm._e()]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"fal fa-ellipsis-v\")])],1)]}}])},[_vm._v(\" \"),_c('v-list',[(_vm.canDeleteRow)?_c('v-list-item',{on:{\"click\":_vm.removeRow}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash-alt\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ContextMenu_DeleteRow'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.canDuplicateRow)?_c('v-list-item',{on:{\"click\":_vm.cloneRow}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-clone\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_Duplicate'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.canRemindUsers)?_c('v-list-item',{on:{\"click\":_vm.onRemindUsersClicked}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-paper-plane\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_RemindUsers'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.canRunRowMerge)?_c('v-list-item',{on:{\"click\":_vm.onRowMergeClicked}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-file-alt\")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SelectedRows_RowMerge'))+\"\\n \")])],1)],1):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('v-container',[(_vm.listVM.columns && _vm.listVM.rowVMs && _vm.rowVM)?_c('v-row',{staticClass:\"align-self-start form-view-wrapper\"},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex flex-column justify-content-start\"},[_c('v-form',{ref:\"formEditor\"},_vm._l((_vm.columnDescriptions.columns),function(colDesc,index){return _c('div',{key:index,class:{ 'column-group': colDesc.columnGroupName,\n 'column-group-first': _vm.columnDescriptions.isFirstOfGroup(index),\n 'column-group-middle': _vm.columnDescriptions.isMiddleOfGroup(index),\n 'column-group-last': _vm.columnDescriptions.isLastOfGroup(index),\n 'column-group-relation': colDesc.columnIsChild}},[(_vm.columnDescriptions.isFirstOfGroup(index))?_c('div',{staticClass:\"column-group-name\"},[_c('span',{staticClass:\"column-groupe-name-text\"},[_vm._v(_vm._s(colDesc.columnGroupName))]),_vm._v(\" \"),(_vm.columnDescriptions.isFirstOfGroup(index))?_c('v-tooltip',{staticClass:\"mr-2\",attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [(colDesc.columnIsChild)?_c('v-icon',_vm._g({staticClass:\"ml-2\",attrs:{\"size\":\"10\"}},on),[_vm._v(\"fa-link\")]):_vm._e()]}}],null,true)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Form_ColumnGroup_TooltipText'))+\"\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('cell-form-view',{attrs:{\"listVM\":_vm.listVM,\"rowVM\":_vm.rowVM,\"colDesc\":colDesc,\"cellState\":_vm.cellStates[index],\"cellError\":_vm.cellErrors[index],\"focus\":index==0},on:{\"click\":function($event){return _vm.onCellClicked(colDesc)}}})],1)}),0)],1)])],1):_c('v-row',{staticClass:\"fill-height align-self-start\"},[_c('v-col',[_c('page-load-spinner',{attrs:{\"dimension\":60}})],1)],1)],1),_vm._v(\" \"),(_vm.showBottomNavigation)?_c('div',{staticClass:\"bottom-navigation elevation-3 grey lighten-1 pa-1\"},[_c('v-btn',{staticClass:\"ml-1\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.previousRowId == null},on:{\"click\":function($event){return _vm.goBackward()}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fa-backward\")])],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"ml-3 mr-3\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":!_vm.canAddRow},on:{\"click\":function($event){return _vm.addRow()}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fa-plus\")])],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-1\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.nextRowId == null},on:{\"click\":function($event){return _vm.goForward()}}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fa-forward\")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.listVM.list && _vm.rowVM)?_c('remind-users-dialog',{attrs:{\"currentList\":_vm.listVM.list,\"showDialog\":_vm.isRemindUsersModalOpen,\"rows\":[_vm.rowVM],\"displayModeVM\":_vm.formViewVM},on:{\"cancel\":function($event){_vm.isRemindUsersModalOpen = false}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import * as RowShare from '@/models/RowShare';\r\nimport RowVM from './rowVM';\r\nimport ViewManager from './viewManager';\r\nimport * as agGrid from 'ag-grid-community';\r\nimport ListDisplayModeVM from './listDisplayModeVM';\r\nimport ListVM from './listVM';\r\nimport { valueColumn } from '@/models/RowShare';\r\n\r\nexport default class FormViewVM implements ListDisplayModeVM {\r\n viewManager: ViewManager;\r\n printMode: boolean = false;\r\n\r\n public listVM : ListVM;\r\n\r\n constructor(listVM: ListVM){\r\n this.listVM = listVM;\r\n this.listVM.registerListener(this);\r\n this.viewManager = new ViewManager(this);\r\n }\r\n \r\n dispose() : void {\r\n this.listVM.unregisterListener(this);\r\n }\r\n \r\n private rowUpdateCallback: ((rowVM: RowVM) => void) | null = null;\r\n setRowUpdateCallBack(callback: (rowVM: RowVM) => void){\r\n this.rowUpdateCallback = callback;\r\n } \r\n \r\n onListUpdated() {}\r\n\r\n onBeforeRowVMsUdated() {}\r\n\r\n onRowVMsUpdated() {}\r\n\r\n onColumnsUpdated() {}\r\n \r\n get totalRowsCount(): number { return this.listVM.rowVMs?.length ?? 0; }\r\n get visibleRowsCount(): number { return this.totalRowsCount; }\r\n get totalColumnsCount(): number { return this.listVM.columns?.length ?? 0; }\r\n get visibleColumnsCount(): number { return this.totalColumnsCount; }\r\n get rowGroupsCount(): number { return 0; }\r\n get rowGroupsColNames(): string[] { return []; }\r\n get isFiltered(): boolean { return false; }\r\n get isSorted(): boolean { return false; }\r\n get cellSelected(): boolean { return false; }\r\n displayedRowIds: string[]| null = null;\r\n\r\n /** Sort, filter, hide... **/\r\n public getCurrentViewConfig() : RowShare.ListConfiguration | undefined { return undefined; }\r\n public getHiddenColumnsIds() : string[] | undefined { return undefined; }\r\n public getCurrentFilters(): any {}\r\n public getCurrentSort(): agGrid.ColumnState[] | undefined { return undefined; }\r\n \r\n public getRowGroupColumnsIds(): string[] | undefined { return undefined; }\r\n public getValueColumns(): valueColumn[] | undefined { return undefined; }\r\n public getVisibleToolPanelId(): string | undefined { return undefined; }\r\n public getCollapsedColumnGroups(): string[] | undefined { return undefined }\r\n\r\n public applyFilters(viewConfig: RowShare.ListConfiguration) : void {}\r\n public applySort(viewConfig: RowShare.ListConfiguration) : void {}\r\n public applyHiddenColumns(viewConfig: RowShare.ListConfiguration) : void {}\r\n public applyRowGroupColumns(viewConfig: RowShare.ListConfiguration) : void {}\r\n public applyValueColumns(viewConfig: RowShare.ListConfiguration) : void {};\r\n public applyVisibleToolPanel(viewConfig: RowShare.ListConfiguration) : void {};\r\n public applyCollapsedColumnGroups(viewConfig: RowShare.ListConfiguration): void {}\r\n \r\n public clearHiddenColumns() : void {}\r\n public clearSortOrder() : void {}\r\n public clearFilters() : void {}\r\n public clearRowGroups() : void {}\r\n public clearValueColumns(): void {}\r\n public clearVisibleToolPanel(): void {}\r\n public clearCollapsedColumnGroups(): void {}\r\n\r\n /** Specific dispaly methods **/\r\n\r\n public onRowVMUpdated(rowVM: RowVM) : void {\r\n if(this.rowUpdateCallback != null) {\r\n this.rowUpdateCallback(rowVM);\r\n }\r\n }\r\n \r\n public refreshCell(rowVM: RowVM) : void {\r\n if(this.rowUpdateCallback)\r\n this.rowUpdateCallback(rowVM);\r\n }\r\n \r\n public async insertClonedRowInUI(clonedRow: RowShare.Row, insertAtIdx: number | undefined, refresh: boolean | undefined) : Promise {}\r\n public getRowNodeIndex(id: string): number { return -1;}\r\n public scrollToIndex(index: number): void {}\r\n public addRowsInUI(newRows: RowShare.Row[]): void {};\r\n public updateRowsInUI(updatedRows: RowShare.Row[]):void {};\r\n public removeRowsInUI(rowVMs: RowVM[]) : void {}\r\n public deselectAllRows() : void {}\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"form-view-cell\",class:_vm.cellState,on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('v-menu',{attrs:{\"open-on-hover\":\"\",\"close-delay\":\"500\",\"offset-y\":\"\",\"open-delay\":\"200\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({staticClass:\"form-view-cell-name\"},on),[_c('span',{staticClass:\"form-view-cell-name-text\"},[_vm._v(_vm._s(_vm.colDesc.columnTitle))]),_vm._v(\" \"),(_vm.colDesc.columnIsMandatory)?_c('v-icon',{staticClass:\"ml-2\",attrs:{\"size\":\"10\",\"color\":\"error\"}},[_vm._v(\"fa-asterisk\")]):_vm._e(),_vm._v(\" \"),(_vm.colDesc.columnIsReadOnly)?_c('v-icon',{staticClass:\"ml-2\",attrs:{\"size\":\"10\"}},[_vm._v(\"fa-lock\")]):_vm._e(),_vm._v(\" \"),(_vm.colDesc.columnSubName)?_c('v-icon',{staticClass:\"ml-2\",attrs:{\"size\":\"10\"}},[_vm._v(\"fa-info-circle\")]):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.colDesc.SubName))])],1)]}},{key:\"default\",fn:function(){return [_c('column-description',{attrs:{\"colDesc\":_vm.colDesc}})]},proxy:true}]),model:{value:(_vm.showColumnDescription),callback:function ($$v) {_vm.showColumnDescription=$$v},expression:\"showColumnDescription\"}}),_vm._v(\" \"),_c('div',{staticClass:\"editor-wrapper\"},[_c('div',{staticClass:\"error-icon-wrapper\"},[_c('v-icon',{staticClass:\"ml-2\",attrs:{\"size\":\"16\",\"color\":\"error\"}},[_vm._v(\"fa-exclamation-circle\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"saving-icon-wrapper\"},[_c('v-icon',{staticClass:\"ml-2 fa-spin\",attrs:{\"size\":\"16\",\"color\":\"primary\"}},[_vm._v(\"fa-spinner-third\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"readonly-icon-wrapper\"},[_c('v-icon',{staticClass:\"ml-2\",attrs:{\"size\":\"16\",\"color\":\"grey lighten-1\"}},[_vm._v(\"far fa-lock-alt\")])],1),_vm._v(\" \"),((_vm.rowVM.rsRow.CanUpdate && !_vm.rowVM.isLocked && !_vm.colDesc.currentColumn.IsReadOnly && !_vm.colDesc.columnIsChild && !_vm.colDesc.currentColumn.isOwnerInfo) || _vm.colDesc.currentColumn.isBlob)?_c(_vm.getComponentName(_vm.colDesc),{tag:\"component\",attrs:{\"isInSurveyMode\":_vm.isInSurveyMode,\"focus\":_vm.focus,\"rowVM\":_vm.rowVM,\"column\":_vm.colDesc.currentColumn,\"listVM\":_vm.listVM}}):_c(_vm.columnRendererName(_vm.colDesc.currentColumn),{tag:\"component\",staticClass:\"ma-2\",class:{'cell-not-accessible': !_vm.isCellAccessible(_vm.colDesc)},attrs:{\"value\":_vm.rowVM.rsRow.Values[_vm.colDesc.currentColumn.Name],\"column\":_vm.colDesc.currentColumn,\"rowVM\":_vm.rowVM}})],1),_vm._v(\" \"),_c('div',{staticClass:\"form-cell-error-message ml-2 mr-2 error--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.cellError)+\"\\n \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{ref:\"editor\",attrs:{\"title\":_vm.currentValue,\"readonly\":_vm.isReadOnlyColumn(),\"solo\":\"\",\"flat\":\"\",\"single-line\":\"\",\"hide-details\":\"auto\"},on:{\"blur\":_vm.saveCellValue},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v},expression:\"currentValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport { ApplicationModule } from '@/store/ApplicationStore'\r\nimport * as Models from '@/models/RowShare';\r\nimport * as API from \"@/api/Api\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport RsColumnManager from '@/columnProxies/RsColumnManager';\r\n\r\ntype FileOrBlob = File | FileList | Blob | null;\r\n\r\n@Component\r\nexport class FormEditor extends Vue {\r\n\r\n @Prop() rowVM !: RowVM;\r\n @Prop() column !: Models.Column;\r\n @Prop() listVM !: ListVM;\r\n @Prop() focus !: boolean;\r\n @Prop({default: false}) isInSurveyMode !: boolean;\r\n\r\n protected isoName : string = 'USD';\r\n protected showTooltip : boolean = false;\r\n protected culture : string = 'en';\r\n\r\n get columnDefaultValue() : string {\r\n if(!this.column.DefaultValue) {\r\n return \"\";\r\n }\r\n return this.column.DefaultValue;\r\n }\r\n\r\n async beforeMount(){\r\n let lang : string = this.listVM?.list ? this.listVM.list.Language : 'en';\r\n this.culture = lang;\r\n let currency = await API.Currency.loadByCulture(lang);\r\n this.isoName = currency ? currency.IsoName : 'USD';\r\n }\r\n\r\n mounted(){\r\n (this).init();\r\n }\r\n \r\n @Watch(\"rowVM\")\r\n onRowVMChanged(){\r\n (this).init();\r\n }\r\n\r\n @Watch(\"rowVM.rsRow\")\r\n onrsRowChanged(){\r\n (this).init();\r\n }\r\n \r\n /*@Watch('mobileListStore.editorState')\r\n onStateChanged(val: string, oldVal: string) {\r\n if((val == 'edit' || val == 'create') && this.focus){\r\n let editor = this.$refs.editor;\r\n editor.focus();\r\n }\r\n }*/\r\n\r\n isMandatoryColumn() : boolean {\r\n return this.column.isMandatory;\r\n }\r\n \r\n isFormulaColumn() : boolean {\r\n return this.column.isFormula;\r\n }\r\n\r\n isReadOnlyColumn(): boolean {\r\n return this.column.IsReadOnly || this.column.isChildColumn;\r\n }\r\n\r\n async saveCellValue(){\r\n if(this.isFormulaColumn())\r\n return;\r\n \r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n let oldValue = this.rowVM.getValue(this.column, proxy);\r\n\r\n var newValue = (this).getValue();\r\n\r\n this.rowVM.setValue(this.column, newValue);\r\n if(!this.isInSurveyMode)\r\n this.rowVM.cellValueChanged(this.column, newValue, oldValue);\r\n }\r\n\r\n getFileSize(file: FileOrBlob): number {\r\n\r\n let fileAsFile = file as File;\r\n let fileAsBlob = file as Blob\r\n let fileAsList = file as FileList;\r\n let fileSize : number | undefined = 0;\r\n\r\n if (file){\r\n if (fileAsFile){\r\n fileSize = fileAsFile.size;\r\n }\r\n else if (fileAsBlob){\r\n fileSize = fileAsBlob.size;\r\n }\r\n else if (fileAsList){\r\n for (let index = 0; index < fileAsList.length; index++) {\r\n fileSize = fileAsList.item(index) && fileAsList.item(index)?.size != undefined ? \r\n fileAsList.item(index)?.size : 0;\r\n }\r\n }\r\n }\r\n return fileSize != undefined ? fileSize : 0;\r\n }\r\n}","\r\n import { Component, Watch } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n\r\n @Component({\r\n name: 'TextFormEditor',\r\n components: {\r\n }\r\n })\r\n export default class TextFormEditor extends FormEditor {\r\n currentValue: string = '';\r\n\r\n init(){\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.currentValue = this.rowVM.getValue(this.column, proxy);\r\n }\r\n\r\n getValue() {\r\n return this.currentValue;\r\n }\r\n }\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TextFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TextFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextFormEditor.vue?vue&type=template&id=ddea8a98&\"\nimport script from \"./TextFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextFormEditor.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('rich-text-field',{ref:\"richtextfield\",on:{\"blur\":_vm.onBlur},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v},expression:\"currentValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n import RichTextField from '@/views/Table/cellsComponents/RichText/RichTextField.vue'\r\n\r\n @Component({name: 'RichTextFormEditor', components: { RichTextField }})\r\n export default class RichTextFormEditor extends FormEditor {\r\n currentValue: string | null = null;\r\n\r\n init(){\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.currentValue = this.rowVM.getValue(this.column, proxy);\r\n this.$nextTick(() => {\r\n (this.$refs.richtextfield).init(); \r\n }); \r\n }\r\n\r\n getValue(){\r\n return this.currentValue;\r\n }\r\n\r\n onBlur(){\r\n this.saveCellValue();\r\n }\r\n }\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RichTextFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RichTextFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RichTextFormEditor.vue?vue&type=template&id=3dbef2c3&scoped=true&\"\nimport script from \"./RichTextFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./RichTextFormEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RichTextFormEditor.vue?vue&type=style&index=0&id=3dbef2c3&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 \"3dbef2c3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"editor\"},[_c('v-text-field',{ref:\"urlField\",staticClass:\"ma-2 editor--field\",attrs:{\"hide-details\":\"auto\",\"readonly\":_vm.isReadOnlyColumn(),\"outlined\":\"\",\"label\":_vm.urlLabel,\"placeholder\":_vm.urlPlaceholder,\"type\":\"url\",\"inputmode\":\"url\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\"))return null;return _vm.onUrlTabPress.apply(null, arguments)},\"blur\":_vm.saveCellValue},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-btn',{staticClass:\"editor-action-button\",attrs:{\"href\":_vm.formattedLinkUrl,\"color\":\"primary\",\"text\":\"\",\"elevation\":\"1\",\"target\":\"blank\"}},[_c('v-icon',[_vm._v(\"fal fa-external-link\")])],1)]},proxy:true}]),model:{value:(_vm.linkUrl),callback:function ($$v) {_vm.linkUrl=$$v},expression:\"linkUrl\"}}),_vm._v(\" \"),_c('v-text-field',{ref:\"displayNameField\",staticClass:\"ma-2 editor--field\",attrs:{\"hide-details\":\"auto\",\"readonly\":_vm.isReadOnlyColumn(),\"outlined\":\"\",\"label\":_vm.nameLabel,\"placeholder\":_vm.namePlaceholder},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\"))return null;return _vm.onNameTabPress.apply(null, arguments)},\"blur\":_vm.saveCellValue},model:{value:(_vm.linkName),callback:function ($$v) {_vm.linkName=$$v},expression:\"linkName\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import { Hyperlink } from '@/models/RowShare';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n\r\n @Component({\r\n name: 'HyperlinkFormEditor',\r\n components:{\r\n }\r\n })\r\n export default class HyperlinkFormEditor extends FormEditor { \r\n \r\n link: Hyperlink | null = null;\r\n\r\n init(){\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.link = new Hyperlink(this.rowVM.getValue(this.column, proxy));\r\n }\r\n\r\n getValue() {\r\n if(this.link != null) {\r\n let cellValue = this.link.url;\r\n if(this.link.displayName) {\r\n cellValue += \"|\" + this.link.displayName;\r\n }\r\n return cellValue;\r\n }\r\n return \"\";\r\n }\r\n\r\n onUrlTabPress(event: KeyboardEvent) {\r\n if(!event.shiftKey) {\r\n ((this.$refs.displayNameField).$el).focus();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n onNameTabPress(event: KeyboardEvent) {\r\n if(event.shiftKey) {\r\n ((this.$refs.urlField).$el).focus();\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n\r\n get linkUrl(): string {\r\n if(!this.link) {\r\n return \"\";\r\n }\r\n return this.link.url ?? \"\";\r\n }\r\n\r\n set linkUrl(value: string) {\r\n if(this.link) {\r\n this.link.url = value;\r\n }\r\n }\r\n\r\n get linkName(): string {\r\n if(!this.link) {\r\n return \"\";\r\n }\r\n return this.link.displayName ?? \"\";\r\n }\r\n\r\n set linkName(value: string) {\r\n if(this.link) {\r\n this.link.displayName = value;\r\n }\r\n }\r\n\r\n get urlLabel(): string {\r\n return this.$i18n.t(\"HyperlinkEditor_urlLabel\").toString();\r\n }\r\n\r\n get nameLabel(): string {\r\n return this.$i18n.t(\"HyperlinkEditor_nameLabel\").toString();\r\n }\r\n\r\n get urlPlaceholder() {\r\n return this.$i18n.t(\"HyperlinkEditor_urlPlaceholder\").toString();\r\n }\r\n\r\n get namePlaceholder() {\r\n return this.$i18n.t(\"HyperlinkEditor_namePlaceholder\").toString();\r\n }\r\n\r\n get formattedLinkUrl(): string {\r\n if(this.link != null) {\r\n if(this.link.url == \"\") {\r\n return \"\";\r\n }\r\n return this.link.url.startsWith('http') ? this.link.url : 'http://' + this.link.url;\r\n }\r\n return \"\";\r\n }\r\n }\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./HyperlinkFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./HyperlinkFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HyperlinkFormEditor.vue?vue&type=template&id=7057bbc8&scoped=true&\"\nimport script from \"./HyperlinkFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./HyperlinkFormEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HyperlinkFormEditor.vue?vue&type=style&index=0&id=7057bbc8&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 \"7057bbc8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"comment-renderer ml-3 my-3\",class:{'comment-renderer-empty': _vm.currentValue===0},attrs:{\"data-comment-count\":_vm.currentValue},on:{\"click\":function($event){return _vm.openCommentDialog()}}},[_c('i',{staticClass:\"v-icon notranslate fal fa-comment-alt-lines theme--light\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component } from 'vue-property-decorator';\r\nimport { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { rowEditCommentsEventParams, Event } from '@/models/Event';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport RsColumnManager from '@/columnProxies/RsColumnManager';\r\nimport CommentColumnProxy from '@/columnProxies/CommentColumnProxy';\r\nimport { Row } from '@/api/Api';\r\n\r\n@Component({\r\n name: 'CommentFormEditor'\r\n})\r\nexport default class CommentFormEditor extends FormEditor {\r\n currentValue: number = 0;\r\n proxy!: CommentColumnProxy;\r\n\r\n init() {\r\n this.proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.currentValue = this.rowVM.getValue(this.column, this.proxy);\r\n };\r\n\r\n openCommentDialog() {\r\n EventBus.$emit(Event.ROW_EDIT_COMMENTS, {\r\n row: (this.rowVM).rsRow,\r\n column: this.column,\r\n list: this.listVM.list,\r\n refreshParentRow: () => this.refreshParentRow()\r\n });\r\n\r\n }\r\n\r\n async refreshParentRow() {\r\n let updatedRow = await Row.load(this.rowVM.rsRow.Id);\r\n if(updatedRow) {\r\n this.rowVM.rsRow = updatedRow;\r\n this.currentValue = this.rowVM.getValue(this.column, this.proxy);\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CommentFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CommentFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommentFormEditor.vue?vue&type=template&id=8dc242d6&\"\nimport script from \"./CommentFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommentFormEditor.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-text-field',{staticClass:\"mb-1\",attrs:{\"solo\":\"\",\"flat\":\"\",\"single-line\":\"\",\"hide-details\":\"auto\",\"readonly\":_vm.isReadOnlyColumn()},on:{\"change\":_vm.updateDatePicker,\"blur\":_vm.validateDate},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-btn',{staticClass:\"editor-action-button\",attrs:{\"disabled\":_vm.isReadOnlyColumn(),\"elevation\":\"1\",\"text\":\"\"},on:{\"click\":function($event){_vm.showPicker=true}}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.pickerIcon))])],1)]},proxy:true}]),model:{value:(_vm.formattedDateTime),callback:function ($$v) {_vm.formattedDateTime=$$v},expression:\"formattedDateTime\"}}),_vm._v(\" \"),_c('v-dialog',{attrs:{\"max-width\":\"300\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},model:{value:(_vm.showPicker),callback:function ($$v) {_vm.showPicker=$$v},expression:\"showPicker\"}},[_c('v-card',{staticClass:\"editor\",attrs:{\"id\":\"datetimeEditorContainer\"}},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('vc-date-picker',{ref:\"datePicker\",attrs:{\"trim-weeks\":\"\",\"is-expanded\":\"\",\"mode\":_vm.selectionMode,\"locale\":_vm.locale,\"is24hr\":_vm.is24hrTimeFormat,\"is-required\":true},model:{value:(_vm.pickerValue),callback:function ($$v) {_vm.pickerValue=$$v},expression:\"pickerValue\"}})],1),_vm._v(\" \"),_c('v-card-actions',{staticClass:\"pt-0\"},[_c('v-btn',{staticClass:\"text-none pa-1\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.chooseNow}},[_vm._v(_vm._s(_vm.nowLabel))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none pa-1\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.closeEditor(true)}}},[_vm._v(_vm._s(_vm.$t('Action_Cancel')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none pa-1\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.closeEditor(false)}}},[_vm._v(_vm._s(_vm.$t('Action_Validate')))])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import { DateTime } from '@/utils/Date';\r\n import { ColumnStrongType } from '@/models/RowShare';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n import moment from 'moment';\r\n\r\n @Component({\r\n name: 'DateTimeFormEditor',\r\n components: {\r\n }\r\n })\r\n export default class DateTimeFormEditor extends FormEditor {\r\n currentValue: Date | null = null;\r\n formattedDateTime: string = \"\";\r\n showPicker: boolean = false;\r\n\r\n init(){\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.currentValue = DateTime.parseDateTime(this.rowVM.getValue(this.column, proxy), null);\r\n this.pickerValue = this.currentValue;\r\n this.updateFormattedDate();\r\n }\r\n\r\n getValue() {\r\n return this.currentValue;\r\n }\r\n\r\n get isDateTime():boolean {\r\n return this.column.isDateTimeFormat;\r\n }\r\n\r\n get isReminder():boolean {\r\n return this.column.Type == ColumnStrongType.Reminder;\r\n }\r\n\r\n get selectionMode() {\r\n return this.isDateTime ? 'dateTime' : 'date';\r\n }\r\n\r\n get locale() {\r\n return window.navigator.language;\r\n }\r\n\r\n get pickerValue(): Date | null {\r\n return this.currentValue;\r\n }\r\n\r\n set pickerValue(value: Date | null) {\r\n\r\n if(value) {\r\n this.currentValue = value;\r\n }\r\n let picker = (this.$refs.datePicker);\r\n if(picker && this.pickerValue != null){\r\n picker.move(this.pickerValue);\r\n }\r\n }\r\n\r\n validateDate() {\r\n this.saveCellValue();\r\n }\r\n\r\n updateFormattedDate() {\r\n let options: any = {dateStyle: \"short\", timeStyle: \"short\"};\r\n if(this.currentValue) {\r\n this.formattedDateTime = this.isDateTime ? this.currentValue.toLocaleString(navigator.language, options) : this.currentValue.toLocaleDateString(navigator.language);\r\n }\r\n else\r\n {\r\n this.formattedDateTime = \"\";\r\n }\r\n }\r\n\r\n pickerChanged() {\r\n this.updateFormattedDate();\r\n this.saveCellValue();\r\n }\r\n\r\n updateDatePicker() {\r\n moment.locale(this.locale);\r\n let date = moment(this.formattedDateTime, [\"L LT\", \"L LTS\"]);\r\n if(date.isValid()){\r\n this.pickerValue = date.toDate();\r\n (this.$refs.datePicker).move(this.pickerValue);\r\n }\r\n else\r\n {\r\n this.currentValue = null;\r\n this.pickerValue = null;\r\n }\r\n }\r\n\r\n get nowLabel() {\r\n if(this.isDateTime) {\r\n return this.$i18n.t('Action_Now').toString();\r\n }\r\n else {\r\n return this.$i18n.t('Action_Today').toString();\r\n }\r\n }\r\n\r\n closeEditor(cancel: boolean) {\r\n this.showPicker = false;\r\n if(!cancel) {\r\n this.pickerChanged();\r\n }\r\n else {\r\n this.updateDatePicker();\r\n }\r\n }\r\n\r\n chooseNow() {\r\n this.pickerValue = moment().toDate();\r\n }\r\n\r\n\r\n get is24hrTimeFormat(): boolean {\r\n moment.locale(this.locale);\r\n // Try to parse a time in 24hr format using browser locale.\r\n // if date is invalid, browser is in 12hr time format\r\n let date = moment(\"14:00\", \"LT\", true);\r\n return date.isValid();\r\n }\r\n\r\n get pickerIcon(): string {\r\n if(this.isReminder) {\r\n return \"fa fa-bell\";\r\n }\r\n else {\r\n return \"fal fa-calendar\";\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DateTimeFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DateTimeFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DateTimeFormEditor.vue?vue&type=template&id=913c579e&scoped=true&\"\nimport script from \"./DateTimeFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./DateTimeFormEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DateTimeFormEditor.vue?vue&type=style&index=0&id=913c579e&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 \"913c579e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{ref:\"editor\",attrs:{\"title\":_vm.currentValue,\"readOnly\":_vm.isReadOnlyColumn(),\"inputMode\":\"email\",\"solo\":\"\",\"flat\":\"\",\"single-line\":\"\",\"hide-details\":\"auto\"},on:{\"blur\":_vm.saveCellValue},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-btn',{staticClass:\"editor-action-button\",attrs:{\"href\":_vm.mailtoLink,\"text\":\"\",\"elevation\":\"1\",\"color\":\"primary\"}},[_c('v-icon',[_vm._v(\"fal fa-envelope\")])],1)]},proxy:true}]),model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v},expression:\"currentValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n\r\n @Component({\r\n name: 'EmailFormEditor',\r\n components:{\r\n }\r\n })\r\n export default class EmailFormEditor extends FormEditor {\r\n currentValue: string = '';\r\n\r\n init(){\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.currentValue = this.rowVM.getValue(this.column, proxy); \r\n }\r\n\r\n checkEmail(value: string) : boolean {\r\n var reg = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\r\n if (!reg.test(value)) \r\n return false;\r\n return true;\r\n }\r\n\r\n getValue() {\r\n return this.currentValue;\r\n }\r\n \r\n get mailtoLink() {\r\n if(this.checkEmail(this.currentValue)) {\r\n return `mailto:${this.currentValue}`;\r\n }\r\n return \"\";\r\n }\r\n }\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EmailFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EmailFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmailFormEditor.vue?vue&type=template&id=469eebb6&\"\nimport script from \"./EmailFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmailFormEditor.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pa-1 image-form-editor-wrapper\"},[_c('blob-field',{ref:\"blobfield\",attrs:{\"column\":_vm.column,\"rowVM\":_vm.rowVM},model:{value:(_vm.currentFile),callback:function ($$v) {_vm.currentFile=$$v},expression:\"currentFile\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import BlobField from '@/views/Table/cellsComponents/Blob/BlobField.vue';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n import FileVM from '@/viewModels/Table/FileVM';\r\n\r\n @Component({ name: 'BlobFormEditor', components:{ BlobField } })\r\n export default class BlobFormEditor extends FormEditor {\r\n pCurrentFile: FileVM | null = null;\r\n\r\n get currentFile() : FileVM | null{\r\n return this.pCurrentFile;\r\n }\r\n set currentFile(value : FileVM | null){\r\n this.pCurrentFile = value;\r\n this.saveCellValue();\r\n }\r\n\r\n init() : void {\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.currentFile = this.rowVM.getValue(this.column, proxy);\r\n } \r\n \r\n getValue() {\r\n return this.currentFile;\r\n }\r\n }\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BlobFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BlobFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BlobFormEditor.vue?vue&type=template&id=65fef774&scoped=true&\"\nimport script from \"./BlobFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BlobFormEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BlobFormEditor.vue?vue&type=style&index=0&id=65fef774&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 \"65fef774\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{directives:[{name:\"currency\",rawName:\"v-currency\",value:(_vm.options),expression:\"options\"}],ref:\"numberInput\",attrs:{\"value\":_vm.formattedValue,\"solo\":\"\",\"flat\":\"\",\"single-line\":\"\",\"hide-details\":\"auto\",\"inputMode\":\"numeric\",\"readonly\":_vm.isReadOnly},on:{\"change\":_vm.onChange,\"input\":_vm.onInput,\"blur\":_vm.saveCellValue}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n import { CurrencyInputOptions } from 'vue-currency-input';\r\n import numeral from 'numeral';\r\n import { Utils } from '@/utils/Utilities';\r\n\r\n @Component({\r\n name: 'NumberFormEditor'\r\n })\r\n export default class NumberFormEditor extends FormEditor {\r\n currentValue: Number | null = null;\r\n isPercentage: boolean = false;\r\n maxValue: number | null = null;\r\n minValue: number | null = null;\r\n\r\n options : CurrencyInputOptions = {currency: undefined};\r\n formattedValue: string | null = null;\r\n\r\n onInput(value: any) {\r\n this.formattedValue = value;\r\n }\r\n\r\n onChange(value: any) {\r\n this.formattedValue = value;\r\n }\r\n\r\n created() {\r\n if(this.column) {\r\n this.isPercentage = this.column.isPercentage;\r\n if(Utils.isNumber(this.column.MinValue)) {\r\n this.minValue = this.column.MinValue;\r\n if(this.isPercentage) {\r\n this.minValue = this.minValue * 100;\r\n }\r\n }\r\n if(Utils.isNumber(this.column.MaxValue)) {\r\n this.maxValue = this.column.MaxValue;\r\n if(this.isPercentage) {\r\n this.maxValue = this.maxValue * 100;\r\n }\r\n }\r\n }\r\n this.options.distractionFree = { hideCurrencySymbol: true, hideGroupingSymbol: true, hideNegligibleDecimalDigits: false}\r\n if(this.column?.MaxDecimals) {\r\n this.options.precision = !this.isPercentage ? this.column.MaxDecimals : ((this.column.MaxDecimals - 2) < 0 ? 0 : (this.column?.MaxDecimals - 2));\r\n }\r\n else {\r\n this.options.precision = 0;\r\n }\r\n this.$ci.globalOptions = this.options;\r\n }\r\n\r\n init(){\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n let cellValue = numeral(this.rowVM.getValue(this.column, proxy) ?? null);\r\n if(cellValue.value() !== null && this.isPercentage) {\r\n cellValue = cellValue.multiply(100);\r\n }\r\n if(cellValue.value() === null)\r\n this.formattedValue = null;\r\n this.$ci.setValue(this.$refs.numberInput, cellValue.value());\r\n }\r\n\r\n getValue() {\r\n let value = numeral(this.$ci.getValue(this.$refs.numberInput));\r\n if(value.value() === null) {\r\n return null;\r\n }\r\n return this.isPercentage ? value.divide(100).value() : value.value(); \r\n }\r\n \r\n get isReadOnly() {\r\n return this.column.IsReadOnly || this.column.isGenerated;\r\n }\r\n }\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NumberFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NumberFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NumberFormEditor.vue?vue&type=template&id=fa7f755c&\"\nimport script from \"./NumberFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./NumberFormEditor.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.textFieldVisible)?_c('v-text-field',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('##:##:?#?#'),expression:\"'##:##:?#?#'\"}],staticClass:\"editor\",attrs:{\"readonly\":_vm.isReadOnlyColumn(),\"solo\":\"\",\"flat\":\"\",\"single-line\":\"\",\"hide-details\":\"auto\"},on:{\"blur\":_vm.saveCellValue},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v},expression:\"currentValue\"}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n\r\n @Component({\r\n name: 'TimeFormEditor',\r\n components: {\r\n }\r\n })\r\n export default class TimeFormEditor extends FormEditor {\r\n currentValue: string = \"\";\r\n textFieldVisible = true;\r\n\r\n init() {\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.currentValue = this.rowVM.getValue(this.column, proxy);\r\n\r\n // force refreshing the input to fix a conflict between v-mask and vuetify\r\n this.textFieldVisible = false;\r\n this.$nextTick(() => this.textFieldVisible = true );\r\n }\r\n\r\n getValue(){\r\n if(this.currentValue.match(/^\\d{2}:\\d{2}:\\d{2}$/) || this.currentValue.match(/^\\d{2}:\\d{2}$/))\r\n return this.currentValue;\r\n if(this.currentValue.match(/^\\d{2}:\\d{2}:\\d{1}$/) || this.currentValue.match(/^\\d{2}:\\d{1}$/))\r\n return this.currentValue + '0';\r\n if(this.currentValue.match(/^\\d{2}:\\d{2}:$/)) \r\n return this.currentValue.substring(0, 5);\r\n else {\r\n return this.currentValue;\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TimeFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TimeFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeFormEditor.vue?vue&type=template&id=f7e726a0&scoped=true&\"\nimport script from \"./TimeFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeFormEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimeFormEditor.vue?vue&type=style&index=0&id=f7e726a0&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 \"f7e726a0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-checkbox',{staticClass:\"editor ma-0 pa-0 pl-3 my-2\",attrs:{\"readonly\":_vm.isReadOnlyColumn(),\"color\":\"primary\",\"hide-details\":\"auto\",\"ripple\":false,\"on-icon\":\"fal fa-check-square\",\"off-icon\":\"fal fa-square\"},on:{\"change\":_vm.saveCellValue},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v},expression:\"currentValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\n import RsColumnManager from '@/columnProxies/RsColumnManager';\r\n import { Utils } from '@/utils/Utilities';\r\n\r\n @Component({\r\n name: 'TwoStatesBooleanFormEditor',\r\n components: {\r\n }\r\n })\r\n export default class TwoStatesBooleanFormEditor extends FormEditor {\r\n currentValue: boolean = false;\r\n\r\n init() {\r\n const proxy = RsColumnManager.getProxy(this.column.Type);\r\n this.currentValue = Utils.parseBoolean(this.rowVM.getValue(this.column, proxy), false);\r\n }\r\n\r\n getValue() {\r\n return this.currentValue;\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!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TwoStatesBooleanFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TwoStatesBooleanFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TwoStatesBooleanFormEditor.vue?vue&type=template&id=1c0ffafe&scoped=true&\"\nimport script from \"./TwoStatesBooleanFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TwoStatesBooleanFormEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TwoStatesBooleanFormEditor.vue?vue&type=style&index=0&id=1c0ffafe&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 \"1c0ffafe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"editor mb-1\",attrs:{\"id\":\"container\"}},[_c('lookup-field',{ref:\"lookupfield\",attrs:{\"rowVM\":_vm.rowVM,\"column\":_vm.column,\"listVM\":_vm.listVM},on:{\"valueChanged\":_vm.onValueChanged}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Watch } from 'vue-property-decorator';\r\nimport { FormEditor } from '@/views/Table/cellsComponents/FormEditor';\r\nimport LookupField from '@/views/Table/cellsComponents/Lookup/LookupField.vue'\r\n\r\n@Component({ name: 'LookUpFormEditor', components: { LookupField }})\r\nexport default class LookUpFormEditor extends FormEditor {\r\n\r\n get lookupfield() : LookupField {\r\n return this.$refs.lookupfield;\r\n }\r\n\r\n async init() {\r\n this.lookupfield.init();\r\n }\r\n\r\n getValue(){\r\n return this.lookupfield.getValue();\r\n }\r\n\r\n onValueChanged() {\r\n this.saveCellValue();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LookUpFormEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LookUpFormEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LookUpFormEditor.vue?vue&type=template&id=e564af80&scoped=true&\"\nimport script from \"./LookUpFormEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./LookUpFormEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LookUpFormEditor.vue?vue&type=style&index=0&id=e564af80&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 \"e564af80\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Vue, Prop } from 'vue-property-decorator';\r\n import * as RowShare from '@/models/RowShare';\r\n import ListVM from '@/viewModels/Table/listVM';\r\n import RowVM from '@/viewModels/Table/rowVM';\r\n import FormViewVM from '@/viewModels/Table/formViewVM';\r\n import { ColumnDescriptionVM } from '@/viewModels/Table/ColumnDescriptionVM';\r\n import ColumnDescription from \"@/views/Table/ColumnDescription.vue\"\r\n import TextFormEditor from '@/views/Table/cellsComponents/Text/TextFormEditor.vue';\r\n import RichTextFormEditor from '@/views/Table/cellsComponents/RichText/RichTextFormEditor.vue';\r\n import HyperlinkFormEditor from '@/views/Table/cellsComponents/Hyperlink/HyperlinkFormEditor.vue';\r\n import CommentFormEditor from '@/views/Table/cellsComponents/Comment/CommentFormEditor.vue';\r\n import DateTimeFormEditor from '@/views/Table/cellsComponents/DateTime/DateTimeFormEditor.vue';\r\n import EmailFormEditor from '@/views/Table/cellsComponents/Email/EmailFormEditor.vue';\r\n import BlobFormEditor from '@/views/Table/cellsComponents/Blob/BlobFormEditor.vue';\r\n import NumberFormEditor from '@/views/Table/cellsComponents/Number/NumberFormEditor.vue';\r\n import TimeFormEditor from '@/views/Table/cellsComponents/DateTime/TimeFormEditor.vue';\r\n import TwoStatesBooleanFormEditor from '@/views/Table/cellsComponents/TwoStateBoolean//TwoStatesBooleanFormEditor.vue';\r\n import LookUpFormEditor from '@/views/Table/cellsComponents/Lookup/LookUpFormEditor.vue';\r\n import ProxyBasedCardRenderer from '@/views/Table/CardView/ProxyBasedCardRenderer.vue';\r\n import CommentCardRenderer from '@/views/Table/cellsComponents/Comment/CommentCardRenderer.vue';\r\n import TwoStatesBooleanCardRenderer from '@/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanCardRenderer.vue'\r\n\r\n @Component({\r\n name: 'RowFormView',\r\n components: {\r\n ColumnDescription, ProxyBasedCardRenderer, CommentCardRenderer, TwoStatesBooleanCardRenderer, \r\n TextFormEditor, RichTextFormEditor, HyperlinkFormEditor, CommentFormEditor, DateTimeFormEditor, EmailFormEditor,\r\n BlobFormEditor, NumberFormEditor, TimeFormEditor, TwoStatesBooleanFormEditor, LookUpFormEditor\r\n }\r\n })\r\n export default class RowFormView extends Vue {\r\n\r\n @Prop() listVM!: ListVM;\r\n @Prop() rowVM!: RowVM;\r\n @Prop() colDesc!: ColumnDescriptionVM;\r\n @Prop() cellState!: string;\r\n @Prop() cellError!: string;\r\n @Prop() focus!: boolean;\r\n @Prop({default: false}) isInSurveyMode !: boolean;\r\n \r\n formViewVM!: FormViewVM;\r\n\r\n private showColumnDescription: boolean = false;\r\n\r\n getComponentName(colDesc: ColumnDescriptionVM) {\r\n if(!colDesc.currentColumn)\r\n return \"\";\r\n \r\n let typeName = colDesc.currentColumn.Type.toString();\r\n if (colDesc.currentColumn.isNumber) {\r\n typeName = 'Number';\r\n }\r\n else if(colDesc.currentColumn.isDateTimeFormat || colDesc.currentColumn.isDateFormat) {\r\n typeName = \"DateTime\";\r\n }\r\n else if((colDesc.currentColumn.isLookup)) {\r\n typeName = \"LookUp\";\r\n }\r\n else if(typeName == \"File\" || typeName == \"Image\") {\r\n typeName = \"Blob\";\r\n }\r\n return typeName + 'FormEditor';\r\n }\r\n \r\n columnRendererName(column : RowShare.Column){\r\n switch(column.Type){\r\n case RowShare.ColumnStrongType.Comment:\r\n return 'CommentCardRenderer';\r\n case RowShare.ColumnStrongType.TwoStatesBoolean:\r\n return 'TwoStatesBooleanCardRenderer';\r\n default:\r\n return 'ProxyBasedCardRenderer';\r\n }\r\n }\r\n\r\n isCellAccessible(colDesc: ColumnDescriptionVM): boolean {\r\n return this.rowVM.rsRow?.Values[colDesc.columnTitle] !== RowVM.cellNotAccessible;\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CellFormView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./CellFormView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CellFormView.vue?vue&type=template&id=1abe96a2&\"\nimport script from \"./CellFormView.vue?vue&type=script&lang=ts&\"\nexport * from \"./CellFormView.vue?vue&type=script&lang=ts&\"\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","\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport RemindUsersDialog from '@/views/Table/ListActions/RemindUsersDialog.vue';\r\nimport { ApplicationModule } from '@/store/ApplicationStore'\r\nimport * as RowShare from '@/models/RowShare';\r\nimport * as API from \"@/api/Api\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { Location as RouterLocation, Route } from \"vue-router\";\r\nimport PageLoadSpinner from \"@/views/layouts/LayoutParts/PageLoadSpinner.vue\";\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport FormViewVM from '@/viewModels/Table/formViewVM';\r\nimport { ColumnDescriptionVM, ColumnDescriptionCollection } from '@/viewModels/Table/ColumnDescriptionVM';\r\nimport Bigram from \"@/views/components/Bigram.vue\";\r\nimport CellFormView from '@/views/Table/FormView/CellFormView.vue';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport GridActions from '@/viewModels/Table/GridActions';\r\nimport ProxyBasedCardRenderer from '@/views/Table/CardView/ProxyBasedCardRenderer.vue';\r\nimport CommentCardRenderer from '@/views/Table/cellsComponents/Comment/CommentCardRenderer.vue';\r\nimport TwoStatesBooleanCardRenderer from '@/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanCardRenderer.vue';\r\nimport i18n from '@/modules/Localization';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\n@Component({\r\n name: 'RowFormView',\r\n components: {\r\n PageLoadSpinner, Bigram, RemindUsersDialog,\r\n ProxyBasedCardRenderer, CommentCardRenderer, TwoStatesBooleanCardRenderer, CellFormView\r\n }\r\n})\r\nexport default class RowFormView extends Vue {\r\n\r\n @Prop() listVM!: ListVM;\r\n @Prop() rowId !: string;\r\n @Prop({ default: 'view' }) editorState !: RowShare.EditorState;\r\n @Prop({ default: true }) showBottomNavigation!: boolean;\r\n @Prop({ default: false }) sidePanelMode!: boolean;\r\n \r\n formViewVM!: FormViewVM;\r\n\r\n navigatingFromNewToRowId = false;\r\n \r\n private columnDescriptions: ColumnDescriptionCollection = new ColumnDescriptionCollection();\r\n private cellStates : (\"form-cell-error\"|\"form-cell-saving\"|\"form-cell-readonly\"|\"\")[] = [];\r\n private cellErrors : (string|null)[] = [];\r\n\r\n private rowVM : RowVM | null = null;\r\n \r\n created(){\r\n this.formViewVM = new FormViewVM(this.listVM);\r\n\r\n EventBus.$on(RowShare.Event.VALIDATE_FORM, () => {\r\n (this.$refs.formEditor as Vue & { validate: () => boolean })?.validate();\r\n });\r\n \r\n ApplicationModule.updateAppCommands(this.setCommand());\r\n window.addEventListener('beforeunload', this.beforeUnload);\r\n\r\n this.init();\r\n }\r\n\r\n async mounted() : Promise{\r\n this.onListLoaded();\r\n\r\n this.initCols();\r\n this.formViewVM.setRowUpdateCallBack(rowVM => this.refreshRowState(rowVM));\r\n }\r\n\r\n @Watch(\"listVM.columns\")\r\n initCols(){\r\n if(!this.listVM.columns)\r\n return;\r\n\r\n this.columnDescriptions = new ColumnDescriptionCollection();\r\n var columns: RowShare.Column[] = [...this.listVM.columns];\r\n\r\n while(columns.length > 0) {\r\n let col = columns.splice(0, 1);\r\n let colDesc = new ColumnDescriptionVM(col[0]);\r\n this.columnDescriptions.add(colDesc);\r\n if(!Utils.isNullOrWhiteSpace(col[0].ColumnGroup)) {\r\n let index: number = -1;\r\n do {\r\n index = columns.findIndex(c => c.ColumnGroup === col[0].ColumnGroup);\r\n if(index > -1) {\r\n col = columns.splice(index, 1);\r\n colDesc = new ColumnDescriptionVM(col[0]);\r\n this.columnDescriptions.add(colDesc);\r\n }\r\n } while(index > -1);\r\n }\r\n }\r\n }\r\n\r\n\r\n beforeDestroy() {\r\n EventBus.$off(\r\n [\r\n RowShare.Event.ROW_UPDATED, \r\n RowShare.Event.VALIDATE_FORM\r\n ]\r\n );\r\n window.removeEventListener('beforeunload', this.beforeUnload);\r\n this.formViewVM.dispose();\r\n }\r\n\r\n get canAddRow(): boolean {\r\n return this.listVM?.canAddNewRow;\r\n }\r\n\r\n get canDeleteRow(){\r\n if(!this.listVM.list || !this.rowVM) {\r\n return false;\r\n }\r\n return ((this.rowVM.rsRow.CanSuppress)\r\n && ((this.listVM.list?.Owned ?? false)\r\n || !(this.listVM.hasReadOnlyColumns)\r\n && !(this.listVM.hasHiddenColumns))\r\n && !this.rowVM.isLocked);\r\n }\r\n\r\n get canDuplicateRow(){\r\n return this.listVM.list?.CanCreate\r\n && !this.listVM.hasUniqueColumns\r\n && !this.sidePanelMode;\r\n }\r\n\r\n /** \r\n * This method is called by formViewVM everytime a row is refreshed\r\n * It is used to refresh the UI with error icon or saving spinner\r\n **/\r\n refreshRowState(rowVM: RowVM){\r\n if(!this.listVM.columns || !this.listVM.list)\r\n return;\r\n\r\n if(rowVM.rowVMId != this.rowVM?.rowVMId)\r\n return;\r\n\r\n var cellStates : (\"form-cell-error\"|\"form-cell-saving\"|\"form-cell-readonly\"|\"\")[] = [];\r\n var cellErrors : (string|null)[] = [];\r\n for(let i = 0; i < (this.listVM.columns.length); ++i){\r\n var col = this.listVM.columns[i];\r\n\r\n cellErrors.push(this.rowVM.getCellError(col));\r\n \r\n if(this.rowVM?.isSavingCell(col)) {\r\n cellStates.push(\"form-cell-saving\");\r\n } else if(this.rowVM?.hasCellError(col)) {\r\n cellStates.push(\"form-cell-error\");\r\n } else if(!this.rowVM.rsRow.CanUpdate || this.rowVM.isLocked) {\r\n cellStates.push(\"form-cell-readonly\");\r\n } else {\r\n cellStates.push(\"\");\r\n }\r\n }\r\n\r\n // no error, not saving, this may be a succesfull save\r\n // for new row, first save should refresh the URL to prevent creating another new row on F5 and allow URL sharing\r\n // We also check if we are in formView to prevent navigating to it when showing calendarView\r\n if(!this.rowVM.hasError && !this.rowVM.valuesBeingSaved && this.rowId.toLowerCase() == \"new\" && this.rowVM.rsRow.Id && !this.navigatingFromNewToRowId\r\n && this.$route.name === 'Form') {\r\n this.navigatingFromNewToRowId = true; // prevent multiple navigation to the same route, that would crash the router\r\n this.$router.push({ \r\n name: 'Form',\r\n params: { listId: this.listVM.list.Id, rowId: rowVM.rsRow.Id },\r\n });\r\n }\r\n \r\n this.cellStates = cellStates;\r\n this.cellErrors = cellErrors;\r\n }\r\n\r\n private rowPosition = 0;\r\n private nextRowId : string | null= null;\r\n private previousRowId : string | null= null;\r\n\r\n @Watch(\"rowId\")\r\n onRowIdChanged(){\r\n this.init();\r\n }\r\n\r\n @Watch(\"listVM.rowVMs\")\r\n onRowVMsChanged(){\r\n this.init();\r\n }\r\n\r\n init(){\r\n this.navigatingFromNewToRowId = false;\r\n\r\n if(!this.listVM.list || !this.listVM.rowVMs)\r\n return;\r\n\r\n if(this.rowId.toLowerCase() == \"new\") {\r\n let newRowVM = this.listVM.rowVMs?.find(r => r.isNew) ?? null;\r\n if(newRowVM == null) {\r\n newRowVM = RowVM.createNewRow(this.listVM, this.listVM.list.Id);\r\n this.listVM.rowVMs.push(newRowVM);\r\n }\r\n this.rowVM = newRowVM;\r\n } else {\r\n this.rowVM = this.listVM.rowVMs?.find(r => r.rsRow.Id == this.rowId) ?? null;\r\n }\r\n \r\n if(!this.rowVM?.rsRow)\r\n return 0;\r\n\r\n this.refreshRowState(this.rowVM);\r\n this.setPreviousLocation();\r\n\r\n let pos = 1;\r\n let prev : RowVM | null = null;\r\n let next : RowVM | null = null;\r\n for(let i = 0; i < this.listVM.rowVMs.length; ++i) {\r\n let loopRowVM = this.listVM.rowVMs[i];\r\n \r\n if(loopRowVM.rsRow.Index < this.rowVM.rsRow.Index)\r\n pos++;\r\n\r\n if(loopRowVM.rsRow.Index < this.rowVM.rsRow.Index && (prev == null || loopRowVM.rsRow.Index > prev.rsRow.Index))\r\n prev = loopRowVM;\r\n\r\n if(loopRowVM.rsRow.Index > this.rowVM.rsRow.Index && (next == null || loopRowVM.rsRow.Index < next.rsRow.Index))\r\n next = loopRowVM;\r\n }\r\n \r\n this.rowPosition = pos;\r\n this.previousRowId = prev?.rsRow.Id ?? null;\r\n this.nextRowId = next?.rsRow.Id ?? null;\r\n }\r\n\r\n goBackward(){\r\n this.handleBeforeRouteLeave(() => {\r\n if(!this.previousRowId || !this.listVM.list)\r\n return;\r\n\r\n this.$router.push({ \r\n name: 'Form',\r\n params: { listId: this.listVM.list.Id, rowId: this.previousRowId, mode: 'details' },\r\n });\r\n }); \r\n }\r\n\r\n goForward(){\r\n this.handleBeforeRouteLeave(() => {\r\n if(!this.nextRowId || !this.listVM.list)\r\n return;\r\n\r\n this.$router.push({ \r\n name: 'Form',\r\n params: { listId: this.listVM.list.Id, rowId: this.nextRowId, mode: 'details' },\r\n });\r\n });\r\n }\r\n\r\n addRow(){\r\n if(!this.listVM.list)\r\n return;\r\n\r\n this.$router.push({ \r\n name: 'Form',\r\n params: { listId: this.listVM.list.Id, rowId: 'new' },\r\n });\r\n }\r\n\r\n setPreviousLocation() {\r\n let previousLocation = this.listVM.list?.Id ?\r\n {\r\n name: 'Table',\r\n params: { listId: this.listVM.list.Id },\r\n query: { currentRowId: this.rowVM?.rsRow.Id }\r\n } : '';\r\n ApplicationModule.updateAppPreviousLocation(previousLocation); \r\n }\r\n\r\n @Watch(\"listVM.list\")\r\n onListLoaded(){\r\n this.setPreviousLocation(); \r\n if(this.listVM.list) {\r\n document.title = this.listVM.list.DisplayName + \" | RowShare\";\r\n } else {\r\n document.title = \"RowShare\";\r\n }\r\n }\r\n\r\n removeRow(){\r\n if(!this.rowVM) {\r\n console.error(\"Failed deleting the row\");\r\n return;\r\n }\r\n \r\n GridActions.removeRow(this.rowVM, this.formViewVM, false, () => {\r\n if(!this.sidePanelMode) {\r\n if(this.$vuetify.breakpoint.mobile || this.listVM.rowVMs?.length === 0) {\r\n let previousLocation = this.listVM.list?.Id ?\r\n {\r\n name: 'Table',\r\n params: { listId: this.listVM.list.Id }\r\n } : '';\r\n this.$router.push(previousLocation);\r\n }\r\n else {\r\n if(this.previousRowId) {\r\n this.goBackward();\r\n }\r\n else if(this.nextRowId) {\r\n this.goForward();\r\n }\r\n }\r\n }\r\n this.$emit('rowDeleted');\r\n }); \r\n }\r\n \r\n async cloneRow(){\r\n if(!this.rowVM || !this.listVM.rowVMs)\r\n return;\r\n\r\n let clonedRow = await API.Row.clone(this.rowVM.rsRow.Id, true, RealTimeCollaborationModule.connection.connectionId);\r\n this.listVM.rowVMs.push(new RowVM(this.listVM, clonedRow))\r\n\r\n let newLocation = this.listVM.list?.Id ?\r\n {\r\n name: 'Form',\r\n params: { listId: this.listVM.list.Id, rowId: clonedRow.Id }\r\n } : '';\r\n this.$router.push(newLocation);\r\n }\r\n \r\n isRemindUsersModalOpen: boolean = false;\r\n \r\n onRemindUsersClicked() {\r\n this.isRemindUsersModalOpen = true;\r\n }\r\n\r\n get canRemindUsers(): boolean {\r\n if(!this.listVM?.list || !this.rowVM) {\r\n return false;\r\n }\r\n return this.listVM.list.Owned && !this.rowVM.isLocked;\r\n }\r\n\r\n onRowMergeClicked() {\r\n if(!this.listVM.rowVMs || !this.listVM.list || !this.rowVM)\r\n return;\r\n\r\n let context = new RowShare.ReportGenerationContext();\r\n context.rowIds = [this.rowVM.rsRow.Id];\r\n context.totalTableRowCount = this.listVM.list.RowCount;\r\n context.hasReadOnlyRows = !this.rowVM.rsRow.CanUpdate || this.rowVM.isLocked;\r\n\r\n EventBus.$emit(RowShare.Event.ROWMERGE_REQUEST, context);\r\n }\r\n \r\n get canRunRowMerge(): boolean {\r\n if(!this.rowVM) {\r\n return false;\r\n }\r\n return (ListTreeModule.currentListCapabilities?.rowMerge ?? false);\r\n }\r\n\r\n onCellClicked(colDesc: ColumnDescriptionVM){\r\n if(!this.rowVM?.rsRow.CanUpdate) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: RowShare.NotificationType.warning,\r\n title: i18n.t('FormView_ReadonlyRow_Title').toString(),\r\n message: i18n.t('FormView_ReadonlyRow_Detail').toString(),\r\n duplicateId: \"FormViewReadonlyCellClicked\"\r\n });\r\n }\r\n else if(this.rowVM.isLocked) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Notif_LockedRow\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n }\r\n else {\r\n if(colDesc?.columnIsChild ?? false) {\r\n if(this.rowVM?.rsRow && this.rowVM.rsRow.Values[colDesc.columnTitle] === RowVM.cellNotAccessible) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n title: i18n.t(\"Notif_NotEditableCell\").toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n duplicateId: \"NotEditableCellClicked\"\r\n });\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.ROW_EDIT_RELATED_ROWS, {\r\n rowVM: this.rowVM,\r\n relatedListId: colDesc.currentColumn?.RelatedListId,\r\n column: colDesc.currentColumn,\r\n refreshParentRow: () => {}\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n setCommand(): Array {\r\n let commands = new Array();\r\n\r\n let commandDelete = new RowShare.CommandEvent();\r\n commandDelete.order = 2;\r\n commandDelete.icon = 'trash';\r\n commandDelete.eventName = RowShare.Event.ROW_DELETE;\r\n commandDelete.color = '#fff';\r\n commandDelete.isToggable = false;\r\n commandDelete.isActive = false;\r\n\r\n commands.push(commandDelete);\r\n return commands;\r\n }\r\n\r\n beforeRouteLeave(to: Route, from: Route, next: any){\r\n this.handleBeforeRouteLeave(() => next()); \r\n }\r\n\r\n canLeaveRoute(){\r\n return !this.rowVM || this.rowVM.removed == true || (!this.rowVM.dirtyValues && !this.rowVM.valuesBeingSaved);\r\n }\r\n\r\n handleBeforeRouteLeave(callback : () => void) {\r\n if(!this.canLeaveRoute()){\r\n let event = new RowShare.ConfirmationRequiredEventParams();\r\n event.title = this.$i18n.t('NotSavedItemsDialog_Title').toString();\r\n event.description1 = this.$i18n.t('NotSavedItemsDialog_Description').toString();\r\n event.cancelButtonText = this.$i18n.t('NotSavedItemsDialog_Cancel').toString();\r\n event.actionButtonText = this.$i18n.t('NotSavedItemsDialog_Validate').toString();\r\n event.actionButtonColor = \"primary\";\r\n event.onConfirmation = async () => {\r\n callback();\r\n };\r\n EventBus.$emit(RowShare.Event.CLEAR_ALL_GLOBAL_NOTIFICATIONS);\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, event);\r\n }\r\n else {\r\n callback();\r\n }\r\n }\r\n\r\n beforeUnload(evt: BeforeUnloadEvent) {\r\n if(!this.canLeaveRoute()){\r\n evt.returnValue = this.$i18n.t('NotSavedItemsDialog_Description');\r\n evt.preventDefault();\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowFormView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowFormView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RowFormView.vue?vue&type=template&id=dbc20344&scoped=true&\"\nimport script from \"./RowFormView.vue?vue&type=script&lang=ts&\"\nexport * from \"./RowFormView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RowFormView.vue?vue&type=style&index=0&id=dbc20344&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 \"dbc20344\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Prop, Vue, Component, Watch} from 'vue-property-decorator';\r\nimport CardView from '@/views/Table/CardView/CardView.vue';\r\nimport RowFormView from '@/views/Table/FormView/RowFormView.vue';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport ListToolbar from '@/views/Table/ListActions/ListToolbar.vue';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport RowMergeDialog from '@/views/Table/ListActions/RowMergeDialog.vue';\r\nimport CommentEditorDialog from '@/views/Table/CommentEditorDialog.vue';\r\nimport RelationEditorDialog from '@/views/Table/cellsComponents/Relation/RelationEditorDialog.vue';\r\n\r\n@Component({\r\n name: 'ListFormView',\r\n components: {CardView, RowFormView, ListToolbar, RowMergeDialog, CommentEditorDialog,\r\n RelationEditorDialog}\r\n})\r\nexport default class ListFormView extends Vue {\r\n @Prop() listVM!: ListVM;\r\n @Prop() rowId!: string;\r\n @Prop({default: \"\"}) currentRowId!: string;\r\n scrollToRowId: string = '';\r\n\r\n mounted() {\r\n this.init();\r\n }\r\n \r\n @Watch('rowId')\r\n onRowIdChanged() {\r\n this.init();\r\n }\r\n\r\n @Watch('currentRowId')\r\n onCurrentRowIdChanged() {\r\n this.init();\r\n }\r\n\r\n get showHeader(): boolean {\r\n return !(this.listVM?.msTeamsMode ?? false);\r\n }\r\n \r\n init() {\r\n if(this.currentRowId) {\r\n this.scrollToRowId = this.currentRowId;\r\n } else if(this.rowId) {\r\n this.scrollToRowId = this.rowId;\r\n }\r\n }\r\n\r\n get canShowCardView() {\r\n if(!this.$vuetify.breakpoint.mobile) {\r\n return true;\r\n } else {\r\n return !this.rowId || this.rowId === \"\";\r\n }\r\n }\r\n\r\n get canShowFormView() {\r\n if(!this.$vuetify.breakpoint.mobile) {\r\n return true;\r\n } else {\r\n return this.rowId && this.rowId !== \"\";\r\n }\r\n }\r\n\r\n onCardClick(row: RowVM) {\r\n this.$router.push(\r\n { \r\n name: 'Form', \r\n params: \r\n { \r\n listId : row.rsRow.ListId, \r\n rowId : row.rsRow.Id,\r\n mode: 'details'\r\n }\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListFormView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListFormView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListFormView.vue?vue&type=template&id=f042c2ee&scoped=true&\"\nimport script from \"./ListFormView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListFormView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListFormView.vue?vue&type=style&index=0&id=f042c2ee&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 \"f042c2ee\",\n null\n \n)\n\nexport default component.exports","\r\n import { Prop, Vue } from \"vue-property-decorator\";\r\n import Component from 'vue-class-component';\r\n import RsTable from '@/views/Table/GridView/RsTable.vue'\r\n import ListFormView from '@/views/Table/FormView/ListFormView.vue';\r\n import ListVM from \"@/viewModels/Table/listVM\";\r\n import { Route } from \"vue-router\";\r\n\r\n @Component({\r\n name: \"ListDisplayModeSelector\",\r\n components: { RsTable, ListFormView }\r\n })\r\n export default class ListDisplayModeSelector extends Vue {\r\n @Prop() private listVM!: ListVM;\r\n @Prop({default: ''}) private currentRowId!: string;\r\n @Prop() highlightRows!: string | string[];\r\n\r\n beforeRouteLeave(to: Route, from: Route, next: any) {\r\n if(this.$refs.grid) {\r\n (this.$refs.grid).handleBeforeRouteLeave(to, from, next)\r\n } else {\r\n next();\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListDisplayModeSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListDisplayModeSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListDisplayModeSelector.vue?vue&type=template&id=bf7db084&scoped=true&\"\nimport script from \"./ListDisplayModeSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListDisplayModeSelector.vue?vue&type=script&lang=ts&\"\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 \"bf7db084\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('router-view',{attrs:{\"listVM\":_vm.listVM}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Prop, Vue, Watch } from \"vue-property-decorator\";\r\n import Component from 'vue-class-component';\r\n import { ListTreeModule } from \"@/store/ListTreeStore\";\r\n import RowVM from '@/viewModels/Table/rowVM';\r\n import * as RowShare from '@/models/RowShare';\r\n import * as API from '@/api/Api';\r\n import ListVM from \"@/viewModels/Table/listVM\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\n\r\n @Component({\r\n name: \"ListBasedRoot\",\r\n components: { }\r\n })\r\n export default class ListBasedRoot extends Vue {\r\n private lastListId : string | null = null; \r\n listVM: ListVM = new ListVM();\r\n @Prop() msTeams!: boolean;\r\n isSurvey: boolean = false;\r\n\r\n get currentList() : RowShare.List | null {\r\n return ListTreeModule.currentList;\r\n }\r\n\r\n get displayedRows(): RowShare.DisplayedRows {\r\n return ListTreeModule.currentListDisplayedRows;\r\n }\r\n\r\n created(){\r\n this.isSurvey = this.$route.meta?.isSurvey ?? false;\r\n this.refreshAllListData();\r\n EventBus.$on(RowShare.Event.LISTSETTINGS_CHANGED, this.onSettingsChanged);\r\n EventBus.$on(RowShare.Event.COLUMNSETTINGS_CHANGED, this.onSettingsChanged);\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([RowShare.Event.LISTSETTINGS_CHANGED, RowShare.Event.COLUMNSETTINGS_CHANGED]);\r\n }\r\n\r\n onSettingsChanged(list: RowShare.List) {\r\n window.location.reload();\r\n }\r\n \r\n @Watch('currentList')\r\n onListChanged(){\r\n this.refreshAllListData();\r\n }\r\n\r\n @Watch('displayedRows')\r\n onDisplayedRowsChanged() {\r\n let status: RowShare.DataStatus;\r\n switch(this.displayedRows) {\r\n case RowShare.DisplayedRows.Deleted:\r\n status = RowShare.DataStatus.DeletionRequired;\r\n break;\r\n case RowShare.DisplayedRows.Archived:\r\n status = RowShare.DataStatus.Archived;\r\n break;\r\n default:\r\n status = RowShare.DataStatus.Normal;\r\n break;\r\n }\r\n this.listVM.displayedRows = this.displayedRows;\r\n if(this.currentList) {\r\n this.listVM.notifyRowVMsUpdating();\r\n API.Row.loadForList(this.currentList.Id, status).then(rows => this.listVM.rowVMs = rows?.map(r => new RowVM(this.listVM, r)) ?? null);\r\n }\r\n }\r\n\r\n refreshAllListData(){\r\n if(!this.currentList)\r\n return;\r\n\r\n // list can change event after the initial load (when a save on the list object occured for instance, etc...)\r\n if(this.currentList.Id == this.lastListId)\r\n return;\r\n \r\n this.lastListId = this.currentList.Id;\r\n\r\n this.listVM.msTeamsMode = this.msTeams;\r\n this.listVM.list = this.currentList;\r\n API.Column.loadForList(this.currentList.Id).then(cols => this.listVM.columns = cols);\r\n if(!this.isSurvey) {\r\n API.Row.loadForList(this.currentList.Id).then(rows => this.listVM.rowVMs = rows?.map(r => new RowVM(this.listVM, r)) ?? 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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListBasedRoot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListBasedRoot.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListBasedRoot.vue?vue&type=template&id=d2376aa2&scoped=true&\"\nimport script from \"./ListBasedRoot.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListBasedRoot.vue?vue&type=script&lang=ts&\"\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 \"d2376aa2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('bandeau',{attrs:{\"title\":_vm.titleBandeau,\"description\":_vm.descriptionBandeau}}),_vm._v(\" \"),_c('v-container',{staticClass:\"col-md-10 offsetmd-2\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"container-box\"},[_c('v-row',[_c('v-col',{},[(!_vm.formulario && _vm.messageSent)?_c('h1',{staticClass:\"description-confirmation\"},[_vm._v(_vm._s(_vm.$t('Contact_DescriptionConfirmation')))]):_vm._e(),_vm._v(\" \"),(_vm.messageError)?_c('h1',{staticClass:\"description-confirmation-error\"},[_vm._v(_vm._s(_vm.$t('Contact_ErrorDescription')))]):_vm._e(),_vm._v(\" \"),(_vm.tokenError)?_c('span',{staticClass:\"font-weight-medium red--text\",domProps:{\"innerHTML\":_vm._s(_vm.tokenError)}}):_vm._e(),_vm._v(\" \"),(_vm.formulario)?_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({passes}){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('input-text',{attrs:{\"inputTextId\":'input-2',\"inputTextName\":_vm.$t('Form_NameComplet'),\"inputTextValidationRules\":{required: true},\"disabledProp\":_vm.disableInputsForLoggedInUser},model:{value:(_vm.model.Name),callback:function ($$v) {_vm.$set(_vm.model, \"Name\", $$v)},expression:\"model.Name\"}}),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'input-3',\"inputTextName\":_vm.$t('Form_Email'),\"inputTextValidationRules\":{required: true, email: true},\"disabledProp\":_vm.disableInputsForLoggedInUser},model:{value:(_vm.model.Email),callback:function ($$v) {_vm.$set(_vm.model, \"Email\", $$v)},expression:\"model.Email\"}}),_vm._v(\" \"),_c('input-select',{attrs:{\"inputSelectId\":'input-1',\"inputSelectName\":_vm.$t('Contact_Question'),\"inputSelectValidationRules\":{required: true},\"optionsSelectList\":_vm.listSubjects},model:{value:(_vm.model.Question),callback:function ($$v) {_vm.$set(_vm.model, \"Question\", $$v)},expression:\"model.Question\"}}),_vm._v(\" \"),_c('input-text-area',{attrs:{\"inputTextAreaId\":'input-4',\"inputTextAreaName\":_vm.$t('Form_Message'),\"inputTextAreaValidationRules\":{required: true}},model:{value:(_vm.model.Message),callback:function ($$v) {_vm.$set(_vm.model, \"Message\", $$v)},expression:\"model.Message\"}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"submit-button mt-2\",attrs:{\"type\":\"submit\",\"disabled\":_vm.working,\"loading\":_vm.working,\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Form_SendButton'))+\"\\n \")])],1)]}}],null,false,1056749404)}):_vm._e()],1)],1),_vm._v(\" \"),(_vm.mustShowRecaptcha)?_c('recaptcha'):_vm._e()],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"bandeau\"},[_c('div',{staticClass:\"container bandeau-text\"},[_c('span',{staticClass:\"bandeau-title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('p',{staticClass:\"bandeau-description\",domProps:{\"innerHTML\":_vm._s(_vm.description)}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({\r\n name:'Bandeau'\r\n})\r\nexport default class Bandeau extends Vue{\r\n \r\n @Prop() title!:string;\r\n @Prop() description!:string;\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Bandeau.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Bandeau.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Bandeau.vue?vue&type=template&id=5a301633&scoped=true&\"\nimport script from \"./Bandeau.vue?vue&type=script&lang=ts&\"\nexport * from \"./Bandeau.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Bandeau.vue?vue&type=style&index=0&id=5a301633&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 \"5a301633\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('validation-provider',{attrs:{\"name\":_vm.inputTextAreaName,\"vid\":_vm.inputTextAreaVid,\"rules\":_vm.inputTextAreaValidationRules},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('v-textarea',{attrs:{\"placeholder\":_vm.placeholder ? _vm.placeholder:_vm.inputTextAreaName,\"state\":_vm.getValidationState(validationContext),\"id\":_vm.inputTextAreaId,\"disabled\":_vm.disabledProp,\"error-messages\":validationContext.errors[0],\"dense\":\"\",\"value\":_vm.value,\"hide-details\":\"auto\",\"outlined\":\"\",\"rows\":\"3\"},on:{\"input\":_vm.emitTextAreaValueChanged,\"blur\":_vm.blured},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [(_vm.label)?_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.label))]):_vm._e()]},proxy:true},(_vm.helpText)?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,true)},[_vm._v(\"\\n \"+_vm._s(_vm.helpText)+\"\\n \")])]},proxy:true}:null],null,true)})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport { ValidationProvider } from 'vee-validate';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\n\r\n@Component({\r\n name:'InputTextArea',\r\n components: { ValidationProvider }\r\n })\r\nexport default class InputTextArea extends FormValidation {\r\n\r\n //Properties\r\n @Prop() inputTextAreaName!:{\r\n type:string,\r\n required:true\r\n };\r\n @Prop() inputTextAreaId!:{\r\n type:string,\r\n required:true\r\n };\r\n @Prop() inputTextAreaValidationRules!:string;\r\n @Prop() disabledProp!:boolean;\r\n @Prop() value!:string;\r\n @Prop() inputTextAreaVid!:string;\r\n @Prop() placeholder!:string;\r\n @Prop() label!: string;\r\n @Prop( {default: ''}) helpText!: string;\r\n \r\n //Methods\r\n emitTextAreaValueChanged(valueParam:String){\r\n this.$emit('input', valueParam );\r\n }\r\n\r\n blured(valueParam:String){\r\n this.$emit('blured', valueParam);\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputTextArea.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputTextArea.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputTextArea.vue?vue&type=template&id=61fa931b&scoped=true&\"\nimport script from \"./InputTextArea.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputTextArea.vue?vue&type=script&lang=ts&\"\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 \"61fa931b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('validation-provider',{attrs:{\"name\":_vm.inputSelectName,\"vid\":_vm.inputSelectVid,\"rules\":_vm.inputSelectValidationRules},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('v-select',{ref:\"selectInput\",attrs:{\"id\":_vm.inputSelectId,\"state\":_vm.getValidationState(validationContext),\"items\":_vm.optionsSelectList,\"standard\":\"\",\"error-messages\":validationContext.errors[0],\"placeholder\":_vm.placeholder ? _vm.placeholder:_vm.inputSelectName,\"value\":_vm.value,\"outlined\":\"\",\"dense\":\"\"},on:{\"input\":_vm.emitSelectValueChanged},scopedSlots:_vm._u([{key:\"first\",fn:function(){return [_c('option',{domProps:{\"value\":''}},[_vm._v(_vm._s(_vm.$t('Form_SelectOption')))])]},proxy:true}],null,true)})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { ValidationProvider } from 'vee-validate';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\n\r\n@Component({\r\n name:'InputSelect',\r\n components: { ValidationProvider }\r\n})\r\n\r\nexport default class InputSelect extends FormValidation{\r\n\r\n //Properties\r\n @Prop() inputSelectName!:{\r\n type:string,\r\n required:true\r\n };\r\n @Prop() inputSelectId!:{\r\n type:string,\r\n required:true};\r\n @Prop() inputSelectValidationRules!:string;\r\n @Prop() optionsSelectList!:[];\r\n @Prop() value!:string;\r\n @Prop() inputSelectVid!:string;\r\n @Prop() placeholder!:string;\r\n @Prop() focusInput!:boolean;\r\n\r\n //Methods\r\n emitSelectValueChanged(valueParam:string){\r\n this.$emit('input', valueParam);\r\n }\r\n\r\n mounted() {\r\n if(this.focusInput) {\r\n this.$nextTick(() => {\r\n (this.$refs.inputSelect)?.focus();\r\n });\r\n }\r\n }\r\n}\r\n\r\n","\r\nimport Vue from \"vue\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { Event } from \"@/models/Event\";\r\n\r\nexport enum RecaptchaActions {\r\n Login = \"Login\",\r\n Signup = \"Signup\",\r\n Contact = \"Contact\",\r\n ResetPasswordRequest = \"ResetPasswordRequest\",\r\n ManageOrganization = \"ManageOrganization\",\r\n ShareMembers = \"ShareMembers\",\r\n ListAccess = \"ListAccess\",\r\n}\r\n\r\n@Component({\r\n name: \"Recaptcha\",\r\n components: {},\r\n})\r\nexport default class Recaptcha extends Vue {\r\n @Prop() calledAction!: string;\r\n\r\n private sitekeyV3 = \"6LfrDZkUAAAAABhMd0w2md2Q9XoRPNG4cnOL8eP9\";\r\n private sitekeyV2 = \"6Lci2zAiAAAAAF_cdVk7AGJDqhRiOfBv4goh21Jx\";\r\n private isRecaptchaV3 = true;\r\n private isRecaptchaV2 = false;\r\n private isV2Ready = false;\r\n private isV2Valid = false;\r\n\r\n mounted() {\r\n EventBus.$on(Event.RECAPTCHA_SHOW, this.showV3);\r\n EventBus.$on(Event.RECAPTCHA_SHOWV2, this.showV2);\r\n }\r\n\r\n destroyed() {\r\n EventBus.$off(Event.RECAPTCHA_SHOW, this.showV3);\r\n EventBus.$off(Event.RECAPTCHA_SHOWV2, this.showV2);\r\n this.removeCaptcha();\r\n }\r\n\r\n showV3() {\r\n let token = localStorage.getItem(\"lastgrecaptchatoken\");\r\n let tokenTimestamp = localStorage.getItem(\"lastgrecaptchatokentimestamp\");\r\n let valid = false;\r\n if (tokenTimestamp && token) // one hour max\r\n {\r\n let previousTimestamp = parseInt(tokenTimestamp);\r\n let currentTimestamp = new Date().getTime();\r\n if (currentTimestamp-previousTimestamp < 1000 * 3600)\r\n valid=true;\r\n }\r\n if (valid) {\r\n if (localStorage.getItem(\"lastgrecaptchatokentype\")!.includes(\"V3\"))\r\n EventBus.$emit(Event.RECAPTCHA_SUCCEEDED, { token: token, isV3: true });\r\n else\r\n EventBus.$emit(Event.RECAPTCHA_SUCCEEDED, {\r\n token: token,\r\n isV3: false,\r\n });\r\n } \r\n else {\r\n localStorage.removeItem(\"lastgrecaptchatokentimestamp\");\r\n localStorage.removeItem(\"lastgrecaptchatoken\");\r\n localStorage.removeItem(\"lastgrecaptchatokentype\");\r\n EventBus.$off(Event.RECAPTCHA_SHOW, this.showV3);\r\n if (this.isRecaptchaV2) this.hideV2();\r\n this.initOrResetRecaptchaV3();\r\n }\r\n }\r\n\r\n initOrResetRecaptchaV3() {\r\n this.isRecaptchaV3 = true;\r\n //see https://developers.google.com/recaptcha/docs/faq#can-i-run-recaptcha-v2-and-v3-on-the-same-page\r\n this.$loadScript(\r\n \"https://www.google.com/recaptcha/api.js?render=\" + this.sitekeyV3\r\n ).then((value) => {\r\n window.grecaptcha.ready(() => {\r\n window.grecaptcha\r\n .execute(this.sitekeyV3, { action: this.calledAction })\r\n .then(this.onSuccess, this.onError);\r\n });\r\n });\r\n }\r\n\r\n showV2() {\r\n EventBus.$off(Event.RECAPTCHA_SHOWV2, this.showV2);\r\n localStorage.removeItem(\"lastgrecaptchatokentimestamp\");\r\n localStorage.removeItem(\"lastgrecaptchatoken\");\r\n localStorage.removeItem(\"lastgrecaptchatokentype\");\r\n\r\n if (this.isRecaptchaV3) this.hideV3();\r\n this.isRecaptchaV2 = true;\r\n // @ts-ignore\r\n window.ReCaptchaLoaded = this.onV2Loaded;\r\n // @ts-ignore\r\n window.onErrorV2 = this.onErrorV2;\r\n // @ts-ignore\r\n window.onExpiredV2 = this.onExpiredV2;\r\n var script = document.createElement(\"script\");\r\n script.src =\r\n \"https://www.google.com/recaptcha/api.js?onload=ReCaptchaLoaded&render=explicit\";\r\n document.head.appendChild(script);\r\n this.isV2Ready = true;\r\n }\r\n\r\n private hideV3() {\r\n this.isRecaptchaV3 = false;\r\n this.$unloadScript(\r\n \"https://www.google.com/recaptcha/api.js?render=\" + this.sitekeyV3\r\n );\r\n this.removeCaptcha();\r\n EventBus.$on(Event.RECAPTCHA_SHOW, this.showV3);\r\n }\r\n\r\n private closeV2() {\r\n this.hideV2();\r\n localStorage.removeItem(\"lastgrecaptchatokentimestamp\");\r\n localStorage.removeItem(\"lastgrecaptchatoken\");\r\n localStorage.removeItem(\"lastgrecaptchatokentype\");\r\n\r\n EventBus.$emit(Event.RECAPTCHA_CANCELEDV2);\r\n }\r\n\r\n private hideV2() {\r\n this.isRecaptchaV2 = false;\r\n this.isV2Ready = false;\r\n this.$unloadScript(\r\n \"https://www.google.com/recaptcha/api.js?onload=ReCaptchaLoaded&render=explicit\"\r\n );\r\n this.removeCaptcha();\r\n // @ts-ignore\r\n window.ReCaptchaLoaded = null;\r\n // @ts-ignore\r\n window.onErrorV2 = null;\r\n // @ts-ignore\r\n window.onExpiredV2 = null;\r\n EventBus.$on(Event.RECAPTCHA_SHOWV2, this.showV2);\r\n }\r\n\r\n private removeCaptcha() {\r\n window.document\r\n .querySelectorAll(\".g-recaptcha-response\")\r\n .forEach((el) => el.remove());\r\n window.document\r\n .querySelectorAll(\".grecaptcha-badge\")\r\n .forEach((el) => el.remove());\r\n }\r\n\r\n private hideCaptchaBadge() {\r\n // allowed IF captcha text disclaimer\r\n // css visibility = \"hidden\" does not work\r\n window.document\r\n .querySelectorAll(\".grecaptcha-badge\")\r\n .forEach((el) => el.setAttribute(\"visibility\", \"hidden\"));\r\n }\r\n\r\n onV2Loaded() {\r\n //wait recaptchaV2 is loaded\r\n window.grecaptcha.render(\"recaptchaV2\", {\r\n sitekey: this.sitekeyV2,\r\n badge: \"inline\",\r\n callback: this.onSuccessV2,\r\n });\r\n }\r\n\r\n onSuccess(token: string) {\r\n this.hideV3();\r\n let timeStamp = new Date().getTime().toString();\r\n localStorage.setItem(\"lastgrecaptchatokentimestamp\",timeStamp);\r\n localStorage.setItem(\"lastgrecaptchatoken\", token);\r\n localStorage.setItem(\"lastgrecaptchatokentype\", \"V3\");\r\n EventBus.$emit(Event.RECAPTCHA_SUCCEEDED, { token: token, isV3: true });\r\n }\r\n\r\n onSuccessV2(token: string) {\r\n if (!this.isV2Ready) return;\r\n if (token) {\r\n this.isV2Valid = true;\r\n }\r\n }\r\n\r\n onValidTokenV2() {\r\n if (!this.isV2Valid) return;\r\n\r\n var token = window.grecaptcha.getResponse();\r\n this.hideV2();\r\n let timeStamp = new Date().getTime().toString();\r\n localStorage.setItem(\"lastgrecaptchatokentimestamp\",timeStamp);\r\n localStorage.setItem(\"lastgrecaptchatoken\", token);\r\n localStorage.setItem(\"lastgrecaptchatokentype\", \"V2\");\r\n EventBus.$emit(Event.RECAPTCHA_SUCCEEDED, {\r\n token: token,\r\n isV3: false,\r\n });\r\n }\r\n\r\n onError(reason: string) {\r\n localStorage.removeItem(\"lastgrecaptchatokentimestamp\");\r\n localStorage.removeItem(\"lastgrecaptchatoken\");\r\n localStorage.removeItem(\"lastgrecaptchatokentype\");\r\n if (reason.toLowerCase().includes(\"timeout\")) this.initOrResetRecaptchaV3();\r\n }\r\n\r\n onErrorV2(reason: string) {\r\n if (this.isRecaptchaV2) {\r\n this.hideV2();\r\n localStorage.removeItem(\"lastgrecaptchatokentimestamp\");\r\n localStorage.removeItem(\"lastgrecaptchatoken\");\r\n localStorage.removeItem(\"lastgrecaptchatokentype\");\r\n EventBus.$emit(Event.RECAPTCHA_FAILED, reason);\r\n }\r\n }\r\n\r\n onExpiredV2() {\r\n localStorage.removeItem(\"lastgrecaptchatokentimestamp\");\r\n localStorage.removeItem(\"lastgrecaptchatoken\");\r\n localStorage.removeItem(\"lastgrecaptchatokentype\");\r\n this.isV2Valid = false;\r\n }\r\n\r\n get isDisabled() {\r\n return !this.isV2Valid;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputSelect.vue?vue&type=template&id=f3bbe6e6&scoped=true&\"\nimport script from \"./InputSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputSelect.vue?vue&type=script&lang=ts&\"\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 \"f3bbe6e6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.isRecaptchaV3)?_c('div',[_c('br'),_vm._v(\" \"),_c('div',{staticClass:\"g-recaptcha\",attrs:{\"id\":\"recaptchaV3\",\"data-size\":\"invisible\"}})]):_vm._e(),_vm._v(\" \"),(_vm.isRecaptchaV2)?_c('div',[_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"400px\",\"overlay-color\":\"white\",\"overlay-opacity\":\"0.9\"},model:{value:(_vm.isV2Ready),callback:function ($$v) {_vm.isV2Ready=$$v},expression:\"isV2Ready\"}},[_c('v-card-title',{staticClass:\"headline lighten-2 mb-1 justify-center\",attrs:{\"primary-title\":\"\"}},[_c('div',{staticClass:\"title\"},[_c('div',[_vm._v(_vm._s(_vm.$t(\"Recaptcha_ToValidate\")))])]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.closeV2}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"justify-center\"},[_c('div',{attrs:{\"id\":\"recaptchaV2\",\"data-error-callback\":\"onErrorV2\",\"data-expired-callback\":\"onExpiredV2\"}})]),_vm._v(\" \"),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{staticClass:\"mb-3 submit-button text-none\",attrs:{\"disabled\":_vm.isDisabled,\"type\":\"submit\",\"color\":\"primary\"},on:{\"click\":_vm.onValidTokenV2}},[_vm._v(\"OK\")])],1)],1)],1):_vm._e(),_vm._v(\" \"),_vm._m(0)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"recaptcha-copyright\"},[_vm._v(\"\\n This site is protected by reCAPTCHA and the Google\\n \"),_c('a',{attrs:{\"href\":\"https://policies.google.com/privacy\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\" and\\n \"),_c('a',{attrs:{\"href\":\"https://policies.google.com/terms\"}},[_vm._v(\"Terms of service\")]),_vm._v(\"\\n apply.\\n \")])\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Recaptcha.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Recaptcha.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Recaptcha.vue?vue&type=template&id=2a0e5716&scoped=true&\"\nimport script from \"./Recaptcha.vue?vue&type=script&lang=ts&\"\nexport * from \"./Recaptcha.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Recaptcha.vue?vue&type=style&index=0&id=2a0e5716&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 \"2a0e5716\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport { UserModule } from '@/store/UserStore'\r\nimport Bandeau from '@/views/layouts/LayoutParts/Bandeau.vue';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport InputTextArea from '@/views/components/FormInputs/InputTextArea.vue';\r\nimport InputSelect from '@/views/components/FormInputs/InputSelect.vue';\r\nimport * as API from '@/api/Api';\r\nimport { ValidationProvider, ValidationObserver } from 'vee-validate';\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport { User } from '@/models/User';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport * as Models from '@/models/RowShare';\r\nimport { RecaptchaActions } from '@/views/components/Recaptcha.vue';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport Recaptcha from '@/views/components/Recaptcha.vue';\r\nimport { RowShareException } from '@/api/ApiUtils';\r\nimport { Event } from '@/models/Event';\r\nimport { GlobalNotificationEventParams, NotificationType } from '@/models/RowShare';\r\n\r\n\r\n@Component({\r\n name:'Contact',\r\n components:{ Bandeau, ValidationProvider, ValidationObserver, InputText, InputTextArea, InputSelect, PageLoadSpinner, Recaptcha},\r\n})\r\n\r\nexport default class Contact extends FormValidation {\r\n\r\n @Prop() tokenError!:string;\r\n @Prop() selectedQuestion!: string;\r\n //Fields\r\n private listSubjects = [{text:\"\",value:\"\"}];\r\n private user!: User;\r\n private disableInputsForLoggedInUser = false;\r\n private formulario = true;\r\n private titleBandeau='';\r\n private descriptionBandeau='';\r\n private messageSent = false;\r\n private messageError = false;\r\n private working = false;\r\n\r\n model = {\r\n Question:'',\r\n Name:'',\r\n Email:'',\r\n Message:'',\r\n File: null,\r\n RecaptchaToken:'',\r\n RecaptchaTokenIsV3: true\r\n\r\n };\r\n\r\n //Methods\r\n async created(){\r\n EventBus.$on(Models.Event.LOCALE_CHANGED, async() => {\r\n await this.onLocaleChanged();\r\n });\r\n EventBus.$on(Models.Event.RECAPTCHA_SUCCEEDED,this.onRecaptchaSucceeded);\r\n EventBus.$on([Models.Event.RECAPTCHA_FAILED,Models.Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n \r\n }\r\n\r\n async mounted(){ \r\n this.user = UserModule.CurrentUser; \r\n if(!this.user.IsAnonymous){\r\n this.disableInputsForLoggedInUser = true;\r\n this.model.Name = this.user.NickName;\r\n this.model.Email = this.user.Email;\r\n } \r\n this.onLocaleChanged();\r\n this.titleBandeau = this.$i18n.t('Contact_Title').toString();\r\n this.descriptionBandeau = this.$i18n.t('Contact_Description').toString();\r\n }\r\n\r\n destroyed() {\r\n EventBus.$off(Models.Event.RECAPTCHA_SUCCEEDED,this.onRecaptchaSucceeded);\r\n EventBus.$off([Models.Event.RECAPTCHA_FAILED,Models.Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n }\r\n\r\n loadSelectList(){\r\n this.listSubjects=[];\r\n this.listSubjects.push({text:this.$i18n.t(\"Contact_SelectFirstQuestion\").toString(), value:\"Contact/Help\"});\r\n this.listSubjects.push({text:this.$i18n.t(\"Contact_SelectSecondQuestion\").toString(), value:\"Contact/Bug\"});\r\n this.listSubjects.push({text:this.$i18n.t(\"Contact_SelectThirdQuestion\").toString(), value:\"Contact/Billing\"});\r\n this.listSubjects.push({text:this.$i18n.t(\"Contact_SelectFourthQuestion\").toString(), value:\"Contact/Features\"});\r\n this.listSubjects.push({text:this.$i18n.t(\"Contact_SelectFifthQuestion\").toString(), value:\"Contact/Sales\"});\r\n if(this.selectedQuestion && !this.model?.Question) {\r\n this.model.Question = this.selectedQuestion;\r\n }\r\n }\r\n\r\n onLocaleChanged(){\r\n this.setValidationLanguage(this.$i18n.locale);\r\n this.loadSelectList();\r\n this.titleBandeau = this.$i18n.t('Contact_Title').toString();\r\n this.descriptionBandeau = this.$i18n.t('Contact_Description').toString();\r\n }\r\n\r\n //This method is for the input file\r\n // formatFileNames(files:File[]){\r\n // if (files.length === 1) {\r\n // return files[0].name\r\n // } else {\r\n // return `${files.length}` + \" \" +this.$i18n.t(\"Form_MultipleFilesSelected\").toString();\r\n // }\r\n // }\r\n\r\n async onSubmit(){\r\n this.working = true;\r\n if (this.mustShowRecaptcha) {\r\n this.triggerRecaptcha();\r\n }\r\n else{\r\n this.doSend();\r\n }\r\n }\r\n\r\n private doSend(){\r\n API.ContactMessage.sendMessage(this.model, this.model.File)\r\n .then(result=>{ \r\n if(result==true){\r\n this.formulario = false;\r\n this.messageSent = true;\r\n this.messageError = false;\r\n this.descriptionBandeau = this.$i18n.t('Contact_MessageConfirmationThanks').toString();\r\n }\r\n else{\r\n this.messageError = true;\r\n this.descriptionBandeau = '';\r\n }\r\n })\r\n .catch(exc => {\r\n let rsExc = exc as RowShareException;\r\n let exceptionMsg = \"\";\r\n if(rsExc) {\r\n if (rsExc.code == 96 && this.mustShowRecaptcha) {\r\n // Recaptcha token not valid\r\n this.retryFallbackRecaptcha();\r\n return;}\r\n exceptionMsg = rsExc.message;\r\n }\r\n else {\r\n exceptionMsg = exc.toString();\r\n }\r\n this.messageError = true;\r\n this.descriptionBandeau = '';\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: exceptionMsg,\r\n type: NotificationType.error,autoHide: true, autoHideAfterMs: 10000});\r\n \r\n })\r\n .finally(()=> {\r\n this.working=false;\r\n });\r\n }\r\n\r\n triggerRecaptcha() {\r\n this.model.RecaptchaToken = \"\";\r\n EventBus.$emit(Event.RECAPTCHA_SHOW, RecaptchaActions.Contact);\r\n }\r\n\r\n onRecaptchaSucceeded(successEvent: any){ \r\n this.model.RecaptchaToken = successEvent.token;\r\n this.model.RecaptchaTokenIsV3 = successEvent.isV3;\r\n this.doSend();\r\n }\r\n\r\n retryFallbackRecaptcha(){\r\n this.model.RecaptchaToken = \"\";\r\n EventBus.$emit(Event.RECAPTCHA_SHOWV2);\r\n }\r\n\r\n onRecaptchaFailedOrCanceled(reason: string = \"\"){ \r\n this.model.RecaptchaToken = \"\";\r\n this.model.RecaptchaTokenIsV3 = true;\r\n this.working = false;\r\n this.messageError = true;\r\n this.descriptionBandeau = this.$i18n.t('Recaptcha_Invalid').toString() + reason;\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: Models.NotificationType.error,\r\n message: (this.$i18n.t('Recaptcha_Invalid').toString()) + reason\r\n });\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get mustShowRecaptcha(){\r\n return this.isNotOnPrem && process.env.NODE_ENV!=\"development\";\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Contact.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Contact.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Contact.vue?vue&type=template&id=47b9bc0a&scoped=true&\"\nimport script from \"./Contact.vue?vue&type=script&lang=ts&\"\nexport * from \"./Contact.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Contact.vue?vue&type=style&index=0&id=47b9bc0a&prod&scoped=true&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 \"47b9bc0a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.showView)?_c('v-container',{staticClass:\"login-container\"},[_c('v-row',[_c('v-col',[_c('h2',[_vm._v(_vm._s(_vm.$t('SignIn_Page_Title')))]),_vm._v(\" \"),_c('div',[(_vm.isNotOnPrem)?_c('section-title',[_vm._v(_vm._s(_vm.$t('SignIn_Social_Account')))]):_c('section-title',[_vm._v(_vm._s(_vm.$t('SignIn_Social_Account_OnPrem')))]),_vm._v(\" \"),_c('social-login-list',{attrs:{\"inviteLinkId\":_vm.inviteLinkId,\"returnUrl\":_vm.returnUrl}}),_vm._v(\" \"),(_vm.hasUnauthorizedSignupError)?_c('v-card',{staticClass:\"mb-4 unauthorized-signup-error\",attrs:{\"color\":\"error lighten-2\"}},[(_vm.isNotOnPrem)?_c('v-card-text',{staticClass:\"toast-description\",domProps:{\"innerHTML\":_vm._s(_vm.$t('SignIn_UnauthorizedSignupError'))}}):_c('v-card-text',{staticClass:\"toast-description\",domProps:{\"innerHTML\":_vm._s(_vm.$t('SignIn_UnauthorizedSignupError_OnPrem'))}})],1):_vm._e()],1),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('section-title',[_vm._v(\" \"+_vm._s(_vm.$t('SignIn_Rowshare_Account')))]):_c('section-title',[_vm._v(\" \"+_vm._s(_vm.$t('SignIn_Rowshare_Account_OnPrem')))]),_vm._v(\" \"),_c('login-form',{attrs:{\"returnUrl\":_vm.returnUrl,\"inviteLinkId\":_vm.inviteLinkId,\"presetEmail\":_vm.emailFromSignUp}}),_vm._v(\" \"),_c('p',{staticClass:\"body-2 mt-6\",domProps:{\"innerHTML\":_vm._s(_vm.$t('SignIn_Forgot_Password_Link_Text'))}}),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('p',{staticClass:\"body-2\"},[_c('span',[_vm._v(_vm._s(_vm.$t('SignIn_No_Account')))]),_c('router-link',{attrs:{\"to\":_vm.getSignupUrl()}},[_vm._v(_vm._s(_vm.$t('SignIn_No_Account_UrlText')))])],1):_vm._e()],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"section-title\"},[_c('div',[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n @Component\r\n export default class SectionTitle extends Vue {\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SectionTitle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SectionTitle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SectionTitle.vue?vue&type=template&id=d877d682&scoped=true&\"\nimport script from \"./SectionTitle.vue?vue&type=script&lang=ts&\"\nexport * from \"./SectionTitle.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SectionTitle.vue?vue&type=style&index=0&id=d877d682&prod&scoped=true&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 \"d877d682\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ul',{staticClass:\"pl-0 mb-7 d-block\"},[_c('li',[_c('microsoft-login-button',{staticClass:\"mb-2\",attrs:{\"returnUrl\":_vm.returnUrl,\"inviteLinkId\":_vm.inviteLinkId,\"isSignUp\":_vm.isSignUp}})],1),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('li',[_c('google-login-button',{staticClass:\"mb-2\",attrs:{\"returnUrl\":_vm.returnUrl,\"inviteLinkId\":_vm.inviteLinkId,\"isSignUp\":_vm.isSignUp}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{staticClass:\"pl-1\",attrs:{\"color\":\"white\",\"title\":\"Google\"},on:{\"click\":function($event){return _vm.loginOrSignUp()}}},[_c('v-img',{staticClass:\"pa-0 ma-0\",attrs:{\"src\":require(\"@/assets/static/images/g-normal.png\")}}),_vm._v(\" \"),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t('LoginWithGoogle')))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Utils } from '@/utils/Utilities';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { RawLocation } from \"vue-router\";\r\n\r\n@Component({})\r\nexport class ReturnUrlHandler extends Vue{\r\n\r\n @Prop() returnUrl!: string;\r\n\r\n redirectToReturnUrlOrDefault(defaultRedirect: RawLocation) {\r\n if(this.returnUrl){\r\n this.pushOrReloadRoute(this.returnUrl);\r\n }\r\n else\r\n this.pushOrReloadRoute(defaultRedirect);\r\n }\r\n\r\n pushOrReloadRoute(pathOrUrl: RawLocation){\r\n if(this.isV3Path(pathOrUrl)) {\r\n this.$router.push(this.$router.resolve(pathOrUrl).location);// pathOrUrl);\r\n }\r\n else{\r\n window.location.href = pathOrUrl;\r\n }\r\n }\r\n\r\n isV3Path(pathOrUrl: RawLocation): boolean {\r\n // if(pathOrUrl.toString().toLowerCase().startsWith(\"/t/\") && Utils.getCookie(\"rsVersion\") != \"3\") {\r\n // return false;\r\n // }\r\n\r\n let internalRoute = this.$router.resolve(pathOrUrl);\r\n return internalRoute && internalRoute.resolved.matched.length > 0 && internalRoute.resolved.matched.findIndex(r => r.name != 'PageNotFound') > -1;\r\n }\r\n\r\n\r\n}","\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport * as API from \"@/api/Api\";\r\nimport { ReturnUrlHandler } from \"@/views/ReturnUrl\";\r\n\r\n@Component({ name: \"GoogleLoginButton\" })\r\nexport default class GoogleLoginButton extends ReturnUrlHandler {\r\n\r\n @Prop() inviteLinkId!: string;\r\n @Prop() isSignUp!: boolean;\r\n\r\n loginOrSignUp() {\r\n if(this.isSignUp) {\r\n this.signup();\r\n }\r\n else {\r\n this.login();\r\n }\r\n }\r\n\r\n async login() {\r\n let returnUrl = await API.SocialProvider.login('Google', this.returnUrl);\r\n window.location.href = returnUrl ? returnUrl : '/';\r\n }\r\n\r\n async signup() {\r\n let returnUrl = await API.SocialProvider.signup('Google', this.returnUrl, this.inviteLinkId)\r\n window.location.href = returnUrl ? returnUrl : '/';\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./GoogleLoginButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./GoogleLoginButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GoogleLoginButton.vue?vue&type=template&id=def45ef2&scoped=true&\"\nimport script from \"./GoogleLoginButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./GoogleLoginButton.vue?vue&type=script&lang=ts&\"\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 \"def45ef2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{staticClass:\"pl-1\",attrs:{\"color\":\"white\",\"title\":\"Microsoft\"},on:{\"click\":function($event){return _vm.loginOrSignUp()}}},[_c('v-img',{staticClass:\"pa-0 ml-2\",attrs:{\"src\":require(\"@/assets/static/images/ms-logo.svg\")}}),_vm._v(\" \"),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t('LoginWithMicrosoft')))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport * as API from \"@/api/Api\";\r\nimport { ReturnUrlHandler } from \"@/views/ReturnUrl\";\r\n\r\n@Component({ name: \"MicrosoftLoginButton\" })\r\nexport default class MicrosoftLoginButton extends ReturnUrlHandler {\r\n\r\n @Prop() inviteLinkId!: string;\r\n @Prop() isSignUp!: boolean;\r\n\r\n loginOrSignUp() {\r\n if(this.isSignUp) {\r\n this.signup();\r\n }\r\n else {\r\n this.login();\r\n }\r\n }\r\n\r\n async login() {\r\n let returnUrl = await API.SocialProvider.login('AzureAD', this.returnUrl);\r\n window.location.href = returnUrl ? returnUrl : '/';\r\n }\r\n\r\n async signup() {\r\n let returnUrl = await API.SocialProvider.signup('AzureAD', this.returnUrl, this.inviteLinkId)\r\n window.location.href = returnUrl ? returnUrl : '/';\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MicrosoftLoginButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MicrosoftLoginButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MicrosoftLoginButton.vue?vue&type=template&id=56756f75&scoped=true&\"\nimport script from \"./MicrosoftLoginButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./MicrosoftLoginButton.vue?vue&type=script&lang=ts&\"\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 \"56756f75\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop } from \"vue-property-decorator\";\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import GoogleLoginButton from '@/views/Signin/GoogleLoginButton.vue';\r\n import MicrosoftLoginButton from '@/views/Signin/MicrosoftLoginButton.vue';\r\n import { ReturnUrlHandler } from \"@/views/ReturnUrl\";\r\n\r\n @Component({\r\n name: \"SocialLoginList\",\r\n components: { \r\n GoogleLoginButton, MicrosoftLoginButton\r\n }\r\n })\r\n export default class SocialLoginList extends ReturnUrlHandler {\r\n @Prop({default: false}) large!:boolean;\r\n @Prop({default: false}) isSignUp!: boolean;\r\n @Prop() inviteLinkId!: string;\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SocialLoginList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SocialLoginList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SocialLoginList.vue?vue&type=template&id=11b29f53&scoped=true&\"\nimport script from \"./SocialLoginList.vue?vue&type=script&lang=ts&\"\nexport * from \"./SocialLoginList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SocialLoginList.vue?vue&type=style&index=0&id=11b29f53&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 \"11b29f53\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('validation-observer',{ref:\"observer\",staticClass:\"login-form\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes }){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('input-text',{attrs:{\"inputTextId\":'email',\"inputTextName\":_vm.$t('Form_Email'),\"placeholder\":_vm.$t('Form_Email'),\"inputTextValidationRules\":{ required: true },\"focusInput\":_vm.focusEmail,\"hideDetails\":false,\"inputTextVid\":\"email\",\"interactionMode\":\"passive\"},on:{\"input\":_vm.clearValidations},model:{value:(_vm.signinUser.Email),callback:function ($$v) {_vm.$set(_vm.signinUser, \"Email\", $$v)},expression:\"signinUser.Email\"}}),_vm._v(\" \"),_c('input-password',{attrs:{\"inputPasswordId\":'password',\"inputPasswordName\":_vm.$t('Form_Password'),\"placeholder\":_vm.$t('Form_Password'),\"inputPasswordValidationRules\":{ \n required: true, \n min: 6, //instead of 8 to allow old passwords\n max: 64 //in addition to regex rule\n },\"focusInput\":_vm.focusPassword,\"inputPasswordVid\":\"password\"},model:{value:(_vm.signinUser.Password),callback:function ($$v) {_vm.$set(_vm.signinUser, \"Password\", $$v)},expression:\"signinUser.Password\"}}),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('div',[_c('p',{staticClass:\"terms mb-2\",domProps:{\"innerHTML\":_vm._s(_vm.$t('SignIn_TermsOfUse'))}})]):_vm._e(),_vm._v(\" \"),_c('div',[_c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"primary\",\"disabled\":_vm.working,\"loading\":_vm.working}},[_vm._v(_vm._s(_vm.$t(\"SignIn_Button\")))])],1),_vm._v(\" \"),(_vm.mustShowRecaptcha)?_c('recaptcha'):_vm._e()],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('validation-provider',{attrs:{\"name\":_vm.inputPasswordName,\"vid\":_vm.inputPasswordVid,\"rules\":_vm.inputPasswordValidationRules},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('v-text-field',{ref:\"pwdInput\",attrs:{\"type\":\"password\",\"placeholder\":_vm.placeholder ? _vm.placeholder:_vm.inputTextName,\"state\":_vm.getValidationState(validationContext),\"id\":_vm.inputPasswordId,\"disabled\":_vm.disabledProp,\"error-messages\":validationContext.errors[0],\"value\":_vm.value,\"outlined\":_vm.outlined,\"filled\":_vm.filled,\"dense\":\"\"},on:{\"input\":_vm.emitPasswordValueChanged},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(_vm.showTooltip)?_c('v-tooltip',{staticClass:\"password-tooltip\",attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"small\":\"\",\"dense\":\"\"}},on),[_vm._v(\"fa fa-question-circle\")])]}}],null,true)},[_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.tooltipText)}})]):_vm._e()]},proxy:true}],null,true)})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { ValidationProvider } from 'vee-validate';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\n\r\n@Component({\r\n name:'InputPassword',\r\n components:{ ValidationProvider }\r\n})\r\nexport default class InputPassword extends FormValidation {\r\n\r\n //Properties\r\n @Prop() inputPasswordName!:{\r\n type:string,\r\n required:true\r\n };\r\n @Prop() inputPasswordId!:{\r\n type:string,\r\n required:true};\r\n @Prop() inputPasswordValidationRules!:string;\r\n @Prop() disabledProp!:boolean;\r\n @Prop() value!:string;\r\n @Prop() inputPasswordVid!:string;\r\n @Prop() placeholder!: \r\n {\r\n type: string,\r\n required: false\r\n };\r\n @Prop({ default: true}) outlined!: boolean;\r\n @Prop({ default: false}) filled!: boolean;\r\n @Prop() focusInput!:boolean;\r\n @Prop() showTooltip!:boolean;\r\n @Prop() tooltipText!: string;\r\n \r\n //Methods\r\n emitPasswordValueChanged(valueParam:String){\r\n this.$emit('input', valueParam);\r\n }\r\n\r\n mounted() {\r\n if(this.focusInput) {\r\n this.$nextTick(() => {\r\n (this.$refs.pwdInput)?.focus();\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputPassword.vue?vue&type=template&id=7755aaf9&scoped=true&\"\nimport script from \"./InputPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputPassword.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InputPassword.vue?vue&type=style&index=0&id=7755aaf9&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 \"7755aaf9\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { ReturnUrlHandler } from \"@/views/ReturnUrl\";\r\nimport InputText from \"@/views/components/FormInputs/InputText.vue\";\r\nimport InputPassword from \"@/views/components/FormInputs/InputPassword.vue\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { RowShareException } from \"@/api/ApiUtils\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { UserModule } from \"@/store/UserStore\";\r\nimport { OnPremModule } from \"@/store/OnPremStore\";\r\nimport { Utils } from \"@/utils/Utilities\";\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport { RecaptchaActions } from \"@/views/components/Recaptcha.vue\";\r\nimport Recaptcha from \"@/views/components/Recaptcha.vue\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport {\r\n GlobalNotificationEventParams,\r\n NotificationType,\r\n} from \"@/models/RowShare\";\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n\r\n@Component({\r\n name: \"LoginForm\",\r\n components: { InputText, InputPassword, ValidationObserver, Recaptcha, PageLoadSpinner },\r\n})\r\nexport default class LoginForm extends ReturnUrlHandler {\r\n @Prop() presetEmail!: string;\r\n @Prop() inviteLinkId!: string;\r\n\r\n $refs!: { observer: InstanceType };\r\n\r\n private focusEmail = false;\r\n private focusPassword = false;\r\n private signinUser = new RowShare.SigninUser();\r\n private working = false;\r\n\r\n mounted() {\r\n if (this.presetEmail != null) {\r\n this.signinUser.Email = this.presetEmail;\r\n this.focusPassword = true;\r\n } else {\r\n this.focusEmail = true;\r\n }\r\n EventBus.$on(RowShare.Event.RECAPTCHA_SUCCEEDED, this.onRecaptchaSucceeded);\r\n EventBus.$on([RowShare.Event.RECAPTCHA_FAILED,RowShare.Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n }\r\n\r\n destroyed() {\r\n EventBus.$off(RowShare.Event.RECAPTCHA_SUCCEEDED,this.onRecaptchaSucceeded);\r\n EventBus.$off([RowShare.Event.RECAPTCHA_FAILED,RowShare.Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n }\r\n\r\n async onSubmit() {\r\n this.working = true;\r\n if (this.mustShowRecaptcha) {\r\n this.triggerRecaptcha();\r\n } else {\r\n this.doLogin();\r\n }\r\n }\r\n\r\n private async doLogin() {\r\n let formValidState = await this.$refs.observer.validate();\r\n if (!formValidState) {\r\n this.working = false;\r\n return;\r\n }\r\n this.signinUser.Email = this.signinUser.Email.trim();\r\n if (!this.isValidEmail(this.signinUser.Email)) {\r\n this.$refs.observer.setErrors({\r\n email: [this.$i18n.t(\"SignUp_EmailInvalid\").toString()],\r\n });\r\n this.working = false;\r\n return;\r\n }\r\n if (!this.isValidLoginPassword(this.signinUser.Password))\r\n {\r\n this.$refs.observer.setErrors({\r\n password: [this.$i18n.t(\"SignIn_InvalidPassword\").toString()],\r\n });\r\n this.working = false;\r\n return;\r\n }\r\n UserModule.SignIn(this.signinUser)\r\n .then((loginStatus: boolean) => {\r\n this.signinUser.RecaptchaToken = \"\";\r\n this.working = false;\r\n if (!loginStatus) {\r\n this.$refs.observer.setErrors({\r\n password: [this.$i18n.t(\"SignIn_Invalid_Credentials_Error_Message\").toString()],\r\n });\r\n return;\r\n } \r\n if (!Utils.isNullOrWhiteSpace(this.inviteLinkId)) {\r\n this.$router.push({\r\n name: \"Join\",\r\n params: {\r\n ReturnUrl: this.returnUrl,\r\n inviteLinkId: this.inviteLinkId,\r\n },\r\n });\r\n } else {\r\n var defaultRedirectRoute = this.$router.resolve({\r\n name: \"MyTables\",\r\n });\r\n this.redirectToReturnUrlOrDefault(defaultRedirectRoute.href);\r\n }\r\n })\r\n .catch((exc) => {\r\n let rsExc = exc as RowShareException;\r\n let exceptionMsg = \"\";\r\n if (rsExc) {\r\n if (rsExc.code == 96 && this.mustShowRecaptcha) {\r\n // Recaptcha token not valid\r\n this.retryFallbackRecaptcha();\r\n return;\r\n }\r\n exceptionMsg = rsExc.message;\r\n } \r\n else {\r\n exceptionMsg = exc.toString();\r\n }\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, { message: exceptionMsg,\r\n type: RowShare.NotificationType.error,autoHide: true, autoHideAfterMs: 10000});\r\n \r\n this.$refs.observer.setErrors({\r\n email: exceptionMsg,\r\n });\r\n this.working = false;\r\n });\r\n }\r\n\r\n triggerRecaptcha() {\r\n this.signinUser.RecaptchaToken = \"\";\r\n EventBus.$emit(RowShare.Event.RECAPTCHA_SHOW, RecaptchaActions.Login);\r\n }\r\n\r\n onRecaptchaSucceeded(successEvent: any) {\r\n this.signinUser.RecaptchaToken = successEvent.token;\r\n this.signinUser.RecaptchaTokenIsV3 = successEvent.isV3;\r\n this.doLogin();\r\n }\r\n\r\n retryFallbackRecaptcha() {\r\n this.signinUser.RecaptchaToken = \"\";\r\n EventBus.$emit(RowShare.Event.RECAPTCHA_SHOWV2);\r\n }\r\n\r\n onRecaptchaFailedOrCanceled(reason: string = \"\") {\r\n this.signinUser.RecaptchaToken = \"\";\r\n this.signinUser.RecaptchaTokenIsV3 = true;\r\n this.working = false;\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, <\r\n GlobalNotificationEventParams\r\n >{\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: NotificationType.error,\r\n message: this.$i18n.t(\"Recaptcha_Invalid\").toString() + reason,\r\n });\r\n }\r\n\r\n get isNotOnPrem() {\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get mustShowRecaptcha() {\r\n return this.isNotOnPrem && process.env.NODE_ENV!=\"development\";\r\n }\r\n\r\n isValidEmail(email: string) {\r\n return Utils.validateEmail(email);\r\n }\r\n\r\n isValidLoginPassword(pwd: string) {\r\n return Utils.validateLoginPassword(pwd);\r\n }\r\n\r\n clearValidations() {\r\n this.$refs.observer.reset();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LoginForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginForm.vue?vue&type=template&id=f80094f2&scoped=true&\"\nimport script from \"./LoginForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginForm.vue?vue&type=style&index=0&id=f80094f2&prod&scoped=true&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 \"f80094f2\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Prop } from \"vue-property-decorator\";\r\n import { UserModule } from '@/store/UserStore'\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import SectionTitle from '@/views/layouts/LayoutParts/SectionTitle.vue';\r\n import SocialLoginList from '@/views/Signin/SocialLoginList.vue';\r\n import LoginForm from '@/views/Signin/LoginForm.vue';\r\n import { ReturnUrlHandler } from \"@/views/ReturnUrl\";\r\n import { Location as RouterLocation } from \"vue-router\";\r\n import { RouterUtils } from \"@/modules/Router\";\r\n import { Utils } from \"@/utils/Utilities\";\r\n import { loadAndSetWithUserLanguageAsync } from '@/modules/Localization';\r\n\r\n @Component({\r\n name: \"Login\",\r\n components: { SectionTitle, SocialLoginList, LoginForm }\r\n })\r\n export default class Login extends ReturnUrlHandler {\r\n\r\n @Prop() emailFromSignUp!:string;\r\n @Prop() inviteLinkId!: string;\r\n @Prop() organizationId!: string;\r\n\r\n private showView=false;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n async beforeCreate() {\r\n await loadAndSetWithUserLanguageAsync();\r\n }\r\n \r\n async created(){\r\n if(!UserModule.CurrentUser.IsAnonymous) {\r\n this.redirectToLanding();\r\n }\r\n else {\r\n this.showView = true;\r\n }\r\n }\r\n\r\n redirectToLanding(){\r\n var defaultRedirectRoute = this.$router.resolve({ name: 'MyTables' });\r\n this.redirectToReturnUrlOrDefault(defaultRedirectRoute.href);\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n\r\n get hasUnauthorizedSignupError(){\r\n var qsVal = RouterUtils.getCaseInsentiveQuery(this.$route, \"unauthorizedSignup\");\r\n if(qsVal)\r\n return (qsVal).toLowerCase() == 'true';\r\n\r\n return false;\r\n }\r\n\r\n getSignupUrl() {\r\n if(!Utils.isNullOrWhiteSpace(this.inviteLinkId)) {\r\n return {\r\n name: 'Join',\r\n params: {\r\n inviteLinkId: this.inviteLinkId\r\n },\r\n query: {\r\n ReturnUrl: RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\"),\r\n }\r\n };\r\n }\r\n return {\r\n name: \"SignUp\",\r\n query: {\r\n ReturnUrl: RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\"),\r\n orgid: RouterUtils.getCaseInsentiveQuery(this.$route, \"orgid\")\r\n }\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=9ca56bf8&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=ts&\"\nexport * from \"./Login.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=9ca56bf8&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 \"9ca56bf8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.showView)?_c('v-container',{staticClass:\"login-container\"},[_c('v-row',[_c('v-col',[_c('a',{staticClass:\"mb-2 need-help\",attrs:{\"href\":_vm.$t('LoginFba_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\"}},[_vm._v(\"fa-life-ring\")]),_vm._v(\" \"),_c('div',[_vm._v(_vm._s(_vm.$t('LoginFba_NeedHelp')))])],1),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.$t('LoginFba_Page_Title')))]),_vm._v(\" \"),_c('div',[_c('section-title',[_vm._v(_vm._s(_vm.$t('LoginFba_Social_Account')))]),_vm._v(\" \"),_c('microsoft-login-button',{attrs:{\"isSignUp\":false,\"returnUrl\":_vm.returnUrl}})],1),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('section-title',[_vm._v(\" \"+_vm._s(_vm.$t('SignIn_Rowshare_Account')))]):_c('section-title',[_vm._v(\" \"+_vm._s(_vm.$t('SignIn_Rowshare_Account_OnPrem')))]),_vm._v(\" \"),_c('login-form',{attrs:{\"returnUrl\":_vm.returnUrl}})],1)],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component } from \"vue-property-decorator\";\r\n import { UserModule } from '@/store/UserStore'\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import SectionTitle from '@/views/layouts/LayoutParts/SectionTitle.vue';\r\n import MicrosoftLoginButton from '@/views/Signin/MicrosoftLoginButton.vue'\r\n import LoginForm from '@/views/Signin/LoginForm.vue';\r\n import { ReturnUrlHandler } from \"@/views/ReturnUrl\";\r\n \r\n @Component({\r\n name: \"LoginFba\",\r\n components: { SectionTitle, MicrosoftLoginButton, LoginForm }\r\n })\r\n export default class LoginFba extends ReturnUrlHandler {\r\n\r\n private showView=false;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n async created(){\r\n if(!UserModule.CurrentUser.IsAnonymous)\r\n this.redirectToLanding();\r\n else\r\n this.showView = true;\r\n }\r\n\r\n async mounted(){ \r\n let browserLanguage = navigator.language;\r\n this.$i18n.locale = browserLanguage.substring(0,2);\r\n }\r\n\r\n redirectToLanding(){\r\n var defaultRedirectRoute = this.$router.resolve({ name: 'MyTables' });\r\n this.redirectToReturnUrlOrDefault(defaultRedirectRoute.href);\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LoginFba.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LoginFba.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginFba.vue?vue&type=template&id=7e997b16&scoped=true&\"\nimport script from \"./LoginFba.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginFba.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginFba.vue?vue&type=style&index=0&id=7e997b16&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 \"7e997b16\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('PageLoadSpinner')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component } from \"vue-property-decorator\";\r\n import { UserModule } from '@/store/UserStore'\r\n\r\n import PageLoadSpinner from \"@/views/layouts/LayoutParts/PageLoadSpinner.vue\";\r\n\r\n import * as API from \"@/api/Api\";\r\n\r\n import { ReturnUrlHandler } from \"@/views/ReturnUrl\";\r\n \r\n @Component({\r\n name: \"LoginMS\",\r\n components: { PageLoadSpinner }\r\n })\r\n export default class LoginMS extends ReturnUrlHandler {\r\n constructor() {\r\n super();\r\n }\r\n\r\n async created(){\r\n if(!UserModule.CurrentUser.IsAnonymous)\r\n this.redirectToLanding();\r\n }\r\n\r\n async mounted(){ \r\n let returnUrl = await API.SocialProvider.signup(\"AzureAD\", this.returnUrl);\r\n window.location.href = returnUrl ? returnUrl : '/';\r\n }\r\n\r\n redirectToLanding(){\r\n var defaultRedirectRoute = this.$router.resolve({ name: 'MyTables' });\r\n this.redirectToReturnUrlOrDefault(defaultRedirectRoute.href);\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LoginMS.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LoginMS.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginMS.vue?vue&type=template&id=33ffdbd9&scoped=true&\"\nimport script from \"./LoginMS.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginMS.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginMS.vue?vue&type=style&index=0&id=33ffdbd9&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 \"33ffdbd9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"business-page-new\",attrs:{\"id\":\"my-account\"}},[_c('bandeau',{attrs:{\"title\":_vm.$t('MyAccount_Page_Title')}}),_vm._v(\" \"),_c('section',{staticClass:\"main main--no-padding-top\"},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"mt-n12\",attrs:{\"sm\":\"12\",\"md\":\"8\"}},[_c('form',[_c('v-card',{staticClass:\"px-6 py-8 card-my-account\",attrs:{\"elevation\":\"6\"}},[_c('div',{staticClass:\"mb-6 form-box form-box--profile-infos\"},[_c('img',{staticClass:\"profile-img\",attrs:{\"src\":require(\"@/assets/static/images/img_profile.svg\"),\"alt\":\"Profile Picture\"}}),_vm._v(\" \"),_c('div',{staticClass:\"profile-infos\"},[_c('h3',{staticClass:\"font-weight-medium display-1\"},[_vm._v(_vm._s(_vm.user.NickName))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.user.Email))])])]),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('Form_Name')))]),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'firstName',\"inputTextName\":_vm.$t('Form_Name'),\"inputTextValidationRules\":{required: true}},on:{\"blured\":_vm.setProfile},model:{value:(_vm.user.FirstName),callback:function ($$v) {_vm.$set(_vm.user, \"FirstName\", $$v)},expression:\"user.FirstName\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('Form_Surname')))]),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'lastName',\"inputTextName\":_vm.$t('Form_Surname'),\"inputTextValidationRules\":{required: true}},on:{\"blured\":_vm.setProfile},model:{value:(_vm.user.LastName),callback:function ($$v) {_vm.$set(_vm.user, \"LastName\", $$v)},expression:\"user.LastName\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Display_Name_Form')))]),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'nickName',\"inputTextName\":_vm.$t('MyAccount_Display_Name_Form'),\"inputTextValidationRules\":{required: true}},on:{\"blured\":_vm.setProfile},model:{value:(_vm.user.NickName),callback:function ($$v) {_vm.$set(_vm.user, \"NickName\", $$v)},expression:\"user.NickName\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Time_Zone_Form')))]),_vm._v(\" \"),_c('v-select',{attrs:{\"item-text\":\"Name\",\"item-value\":\"Id\",\"items\":_vm.timezones,\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.setProfile},model:{value:(_vm.user.TimeZoneId),callback:function ($$v) {_vm.$set(_vm.user, \"TimeZoneId\", $$v)},expression:\"user.TimeZoneId\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Notifications')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Email_Alerts_Description')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Email_Alerts_Description_2')))]),_vm._v(\" \"),_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.setProfile},model:{value:(_vm.user.EmailNotifications),callback:function ($$v) {_vm.$set(_vm.user, \"EmailNotifications\", $$v)},expression:\"user.EmailNotifications\"}})],1),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Preview_Features_Title')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Preview_Features_Description')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Preview_Features_Description_2')))]),_vm._v(\" \"),_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.setProfile},model:{value:(_vm.user.PreviewFeaturesEnabled),callback:function ($$v) {_vm.$set(_vm.user, \"PreviewFeaturesEnabled\", $$v)},expression:\"user.PreviewFeaturesEnabled\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.isNotOnPrem && _vm.existsCookiesScript)?_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Cookies_Title')))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.manageCookies}},[_vm._v(_vm._s(_vm.$t('MyAccount_ManageCookies')))])],1):_vm._e(),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Contact_Title')))]),_vm._v(\" \"),_c('div',{staticClass:\"contact-link-wrapper\"},[_c('a',{staticClass:\"contact-link body-2 mb-3\",attrs:{\"href\":\"/contact\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyAccount_Contact_LinkText'))+\"\\n \"),_c('v-icon',{staticClass:\"ml-1\",attrs:{\"dense\":\"\",\"size\":\"14\"}},[_vm._v(\"far fa-external-link\")])],1)])]):_vm._e(),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('my-account-subscription-list',{attrs:{\"user\":_vm.user},on:{\"default-org-changed\":_vm.setProfile}}),_vm._v(\" \"),_c('my-account-delete-account-button')],1)],1)]),_vm._v(\" \"),_c('v-col',{staticClass:\"mt-md-n12\",attrs:{\"sm\":\"12\",\"md\":\"4\"}},[_c('v-card',{staticClass:\"px-6 py-8 card-my-account\",attrs:{\"elevation\":\"6\"}},[_c('h4',[_vm._v(_vm._s(_vm.$t('MyAccount_Notifications')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('MyAccount_Notifications_Description')))]),_vm._v(\" \"),_c('v-list',{staticClass:\"notification-list\"},_vm._l((_vm.orderedRelatedTables),function(table){return _c('my-account-notification-list',{key:table.ListId,attrs:{\"tableNotif\":table}})}),1)],1)],1)],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',[_c('span',{staticClass:\"notification-list__table-name\",attrs:{\"data-title\":\"Table\"}},[_c('a',{attrs:{\"href\":`t/${_vm.tableNotif.ListId}`}},[_vm._v(\"\\n \"+_vm._s(_vm.tableNotif.ListDisplayName)+\"\\n \")])]),_vm._v(\" \"),_c('span',{staticClass:\"notification-list__icons\"},[_c('v-btn-toggle',{attrs:{\"group\":\"\",\"color\":\"primary\"},model:{value:(_vm.selectedNotification),callback:function ($$v) {_vm.selectedNotification=$$v},expression:\"selectedNotification\"}},[_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.setListNotification(_vm.tableNotif, _vm.allNotifications)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-bell\")])],1),_vm._v(\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.setListNotification(_vm.tableNotif, _vm.ownedNotifications)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"far fa-bell\")])],1),_vm._v(\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.setListNotification(_vm.tableNotif, _vm.noNotifications)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-bell-slash\")])],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import * as Models from '@/models/RowShare';\r\n import { UserNotificationUpdate } from \"@/models/UserNotificationLink\";\r\n import { UserListLinkTypes } from \"@/models/UserListLink\";\r\n import * as API from '@/api/Api';\r\n\r\n @Component({\r\n name: \"MyAccountNotificationList\"\r\n })\r\n export default class MyAccountNotificationList extends Vue {\r\n private allNotifications: UserListLinkTypes;\r\n private ownedNotifications: UserListLinkTypes;\r\n private noNotifications: UserListLinkTypes;\r\n\r\n @Prop() tableNotif!: Models.UserNotificationLink;\r\n\r\n constructor() {\r\n super();\r\n this.allNotifications = UserListLinkTypes.AllRowsEmailNotifications;\r\n this.ownedNotifications = UserListLinkTypes.OwnedRowsEmailNotifications;\r\n this.noNotifications = UserListLinkTypes.Unspecified;\r\n }\r\n\r\n async setListNotification(\r\n listLink: Models.UserNotificationLink, \r\n newType: UserListLinkTypes) : Promise {\r\n let newNotificationConfig = new UserNotificationUpdate();\r\n newNotificationConfig.ListId = listLink.ListId;\r\n newNotificationConfig.Types = newType;\r\n \r\n let updatedNotif: Models.UserNotificationLink | null = \r\n new Models.UserNotificationLink();\r\n updatedNotif = await this.setListNotifOnServer(newNotificationConfig);\r\n this.tableNotif.Types = updatedNotif ? updatedNotif.Types : listLink.Types;\r\n }\r\n\r\n async setListNotifOnServer(notification: UserNotificationUpdate) \r\n : Promise {\r\n let userNewNotificationList: Models.UserNotificationLink | null = \r\n new Models.UserNotificationLink();\r\n await API.UserNotificationLink\r\n .updateUserTableNotification(notification)\r\n .then(userListLink => {\r\n userNewNotificationList = userListLink;\r\n });\r\n return userNewNotificationList;\r\n }\r\n\r\n get selectedNotification() {\r\n switch(this.tableNotif.Types) {\r\n case this.allNotifications:\r\n return 0;\r\n case this.ownedNotifications:\r\n return 1;\r\n case this.noNotifications:\r\n default:\r\n return 2;\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyAccountNotificationList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyAccountNotificationList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyAccountNotificationList.vue?vue&type=template&id=b700baa0&scoped=true&\"\nimport script from \"./MyAccountNotificationList.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyAccountNotificationList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyAccountNotificationList.vue?vue&type=style&index=0&id=b700baa0&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 \"b700baa0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-item-group',{staticClass:\"mb-2\"},[_c('h3',{staticClass:\"headline font-weight-bold mt-4 mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_My_Organizations')))]),_vm._v(\" \"),_c('p',{staticClass:\"mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_My_Organizations_Description')))]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},_vm._l((_vm.organizations),function(organization){return _c('div',{key:organization.Id,staticClass:\"col-sm-12 col-md-6\"},[_c('div',{staticClass:\"organization-box\"},[_c('router-link',{staticClass:\"flex-grow-1\",attrs:{\"to\":{name: 'MyTables', params:{organizationId: organization.Id}}}},[_c('span',{staticClass:\"organization-box-content\",attrs:{\"title\":organization.Name}},[_c('img',{staticClass:\"flex-grow-0\",attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}}),_vm._v(\" \"),_c('span',{staticClass:\"flex-grow-1 d-inline-block text-truncate organization-box-name\",attrs:{\"title\":organization.Name}},[_vm._v(_vm._s(organization.Name))])])]),_vm._v(\" \"),(organization.CanCurrentUserManage)?_c('router-link',{staticClass:\"organization-box-manage flex-grow-0\",attrs:{\"to\":{name: 'ManageOrganization', params: {organizationId: organization.Id, returnUrl: '/MyAccount'}}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-cog\")])],1):_vm._e(),_vm._v(\" \"),(_vm.isNotOnPrem && organization.CanCurrentUserManage)?_c('v-btn',{staticClass:\"flex-grow-0\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.openDeleteSubscriptionModal(organization)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")])],1):_vm._e()],1)])}),0)]),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-item-group',{staticClass:\"mb-2\"},[_c('div',{attrs:{\"ismemberofmanyorganizations\":\"False\"}},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Default_Org_Form')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Default_Org_Description')))]),_vm._v(\" \"),_c('v-select',{attrs:{\"item-text\":\"Name\",\"item-value\":\"Id\",\"items\":_vm.organizations,\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.$emit('default-org-changed')}},model:{value:(_vm.user.DefaultOrgId),callback:function ($$v) {_vm.$set(_vm.user, \"DefaultOrgId\", $$v)},expression:\"user.DefaultOrgId\"}})],1)]):_vm._e(),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"600\"},model:{value:(_vm.isDeleteSubscriptionModalOpen),callback:function ($$v) {_vm.isDeleteSubscriptionModalOpen=$$v},expression:\"isDeleteSubscriptionModalOpen\"}},[(_vm.orgBeingDeleted)?_c('v-card',[_c('v-app-bar',{attrs:{\"flat\":\"\",\"color\":\"rgba(0, 0, 0, 0)\"}},[_c('v-toolbar-title',{staticClass:\"headline lighten-2\"},[_vm._v(_vm._s(_vm.getDeleteSubscriptionModalTitle))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\"},on:{\"click\":function($event){_vm.isDeleteSubscriptionModalOpen = false;}}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(!_vm.deleteSubscriptionModalWasFirstConfirmed)?_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_c('span',[_vm._v(_vm._s(_vm.getDeleteSubscriptionWarningText))]),_vm._v(\" \"),_c('br'),_vm._v(\"\\n \"+_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Description2'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.deleteSubscriptionModalWasFirstConfirmed)?_c('v-card-text',[_c('v-text-field',{attrs:{\"autocomplete\":\"false\",\"outlined\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('MyAccount_DeleteSubscriptionModal_NameInputPlaceholder'),\"error-messages\":_vm.subscriptionToDeleteErrors},model:{value:(_vm.subscriptionToDeleteNameConfirmation),callback:function ($$v) {_vm.subscriptionToDeleteNameConfirmation=$$v},expression:\"subscriptionToDeleteNameConfirmation\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.deleteSubscriptionModalWasFirstConfirmed && !_vm.hasSubscriptionDeletionError)?_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getDeleteSubscriptionLastWarningText)}})]):_vm._e(),_vm._v(\" \"),(_vm.hasSubscriptionDeletionError)?_c('v-card-text',{staticClass:\"font-weight-bold error--text subtitle-1\"},[_c('span',[_vm._v(_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Error')))])]):_vm._e(),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('div',[_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.isDeleteSubscriptionModalOpen = false;}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Cancel'))+\"\\n \")]),_vm._v(\" \"),(!_vm.deleteSubscriptionModalWasFirstConfirmed)?_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"error\",\"disabled\":!this.validateSubscriptionName()},on:{\"click\":_vm.firstConfirmDeleteSubscription}},[_c('v-icon',{staticClass:\"delete-icon mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Continue'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.deleteSubscriptionModalWasFirstConfirmed && !_vm.hasSubscriptionDeletionError)?_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"error\",\"loading\":_vm.isDeletingSubscription},on:{\"click\":_vm.lastConfirmDeleteSubscription}},[_c('v-icon',{staticClass:\"delete-icon mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Confirm'))+\"\\n \")],1):_vm._e()],1)],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import InputText from '@/views/components/FormInputs/InputText.vue';\r\n import * as API from '@/api/Api';\r\n import * as RowShare from '@/models/RowShare';\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\nimport { Utils } from '@/utils/Utilities';\r\n\r\n @Component({\r\n name: \"MyAccountSubscriptionList\",\r\n components: { InputText }\r\n })\r\n export default class MyAccountSubscriptionList extends Vue {\r\n\r\n @Prop() user!: RowShare.User;\r\n\r\n private organizations: Array | null;\r\n private orgBeingDeleted: RowShare.Organization | null = null;\r\n private isDeleteSubscriptionModalOpen = false;\r\n private subscriptionToDeleteNameConfirmation: string = '';\r\n private deleteSubscriptionModalWasFirstConfirmed = false;\r\n private isDeletingSubscription = false;\r\n private hasSubscriptionDeletionError = false;\r\n private subscriptionToDeleteErrors: string = '';\r\n\r\n constructor(){\r\n super();\r\n this.organizations = new Array();\r\n }\r\n\r\n async mounted(){\r\n this.reloadSubscriptions();\r\n }\r\n\r\n async reloadSubscriptions(bypassCache: boolean = false){\r\n this.organizations = await API.Organization.loadall({ cache: !bypassCache });\r\n }\r\n\r\n openDeleteSubscriptionModal(org: RowShare.Organization){\r\n if (OnPremModule.isOnPrem)\r\n return;\r\n \r\n this.orgBeingDeleted = org;\r\n this.subscriptionToDeleteNameConfirmation = '';\r\n this.isDeleteSubscriptionModalOpen = true;\r\n this.deleteSubscriptionModalWasFirstConfirmed = false;\r\n this.isDeletingSubscription = false;\r\n this.hasSubscriptionDeletionError = false;\r\n this.subscriptionToDeleteErrors = \"\";\r\n }\r\n\r\n firstConfirmDeleteSubscription(){\r\n if(this.orgBeingDeleted?.Name == this.subscriptionToDeleteNameConfirmation)\r\n this.deleteSubscriptionModalWasFirstConfirmed = true;\r\n }\r\n\r\n lastConfirmDeleteSubscription(){\r\n if (OnPremModule.isOnPrem)\r\n return;\r\n\r\n if(!this.orgBeingDeleted)\r\n return;\r\n\r\n this.isDeletingSubscription = true;\r\n API.Organization.deleteSubscription(this.orgBeingDeleted.Id, this.subscriptionToDeleteNameConfirmation).then(res => {\r\n if(!res){\r\n this.handleDeleteSubscriptionError();\r\n return;\r\n }\r\n\r\n this.isDeletingSubscription = false;\r\n this.isDeleteSubscriptionModalOpen = false;\r\n\r\n this.reloadSubscriptions(true);\r\n ListTreeModule.refreshOrganizationsTree();\r\n }).catch(err => {\r\n this.handleDeleteSubscriptionError();\r\n });\r\n }\r\n\r\n handleDeleteSubscriptionError(){\r\n this.hasSubscriptionDeletionError = true;\r\n }\r\n\r\n protected get getDeleteSubscriptionModalTitle() {\r\n return this.$i18n.t('MyAccount_DeleteSubscriptionModal_Title', {\r\n 'SubscriptionName': this.orgBeingDeleted?.Name,\r\n }).toString();\r\n }\r\n\r\n protected get getDeleteSubscriptionWarningText() {\r\n if(!this.orgBeingDeleted)\r\n return \"error\";\r\n\r\n var pattern = this.orgBeingDeleted.MemberCount > 1 ? 'MyAccount_DeleteSubscriptionModal_Description1_HasMembers' : 'MyAccount_DeleteSubscriptionModal_Description1_IsTheOnlyMember';\r\n \r\n return this.$i18n.t(pattern, {\r\n 'TableCount': this.orgBeingDeleted.ListCount,\r\n 'MemberCount': this.orgBeingDeleted.MemberCount - 1,\r\n 'SubscriptionName': this.orgBeingDeleted.Name,\r\n }).toString();\r\n }\r\n\r\n protected get getDeleteSubscriptionLastWarningText() {\r\n if(!this.orgBeingDeleted)\r\n return \"error\";\r\n\r\n return this.$i18n.t(\"MyAccount_DeleteSubscriptionModal_LastWarning\", {\r\n 'SubscriptionName': this.orgBeingDeleted.Name,\r\n }).toString();\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n @Watch('subscriptionToDeleteNameConfirmation')\r\n validateSubscriptionName() {\r\n if(!this.orgBeingDeleted) {\r\n return false;\r\n }\r\n if(Utils.isNullOrWhiteSpace(this.subscriptionToDeleteNameConfirmation)) {\r\n this.subscriptionToDeleteErrors = this.$i18n.t('Common_MandatoryField', {fieldName: this.$i18n.t('MyAccount_DeleteSubscriptionModal_InputValidationName').toString()}).toString();\r\n return false;\r\n }\r\n if(this.subscriptionToDeleteNameConfirmation !== this.orgBeingDeleted.Name) {\r\n this.subscriptionToDeleteErrors = this.$i18n.t('Common_InvalidField', {fieldName: this.$i18n.t('MyAccount_DeleteSubscriptionModal_InputValidationName').toString()}).toString();\r\n return false;\r\n }\r\n this.subscriptionToDeleteErrors = \"\";\r\n return true;\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyAccountSubscriptionList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyAccountSubscriptionList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyAccountSubscriptionList.vue?vue&type=template&id=27362079&scoped=true&\"\nimport script from \"./MyAccountSubscriptionList.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyAccountSubscriptionList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyAccountSubscriptionList.vue?vue&type=style&index=0&id=27362079&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 \"27362079\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.isNotOnPrem)?_c('v-item-group',{staticClass:\"mb-2\"},[_c('h4',{staticClass:\"font-weight-medium headline mt-4 mb-1\"},[_vm._v(_vm._s(_vm.$t('MyAccount_Close_Account')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('MyAccount_Close_Account_Description')))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"error\",\"dark\":\"\"},on:{\"click\":_vm.checkCanDeleteAccount}},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('MyAccount_Delete_Button'))+\" \"),_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")])],1)],1):_vm._e(),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"600\"},on:{\"click:outside\":_vm.closeAndResetAllModals},model:{value:(_vm.isDeleteAccountModalOpen),callback:function ($$v) {_vm.isDeleteAccountModalOpen=$$v},expression:\"isDeleteAccountModalOpen\"}},[(_vm.deleteAccountData)?_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('MyAccount_DeleteAccountModal_Title'))+\"\\r\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\"},on:{\"click\":_vm.closeAndResetAllModals}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(_vm.currentDeleteAccountModalSate == _vm.FreeOrgWarningStep)?_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\r\\n \"+_vm._s(_vm.getDeleteAccountModalFreeOrgAdminWarning)+\"\\r\\n \"),_c('br'),_vm._v(\" \"),_c('ul',_vm._l((_vm.deleteAccountData.FreeOrgWithOtherAdmins),function(organization){return _c('li',{key:organization.Id},[_vm._v(_vm._s(organization.Name))])}),0)]):_vm._e(),_vm._v(\" \"),(_vm.currentDeleteAccountModalSate == _vm.PaidOrgWarningStep)?_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\r\\n \"+_vm._s(_vm.getDeleteAccountModalPaidOrgAdminWarning)+\"\\r\\n \"),_c('br'),_vm._v(\" \"),_c('ul',_vm._l((_vm.deleteAccountData.PaidOrgWithOtherAdmins),function(organization){return _c('li',{key:organization.Id},[_vm._v(_vm._s(organization.Name))])}),0)]):_vm._e(),_vm._v(\" \"),(_vm.currentDeleteAccountModalSate == _vm.OwnOrgWarningStep)?_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\r\\n \"+_vm._s(_vm.getDeleteOwnOrgWithNoMemberWarningText)+\"\\r\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.currentDeleteAccountModalSate == _vm.LastWarningStep)?_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('MyAccount_DeleteAccountModal_LastWarning'))+\"\\r\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.closeAndResetAllModals}},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Cancel'))+\"\\r\\n \")]),_vm._v(\" \"),(_vm.currentDeleteAccountModalSate == _vm.LastWarningStep)?_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"error\",\"loading\":_vm.isDeletingAccount},on:{\"click\":_vm.ConfirmDeleteAccountStep}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")]),_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Confirm'))+\"\\r\\n \")],1):_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.ConfirmDeleteAccountStep}},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Continue'))+\"\\r\\n \")])],1)],1):_vm._e()],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"600\"},on:{\"click:outside\":_vm.closeAndResetAllModals},model:{value:(_vm.isCannotDeleteAccountModalOpen),callback:function ($$v) {_vm.isCannotDeleteAccountModalOpen=$$v},expression:\"isCannotDeleteAccountModalOpen\"}},[(_vm.deleteAccountData)?_c('v-card',[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('MyAccount_CannotDeleteAccountModal_Title'))+\"\\r\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\"},on:{\"click\":_vm.closeAndResetAllModals}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_vm._v(\"\\r\\n \"+_vm._s(_vm.getCannotDeleteAccountModalDescription)+\"\\r\\n \"),_c('br'),_vm._v(\" \"),_c('ul',_vm._l((_vm.deleteAccountData.OrgPreventingDeletion),function(organization){return _c('li',{key:organization.Id},[_vm._v(_vm._s(organization.Name))])}),0)]),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.closeAndResetAllModals}},[_vm._v(\"\\r\\n \"+_vm._s(_vm.$t('MyAccount_DeleteSubscriptionModal_Cancel'))+\"\\r\\n \")])],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import { State, Action, Getter, namespace } from 'vuex-class';\r\n import { OnPremModule } from '@/store/OnPremStore'\r\n import { UserModule } from '@/store/UserStore'\r\n import InputText from '@/views/components/FormInputs/InputText.vue';\r\n import ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\n import * as API from '@/api/Api';\r\n import * as RowShare from '@/models/RowShare';\r\n import { DeleteAccountData } from '@/models/RowShare';\r\n\r\n @Component({\r\n name: \"MyAccountDeleteAccountButton\", components: { ConfirmationDialog }\r\n })\r\n export default class MyAccountSubscriptionList extends Vue {\r\n private readonly FreeOrgWarningStep = 0;\r\n private readonly PaidOrgWarningStep = 1;\r\n private readonly OwnOrgWarningStep = 2;\r\n private readonly LastWarningStep = 3;\r\n\r\n private isDeletingAccount = false;\r\n private isCannotDeleteAccountModalOpen = false;\r\n private isDeleteAccountModalOpen = false;\r\n private userRemovalErrorMessage: string | null = null;\r\n\r\n private hasConfirmedFreeOrgWarning = false;\r\n private hasConfirmedPaidOrgWarning = false;\r\n private hasConfirmedOwnOrgWarning = false;\r\n\r\n get currentDeleteAccountModalSate() : number {\r\n if(!this.deleteAccountData)\r\n throw new Error(\"Missing delete account data\");\r\n\r\n if(this.deleteAccountData.FreeOrgWithOtherAdmins && this.deleteAccountData.FreeOrgWithOtherAdmins.length > 0 && !this.hasConfirmedFreeOrgWarning)\r\n return this.FreeOrgWarningStep;\r\n\r\n if(this.deleteAccountData.PaidOrgWithOtherAdmins && this.deleteAccountData.PaidOrgWithOtherAdmins.length > 0 && !this.hasConfirmedPaidOrgWarning)\r\n return this.PaidOrgWarningStep;\r\n\r\n if(this.deleteAccountData.OwnOrgWithNoMember && !this.hasConfirmedOwnOrgWarning)\r\n return this.OwnOrgWarningStep;\r\n\r\n return this.LastWarningStep;\r\n }\r\n\r\n private deleteAccountData: DeleteAccountData | null = null;\r\n \r\n async deleteUser(){\r\n try{\r\n let redirectUrl = await UserModule.deleteUserProfile();\r\n if (redirectUrl) {\r\n if (redirectUrl.charAt(0) == \"~\")\r\n redirectUrl = redirectUrl.substr(1);\r\n\r\n window.location.href = redirectUrl;\r\n }\r\n }\r\n catch(error: any){ \r\n let errorMessage = this.$i18n.t(\"ExceptionCode_\" + error.code).toString();\r\n this.userRemovalErrorMessage = errorMessage;\r\n }\r\n }\r\n\r\n async checkCanDeleteAccount(){\r\n this.deleteAccountData = await API.User.canCurrentUserdeleteAccount();\r\n if(this.deleteAccountData?.CanDeleteAccount)\r\n this.isDeleteAccountModalOpen = true;\r\n else\r\n this.isCannotDeleteAccountModalOpen = true;\r\n }\r\n\r\n protected get getDeleteOwnOrgWithNoMemberWarningText() {\r\n if(!this.deleteAccountData?.OwnOrgWithNoMember)\r\n return \"\";\r\n\r\n return this.$i18n.t('MyAccount_DeleteSubscriptionModal_DeleteOwnOrgWithNoMemberWarning', {\r\n 'TableCount': this.deleteAccountData?.OwnOrgWithNoMember.ListCount,\r\n 'SubscriptionName': this.deleteAccountData?.OwnOrgWithNoMember.Name,\r\n }).toString();\r\n }\r\n\r\n protected get getCannotDeleteAccountModalDescription() {\r\n if(!this.deleteAccountData?.OrgPreventingDeletion)\r\n return \"\";\r\n\r\n return this.$i18n.t(this.deleteAccountData.OrgPreventingDeletion.length > 1 ? 'MyAccount_CannotDeleteAccountModal_ManyOrgsDescription' : 'MyAccount_CannotDeleteAccountModal_SingleOrgDescription');\r\n }\r\n\r\n protected get getDeleteAccountModalFreeOrgAdminWarning() {\r\n if(!this.deleteAccountData?.FreeOrgWithOtherAdmins)\r\n return \"\";\r\n\r\n return this.$i18n.t(this.deleteAccountData.FreeOrgWithOtherAdmins.length > 1 ? 'MyAccount_DeleteAccountModal_ManyFreeOrgAdminWarning' : 'MyAccount_DeleteAccountModal_SingleFreeOrgAdminWarning');\r\n }\r\n\r\n protected get getDeleteAccountModalPaidOrgAdminWarning() {\r\n if(!this.deleteAccountData?.PaidOrgWithOtherAdmins)\r\n return \"\";\r\n\r\n return this.$i18n.t(this.deleteAccountData.PaidOrgWithOtherAdmins.length > 1 ? 'MyAccount_DeleteAccountModal_ManyPaidOrgAdminWarning' : 'MyAccount_DeleteAccountModal_SinglePaidOrgAdminWarning');\r\n }\r\n\r\n ConfirmDeleteAccountStep(){\r\n switch(this.currentDeleteAccountModalSate){\r\n case this.FreeOrgWarningStep:\r\n this.hasConfirmedFreeOrgWarning = true;\r\n break;\r\n case this.PaidOrgWarningStep:\r\n this.hasConfirmedPaidOrgWarning = true;\r\n break;\r\n case this.OwnOrgWarningStep:\r\n this.hasConfirmedOwnOrgWarning = true;\r\n break;\r\n case this.LastWarningStep:\r\n this.isDeletingAccount = true;\r\n this.deleteUser();\r\n break;\r\n }\r\n }\r\n\r\n closeAndResetAllModals(){\r\n this.isCannotDeleteAccountModalOpen = false;\r\n this.isDeleteAccountModalOpen = false;\r\n this.hasConfirmedFreeOrgWarning = false;\r\n this.hasConfirmedPaidOrgWarning = false;\r\n this.hasConfirmedOwnOrgWarning = false;\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyAccountDeleteAccountButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyAccountDeleteAccountButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyAccountDeleteAccountButton.vue?vue&type=template&id=fa8d3706&scoped=true&\"\nimport script from \"./MyAccountDeleteAccountButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyAccountDeleteAccountButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyAccountDeleteAccountButton.vue?vue&type=style&index=0&id=fa8d3706&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 \"fa8d3706\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component } from 'vue-property-decorator';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport PageTitle from '@/views/layouts/LayoutParts/PageTitle.vue';\r\nimport { User } from '@/models/User';\r\nimport { Timezone } from '@/models/Timezone';\r\nimport * as API from '@/api/Api';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport InputSelect from '@/views/components/FormInputs/InputSelect.vue';\r\nimport MyAccountNotificationList from '@/views/MyAccount/MyAccountNotificationList.vue';\r\nimport MyAccountSubscriptionList from '@/views/MyAccount/MyAccountSubscriptionList.vue';\r\nimport MyAccountDeleteAccountButton from '@/views/MyAccount/MyAccountDeleteAccountButton.vue';\r\nimport { ValidationProvider, validate } from 'vee-validate';\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport { UserNotificationUpdate } from \"@/models/UserNotificationLink\";\r\nimport Bandeau from '@/views/layouts/LayoutParts/Bandeau.vue';\r\n\r\nimport _ from \"lodash\";\r\n\r\n@Component({\r\n name: \"MyAccount\",\r\n components: { \r\n PageTitle,\r\n InputText, InputSelect, ValidationProvider, MyAccountSubscriptionList,\r\n MyAccountNotificationList, Bandeau, MyAccountDeleteAccountButton}\r\n})\r\nexport default class MyAccount extends FormValidation {\r\n\r\n private deleteModalElementId = \"delete-account\";\r\n\r\n private user: User;\r\n private timezones: Array | null;\r\n private organizations: Array | null;\r\n private relatedLists: Array;\r\n\r\n constructor(){\r\n super();\r\n this.user = new User();\r\n this.timezones = new Array();\r\n this.organizations = new Array();\r\n this.relatedLists = new Array();\r\n }\r\n\r\n async mounted(){\r\n this.user = await this.getUserProfile();\r\n let userLanguage: string = await UserModule.getUserLanguage();\r\n this.timezones = await API.TimezoneService.loadByCulture(userLanguage);\r\n this.organizations = await API.Organization.loadall();\r\n this.relatedLists = await this.getUserRelatedLists();\r\n }\r\n\r\n get orderedRelatedTables(): Array{\r\n return _.orderBy(this.relatedLists, 'ListDisplayName');\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n\r\n async getUserProfile() : Promise {\r\n let profile : User | null = null;\r\n await API.User\r\n .load({ cache : false })\r\n .then(profil => {\r\n profile = profil;\r\n });\r\n return profile ? profile : new User();\r\n }\r\n\r\n async getUserRelatedLists() : Promise> {\r\n let userRelatedTable: Array | null;\r\n userRelatedTable = await API.UserNotificationLink.loadAll();\r\n return userRelatedTable ? userRelatedTable : new Array();\r\n }\r\n\r\n async setProfile(): Promise{\r\n var allValid = true;\r\n\r\n allValid = allValid && (await validate(this.user.FirstName, 'required')).valid;\r\n allValid = allValid && (await validate(this.user.LastName, 'required')).valid;\r\n allValid = allValid && (await validate(this.user.NickName, 'required')).valid;\r\n allValid = allValid && (await validate(this.user.TimeZoneId, 'required')).valid;\r\n\r\n if(allValid){\r\n this.user = await UserModule.updateUserProfile(this.user);\r\n } else {\r\n console.debug(\"validation error\");\r\n }\r\n }\r\n\r\n async setUserListNotification(notification: UserNotificationUpdate) : Promise {\r\n let userNewNotificationList: RowShare.UserNotificationLink | null;\r\n userNewNotificationList = await API.UserNotificationLink.updateUserTableNotification(notification);\r\n return userNewNotificationList ? userNewNotificationList : new RowShare.UserNotificationLink();\r\n }\r\n\r\n // Axeptio cookies\r\n manageCookies() {\r\n if((window).openAxeptioCookies) {\r\n (window).openAxeptioCookies();\r\n }\r\n }\r\n get existsCookiesScript(): boolean {\r\n return (window).openAxeptioCookies != undefined;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyAccount.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyAccount.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyAccount.vue?vue&type=template&id=56aa0a2a&scoped=true&\"\nimport script from \"./MyAccount.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyAccount.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyAccount.vue?vue&type=style&index=0&id=56aa0a2a&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 \"56aa0a2a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.showFreeTrialMessage)?_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"mt-1\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('SignUp_FreeTrialMessageTitle')))]),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('SignUp_FreeTrialMessageDetail')))])])],1):_vm._e(),_vm._v(\" \"),(_vm.checkingInviteLink)?_c('page-load-spinner'):(_vm.invalidLink)?_c('v-container',{staticClass:\"text-center\",attrs:{\"fluid\":\"\"}},[_c('v-img',{staticClass:\"mx-auto\",attrs:{\"src\":require(\"@/assets/static/images/access_denied.svg\"),\"max-width\":\"30%\"}}),_vm._v(\" \"),_c('h2',{staticClass:\"title mb-4 font-weight-medium primary--text\"},[_vm._v(_vm._s(_vm.$t('Signup_InvalidInviteLink')))])],1):(_vm.showView && _vm.email=='' && !_vm.showPersonalization && !_vm.showJoinOrganization)?_c('signUpEmail',{attrs:{\"inviteLinkId\":_vm.inviteLinkId,\"returnUrl\":_vm.returnUrl},on:{\"change-email\":_vm.updateModelEmail}}):(_vm.showView && _vm.email!='' && !_vm.showPersonalization && !_vm.showJoinOrganization)?_c('personalData',{attrs:{\"accountEmail\":_vm.email},on:{\"change-personal-data\":_vm.dataUpdated}}):(_vm.showView && _vm.showPersonalization)?_c('personalization',{attrs:{\"isCreateOrg\":_vm.isCreateOrganization},on:{\"company-created\":_vm.companyCreated}}):(_vm.showView && _vm.showJoinOrganization)?_c('joinSociety',{attrs:{\"organization\":_vm.organization},on:{\"join-company\":_vm.joinCompany}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-container',{staticClass:\"signup-container\"},[_c('v-row',[_c('v-col',[_c('div',[_c('p',{staticClass:\"steps\"},[_vm._v(_vm._s(_vm.$t('SignUp_StepOne')))]),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.$t('SignUp_Title')))]),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('section-title',[_vm._v(_vm._s(_vm.$t('SignUp_SocialNetworks')))]):_c('section-title',[_vm._v(_vm._s(_vm.$t('SignUp_SocialNetworks_OnPrem')))]),_vm._v(\" \"),_c('social-login-list',{attrs:{\"inviteLinkId\":_vm.inviteLinkId,\"isSignUp\":true,\"returnUrl\":_vm.returnUrl}})],1),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('section-title',[_vm._v(\" \"+_vm._s(_vm.$t('SignUp_Email')))]):_c('section-title',[_vm._v(\" \"+_vm._s(_vm.$t('SignUp_EmailOnPrem')))]),_vm._v(\" \"),_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({passes}){return [_c('v-form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('input-text',{attrs:{\"inputTextId\":'input-1',\"inputTextName\":_vm.$t('Form_Email'),\"placeholder\":_vm.$t('Form_Email') + ' *',\"inputTextValidationRules\":{required: true},\"inputTextVid\":\"email\",\"focusInput\":true,\"interactionMode\":\"passive\"},on:{\"input\":_vm.clearValidations},model:{value:(_vm.signUpEmail),callback:function ($$v) {_vm.signUpEmail=$$v},expression:\"signUpEmail\"}}),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('p',{staticClass:\"terms\",domProps:{\"innerHTML\":_vm._s(_vm.$t('SignUp_TermsOfUse'))}}):_vm._e(),_vm._v(\" \"),_c('v-btn',{staticClass:\"submit-button\",attrs:{\"type\":\"submit\",\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SignUp_Button'))+\"\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"loginLink\"},[_c('span',[_vm._v(_vm._s(_vm.$t('SignUp_LogIn')))]),_c('router-link',{attrs:{\"to\":_vm.getLoginUrl()}},[_vm._v(_vm._s(_vm.$t('SignUp_LogIn_UrlText')))])],1)],1)]}}])})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\nimport { ValidationObserver } from 'vee-validate';\r\nimport SectionTitle from '@/views/layouts/LayoutParts/SectionTitle.vue';\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport * as API from '@/api/Api';\r\nimport { RouterUtils } from '@/modules/Router';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport SocialLoginList from '@/views/Signin/SocialLoginList.vue'\r\n\r\n\r\n@Component({\r\n name:'SignUpEmail',\r\n components: {InputText, ValidationObserver, SectionTitle, SocialLoginList}\r\n\r\n})\r\nexport default class SignUpEmail extends FormValidation {\r\n\r\n @Prop() returnUrl!: string;\r\n @Prop() inviteLinkId!: string;\r\n\r\n private signUpEmail='';\r\n\r\n $refs!: {\r\n observer: InstanceType;\r\n };\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n async mounted(){\r\n this.setValidationLanguage(this.$i18n.locale);\r\n }\r\n \r\n onSubmit(){\r\n if(!this.isValidEmail(this.signUpEmail)){ \r\n this.$refs.observer.setErrors({email : [this.$i18n.t(\"SignUp_EmailInvalid\").toString()]}) ;\r\n return;\r\n }\r\n API.User.validateUserEmail(this.signUpEmail).then(isValid=>{\r\n if(isValid){\r\n this.$emit(\"change-email\", this.signUpEmail);\r\n }\r\n else{\r\n this.$router.push({name:'Login', params: {'emailFromSignUp':this.signUpEmail, 'inviteLinkId': this.inviteLinkId}, query: this.$route.query })\r\n }\r\n })\r\n .catch(er=>this.$refs.observer.setErrors({email : [this.$i18n.t(\"ExceptionCode_\" + er.code).toString()]})); \r\n }\r\n\r\n isValidEmail(email: string){\r\n return Utils.validateEmail(email);\r\n }\r\n\r\n externalSignUp(providerName:string){\r\n //The login function does the signup when the user is not registered.\r\n API.SocialProvider.signup(providerName, this.returnUrl, this.inviteLinkId).then(returnUrl=>{\r\n window.location.href = returnUrl != null ? returnUrl : '';\r\n }).catch(er=>{\r\n console.log(er);\r\n }); \r\n }\r\n\r\n clearValidations(){\r\n this.$refs.observer.reset();\r\n }\r\n \r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n\r\n getLoginUrl() {\r\n return {\r\n name: \"Login\",\r\n query: {\r\n ReturnUrl: RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\"),\r\n orgid: RouterUtils.getCaseInsentiveQuery(this.$route, \"orgid\")\r\n },\r\n params: {\r\n inviteLinkId: this.inviteLinkId\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SignUpEmail.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SignUpEmail.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignUpEmail.vue?vue&type=template&id=4bbfec8e&scoped=true&\"\nimport script from \"./SignUpEmail.vue?vue&type=script&lang=ts&\"\nexport * from \"./SignUpEmail.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SignUpEmail.vue?vue&type=style&index=0&id=4bbfec8e&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 \"4bbfec8e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-container',{staticClass:\"signup-container\"},[_c('v-row',[_c('v-col',[_c('p',{staticClass:\"steps\"},[_vm._v(_vm._s(_vm.$t(\"SignUp_StepTwo\")))]),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.$t(\"SignUp_Title\")))]),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('SignUp_PersonalData'))}}),_vm._v(\" \"),_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes, invalid }){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('input-text',{attrs:{\"inputTextId\":'input-1',\"inputTextName\":_vm.$t('Form_Name'),\"placeholder\":_vm.$t('Form_Name') + ' *',\"inputTextValidationRules\":{ required: true },\"focusInput\":true},model:{value:(_vm.modelSignUp.FirstName),callback:function ($$v) {_vm.$set(_vm.modelSignUp, \"FirstName\", $$v)},expression:\"modelSignUp.FirstName\"}}),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'input-2',\"inputTextName\":_vm.$t('Form_Surname'),\"placeholder\":_vm.$t('Form_Surname') + ' *',\"inputTextValidationRules\":{ required: true }},model:{value:(_vm.modelSignUp.LastName),callback:function ($$v) {_vm.$set(_vm.modelSignUp, \"LastName\", $$v)},expression:\"modelSignUp.LastName\"}}),_vm._v(\" \"),_c('input-password',{attrs:{\"inputPasswordId\":'input-3',\"inputPasswordName\":_vm.$t('Form_Password'),\"placeholder\":_vm.$t('Form_Password') + ' *',\"inputPasswordValidationRules\":{\n required: true,\n min: 8,\n max: 64, //in addition to regex rule\n regex: _vm.passwordRule\n },\"showTooltip\":_vm.isNotOnPrem,\"tooltipText\":_vm.$t('Common_PasswordRules')},model:{value:(_vm.modelSignUp.Password),callback:function ($$v) {_vm.$set(_vm.modelSignUp, \"Password\", $$v)},expression:\"modelSignUp.Password\"}}),_vm._v(\" \"),_c('input-password',{attrs:{\"inputPasswordId\":'input-4',\"inputPasswordName\":_vm.$t('Form_ConfirmPassword'),\"placeholder\":_vm.$t('Form_ConfirmPassword') + ' *',\"inputPasswordValidationRules\":{\n required: true,\n min: 8,\n max: 64, //in addition to regex rule\n regex: _vm.passwordRule,\n confirmed: _vm.$t('Form_Password')\n },\"inputPasswordVid\":\"confirmPassword\"},model:{value:(_vm.modelSignUp.ConfirmPassword),callback:function ($$v) {_vm.$set(_vm.modelSignUp, \"ConfirmPassword\", $$v)},expression:\"modelSignUp.ConfirmPassword\"}}),_vm._v(\" \"),(_vm.errorCreatingAccount)?_c('span',{staticClass:\"error-message\",domProps:{\"innerHTML\":_vm._s(_vm.errorMessage)}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"required-fields-text\",domProps:{\"innerHTML\":_vm._s(_vm.$t('Form_RequiredFields'))}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"disabled\":invalid || _vm.working,\"loading\":_vm.working,\"type\":\"submit\",\"color\":\"primary\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-chevron-circle-right\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"SignUp_PersonalData_Button\"))+\"\\n \")],1)],1)]}}])})],1)],1),_vm._v(\" \"),(_vm.mustShowRecaptcha)?_c('recaptcha'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Prop, Component } from \"vue-property-decorator\";\r\n\r\nimport * as API from \"@/api/Api\";\r\n\r\nimport InputText from \"@/views/components/FormInputs/InputText.vue\";\r\nimport { UserModule } from \"@/store/UserStore\";\r\nimport InputPassword from \"@/views/components/FormInputs/InputPassword.vue\";\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { SignupUser } from \"@/models/User\";\r\nimport { RecaptchaActions } from \"@/views/components/Recaptcha.vue\";\r\nimport { OnPremModule } from \"@/store/OnPremStore\";\r\nimport Recaptcha from \"@/views/components/Recaptcha.vue\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport PageLoadSpinner from \"@/views/layouts/LayoutParts/PageLoadSpinner.vue\";\r\nimport { ApplicationModule } from \"@/store/ApplicationStore\";\r\n\r\n@Component({\r\n name: \"PersonalData\",\r\n components: {\r\n InputText,\r\n InputPassword,\r\n ValidationObserver,\r\n Recaptcha,\r\n PageLoadSpinner,\r\n },\r\n})\r\nexport default class PersonalData extends FormValidation {\r\n private modelSignUp!: SignupUser;\r\n private errorCreatingAccount: boolean = false;\r\n private working: boolean = false;\r\n private errorMessage!: string;\r\n\r\n @Prop() accountEmail!: string;\r\n\r\n $refs!: {\r\n observer: InstanceType;\r\n };\r\n\r\n created() {\r\n this.modelSignUp = new SignupUser();\r\n this.modelSignUp.Email = this.accountEmail;\r\n EventBus.$on(RowShare.Event.RECAPTCHA_SUCCEEDED, this.onRecaptchaSucceeded);\r\n EventBus.$on(\r\n [RowShare.Event.RECAPTCHA_FAILED, RowShare.Event.RECAPTCHA_CANCELEDV2],\r\n this.onRecaptchaFailedOrCanceled\r\n );\r\n }\r\n\r\n destroyed() {\r\n EventBus.$off(\r\n RowShare.Event.RECAPTCHA_SUCCEEDED,\r\n this.onRecaptchaSucceeded\r\n );\r\n EventBus.$off(\r\n [RowShare.Event.RECAPTCHA_FAILED, RowShare.Event.RECAPTCHA_CANCELEDV2],\r\n this.onRecaptchaFailedOrCanceled\r\n );\r\n }\r\n\r\n mounted() {\r\n this.setValidationLanguage(this.$i18n.locale);\r\n }\r\n\r\n async onSubmit() {\r\n this.working = true;\r\n this.modelSignUp.AutoLogon = true;\r\n if (this.mustShowRecaptcha) {\r\n this.triggerRecaptcha();\r\n } else {\r\n this.doSignup();\r\n }\r\n }\r\n\r\n private doSignup() {\r\n //After the user is registered, it verifies if the user is inside an organization or not\r\n UserModule.signUpUser(this.modelSignUp)\r\n .then((result: Boolean) => {\r\n if (result) {\r\n API.Organization.loadall().then((resultList) => {\r\n if (resultList != null && resultList.length > 0) {\r\n this.$emit(\"change-personal-data\", resultList[0]);\r\n } else {\r\n this.$emit(\"change-personal-data\", null);\r\n }\r\n });\r\n } else {\r\n this.$refs.observer.setErrors({\r\n confirmPassword: [this.$i18n.t(\"ExceptionCode_48\").toString()],\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n if (error.code == 96 && this.mustShowRecaptcha) {\r\n //Invalid token\r\n this.retryFallbackRecaptcha();\r\n return;\r\n } else if (error.code == 27) {\r\n //Email invalid\r\n this.errorCreatingAccount = true;\r\n this.errorMessage = this.$i18n\r\n .t(\"ExceptionCode_\" + error.code)\r\n .toString();\r\n } else {\r\n //User exists or email with special characters.\r\n this.errorCreatingAccount = true;\r\n this.errorMessage = this.$i18n\r\n .t(\"SignUp_ErrorCreatingAccount\")\r\n .toString();\r\n }\r\n })\r\n .finally(() => {\r\n this.working = false;\r\n });\r\n }\r\n\r\n triggerRecaptcha() {\r\n this.modelSignUp.RecaptchaToken = \"\";\r\n this.modelSignUp.RecaptchaTokenIsV3 = true;\r\n EventBus.$emit(RowShare.Event.RECAPTCHA_SHOW, RecaptchaActions.Signup);\r\n }\r\n\r\n onRecaptchaSucceeded(successEvent: any) {\r\n this.modelSignUp.RecaptchaToken = successEvent.token;\r\n this.modelSignUp.RecaptchaTokenIsV3 = successEvent.isV3;\r\n this.doSignup();\r\n }\r\n\r\n retryFallbackRecaptcha() {\r\n this.modelSignUp.RecaptchaToken = \"\";\r\n EventBus.$emit(RowShare.Event.RECAPTCHA_SHOWV2);\r\n }\r\n\r\n onRecaptchaFailedOrCanceled(reason: string = \"\") {\r\n this.modelSignUp.RecaptchaToken = \"\";\r\n this.modelSignUp.RecaptchaTokenIsV3 = true;\r\n this.working = false;\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, <\r\n RowShare.GlobalNotificationEventParams\r\n >{\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: RowShare.NotificationType.error,\r\n message: this.$i18n.t(\"Recaptcha_Invalid\").toString() + reason!,\r\n });\r\n }\r\n\r\n get isNotOnPrem() {\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get mustShowRecaptcha() {\r\n return this.isNotOnPrem && process.env.NODE_ENV != \"development\";\r\n }\r\n\r\n get passwordRule() {\r\n return ApplicationModule.passwordRegex;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PersonalData.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PersonalData.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonalData.vue?vue&type=template&id=38e65c0a&scoped=true&\"\nimport script from \"./PersonalData.vue?vue&type=script&lang=ts&\"\nexport * from \"./PersonalData.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PersonalData.vue?vue&type=style&index=0&id=38e65c0a&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 \"38e65c0a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"signup-container\"},[_c('v-row',[_c('v-col',[(!_vm.isCreateOrg)?_c('p',{staticClass:\"steps\"},[_vm._v(_vm._s(_vm.$t('SignUp_StepThree')))]):_vm._e(),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s((_vm.isCreateOrg)? _vm.$t('SignUp_CreateOrganization_Title') : _vm.$t('SignUp_SecondTitle')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('SignUp_Personalization')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('SignUp_CreateTeamWarning')))]),_vm._v(\" \"),_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({passes, invalid}){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('input-text',{attrs:{\"inputTextId\":'input-1',\"inputTextName\":_vm.$t('SignUp_InputCompany'),\"placeholder\":_vm.$t('SignUp_InputCompany') + ' *',\"inputTextValidationRules\":{required: true},\"inputTextVid\":\"companyName\",\"focusInput\":true},model:{value:(_vm.modelOrganization.Name),callback:function ($$v) {_vm.$set(_vm.modelOrganization, \"Name\", $$v)},expression:\"modelOrganization.Name\"}}),_vm._v(\" \"),(_vm.collectAdminInfos)?_c('input-text',{attrs:{\"inputTextId\":'input-2',\"inputTextName\":_vm.$t('SignUp_AdminCompanyName'),\"placeholder\":_vm.$t('SignUp_AdminCompanyName') + ' *',\"inputTextValidationRules\":{required: true}},model:{value:(_vm.modelOrganization.CompanyName),callback:function ($$v) {_vm.$set(_vm.modelOrganization, \"CompanyName\", $$v)},expression:\"modelOrganization.CompanyName\"}}):_vm._e(),_vm._v(\" \"),(_vm.collectAdminInfos)?_c('input-phone',{attrs:{\"inputId\":'input-3',\"inputName\":_vm.$t('SignUp_AdminPhoneNumber'),\"placeholder\":_vm.$t('SignUp_AdminPhoneNumber') + ' *',\"inputValidationRules\":{required: true}},model:{value:(_vm.modelOrganization.PhoneNumber),callback:function ($$v) {_vm.$set(_vm.modelOrganization, \"PhoneNumber\", $$v)},expression:\"modelOrganization.PhoneNumber\"}}):_vm._e(),_vm._v(\" \"),(_vm.collectAdminInfos)?_c('input-text',{attrs:{\"inputTextId\":'input-2',\"inputTextName\":_vm.$t('SignUp_AdminUserCount'),\"placeholder\":_vm.$t('SignUp_AdminUserCount') + ' *',\"inputTextValidationRules\":{required: true}},model:{value:(_vm.modelOrganization.UserCount),callback:function ($$v) {_vm.$set(_vm.modelOrganization, \"UserCount\", $$v)},expression:\"modelOrganization.UserCount\"}}):_vm._e(),_vm._v(\" \"),(_vm.collectAdminInfos)?_c('input-text-area',{attrs:{\"inputTextAreaId\":'input-4',\"inputTextAreaName\":_vm.$t('Signup_AdminWhyRowShare'),\"placeholder\":_vm.$t('Signup_AdminWhyRowShareQuestion') + ' *',\"inputTextAreaValidationRules\":{required: true}},model:{value:(_vm.modelOrganization.WhyRowShareAnswer),callback:function ($$v) {_vm.$set(_vm.modelOrganization, \"WhyRowShareAnswer\", $$v)},expression:\"modelOrganization.WhyRowShareAnswer\"}}):_vm._e(),_vm._v(\" \"),_c('v-checkbox',{attrs:{\"name\":\"check-button\",\"switch\":\"\",\"label\":_vm.$t('SignUp_InputSwitch')},on:{\"change\":_vm.deleteTags},model:{value:(_vm.enableTags),callback:function ($$v) {_vm.enableTags=$$v},expression:\"enableTags\"}}),_vm._v(\" \"),_c('div',{attrs:{\"hidden\":!_vm.enableTags}},[_c('v-combobox',{attrs:{\"append-icon\":\"\",\"placeholder\":_vm.$t('SignUp_ContactTags'),\"outlined\":\"\",\"chips\":\"\",\"clearable\":\"\",\"multiple\":\"\",\"close\":\"\",\"rules\":[_vm.tagValidator],\"solo\":\"\",\"delimiters\":[';',' ']},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, selected }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"close\":\"\"},on:{\"click:close\":function($event){return _vm.removeMail(item)}}},'v-chip',attrs,false),[_c('strong',[_vm._v(_vm._s(item))])])]}}],null,true),model:{value:(_vm.modelOrganization.MembersArray),callback:function ($$v) {_vm.$set(_vm.modelOrganization, \"MembersArray\", $$v)},expression:\"modelOrganization.MembersArray\"}})],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"submit-button\",attrs:{\"disabled\":_vm.disableButton(invalid, _vm.modelOrganization.MembersArray),\"type\":\"submit\",\"color\":\"primary\",\"loading\":_vm.submitting}},[_vm._v(\"\\n \"+_vm._s((_vm.isCreateOrg)? _vm.$t('SignUp_CreateOrganization_Button', {'0':_vm.modelOrganization.Name}) : _vm.$t('SignUp_ButtonFinish'))+\"\\n \")])],1)]}}])})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('validation-provider',{attrs:{\"name\":_vm.inputName,\"vid\":_vm.inputVid,\"rules\":_vm.inputValidationRules},scopedSlots:_vm._u([{key:\"default\",fn:function(validationContext){return [_c('vue-tel-input-vuetify',{attrs:{\"placeholder\":_vm.placeholder ? _vm.placeholder:_vm.inputName,\"state\":_vm.getValidationState(validationContext),\"id\":_vm.inputId,\"disabled\":_vm.disabledProp,\"error-messages\":validationContext.errors[0],\"label\":\"\",\"mode\":\"international\",\"value\":_vm.value,\"autocomplete\":\"off\",\"outlined\":\"\",\"dense\":\"\"},on:{\"input\":_vm.emitValueChanged,\"blur\":_vm.blured}})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport { ValidationProvider } from 'vee-validate';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\n\r\n@Component({\r\n name:'InputPhone',\r\n components: { ValidationProvider }\r\n })\r\nexport default class InputPhone extends FormValidation {\r\n\r\n //Properties\r\n @Prop() inputName!:{\r\n type:string,\r\n required:true\r\n };\r\n @Prop() inputId!:{\r\n type:string,\r\n required:true\r\n };\r\n @Prop() inputValidationRules!:string;\r\n @Prop() disabledProp!:boolean;\r\n @Prop() value!:string;\r\n @Prop() inputVid!:string;\r\n @Prop() placeholder!:string;\r\n\r\n //Fields\r\n validPhone: boolean = false;\r\n \r\n //Methods\r\n emitValueChanged(valueParam:String){\r\n this.$emit('input', valueParam );\r\n }\r\n\r\n blured(valueParam:String){\r\n this.$emit('blured', valueParam);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputPhone.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InputPhone.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputPhone.vue?vue&type=template&id=6a642754&scoped=true&\"\nimport script from \"./InputPhone.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputPhone.vue?vue&type=script&lang=ts&\"\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 \"6a642754\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport { UserModule } from '@/store/UserStore'\r\nimport { ListTreeModule } from '@/store/ListTreeStore'\r\nimport * as API from '@/api/Api';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport InputTextArea from '@/views/components/FormInputs/InputTextArea.vue';\r\nimport InputPhone from '@/views/components/FormInputs/InputPhone.vue';\r\nimport { ValidationObserver } from 'vee-validate';\r\nimport { AddOrganization, Organization } from '@/models/RowShare';\r\nimport { namespace } from 'vuex-class';\r\nimport { TrackingUtils } from '@/utils/Tracking';\r\n\r\n@Component({\r\n name:'Personalization',\r\n components:{ InputText, InputTextArea, InputPhone, ValidationObserver }\r\n})\r\nexport default class Personalization extends FormValidation{\r\n\r\n private enableTags=false;\r\n private modelOrganization!: AddOrganization;\r\n private submitting: boolean = false;\r\n\r\n @Prop() isCreateOrg!:string;\r\n\r\n $refs!: {\r\n observer: InstanceType;\r\n };\r\n\r\n constructor(){\r\n super();\r\n this.modelOrganization = new AddOrganization();\r\n this.modelOrganization.Name = '';\r\n this.modelOrganization.MembersArray=[];\r\n this.modelOrganization.CompanyName = '';\r\n this.modelOrganization.PhoneNumber = '';\r\n this.modelOrganization.UserCount = '';\r\n this.modelOrganization.WhyRowShareAnswer = '';\r\n }\r\n\r\n async mounted(){\r\n this.setValidationLanguage(this.$i18n.locale);\r\n var userName = UserModule.CurrentUser.NickName;\r\n this.modelOrganization.Name = this.$i18n.t('SignUp_DefaultTeamName', {'0':userName}).toString();\r\n }\r\n\r\n onSubmit(){\r\n this.submitting = true;\r\n\r\n //The API receives the members as strings so it's necessary to convert the array of tags\r\n this.modelOrganization.Members = this.modelOrganization.MembersArray.toString();\r\n this.modelOrganization.First = this.collectAdminInfos;\r\n API.Organization.trialSetup(this.modelOrganization).then((organizationResult: Organization | null)=>{\r\n if(this.isCreateOrg){\r\n ListTreeModule.refreshListTree().then((res:any)=>{\r\n this.$emit(\"company-created\", organizationResult);\r\n ListTreeModule.updateCurrentFolder({organizationId: organizationResult?.Id ?? null , folderId: null});\r\n });\r\n }\r\n else{\r\n //When the organization is created, the user in the store is updated.\r\n //This is done only when the user creates his/her first organization.\r\n UserModule.refreshUser().then((res:any)=>{\r\n this.$emit(\"company-created\", organizationResult);\r\n });\r\n TrackingUtils.addEventDataLayer('signup_finalized');\r\n }\r\n })\r\n .catch(er=>{this.$refs.observer.setErrors({\r\n companyName : [this.$i18n.t(\"ExceptionCode_\" + er.code).toString()],\r\n })\r\n }); \r\n }\r\n\r\n removeMail(item:string) {\r\n let element = this.modelOrganization.MembersArray.find(elem => elem == item);\r\n if(element){\r\n const index= this.modelOrganization.MembersArray.indexOf(element);\r\n this.modelOrganization.MembersArray.splice(index, 1);\r\n }\r\n }\r\n\r\n //This function is to validate the emails that are written in the tag field\r\n tagValidator(value:any){\r\n let isValid = true;\r\n var regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n let i=0;\r\n while(i0){\r\n if(!regex.test(String(elem).toLowerCase())){\r\n isValid=false; \r\n }\r\n }\r\n i++;\r\n }; \r\n if(!isValid)return this.$t('SignUp_TagInvalidMessage');\r\n else return true;\r\n }\r\n\r\n //When disabling the tag input, the array of mails is reinitiated.\r\n deleteTags(){\r\n if(this.enableTags){\r\n this.modelOrganization.MembersArray=[];\r\n }\r\n }\r\n\r\n disableButton(formInvalid:any, emails:any){\r\n let disable = formInvalid || (this.tagValidator(emails)!=true)\r\n return disable;\r\n }\r\n\r\n get collectAdminInfos(): boolean {\r\n return (UserModule?.CurrentUser?.ManagedOrganizationsCount ?? 0) == 0;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Personalization.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Personalization.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Personalization.vue?vue&type=template&id=4086f209&scoped=true&\"\nimport script from \"./Personalization.vue?vue&type=script&lang=ts&\"\nexport * from \"./Personalization.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Personalization.vue?vue&type=style&index=0&id=4086f209&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 \"4086f209\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"signup-container\"},[_c('v-row',[_c('v-col',[_c('p',{staticClass:\"steps\"},[_vm._v(_vm._s(_vm.$t('SignUp_StepThree')))]),_vm._v(\" \"),_c('h2',{domProps:{\"innerHTML\":_vm._s(_vm.$t('SignUp_TitleAwaitedPerson'))}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('SignUp_InvitationDescription', {'0':_vm.organization.Name})))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('SignUp_InvitationDescription2')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('SignUp_InvitationPersonalization')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"submit-button\",attrs:{\"type\":\"submit\",\"color\":\"primary\"},on:{\"click\":_vm.redirectToCompany}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SignUp_ButtonJoinSociety', {'0':_vm.organization.Name}))+\"\\n \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport { ReturnUrlHandler } from '@/views/ReturnUrl';\r\nimport { Organization } from '@/models/RowShare';\r\n\r\n@Component({\r\n name:'JoinSociety'\r\n})\r\nexport default class JoinSociety extends ReturnUrlHandler{\r\n\r\n @Prop() organization!:Organization;\r\n\r\n redirectToCompany(){\r\n this.$emit(\"join-company\");\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./JoinSociety.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./JoinSociety.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./JoinSociety.vue?vue&type=template&id=3b8d4e17&scoped=true&\"\nimport script from \"./JoinSociety.vue?vue&type=script&lang=ts&\"\nexport * from \"./JoinSociety.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./JoinSociety.vue?vue&type=style&index=0&id=3b8d4e17&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 \"3b8d4e17\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n//This component is in charge of showing the components of the differents steps of the signUp \r\n//and redirecting towards the appropriate URLs.\r\n\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport { UserModule } from '@/store/UserStore'\r\nimport * as API from '@/api/Api';\r\n\r\nimport SignUpEmail from '@/views/Signup/SignUpEmail.vue';\r\nimport PersonalData from '@/views/Signup/PersonalData.vue';\r\nimport Personalization from '@/views/Signup/Personalization.vue';\r\nimport JoinSociety from '@/views/Signup/JoinSociety.vue';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue'\r\n\r\nimport { namespace } from 'vuex-class';\r\nimport { User, SignupUser } from '@/models/User';\r\nimport { AddOrganization, InviteLink, Organization } from '@/models/RowShare';\r\nimport { ReturnUrlHandler } from '@/views/ReturnUrl';\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\n\r\n\r\n@Component({\r\n name:'SignUp',\r\n components:{SignUpEmail, PersonalData, Personalization, JoinSociety, PageLoadSpinner}\r\n})\r\nexport default class SignUp extends ReturnUrlHandler {\r\n\r\n @Prop() inviteLinkId!: string;\r\n @Prop() freeTrial!: boolean;\r\n\r\n private showView = false;\r\n private showJoinOrganization = false;\r\n private showPersonalization = false;\r\n private organization!:Organization;\r\n private email = '';\r\n private isCreateOrganization=false;\r\n checkingInviteLink: boolean = false;\r\n inviteLink: InviteLink | null = null;\r\n invalidLink: boolean = false;\r\n\r\n async mounted(){\r\n this.organization = new Organization();\r\n this.checkInviteLink(this.inviteLinkId);\r\n let userModel = UserModule.CurrentUser;\r\n if(userModel.IsAnonymous)\r\n this.showView = true;\r\n else{\r\n if(this.inviteLinkId) {\r\n await this.createMember();\r\n }\r\n else if(userModel.OrganizationsCount==0){\r\n this.showView = true;\r\n this.showPersonalization = true;\r\n }\r\n else if(this.$route.name=='NewSubscription'){\r\n this.isCreateOrganization=true;\r\n this.showView = true;\r\n this.showPersonalization = true;\r\n }\r\n else {\r\n var defaultRedirectRoute = this.$router.resolve({ name: 'MyTables' });\r\n this.redirectToReturnUrlOrDefault(defaultRedirectRoute.href);\r\n }\r\n }\r\n }\r\n\r\n get showFreeTrialMessage(): boolean {\r\n return this.freeTrial || this.returnUrl?.startsWith('/action/clonelist');\r\n }\r\n \r\n //If an inviteLinkId is provided, checks if inviteLink is valid and if organization as user slots remaining\r\n checkInviteLink(inviteLinkId: string) {\r\n if(Utils.isNullOrWhiteSpace(inviteLinkId)) {\r\n return;\r\n }\r\n this.checkingInviteLink = true;\r\n API.InviteLink.isValid(inviteLinkId)\r\n .then(valid => {\r\n if(!valid) {\r\n this.invalidLink = true;\r\n }\r\n })\r\n .finally(() => this.checkingInviteLink = false);\r\n }\r\n\r\n //Function that is called when the email is submitted in the component \"signUpEmail\"\r\n updateModelEmail(emailValue:string){\r\n this.email = emailValue;\r\n }\r\n\r\n async createMember() {\r\n if(!Utils.isNullOrWhiteSpace(this.inviteLinkId)) {\r\n let org = await API.InviteLink.createMember(this.inviteLinkId);\r\n if(org) {\r\n this.organization = org;\r\n await UserModule.refreshUser();\r\n await ListTreeModule.refreshOrganizationsTreeIfMissing(false);\r\n await ListTreeModule.refreshListTree();\r\n this.showView = true;\r\n this.showJoinOrganization = true;\r\n }\r\n }\r\n }\r\n\r\n //Function that is called when the user fills all the inputs in the component \"personalData\"\r\n //It shows the JoinOrganization or showPersonalization component, based on the existance\r\n //or not of a user for the email submitted.\r\n async dataUpdated(organizationParam:Organization){\r\n if(!Utils.isNullOrWhiteSpace(this.inviteLinkId)) {\r\n await this.createMember();\r\n }\r\n else {\r\n if(organizationParam!=null){ \r\n this.organization = organizationParam; \r\n this.showJoinOrganization = true;\r\n }\r\n else{\r\n this.showPersonalization = true;\r\n }\r\n }\r\n }\r\n\r\n //Function that is called when an Organization is created in the component \"Personalization\"\r\n companyCreated(organizationParam:Organization){\r\n \r\n if(this.returnUrl && this.returnUrl.toLowerCase().trim() != \"/mytables\") {\r\n this.pushOrReloadRoute(this.returnUrl);\r\n } else {\r\n let defaultRedirectRoute = {\r\n name: 'CreateTable',\r\n query: {\r\n organization: organizationParam.Id,\r\n folderId: organizationParam.RootFolderId,\r\n fromSignup: organizationParam.Name\r\n }\r\n };\r\n this.pushOrReloadRoute(defaultRedirectRoute);\r\n }\r\n }\r\n\r\n //Function that is called when the user joins the company in the component \"JoinSociety\"\r\n joinCompany(){\r\n var defaultRedirectRoute = this.$router.resolve({ name: 'MyTables' });\r\n defaultRedirectRoute.href = defaultRedirectRoute.href + '/' + this.organization.Id;\r\n this.redirectToReturnUrlOrDefault(defaultRedirectRoute.href);\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SignUp.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SignUp.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignUp.vue?vue&type=template&id=36d1d8b2&scoped=true&\"\nimport script from \"./SignUp.vue?vue&type=script&lang=ts&\"\nexport * from \"./SignUp.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SignUp.vue?vue&type=style&index=0&id=36d1d8b2&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 \"36d1d8b2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('bandeau',{attrs:{\"title\":_vm.$t('MyDocuments_Title'),\"description\":_vm.$t('MyDocuments_Description')}}),_vm._v(\" \"),_c('div',{staticClass:\"v-container col-10 offset-1\"},[_c('div',{staticClass:\"v-row\"},[(_vm.emptyFiles)?_c('div',{staticClass:\"mt-n11 col-sm-12 box-content box-content--shadow box-content--no-padding message-box\"},[_c('img',{staticClass:\"img-no-files\",attrs:{\"src\":require(\"@/assets/static/images/img_empty_rowmerge.svg\")}}),_vm._v(\" \"),_c('h1',{staticClass:\"title-no-files\"},[_vm._v(_vm._s(_vm.$t('MyDocuments_NoFiles')))]),_vm._v(\" \"),_c('h1',{staticClass:\"text-center mt-3 description-no-files\"},[_vm._v(_vm._s(_vm.$t('MyDocuments_NoFiles_Description')))]),_vm._v(\" \"),_c('h1',{staticClass:\"text-center mt-3 description-no-files\"},[_vm._v(_vm._s(_vm.$t('MyDocuments_NoFiles_Description2')))]),_vm._v(\" \"),_c('h1',{staticClass:\"mt-4 text-decoration-underline link-no-files\",domProps:{\"innerHTML\":_vm._s(_vm.$t('MyDocuments_NoFiles_Link'))}})]):_vm._e(),_vm._v(\" \"),(!_vm.emptyFiles&& !_vm.isLoading)?_c('div',{staticClass:\"mt-n11\"},[_c('div',{staticClass:\"box-content box-content--shadow box-content--no-padding\"},[_c('div',{staticClass:\"table-responsive table-responsive--rowmerge\"},[_c('job-grid',{attrs:{\"jobs\":_vm.listFiles,\"showUser\":false,\"showListLink\":true}})],1)])]):_vm._e(),_vm._v(\" \"),(_vm.isLoading)?_c('page-load-spinner'):_vm._e()],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-data-table',{attrs:{\"headers\":_vm.fields,\"items\":_vm.jobs,\"loading-text\":_vm.$i18n.t('MyDocuments_Loading'),\"sort-by\":'CreationDateUtc',\"sort-desc\":true,\"hide-default-footer\":true,\"disable-pagination\":true},on:{\"update:headers\":function($event){_vm.fields=$event}},scopedSlots:_vm._u([{key:\"item.ReportDisplayName\",fn:function({item}){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-file-alt\")]),_vm._v(\" \"),_c('span',{attrs:{\"title\":item.ReportDisplayName}},[_vm._v(_vm._s(item.ReportDisplayName))])]}},{key:\"item.ListDisplayName\",fn:function({item}){return [_c('a',{staticClass:\"table-link\",attrs:{\"href\":`/t/${item.ListId}`}},[_vm._v(_vm._s(item.ListDisplayName))])]}},{key:\"item.CreationDateUtc\",fn:function({item}){return [_c('span',{attrs:{\"title\":_vm.getFormatedDate(item.CreationDateUtc)}},[_vm._v(\"\\n \"+_vm._s(_vm.getRelativeDate(item.CreationDateUtc))+\"\\n \")])]}},{key:\"item.Status\",fn:function({item}){return [(item.Status)?_c('v-chip',{attrs:{\"title\":_vm.getStatusTitle(item),\"color\":_vm.getStatusColor(item),\"outlined\":\"\",\"label\":\"\",\"filled\":\"\"}},[_c('v-avatar',{attrs:{\"left\":\"\"}},[_c('v-icon',[_vm._v(_vm._s(_vm.getStatusIcon(item)))])],1),_vm._v(\"\\n \"+_vm._s(_vm.$t('JobStatus_'+item.Status))+\"\\n \")],1):_vm._e()]}},{key:\"item.User\",fn:function({item}){return [_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\",\"color\":'color' + item.User.Owner.BackgroundColorIndex}},[_vm._v(\"fas fa-user\")]),_vm._v(\"\\n \"+_vm._s(item.User.NickName)+\"\\n \")]}},{key:\"item.Download\",fn:function({item}){return [(item.Status==3)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"download\":\"\",\"href\":'/' + item.OutputFilePath,\"color\":\"primary\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"x-small\":\"\"}},[_vm._v(\"fa-download\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('MyDocuments_DownloadButton')))])],1):_vm._e(),_vm._v(\" \"),(item.Status!=3 && item.Status!=4)?_c('span',[_vm._v(_vm._s(_vm.$t('MyDocuments_FileNotAvailable')))]):_vm._e()]}},{key:\"item.Delete\",fn:function({item}){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.confirmDeleteJob(item.Id)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")])],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\nimport * as API from '@/api/Api';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport moment from 'moment';\r\nimport { EventBus } from '@/modules/EventBus';\r\n\r\n@Component({ name:'JobGrid', components:{}})\r\nexport default class MyDocuments extends Vue {\r\n\r\n @Prop() private showListLink!: boolean;\r\n @Prop() private showUser!: boolean;\r\n @Prop() private jobs!: Array;\r\n\r\n private fields!:any;\r\n\r\n constructor(){\r\n super();\r\n this.fields = [];\r\n }\r\n\r\n created(){\r\n EventBus.$on(RowShare.Event.LOCALE_CHANGED, async() => {\r\n await this.onLocaleChanged();\r\n });\r\n }\r\n\r\n mounted(){\r\n this.setTableHeader();\r\n this.onLocaleChanged();\r\n }\r\n\r\n beforeDestroy(){\r\n }\r\n\r\n //Sets the array of values for the table header. The value is the same name as the properties name that is returned\r\n //from the server. The label is the text to be shown. \r\n setTableHeader(){\r\n this.fields = [];\r\n\r\n this.fields.push({value: 'ReportDisplayName', text: this.$i18n.t('MyDocuments_HeaderTemplate').toString()});\r\n\r\n if(this.showListLink)\r\n this.fields.push({value: 'ListDisplayName', text: this.$i18n.t('MyDocuments_HeaderTable').toString()});\r\n \r\n if(this.showUser)\r\n this.fields.push({value: 'User', text: this.$i18n.t('MyDocuments_HeaderUser').toString()});\r\n \r\n this.fields.push({value: 'CreationDateUtc', text: this.$i18n.t('MyDocuments_HeaderCreatedOn').toString()});\r\n this.fields.push({value: 'Status', text:this.$i18n.t('MyDocuments_HeaderStatus').toString()});\r\n this.fields.push({value: 'RowCount', text:this.$i18n.t('MyDocuments_HeaderRowCount').toString()});\r\n this.fields.push({value: 'Download', text:'', sortable: false});\r\n this.fields.push({value: 'Delete', text:'', sortable: false});\r\n }\r\n\r\n onLocaleChanged(){\r\n this.setTableHeader();\r\n moment.locale(this.$i18n.locale); //Changes the language for the dates(in this case for the \"Created\" column).\r\n }\r\n\r\n confirmDeleteJob(id:string) {\r\n var evtArgs = new RowShare.ConfirmationRequiredEventParams();\r\n evtArgs.title = this.$i18n.t(\"MyDocuments_ConfirmDeleteJob_Title\").toString();\r\n evtArgs.description1 = this.$i18n.t(\"MyDocuments_ConfirmDeleteJob_Description\").toString();\r\n evtArgs.cancelButtonText = this.$i18n.t(\"MyDocuments_ConfirmDeleteJob_CancelButton\").toString();\r\n evtArgs.actionButtonText = this.$i18n.t(\"MyDocuments_ConfirmDeleteJob_ConfirmButton\").toString();\r\n evtArgs.actionButtonIcon = \"trash-alt\";\r\n evtArgs.actionButtonColor = \"error\";\r\n evtArgs.onConfirmation = async () => { this.deleteJob(id); };\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n\r\n //When an item is deleted from the list, it is removed by splicing the array. This way, it's not necesarry \r\n //to call the API again to obtain all the elements.\r\n deleteJob(Id:string){\r\n API.Job.delete(Id).then(result=>{\r\n if(result){\r\n if(this.jobs!=null) {\r\n let element= this.jobs.find(elem => elem.Id == Id);\r\n if(element) {\r\n const index = this.jobs.indexOf(element);\r\n this.jobs.splice(index, 1);\r\n }\r\n };\r\n }\r\n });\r\n }\r\n\r\n //Returns the formatted date on the locale time.\r\n getFormatedDate(createdDate: string){\r\n return moment(String(createdDate)).format('llll')\r\n }\r\n\r\n //Returns the difference of time between today and the parameter.\r\n getRelativeDate(createdDate:string){ \r\n return moment().to(moment(String(createdDate)));\r\n }\r\n \r\n getStatusTitle(job: RowShare.Job):string{\r\n switch(job.Status){\r\n case RowShare.JobStatus.Error:\r\n case RowShare.JobStatus.Retrying:\r\n case RowShare.JobStatus.SourceDeleted:\r\n return job.OutputError;\r\n default:\r\n return moment(job.StatusChangeDateUtc).format('llll');\r\n \r\n }\r\n }\r\n\r\n getStatusIcon(job: RowShare.Job): string{\r\n switch (job.Status) {\r\n case RowShare.JobStatus.Unspecified:\r\n case RowShare.JobStatus.NotStarted:\r\n return \"fa-info-circle\";\r\n case RowShare.JobStatus.Processing:\r\n return \"fa-clock\";\r\n case RowShare.JobStatus.Finished:\r\n return \"far fa-check-circle\";\r\n case RowShare.JobStatus.Error:\r\n case RowShare.JobStatus.Retrying:\r\n case RowShare.JobStatus.SourceDeleted:\r\n return \"far fa-times-circle\"; \r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n getStatusColor(job: RowShare.Job): string{\r\n switch (job.Status) {\r\n case RowShare.JobStatus.Unspecified:\r\n case RowShare.JobStatus.Retrying:\r\n case RowShare.JobStatus.Processing:\r\n return 'info';\r\n case RowShare.JobStatus.Finished:\r\n return 'success';\r\n case RowShare.JobStatus.NotStarted:\r\n return 'warning';\r\n case RowShare.JobStatus.Error:\r\n case RowShare.JobStatus.SourceDeleted:\r\n return 'error';\r\n default:\r\n return '';\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./JobGrid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./JobGrid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./JobGrid.vue?vue&type=template&id=2950745e&scoped=true&\"\nimport script from \"./JobGrid.vue?vue&type=script&lang=ts&\"\nexport * from \"./JobGrid.vue?vue&type=script&lang=ts&\"\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 \"2950745e\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Component } from 'vue-property-decorator';\r\nimport Bandeau from '@/views/layouts/LayoutParts/Bandeau.vue';\r\nimport JobGrid from '@/views/RowMerge/JobGrid.vue';\r\nimport { ReturnUrlHandler } from '@/views/ReturnUrl';\r\nimport { Job } from '@/models/Job';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport * as API from '@/api/Api';\r\n\r\n@Component({\r\n name:'MyDocuments',\r\n components:{Bandeau, JobGrid, PageLoadSpinner}\r\n})\r\nexport default class MyDocuments extends ReturnUrlHandler {\r\n\r\n private titleBandeau='';\r\n private descriptionBandeau='';\r\n private listFiles!:Array;\r\n private emptyFiles!:boolean;\r\n private isLoading: boolean;\r\n\r\n constructor(){\r\n super();\r\n this.emptyFiles = false;\r\n this.listFiles = new Array();\r\n this.isLoading = false;\r\n }\r\n\r\n mounted(){\r\n this.loadFiles();\r\n }\r\n\r\n beforeDestroy(){\r\n Job.clearAllJobUpdateTimeout();\r\n }\r\n\r\n loadFiles(){\r\n this.isLoading = true;\r\n Job.clearAllJobUpdateTimeout();\r\n API.Job.loadAll({cache:false}).then(resultFiles => {\r\n if(resultFiles!= null && resultFiles.length>0){\r\n resultFiles.forEach(element => {\r\n element.updateStatusAsync(5000); \r\n });\r\n this.emptyFiles=false;\r\n this.listFiles = resultFiles;\r\n }\r\n else{\r\n this.emptyFiles = true;\r\n }\r\n }).finally(()=>{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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyDocuments.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MyDocuments.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MyDocuments.vue?vue&type=template&id=7480f144&scoped=true&\"\nimport script from \"./MyDocuments.vue?vue&type=script&lang=ts&\"\nexport * from \"./MyDocuments.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MyDocuments.vue?vue&type=style&index=0&id=7480f144&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 \"7480f144\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"business-page-new outer-wrapper\"},[(_vm.listVM.list)?_c('list-toolbar',{staticClass:\"mb-1\",attrs:{\"listVM\":_vm.listVM,\"showReturnToTable\":true,\"hideMenu\":true}}):_vm._e(),_vm._v(\" \"),_c('section',{staticClass:\"main main--no-padding-top\"},[_c('v-container',[_c('v-row',[_c('v-col',[_c('v-card',{staticClass:\"pa-6 mx-4 card-rowmerge\",attrs:{\"elevation\":\"6\"}},[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',[_c('h1',[_vm._v(_vm._s(_vm.$t('RowMergePageTitle')))])])],1),_vm._v(\" \"),_c('p',{staticClass:\"title mt-4\"},[_vm._v(_vm._s(_vm.$t('RowMergeTemplateTitle')))]),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('RowMergePageDescription'))}}),_vm._v(\" \"),(!_vm.reports && !_vm.loadingReports)?_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"justify\":\"center\",\"align\":\"center\",\"cols\":\"8\"}},[_c('img',{staticClass:\"ma-4\",attrs:{\"height\":\"172\",\"src\":require(\"@/assets/static/images/img_empty_rowmerge.svg\")}}),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('RowMergeNoTemplateTitle')))]),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('RowMergeNoTemplateDescription'))}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.pickNewFile()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeButtonAddTemplate'))+\"\\n \")],1)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.reports && !_vm.loadingReports)?_c('v-data-table',{attrs:{\"headers\":_vm.reportFields,\"items\":_vm.reports,\"loading-text\":_vm.$t('MyDocuments_Loading'),\"disable-sort\":true,\"hide-default-footer\":true,\"disable-pagination\":true},on:{\"update:headers\":function($event){_vm.reportFields=$event}},scopedSlots:_vm._u([{key:\"item.DisplayName\",fn:function({item}){return [_c('v-text-field',{staticClass:\"displayname-input\",attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.saveReport(item)}},model:{value:(item.DisplayName),callback:function ($$v) {_vm.$set(item, \"DisplayName\", $$v)},expression:\"item.DisplayName\"}})]}},{key:\"item.OutputFormat\",fn:function({item}){return [_c('div',{staticClass:\"output_format_wrapper\"},[_c('v-select',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"item-text\":\"text\",\"item-value\":\"value\",\"items\":_vm.allOutputFormat},on:{\"change\":function($event){return _vm.saveReport(item)}},model:{value:(item.OutputFormat),callback:function ($$v) {_vm.$set(item, \"OutputFormat\", $$v)},expression:\"item.OutputFormat\"}})],1)]}},{key:\"item.OutputDestination\",fn:function({item}){return [_c('div',{staticClass:\"output_format_wrapper\"},[_c('v-autocomplete',{staticStyle:{\"width\":\"1000px !important\"},attrs:{\"outlined\":\"\",\"dense\":\"\",\"disabled\":_vm.columns === null || _vm.columns?.length === 0,\"loading\":_vm.loadingColumns,\"hide-details\":\"\",\"item-text\":\"text\",\"item-value\":\"value\",\"items\":_vm.allColumnsByDestinationType},on:{\"change\":function($event){return _vm.saveReport(item)}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}],null,true),model:{value:(item.OutputDestinationId),callback:function ($$v) {_vm.$set(item, \"OutputDestinationId\", $$v)},expression:\"item.OutputDestinationId\"}})],1)]}},{key:\"item.Published\",fn:function({item}){return [_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":function($event){return _vm.saveReport(item)}},model:{value:(item.Published),callback:function ($$v) {_vm.$set(item, \"Published\", $$v)},expression:\"item.Published\"}})]}},{key:\"item.Menu\",fn:function({item}){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-bars\")])],1)]}}],null,true)},[_vm._v(\" \"),_c('v-list',[_c('v-list-item',{key:\"RowMerge_ReplaceReport\",attrs:{\"title\":_vm.$t('RowMerge_ReplaceReport')},on:{\"click\":function($event){return _vm.pickFile(item)}}},[_c('input',{staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"id\":'input-file-' + item.Id,\"name\":'input-file-' + item.Id},on:{\"change\":function($event){return _vm.onFileChanged(item)}}}),_vm._v(\" \"),_c('v-list-item-title',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-exchange\")]),_vm._v(\" \"+_vm._s(_vm.$t('RowMerge_ReplaceReport'))+\"\\n \")],1)],1),_vm._v(\" \"),_c('v-list-item',{key:\"RowMerge_DownloadReport\",attrs:{\"href\":'/' + item.FilePath,\"download\":\"\",\"title\":_vm.$t('RowMerge_DownloadReport')}},[_c('v-list-item-title',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-download\")]),_vm._v(\" \"+_vm._s(_vm.$t('RowMerge_DownloadReport'))+\"\\n \")],1)],1),_vm._v(\" \"),(!item.conversionHasFinished || item.hasConversionError || _vm.reportTypeIsCopyToColumn)?_c('v-list-item',{key:\"RowMerge_TestReport\",attrs:{\"title\":item.ConversionErrorMessage}},[_c('v-list-item-title',[_c('v-chip',{attrs:{\"outlined\":\"\",\"label\":\"\",\"filled\":\"\",\"color\":_vm.getStatusColor(item)}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('JobStatus_'+item.ConversionStatus))+\"\\n \")])],1)],1):_c('v-list-item',{on:{\"click\":function($event){return _vm.testReport(item)}}},[_c('v-list-item-title',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-rocket-launch\")]),_vm._v(\" \"+_vm._s(_vm.$i18n.t('RowMerge_Report_Test'))+\"\\n \")],1)],1),_vm._v(\" \"),_c('v-list-item',{key:\"RowMerge_DeleteReport\",on:{\"click\":function($event){return _vm.confirmDeleteReport(item.Id)}}},[_c('v-list-item-title',[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")]),_vm._v(\" \"+_vm._s(_vm.$t('RowMerge_DeleteReport'))+\"\\n \")],1)],1)],1)],1)]}}],null,false,464673429)}):_vm._e(),_vm._v(\" \"),_c('input',{staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"id\":'input-file-new',\"name\":'input-file-new'},on:{\"change\":function($event){return _vm.onNewFileChanged()}}}),_vm._v(\" \"),(_vm.reports && !_vm.loadingReports)?_c('v-btn',{staticClass:\"mt-1 mb-2\",attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.pickNewFile()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('RowMergeButtonAddTemplate'))+\"\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.loadingReports)?_c('page-load-spinner'):_vm._e(),_vm._v(\" \"),_c('p',{staticClass:\"title mt-4\"},[_vm._v(_vm._s(_vm.$t('RowMergeHistoryTitle')))]),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('RowMergeHistoryDescription'))}}),_vm._v(\" \"),(_vm.jobs.length == 0 && !_vm.loadingJobs)?_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"justify\":\"center\",\"align\":\"center\",\"cols\":\"8\"}},[_c('img',{staticClass:\"ma-4\",attrs:{\"height\":\"172\",\"src\":require(\"@/assets/static/images/img_empty_rowmerge.svg\")}}),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('RowMergeNoJobTitle')))])])],1):_vm._e(),_vm._v(\" \"),(_vm.jobs.length > 0 && !_vm.loadingJobs)?_c('job-grid',{attrs:{\"jobs\":_vm.jobs,\"showUser\":true,\"showListLink\":false}}):_vm._e(),_vm._v(\" \"),(_vm.loadingJobs)?_c('page-load-spinner'):_vm._e()],1)],1)],1)],1)],1),_vm._v(\" \"),_c('row-merge-dialog',{attrs:{\"currentList\":_vm.listModel},on:{\"JobStarted\":_vm.newJobStarted}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport * as API from '@/api/Api';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport JobGrid from '@/views/RowMerge/JobGrid.vue';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport ListToolbar from '@/views/Table/ListActions/ListToolbar.vue';\r\nimport SharingBar from '@/views/Table/ShareTable/SharingBar.vue';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { Event, GlobalNotificationEventParams } from \"@/models/RowShare\";\r\nimport { RowShareException } from '@/api/ApiUtils';\r\nimport RowMergeDialog from '@/views/Table/ListActions/RowMergeDialog.vue';\r\n\r\n@Component({\r\n name: \"RowMerge\",\r\n components: { InputText, ConfirmationDialog, ListToolbar, SharingBar, JobGrid, PageLoadSpinner, RowMergeDialog }\r\n})\r\nexport default class RowMerge extends Vue {\r\n\r\n @Prop() private listId!:string;\r\n private listModel: RowShare.List = new RowShare.List();\r\n private listVM : ListVM = new ListVM();\r\n\r\n private reports: RowShare.Report[] | null = null;\r\n private jobs: RowShare.Job[] = [];\r\n\r\n private loadingReports = true;\r\n private loadingJobs = true;\r\n\r\n columns: RowShare.Column[] | null = [];\r\n loadingColumns: boolean = false;\r\n reportTypeIsCopyToColumn: boolean = false;\r\n\r\n private reportFields = [\r\n //{value: 'FileName', text: this.$i18n.t('RowMerge_ReportTemplate').toString()},\r\n {value: 'DisplayName', text: this.$i18n.t('RowMerge_ReportName').toString()},\r\n {value: 'OutputFormat', text: this.$i18n.t('RowMerge_ReportOutputFormat').toString()},\r\n {value: 'OutputDestination', text: this.$i18n.t('RowMerge_OutputDestination').toString()},\r\n {value: 'Published', text: this.$i18n.t('RowMerge_ReportPublished').toString()},\r\n {value: 'Menu', text: '', sortable: false},\r\n ];\r\n\r\n created(){\r\n this.loadList(true);\r\n this.loadReports();\r\n this.loadJobs();\r\n this.loadColumns();\r\n }\r\n\r\n destroy() {\r\n RowShare.Job.clearAllJobUpdateTimeout();\r\n }\r\n\r\n loadList(useCache: boolean = true) {\r\n API.List.load(this.listId,{cache: useCache}).then(listResult => {\r\n if(listResult){\r\n this.listModel = listResult;\r\n this.listVM.list = this.listModel;\r\n }\r\n });\r\n }\r\n\r\n private async loadReports() {\r\n try {\r\n this.loadingReports = true;\r\n var reports = await API.Report.loadByList(this.listId);\r\n if (!reports || reports?.length == 0) {\r\n this.reports = null;\r\n return;\r\n } else {\r\n reports.forEach(report => {\r\n report.updateConversionStatusAsync(5000);\r\n });\r\n }\r\n\r\n this.reports = reports.sort((a, b) => (a.DisplayName > b.DisplayName ? 1 : -1));\r\n } finally {\r\n this.loadingReports = false;\r\n }\r\n }\r\n\r\n private async loadJobs() {\r\n try {\r\n this.loadingJobs = true;\r\n var jobs = await API.Job.loadByList(this.listId, RowShare.JobType.ListReport);\r\n\r\n if (!jobs) {\r\n this.jobs = [];\r\n return;\r\n } else {\r\n jobs.forEach(job => {\r\n job.updateStatusAsync(5000);\r\n });\r\n }\r\n\r\n this.jobs = jobs;\r\n } finally {\r\n this.loadingJobs = false;\r\n }\r\n }\r\n\r\n async loadColumns(){\r\n this.loadingColumns = true;\r\n await API.Column.loadForList(this.listId).then(cols => this.columns = cols)\r\n if (this.columns !== null){\r\n this.columns = this.columns.filter((col: RowShare.Column) => {\r\n return col.Type === RowShare.ColumnStrongType.File;\r\n });\r\n }\r\n this.loadingColumns = false;\r\n }\r\n\r\n get allOutputFormat() {\r\n return [\r\n {text: this.$i18n.t('RowMerge_Report_Auto').toString(), value: RowShare.ReportFormat.Auto},\r\n {text: this.$i18n.t('RowMerge_Report_Pdf').toString(), value: RowShare.ReportFormat.Pdf},\r\n {text: this.$i18n.t('RowMerge_Report_Docx').toString(), value: RowShare.ReportFormat.Docx},\r\n ];\r\n }\r\n\r\n get allColumnsByDestinationType(): any[] {\r\n let result: any[] = [\r\n {\r\n text: this.$i18n.t('RowMerge_DownloadAsFile').toString(),\r\n value: null,\r\n }\r\n ];\r\n if (this.columns !== null) {\r\n result.push({header: this.$i18n.t('RowMerge_CopyToColumn').toString()});\r\n this.columns.forEach(col => {\r\n result.push({\r\n text: col.DisplayName,\r\n value: col.Id\r\n })\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public async saveReport(report: RowShare.Report) {\r\n if (report.OutputDestinationId !== null) {\r\n report.OutputDestinationType = RowShare.OutputDestinationType.CopyToColumn;\r\n } else {\r\n report.OutputDestinationType = RowShare.OutputDestinationType.DownloadFile;\r\n }\r\n let res = await API.Report.save(report);\r\n if (res) {\r\n Object.assign(report, res);\r\n }\r\n this.reportTypeIsCopyToColumn = report.OutputDestinationType === RowShare.OutputDestinationType.CopyToColumn;\r\n // todo: handle file upload:\r\n\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: this.$i18n.t('RowMerge_ReportSaveSuccess'),\r\n type: RowShare.NotificationType.success,\r\n autoHide: true,\r\n autoHideAfterMs: 4000\r\n });\r\n }\r\n\r\n pickFile(report: RowShare.Report){\r\n var input = document.getElementById(\"input-file-\" + report.Id);\r\n // Clear fileList before adding new file.\r\n (input).value = \"\";\r\n input?.click();\r\n }\r\n\r\n async onFileChanged(report: RowShare.Report){\r\n try {\r\n\r\n var input = document.getElementById(\"input-file-\" + report.Id);\r\n if(!input)\r\n return;\r\n\r\n var files = (input).files;\r\n if(!files || files.length <= 0)\r\n return;\r\n\r\n const formData = new FormData();\r\n formData.append(\"file\", files[0]);\r\n var updatedReport = await API.Report.saveProperty(\"file\", report.Id, formData);\r\n if(!updatedReport) {\r\n this.onFileError();\r\n return;\r\n }\r\n var oldPollingRef = report.pollingTimeout;\r\n Object.assign(report, updatedReport);\r\n report.pollingTimeout = oldPollingRef;\r\n report.updateConversionStatusAsync(5000);\r\n\r\n } catch(e: any) {\r\n this.onFileError(e);\r\n return;\r\n }\r\n }\r\n\r\n pickNewFile(){\r\n var input = document.getElementById(\"input-file-new\");\r\n // Clear fileList before adding new file.\r\n (input).value = \"\";\r\n input?.click();\r\n }\r\n\r\n async onNewFileChanged(){\r\n var input = document.getElementById(\"input-file-new\");\r\n if(!input)\r\n return;\r\n\r\n var files = (input).files;\r\n if(!files || files.length <= 0)\r\n return;\r\n\r\n var file = files[0];\r\n\r\n var newReport = new RowShare.Report();\r\n newReport.DisplayName = file.name;\r\n newReport.FileSize = file.size;\r\n newReport.FileName = file.name;\r\n newReport.OutputFormat = RowShare.ReportFormat.Auto;\r\n newReport.Published = true;\r\n newReport.ListId = this.listId;\r\n\r\n var savedReport = null;\r\n try {\r\n savedReport = await API.Report.save(newReport);\r\n if(!savedReport) {\r\n this.onFileError();\r\n return;\r\n }\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n var updatedReport = await API.Report.saveProperty(\"file\", savedReport.Id, formData);\r\n if(!updatedReport) {\r\n this.onFileError();\r\n return;\r\n }\r\n }\r\n catch(e: any) {\r\n this.onFileError(e);\r\n if(savedReport)\r\n await API.Report.remove(savedReport.Id);\r\n return;\r\n }\r\n\r\n updatedReport.updateConversionStatusAsync(5000);\r\n\r\n if(!this.reports)\r\n this.reports = [];\r\n\r\n this.reports.push(updatedReport);\r\n }\r\n\r\n onFileError(e: any | null = null){\r\n var message = this.$i18n.t('RowMerge_GenericUploadError').toString();\r\n\r\n let rsExc = e as RowShareException;\r\n if(rsExc)\r\n message = rsExc.message;\r\n\r\n let eventStorage = {\r\n title: this.$i18n.t('MyDocuments_FileError').toString(),\r\n message: message,\r\n type: 'error',\r\n autoHideAfterMs: 5000,\r\n autoHide: true\r\n }\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, eventStorage);\r\n }\r\n\r\n testReport(report: RowShare.Report) {\r\n if(!report) {\r\n return;\r\n }\r\n EventBus.$emit(Event.ROWMERGE_REQUEST, {\r\n totalTableRowCount: this.listModel.RowCount,\r\n testMode: true,\r\n outputFormat: report.OutputFormat,\r\n reportId: report.Id\r\n });\r\n }\r\n\r\n newJobStarted(job: RowShare.Job) {\r\n if(!this.jobs)\r\n this.jobs = [];\r\n\r\n if(job) {\r\n this.jobs.unshift(job);\r\n job.updateStatusAsync(5000)\r\n }\r\n }\r\n\r\n confirmDeleteReport(id: string) {\r\n var evtArgs = new RowShare.ConfirmationRequiredEventParams();\r\n evtArgs.title = this.$i18n.t(\"RowMerge_ConfirmDeleteReport_Title\").toString();\r\n evtArgs.description1 = this.$i18n.t(\"RowMerge_ConfirmDeleteReport_Description\").toString();\r\n evtArgs.cancelButtonText = this.$i18n.t(\"RowMerge_ConfirmDeleteReport_CancelButton\").toString();\r\n evtArgs.actionButtonText = this.$i18n.t(\"RowMerge_ConfirmDeleteReport_ConfirmButton\").toString();\r\n evtArgs.actionButtonIcon = \"trash-alt\";\r\n evtArgs.actionButtonColor = \"error\";\r\n evtArgs.onConfirmation = async () => { this.deleteReport(id); };\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n\r\n //When an item is deleted from the list, it is removed by splicing the array. This way, it's not necesarry\r\n //to call the API again to obtain all the elements.\r\n deleteReport(id:string){\r\n API.Report.remove(id).then(result=>{\r\n if(result){\r\n if(this.reports!=null) {\r\n let element= this.reports.find(elem => elem.Id == id);\r\n if(element) {\r\n const index = this.reports.indexOf(element);\r\n this.reports.splice(index, 1);\r\n if(this.reports.length <= 0)\r\n this.reports = null;\r\n }\r\n };\r\n }\r\n });\r\n }\r\n\r\n getStatusColor(report: RowShare.Report): string{\r\n switch (report.ConversionStatus) {\r\n case RowShare.JobStatus.Unspecified:\r\n case RowShare.JobStatus.Retrying:\r\n case RowShare.JobStatus.Processing:\r\n return 'info';\r\n case RowShare.JobStatus.Finished:\r\n return 'success';\r\n case RowShare.JobStatus.NotStarted:\r\n return 'warning';\r\n case RowShare.JobStatus.Error:\r\n case RowShare.JobStatus.SourceDeleted:\r\n return 'error';\r\n default:\r\n return '';\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowMerge.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./RowMerge.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RowMerge.vue?vue&type=template&id=1b5fe018&scoped=true&\"\nimport script from \"./RowMerge.vue?vue&type=script&lang=ts&\"\nexport * from \"./RowMerge.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RowMerge.vue?vue&type=style&index=0&id=1b5fe018&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 \"1b5fe018\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('v-row',{staticClass:\"fill-height d-flex align-center justify-center\",attrs:{\"fluid\":\"\"}},[_c('v-col',{staticClass:\"text-center mx-auto\",attrs:{\"cols\":\"6\"}},[_c('h1',{staticClass:\"font-weight-bold primary--text\"},[_vm._v(_vm._s(_vm.$t(\"PageNotFound_Title\")))]),_vm._v(\" \"),_c('v-divider',{staticClass:\"mb-6 mt-4\"}),_vm._v(\" \"),_c('p',{staticClass:\"mb-6\",staticStyle:{\"font-size\":\"18px\"}},[_vm._v(_vm._s(_vm.$t(\"PageNotFound_Description\")))]),_vm._v(\" \"),(!_vm.isMsTeams)?_c('div',[(_vm.isLoggedIn)?_c('v-btn',{attrs:{\"color\":\"primary\",\"large\":\"\",\"to\":{ name: 'MyTables'}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-home\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"PageNotFound_BackLoggedIn\"))+\"\\n \")],1):_c('div',[(_vm.isNotOnPrem)?_c('v-btn',{attrs:{\"large\":\"\",\"color\":\"primary\",\"href\":_vm.$t('PageNotFound_BackAnonymous_Link')}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-home\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"PageNotFound_BackAnonymous\"))+\"\\n \")],1):_c('v-btn',{attrs:{\"large\":\"\",\"color\":\"primary\",\"href\":_vm.loginUrl}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-home\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"PageNotFound_BackAnonymous\"))+\"\\n \")],1)],1)],1):_vm._e()],1),_vm._v(\" \"),_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"6\"}},[_c('v-img',{staticClass:\"mx-auto\",attrs:{\"src\":require(\"@/assets/static/images/notFound_404.jpg\"),\"max-width\":\"100%\",\"max-height\":\"100%\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Vue } from 'vue-property-decorator';\r\n import { UserModule } from '@/store/UserStore';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\nimport { ApplicationModule } from '@/store/ApplicationStore';\r\n\r\n\r\n @Component({\r\n name: \"PageNotFound\"\r\n })\r\n export default class PageNotFound extends Vue {\r\n private isLoggedIn: Boolean = false;\r\n\r\n\r\n async created(){\r\n this.isLoggedIn = !UserModule.CurrentUser.IsAnonymous;\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n\r\n get loginUrl() : string{\r\n return \"/Login\";\r\n }\r\n\r\n get isMsTeams(): boolean {\r\n return ApplicationModule.isMsTeamsApp;\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PageNotFound.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./PageNotFound.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PageNotFound.vue?vue&type=template&id=148069f4&scoped=true&\"\nimport script from \"./PageNotFound.vue?vue&type=script&lang=ts&\"\nexport * from \"./PageNotFound.vue?vue&type=script&lang=ts&\"\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 \"148069f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"fill-height\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center mx-auto\",attrs:{\"cols\":\"auto\"}},[_c('h1',{staticClass:\"font-weight-bold\",staticStyle:{\"font-size\":\"20px\"}},[_vm._v(_vm._s(_vm.$t(\"AccessDenied_Title\")))]),_vm._v(\" \"),_c('v-divider',{staticClass:\"mb-6 mt-4\"}),_vm._v(\" \"),_c('p',{staticClass:\"mb-6\",staticStyle:{\"font-size\":\"18px\"}},[_vm._v(_vm._s(_vm.$t(\"AccessDenied_Description\")))]),_vm._v(\" \"),(_vm.isLoggedIn)?_c('v-btn',{attrs:{\"color\":\"primary\",\"to\":{ name: 'MyTables'}}},[_c('v-icon',{attrs:{\"left\":\"\",\"dense\":\"\"}},[_vm._v(\"fa-home\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"AccessDenied_BackLoggedIn\"))+\"\\n \")],1):_c('div',[(_vm.isNotOnPrem)?_c('v-btn',{attrs:{\"color\":\"primary\",\"href\":_vm.$t('AccessDenied_BackAnonymous_Link')}},[_c('v-icon',{attrs:{\"left\":\"\",\"dense\":\"\"}},[_vm._v(\"fa-home\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"AccessDenied_BackAnonymous\"))+\"\\n \")],1):_c('v-btn',{attrs:{\"color\":\"primary\",\"href\":_vm.loginUrl}},[_c('v-icon',{attrs:{\"left\":\"\",\"dense\":\"\"}},[_vm._v(\"fa-home\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t(\"AccessDenied_BackAnonymous\"))+\"\\n \")],1)],1)],1)],1),_vm._v(\" \"),_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('v-img',{staticClass:\"mx-auto\",attrs:{\"src\":require(\"@/assets/static/images/access_denied.svg\"),\"contain\":\"\",\"aspect-ratio\":\"1\",\"max-width\":\"480\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Vue } from 'vue-property-decorator';\r\n import { UserModule } from '@/store/UserStore';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n\r\n @Component({\r\n name: \"AccessDenied\"\r\n })\r\n export default class AccessDenied extends Vue {\r\n private isLoggedIn: Boolean = false;\r\n\r\n async created(){\r\n let userModel = UserModule.CurrentUser;\r\n if(!userModel.IsAnonymous)\r\n this.isLoggedIn = true;\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n\r\n get loginUrl() : string{\r\n return \"/Login\";\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AccessDenied.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AccessDenied.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccessDenied.vue?vue&type=template&id=1e249edd&scoped=true&\"\nimport script from \"./AccessDenied.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccessDenied.vue?vue&type=script&lang=ts&\"\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 \"1e249edd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"id\":\"access-denied\"}},[_c('v-row',{attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-spacer'),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"5\",\"md\":\"5\"}},[_c('v-img',{staticClass:\"ml-auto\",attrs:{\"src\":require('@/assets/static/images/access_denied.svg'),\"contain\":\"\",\"aspect-ratio\":\"1\",\"max-width\":\"480\"}})],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('OrganizationAccessDenied_Title')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.description1))]),_vm._v(\" \"),(!_vm.msTeams)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-btn',{staticClass:\"full-width-button\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.changeAccount}},[_vm._v(_vm._s(_vm.$t('OrganizationAccessDenied_ChangeAccount')))])],1)],1):_vm._e()],1),_vm._v(\" \"),_c('v-spacer')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Vue } from 'vue-property-decorator';\r\n import { UserModule } from '@/store/UserStore';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import { ApplicationModule } from '@/store/ApplicationStore';\r\n\r\n @Component({\r\n name: \"OrganizationAccessDenied\"\r\n })\r\n export default class OrganizationAccessDenied extends Vue {\r\n private isLoggedIn: Boolean = false;\r\n private currentUserEmail : string|null = null;\r\n \r\n async created(){\r\n let userModel = UserModule.CurrentUser;\r\n if(!userModel.IsAnonymous)\r\n this.currentUserEmail = userModel.Email;\r\n this.isLoggedIn = true;\r\n }\r\n\r\n get msTeams(): boolean {\r\n return ApplicationModule.isMsTeamsApp;\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n\r\n get description1(){\r\n return this.$i18n.t('OrganizationAccessDenied_Description1', {CurrentUserEmail: this.currentUserEmail}).toString();\r\n }\r\n\r\n get loginUrl() : string{\r\n return \"/Login\";\r\n }\r\n\r\n async changeAccount(){\r\n let returnUrl: string | null = await UserModule.signOut();\r\n if (returnUrl) {\r\n window.location.href = '/login?ReturnUrl=MyTables';\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OrganizationAccessDenied.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OrganizationAccessDenied.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrganizationAccessDenied.vue?vue&type=template&id=5e819fd3&scoped=true&\"\nimport script from \"./OrganizationAccessDenied.vue?vue&type=script&lang=ts&\"\nexport * from \"./OrganizationAccessDenied.vue?vue&type=script&lang=ts&\"\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 \"5e819fd3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"fill-height table-page-container\"},[_c('toolbar',{attrs:{\"title\":_vm.toolbarTitle,\"returnUrl\":_vm.returnUrl}}),_vm._v(\" \"),_c('v-container',[_c('div',{staticClass:\"container-box\"},[_c('v-row',{staticClass:\"row-container\"},[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"3\"}},[_c('v-row',{staticClass:\"mb-4\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('OrganizationInfos',{attrs:{\"organizationId\":_vm.organizationId}})],1)],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0\",attrs:{\"sm\":\"12\",\"md\":\"9\"}},[_c('SubscriptionConfigurator',{attrs:{\"organizationId\":_vm.organizationId}})],1)],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"py-0\"},[(!_vm.cancellationConfirmed)?_c('v-row',{staticClass:\"pa-0 ma-0\"},[_c('v-col',[_c('v-btn-toggle',{attrs:{\"madatory\":\"\"},model:{value:(_vm.currentPeriod),callback:function ($$v) {_vm.currentPeriod=$$v},expression:\"currentPeriod\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"value\":\"Month\",\"color\":\"primary\"},on:{\"click\":_vm.computeQuotations}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CheckOut_BillMonthly'))+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"outlined\":\"\",\"value\":\"Year\",\"color\":\"primary\"},on:{\"click\":_vm.computeQuotations}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CheckOut_BillYearly'))+\"\\n \")])],1)],1),_vm._v(\" \"),(_vm.canChooseCurrency)?_c('v-col',{staticClass:\"currency-chooser\",attrs:{\"offset\":\"4\",\"color\":\"primary\"}},[_c('div',[_c('v-btn-toggle',{attrs:{\"mandatory\":\"\"},model:{value:(_vm.currentCurrency),callback:function ($$v) {_vm.currentCurrency=$$v},expression:\"currentCurrency\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"primary\",\"value\":\"EUR\"},on:{\"click\":_vm.computeQuotations}},[_vm._v(\"\\n EUR €\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"outlined\":\"\",\"color\":\"primary\",\"value\":\"USD\"},on:{\"click\":_vm.computeQuotations}},[_vm._v(\"\\n USD $\\n \")])],1)],1)]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(!_vm.cancellationConfirmed)?_c('v-row',{staticClass:\"mb-2 mt-0\"},[_c('v-col',{staticClass:\"checkout--label\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CheckOut_ChooseTeamSize'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(!_vm.cancellationConfirmed)?_c('v-row',[_c('v-col',{staticClass:\"checkout--label\"},[_c('v-slider',{attrs:{\"hide-details\":\"\",\"thumb-label\":\"always\",\"min\":\"5\",\"color\":\"primary\"},model:{value:(_vm.membersCount),callback:function ($$v) {_vm.membersCount=$$v},expression:\"membersCount\"}})],1)],1):_vm._e(),_vm._v(\" \"),(!_vm.cancellationConfirmed)?_c('v-row',{staticClass:\"mt-0 mb-1 pa-0\"},[_c('v-col',{staticClass:\"checkout--label\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CheckOut_SliderUserCountDescription'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(!_vm.cancellationConfirmed)?_c('v-row',{staticClass:\"ma-0 pa-0\"},[(_vm.loadingPlans)?_c('v-col',[_c('page-load-spinner')],1):_c('v-col',{staticClass:\"ma-0 pa-0\"},[_c('v-row',{staticClass:\"pa-0 ma-0\",attrs:{\"no-gutter\":\"\"}},[_c('v-col',{staticClass:\"pa-0 ma-0 plans--compare text-center\"},[_c('a',{staticClass:\"plans--compare\",attrs:{\"href\":_vm.pricingUrl,\"text\":\"\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('CheckOut_ComparePlans')))])])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"ma-0 mb-2 plans--list\",attrs:{\"no-gutters\":\"\"}},_vm._l((_vm.configuratorPlans),function(plan){return _c('v-col',{key:plan.Id,staticClass:\"mx-1\",attrs:{\"cols\":\"4\"}},[_c('v-card',{staticClass:\"price--card text-center justify-center\",attrs:{\"outlined\":\"\"}},[_c('v-card-title',{staticClass:\"price--title mb-2\"},[_vm._v(\"\\n \"+_vm._s(plan.OfferId)+\"\\n \")]),_vm._v(\" \"),_c('v-card-subtitle',{staticClass:\"px-0 price--subtitle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CheckOut_' + plan.OfferId + '_Subtitle'))+\"\\n \")]),_vm._v(\" \"),(!_vm.showContactUs)?_c('div',[_c('v-card-text',{staticClass:\"pb-2 px-0 price--label\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CheckOut_StartsAt'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"pa-0 price--amount\"},[_vm._v(\"\\n \"+_vm._s(_vm.getPlanBasePrice(plan))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"pt-2 px-0 price--label\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CheckOut_UsersIncluded'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('v-expand-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showFullPriceDetails),expression:\"showFullPriceDetails\"}]},[_c('v-card-text',{staticClass:\"pa-0 mb-3\"},[_c('v-avatar',{attrs:{\"color\":\"primary\",\"size\":\"26\"}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fa fa-plus\")])],1)],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"pa-0 price--amount\"},[_vm._v(\"\\n \"+_vm._s(_vm.getPlanUserPrice(plan))+\"\\n \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({staticClass:\"ml-2\",attrs:{\"color\":\"grey-lighten1\",\"small\":\"\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,true)},[_vm._v(\" \"),_c('v-row',{staticClass:\"pa-0 ma-0 mb-2 tooltip-title text-center\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0 ma-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.getPlanExtraUserTooltipTitle(plan))+\"\\n \")])],1),_vm._v(\" \"),_vm._l((_vm.getItemPriceTiers(plan)),function(tier,index){return (tier.Price > 0 && tier.MinUnit < 100)?_c('div',{key:tier.MinUnit},[(index > 1)?_c('v-row',{staticClass:\"pa-0 ma-0 text-center\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0 ma-0\"},[_vm._v(\"\\n +\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"pa-0 ma-0 text-center\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-0 ma-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.getTierDescription(tier))+\"\\n \")])],1)],1):_vm._e()})],2)],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"pa-0 price--label\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('CheckOut_PerExtraUser'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('v-avatar',{attrs:{\"color\":\"primary\",\"size\":\"26\"}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fa fa-equals\")])],1)],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"price--total\"},[_vm._v(\"\\n \"+_vm._s(_vm.getPlanPrice(plan))+\"\\n \")])],1)]),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),(_vm.showContactUs)?_c('v-btn',{attrs:{\"to\":_vm.contactLink,\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.$t('CheckOut_ContactUs')))]):_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.choosePlan(plan)}}},[_vm._v(_vm._s(_vm.$t('CheckOut_Choose_' + plan.OfferId)))]),_vm._v(\" \"),_c('v-spacer')],1)],1)],1)}),1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport * as API from '@/api/Api';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport { HostedPage, PeriodUnitEnum, Plan, SubscriptionLimit, SubscriptionLimitType, Quotation, PricingModelEnum, ItemPrice, Tier } from '@/models/RowShare';\r\nimport { ReturnUrlHandler } from '@/views/ReturnUrl';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { RouterUtils } from '@/modules/Router';\r\nimport { Location } from 'vue-router';\r\n\r\n@Component({\r\n name:'SubscriptionConfigurator',\r\n components: {PageLoadSpinner}\r\n})\r\nexport default class SubscriptionConfigurator extends ReturnUrlHandler{\r\n // monthlyQuotation: Quotation | null = new Quotation();\r\n // yearlyQuotation: Quotation | null = new Quotation();\r\n // lastMembersCountRefresh: number = 0;\r\n membersCount: number = 5;\r\n isLoading: boolean = true;\r\n isUsingEur: boolean = true;\r\n notEnoughtUsers: boolean = false;\r\n // timeout!: number;\r\n orgMembersCount: number = 0\r\n cbInstance: any;\r\n // lastCurrencyRefresh: string = \"\";\r\n canChooseCurrency: boolean = false;\r\n cbCheckOutSuceeded: boolean = false;\r\n cancellationConfirmed: boolean = false;\r\n quotationLimitExceeded: boolean = false;\r\n subscriptionLimits!: Array;\r\n orgInTrial: boolean = true;\r\n // selectedPlan: Plan | null = null;\r\n // annualSelectedPlan: ItemPrice | null = null;\r\n // monthSelectedPlan: ItemPrice | null = null;\r\n // lastPlanRefresh: Plan | null = null;\r\n configuratorPlans: Array | null = null;\r\n plan: Plan | null = null;\r\n loadingPlans: boolean = false; \r\n selectedPeriod: PeriodUnitEnum = PeriodUnitEnum.Year;\r\n currentQuotations: Quotation[] = [];\r\n \r\n\r\n @Prop() organizationId!: string | null;\r\n\r\n public get currentPeriod() {\r\n switch (this.selectedPeriod) {\r\n case PeriodUnitEnum.Month:\r\n return \"Month\";\r\n default:\r\n return \"Year\";\r\n }\r\n }\r\n\r\n public set currentPeriod(value: string) {\r\n if(value === \"Month\") {\r\n this.selectedPeriod = PeriodUnitEnum.Month;\r\n }\r\n else {\r\n this.selectedPeriod = PeriodUnitEnum.Year;\r\n }\r\n }\r\n\r\n public get currentCurrency(){\r\n if(this.isUsingEur){\r\n return \"EUR\";\r\n }\r\n else\r\n {\r\n return \"USD\";\r\n }\r\n }\r\n\r\n public set currentCurrency(value: string){\r\n if(value==='EUR'){\r\n this.isUsingEur = true;\r\n }\r\n else{\r\n this.isUsingEur = false;\r\n }\r\n }\r\n\r\n public get showFullPriceDetails(): boolean {\r\n if(!this.membersCount) {\r\n return false;\r\n }\r\n return (this.membersCount > 5 && this.membersCount < 100);\r\n }\r\n\r\n public get showContactUs(): boolean {\r\n if(!this.membersCount) {\r\n return false;\r\n }\r\n return (this.membersCount == 100);\r\n }\r\n\r\n public get priceStringPattern(): string {\r\n return this.isUsingEur ? 'CheckOut_PriceEurPattern' : 'CheckOut_PriceUsdPattern';\r\n }\r\n\r\n public get contactLink(){\r\n return {\r\n name: \"Contact\",\r\n params: {\r\n selectedQuestion: 'Contact/Sales'\r\n }\r\n };\r\n }\r\n\r\n\r\n async created() {\r\n this.currentPeriod = \"Year\";\r\n }\r\n\r\n async mounted() {\r\n if(this.organizationId)\r\n {\r\n this.loadingPlans = true;\r\n await this.initChargebeeInstance();\r\n API.Organization.load(this.organizationId).then(org => {\r\n if(org){\r\n this.membersCount = org.InTrial ? org.ActiveMemberCount : Math.max(org.ActiveMemberCount, org.MaximumMemberCount);\r\n this.orgMembersCount = org.ActiveMemberCount;// org.InTrial? org.ActiveMemberCount : org.MaximumMemberCount;\r\n this.isUsingEur = (org.CurrencyISOCode == \"EUR\");\r\n this.canChooseCurrency = (org.InTrial || !org.SubscriptionEnabled || org.SubscriptionIsFree);\r\n this.orgInTrial = org.InTrial;\r\n this.getPlans().then(() => {\r\n this.computeQuotations();\r\n });\r\n // .then(() => {\r\n // if(this.organizationId) {\r\n // API.Organization.getCurrentPlanId(this.organizationId)\r\n // .then(planId => {\r\n // if(planId && this.configuratorPlans) {\r\n // let currentPlan = this.configuratorPlans.find(p => p.getItemPriceById(planId) != null);\r\n // if(currentPlan) {\r\n // setTimeout(() => {\r\n // if(currentPlan) {\r\n // this.onPlanSelected(currentPlan);\r\n // }\r\n // },0);\r\n // }\r\n // }\r\n // });\r\n // }\r\n // });\r\n }\r\n });\r\n // API.Organization.getLimits(this.organizationId).then(limits => {\r\n // if(limits){\r\n // this.subscriptionLimits = limits;\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n async initChargebeeInstance(){\r\n if(!this.cbInstance)\r\n {\r\n let scriptPromise = this.$loadScript('https://js.chargebee.com/v2/chargebee.js');\r\n let siteNamePromise = API.Configuration.getChargebeeSiteName();\r\n \r\n let res = await Promise.all([scriptPromise, siteNamePromise]);\r\n let cbSiteName = res[1];\r\n\r\n this.cbInstance = (window).Chargebee.init({ site: cbSiteName, enableGATracking: true, enableGTMTracking: true, isItemsModel: true });\r\n }\r\n }\r\n\r\n isCorporatePlan(plan: Plan | null | undefined) : boolean {\r\n return plan?.OfferId == \"Corporate\";\r\n }\r\n\r\n isEnterprisePlan(plan: Plan | null | undefined) : boolean {\r\n return plan?.OfferId == \"Enterprise\";\r\n }\r\n\r\n getPlanTitle(plan: Plan): string {\r\n return plan?.OfferId ?? '';\r\n }\r\n\r\n getTierDescription(tier: Tier | null | undefined) : string {\r\n if(!tier) {\r\n return \"\";\r\n }\r\n return this.$i18n.t('CheckOut_TierDescription_'+ this.currentCurrency, {min: tier.MinUnit, max: tier.MaxUnit, price: (tier.Price / 100).toLocaleString()}).toString();\r\n }\r\n\r\n getItemPriceTiers(plan: Plan | null | undefined) : Tier[] {\r\n if(!plan) {\r\n return [];\r\n }\r\n var itemPrice = plan.getItemPrice(1, this.selectedPeriod, this.currentCurrency);\r\n if(!itemPrice) {\r\n return [];\r\n }\r\n return itemPrice.Tiers ?? [];\r\n }\r\n \r\n get pricingUrl(): string {\r\n return this.$i18n.t('CheckOut_PricingUrl').toString();\r\n }\r\n\r\n // async getMonthlyQuotation() {\r\n // if(!this.organizationId) {\r\n // return null;\r\n // }\r\n\r\n // let currency = this.isUsingEur ? 'EUR' : 'USD';\r\n // let quotation = new Quotation();\r\n // quotation.PlanId = this.monthSelectedPlan?.Id ?? '';\r\n // quotation.CustomerId = this.organizationId;\r\n // quotation.RequestedUsers = this.membersCount;\r\n \r\n // if(this.monthSelectedPlan?.PricingModel === PricingModelEnum.PerUnit) {\r\n // quotation.PlanQuantity = this.membersCount;\r\n // quotation.Price = this.monthSelectedPlan.Price * quotation.PlanQuantity;\r\n // }\r\n // console.log('Local monthly quotation : ', quotation);\r\n\r\n // return await API.Organization.getMonthlyQuotation(this.organizationId, this.membersCount, currency, this.monthSelectedPlan?.Id);\r\n // }\r\n\r\n // async getYearlyQuotation() {\r\n // if(!this.organizationId) {\r\n // return null;\r\n // }\r\n\r\n // let currency = this.isUsingEur ? 'EUR' : 'USD';\r\n // return await API.Organization.getAnnualQuotation(this.organizationId, this.membersCount, currency, this.annualSelectedPlan?.Id);\r\n // }\r\n\r\n // async getQuotations() {\r\n // let currency: string = '';\r\n // if(this.isUsingEur) {\r\n // currency = \"EUR\";\r\n // }\r\n // else {\r\n // currency = \"USD\";\r\n // }\r\n\r\n // if(this.selectedPlan == null) {\r\n // return;\r\n // }\r\n\r\n // if (this.membersCount === this.lastMembersCountRefresh && this.lastCurrencyRefresh === currency && this.lastPlanRefresh == this.selectedPlan) {\r\n // return;\r\n // }\r\n // this.isLoading = true;\r\n // this.quotationLimitExceeded = false;\r\n // if(!this.organizationId) {\r\n // return;\r\n // }\r\n\r\n // this.monthlyQuotation = await this.getMonthlyQuotation();\r\n // this.yearlyQuotation = await this.getYearlyQuotation();\r\n // this.lastMembersCountRefresh = this.membersCount;\r\n // this.lastPlanRefresh = this.selectedPlan;\r\n // this.lastCurrencyRefresh = currency;\r\n \r\n // this.isLoading = false;\r\n // if(this.monthlyQuotation){\r\n // this.notEnoughtUsers = this.monthlyQuotation.UsersBilled < this.orgMembersCount;\r\n // if(this.subscriptionLimits && this.subscriptionLimits.length > 0) {\r\n // this.subscriptionLimits.forEach(limit => {\r\n // if(!this.monthlyQuotation){\r\n // return;\r\n // }\r\n // switch(limit.LimitType)\r\n // {\r\n // case SubscriptionLimitType.Table:\r\n // if(this.monthlyQuotation.PlanTableCount < limit.CurrentValue) {\r\n // this.quotationLimitExceeded = true;\r\n // return;\r\n // }\r\n // break;\r\n // case SubscriptionLimitType.Row:\r\n // if(this.monthlyQuotation.PlanRowCount < limit.CurrentValue) {\r\n // this.quotationLimitExceeded = true;\r\n // return;\r\n // }\r\n // break;\r\n // case SubscriptionLimitType.Storage:\r\n // // Plan storage is in Mo\r\n // if(this.monthlyQuotation.PlanStorage * 1024 * 1024 < limit.CurrentValue) {\r\n // this.quotationLimitExceeded = true;\r\n // return;\r\n // }\r\n // break;\r\n // }\r\n // });\r\n // }\r\n // }\r\n // }\r\n\r\n async getPlans() {\r\n this.configuratorPlans = await API.Organization.getConfiguratorPlans() ?? [];\r\n this.configuratorPlans.sort((planA: Plan, planB: Plan) => {\r\n var priceA = planA.getBasePrice(1, this.selectedPeriod, this.currentCurrency) ?? 0;\r\n var priceB = planB.getBasePrice(1, this.selectedPeriod, this.currentCurrency) ?? 0;\r\n if(priceA > priceB) {\r\n return 1;\r\n }\r\n else if(priceA < priceB) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n this.loadingPlans = false;\r\n }\r\n\r\n // get annualPlans(): Array {\r\n // if(this.configuratorPlans) {\r\n // return this.configuratorPlans.filter(p => {\r\n // if(p.Prices.find((pp: ItemPrice) => pp.PeriodUnit == PeriodUnitEnum.Year && pp.Currency === this.currentCurrency)) {\r\n // return true;\r\n // }\r\n // return false;\r\n // });\r\n // }\r\n // return [];\r\n // }\r\n\r\n // get monthPlans(): Array {\r\n // if(this.configuratorPlans) {\r\n // return this.configuratorPlans.filter(p => {\r\n // if(p.Prices.find((pp: ItemPrice) => pp.PeriodUnit == PeriodUnitEnum.Month && pp.Currency === this.currentCurrency)) {\r\n // return true;\r\n // }\r\n // return false;\r\n // });\r\n // }\r\n // return [];\r\n // }\r\n @Watch('membersCount')\r\n computeQuotations() {\r\n setTimeout(() => {\r\n this.currentQuotations = [];\r\n if(!this.membersCount || !this.configuratorPlans) {\r\n return;\r\n }\r\n \r\n this.configuratorPlans.forEach((cp) => {\r\n let quot = new Quotation();\r\n quot.PlanId = cp.Id;\r\n quot.ItemPriceId = cp.getItemPrice(1, this.selectedPeriod, this.currentCurrency)?.Id ?? '';\r\n quot.Price = cp.getPrice(1, this.selectedPeriod, this.currentCurrency, this.membersCount);\r\n quot.BasePrice = cp.getPrice(1, this.selectedPeriod, this.currentCurrency, 1);\r\n quot.RequestedUsers = this.membersCount;\r\n quot.PlanQuantity = this.membersCount;\r\n quot.CustomerId = this.organizationId ?? '';\r\n\r\n this.currentQuotations.push(quot);\r\n });\r\n }, 0);\r\n }\r\n\r\n getPlanBasePrice(plan: Plan | null | undefined) : string {\r\n if(!plan) {\r\n return \"\";\r\n }\r\n let quotation = this.currentQuotations.find((q) => q.PlanId === plan.Id);\r\n if(!quotation) {\r\n return \"\";\r\n }\r\n return this.$i18n.t(this.priceStringPattern, [(Math.round(quotation.BasePrice / 100)).toLocaleString(navigator.language)]).toString();\r\n }\r\n\r\n getPlanPrice(plan: Plan | null | undefined) : string {\r\n if(!plan) {\r\n return \"\";\r\n }\r\n let quotation = this.currentQuotations.find((q) => q.PlanId === plan.Id);\r\n if(!quotation) {\r\n return \"\";\r\n }\r\n return this.$i18n.t(this.priceStringPattern, [(Math.round(quotation.Price / 100)).toLocaleString(navigator.language)]).toString()\r\n + ' ' + this.$i18n.t(this.currentPeriod == 'Year' ? 'CheckOut_PlanByYear' : 'CheckOut_PlanByMonth').toString();\r\n }\r\n\r\n getPlanUserPrice(plan: Plan | null | undefined) : string {\r\n if(!plan) {\r\n return \"\";\r\n }\r\n let quotation = this.currentQuotations.find((q) => q.PlanId === plan.Id);\r\n if(!quotation) {\r\n return \"\";\r\n }\r\n return this.$i18n.t(this.priceStringPattern, [(Math.round(quotation.UserPrice / 100)).toLocaleString(navigator.language)]).toString();\r\n }\r\n\r\n getSetupFeesPrice(plan: Plan | null | undefined) : string {\r\n if(!plan) {\r\n return \"\";\r\n }\r\n return this.$i18n.t(this.priceStringPattern, [(plan.getSetupFees(this.currentCurrency) / 100).toLocaleString(navigator.language)]).toString();\r\n }\r\n\r\n getTablesLimit(plan: Plan | null | undefined) {\r\n if(!plan) {\r\n return 0;\r\n }\r\n return ((plan.Limits.TablePerQuantity * this.membersCount) + plan.Limits.FixedTableQuantity).toLocaleString(navigator.language);\r\n }\r\n\r\n getRowsLimit(plan: Plan | null | undefined) {\r\n if(!plan) {\r\n return 0;\r\n }\r\n return ((plan.Limits.RowPerQuantity * this.membersCount) + plan.Limits.FixedRowQuantity).toLocaleString(navigator.language);\r\n }\r\n\r\n getSizeLimit(plan: Plan | null | undefined) {\r\n if(!plan) {\r\n return '';\r\n }\r\n let size = ((plan.Limits.TableSizePerQuantity * this.membersCount) + plan.Limits.FixedTableSize) * 1024 * 1024;\r\n return Utils.humanFileSize(size, this.$i18n.locale==\"fr\", 0);\r\n }\r\n\r\n getReadOnlyUsersLimit(plan: Plan | null | undefined) {\r\n if(!plan) {\r\n return 0;\r\n }\r\n return ((plan.Limits.ReadOnlyUsersPerQuantity * this.membersCount) + plan.Limits.FixedReadOnlyUsersQuantity).toLocaleString(navigator.language);\r\n }\r\n\r\n getQuotationPrice(quotation: Quotation | null | undefined) {\r\n if(!quotation) {\r\n return \"--\";\r\n }\r\n return this.$i18n.t(this.priceStringPattern, [(quotation.Price / 100).toLocaleString(navigator.language)]).toString();\r\n }\r\n\r\n choosePlan(plan: Plan | null | undefined) {\r\n if(!plan) {\r\n return;\r\n }\r\n let quotation = this.currentQuotations.find((q) => q.PlanId === plan.Id);\r\n if(!quotation) {\r\n return;\r\n }\r\n this.openCheckoutFromQuotation(quotation);\r\n }\r\n\r\n getPlanExtraUserTooltipTitle(plan: Plan | null | undefined) {\r\n if(!plan) {\r\n return;\r\n }\r\n return this.$i18n.t('CheckOut_ExtraUserTooltipTitle', [plan.OfferId]).toString();\r\n }\r\n\r\n // onPlanSelected(plan: Plan) {\r\n // this.selectedPlan = plan;\r\n // this.annualSelectedPlan = plan.getItemPrice(1, PeriodUnitEnum.Year, this.currentCurrency);\r\n // this.monthSelectedPlan = plan.getItemPrice(1, PeriodUnitEnum.Month, this.currentCurrency);\r\n // this.getQuotations();\r\n // }\r\n\r\n // isPlanSelected(plan: Plan) {\r\n // return this.selectedPlan === plan;\r\n // }\r\n\r\n // startTimer() {\r\n // this.timeout = setTimeout(() => this.getQuotations(), 500);\r\n // }\r\n\r\n // clearTimer() {\r\n // if (this.timeout) {\r\n // clearTimeout(this.timeout);\r\n // }\r\n // }\r\n\r\n // restartTimer() {\r\n // this.clearTimer();\r\n // this.startTimer();\r\n // }\r\n\r\n // onMembersCountKeyPress(event: KeyboardEvent){\r\n // if (event.keyCode === 13) {\r\n // event.preventDefault();\r\n // this.clearTimer();\r\n // this.getQuotations();\r\n // } \r\n // else if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode !== 8 && event.keyCode !== 46) {\r\n // event.returnValue = false;\r\n // } \r\n // else {\r\n // this.restartTimer();\r\n // }\r\n // }\r\n\r\n // onMembersCountChange(event: Event){\r\n // this.clearTimer();\r\n // this.getQuotations();\r\n // return false;\r\n // }\r\n\r\n // chooseMembersCount(quantity: number){\r\n // this.membersCount = quantity;\r\n // this.getQuotations();\r\n // }\r\n\r\n async openCheckoutFromQuotation(quotation: Quotation | null | undefined) {\r\n if(!quotation) {\r\n return;\r\n }\r\n if(!this.cbInstance){\r\n this.initChargebeeInstance();\r\n }\r\n\r\n this.cbInstance.openCheckout({\r\n hostedPage: function () : unknown {\r\n return API.Organization.loadCheckoutFromQuotation(quotation);\r\n },\r\n error: function (error: string) {\r\n },\r\n close: () => {\r\n if(this.cbCheckOutSuceeded) {\r\n setTimeout(() => {\r\n var defaultRedirectUrl = \"/manageorganization/\"+this.organizationId;\r\n this.redirectToReturnUrlOrDefault(defaultRedirectUrl);\r\n }, 0);\r\n }\r\n },\r\n success: (hostedPageId : string) => {\r\n this.cbCheckOutSuceeded = 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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SubscriptionConfigurator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SubscriptionConfigurator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscriptionConfigurator.vue?vue&type=template&id=6a9c242b&scoped=true&\"\nimport script from \"./SubscriptionConfigurator.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscriptionConfigurator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubscriptionConfigurator.vue?vue&type=style&index=0&id=6a9c242b&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 \"6a9c242b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.organization)?_c('v-card',{staticClass:\"pb-2\"},[_c('v-list-item',{attrs:{\"two-line\":\"\"}},[_c('v-list-item-avatar',[(_vm.showImage)?_c('div',[_c('img',{attrs:{\"id\":\"imgOrganization\",\"src\":_vm.getIconPath}})]):_vm._e(),_vm._v(\" \"),(!_vm.showImage)?_c('div',[_c('v-icon',{attrs:{\"color\":\"darkest\"}},[_vm._v(\"far fa-building\")])],1):_vm._e()]),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"font-weight-bold\"},[_c('span',{attrs:{\"title\":_vm.organization.Name}},[_vm._v(_vm._s(_vm.organization.Name))])])],1)],1),_vm._v(\" \"),(_vm.isNotOnPrem && _vm.organization.CanShowFreePlanInfos)?_c('v-list-item',[_c('v-list-item-content',[_c('div',{staticClass:\"rounded-md pa-4 text-center secondary lighten-2 subscription\"},[_c('p',{staticClass:\"ma-0 font-weight-medium secondary--text\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_FreePlanInfo')))])])])],1):_vm._e(),_vm._v(\" \"),(_vm.organization.CanShowSubscriptionInfos)?_c('v-list-item',[_c('v-list-item-content',[_c('div',{staticClass:\"rounded-md pa-4 text-center secondary lighten-2 subscription\"},[(_vm.organization.InTrial)?_c('div',[_c('p',{staticClass:\"text-center ma-0 font-weight-medium secondary--text\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_TrialEnd')))]),_vm._v(\" \"),_c('p',{staticClass:\"text-center ma-0 font-weight-normal secondary--text\"},[_vm._v(_vm._s(_vm.subscriptionTermEndDateUTC))])]):_c('div',[(_vm.isNotOnPrem)?_c('p',{staticClass:\"text-left ma-0 text-center font-weight-medium secondary--text\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_SubscriptionRenew')))]):_c('p',{staticClass:\"text-left ma-0 text-center font-weight-medium secondary--text\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_SubscriptionRenew_OnPrem')))]),_vm._v(\" \"),_c('p',{staticClass:\"text-center ma-0 font-weight-normal secondary--text\"},[_vm._v(_vm._s(_vm.subscriptionTermEndDateUTC))])])])])],1):_vm._e(),_vm._v(\" \"),_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"font-weight-medium\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Organization_TeamSize'))+\"\\n \")]),_vm._v(\" \"),_c('div',[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\",\"color\":\"primary\",\"dense\":\"\"}},[_vm._v(\"far fa-user\")]),_vm._v(\" \"),_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(_vm.organization.ActiveMemberCount))]),_vm._v(\" \"),(!_vm.organization.InTrial)?_c('span',[_vm._v(\"\\n /\\n \"+_vm._s(_vm.organization.MaximumMemberCount)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.organization.InTrial && _vm.isManageOrganization && _vm.isNotOnPrem)?_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\",\"icon\":\"\",\"tile\":\"\"},on:{\"click\":_vm.onUpdateUserCountClick}},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"far fa-pen-to-square\")])],1):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"font-weight-medium\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Organization_SubscriptionFixedReadOnlyUsersQuantity'))+\"\\n \")]),_vm._v(\" \"),_c('div',[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\",\"color\":\"primary\",\"dense\":\"\"}},[_vm._v(\"far fa-user\")]),_vm._v(\" \"),_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(_vm.organization.ReadonlyMemberCount))]),_vm._v(\" \"),(!_vm.organization.InTrial)?_c('span',[_vm._v(\"\\n /\\n \"+_vm._s(_vm.organization.SubscriptionFixedReadOnlyUsersQuantity)+\"\\n \")]):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"font-weight-medium\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Organization_Lists'))+\"\\n \")]),_vm._v(\" \"),_c('div',[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\",\"color\":\"primary\",\"dense\":\"\"}},[_vm._v(\"far fa-table\")]),_vm._v(\" \"),_c('span',{staticClass:\"primary--text\"},[_vm._v(_vm._s(_vm.organization.ListCount))]),_vm._v(\" \"),(!_vm.organization.InTrial)?_c('span',[_vm._v(\"\\n /\\n \"+_vm._s(_vm.organization.MaximumListCount)+\"\\n \")]):_vm._e()],1)],1)],1),_vm._v(\" \"),(_vm.isManageOrganization && _vm.isNotOnPrem && _vm.organization.CanShowChargebeePortal)?_c('v-list-item',[_c('v-list-item-content',{staticClass:\"ma-auto btn-width\"},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"block\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.showPaymentSources}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ManageOrganization_BillingPortalPayments'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isManageOrganization && _vm.isNotOnPrem && _vm.organization.CanShowChargebeePortal)?_c('v-list-item',[_c('v-list-item-content',{staticClass:\"ma-auto btn-width\"},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"block\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.showSubscriptionDetails}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ManageOrganization_BillingPortalSubscription'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isManageOrganization && _vm.isNotOnPrem && !_vm.organization.InTrial)?_c('v-list-item',[_c('v-list-item-content',{staticClass:\"ma-auto btn-width\"},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"block\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.openBillingHistory}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ManageOrganization_BillingHistory'))+\"\\n \")])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isManageOrganization && _vm.isNotOnPrem)?_c('v-list-item',[_c('v-list-item-content',{staticClass:\"ma-auto btn-width\"},[(!_vm.organization.InTrial)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"to\":_vm.contactLink,\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ManageOrganization_ContactUs'))+\"\\n \")]):_c('v-btn',{staticClass:\"text-none\",attrs:{\"to\":_vm.checkoutLink,\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.checkOutButtonLabel)+\"\\n \")])],1)],1):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import * as API from '@/api/Api';\r\n import PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n import { Organization } from '@/models/RowShare';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import { EventBus } from '@/modules/EventBus';\r\n import * as RowShare from \"@/models/RowShare\";\r\n import { Location as RouterLocation } from \"vue-router\";\r\n import { ReturnUrlHandler } from '@/views/ReturnUrl';\r\n import { RouterUtils } from '@/modules/Router';\r\n\r\n @Component({\r\n name: 'OrganizationInfos',\r\n components: {PageLoadSpinner}\r\n })\r\n export default class OrganizationInfos extends ReturnUrlHandler{\r\n @Prop() organizationId!: string;\r\n @Prop() isManageOrganization!:boolean;\r\n private organization: Organization;\r\n private showImage:boolean = false;\r\n private subscriptionTermEndDateUTC:string =\"\";\r\n private cbInstance: any;\r\n private cbPortal: any;\r\n\r\n constructor(){\r\n super();\r\n this.organization = new Organization();\r\n EventBus.$on(RowShare.Event.ORGANIZATION_CHANGED, async() => {\r\n this.updateOrganization();\r\n });\r\n }\r\n\r\n async created(){\r\n if (this.isNotOnPrem){\r\n await this.initChargebeeInstance();\r\n }\r\n API.Organization.load(this.organizationId).then(res=>{\r\n if(res){\r\n this.organization = res;\r\n this.subscriptionTermEndDateUTC = new Date(this.organization.SubscriptionCurrentTermEndDateUtc).toLocaleDateString(navigator.language, {day: 'numeric', month: 'short', year: 'numeric'});\r\n if(res.IconPath!=null){\r\n this.showImage = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n mounted(){\r\n if (this.isNotOnPrem){\r\n this.createChargebeePortal();\r\n }\r\n }\r\n\r\n updateOrganization(){\r\n API.Organization.load(this.organizationId,{cache:false}).then(res=>{\r\n this.organization = Object.assign({}, res);;\r\n if(res && res.IconPath!=null){\r\n this.showImage = true;\r\n let elem = document.getElementById('imgOrganization');\r\n if(elem){\r\n elem.setAttribute(\"src\",this.getIconPath);\r\n }\r\n }\r\n else{\r\n this.showImage = false;\r\n } \r\n })\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get getIconPath():string{\r\n if (this.organization && this.organization.IconPath) {\r\n return (\r\n \"/\" + this.organization.IconPath + \"?_ssb_img=S;w:64;h:64\"+ Math.random()\r\n );\r\n }\r\n return \"\"\r\n }\r\n\r\n get getShowImage():boolean{\r\n return this.showImage;\r\n }\r\n\r\n showPaymentSources(){\r\n if (!this.isNotOnPrem)\r\n return;\r\n this.openBillingPortal(RowShare.PortalSections.PAYMENT_SOURCES)\r\n }\r\n\r\n showSubscriptionDetails(){\r\n if (!this.isNotOnPrem)\r\n return;\r\n this.openBillingPortal(RowShare.PortalSections.SUBSCRIPTION_DETAILS);\r\n }\r\n\r\n async initChargebeeInstance(){\r\n if (!this.isNotOnPrem)\r\n return;\r\n\r\n if(!this.cbInstance)\r\n {\r\n let scriptPromise = this.$loadScript('https://js.chargebee.com/v2/chargebee.js');\r\n let siteNamePromise = API.Configuration.getChargebeeSiteName();\r\n \r\n let res = await Promise.all([scriptPromise, siteNamePromise]);\r\n let cbSiteName = res[1];\r\n \r\n this.cbInstance = (window).Chargebee.init({ site: cbSiteName, enableGATracking: true, enableGTMTracking: true });\r\n }\r\n }\r\n\r\n async createChargebeePortal(){\r\n if (!this.isNotOnPrem)\r\n return;\r\n\r\n if(!this.cbInstance){\r\n await this.initChargebeeInstance();\r\n }\r\n this.cbPortal = this.cbInstance.createChargebeePortal();\r\n\r\n let component = this;\r\n this.cbInstance.setPortalSession(function () {\r\n return API.Organization.loadPortalConfig(component.organizationId);\r\n });\r\n }\r\n\r\n async openBillingHistory() {\r\n if (!this.isNotOnPrem)\r\n return;\r\n\r\n this.cbPortal.openSection({\r\n sectionType: (window).Chargebee.getPortalSections().BILLING_HISTORY\r\n }); \r\n }\r\n\r\n async openBillingPortal(section: RowShare.PortalSections | null){\r\n if (!this.isNotOnPrem)\r\n return;\r\n \r\n let component = this;\r\n let currentSubscription = await API.Organization.getCurrentSubscriptionId(this.organizationId);\r\n if(currentSubscription){\r\n var callbacks = {\r\n close: function () {\r\n component.updateOrganization();\r\n }};\r\n var sectionInfo = {\r\n sectionType: section,\r\n params: {subscriptionId: currentSubscription.replaceAll('\"', '')}\r\n }\r\n this.cbPortal.open(callbacks, sectionInfo);\r\n }\r\n }\r\n\r\n onUpdateUserCountClick() {\r\n EventBus.$emit(RowShare.Event.UPDATE_SUBSCRIPTION_REQUEST, { organizationId: this.organizationId}); \r\n }\r\n\r\n get checkOutButtonLabel():string{\r\n if(this.organization.InTrial || this.organization.SubscriptionIsFree){\r\n return this.$t(\"ManageOrganization_UpgradeToPaidPlan\").toString();\r\n }\r\n else return this.$t(\"ManageOrganization_UpgradeDowngrade\").toString();\r\n }\r\n\r\n get checkoutLink(){\r\n const queryStringReturnUrl = RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\");\r\n\r\n return {\r\n name: \"SubscriptionCheckOut\",\r\n params: { organizationId: this.organizationId },\r\n query: {\r\n ReturnUrl: queryStringReturnUrl ? queryStringReturnUrl : this.$route.fullPath\r\n }\r\n };\r\n }\r\n\r\n get contactLink(){\r\n return {\r\n name: \"Contact\",\r\n query: {\r\n ReturnUrl: RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\"),\r\n }\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OrganizationInfos.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OrganizationInfos.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrganizationInfos.vue?vue&type=template&id=0896408e&scoped=true&\"\nimport script from \"./OrganizationInfos.vue?vue&type=script&lang=ts&\"\nexport * from \"./OrganizationInfos.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OrganizationInfos.vue?vue&type=style&index=0&id=0896408e&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 \"0896408e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-toolbar',{staticClass:\"general-toolbar\",attrs:{\"height\":\"70\"}},[_c('v-toolbar-items',[(_vm.hasReturnUrl)?_c('v-btn',{attrs:{\"depressed\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.returnToPrevious()}}},[_c('v-icon',{attrs:{\"dense\":\"\"}},[_vm._v(\"fa-arrow-left\")])],1):_vm._e()],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-toolbar-title',[_c('div',{staticClass:\"general-toolbar--title\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),(_vm.description)?_c('div',{staticClass:\"general-toolbar--description\"},[_vm._v(\"\\n \"+_vm._s(_vm.description)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('v-spacer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { ReturnUrlHandler } from '@/views/ReturnUrl';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({name: 'Toolbar'})\r\nexport default class Toolbar extends ReturnUrlHandler {\r\n @Prop() title!: string;\r\n @Prop() description!: string;\r\n\r\n get hasReturnUrl(): boolean {\r\n return !Utils.isNullOrWhiteSpace(this.returnUrl);\r\n }\r\n\r\n returnToPrevious() {\r\n this.redirectToReturnUrlOrDefault(this.returnUrl);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Toolbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Toolbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Toolbar.vue?vue&type=template&id=07bb9da0&\"\nimport script from \"./Toolbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./Toolbar.vue?vue&type=script&lang=ts&\"\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","\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport {Event} from '@/models/RowShare';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport { ReturnUrlHandler } from \"@/views/ReturnUrl\";\r\nimport SubscriptionConfigurator from \"@/views/ManageOrganization/SubscriptionConfigurator.vue\";\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport OrganizationInfos from '@/views/ManageOrganization/OrganizationInfos.vue';\r\nimport Toolbar from '@/views/layouts/LayoutParts/Toolbar.vue';\r\nimport { ResLoader } from '@/utils/ResLoader';\r\ndeclare var Calendly: any;\r\n\r\n@Component({\r\n name:'SubscriptionCheckOut',\r\n components:{ PageLoadSpinner, SubscriptionConfigurator, OrganizationInfos, Toolbar},\r\n})\r\nexport default class SubscriptionCheckOut extends ReturnUrlHandler {\r\n @Prop() private organizationId!: string | null;\r\n\r\n toolbarTitle: string = '';\r\n toolbarDescription: string = '';\r\n\r\n async created() {\r\n EventBus.$on(Event.LOCALE_CHANGED, async() => {\r\n this.onLocaleChanged();\r\n });\r\n await this.$loadScript('https://assets.calendly.com/assets/external/widget.js');\r\n ResLoader.loadCss('https://assets.calendly.com/assets/external/widget.css');\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([Event.LOCALE_CHANGED]);\r\n }\r\n\r\n mounted(){\r\n this.onLocaleChanged();\r\n }\r\n \r\n onLocaleChanged(){\r\n this.toolbarTitle = this.$i18n.t('CheckOut_Title').toString();\r\n this.toolbarDescription = this.$i18n.t('CheckOut_Description').toString(); \r\n }\r\n\r\n scheduleMeeting() {\r\n Calendly.initPopupWidget({ url: this.$i18n.t('CheckOut_ScheduleMeetingUrl').toString() });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SubscriptionCheckOut.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SubscriptionCheckOut.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscriptionCheckOut.vue?vue&type=template&id=d768b66a&scoped=true&\"\nimport script from \"./SubscriptionCheckOut.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscriptionCheckOut.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubscriptionCheckOut.vue?vue&type=style&index=0&id=d768b66a&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 \"d768b66a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('bandeau',{attrs:{\"title\":_vm.$t('Unsubscription_Title'),\"description\":_vm.$t('Unsubscription_Subtitle')}}),_vm._v(\" \"),_c('v-container',{staticClass:\"col-md-10 offsetmd-2\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"container-box\"},[(_vm.showMessage)?_c('h1',{staticClass:\"description-confirmation\"},[_vm._v(_vm._s(_vm.$t('Unsubscription_SuccessMessage')))]):_vm._e(),_vm._v(\" \"),(!_vm.showMessage)?_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({passes, invalid}){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('label',{attrs:{\"for\":_vm.$t('Form_Email')}},[_vm._v(_vm._s(_vm.$t('Unsubscription_Email')))]),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'input-1',\"inputTextName\":_vm.$t('Form_Email'),\"placeholder\":_vm.$t('Form_Email') + ' *',\"inputTextValidationRules\":{required: true, email:true},\"inputTextVid\":\"email\"},model:{value:(_vm.unsubscriptionEmail),callback:function ($$v) {_vm.unsubscriptionEmail=$$v},expression:\"unsubscriptionEmail\"}}),_vm._v(\" \"),_c('span',{staticClass:\"required-fields-text\",domProps:{\"innerHTML\":_vm._s(_vm.$t('Form_RequiredFields'))}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"submit-button\",attrs:{\"disabled\":invalid,\"type\":\"submit\",\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Unsubscription_Button'))+\"\\n \")])],1)]}}],null,false,2046669138)}):_vm._e()],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop} from 'vue-property-decorator';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\nimport { ValidationObserver } from 'vee-validate';\r\nimport Bandeau from '@/views/layouts/LayoutParts/Bandeau.vue';\r\n\r\nimport * as API from '@/api/Api';\r\nimport { UserUnsubscription } from '@/models/RowShare';\r\n\r\n@Component({\r\n name:'Unsubscription',\r\n components:{ValidationObserver, InputText, Bandeau },\r\n})\r\n\r\nexport default class Unsubscription extends FormValidation {\r\n\r\n @Prop() private userId!:string;\r\n private unsubscriptionEmail ='';\r\n private showMessage:boolean = false;\r\n\r\n $refs!: {\r\n observer: InstanceType;\r\n };\r\n\r\n onSubmit(){\r\n let unsubscriptionInfo = new UserUnsubscription();\r\n unsubscriptionInfo.userId=this.userId,\r\n unsubscriptionInfo.Email = this.unsubscriptionEmail;\r\n\r\n API.User.unsubscribeEmail(unsubscriptionInfo).then(res=>{\r\n this.showMessage = true;\r\n }).catch(er=> this.$refs.observer.setErrors({\r\n email : [this.$i18n.t(\"ExceptionCode_\" + er.code).toString()],\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Unsubscription.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Unsubscription.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Unsubscription.vue?vue&type=template&id=10589891&scoped=true&\"\nimport script from \"./Unsubscription.vue?vue&type=script&lang=ts&\"\nexport * from \"./Unsubscription.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Unsubscription.vue?vue&type=style&index=0&id=10589891&prod&scoped=true&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 \"10589891\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table-owner-selector',{attrs:{\"organizationId\":_vm.organizationId,\"listId\":_vm.listId}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue } from 'vue-property-decorator';\r\nimport * as API from \"@/api/Api\";\r\nimport * as Models from \"@/models/RowShare\";\r\nimport _ from 'lodash';\r\nimport TableOwnerSelector from \"@/views/Table/ShareTable/TableOwnerSelector.vue\";\r\n\r\n@Component({\r\n name:'TableOwners',\r\n components: { TableOwnerSelector }\r\n})\r\nexport default class TableOwners extends Vue{\r\n \r\n @Prop() organizationId!:string\r\n @Prop() listId!:string;\r\n\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TableOwners.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TableOwners.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TableOwners.vue?vue&type=template&id=3bb4e3fd&scoped=true&\"\nimport script from \"./TableOwners.vue?vue&type=script&lang=ts&\"\nexport * from \"./TableOwners.vue?vue&type=script&lang=ts&\"\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 \"3bb4e3fd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"id\":\"table-access-denied\"}},[_c('v-row',{attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-spacer'),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"5\",\"md\":\"5\"}},[_c('v-img',{staticClass:\"ml-auto\",attrs:{\"src\":require('@/assets/static/images/access_denied.svg'),\"contain\":\"\",\"aspect-ratio\":\"1\",\"max-width\":\"480\"}})],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(!_vm.hasRequestedAccess)?_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('TableAccessDenied_Title')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.description1))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('TableAccessDenied_Description2')))]),_vm._v(\" \"),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-btn',{staticClass:\"full-width-button\",attrs:{\"color\":\"primary\",\"to\":{name: 'Table', params:{listId: _vm.listId}}}},[_vm._v(_vm._s(_vm.$t('TableAccessDenied_Retry')))])],1)],1),_vm._v(\" \"),(!_vm.msTeams)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-btn',{staticClass:\"full-width-button\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.requestAccess}},[_vm._v(_vm._s(_vm.$t('TableAccessDenied_RequestAccess')))])],1)],1):_vm._e(),_vm._v(\" \"),(!_vm.msTeams)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-btn',{staticClass:\"full-width-button\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.changeAccount}},[_vm._v(_vm._s(_vm.$t('TableAccessDenied_ChangeAccount')))])],1)],1):_vm._e()],1):_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('TableAccessDenied_ConfirmAccessRequest_Title')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('TableAccessDenied_ConfirmAccessRequest_Description1')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('TableAccessDenied_ConfirmAccessRequest_Description2')))])]),_vm._v(\" \"),_c('v-spacer')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import { UserModule } from '@/store/UserStore'\r\n import { User } from '@/models/User';\r\n import { State, Action, Getter, namespace } from 'vuex-class';\r\n import * as API from '@/api/Api';\r\n import * as RowShare from '@/models/RowShare';\r\nimport { ApplicationModule } from '@/store/ApplicationStore';\r\n\r\n @Component({ name: \"TableAccessDenied\" })\r\n export default class TableAccessDenied extends Vue {\r\n @Prop() private listId!: string;\r\n private currentUserEmail : string|null = null;\r\n private hasRequestedAccess: boolean = false;\r\n\r\n async mounted(){\r\n this.hasRequestedAccess = false;\r\n this.currentUserEmail = UserModule.CurrentUser.Email;\r\n }\r\n\r\n get msTeams(): boolean {\r\n return ApplicationModule.isMsTeamsApp;\r\n }\r\n\r\n get retryUrl() : string{\r\n return \"/t/\" + this.listId;\r\n }\r\n\r\n get description1(){\r\n return this.$i18n.t('TableAccessDenied_Description1', {CurrentUserEmail: this.currentUserEmail}).toString();\r\n }\r\n\r\n async requestAccess(){\r\n var res = await API.List.requestAccess(this.listId);\r\n if(res)\r\n this.hasRequestedAccess = true;\r\n }\r\n\r\n async changeAccount(){\r\n let returnUrl: string | null = await UserModule.signOut();\r\n if (returnUrl) {\r\n window.location.href = '/login?ReturnUrl=%2Ft%2F' + this.listId;\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TableAccessDenied.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TableAccessDenied.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TableAccessDenied.vue?vue&type=template&id=4324154e&scoped=true&\"\nimport script from \"./TableAccessDenied.vue?vue&type=script&lang=ts&\"\nexport * from \"./TableAccessDenied.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TableAccessDenied.vue?vue&type=style&index=0&id=4324154e&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 \"4324154e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('bandeau'),_vm._v(\" \"),_c('v-container',{staticClass:\"col-md-6 offsetmd-6\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"container-box\"},[(_vm.isLoading)?_c('div',[_c('PageLoadSpinner')],1):(_vm.confirmationCodeSended)?_c('div',[_c('h2',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('ConfirmEmail_CodeSendedTitle')))]),_vm._v(\" \"),_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t('ConfirmEmail_CodeSendedDescription')))])]):(_vm.noToken)?_c('div',[_c('h2',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('ConfirmEmail_NoTokenTitle')))]),_vm._v(\" \"),_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t('ConfirmEmail_NoTokenDescription')))]),_vm._v(\" \"),(!_vm.showMessage)?_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({passes, invalid}){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('label',{attrs:{\"for\":_vm.$t('Form_Email')},domProps:{\"innerHTML\":_vm._s(_vm.$t('ConfirmEmail_Email'))}}),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'input-1',\"inputTextName\":_vm.$t('Form_Email'),\"placeholder\":_vm.$t('Form_Email'),\"inputTextValidationRules\":{required: true, email:true},\"inputTextVid\":\"email\"},model:{value:(_vm.sendToEmail),callback:function ($$v) {_vm.sendToEmail=$$v},expression:\"sendToEmail\"}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"mb-3 submit-button text-none\",attrs:{\"disabled\":invalid,\"type\":\"submit\",\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('ConfirmEmail_Button'))+\"\\n \")])],1)]}}],null,false,112886610)}):_vm._e(),_vm._v(\" \"),_c('p',{staticClass:\"paragraph-small\"},[_vm._v(_vm._s(_vm.$t('ConfirmEmail_AlreadyConfirmed'))+\" \"),_c('router-link',{attrs:{\"to\":{name: 'MyTables'}}},[_vm._v(_vm._s(_vm.$t('ConfirmEmail_BackToRowShare')))])],1)],1):(_vm.emailConfirmed)?_c('div',[_c('h2',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('ConfirmEmail_SuccessTitle')))]),_vm._v(\" \"),_c('p',{staticClass:\"description\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('ConfirmEmail_SuccessDescription'))}})])]):_c('div',[_c('h2',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.$t('ConfirmEmail_FailedTitle')))]),_vm._v(\" \"),_c('p',{staticClass:\"description\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('ConfirmEmail_FailedDescription'))}})])])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Component, Prop } from 'vue-property-decorator';\r\n import InputText from '@/views/components/FormInputs/InputText.vue';\r\n import { FormValidation } from '@/views/components/FormValidation';\r\n import { ValidationObserver } from 'vee-validate';\r\n import Bandeau from '@/views/layouts/LayoutParts/Bandeau.vue';\r\n import * as API from '@/api/Api';\r\n import PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n\r\n @Component({\r\n name: 'ConfirmEmail',\r\n components: {ValidationObserver, InputText, Bandeau, PageLoadSpinner}\r\n })\r\n export default class ConfirmEmail extends FormValidation {\r\n @Prop() private token!: string | null;\r\n\r\n private isLoading: boolean;\r\n private emailConfirmed: boolean;\r\n private titleBandeau: string;\r\n private descriptionBandeau: string;\r\n private sendToEmail: string;\r\n private confirmationCodeSended: boolean;\r\n constructor(){\r\n super();\r\n this.isLoading = true;\r\n this.emailConfirmed = false;\r\n this.titleBandeau = '';\r\n this.descriptionBandeau = '';\r\n this.sendToEmail = '';\r\n this.confirmationCodeSended = false;\r\n }\r\n\r\n get noToken(): boolean{\r\n return !this.token;\r\n }\r\n\r\n created(){\r\n this.isLoading = true;\r\n if(this.token){\r\n API.User.confirmEmail(this.token)\r\n .then(response => { if(response){\r\n this.emailConfirmed = response;\r\n }\r\n else{\r\n this.emailConfirmed = false;\r\n }\r\n this.isLoading = false });\r\n }\r\n else\r\n {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n onSubmit(){\r\n API.User.sendConfirmationCode(this.sendToEmail).then(response => {if(response){this.confirmationCodeSended = true}});\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ConfirmEmail.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ConfirmEmail.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConfirmEmail.vue?vue&type=template&id=130a04b4&scoped=true&\"\nimport script from \"./ConfirmEmail.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConfirmEmail.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConfirmEmail.vue?vue&type=style&index=0&id=130a04b4&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 \"130a04b4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"business-page-new outer-wrapper\"},[(_vm.listVM.list)?_c('list-toolbar',{staticClass:\"mb-1\",attrs:{\"showReturnToTable\":true,\"listVM\":_vm.listVM,\"hideMenu\":true}}):_vm._e(),_vm._v(\" \"),_c('section',{staticClass:\"main main--no-padding-top\"},[_c('v-container',[_c('v-row',[_c('v-col',[_c('ValidationObserver',{ref:\"observer\"},[_c('form',[_c('v-card',{staticClass:\"px-6 py-8 card-table-settings\",attrs:{\"elevation\":\"6\"}},[_c('v-row',{staticClass:\"mb-4\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',[_c('h1',[_vm._v(_vm._s(_vm.$t('TableSettings_Title')))])])],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_TableName')))]),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'tableName',\"inputTextName\":_vm.$t('Form_TableName'),\"inputTextValidationRules\":{required: true}},on:{\"blured\":_vm.updateTableSettings},model:{value:(_vm.listModel.DisplayName),callback:function ($$v) {_vm.$set(_vm.listModel, \"DisplayName\", $$v)},expression:\"listModel.DisplayName\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_TableDescription')))]),_vm._v(\" \"),_c('input-text-area',{attrs:{\"inputTextId\":'tableDescription',\"inputTextName\":_vm.$t('TableSettings_TableDescription')},on:{\"blured\":_vm.updateTableSettings},model:{value:(_vm.listModel.Description),callback:function ($$v) {_vm.$set(_vm.listModel, \"Description\", $$v)},expression:\"listModel.Description\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mt-0\"},[_vm._v(_vm._s(_vm.$t('TableSettings_ShowColumnTotals')))]),_vm._v(\" \"),_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.ShowTotals),callback:function ($$v) {_vm.$set(_vm.listModel, \"ShowTotals\", $$v)},expression:\"listModel.ShowTotals\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_RowsAutoHeight')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_RowsAutoHeight_Description')))]),_vm._v(\" \"),_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.RowsAutoHeight),callback:function ($$v) {_vm.$set(_vm.listModel, \"RowsAutoHeight\", $$v)},expression:\"listModel.RowsAutoHeight\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_RowOwnerInitials')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_RowOwnerInitials_Description')))]),_vm._v(\" \"),_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.ShowOwnerInformations),callback:function ($$v) {_vm.$set(_vm.listModel, \"ShowOwnerInformations\", $$v)},expression:\"listModel.ShowOwnerInformations\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_TileImage')))]),_vm._v(\" \"),_c('v-file-input',{staticClass:\"import-file-input\",attrs:{\"clearable\":false,\"hide-details\":\"\",\"single-line\":\"\",\"solo\":\"\",\"id\":\"image-import\",\"placeholder\":_vm.$t('TableSettings_TileImagePlaceholder'),\"accept\":\"image/*\"},on:{\"change\":_vm.onFileChanged},model:{value:(_vm.iconImage),callback:function ($$v) {_vm.iconImage=$$v},expression:\"iconImage\"}})],1),_vm._v(\" \"),(_vm.listModel.IconPath!=null)?_c('v-item-group',{staticClass:\"ml-2 mt-6 mb-4 ml-8 display-image-group\"},[(_vm.listModel.IconPath!=null)?_c('img',{staticClass:\"tile-image\",attrs:{\"src\":_vm.getIcon()}}):_vm._e(),_vm._v(\" \"),_c('v-icon',{staticClass:\"align-start icon-height mx-1\",on:{\"click\":_vm.openModalToDeleteIcon}},[_vm._v(\"fa-times\")])],1):_vm._e(),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_Culture')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_Culture_Description')))]),_vm._v(\" \"),_c('v-autocomplete',{attrs:{\"items\":_vm.listOfCultures,\"item-text\":\"DisplayName\",\"item-value\":\"Lcid\",\"outlined\":\"\",\"standard\":\"\",\"dense\":\"\",\"menu-props\":_vm.defaultProps},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.Lcid),callback:function ($$v) {_vm.$set(_vm.listModel, \"Lcid\", $$v)},expression:\"listModel.Lcid\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_MainColumn')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_MainColumn_Description')))]),_vm._v(\" \"),_c('v-select',{attrs:{\"items\":_vm.columns,\"item-text\":\"DisplayName\",\"item-value\":\"Id\",\"selectValidationRules\":{required: true},\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.RowDescriptorId),callback:function ($$v) {_vm.$set(_vm.listModel, \"RowDescriptorId\", $$v)},expression:\"listModel.RowDescriptorId\"}})],1),_vm._v(\" \"),(_vm.listModel.CanCurrentUserEnableAudit)?_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_EnableAudit')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_EnableAudit_Description')))]),_vm._v(\" \"),_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.CanCurrentUserExportAudit),callback:function ($$v) {_vm.$set(_vm.listModel, \"CanCurrentUserExportAudit\", $$v)},expression:\"listModel.CanCurrentUserExportAudit\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_ExternalType')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_ExternalType_Description')))]),_vm._v(\" \"),_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.AllowPublic),callback:function ($$v) {_vm.$set(_vm.listModel, \"AllowPublic\", $$v)},expression:\"listModel.AllowPublic\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_OneRowMaxPerUser')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('TableSettings_OneRowMaxPerUser_Description')))]),_vm._v(\" \"),_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.OneRowMaximumPerUser),callback:function ($$v) {_vm.$set(_vm.listModel, \"OneRowMaximumPerUser\", $$v)},expression:\"listModel.OneRowMaximumPerUser\"}})],1),_vm._v(\" \"),(_vm.canEditCatalogCategory)?_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mt-0\"},[_vm._v(_vm._s(_vm.$t('TableSettings_CatalogCategory')))]),_vm._v(\" \"),_c('v-autocomplete',{attrs:{\"items\":_vm.categories,\"item-text\":\"DisplayName\",\"item-value\":\"Id\",\"outlined\":\"\",\"dense\":\"\",\"menu-props\":_vm.defaultProps,\"clearable\":\"\"},on:{\"change\":_vm.updateTableSettings},model:{value:(_vm.listModel.CategoryId),callback:function ($$v) {_vm.$set(_vm.listModel, \"CategoryId\", $$v)},expression:\"listModel.CategoryId\"}})],1):_vm._e()],1)],1)])],1)],1)],1)],1),_vm._v(\" \"),_c('confirmation-dialog',{attrs:{\"dialogState\":_vm.deleteIconModal,\"title\":_vm.$t('TableSettings_DeleteIconModal_Title'),\"description\":_vm.$t('TableSettings_DeleteIcon_Description'),\"actionButtonText\":_vm.$t('TableSettings_DeleteIcon_SubmitButton'),\"cancelButtonText\":_vm.$t('TableSettings_DeleteIcon_CancelButton'),\"actionButtonIcon\":\"trash-alt\"},on:{\"submit\":_vm.deleteImage,\"cancel\":_vm.cancelled}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport * as API from '@/api/Api';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport InputTextArea from '@/views/components/FormInputs/InputTextArea.vue';\r\nimport { List, Column, Event, Culture, CatalogCategory, User, NotificationType, GlobalNotificationEventParams } from '@/models/RowShare';\r\nimport { ValidationProvider, ValidationObserver } from 'vee-validate';\r\nimport ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\nimport ListToolbar from '@/views/Table/ListActions/ListToolbar.vue';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\n\r\n@Component({\r\n name: \"TableSettings\",\r\n components: { InputText, InputTextArea, ValidationObserver, ValidationProvider, ConfirmationDialog, ListToolbar }\r\n})\r\nexport default class TableSettings extends FormValidation {\r\n\r\n @Prop() private listId!:string;\r\n private listModel: List = new List();\r\n private columns: Column [] = [];\r\n private iconImage: File | null = null;\r\n private listOfCultures: Culture[] = [];\r\n private defaultProps = { maxHeight: 200 }\r\n private deleteIconModal = false;\r\n // This variable is used to compare with actual values to call or not the API. If this is not done, toaster is shown every time the \"onblur\" event is thrown,\r\n // even if the field hasn't changed.\r\n private olderList!: List;\r\n private listVM: ListVM = new ListVM();\r\n private categories: CatalogCategory[] = [];\r\n\r\n $refs!: {\r\n observer: InstanceType;\r\n };\r\n\r\n get currentUser() {\r\n return UserModule.CurrentUser || new User();\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get canEditCatalogCategory(): boolean {\r\n return this.isNotOnPrem && this.currentUser.IsAdministrator;\r\n }\r\n\r\n created(){\r\n this.loadList(false);\r\n EventBus.$on(Event.LISTNAME_CHANGED, () => this.loadList(false));\r\n }\r\n\r\n destroy() {\r\n EventBus.$off(Event.LISTNAME_CHANGED, () => this.loadList(false));\r\n }\r\n\r\n loadList(useCache: boolean = true) {\r\n API.List.load(this.listId,{cache: useCache}).then(listResul => {\r\n if(listResul){\r\n this.listModel = listResul;\r\n this.listVM.list = this.listModel;\r\n\r\n this.olderList = Object.assign({}, listResul);\r\n if(this.listModel){\r\n API.Column.loadForList(this.listId).then(listColumns=>{\r\n if(listColumns){\r\n // Option by default is added and after that all the table columns\r\n let firstColumn = new Column();\r\n firstColumn.Id = \"00000000000000000000000000000000\";\r\n firstColumn.DisplayName = this.$t(\"TableSettings_MainColumn_Option\").toString();\r\n this.columns = listColumns.filter(c => !c.HasHiddenPermissions);\r\n this.columns.unshift(firstColumn);\r\n }\r\n });\r\n API.Culture.loadCultures().then((listOfCultures:any)=>{\r\n this.listOfCultures = listOfCultures;\r\n });\r\n API.Category.loadAll()\r\n .then((categories) => {\r\n if(categories) {\r\n this.categories = categories;\r\n }\r\n });\r\n \r\n }\r\n } \r\n });\r\n }\r\n\r\n async updateTableSettings(){\r\n if(JSON.stringify(this.listModel) != JSON.stringify(this.olderList)){\r\n let isValid = await this.$refs.observer.validate();\r\n if(isValid){\r\n try{\r\n let result = await API.List.save(this.listModel);\r\n if(result){\r\n this.olderList = Object.assign({}, result);\r\n this.listModel = result;\r\n this.deleteIconModal = false;\r\n EventBus.$emit(Event.LISTINFO_CHANGED);\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('TableSettings_SuccessMessage'), \r\n type: NotificationType.success, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 4000});\r\n }\r\n }\r\n catch(Error) { \r\n this.listModel = Object.assign({}, this.olderList); \r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('TableSettings_ErrorMessage'), \r\n type: NotificationType.error, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 10000});\r\n }\r\n }\r\n }\r\n }\r\n\r\n getIcon(){\r\n if (this.listModel && this.listModel.IconPath)\r\n return '/' + this.listModel.IconPath + \"?_ssb_img=S\"+ Math.random();\r\n }\r\n\r\n async onFileChanged(){\r\n if(this.iconImage && this.iconImage.size>0) {\r\n if(!this.iconImage?.type.startsWith('image/')) {\r\n this.listModel = Object.assign({}, this.olderList);\r\n this.iconImage = null;\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('Common_InvalidFileType'), \r\n type: NotificationType.error, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 5000});\r\n }\r\n else {\r\n try{\r\n let result = await API.List.saveWithFile(this.listModel, this.iconImage, \"/icon\");\r\n if(result){\r\n this.olderList = Object.assign({}, result);\r\n this.listModel = result;\r\n this.iconImage = null;\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('TableSettings_SuccessMessage'), \r\n type: NotificationType.success, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 4000});\r\n }\r\n }\r\n catch(Error){\r\n this.listModel = Object.assign({}, this.olderList); \r\n this.iconImage = null;\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('TableSettings_ErrorMessage'), \r\n type: NotificationType.error, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 10000});\r\n }\r\n }\r\n }\r\n }\r\n\r\n deleteImage(){\r\n if(this.listModel){\r\n this.listModel.IconPath = null;\r\n this.listModel.Icon_Remove = true;\r\n } \r\n this.updateTableSettings();\r\n }\r\n\r\n openModalToDeleteIcon(){\r\n this.deleteIconModal = true;\r\n }\r\n\r\n cancelled(){\r\n this.deleteIconModal = false;\r\n }\r\n\r\n getLocaleText(key: string) {\r\n if(this.existsLocalization(key)) {\r\n return this.$i18n.t(key).toString();\r\n }\r\n return '';\r\n }\r\n\r\n existsLocalization(key: string) {\r\n return this.$i18n.te(key);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TableSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TableSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TableSettings.vue?vue&type=template&id=f38b1148&scoped=true&\"\nimport script from \"./TableSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./TableSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TableSettings.vue?vue&type=style&index=0&id=f38b1148&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 \"f38b1148\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('bandeau'),_vm._v(\" \"),_c('v-container',{staticClass:\"col-md-6 offsetmd-6\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"pa-3 mt-n12 mb-12 container-box\"},[(!_vm.resetPasswordRequestSuccess)?_c('div',[_c('h2',{staticClass:\"title mb-4 font-weight-medium primary--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPasswordRequest_Title\"))+\"\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"description\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPasswordRequest_Description\"))+\"\\n \")]),_vm._v(\" \"),_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes, invalid }){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('input-text',{attrs:{\"inputTextId\":'input-1',\"inputTextName\":_vm.$t('Form_Email'),\"placeholder\":_vm.$t('Form_Email'),\"inputTextValidationRules\":{ required: true, email: true },\"inputTextVid\":\"email\"},model:{value:(_vm.resetPasswordRequest.Email),callback:function ($$v) {_vm.$set(_vm.resetPasswordRequest, \"Email\", $$v)},expression:\"resetPasswordRequest.Email\"}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"mb-3 submit-button text-none\",attrs:{\"disabled\":invalid || _vm.working,\"loading\":_vm.working,\"type\":\"submit\",\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPasswordRequest_Button\"))+\"\\n \")])],1)]}}],null,false,3944498081)})],1):_c('div',[_c('h2',{staticClass:\"title mb-4 font-weight-medium primary--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPasswordRequest_Success_Title\"))+\"\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"description\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPasswordRequest_Success_Description\"))+\"\\n \")])])]),_vm._v(\" \"),(_vm.mustShowRecaptcha)?_c('recaptcha'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component } from 'vue-property-decorator';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\nimport { ValidationObserver } from 'vee-validate';\r\nimport Bandeau from '@/views/layouts/LayoutParts/Bandeau.vue';\r\nimport * as API from '@/api/Api';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport { RowShareException } from '@/api/ApiUtils';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { RecaptchaActions } from '@/views/components/Recaptcha.vue';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport Recaptcha from '@/views/components/Recaptcha.vue';\r\nimport { EventBus } from '@/modules/EventBus';\r\n\r\n@Component({\r\n name: 'ResetPasswordRequest',\r\n components: { ValidationObserver, InputText, Bandeau, PageLoadSpinner, Recaptcha },\r\n})\r\nexport default class ResetPasswordRequest extends FormValidation {\r\n private resetPasswordRequest:RowShare.ResetPasswordRequest = new RowShare.ResetPasswordRequest();\r\n private resetPasswordRequestSuccess: boolean = false;\r\n private working : boolean = false;\r\n\r\n $refs!: {\r\n observer: InstanceType;\r\n };\r\n\r\n created(){\r\n EventBus.$on(RowShare.Event.RECAPTCHA_SUCCEEDED,this.onRecaptchaSucceeded);\r\n EventBus.$on([RowShare.Event.RECAPTCHA_FAILED,RowShare.Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n }\r\n\r\n destroyed() {\r\n EventBus.$off(RowShare.Event.RECAPTCHA_SUCCEEDED,this.onRecaptchaSucceeded);\r\n EventBus.$off([RowShare.Event.RECAPTCHA_FAILED,RowShare.Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n }\r\n\r\n onSubmit() {\r\n this.working = true;\r\n //Recaptcha in development doesn't work, so the environment variable is evaluated\r\n if (this.mustShowRecaptcha) {\r\n this.triggerRecaptcha();\r\n } \r\n else {\r\n this.doValidate();\r\n }\r\n }\r\n\r\n private doValidate()\r\n {\r\n //on ne valide que le format\r\n //on ne dit pas si ça a marché ou pas pour ne pas donner d'indication sur l'existence du user\r\n if (Utils.validateEmail(this.resetPasswordRequest.Email)) {\r\n var request = new ResetPasswordRequest();\r\n API.User.resetPasswordRequest(this.resetPasswordRequest)\r\n .then((res) => {\r\n //no indication of what is the issue\r\n this.resetPasswordRequestSuccess = true;\r\n })\r\n .catch(exc => {\r\n let rsExc = exc as RowShareException;\r\n let exceptionMsg = \"\";\r\n if(rsExc) {\r\n if (rsExc.code == 96 && this.mustShowRecaptcha) {\r\n // Recaptcha token not valid\r\n this.retryFallbackRecaptcha();\r\n return;\r\n }\r\n exceptionMsg = rsExc.message;\r\n }\r\n else {\r\n exceptionMsg = exc.toString();\r\n }\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, { message: exceptionMsg,\r\n type: RowShare.NotificationType.error,autoHide: true, autoHideAfterMs: 10000});\r\n \r\n })\r\n .finally(() => {\r\n this.working = false;\r\n });\r\n }\r\n }\r\n\r\n triggerRecaptcha() {\r\n this.resetPasswordRequest.RecaptchaToken = \"\";\r\n EventBus.$emit(RowShare.Event.RECAPTCHA_SHOW, RecaptchaActions.ResetPasswordRequest);\r\n }\r\n\r\n onRecaptchaSucceeded(successEvent: any){ \r\n this.resetPasswordRequest.RecaptchaToken = successEvent.token;\r\n this.resetPasswordRequest.RecaptchaTokenIsV3 = successEvent.isV3;\r\n this.doValidate();\r\n }\r\n\r\n retryFallbackRecaptcha(){\r\n this.resetPasswordRequest.RecaptchaToken = \"\";\r\n EventBus.$emit(RowShare.Event.RECAPTCHA_SHOWV2);\r\n }\r\n\r\n onRecaptchaFailedOrCanceled(reason: string = \"\"){\r\n this.resetPasswordRequest.RecaptchaToken = \"\"; \r\n this.resetPasswordRequest.RecaptchaTokenIsV3 = true; \r\n this.working = false;\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: RowShare.NotificationType.error,\r\n message: (this.$i18n.t('Recaptcha_Invalid').toString()) + reason\r\n });\r\n }\r\n\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get mustShowRecaptcha(){\r\n return this.isNotOnPrem && process.env.NODE_ENV!=\"development\";\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ResetPasswordRequest.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ResetPasswordRequest.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPasswordRequest.vue?vue&type=template&id=91d3bafc&scoped=true&\"\nimport script from \"./ResetPasswordRequest.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPasswordRequest.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ResetPasswordRequest.vue?vue&type=style&index=0&id=91d3bafc&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 \"91d3bafc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('bandeau'),_vm._v(\" \"),_c('v-container',{staticClass:\"col-md-6 offsetmd-6\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"pa-3 mt-n12 mb-12 container-box\"},[(!_vm.resetPasswordSuccess && !_vm.resetPasswordError && !_vm.tokenError)?_c('div',[_c('h2',{staticClass:\"title mb-4 font-weight-medium primary--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPasswordRequest_Title\"))+\"\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"description\"},[_vm._v(_vm._s(_vm.$t(\"ResetPassword_Description\")))]),_vm._v(\" \"),_c('validation-observer',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes, invalid }){return [_c('form',{on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();return passes(_vm.onSubmit)}}},[_c('input-password',{attrs:{\"inputPasswordId\":'input-1',\"inputPasswordName\":_vm.$t('Form_Password'),\"placeholder\":_vm.$t('Form_Password') + ' *',\"inputPasswordValidationRules\":{\n required: true,\n min: 8,\n max: 64, //in addition to passwordrule \n regex: _vm.passwordRule \n },\"showTooltip\":_vm.isNotOnPrem,\"tooltipText\":_vm.$t('Common_PasswordRules')},model:{value:(_vm.resetPasswordModel.Password),callback:function ($$v) {_vm.$set(_vm.resetPasswordModel, \"Password\", $$v)},expression:\"resetPasswordModel.Password\"}}),_vm._v(\" \"),_c('input-password',{attrs:{\"inputPasswordId\":'input-2',\"inputTextPasswordVid\":\"confirmPassword\",\"inputPasswordName\":_vm.$t('Form_ConfirmPassword'),\"placeholder\":_vm.$t('Form_ConfirmPassword') + ' *',\"inputPasswordValidationRules\":{\n required: true,\n min: 8,\n max: 64, //in addition to regex rule\n confirmed: _vm.$t('Form_Password'),\n regex: _vm.passwordRule \n }},model:{value:(_vm.resetPasswordModel.ConfirmPassword),callback:function ($$v) {_vm.$set(_vm.resetPasswordModel, \"ConfirmPassword\", $$v)},expression:\"resetPasswordModel.ConfirmPassword\"}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"mb-3 submit-button text-none\",attrs:{\"disabled\":invalid,\"type\":\"submit\",\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPasswordRequest_Button\"))+\"\\n \")])],1)]}}],null,false,985884102)})],1):(_vm.resetPasswordSuccess && !_vm.resetPasswordError && !_vm.tokenError)?_c('div',[_c('h2',{staticClass:\"title mb-4 font-weight-medium primary--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPassword_Success_Title\"))+\"\\n \")]),_vm._v(\" \"),_c('p',[_c('span',[_vm._v(_vm._s(_vm.$t(\"ResetPassword_Success_FirstDescription\")))]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":_vm.getLoginUrl()}},[_vm._v(_vm._s(_vm.$t(\"ResetPassword_Success_DescriptionLinkText\")))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t(\"ResetPassword_Success_SecondDescription\")))])],1)]):(!_vm.resetPasswordSuccess && _vm.resetPasswordError && !_vm.tokenError)?_c('div',[_c('h2',{staticClass:\"title mb-4 font-weight-medium primary--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPassword_Error_Title\"))+\"\\n \")]),_vm._v(\" \"),_c('p',[_c('span',[_vm._v(_vm._s(_vm.$t(\"ResetPassword_Error_Description\")))]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":_vm.getResetPasswordUrl()}},[_vm._v(_vm._s(_vm.$t(\"ResetPassword_Error_LinkText\")))])],1)]):_c('div',[_c('h2',{staticClass:\"title mb-4 font-weight-medium primary--text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ResetPassword_Error_Title\"))+\"\\n \")]),_vm._v(\" \"),_c('p',[_c('span',[_vm._v(_vm._s(_vm.$t(\"ResetPassword_TokenError_Description\")))]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":_vm.getResetPasswordUrl()}},[_vm._v(_vm._s(_vm.$t(\"ResetPassword_Error_LinkText\")))])],1)])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport Bandeau from \"@/views/layouts/LayoutParts/Bandeau.vue\";\r\nimport * as API from \"@/api/Api\";\r\nimport * as Models from \"@/models/RowShare\";\r\nimport PageLoadSpinner from \"@/views/layouts/LayoutParts/PageLoadSpinner.vue\";\r\nimport InputPassword from \"@/views/components/FormInputs/InputPassword.vue\";\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport { RouterUtils } from \"@/modules/Router\";\r\nimport { ApplicationModule } from \"@/store/ApplicationStore\";\r\nimport { OnPremModule } from \"@/store/OnPremStore\";\r\n\r\n@Component({\r\n name: \"ResetPassword\",\r\n components: { ValidationObserver, Bandeau, PageLoadSpinner, InputPassword },\r\n})\r\nexport default class ResetPassword extends FormValidation {\r\n @Prop() token!: string;\r\n private resetPasswordModel!: Models.ResetPassword;\r\n private resetPasswordSuccess: boolean = false;\r\n private resetPasswordError: boolean = false;\r\n private tokenError: boolean = false;\r\n\r\n created() {\r\n this.resetPasswordModel = new Models.ResetPassword();\r\n this.resetPasswordModel.Password = \"\";\r\n this.resetPasswordModel.ConfirmPassword = \"\";\r\n this.resetPasswordModel.Token = this.token;\r\n API.User.validateToken(this.token).then((res) => {\r\n if (!res) {\r\n this.tokenError = true;\r\n }\r\n });\r\n }\r\n\r\n onSubmit() {\r\n API.User.resetPassword(this.resetPasswordModel).then((res) => {\r\n if (res) {\r\n this.resetPasswordSuccess = true;\r\n } else {\r\n this.resetPasswordError = true;\r\n }\r\n });\r\n }\r\n\r\n //TODO replace getXX() by get XX()\r\n\r\n getLoginUrl() {\r\n return {\r\n name: \"Login\",\r\n query: {\r\n ReturnUrl: RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\"),\r\n },\r\n };\r\n }\r\n\r\n getResetPasswordUrl() {\r\n return {\r\n name: \"ResetPasswordRequest\",\r\n query: {\r\n ReturnUrl: RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\"),\r\n },\r\n };\r\n }\r\n get isNotOnPrem() {\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get passwordRule() {\r\n return ApplicationModule.passwordRegex;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=b4a41ba6&scoped=true&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ResetPassword.vue?vue&type=style&index=0&id=b4a41ba6&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 \"b4a41ba6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('bandeau',{attrs:{\"title\":_vm.$t('ManageOrganization_Title')}}),_vm._v(\" \"),_c('section',{staticClass:\"main main--no-padding-top\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-tabs',{staticClass:\"card-manage-org mt-n13\",attrs:{\"id\":\"tab-background\",\"background-color\":\"transparent\",\"color\":\"primary lighten-2\",\"height\":\"40\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider',{attrs:{\"color\":\"transparent\"}}),_vm._v(\" \"),(_vm.arrayTab[0].show)?_c('v-tab',{key:_vm.arrayTab[0].tabName},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Tab_Settings')))]):_vm._e(),_vm._v(\" \"),(_vm.arrayTab[1].show)?_c('v-tab',{key:_vm.arrayTab[1].tabName},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Tab_Members')))]):_vm._e(),_vm._v(\" \"),(_vm.arrayTab[2].show)?_c('v-tab',{key:_vm.arrayTab[2].tabName},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Tab_Groups')))]):_vm._e(),_vm._v(\" \"),(_vm.arrayTab[3].show)?_c('v-tab',{key:_vm.arrayTab[3].tabName},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Tab_PermissionAudit')))]):_vm._e()],1),_vm._v(\" \"),_c('v-card',{staticClass:\"px-3 py-3 card-manage-org\",attrs:{\"elevation\":\"6\"}},[_c('v-btn',{staticClass:\"mb-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.redirectToReturnUrlOrDefault('/MyTables')}}},[_c('v-icon',{attrs:{\"dense\":\"\"}},[_vm._v(\"fa-arrow-left\")])],1),_vm._v(\" \"),_c('v-tabs-items',{attrs:{\"touchless\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[(_vm.arrayTab[0].show)?_c('v-tab-item',{key:_vm.arrayTab[0].tabName},[_c('v-row',{staticClass:\"ma-1\"},[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"3\"}},[_c('organization-infos',{attrs:{\"organizationId\":_vm.organizationId,\"isManageOrganization\":true}})],1),_vm._v(\" \"),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"9\"}},[_c('organizationSettings',{attrs:{\"organizationId\":_vm.organizationId}})],1)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.arrayTab[1].show)?_c('v-tab-item',{key:_vm.arrayTab[1].tabName},[_c('Members',{attrs:{\"organizationId\":_vm.organizationId}})],1):_vm._e(),_vm._v(\" \"),(_vm.arrayTab[2].show)?_c('v-tab-item',{key:_vm.arrayTab[2].tabName},[_c('Groups',{attrs:{\"organizationId\":_vm.organizationId}})],1):_vm._e(),_vm._v(\" \"),(_vm.arrayTab[3].show)?_c('v-tab-item',{key:_vm.arrayTab[3].tabName},[(_vm.organization.SubscriptionHasPermissionsAudit)?_c('ListAccessAudit',{attrs:{\"organizationId\":_vm.organizationId}}):_vm._e(),_vm._v(\" \"),(!_vm.organization.SubscriptionHasPermissionsAudit)?_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"justify\":\"center\",\"align\":\"center\",\"cols\":\"8\"}},[_c('h4',[_vm._v(_vm._s(_vm.$t('ManageOrganization_SubscriptionHasPermissionsAuditTitle')))]),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('ManageOrganization_SubscriptionHasPermissionsAuditDescription'))}}),_vm._v(\" \"),_c('img',{staticClass:\"ma-4\",attrs:{\"height\":\"372\",\"src\":require(\"@/assets/static/images/img_permission_audit.png\")}})])],1):_vm._e()],1):_vm._e()],1)],1)],1)],1),_vm._v(\" \"),_c('subscription-update-dialog')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('p',{staticClass:\"text-h5 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Settings_Title')))]),_vm._v(\" \"),_c('ValidationObserver',{ref:\"observer\"},[_c('form',[_c('v-item-group',[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_TeamName')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_TeamName_Description')))]),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'organizationName',\"inputTextName\":_vm.$t('ManageOrganization_TeamName'),\"inputTextValidationRules\":{required: true}},on:{\"blured\":_vm.updateOrganizationSettings},model:{value:(_vm.organization.Name),callback:function ($$v) {_vm.$set(_vm.organization, \"Name\", $$v)},expression:\"organization.Name\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-4\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Logo')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Logo_Description')))]),_vm._v(\" \"),_c('v-file-input',{attrs:{\"clearable\":false,\"hide-details\":\"\",\"single-line\":\"\",\"solo\":\"\",\"id\":\"image-import\",\"accept\":\"image/*\"},on:{\"change\":_vm.onFileChanged},model:{value:(_vm.iconImage),callback:function ($$v) {_vm.iconImage=$$v},expression:\"iconImage\"}})],1),_vm._v(\" \"),(_vm.organization.IconPath!=null)?_c('v-item-group',{staticClass:\"ml-2 mt-6 mb-4 ml-8 display-image-group\"},[(_vm.organization.IconPath!=null)?_c('img',{staticClass:\"tile-image\",attrs:{\"src\":_vm.getIcon()}}):_vm._e(),_vm._v(\" \"),(_vm.organization.IconPath!=null)?_c('v-icon',{staticClass:\"align-start icon-height\",on:{\"click\":_vm.openModalToDeleteLogo}},[_vm._v(\"fa-times\")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('v-item-group',[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_ExternalAccess')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_ExternalAccess_Description')))]),_vm._v(\" \"),_c('v-select',{attrs:{\"items\":_vm.selectOptions,\"selectValidationRules\":{required: true},\"outlined\":\"\",\"dense\":\"\",\"menu-props\":{offsetY: true}},on:{\"change\":_vm.updateOrganizationSettings},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_' + data.item.text))+\"\\n \")]}},{key:\"selection\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_' + data.item.text))+\"\\n \")]}}]),model:{value:(_vm.organization.AllowPublic),callback:function ($$v) {_vm.$set(_vm.organization, \"AllowPublic\", $$v)},expression:\"organization.AllowPublic\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"mb-2\"},[_c('p',{staticClass:\"title mb-1\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_HierarchicalPermissions')))]),_vm._v(\" \"),_c('p',{staticClass:\"font-italic body-2 mb-1\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_HierarchicalPermissions_Description')))]),_vm._v(\" \"),_c('v-select',{attrs:{\"items\":_vm.selectOptions,\"selectValidationRules\":{required: true},\"outlined\":\"\",\"dense\":\"\",\"menu-props\":{offsetY: true}},on:{\"change\":_vm.updateOrganizationSettings},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_' + data.item.text))+\"\\n \")]}},{key:\"selection\",fn:function(data){return [_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_' + data.item.text))+\"\\n \")]}}]),model:{value:(_vm.organization.ManagerEquivalence),callback:function ($$v) {_vm.$set(_vm.organization, \"ManagerEquivalence\", $$v)},expression:\"organization.ManagerEquivalence\"}})],1)],1)]),_vm._v(\" \"),_c('confirmation-dialog',{attrs:{\"dialogState\":_vm.deleteLogoModal,\"title\":_vm.$t('TableSettings_DeleteIconModal_Title'),\"description\":_vm.$t('ManageOrganization_DeleteLogo_Description'),\"actionButtonText\":_vm.$t('TableSettings_DeleteIcon_SubmitButton'),\"cancelButtonText\":_vm.$t('TableSettings_DeleteIcon_CancelButton'),\"actionButtonIcon\":\"trash-alt\"},on:{\"submit\":_vm.deleteLogo,\"cancel\":_vm.cancelled}}),_vm._v(\" \"),_c('toaster',{attrs:{\"showToaster\":_vm.displayToaster,\"toasterColor\":_vm.toasterColorValue,\"toasterText\":_vm.toasterTextValue},on:{\"closeToasterEvent\":_vm.closeToaster}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Component, Prop } from 'vue-property-decorator';\r\n import { FormValidation } from '@/views/components/FormValidation';\r\n import { ValidationProvider, ValidationObserver, validate} from 'vee-validate';\r\n import * as API from '@/api/Api';\r\n import * as Models from '@/models/RowShare';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import InputText from '@/views/components/FormInputs/InputText.vue';\r\n import InputTextArea from '@/views/components/FormInputs/InputTextArea.vue';\r\n import Toaster from '@/views/layouts/LayoutParts/Toaster.vue';\r\n import ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\n import { EventBus } from \"@/modules/EventBus\";\r\n import * as RowShare from \"@/models/RowShare\";\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n \r\n @Component({\r\n name: 'OrganizationSettings',\r\n components: {ValidationObserver, InputText, InputTextArea, Toaster, ConfirmationDialog}\r\n })\r\n export default class OrganizationSettings extends FormValidation {\r\n\r\n @Prop() organizationId!:string;\r\n private organization!:Models.Organization;\r\n private oldOrganization!:Models.Organization;\r\n private iconImage!:File | null;\r\n private selectOptions = [{text:'Yes', value:0}, {text:'No', value:1}];\r\n private toasterTextValue:string='';\r\n private toasterColorValue:string='';\r\n private displayToaster:boolean = false;\r\n private deleteLogoModal:boolean=false;\r\n\r\n $refs!: {\r\n observer: InstanceType;\r\n };\r\n\r\n constructor(){\r\n super();\r\n this.organization = new Models.Organization();\r\n this.iconImage = null;\r\n }\r\n\r\n mounted(){\r\n API.Organization.load(this.organizationId).then(res=>{\r\n if(res){\r\n this.organization = res;\r\n this.oldOrganization = Object.assign({}, res);\r\n }\r\n })\r\n }\r\n\r\n async updateOrganizationSettings(){\r\n if(JSON.stringify(this.organization) != JSON.stringify(this.oldOrganization)){\r\n let isValid = await this.$refs.observer.validate();\r\n if(isValid){\r\n try{\r\n API.Organization.save(this.organization).then(res=>{\r\n if(res){\r\n EventBus.$emit(RowShare.Event.ORGANIZATION_CHANGED);\r\n this.oldOrganization = Object.assign({}, res);\r\n this.organization = res;\r\n this.toasterTextValue = this.$t(\"ManageOrganization_SuccessMessage\").toString();\r\n this.toasterColorValue = \"success\"\r\n this.displayToaster = true;\r\n ListTreeModule.refreshOrganizationListTree(res.Id);\r\n }\r\n })\r\n }\r\n catch(Error){\r\n this.toasterTextValue = this.$t(\"ManageOrganization_ErrorMessage\").toString();\r\n this.toasterColorValue=\"error\"\r\n this.displayToaster = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async onFileChanged(){\r\n if(this.iconImage && this.iconImage.size>0){\r\n if(!this.iconImage?.type.startsWith('image/')) {\r\n this.organization = Object.assign({}, this.oldOrganization); \r\n this.iconImage = null;\r\n this.toasterTextValue = this.$t('Common_InvalidFileType').toString();\r\n this.toasterColorValue = \"error\";\r\n this.displayToaster = true;\r\n }\r\n else {\r\n try{\r\n let result = await API.Organization.saveWithFile(this.organization, this.iconImage);\r\n if(result){\r\n this.oldOrganization = Object.assign({}, result);\r\n this.organization = result;\r\n this.iconImage = null;\r\n this.toasterTextValue = this.$t(\"ManageOrganization_SuccessMessage\").toString();\r\n this.toasterColorValue=\"success\"\r\n this.displayToaster = true;\r\n EventBus.$emit(RowShare.Event.ORGANIZATION_CHANGED);\r\n ListTreeModule.refreshOrganizationListTree(result.Id);\r\n }\r\n }\r\n catch(Error){\r\n this.organization = Object.assign({}, this.oldOrganization); \r\n this.toasterTextValue = this.$t(\"ManageOrganization_ErrorMessage\").toString();\r\n this.toasterColorValue = \"error\";\r\n this.displayToaster = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n getIcon(){\r\n if (this.organization && this.organization.IconPath)\r\n return '/' + this.organization.IconPath + \"?_ssb_img=S\"+ Math.random();\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n openModalToDeleteLogo(){\r\n this.deleteLogoModal = true;\r\n }\r\n\r\n closeToaster(){\r\n this.displayToaster = false;\r\n }\r\n\r\n async deleteLogo(){\r\n this.organization.IconPath = null;\r\n this.organization.Logo_Remove = true;\r\n this.cancelled();\r\n await this.updateOrganizationSettings();\r\n \r\n }\r\n\r\n cancelled(){\r\n this.deleteLogoModal = false;\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OrganizationSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./OrganizationSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrganizationSettings.vue?vue&type=template&id=33b31bf7&scoped=true&\"\nimport script from \"./OrganizationSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./OrganizationSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OrganizationSettings.vue?vue&type=style&index=0&id=33b31bf7&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 \"33b31bf7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"ma-4\"},[(_vm.audit)?_c('v-card-title',[_c('h2',[_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_PageTitle\"))+\" - \"+_vm._s(_vm.audit.Name))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('ListAccessAudit_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_HelpLinkText'))+\"\\n \")],1)],1):_vm._e(),_vm._v(\" \"),(_vm.audit && _vm.tree)?_c('v-card-text',[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-8\",attrs:{\"dense\":\"\",\"label\":_vm.$t('ListAccessAudit_Search')},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":_vm.expandAll}},[_vm._v(\"Expand all\")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"ml-4\",attrs:{\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":_vm.collapseAll}},[_vm._v(\"Collapse all\")]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"ml-4 primary\",attrs:{\"small\":\"\",\"href\":_vm.getCsvUrl()}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-download\")]),_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_CSV\")))],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"ml-4 primary\",attrs:{\"small\":\"\",\"href\":_vm.getJsonUrl()}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-download\")]),_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_JSON\")))],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"ml-4 primary\",attrs:{\"small\":\"\",\"href\":_vm.getYamlUrl()}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-download\")]),_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_YAML\")))],1)],1),_vm._v(\" \"),(_vm.tree)?_c('v-treeview',{ref:\"treeview\",attrs:{\"hoverable\":true,\"search\":_vm.search,\"filter\":_vm.filter,\"items\":_vm.tree},scopedSlots:_vm._u([{key:\"prepend\",fn:function({ item, open }){return [_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"\\n \"+_vm._s(open && item.openedIcon ? item.openedIcon : item.icon)+\"\\n \")])]}},{key:\"append\",fn:function({ item }){return [(item.table)?_c('a',{attrs:{\"href\":item.table.Url,\"target\":\"blank\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-external-link\")])],1):_vm._e()]}},{key:\"label\",fn:function({ item }){return [_c('div',{staticClass:\"label-wrapper\"},[_c('span',{class:item.table ? 'table-node': '',attrs:{\"title\":item.title}},[_vm._v(_vm._s(item.name))]),_vm._v(\" \"),(item.table && item.table.ExternalAccess)?_c('v-icon',{staticClass:\"count-chip\",attrs:{\"small\":\"\",\"title\":_vm.$t('ListAccessAudit_ExternalAccess')}},[_vm._v(\"\\n fal fa-globe\\n \")]):_vm._e(),_vm._v(\" \"),(item.table)?_c('div',{staticClass:\"count-chip access-count\",attrs:{\"title\":_vm.$t('ListAccessAudit_CreateSummaryTooltip')}},[_c('div',{staticClass:\"access-count-total mr-0\"},[_c('b',[_vm._v(_vm._s(_vm.countCreateAccess(item.table)))]),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-0\",attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fal fa-circle-plus\")])],1)]):_vm._e(),_vm._v(\" \"),(item.table)?_c('div',{staticClass:\"count-chip access-count\",attrs:{\"title\":_vm.$t('ListAccessAudit_ReadSummaryTooltip')}},[_c('div',{staticClass:\"access-count-total mr-0\"},[_c('b',[_vm._v(_vm._s(_vm.countReadAccess(item.table)))]),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-0\",attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fal fa-eye\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"access-count-detail ml-0\"},[_vm._v(\"\\n (\"+_vm._s(_vm.countFullReadAccess(item.table))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fas fa-circle\")]),_vm._v(\" / \"+_vm._s(_vm.countPartialReadAccess(item.table))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"far fa-circle\")]),_vm._v(\")\\n \")],1)]):_vm._e(),_vm._v(\" \"),(item.table)?_c('div',{staticClass:\"count-chip access-count\",attrs:{\"title\":_vm.$t('ListAccessAudit_UpdateSummaryTooltip')}},[_c('div',{staticClass:\"access-count-total mr-0\"},[_c('b',[_vm._v(_vm._s(_vm.countUpdateAccess(item.table)))]),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-0\",attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fal fa-pencil-alt\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"access-count-detail ml-0\"},[_vm._v(\"\\n (\"+_vm._s(_vm.countFullUpdateAccess(item.table))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fas fa-circle\")]),_vm._v(\" / \"+_vm._s(_vm.countPartialUpdateAccess(item.table))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"far fa-circle\")]),_vm._v(\")\\n \")],1)]):_vm._e(),_vm._v(\" \"),(item.table)?_c('div',{staticClass:\"count-chip access-count\",attrs:{\"title\":_vm.$t('ListAccessAudit_SuppressSummaryTooltip')}},[_c('div',{staticClass:\"access-count-total mr-0\"},[_c('b',[_vm._v(_vm._s(_vm.countSuppressAccess(item.table)))]),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-0\",attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fal fa-trash-can\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"access-count-detail ml-0\"},[_vm._v(\"\\n (\"+_vm._s(_vm.countFullSuppressAccess(item.table))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fas fa-circle\")]),_vm._v(\" / \"+_vm._s(_vm.countPartialSuppressAccess(item.table))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"far fa-circle\")]),_vm._v(\")\\n \")],1)]):_vm._e(),_vm._v(\" \"),(item.table)?_c('div',{staticClass:\"count-chip access-count\",attrs:{\"title\":_vm.$t('ListAccessAudit_AssignSummaryTooltip')}},[_c('div',{staticClass:\"access-count-total mr-0\"},[_c('b',[_vm._v(_vm._s(_vm.countAssignAccess(item.table)))]),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-0\",attrs:{\"small\":\"\",\"color\":\"lightest\"}},[_vm._v(\"fal fa-user-pen\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"access-count-detail ml-0\"},[_vm._v(\"\\n (\"+_vm._s(_vm.countFullAssignAccess(item.table))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"fas fa-circle\")]),_vm._v(\" / \"+_vm._s(_vm.countPartialAssignAccess(item.table))+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\"far fa-circle\")]),_vm._v(\")\\n \")],1)]):_vm._e(),_vm._v(\" \"),(item.table && item.table.OneRowMaximumPerUser)?_c('v-icon',{staticClass:\"count-chip one-row-chip\",attrs:{\"small\":\"\",\"title\":_vm.$t('ListAccessAudit_OneRowPerUserTooltip')}},[_vm._v(\"fas fa-bullseye-arrow\")]):_vm._e(),_vm._v(\" \"),(item.member)?_c('span',{staticClass:\"ml-1\"},[_vm._v(\"(\"+_vm._s(item.member.Email)+\")\")]):_vm._e(),_vm._v(\" \"),(item.access)?_c('span',{staticClass:\"ml-2\",class:'access-create--' + item.access.CanCreate.toString()},[_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_CanCreate\"))+_vm._s(_vm.getAccessModeText(item.access.CanCreate)))]):_vm._e(),_vm._v(\" \"),(item.access)?_c('span',{staticClass:\"ml-2\",class:'access-' + item.access.CanRead.toLowerCase()},[_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_CanRead\"))+_vm._s(_vm.getAccessModeText(item.access.CanRead)))]):_vm._e(),_vm._v(\" \"),(item.access)?_c('span',{staticClass:\"ml-2\",class:'access-' + item.access.CanUpdate.toLowerCase()},[_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_CanUpdate\"))+_vm._s(_vm.getAccessModeText(item.access.CanUpdate)))]):_vm._e(),_vm._v(\" \"),(item.access)?_c('span',{staticClass:\"ml-2\",class:'access-' + item.access.CanSuppress.toLowerCase()},[_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_CanSuppress\"))+_vm._s(_vm.getAccessModeText(item.access.CanSuppress)))]):_vm._e(),_vm._v(\" \"),(item.access)?_c('span',{staticClass:\"ml-2\",class:'access-' + item.access.CanAssign.toLowerCase()},[_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_CanAssign\"))+_vm._s(_vm.getAccessModeText(item.access.CanAssign)))]):_vm._e(),_vm._v(\" \"),(item.access && item.access.IsOwner)?_c('span',{staticClass:\"ml-2 access-owner\"},[_vm._v(_vm._s(_vm.$t(\"ListAccessAudit_Owner\")))]):_vm._e(),_vm._v(\" \"),(item.member && item.member.IsReadonly)?_c('v-icon',{staticClass:\"ml-4\",attrs:{\"small\":\"\",\"title\":_vm.$t('ListAccessAudit_ReadonlyMemberTooltip'),\"color\":\"secondary\"}},[_vm._v(\"fas fa-info-circle\")]):_vm._e()],1)]}}],null,false,96197177)}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(!_vm.audit || !_vm.tree)?_c('page-load-spinner'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[_c('p',{staticClass:\"text-h5 font-weight-bold\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Groups_Title')))])])],1),_vm._v(\" \"),_c('v-row',[_c('v-col',{staticClass:\"pb-0\"},[_c('p',{staticClass:\"text-subtitle\"},[_vm._v(_vm._s(_vm.$t('ManageOrganization_Groups_Description')))])])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"gridContainer\"},[_c('v-col',{staticClass:\"pa-0\"},[_c('ag-grid-vue',{staticClass:\"ag-theme-alpine col-md-12 rs-grid\",staticStyle:{\"height\":\"100%\"},attrs:{\"columnDefs\":_vm.groupListColumns,\"defaultColDef\":_vm.defaultColumnSettings,\"rowData\":_vm.orgGroups,\"gridOptions\":_vm.gridOptions},on:{\"gridReady\":_vm.gridReady,\"cellValueChanged\":_vm.cellValueChanged,\"firstDataRenderd\":_vm.firstDataRendered}})],1)],1),_vm._v(\" \"),_c('v-row',[_c('v-col',[_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.addNewGroup}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"dense\":\"\",\"small\":\"\"}},[_vm._v(\"fa-plus\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t('ManageOrganization_AddGroup')))])],1)],1)],1),_vm._v(\" \"),_c('confirmation-dialog',{attrs:{\"dialogState\":_vm.showRemoveModal,\"title\":_vm.$t('ManageOrganization_DeleteGroupModal_Title'),\"description\":_vm.$t('ManageOrganization_DeleteGroupModal_Description', [_vm.groupToDeleteName]),\"actionButtonText\":_vm.$t('ManageOrganization_DeleteGroupModal_SubmitButton'),\"cancelButtonText\":_vm.$t('ManageOrganization_DeleteGroupModal_CancelButton'),\"actionButtonIcon\":\"trash-alt\"},on:{\"submit\":_vm.deleteGroup,\"cancel\":_vm.cancelGroupDeletion}}),_vm._v(\" \"),_c('toaster',{attrs:{\"showToaster\":_vm.showToaster,\"toasterColor\":_vm.toasterColor,\"toasterText\":_vm.toasterText,\"toasterTimeOut\":_vm.toasterTimeOut},on:{\"closeToasterEvent\":_vm.closeToaster}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('multiselect',{ref:\"multiselect\",attrs:{\"options\":_vm.groups,\"track-by\":\"Name\",\"label\":\"Name\",\"showLabels\":false,\"multiple\":true,\"placeholder\":\"\",\"option-height\":40,\"maxHeight\":200,\"close-on-select\":false,\"options-limit\":10000,\"open-direction\":\"auto\"},scopedSlots:_vm._u([{key:\"singleLabel\",fn:function({ option }){return [_c('v-chip',{staticClass:\"white--text\",attrs:{\"label\":\"\",\"color\":\"primary\",\"outlined\":\"\"}},[_vm._v(\"\\n \"+_vm._s(option.Name)+\"\\n \")])]}},{key:\"tag\",fn:function({ option, remove }){return [_c('span',{staticClass:\"mx-1 mb-2 v-chip v-chip--label theme--light v-size--default tag v-chip--outlined primary--text\"},[_c('span',{staticClass:\"valueItem\"},[_vm._v(_vm._s(option.Name))]),_vm._v(\" \"),_c('button',{staticClass:\"v-icon notranslate v-chip__close v-icon--link v-icon--right fal fa-times theme--light\",staticStyle:{\"font-size\":\"18px\"},attrs:{\"type\":\"button\",\"tabindex\":\"-1\"},on:{\"click\":function($event){return remove(option)}}})])]}},{key:\"option\",fn:function(props){return [_c('div',{staticClass:\"d-flex flex-nowrap\"},[_c('div',{staticClass:\"align-self-center mr-2\"},[(_vm.isSelected(props.option))?_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"fa-check-square\")]):_c('v-icon',{attrs:{\"color\":\"grey-lighten2\"}},[_vm._v(\"far fa-square\")])],1),_vm._v(\" \"),_c('div',[_c('v-chip',{attrs:{\"label\":\"\",\"link\":\"\",\"outlined\":\"\",\"color\":\"primary\"}},[_c('span',[_vm._v(_vm._s(props.option.Name))])])],1)])]}}]),model:{value:(_vm.selectedGroups),callback:function ($$v) {_vm.selectedGroups=$$v},expression:\"selectedGroups\"}},[_vm._v(\" \"),_vm._v(\" \"),_vm._v(\" \"),_c('template',{slot:\"noResult\"},[_c('span',[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]),_vm._v(\" \"),_c('template',{slot:\"noOptions\"},[_c('span',[_vm._v(_vm._s(_vm.$t('Common_EmptyList')))])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport * as API from '@/api/Api';\r\nimport { IGroupEditorParams } from '@/viewModels/ManageOrganization/groupVM';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport Multiselect from 'vue-multiselect';\r\n\r\n@Component({name: 'groupsEditor', components: { Multiselect }})\r\nexport default class groupsEditor extends Vue {\r\n groups!: RowShare.Group[];\r\n params!: IGroupEditorParams;\r\n organizationId!: string;\r\n selectedGroups!: RowShare.Group[];\r\n\r\n constructor(){\r\n super();\r\n this.selectedGroups = [];\r\n this.groups = [];\r\n }\r\n \r\n beforeMount(){\r\n this.organizationId = this.params.organizationId;\r\n this.selectedGroups = [];\r\n if(this.organizationId){\r\n API.Group.loadForParent(this.organizationId, {cache: false}).then(groups => {\r\n if(groups){\r\n this.groups = groups.filter(g => !g.IsMyOrganization);\r\n if(this.params.idsToRemove && this.params.idsToRemove.length > 0){\r\n this.groups = this.groups.filter(g => this.params.idsToRemove.find(id => id == g.Id) == undefined)\r\n }\r\n this.selectedGroups = this.params.value;\r\n }\r\n })\r\n }\r\n }\r\n\r\n mounted(){\r\n ((this.$refs.multiselect)).activate(); \r\n }\r\n\r\n getValue(){\r\n return this.selectedGroups;\r\n }\r\n\r\n isPopup() {\r\n return true;\r\n }\r\n\r\n isSelected(item: RowShare.Group) {\r\n if(Utils.isArray(this.selectedGroups)) {\r\n let idx = this.selectedGroups.findIndex(i => i.Name == item.Name);\r\n return idx > -1;\r\n }\r\n return false;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./groupsEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./groupsEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./groupsEditor.vue?vue&type=template&id=7450ac02&scoped=true&\"\nimport script from \"./groupsEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./groupsEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./groupsEditor.vue?vue&type=style&index=0&id=7450ac02&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 \"7450ac02\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{attrs:{\"title\":_vm.groupsDescription}},[_vm._v(\"\\n \"+_vm._s(_vm.groupsDescription)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import { Group } from '@/models/Group';\r\n import { ICellRendererParams } from 'ag-grid-community';\r\n\r\n @Component({name: 'groupsRenderer'})\r\n export default class groupsRenderer extends Vue{\r\n selectedGroups!: Group[];\r\n params!: ICellRendererParams;\r\n\r\n beforeMount(){\r\n this.selectedGroups = this.params.value;\r\n }\r\n get groupsDescription(){\r\n if(this.selectedGroups && this.selectedGroups.length > 0){\r\n let desc = '';\r\n let sep = '';\r\n this.selectedGroups.forEach((value, index) => { \r\n desc += sep + value.Name;\r\n sep= ', ';\r\n });\r\n return desc;\r\n }\r\n return '';\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./groupsRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./groupsRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./groupsRenderer.vue?vue&type=template&id=3ce8eabd&scoped=true&\"\nimport script from \"./groupsRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./groupsRenderer.vue?vue&type=script&lang=ts&\"\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 \"3ce8eabd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ma-0 pa-0\",staticStyle:{\"width\":\"100%\"}},[_c('v-icon',{attrs:{\"dense\":\"\"}},[_vm._v(\"fa-trash\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import * as RowShare from '@/models/RowShare';\r\n import * as API from '@/api/Api';\r\n import { ICellEditorParams } from 'ag-grid-community';\r\n\r\n @Component({name: 'deleteRowRender'})\r\n export default class deleteRowRenderer extends Vue{\r\n beforeMount(){\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./deleteRowRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./deleteRowRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./deleteRowRenderer.vue?vue&type=template&id=7e9495e8&scoped=true&\"\nimport script from \"./deleteRowRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./deleteRowRenderer.vue?vue&type=script&lang=ts&\"\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 \"7e9495e8\",\n null\n \n)\n\nexport default component.exports","import * as models from '@/models/RowShare';\r\nimport * as agGrid from 'ag-grid-community';\r\n\r\nexport class groupVM extends models.Group {\r\n initialGroup!: models.Group | null;\r\n \r\n constructor(group: models.Group | null){\r\n super();\r\n this.initialGroup = null;\r\n if(group){\r\n Object.assign(this, group);\r\n this.initialGroup = group;\r\n }\r\n }\r\n\r\n public IsNew!: boolean;\r\n public hasError!: boolean;\r\n}\r\n\r\nexport interface IGroupEditorParams extends agGrid.ICellEditorParams{\r\n organizationId: string;\r\n idsToRemove: string[];\r\n}","\r\n import {Component, Prop, Vue } from 'vue-property-decorator';\r\n import * as API from '@/api/Api';\r\n import {AgGridVue} from \"ag-grid-vue\";\r\n import * as RowShare from \"@/models/RowShare\";\r\n import * as agGrid from 'ag-grid-community';\r\n import { EventBus } from \"@/modules/EventBus\";\r\n import ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\n import groupsEditor from '@/views/ManageOrganization/manageOrganizationGrids/groupsEditor.vue';\r\n import groupsRenderer from '@/views/ManageOrganization/manageOrganizationGrids/groupsRenderer.vue';\r\n import deleteRowRenderer from '@/views/ManageOrganization/manageOrganizationGrids/deleteRowRenderer.vue';\r\n import { RowShareException } from '@/api/ApiUtils';\r\n import Toaster from '@/views/layouts/LayoutParts/Toaster.vue';\r\n import { groupVM, IGroupEditorParams } from '@/viewModels/ManageOrganization/groupVM';\r\n \r\n @Component({\r\n name: 'Groups',\r\n components: {AgGridVue, Toaster, ConfirmationDialog, groupsEditor, groupsRenderer, deleteRowRenderer}\r\n })\r\n export default class Groups extends Vue {\r\n\r\n @Prop() organizationId!:string;\r\n orgGroups: groupVM[] | null;\r\n groupListColumns: agGrid.ColDef[];\r\n gridApi!: agGrid.GridApi;\r\n columnApi!: agGrid.ColumnApi;\r\n gridOptions!: agGrid.GridOptions;\r\n organization: RowShare.Organization;\r\n showRemoveModal: boolean;\r\n groupRowToDelete: agGrid.IRowNode | null;\r\n toasterText: string;\r\n toasterColor: string;\r\n showToaster: boolean;\r\n defaultColumnSettings: agGrid.ColDef;\r\n toasterTimeOut: number;\r\n\r\n constructor(){\r\n super();\r\n this.orgGroups = null;\r\n this.groupListColumns =[];\r\n this.organization = new RowShare.Organization();\r\n this.showToaster = false;\r\n this.toasterText = '';\r\n this.toasterColor = '';\r\n this.showRemoveModal = false;\r\n this.groupRowToDelete = null;\r\n this.defaultColumnSettings = {};\r\n this.toasterTimeOut = 2000;\r\n }\r\n\r\n gridReady(params: agGrid.GridReadyEvent){\r\n this.gridApi = params.api;\r\n this.columnApi = params.columnApi;\r\n }\r\n\r\n firstDataRendered(){\r\n this.gridApi.sizeColumnsToFit(); \r\n }\r\n\r\n beforeMount(){\r\n this.defaultColumnSettings ={\r\n menuTabs: ['filterMenuTab', 'generalMenuTab'],\r\n filterParams: {\r\n buttons: ['reset', 'apply'], \r\n closeOnApply: true,\r\n excelMode: 'windows',\r\n refreshValuesOnOpen: true,\r\n caseSensitive: true,\r\n },\r\n headerClass: 'colHeader'\r\n };\r\n this.groupListColumns = [\r\n {headerName: this.$i18n.t('GroupGrid_ColTitle_Name').toString(), field: \"Name\", lockPosition: true, sortable: true, filter: true, editable: true, resizable: true, pinned: true},\r\n {headerName: this.$i18n.t('GroupGrid_ColTitle_Description').toString(), field: \"Description\", lockPosition: true, editable: true, resizable: true},\r\n {headerName: this.$i18n.t('GroupGrid_ColTitle_SubGroups').toString(), field: \"Children\", lockPosition: true, sortable: true, editable: true, resizable: true, cellRenderer:'groupsRenderer', cellEditor: 'groupsEditor', cellEditorParams: (params: any) => this.getGroupsEditorParams(params)},\r\n {headerName: this.$i18n.t('GroupGrid_ColTitle_MemberCount').toString(), field: \"MemberCount\", lockPosition: true, sortable: true, type: 'numericColumn'},\r\n {flex: 1, sortable: false, filter: false, lockPosition: true, lockVisible: true, suppressMenu: true},\r\n {cellClass:'noGridCell', headerClass: 'emptyColHeader', width: 30, cellRenderer: 'deleteRowRenderer', sortable: false, filter: false, lockPosition: true, lockVisible: true,pinned: 'right', lockPinned: true, suppressMenu: true, onCellClicked: params => this.confirmRemoveGroup(params)}\r\n ];\r\n this.gridOptions = { stopEditingWhenCellsLoseFocus: true,\r\n rowClassRules:{'grid-row-error' : params => this.getRowClassRules(params)},\r\n getLocaleText: (params) => this.getLocaleText(params.key, params.defaultValue),\r\n suppressContextMenu: true}\r\n this.orgGroups = null;\r\n API.Group.loadForParent(this.organizationId)\r\n .then(result =>{\r\n if(result){\r\n this.orgGroups = result.filter(g => !g.IsMyOrganization).map(g => new groupVM(g));\r\n }\r\n });\r\n }\r\n\r\n getGroupsEditorParams(params: any) : IGroupEditorParams{\r\n let currentGroup = params.data as groupVM;\r\n if(currentGroup){\r\n params.idsToRemove = [];\r\n params.idsToRemove.push(currentGroup.Id);\r\n params.organizationId = currentGroup.OrganizationId;\r\n }\r\n return params;\r\n }\r\n\r\n getLocaleText(key: string, defaultValue: string): string{\r\n if(key && key != ''){\r\n return this.$i18n.t('Grid_'+key).toString();\r\n }\r\n return defaultValue ? defaultValue : '';\r\n }\r\n\r\n getRowClassRules(params: any): boolean{\r\n return params.data.hasError === true;\r\n }\r\n\r\n cellValueChanged(event: agGrid.CellValueChangedEvent){\r\n let group = event.data as groupVM;\r\n if((group && event.node && event.newValue != event.oldValue)){\r\n this.saveGroup(group, event.node);\r\n }\r\n }\r\n\r\n saveGroup(group: groupVM, node: agGrid.IRowNode) {\r\n if(group && group.Name && group.Name !== ''){\r\n API.Group.save(group)\r\n .then(g => {\r\n if(g && this.gridApi){\r\n let gvm = new groupVM(g);\r\n node.setData(gvm);\r\n EventBus.$emit(RowShare.Event.GROUP_CHANGED);\r\n }\r\n })\r\n .catch(exc => {\r\n let rsExc = exc as RowShareException;\r\n if(rsExc)\r\n {\r\n this.toasterText = rsExc.message;\r\n }\r\n else\r\n {\r\n this.toasterText = this.$i18n.t(\"GroupGrid_ErrorSavingGroup\").toString();\r\n }\r\n this.toasterTimeOut = 10000;\r\n if(!group.hasError){\r\n this.toasterColor = \"error\";\r\n this.showToaster = true;\r\n group.hasError = true;\r\n }\r\n if(!group.IsNew){\r\n node.setData(new groupVM(group.initialGroup));\r\n }\r\n else\r\n {\r\n node.setData(group);\r\n }\r\n \r\n });\r\n }\r\n }\r\n\r\n closeToaster(){\r\n this.showToaster = false;\r\n }\r\n\r\n addNewGroup(){\r\n if(this.gridApi){\r\n let newGroup = new groupVM(null);\r\n newGroup.OrganizationId = this.organizationId;\r\n newGroup.IsNew = true;\r\n var rowNodeTransactions = this.gridApi.applyTransaction({add: [newGroup]});\r\n if(rowNodeTransactions && rowNodeTransactions.add && rowNodeTransactions.add.length > 0){\r\n var rowIndex = rowNodeTransactions.add[0].rowIndex\r\n this.gridApi.refreshClientSideRowModel();\r\n if(rowIndex != undefined){\r\n let editCell: agGrid.StartEditingCellParams = {\r\n rowIndex: rowIndex,\r\n colKey: 'Name'\r\n };\r\n this.gridApi.startEditingCell(editCell);\r\n }\r\n }\r\n }\r\n }\r\n\r\n confirmRemoveGroup(params: agGrid.ColumnFunctionCallbackParams){\r\n this.groupRowToDelete = params.node as agGrid.IRowNode;\r\n this.showRemoveModal = true;\r\n }\r\n \r\n deleteGroup(){\r\n if(this.groupRowToDelete){\r\n let groupToDelete = this.groupRowToDelete.data as RowShare.Group;\r\n API.Group.remove(groupToDelete).then((result)=>{\r\n if(result === true){\r\n this.gridApi.applyTransaction({remove: [groupToDelete]});\r\n }\r\n });\r\n }\r\n this.showRemoveModal = false;\r\n this.groupRowToDelete = null;\r\n }\r\n\r\n cancelGroupDeletion() {\r\n this.groupRowToDelete = null;\r\n this.showRemoveModal = false;\r\n }\r\n\r\n get groupToDeleteName(): string {\r\n if(this.groupRowToDelete) {\r\n return this.groupRowToDelete?.data?.Name ?? \"\";\r\n }\r\n return \"\";\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Groups.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Groups.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Groups.vue?vue&type=template&id=05d53030&scoped=true&\"\nimport script from \"./Groups.vue?vue&type=script&lang=ts&\"\nexport * from \"./Groups.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Groups.vue?vue&type=style&index=0&id=05d53030&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 \"05d53030\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"pa-0\"},[_c('div',{staticClass:\"mt-4 mb-4 pl-3\"},[_c('span',{staticClass:\"pb-3 pt-3 read-only\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ManageOrganization_Members_Title\"))+\"\\n \"),_c('span',{staticClass:\"primary--text mx-1\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.organization.ActiveMemberCount))])]),_vm._v(\" \"),(!_vm.organization.InTrial)?_c('span',[_vm._v(\"\\n /\\n \"+_vm._s(_vm.organization.MaximumMemberCount)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.organization.CannotChangePlanAlone)?_c('v-btn',{staticClass:\"text-none mx-3\",attrs:{\"to\":_vm.contactLink,\"small\":\"\",\"outlined\":\"\",\"color\":\"primary\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ManageOrganization_ContactUs\"))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.organization.CannotChangePlanAlone && _vm.isNotOnPrem)?_c('v-btn',{staticClass:\"text-none mx-3\",attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.updateSubscription}},[_vm._v(\"\\n \"+_vm._s(_vm.getButtonLabel)+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),_c('span',{staticClass:\"ml-4 pb-3 pt-3 read-only\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"Organization_SubscriptionFixedReadOnlyUsersQuantity\"))+\"\\n \"),_c('span',{staticClass:\"primary--text mx-1\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.organization.ReadonlyMemberCount))])]),_vm._v(\" \"),(!_vm.organization.InTrial)?_c('span',[_vm._v(\"\\n /\\n \"+_vm._s(_vm.organization.SubscriptionFixedReadOnlyUsersQuantity)+\"\\n \")]):_vm._e()])])])],1),_vm._v(\" \"),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"auto\"}},[_c('span',{staticClass:\"text-subtitle ma-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"ManageOrganization_Members_Description\"))+\"\\n \")])]),_vm._v(\" \"),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"auto\"}},[_c('edit-invitation-dialog',{attrs:{\"organizationId\":_vm.organizationId}})],1),_vm._v(\" \"),_c('v-col',{staticClass:\"py-0\"},[_c('invite-link-dialog',{attrs:{\"organizationId\":_vm.organizationId}})],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"gridContainer\"},[_c('v-col',{staticClass:\"pa-0\"},[_c('ag-grid-vue',{staticClass:\"ag-theme-alpine col-md-12 rs-grid\",staticStyle:{\"height\":\"100%\"},attrs:{\"columnDefs\":_vm.memberListColumns,\"defaultColDef\":_vm.defaultColumnSettings,\"rowData\":_vm.orgMembers,\"gridOptions\":_vm.gridOptions},on:{\"gridReady\":_vm.gridReady,\"cellValueChanged\":_vm.cellValueChanged,\"cellEditingStarted\":_vm.cellEditingStarted,\"cellEditingStopped\":_vm.cellEditingStopped,\"filterChanged\":_vm.onFilterChanged}})],1)],1),_vm._v(\" \"),_c('v-row',[_c('v-col',[_c('v-tooltip',{attrs:{\"disabled\":!_vm.isFiltered,\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({staticClass:\"btnadd--tooltip\"},on),[_c('v-btn',{staticClass:\"text-none btn--add\",attrs:{\"disabled\":!_vm.canAddNewRow,\"color\":\"primary\"},on:{\"click\":_vm.addNewMember}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"dense\":\"\",\"small\":\"\"}},[_vm._v(\"fa-plus\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$t(\"ManageOrganization_AddMember\")))])],1)],1)]}}])},[_vm._v(\"\\n \"+_vm._s(_vm.AddNewRowToolTip)+\"\\n \")])],1)],1),_vm._v(\" \"),(_vm.mustShowRecaptcha)?_c('recaptcha'):_vm._e(),_vm._v(\" \"),_c('confirmation-dialog',{attrs:{\"dialogState\":_vm.showRemoveModal,\"title\":_vm.$t('ManageOrganization_DeleteMemberModal_Title'),\"description\":_vm.$t(\n 'ManageOrganization_DeleteMemberModal_Description',\n _vm.memberToDeleteInfos\n ),\"actionButtonText\":_vm.$t('ManageOrganization_DeleteMemberModal_SubmitButton'),\"cancelButtonText\":_vm.$t('ManageOrganization_DeleteMemberModal_CancelButton'),\"actionButtonIcon\":\"trash-alt\"},on:{\"submit\":_vm.deleteMember,\"cancel\":_vm.cancelMemberDeletion}}),_vm._v(\" \"),_c('toaster',{attrs:{\"showToaster\":_vm.showToaster,\"toasterColor\":_vm.toasterColor,\"toasterText\":_vm.toasterText,\"toasterTimeOut\":_vm.toasterTimeOut},on:{\"closeToasterEvent\":_vm.closeToaster}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-autocomplete',{ref:\"selector\",attrs:{\"autofocus\":\"\",\"chips\":\"\",\"clearable\":\"\",\"clear-icon\":\"fal fa-times\",\"solo\":\"\",\"items\":_vm.members,\"item-text\":\"nameOrEmail\",\"item-value\":\"Email\",\"menu-props\":{offsetY: true}},on:{\"change\":_vm.selectManager},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}]),model:{value:(_vm.selectedManagerEmail),callback:function ($$v) {_vm.selectedManagerEmail=$$v},expression:\"selectedManagerEmail\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport { ICellEditorParams } from 'ag-grid-community';\r\nimport * as RowShare from '@/models/RowShare';\r\nimport * as API from '@/api/Api';\r\nimport { memberVM } from '@/viewModels/ManageOrganization/memberVM';\r\nimport { Utils } from '@/utils/Utilities';\r\n\r\n@Component({name: 'memberEditor'})\r\nexport default class memberEditor extends Vue{\r\n members: RowShare.Member[] = [];\r\n params!: ICellEditorParams;\r\n currentMember!: memberVM;\r\n selectedManager: RowShare.Member | null = null;\r\n\r\n get selectedManagerEmail(): string {\r\n return this.selectedManager?.Email ?? \"\";\r\n }\r\n\r\n set selectedManagerEmail(value: string) {\r\n if(Utils.isNullOrWhiteSpace(value)) {\r\n this.selectedManager = null;\r\n }\r\n else {\r\n var member = this.members.find(m => m.Email == value);\r\n if(member) {\r\n this.selectedManager = member;\r\n }\r\n }\r\n }\r\n\r\n beforeMount(){\r\n this.currentMember = this.params.data as memberVM;\r\n this.selectedManager = this.currentMember.Manager;\r\n if(this.currentMember){\r\n API.Member.loadForParent(this.currentMember.OrganizationId)\r\n .then(members =>{\r\n if(members) {\r\n this.members = members.filter(m => m.Email !== this.currentMember.Email && m.IsEnabled);\r\n this.selectedManagerEmail = this.currentMember.Manager?.Email ?? \"\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n selectManager(){\r\n if(this.selectedManager){\r\n this.currentMember.ManagerEmail = this.selectedManager.Email;\r\n this.currentMember.ManagerName = this.selectedManager.Name;\r\n }\r\n else{\r\n this.currentMember.ManagerEmail = '';\r\n this.currentMember.ManagerName = '';\r\n }\r\n this.params.stopEditing();\r\n }\r\n\r\n mounted(){\r\n (this.$refs.selector).activateMenu();\r\n }\r\n\r\n getValue(){ \r\n return this.selectedManager;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./memberEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./memberEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./memberEditor.vue?vue&type=template&id=3c9a6b57&scoped=true&\"\nimport script from \"./memberEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./memberEditor.vue?vue&type=script&lang=ts&\"\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 \"3c9a6b57\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"editor\",on:{\"dblclick\":_vm.onDblClick}},[(_vm.params.value)?_c('v-icon',{attrs:{\"color\":\"primary\",\"small\":\"\"}},[_vm._v(\"fa-check\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { ICellRendererParams } from 'ag-grid-community';\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n @Component({ name: 'booleanRenderer'})\r\n export default class booleanRenderer extends Vue{\r\n params!: ICellRendererParams;\r\n\r\n onDblClick(event: MouseEvent) { \r\n var editingCells = this.params.api.getEditingCells();\r\n if(editingCells.length == 0){\r\n if(this.params.value != null && this.params.value != undefined){\r\n if(this.params.setValue) {\r\n this.params.setValue(!this.params.value)\r\n }\r\n }\r\n }\r\n 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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./booleanRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./booleanRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./booleanRenderer.vue?vue&type=template&id=6368adc1&scoped=true&\"\nimport script from \"./booleanRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./booleanRenderer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./booleanRenderer.vue?vue&type=style&index=0&id=6368adc1&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 \"6368adc1\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.params.value)?_c('span',[_vm._v(_vm._s(_vm.params.value.Name))]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n @Component({name: 'memberRenderer'})\r\n export default class memberRenderer 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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./memberRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./memberRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./memberRenderer.vue?vue&type=template&id=4fbcdcba&scoped=true&\"\nimport script from \"./memberRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./memberRenderer.vue?vue&type=script&lang=ts&\"\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 \"4fbcdcba\",\n null\n \n)\n\nexport default component.exports","import * as Models from '@/models/RowShare';\r\n\r\nexport class gridUtils{\r\n public static stringComparator(s1: string | null | undefined, s2: string | null | undefined) : number{\r\n let string1 = (s1 ?? '');\r\n let string2 = (s2 ?? '');\r\n\r\n return string1.localeCompare(string2);\r\n }\r\n\r\n public static memberComparator(m1: Models.Member, m2: Models.Member): number{\r\n return gridUtils.stringComparator(m1?.Name, m2?.Name);\r\n }\r\n\r\n}","import * as models from '@/models/RowShare';\r\n\r\nexport class memberVM extends models.Member{\r\n IsNew!: boolean;\r\n IsAdding!:boolean;\r\n hasError!: boolean;\r\n initialMember: models.Member | null;\r\n [key: string]: string | boolean | models.MemberOptions | null | models.Group[] | models.Member | Date;\r\n\r\n constructor(member: models.Member | null){\r\n super();\r\n this.initialMember = null;\r\n if(member){\r\n Object.assign(this, member);\r\n this.initialMember = member;\r\n }\r\n } \r\n \r\n get InvitationState () { return this.IsUser ? 'accepted' : 'pending'}\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"member-email-renderer\",attrs:{\"title\":_vm.tooltip}},[(!_vm.params.data.IsUser)?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"warning\"}},[_vm._v(\"fal fa-hourglass-start\")]):_vm._e(),_vm._v(\" \"),(_vm.params.value)?_c('span',[_vm._v(_vm._s(_vm.params.value))]):_vm._e(),_vm._v(\" \"),(_vm.addingNew)?_c('v-icon',{staticClass:\"mr-1 cell-container-status-icon cell-container-saving-icon far fa-spinner-third fa-spin primary--text\"}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue } from 'vue-property-decorator';\r\n import { ICellRendererParams } from 'ag-grid-community';\r\n\r\n @Component({name: 'memberEmailRenderer'})\r\n export default class memberEmailRenderer extends Vue{\r\n params!: ICellRendererParams;\r\n get addingNew(){\r\n return (this.params.data.IsAdding);\r\n }\r\n get tooltip(){\r\n if(this.params.data.IsUser)\r\n return this.params.value;\r\n else\r\n return this.params.value + '\\n' + this.$i18n.t('MemberGrid_PendingInvitationTooltip').toString()\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./memberEmailRenderer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./memberEmailRenderer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./memberEmailRenderer.vue?vue&type=template&id=158e2ad7&scoped=true&\"\nimport script from \"./memberEmailRenderer.vue?vue&type=script&lang=ts&\"\nexport * from \"./memberEmailRenderer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./memberEmailRenderer.vue?vue&type=style&index=0&id=158e2ad7&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 \"158e2ad7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.openEditInvitationMessageDialog}},[(_vm.hasCustomMessage)?_c('span',[_vm._v(_vm._s(_vm.$t('EditMemberInvitationDialog_OpenDialogBtnHasMessage')))]):_c('span',[_vm._v(_vm._s(_vm.$t('EditMemberInvitationDialog_OpenDialogBtnNoMessage')))]),_vm._v(\" \"),(_vm.hasCustomMessage)?_c('v-icon',{staticClass:\"ml-2\",attrs:{\"color\":\"lightest\",\"small\":\"\"}},[_vm._v(\"far fa-check-circle\")]):_vm._e()],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"720\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":function($event){_vm.isEditingInvitationMessage = false},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;_vm.isEditingInvitationMessage = false}},model:{value:(_vm.isEditingInvitationMessage),callback:function ($$v) {_vm.isEditingInvitationMessage=$$v},expression:\"isEditingInvitationMessage\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"px-5\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('EditMemberInvitationDialog_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":function($event){_vm.isEditingInvitationMessage = false}}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-text',[_c('span',[_vm._v(_vm._s(_vm.$t('EditMemberInvitationDialog_Description')))])]),_vm._v(\" \"),_c('v-card-text',[(!_vm.isMessageUpToDate)?_c('page-load-spinner'):_c('v-textarea',{attrs:{\"outlined\":\"\",\"placeholder\":_vm.$t('EditMemberInvitationDialog_MessagePlaceHolder')},model:{value:(_vm.invitationMessage),callback:function ($$v) {_vm.invitationMessage=$$v},expression:\"invitationMessage\"}})],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){_vm.isEditingInvitationMessage = false}}},[_vm._v(_vm._s(_vm.$t('Action_Cancel')))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.savingInvitationMessage,\"disabled\":!_vm.canSaveInvitationMessage},on:{\"click\":_vm.saveInvitationMessage}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('EditMemberInvitationDialog_Save'))+\"\\n \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Model, Prop, Vue } from 'vue-property-decorator';\r\n import * as API from '@/api/Api';\r\n import PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n import * as RowShare from \"@/models/RowShare\";\r\n import { EventBus } from \"@/modules/EventBus\";\r\n import { Event, GlobalNotificationEventParams } from \"@/models/RowShare\";\r\n\r\n @Component({ name: 'EditInvitationDialog', components: { PageLoadSpinner } })\r\n export default class EditInvitationDialog extends Vue{\r\n @Prop() organizationId!: string; \r\n \r\n isEditingInvitationMessage: boolean = false;\r\n invitationMessage: string | null = null;\r\n savingInvitationMessage: boolean = false;\r\n isMessageUpToDate: boolean = false;\r\n\r\n mounted(){\r\n this.refresh();\r\n }\r\n\r\n refresh(){\r\n API.Organization.GetInvitationMessage(this.organizationId).then( msg => {\r\n this.invitationMessage = msg;\r\n this.isMessageUpToDate = true;\r\n });\r\n }\r\n\r\n get hasCustomMessage(): boolean {\r\n return !!this.invitationMessage;\r\n }\r\n\r\n openEditInvitationMessageDialog(){\r\n this.isEditingInvitationMessage = true;\r\n }\r\n\r\n canSaveInvitationMessage(){\r\n return true;\r\n }\r\n\r\n saveInvitationMessage(){\r\n this.savingInvitationMessage = true;\r\n API.Organization.SetInvitationMessage(this.organizationId, this.invitationMessage).then(res => {\r\n if(res == true)\r\n this.showSuccessNotif();\r\n else\r\n this.showErroNotif();\r\n }).catch(e => {\r\n this.showErroNotif();\r\n }).finally(() => {\r\n this.isEditingInvitationMessage = false;\r\n this.savingInvitationMessage = false;\r\n this.refresh();\r\n });\r\n }\r\n\r\n showErroNotif(){\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: (this.$i18n.t('EditMemberInvitationDialog_SaveError').toString()),\r\n type: 'error',\r\n autoHide: true,\r\n autoHideAfterMs: 2000\r\n });\r\n }\r\n\r\n showSuccessNotif(){\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: (this.$i18n.t('EditMemberInvitationDialog_SaveSuccess').toString()),\r\n type: 'success',\r\n autoHide: true,\r\n autoHideAfterMs: 2000\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EditInvitationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./EditInvitationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditInvitationDialog.vue?vue&type=template&id=7eb289da&scoped=true&\"\nimport script from \"./EditInvitationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditInvitationDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EditInvitationDialog.vue?vue&type=style&index=0&id=7eb289da&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 \"7eb289da\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',[_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.openInviteLinkDialog}},[(_vm.hasInviteLink)?_c('span',[_vm._v(_vm._s(_vm.$t('InviteLinkDialog_OpenDialogBtnHasLink')))]):_c('span',[_vm._v(_vm._s(_vm.$t('InviteLinkDialog_OpenDialogBtnNoLink')))]),_vm._v(\" \"),(_vm.hasInviteLink)?_c('v-icon',{staticClass:\"ml-2\",attrs:{\"color\":\"lightest\",\"small\":\"\"}},[_vm._v(\"far fa-check-circle\")]):_vm._e()],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"720\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.closeInviteLinkDialog,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.closeInviteLinkDialog.apply(null, arguments)}},model:{value:(_vm.showInviteLinkDialog),callback:function ($$v) {_vm.showInviteLinkDialog=$$v},expression:\"showInviteLinkDialog\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"px-5\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('InviteLinkDialog_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"color\":\"primary\",\"small\":\"\",\"text\":\"\",\"plain\":\"\",\"href\":_vm.$t('InviteLinkDialog_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.closeInviteLinkDialog}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(_vm.hasInviteLink)?_c('v-card-text',[_c('v-row',{staticClass:\"ma-0 pa-0 invite-description\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.$t('InviteLinkDialog_LinkDescription'))+\"\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"ma-0 pa-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pl-1 ma-0 link--url\"},[_c('v-text-field',{attrs:{\"loading\":_vm.creatingInviteLink,\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"readonly\":\"\",\"value\":_vm.inviteLinkUrl},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-btn',{staticClass:\"text-none\",attrs:{\"icon\":\"\",\"tile\":\"\",\"title\":_vm.$t('InviteLinkDialog_CopyLink'),\"elevation\":\"0\"},on:{\"click\":_vm.copyLink}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"fa-clipboard\")])],1),_vm._v(\" \"),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"title\":_vm.$t('InviteLinkDialog_Delete'),\"elevation\":\"0\"},on:{\"click\":_vm.requestDeletion}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"fa-trash\")])],1)]},proxy:true}],null,false,606693669)})],1)],1)],1):_c('v-card-text',[_c('span',{staticClass:\"invite-description\"},[_vm._v(_vm._s(_vm.$t('InviteLinkDialog_CreateDescription')))])]),_vm._v(\" \"),(_vm.savingErrorMessage)?_c('v-card-text',[_c('div',{staticClass:\"error-message\"},[_vm._v(_vm._s(_vm.$t('InviteLinkDialog_ErrorMessage', [_vm.savingErrorMessage])))])]):_vm._e(),_vm._v(\" \"),(_vm.deletionRequested)?_c('v-card-text',[_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t('InviteLinkDialog_DeleteDescription'))+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"error\",\"loading\":_vm.deletingInviteLink},on:{\"click\":_vm.deleteInviteLink}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('InviteLinkDialog_Delete'))+\"\\n \")],1)],1):_vm._e(),_vm._v(\" \"),(_vm.hasInviteLink)?_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.closeInviteLinkDialog}},[_vm._v(_vm._s(_vm.$t('Common_Close')))])],1):_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":_vm.closeInviteLinkDialog}},[_vm._v(_vm._s(_vm.$t('Action_Cancel')))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.creatingInviteLink,\"disabled\":!_vm.canCreateInviteLink},on:{\"click\":_vm.createInviteLink}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('InviteLinkDialog_Create'))+\"\\n \")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue} from 'vue-property-decorator';\r\nimport * as API from '@/api/Api';\r\nimport { InviteLink } from '@/models/InviteLink';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { Event, GlobalNotificationEventParams, NotificationType } from '@/models/Event';\r\n\r\n@Component({name: 'InviteLinkDialog'})\r\nexport default class InviteLinkDialog extends Vue {\r\n @Prop() organizationId!: string;\r\n \r\n showInviteLinkDialog: boolean = false;\r\n activeInviteLink: InviteLink | null = null;\r\n creatingInviteLink: boolean = false;\r\n savingErrorMessage: string = \"\";\r\n deletingInviteLink: boolean = false;\r\n deleteErrorMessage: string = \"\";\r\n deletionRequested: boolean = false;\r\n\r\n mounted() {\r\n this.refresh();\r\n }\r\n\r\n refresh() {\r\n API.InviteLink.loadForParent(this.organizationId)\r\n .then((links) => {\r\n if(links && links.length > 0) {\r\n this.activeInviteLink = links[0];\r\n }\r\n });\r\n }\r\n\r\n createInviteLink() {\r\n this.creatingInviteLink = true;\r\n this.savingErrorMessage = \"\";\r\n this.activeInviteLink = new InviteLink();\r\n this.activeInviteLink.OrganizationId = this.organizationId;\r\n API.InviteLink.save(this.activeInviteLink)\r\n .then((link) => {\r\n if(link) {\r\n this.activeInviteLink = link;\r\n }\r\n })\r\n .catch(err => {\r\n this.savingErrorMessage = err.message;\r\n })\r\n .finally(() => {\r\n this.creatingInviteLink = false;\r\n this.refresh();\r\n });\r\n }\r\n\r\n deleteInviteLink() {\r\n if(this.activeInviteLink) {\r\n this.deletingInviteLink = true;\r\n API.InviteLink.delete(this.activeInviteLink.Id)\r\n .then(res => {\r\n if(res) {\r\n this.activeInviteLink = null;\r\n this.closeInviteLinkDialog();\r\n }\r\n })\r\n .catch(err => {\r\n this.deleteErrorMessage = err.message;\r\n })\r\n .finally(() => {\r\n this.deletingInviteLink = false;\r\n this.refresh();\r\n })\r\n\r\n }\r\n }\r\n\r\n requestDeletion() {\r\n this.deletionRequested = true;\r\n }\r\n\r\n openInviteLinkDialog() {\r\n this.showInviteLinkDialog = true;\r\n }\r\n\r\n closeInviteLinkDialog() {\r\n this.showInviteLinkDialog = false;\r\n this.creatingInviteLink = false;\r\n this.deletingInviteLink = false;\r\n this.savingErrorMessage = \"\";\r\n this.deletionRequested = false;\r\n }\r\n\r\n copyLink() {\r\n document.addEventListener('copy', this.copyToClipboard);\r\n document.execCommand('copy');\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: NotificationType.success,\r\n message: this.$i18n.t('InviteLinkDialog_LinkCopied').toString()\r\n });\r\n }\r\n\r\n get canCreateInviteLink(): boolean {\r\n return true;\r\n }\r\n\r\n get hasInviteLink(): boolean {\r\n return this.activeInviteLink != null;\r\n }\r\n\r\n get inviteLinkUrl(): string {\r\n if(!this.activeInviteLink || this.creatingInviteLink) {\r\n return \"\";\r\n }\r\n return `${window.location.protocol}//${window.location.host}/join/${this.activeInviteLink.Id}`;\r\n }\r\n\r\n copyToClipboard(event: ClipboardEvent) {\r\n event.clipboardData?.setData('text/plain', this.inviteLinkUrl);\r\n event.preventDefault();\r\n document.removeEventListener('copy', this.copyToClipboard);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InviteLinkDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./InviteLinkDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InviteLinkDialog.vue?vue&type=template&id=11db4a45&scoped=true&\"\nimport script from \"./InviteLinkDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./InviteLinkDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InviteLinkDialog.vue?vue&type=style&index=0&id=11db4a45&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 \"11db4a45\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Model, Prop, Vue } from \"vue-property-decorator\";\r\nimport * as API from \"@/api/Api\";\r\nimport PageLoadSpinner from \"@/views/layouts/LayoutParts/PageLoadSpinner.vue\";\r\nimport { AgGridVue } from \"ag-grid-vue\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport * as agGrid from \"ag-grid-community\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport ConfirmationDialog from \"@/views/components/ConfirmationDialog.vue\";\r\nimport memberEditor from \"@/views/ManageOrganization/manageOrganizationGrids/memberEditor.vue\";\r\nimport groupsEditor from \"@/views/ManageOrganization/manageOrganizationGrids/groupsEditor.vue\";\r\nimport booleanRenderer from \"@/views/ManageOrganization/manageOrganizationGrids/booleanRenderer.vue\";\r\nimport memberRenderer from \"@/views/ManageOrganization/manageOrganizationGrids/memberRenderer.vue\";\r\nimport groupsRenderer from \"@/views/ManageOrganization/manageOrganizationGrids/groupsRenderer.vue\";\r\nimport deleteRowRenderer from \"@/views/ManageOrganization/manageOrganizationGrids/deleteRowRenderer.vue\";\r\nimport { RowShareException } from \"@/api/ApiUtils\";\r\nimport Toaster from \"@/views/layouts/LayoutParts/Toaster.vue\";\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport { gridUtils } from \"@/utils/Grid\";\r\nimport { memberVM } from \"@/viewModels/ManageOrganization/memberVM\";\r\nimport { RouterUtils } from \"@/modules/Router\";\r\nimport { Utils } from \"@/utils/Utilities\";\r\nimport memberEmailRenderer from \"./manageOrganizationGrids/memberEmailRenderer.vue\";\r\nimport EditInvitationDialog from \"./EditInvitationDialog.vue\";\r\nimport InviteLinkDialog from \"./InviteLinkDialog.vue\";\r\nimport { RecaptchaActions } from \"@/views/components/Recaptcha.vue\";\r\nimport Recaptcha from \"@/views/components/Recaptcha.vue\";\r\nimport { OnPremModule } from \"@/store/OnPremStore\";\r\nimport { random } from \"lodash\";\r\n\r\n@Component({\r\n name: \"Members\",\r\n components: {\r\n PageLoadSpinner,\r\n AgGridVue,\r\n ConfirmationDialog,\r\n Toaster,\r\n EditInvitationDialog,\r\n InviteLinkDialog,\r\n Recaptcha,\r\n memberEmailRenderer,\r\n memberEditor,\r\n groupsEditor,\r\n groupsRenderer,\r\n memberRenderer,\r\n booleanRenderer,\r\n deleteRowRenderer,\r\n },\r\n})\r\nexport default class Members extends Vue {\r\n @Prop() organizationId!: string;\r\n orgMembers: memberVM[] | null = null;\r\n memberListColumns: agGrid.ColDef[] = [];\r\n gridApi!: agGrid.GridApi;\r\n columnApi!: agGrid.ColumnApi;\r\n gridOptions!: agGrid.GridOptions;\r\n organization: RowShare.Organization = new RowShare.Organization();\r\n showRemoveModal: boolean = false;\r\n memberRowToDelete: agGrid.IRowNode | null = null;\r\n toasterText: string = \"\";\r\n toasterColor: string = \"\";\r\n showToaster: boolean = false;\r\n defaultColumnSettings: agGrid.ColDef = {};\r\n toasterTimeOut: number = 2000;\r\n membersToSave: Promise[] = [];\r\n currentMember: memberVM | null = null;\r\n currentNode: agGrid.IRowNode | null = null;\r\n currentIndex: number | null = 0;\r\n currentColumn: agGrid.Column | null = null;\r\n recaptchaToken: string | null = null;\r\n recaptchaTokenIsV3: boolean | null = true;\r\n isEditing: boolean = false;\r\n isFiltered: boolean = false;\r\n\r\n gridReady(params: agGrid.GridReadyEvent) {\r\n this.gridApi = params.api;\r\n this.columnApi = params.columnApi;\r\n }\r\n\r\n onRowDataChanged() {\r\n this.gridApi.sizeColumnsToFit();\r\n }\r\n\r\n created() {\r\n EventBus.$on(RowShare.Event.RECAPTCHA_SUCCEEDED, this.onRecaptchaSucceeded);\r\n EventBus.$on([RowShare.Event.RECAPTCHA_FAILED, RowShare.Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n EventBus.$on(RowShare.Event.ORGANIZATION_CHANGED, this.onOrganizationChanged);\r\n EventBus.$on(RowShare.Event.GROUP_CHANGED, this.loadMembers);\r\n }\r\n\r\n destroyed() {\r\n EventBus.$off([\r\n RowShare.Event.RECAPTCHA_SUCCEEDED,\r\n RowShare.Event.RECAPTCHA_FAILED,\r\n RowShare.Event.RECAPTCHA_CANCELEDV2,\r\n RowShare.Event.ORGANIZATION_CHANGED,\r\n RowShare.Event.GROUP_CHANGED\r\n ]);\r\n }\r\n\r\n beforeMount() {\r\n this.defaultColumnSettings = {\r\n menuTabs: [\"filterMenuTab\", \"generalMenuTab\"],\r\n filterParams: {\r\n buttons: [\"reset\", \"apply\"],\r\n closeOnApply: true,\r\n excelMode: \"windows\",\r\n refreshValuesOnOpen: true,\r\n caseSensitive: true,\r\n },\r\n headerClass: \"colHeader\",\r\n };\r\n this.memberListColumns = [\r\n {\r\n headerName: this.$i18n.t(\"MemberGrid_ColTitle_Email\").toString(),\r\n field: \"Email\",\r\n sortable: true,\r\n comparator: gridUtils.stringComparator,\r\n filter: true,\r\n editable: (params) => this.isEmailEditable(params),\r\n cellRenderer: \"memberEmailRenderer\",\r\n resizable: true,\r\n },\r\n {\r\n headerName: this.$i18n.t(\"MemberGrid_ColTitle_Name\").toString(),\r\n field: \"Name\",\r\n sortable: true,\r\n comparator: gridUtils.stringComparator,\r\n filter: true,\r\n editable: true,\r\n resizable: true,\r\n },\r\n {\r\n headerName: this.$i18n.t(\"MemberGrid_ColTitle_Manager\").toString(),\r\n field: \"Manager\",\r\n sortable: true,\r\n resizable: true,\r\n comparator: gridUtils.memberComparator,\r\n filter: true,\r\n filterValueGetter: (params) => this.getManagerName(params),\r\n editable: true,\r\n cellRenderer: \"memberRenderer\",\r\n cellEditor: \"memberEditor\",\r\n },\r\n {\r\n headerName: this.$i18n.t(\"MemberGrid_ColTitle_Groups\").toString(),\r\n field: \"Groups\",\r\n editable: true,\r\n resizable: true,\r\n cellRenderer: \"groupsRenderer\",\r\n cellEditor: \"groupsEditor\",\r\n cellEditorParams: { organizationId: this.organizationId },\r\n },\r\n {\r\n headerName: this.$i18n.t(\"MemberGrid_ColTitle_Enabled\").toString(),\r\n field: \"IsEnabled\",\r\n sortable: true,\r\n filter: true,\r\n filterValueGetter: (params) => this.boolValueToString(params),\r\n cellRenderer: \"booleanRenderer\",\r\n width: 110,\r\n },\r\n {\r\n headerName: this.$i18n.t(\"MemberGrid_ColTitle_ROMember\").toString(),\r\n field: \"IsReadOnly\",\r\n sortable: true,\r\n filter: true,\r\n filterValueGetter: (params) => this.boolValueToString(params),\r\n cellRenderer: \"booleanRenderer\",\r\n width: 115,\r\n },\r\n {\r\n headerName: this.$i18n\r\n .t(\"MemberGrid_ColTitle_Administrator\")\r\n .toString(),\r\n field: \"IsAdministrator\",\r\n sortable: true,\r\n filter: true,\r\n filterValueGetter: (params) => this.boolValueToString(params),\r\n cellRenderer: \"booleanRenderer\",\r\n width: 120,\r\n },\r\n {\r\n headerName: this.$i18n\r\n .t(\"MemberGrid_ColTitle_UniversalOwner\")\r\n .toString(),\r\n field: \"IsUniversalOwner\",\r\n sortable: true,\r\n filter: true,\r\n filterValueGetter: (params) => this.boolValueToString(params),\r\n cellRenderer: \"booleanRenderer\",\r\n flex: 1,\r\n minWidth: 140,\r\n },\r\n {\r\n cellClass: \"noGridCell\",\r\n headerClass: \"emptyColHeader\",\r\n width: 30,\r\n cellRenderer: \"deleteRowRenderer\",\r\n sortable: false,\r\n filter: false,\r\n pinned: \"right\",\r\n lockPosition: true,\r\n lockVisible: true,\r\n lockPinned: true,\r\n suppressMenu: true,\r\n onCellClicked: (params) => this.confirmRemoveMember(params),\r\n },\r\n ];\r\n this.gridOptions = {\r\n stopEditingWhenCellsLoseFocus: true,\r\n rowClassRules: {\r\n \"grid-row-error\": (params) => this.getRowClassRules(params),\r\n },\r\n getLocaleText: (params) => this.getLocaleText(params),\r\n getContextMenuItems: this.getContextMenuItems,\r\n onRowDataChanged: () => this.onRowDataChanged(),\r\n };\r\n this.onOrganizationChanged();\r\n this.loadMembers();\r\n }\r\n\r\n loadMembers() {\r\n this.orgMembers = null;\r\n API.Member.loadForParent(this.organizationId).then((result) => {\r\n if (result) {\r\n this.orgMembers = result.map((m) => new memberVM(m));\r\n }\r\n });\r\n }\r\n\r\n getManagerName(params: agGrid.ValueGetterParams) {\r\n let member = params.data as memberVM;\r\n if (member && member.Manager) {\r\n return member.Manager.Name;\r\n }\r\n return \"\";\r\n }\r\n\r\n boolValueToString(params: agGrid.ValueGetterParams) {\r\n let member = params.data as memberVM;\r\n if (member && params.colDef.field) {\r\n let value = member[params.colDef.field];\r\n if (value === true) {\r\n return this.$i18n.t(\"Common_Yes\").toString();\r\n }\r\n }\r\n return this.$i18n.t(\"Common_No\").toString();\r\n }\r\n\r\n getLocaleText(params: any): string {\r\n if (params.key && params.key != '') {\r\n var key = 'Grid_' + params.key;\r\n if (this.$i18n.te(key)) {\r\n return this.$i18n.t(key, params.variableValues).toString();\r\n }\r\n return params.key\r\n }\r\n return '';\r\n }\r\n\r\n getRowClassRules(params: any): boolean {\r\n return params.data.hasError === true;\r\n }\r\n\r\n async cellValueChanged(event: agGrid.CellValueChangedEvent) {\r\n if (this.membersToSave.length > 0) {\r\n await Promise.all(this.membersToSave);\r\n this.gridApi.refreshClientSideRowModel();\r\n }\r\n if (event?.node?.id) {\r\n let member = this.gridApi.getRowNode(event.node.id)?.data; //event.data as memberVM;\r\n if (\r\n member &&\r\n event.node &&\r\n event.rowIndex != null &&\r\n event.newValue != event.oldValue\r\n ) {\r\n await this.saveMember(member, event.node, event.rowIndex, event.column);\r\n }\r\n }\r\n }\r\n\r\n public getContextMenuItems(\r\n params: agGrid.GetContextMenuItemsParams\r\n ): (string | agGrid.MenuItemDef)[] {\r\n var menuItems: (string | agGrid.MenuItemDef)[] = [];\r\n\r\n if (!params.node?.data.IsUser)\r\n menuItems.push({\r\n name: this.$i18n.t(\"MemberGrid_ResendInvitationMail\").toString(),\r\n action: () => {\r\n if (params.node) API.Member.resendInvitation(params.node.data);\r\n },\r\n });\r\n\r\n return menuItems;\r\n }\r\n\r\n async saveMember(\r\n member: memberVM,\r\n node: agGrid.IRowNode,\r\n rowIndex: number,\r\n column: agGrid.Column\r\n ) {\r\n if (this.membersToSave.length > 0) {\r\n await Promise.all(this.membersToSave);\r\n this.gridApi.refreshClientSideRowModel();\r\n }\r\n\r\n if (\r\n !member ||\r\n !member.Email ||\r\n member.Email == \"\" ||\r\n !Utils.validateEmail(member.Email)\r\n ) {\r\n this.toasterText = this.$i18n.t(\"MemberGrid_InvalidEmail\").toString();\r\n this.toasterTimeOut = 10000;\r\n this.toasterColor = \"error\";\r\n this.showToaster = true;\r\n\r\n member.hasError = true;\r\n node.setData(member);\r\n return;\r\n }\r\n if (member.IsNew) {\r\n member.IsAdding = true;\r\n node.setData(member);\r\n }\r\n if (this.mustShowRecaptcha) {\r\n this.currentMember = member;\r\n this.currentNode = node;\r\n this.currentIndex = rowIndex;\r\n this.currentColumn = column;\r\n this.triggerRecaptcha();\r\n } else {\r\n this.doSaveMember(member, node, rowIndex, column);\r\n }\r\n }\r\n\r\n async doSaveMember(\r\n member: memberVM,\r\n node: agGrid.IRowNode,\r\n rowIndex: number,\r\n column: agGrid.Column\r\n ) {\r\n this.showToaster = false;\r\n let promise = API.Member.save(member);\r\n this.membersToSave.push(promise);\r\n promise\r\n .then((m) => {\r\n if (m && this.gridApi) {\r\n let mvm = new memberVM(m);\r\n mvm.IsAdding = false;\r\n node.setData(mvm);\r\n this.gridApi.refreshClientSideRowModel();\r\n }\r\n EventBus.$emit(RowShare.Event.ORGANIZATION_CHANGED);\r\n })\r\n .catch((exc) => {\r\n let errorMessage = this.$i18n\r\n .t(\"MemberGrid_ErrorSavingMember\")\r\n .toString();\r\n let rsExc = exc as RowShareException;\r\n if (rsExc) {\r\n if (rsExc.code == 96 && this.mustShowRecaptcha) {\r\n // Recaptcha token not valid\r\n this.retryFallbackRecaptcha();\r\n return;\r\n }\r\n errorMessage = errorMessage + \":\" + rsExc.message;\r\n }\r\n this.displayErrorOnNewMember(errorMessage, member, node);\r\n })\r\n .finally(() => {\r\n this.membersToSave.splice(this.membersToSave.indexOf(promise), 1);\r\n });\r\n }\r\n\r\n displayErrorOnNewMember(\r\n errorMessage: string,\r\n member: memberVM,\r\n node: agGrid.IRowNode) {\r\n this.toasterText = errorMessage;\r\n this.toasterTimeOut = 10000;\r\n this.toasterColor = \"error\";\r\n this.showToaster = true;\r\n if (!member.hasError) {\r\n member.hasError = true;\r\n }\r\n member.IsAdding = false;\r\n if (!member.IsNew) {\r\n node.setData(new memberVM(member.initialMember));\r\n } else {\r\n node.setData(member);\r\n }\r\n this.gridApi.refreshClientSideRowModel();\r\n }\r\n\r\n triggerRecaptcha() {\r\n this.currentMember!.RecaptchaToken = \"\";\r\n EventBus.$emit(\r\n RowShare.Event.RECAPTCHA_SHOW,\r\n RecaptchaActions.ManageOrganization\r\n );\r\n }\r\n\r\n onRecaptchaSucceeded(successEvent: any) {\r\n this.currentMember!.RecaptchaToken = successEvent.token;\r\n this.currentMember!.RecaptchaTokenIsV3 = successEvent.isV3;\r\n this.currentMember!.IsAdding = false;\r\n\r\n this.doSaveMember(\r\n this.currentMember!,\r\n this.currentNode!,\r\n this.currentIndex!,\r\n this.currentColumn!\r\n );\r\n }\r\n\r\n retryFallbackRecaptcha() {\r\n this.currentMember!.RecaptchaToken = \"\";\r\n EventBus.$emit(RowShare.Event.RECAPTCHA_SHOWV2);\r\n }\r\n\r\n onRecaptchaFailedOrCanceled(reason: string) {\r\n this.currentMember!.RecaptchaToken = \"\";\r\n this.currentMember!.RecaptchaTokenIsV3 = true;\r\n this.currentMember!.IsAdding = false;\r\n let message = this.$i18n.t(\"Recaptcha_Invalid\").toString();\r\n if (reason)\r\n message = message + \" : \" + reason;\r\n this.displayErrorOnNewMember(message, this.currentMember!,\r\n this.currentNode!);\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED,\r\n {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: RowShare.NotificationType.error,\r\n message: message,\r\n });\r\n }\r\n\r\n closeToaster() {\r\n this.showToaster = false;\r\n }\r\n\r\n isEmailEditable(params: agGrid.ColumnFunctionCallbackParams): boolean {\r\n let member = params.data as memberVM;\r\n return member.IsNew;\r\n }\r\n\r\n addNewMember() {\r\n if (this.gridApi) {\r\n let newMember = new memberVM(null);\r\n newMember.OrganizationId = this.organizationId;\r\n newMember.IsNew = true;\r\n var rowNodeTransactions = this.gridApi.applyTransaction({\r\n add: [newMember],\r\n });\r\n if (\r\n rowNodeTransactions &&\r\n rowNodeTransactions.add &&\r\n rowNodeTransactions.add.length > 0\r\n ) {\r\n var rowIndex = rowNodeTransactions.add[0].rowIndex;\r\n this.gridApi.refreshClientSideRowModel();\r\n if (rowIndex != undefined) {\r\n let editCell: agGrid.StartEditingCellParams = {\r\n rowIndex: rowIndex,\r\n colKey: \"Email\",\r\n };\r\n this.gridApi.startEditingCell(editCell);\r\n }\r\n }\r\n }\r\n }\r\n\r\n onOrganizationChanged() {\r\n API.Organization.load(this.organizationId, { cache: false }).then((org) => {\r\n if (org) {\r\n this.organization = org;\r\n }\r\n });\r\n }\r\n\r\n confirmRemoveMember(params: agGrid.ColumnFunctionCallbackParams) {\r\n this.memberRowToDelete = params.node as agGrid.IRowNode;\r\n this.showRemoveModal = true;\r\n }\r\n\r\n deleteMember() {\r\n if (this.memberRowToDelete) {\r\n let memberToDelete = this.memberRowToDelete.data as memberVM;\r\n // If member is new it as not yet been saved so no need to call API to remove it\r\n if (memberToDelete.IsNew) {\r\n this.removeMemberFromGrid(memberToDelete);\r\n } else {\r\n API.Member.remove(memberToDelete).then((result) => {\r\n if (result === true) {\r\n this.removeMemberFromGrid(memberToDelete);\r\n }\r\n });\r\n }\r\n }\r\n this.showRemoveModal = false;\r\n this.memberRowToDelete = null;\r\n }\r\n\r\n removeMemberFromGrid(memberToRemove: memberVM) {\r\n EventBus.$emit(RowShare.Event.ORGANIZATION_CHANGED);\r\n this.gridApi.applyTransaction({ remove: [memberToRemove] });\r\n }\r\n\r\n cancelMemberDeletion() {\r\n this.memberRowToDelete = null;\r\n this.showRemoveModal = false;\r\n }\r\n\r\n cellEditingStarted() {\r\n this.isEditing = true;\r\n }\r\n\r\n cellEditingStopped(params: agGrid.ColumnFunctionCallbackParams) {\r\n this.isEditing = false;\r\n }\r\n\r\n get canAddNewRow(): boolean {\r\n return !this.isEditing && !this.isFiltered;\r\n }\r\n\r\n onFilterChanged(event: agGrid.FilterChangedEvent) {\r\n this.isFiltered = event.api?.isAnyFilterPresent();\r\n }\r\n\r\n get AddNewRowToolTip(): string {\r\n if (this.isFiltered) {\r\n return this.$i18n.t('MemberGrid_CannotAddNewWhenFiltered').toString();\r\n }\r\n return \"\";\r\n }\r\n\r\n get getButtonLabel(): string {\r\n if (this.organization.InTrial) {\r\n return this.$t(\"ManageOrganization_Checkout\").toString();\r\n } else return this.$t(\"ManageOrganization_UpdateSubscription\").toString();\r\n }\r\n\r\n get checkoutLink() {\r\n const queryStringReturnUrl = RouterUtils.getCaseInsentiveQuery(\r\n this.$route,\r\n \"ReturnUrl\"\r\n );\r\n\r\n return {\r\n name: \"SubscriptionCheckOut\",\r\n params: { organizationId: this.organizationId },\r\n query: {\r\n ReturnUrl: queryStringReturnUrl\r\n ? queryStringReturnUrl\r\n : this.$route.fullPath,\r\n },\r\n };\r\n }\r\n\r\n get contactLink() {\r\n return {\r\n name: \"Contact\",\r\n query: {\r\n ReturnUrl: RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\"),\r\n },\r\n };\r\n }\r\n\r\n get memberToDeleteInfos() {\r\n if (this.memberRowToDelete) {\r\n return {\r\n memberName: this.memberRowToDelete.data.Name,\r\n memberEmail: this.memberRowToDelete.data.Email,\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n get isNotOnPrem() {\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get mustShowRecaptcha() {\r\n return this.isNotOnPrem && process.env.NODE_ENV != \"development\";\r\n }\r\n\r\n updateSubscription() {\r\n if(this.organization.InTrial) {\r\n this.$router.push(this.checkoutLink);\r\n }\r\n else {\r\n EventBus.$emit(RowShare.Event.UPDATE_SUBSCRIPTION_REQUEST, { organizationId: this.organizationId});\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Members.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Members.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Members.vue?vue&type=template&id=190b4a5e&scoped=true&\"\nimport script from \"./Members.vue?vue&type=script&lang=ts&\"\nexport * from \"./Members.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Members.vue?vue&type=style&index=0&id=190b4a5e&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 \"190b4a5e\",\n null\n \n)\n\nexport default component.exports","\r\n import {Vue, Component, Prop } from 'vue-property-decorator';\r\n import * as API from '@/api/Api';\r\n import * as Models from '@/models/RowShare';\r\n import PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n import OrganizationSettings from \"@/views/ManageOrganization/OrganizationSettings.vue\";\r\n import OrganizationInfos from \"@/views/ManageOrganization/OrganizationInfos.vue\";\r\n import Groups from \"@/views/ManageOrganization/Groups.vue\";\r\n import Members from '@/views/ManageOrganization/Members.vue';\r\n import { ListAccessAuditAccesLevel, ListAccessAuditList } from '@/models/RowShare';\r\n import i18n from '@/modules/Localization';\r\nimport { Utils } from '@/utils/Utilities';\r\n\r\n @Component({\r\n name: 'ListAccessAudit',\r\n components: {PageLoadSpinner, OrganizationSettings, OrganizationInfos, Groups, Members}\r\n })\r\n export default class ListAccessAudit extends Vue{\r\n @Prop() organizationId!: string;\r\n\r\n audit: Models.ListAccessAudit | null = null;\r\n tree: TreeNodeVM[] | null = null;\r\n\r\n search: string | null = null;\r\n\r\n async created() {\r\n this.audit = await API.ListAccessAudit.load(this.organizationId);\r\n\r\n var tree = [];\r\n\r\n if(this.audit?.Admins) {\r\n var adminsNode = new TreeNodeVM();\r\n\r\n adminsNode.id = \"admins\";\r\n adminsNode.name = this.$i18n.t(\"ListAccessAudit_Admins\").toString();\r\n adminsNode.search = adminsNode.name;\r\n adminsNode.icon = \"fa fa-crown\";\r\n adminsNode.children = this.audit.Admins.map(a => TreeNodeVM.fromMember(a, 'admins'));\r\n\r\n tree.push(adminsNode);\r\n }\r\n\r\n if(this.audit?.UniversalOwners) {\r\n var universalOwnersNode = new TreeNodeVM();\r\n\r\n universalOwnersNode.id = \"universal-owners\";\r\n universalOwnersNode.name = this.$i18n.t(\"ListAccessAudit_UniversalOwners\").toString();\r\n universalOwnersNode.search = universalOwnersNode.name;\r\n universalOwnersNode.icon = \"fa fa-user-cog\";\r\n universalOwnersNode.children = this.audit.UniversalOwners.map(a => TreeNodeVM.fromMember(a, \"universal_owners\"));\r\n\r\n tree.push(universalOwnersNode);\r\n }\r\n\r\n if(this.audit?.RootFolder)\r\n tree.push(TreeNodeVM.fromFolder(this.audit?.RootFolder));\r\n\r\n this.tree = tree;\r\n }\r\n\r\n filter (item: TreeNodeVM, search: string, textKey: string) {\r\n\r\n if(item.search.indexOf(search.toLowerCase()) > -1)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n getAccessModeText(accessMode: ListAccessAuditAccesLevel | boolean) : string {\r\n if(Utils.isBoolean(accessMode)) {\r\n if(accessMode === true) {\r\n return \"Yes\";\r\n }\r\n else {\r\n return \"No\";\r\n }\r\n }\r\n if(accessMode === ListAccessAuditAccesLevel.All)\r\n return this.$i18n.t(\"ListAccessAudit_All\").toString();\r\n else if(accessMode === ListAccessAuditAccesLevel.Owned)\r\n return this.$i18n.t(\"ListAccessAudit_Owned\").toString();\r\n else if(accessMode === ListAccessAuditAccesLevel.None)\r\n return this.$i18n.t(\"ListAccessAudit_None\").toString();\r\n else\r\n return this.$i18n.t(\"ListAccessAudit_Error\").toString();\r\n }\r\n\r\n countReadAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanRead != ListAccessAuditAccesLevel.None).length;\r\n }\r\n countFullReadAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanRead == ListAccessAuditAccesLevel.All).length;\r\n }\r\n countPartialReadAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanRead == ListAccessAuditAccesLevel.Owned).length;\r\n }\r\n countCreateAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanCreate).length;\r\n }\r\n countUpdateAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanUpdate != ListAccessAuditAccesLevel.None).length;\r\n }\r\n countFullUpdateAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanUpdate == ListAccessAuditAccesLevel.All).length;\r\n }\r\n countPartialUpdateAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanUpdate == ListAccessAuditAccesLevel.Owned).length;\r\n }\r\n countSuppressAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanSuppress != ListAccessAuditAccesLevel.None).length;\r\n }\r\n countFullSuppressAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanSuppress == ListAccessAuditAccesLevel.All).length;\r\n }\r\n countPartialSuppressAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanSuppress == ListAccessAuditAccesLevel.Owned).length;\r\n }\r\n countAssignAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanAssign != ListAccessAuditAccesLevel.None).length;\r\n }\r\n countFullAssignAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanAssign == ListAccessAuditAccesLevel.All).length;\r\n }\r\n countPartialAssignAccess(table: ListAccessAuditList) : number {\r\n return table.Accesses.filter(t => t.CanAssign == ListAccessAuditAccesLevel.Owned).length;\r\n }\r\n\r\n expandAll() {\r\n (this.$refs.treeview).updateAll(true); \r\n }\r\n\r\n collapseAll() {\r\n (this.$refs.treeview).updateAll(false); \r\n }\r\n\r\n getCsvUrl() {\r\n return \"/api/listaccessaudit/export/\" + this.organizationId;\r\n }\r\n\r\n getJsonUrl() {\r\n return \"/api/listaccessaudit/load/\" + this.organizationId;\r\n }\r\n\r\n getYamlUrl() {\r\n return \"/api/listaccessaudit/load/\" + this.organizationId + \"?f=yaml\";\r\n }\r\n }\r\n\r\n class TreeNodeVM {\r\n id!: string;\r\n name!: string;\r\n url: string | null = null;\r\n icon!: string;\r\n openedIcon: string | null = null;\r\n title: string | null = null;\r\n children!: TreeNodeVM[] | null;\r\n search!: string;\r\n\r\n table: Models.ListAccessAuditList | null = null;\r\n member: Models.ListAccessAuditMember | null = null;\r\n access: Models.ListAccessAuditAccess | null = null;\r\n\r\n static fromFolder(folder: Models.ListAccessAuditFolder) : TreeNodeVM {\r\n var res = new TreeNodeVM();\r\n \r\n res.id = folder.Id;\r\n res.name = folder.Name;\r\n res.search = folder.Name.toLowerCase();\r\n res.icon = 'fas fa-folder';\r\n res.openedIcon = 'fas fa-folder-open';\r\n\r\n res.children = [];\r\n res.children.push(...folder.Folders.map(f => TreeNodeVM.fromFolder(f)));\r\n res.children.push(...folder.Tables.map(t => TreeNodeVM.fromTable(t)));\r\n\r\n return res;\r\n }\r\n \r\n static fromTable(table: Models.ListAccessAuditList) : TreeNodeVM {\r\n var res = new TreeNodeVM();\r\n res.id = table.Id;\r\n res.name = table.Name;\r\n res.search = table.Name.toLowerCase() + '|' + table.Id;\r\n res.url = table.Url;\r\n res.icon = 'fal fa-table';\r\n res.table = table;\r\n res.children = [];\r\n\r\n if(table.ExternalAccess) {\r\n var ext = new TreeNodeVM();\r\n ext.id = table.Id + \"_ext\";\r\n ext.name = i18n.t(\"ListAccessAudit_ExternalAccess\").toString();\r\n ext.search = ext.name.toLowerCase();\r\n ext.icon = \"fal fa-globe\";\r\n ext.title = i18n.t(\"ListAccessAudit_ExternalAccessDescription\").toString();\r\n res.children.push(ext);\r\n }\r\n\r\n res.children.push(...table.Accesses.map(acc => TreeNodeVM.fromAccess(acc, table.Id)));\r\n\r\n return res;\r\n }\r\n\r\n static fromMember(member: Models.ListAccessAuditMember, idPrefix: string | null) : TreeNodeVM {\r\n var res = new TreeNodeVM();\r\n\r\n res.id = (idPrefix ? idPrefix : '') + \"_\" + member.Email;\r\n res.name = member.Name;\r\n res.icon = 'fal fa-user';\r\n res.children = null;\r\n res.member = member;\r\n\r\n res.search = (member.Name?.toLowerCase() ?? \"\") + \"|\" + member.Email.toLowerCase();\r\n\r\n return res;\r\n }\r\n\r\n static fromAccess(access: Models.ListAccessAuditAccess, tableId: string) : TreeNodeVM {\r\n var res = TreeNodeVM.fromMember(access.Member, tableId);\r\n res.access = access;\r\n return res;\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListAccessAudit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListAccessAudit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListAccessAudit.vue?vue&type=template&id=d57a6f8c&scoped=true&\"\nimport script from \"./ListAccessAudit.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListAccessAudit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListAccessAudit.vue?vue&type=style&index=0&id=d57a6f8c&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 \"d57a6f8c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"600\"},on:{\"click:outside\":_vm.closeMe,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.closeMe.apply(null, arguments)}},model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_c('v-card',[_c('v-card-title',[_c('div',[_vm._v(_vm._s(_vm.$t('SubscriptionUpdateDialog_Title')))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.closeMe}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(_vm.loading)?_c('div',[(_vm.loading)?_c('page-load-spinner'):_vm._e()],1):(_vm.errorMessage)?_c('div',[_c('v-card-text',[_c('div',{staticClass:\"rounded-md pa-4 text-left error--text error lighten-2 process-error\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"error-icon\",attrs:{\"cols\":\"1\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"fal fa-times-circle\")])],1),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")])],1)],1)]),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.closeMe}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_Close'))+\"\\n \")])],1)],1):(_vm.currentStep == 'update')?_c('div',[_c('v-card-text',[_c('div',{staticClass:\"subscription-description\"},[_vm._v(_vm._s(_vm.subscriptionDescription))]),_vm._v(\" \"),_c('v-row',{staticClass:\"subscription-label\",attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SubscriptionUpdateDialog_MembersCountLabel'))+\"\\n \"),_c('v-text-field',{staticClass:\"ml-2 member-count--input\",attrs:{\"hide-details\":\"true\",\"single-line\":\"\",\"dense\":\"\",\"solo\":\"\",\"type\":\"number\",\"min\":\"1\",\"placeholder\":\"ex : 13\"},model:{value:(_vm.membersCount),callback:function ($$v) {_vm.membersCount=$$v},expression:\"membersCount\"}})],1)],1),_vm._v(\" \"),(_vm.notEnoughUsers)?_c('v-card-text',[_c('div',{staticClass:\"info-tooltip error--text\"},[_vm._v(_vm._s(_vm.cannotEstimateTooltip))])]):_vm._e(),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-tooltip',{staticClass:\"d-flex mr-3\",attrs:{\"top\":\"\",\"disabled\":!_vm.cannotEstimate || _vm.notEnoughUsers},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":_vm.cannotEstimate},on:{\"click\":_vm.onEstimateClick}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SubscriptionUpdateDialog_Estimate'))+\"\\n \")])],1)]}}])},[_vm._v(\" \"),_c('div',{staticClass:\"info-tooltip\"},[_vm._v(_vm._s(_vm.cannotEstimateTooltip))])])],1)],1):(_vm.currentStep == 'estimate')?_c('div',[_c('v-card-text',[_c('div',{staticClass:\"subscription-description\"},[_vm._v(_vm._s(_vm.updateDescription))])]),_vm._v(\" \"),(!_vm.isDowngrade)?_c('v-card-text',[_c('div',{staticClass:\"subscription-description\"},[_vm._v(_vm._s(_vm.prorataDescription))])]):_vm._e(),_vm._v(\" \"),_c('v-card-text',[(_vm.currentEstimate.ImmediateAmountDue)?_c('v-row',{staticClass:\"subscription-label\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_vm._v(_vm._s(_vm.$t('SubscriptionUpdateDialog_ImmediateBilling')))]),_vm._v(\" \"),_c('v-col',{staticClass:\"estimate-amount\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.getAmountString(_vm.currentEstimate.ImmediateAmountDue)))])],1):_vm._e(),_vm._v(\" \"),(_vm.currentEstimate.UnbilledAmountDue)?_c('v-row',{staticClass:\"subscription-label\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_vm._v(_vm._s(_vm.$t('SubscriptionUpdateDialog_UnbilledAmount')))]),_vm._v(\" \"),_c('v-col',{staticClass:\"estimate-amount\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.getAmountString(_vm.currentEstimate.UnbilledAmountDue)))])],1):_vm._e(),_vm._v(\" \"),(_vm.currentEstimate.NextInvoiceAmount)?_c('v-row',{staticClass:\"subscription-label\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_vm._v(_vm._s(_vm.$t('SubscriptionUpdateDialog_NextInvoiceAmount')))]),_vm._v(\" \"),_c('v-col',{staticClass:\"estimate-amount\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.getAmountString(_vm.currentEstimate.NextInvoiceAmount)))])],1):_vm._e(),_vm._v(\" \"),(_vm.currentEstimate.NextBillingDate)?_c('v-row',{staticClass:\"subscription-label\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_vm._v(_vm._s(_vm.$t('SubscriptionUpdateDialog_NextBillingDate')))]),_vm._v(\" \"),_c('v-col',{staticClass:\"estimate-amount\",attrs:{\"cols\":\"3\"}},[_vm._v(_vm._s(_vm.getDateString(_vm.currentEstimate.NextBillingDate)))])],1):_vm._e()],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.backToUpdate}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_Back'))+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.processingUpdate},on:{\"click\":_vm.onUpdateSubscriptionClick}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_Confirm'))+\"\\n \")])],1)],1):(_vm.currentStep == 'updateConfirmed')?_c('div',[_c('v-card-text',[_c('div',{staticClass:\"subscription-description\"},[_vm._v(_vm._s(_vm.updateConfirmationDescription))])]),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.closeMe}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_Close'))+\"\\n \")])],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Vue} from 'vue-property-decorator';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport * as models from '@/models/RowShare';\r\nimport * as API from '@/api/Api';\r\nimport { EventBus } from '@/modules/EventBus';\r\n\r\n@Component({name: 'SubscriptionUpdateDialog', components: { PageLoadSpinner }})\r\nexport default class SubscriptionUpdateDialog extends Vue {\r\n organization: models.Organization | null = null;\r\n showMe: boolean = false;\r\n currentStep: \"update\" | \"estimate\" | \"updateConfirmed\" = \"update\";\r\n loading: boolean = false;\r\n errorMessage: string = \"\";\r\n membersCount: number = 0;\r\n currentEstimate: models.SubscriptionEstimate | null = null;\r\n processingUpdate: boolean = false;\r\n\r\n created() {\r\n EventBus.$on(models.Event.UPDATE_SUBSCRIPTION_REQUEST, this.init);\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([models.Event.UPDATE_SUBSCRIPTION_REQUEST]);\r\n }\r\n\r\n async init(event: models.updateSubscriptionRequestEventParams) {\r\n this.loading = true;\r\n this.showMe = true;\r\n API.Organization.load(event.organizationId)\r\n .then((org) => {\r\n this.organization = org;\r\n if(!this.organization) {\r\n this.errorMessage = this.$i18n.t('SubscriptionUpdateDialog_OrganizationNotFound').toString(); \r\n }\r\n else {\r\n this.membersCount = this.organization.InTrial ? this.organization.ActiveMemberCount : this.organization.MaximumMemberCount;\r\n this.currentStep = \"update\";\r\n }\r\n })\r\n .finally(() => {this.loading = false;});\r\n\r\n }\r\n\r\n closeMe() {\r\n this.organization = null;\r\n this.currentStep = \"update\";\r\n this.showMe = false;\r\n }\r\n\r\n onEstimateClick() {\r\n if(!this.organization) {\r\n return;\r\n }\r\n this.loading = true; \r\n API.Organization.estimateSubscriptionUpdate(this.organization.Id, this.membersCount)\r\n .then((result) => {\r\n if(result?.IsValid) {\r\n this.currentEstimate = result.Value;\r\n this.currentStep = \"estimate\";\r\n }\r\n })\r\n .finally(() => {this.loading = false;});\r\n }\r\n\r\n backToUpdate() {\r\n this.currentEstimate = null;\r\n this.currentStep = \"update\";\r\n }\r\n\r\n onUpdateSubscriptionClick() {\r\n if(!this.organization) {\r\n return;\r\n }\r\n this.processingUpdate = true;\r\n API.Organization.updateSubscription(this.organization.Id, this.membersCount)\r\n .then((result) => {\r\n if(result?.IsValid && result?.Value) {\r\n this.currentStep = \"updateConfirmed\";\r\n }\r\n })\r\n .finally(() => {this.processingUpdate = false;});\r\n }\r\n\r\n getAmountString(amount: number) {\r\n if(!this.currentEstimate) {\r\n return \"\";\r\n }\r\n else {\r\n var amountInDecimal = (amount / 100).toLocaleString(navigator.language)\r\n if(this.currentEstimate.IsInEuro) {\r\n return `${amountInDecimal} €`;\r\n }\r\n else {\r\n return `$ ${amountInDecimal}`;\r\n }\r\n }\r\n }\r\n\r\n getDateString(date: Date) {\r\n return new Date(date).toLocaleDateString(navigator.language, {day: 'numeric', month: 'short', year: 'numeric'}) \r\n }\r\n\r\n get subscriptionDescription() {\r\n if(this.organization) {\r\n return this.$i18n.t('SubscriptionUpdateDialog_Description', \r\n {activeMemberCount: this.organization.ActiveMemberCount, maxMemberCount: this.organization.MaximumMemberCount}).toString();\r\n }\r\n }\r\n\r\n get cannotEstimate() {\r\n if(!this.organization) {\r\n return true;\r\n }\r\n return (this.notEnoughUsers || this.organization.InTrial || this.membersCount == this.organization.MaximumMemberCount);\r\n }\r\n\r\n get notEnoughUsers() {\r\n if(!this.organization) {\r\n return true;\r\n }\r\n return (this.membersCount < this.organization.ActiveMemberCount)\r\n }\r\n\r\n get updateDescription() {\r\n var values = {\r\n oldMemberCount: this.organization?.MaximumMemberCount,\r\n newMemberCount: this.membersCount\r\n }\r\n return this.$i18n.t('SubscriptionUpdateDialog_UpdateDescription', values).toString();\r\n }\r\n\r\n get prorataDescription() {\r\n if(!this.currentEstimate) {\r\n return \"\";\r\n }\r\n var values = {\r\n prorataInvoice: this.currentEstimate.ImmediateAmountDue ? this.$i18n.t('SubscriptionUpdateDialog_Immediately').toString() :\r\n this.$i18n.t('SubscriptionUpdateDialog_NextInvoice').toString()\r\n };\r\n\r\n return this.$i18n.t('SubscriptionUpdateDialog_Prorata', values).toString();\r\n }\r\n\r\n get updateConfirmationDescription() {\r\n return this.$i18n.t('SubscriptionUpdateDialog_UpdateConfirmation');\r\n }\r\n\r\n get cannotEstimateTooltip() {\r\n if(!this.organization) {\r\n return \"\";\r\n }\r\n if(this.membersCount == (this.organization?.MaximumMemberCount ?? 0)) {\r\n return this.$i18n.t('SubscriptionUpdateDialog_NoMemberCountChange').toString();\r\n }\r\n else if(this.membersCount < (this.organization?.ActiveMemberCount ?? 0)) {\r\n return this.$i18n.t('SubscriptionUpdateDialog_NotEnoughUsers',\r\n {activeMemberCount: this.organization.ActiveMemberCount, maxMemberCount: this.organization.MaximumMemberCount}).toString();\r\n }\r\n return \"\";\r\n }\r\n\r\n get isDowngrade() {\r\n if(!this.organization) {\r\n return false;\r\n }\r\n return this.membersCount < this.organization.MaximumMemberCount;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SubscriptionUpdateDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SubscriptionUpdateDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubscriptionUpdateDialog.vue?vue&type=template&id=e08be296&scoped=true&\"\nimport script from \"./SubscriptionUpdateDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubscriptionUpdateDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubscriptionUpdateDialog.vue?vue&type=style&index=0&id=e08be296&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 \"e08be296\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Component, Prop } from 'vue-property-decorator';\r\nimport Bandeau from '@/views/layouts/LayoutParts/Bandeau.vue';\r\nimport * as API from '@/api/Api';\r\nimport * as Models from '@/models/RowShare';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport OrganizationSettings from \"@/views/ManageOrganization/OrganizationSettings.vue\";\r\nimport ListAccessAudit from \"@/views/ManageOrganization/ListAccessAudit.vue\";\r\nimport OrganizationInfos from \"@/views/ManageOrganization/OrganizationInfos.vue\";\r\nimport Groups from \"@/views/ManageOrganization/Groups.vue\";\r\nimport Members from '@/views/ManageOrganization/Members.vue';\r\nimport { ReturnUrlHandler } from '@/views/ReturnUrl';\r\nimport SubscriptionUpdateDialog from '@/views/ManageOrganization/SubscriptionUpdateDialog.vue';\r\n\r\n@Component({\r\n name: 'ManageOrganization',\r\n components: {Bandeau, PageLoadSpinner, OrganizationSettings, OrganizationInfos, Groups, Members, ListAccessAudit, SubscriptionUpdateDialog}\r\n})\r\nexport default class ManageOrganization extends ReturnUrlHandler {\r\n\r\n @Prop() organizationId!: string;\r\n private organization!:Models.Organization;\r\n private tab:string=\"parent\";\r\n private arrayTab:{tabName:string, show:boolean}[]=[\r\n {tabName: 'settings', show: false},\r\n {tabName: 'members', show: false},\r\n {tabName: 'groups', show:false},\r\n {tabName: 'permissionAudit', show:false},\r\n ]\r\n\r\n created(){\r\n this.organization = new Models.Organization();\r\n API.Organization.load(this.organizationId).then(res=>{\r\n if(res){\r\n this.organization = res;\r\n if(this.organization.IsCurrentUserAdministrator){\r\n this.arrayTab[0].show = true;\r\n this.arrayTab[1].show = true;\r\n this.arrayTab[2].show = true;\r\n this.arrayTab[3].show = true;\r\n }\r\n }\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ManageOrganization.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ManageOrganization.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageOrganization.vue?vue&type=template&id=075b87d0&scoped=true&\"\nimport script from \"./ManageOrganization.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageOrganization.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ManageOrganization.vue?vue&type=style&index=0&id=075b87d0&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 \"075b87d0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[_c('v-card',[_c('v-card-text',[_c('div',[_c('v-text-field',{ref:\"searchField\",staticClass:\"mr-8\",attrs:{\"dense\":\"\",\"label\":\"Search\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.searchAll.apply(null, arguments)}},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"mb-1\",attrs:{\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":function($event){return _vm.searchAll()}}},[_vm._v(\"Search\")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mb-1\",attrs:{\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":function($event){return _vm.searchUsers()}}},[_vm._v(\"Find users\")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mb-1\",attrs:{\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":function($event){return _vm.searchOrganizations()}}},[_vm._v(\"Find organizations\")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mb-1\",attrs:{\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":function($event){return _vm.searchTables()}}},[_vm._v(\"Find tables\")]),_vm._v(\" \"),_c('v-spacer')],1)]),_vm._v(\" \"),(_vm.userSearchResults)?_c('div',_vm._l((_vm.userSearchResults),function(user){return _c('div',{key:user.Email,staticClass:\"mb-2\"},[_c('div',[_c('router-link',{staticClass:\"bo-user-header\",attrs:{\"to\":{ name: 'BackOfficeUser', params: {userId: user.Id}}}},[_c('bigram',{attrs:{\"dense\":\"\",\"rowOwner\":user.Owner}}),_vm._v(\" \"),_c('b',[_vm._v(_vm._s(user.Email))]),(user.NickName)?_c('span',{staticClass:\"ml-1 mr-1\"},[_vm._v(\"-\")]):_vm._e(),(user.NickName)?_c('span',[_vm._v(_vm._s(user.NickName))]):_vm._e()],1)],1)])}),0):_vm._e(),_vm._v(\" \"),(_vm.orgSearchResults)?_c('div',{staticClass:\"ml-1\"},_vm._l((_vm.orgSearchResults),function(org){return _c('div',{key:org.Id,staticClass:\"mb-4\"},[_c('router-link',{class:org.IsEnabled?'':'warning--text',attrs:{\"to\":{ name: 'BackOfficeOrganization', params: { organizationId: org.Id } }}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-link\")]),_vm._v(\" \"+_vm._s(org.Name)+\" - \"+_vm._s(org.Id)+\" \"),(!org.IsEnabled)?_c('span',[_vm._v(\"(disabled)\")]):_vm._e()],1)],1)}),0):_vm._e(),_vm._v(\" \"),(_vm.listSearchResults)?_c('div',_vm._l((_vm.listSearchResults),function(list){return _c('div',{key:list.Id,staticClass:\"mb-2\"},[_c('div',[_c('b',[_vm._v(\"Table: \")]),_c('span',[_vm._v(_vm._s(list.Name))])]),_vm._v(\" \"),_c('div',[_c('b',[_vm._v(\"Description: \")]),_c('span',[_vm._v(_vm._s(list.Description))])]),_vm._v(\" \"),_c('div',[_c('b',[_vm._v(\"Organization: \")]),_c('span',[_vm._v(_vm._s(list.OrganizationName))])]),_vm._v(\" \"),_c('div',{staticClass:\"ml-4\"},[_c('router-link',{attrs:{\"to\":{ name: 'BackOfficeOrganization', params: { organizationId: list.OrganizationId } }}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-link\")]),_vm._v(_vm._s(list.OrganizationId)+\"\\r\\n \")],1)],1)])}),0):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"mb-4\",attrs:{\"fluid\":\"\"}},[(!_vm.user)?_c('page-load-spinner'):_c('div',[_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n ID: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.user.Id)+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n Email: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.user.Email)+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n FirstName: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.user.FirstName)+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n LastName: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.user.LastName)+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n NickName: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.user.NickName)+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n Created: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.formatDate(_vm.user.CreationDate))+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n Last seen: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.formatDate(_vm.user.LastSeenDate))+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n Last login: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.formatDate(_vm.user.LastLoginDate))+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n Last login provider: \\r\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\r\\n \"+_vm._s(_vm.user.LastLoginProvider)+\"\\r\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n Options:\\r\\n \")]),_vm._v(\" \"),_c('v-col',[(_vm.user.PreviewFeaturesEnabled)?_c('v-chip',{attrs:{\"small\":\"\",\"label\":\"\",\"color\":\"primary\"}},[_vm._v(\"Preview features enabled\")]):_vm._e(),_vm._v(\" \"),(_vm.user.CreatedFromMsTeams)?_c('v-chip',{attrs:{\"small\":\"\",\"label\":\"\",\"color\":\"primary\"}},[_vm._v(\"Created from MS Teams\")]):_vm._e(),_vm._v(\" \"),(_vm.user.EmailNotifications)?_c('v-chip',{attrs:{\"small\":\"\",\"label\":\"\",\"color\":\"primary\"}},[_vm._v(\"Email notifications\")]):_vm._e(),_vm._v(\" \"),(_vm.user.HasToConfirmEmail)?_c('v-chip',{attrs:{\"small\":\"\",\"label\":\"\",\"color\":\"primary\"}},[_vm._v(\"Has to confirm email\")]):_vm._e()],1)],1),_vm._v(\" \"),(_vm.user.HasToConfirmEmail)?_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\r\\n Confirmation codes:\\r\\n \")]),_vm._v(\" \"),_c('v-col',[(_vm.user.EmailConfirmationCodes.length == 0)?_c('v-btn',{attrs:{\"to\":{name: 'ConfirmEmail'},\"target\":\"_blank\",\"small\":\"\",\"text\":\"\",\"color\":\"primary\"}},[_vm._v(\"No valid codes, click to go to /ConfirmEmail\")]):_c('div',_vm._l((_vm.user.EmailConfirmationCodes),function(code){return _c('v-row',{key:code},[_c('v-col',[_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(code))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"outlined\":\"\",\"color\":\"primary\",\"tile\":\"\"},on:{\"click\":function($event){return _vm.getConfirmationLink(code)}}},[_vm._v(\"Copy link\")])],1)],1)}),1)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-switch',{staticClass:\"ma-0\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"inset\":\"\"},on:{\"change\":_vm.saveInternal},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"label\"},[_vm._v(\"Internal\")])]},proxy:true}],null,false,1893704487),model:{value:(_vm.user.Internal),callback:function ($$v) {_vm.$set(_vm.user, \"Internal\", $$v)},expression:\"user.Internal\"}})],1)],1):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-switch',{staticClass:\"ma-0\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"inset\":\"\"},on:{\"change\":_vm.saveIsRSAdmin},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"label\"},[_vm._v(\"Is RS Admin\")])]},proxy:true}]),model:{value:(_vm.user.IsAdministrator),callback:function ($$v) {_vm.$set(_vm.user, \"IsAdministrator\", $$v)},expression:\"user.IsAdministrator\"}})],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 user--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-switch',{staticClass:\"ma-0\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"inset\":\"\"},on:{\"change\":_vm.saveIsLockedOut},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"label\"},[_vm._v(\"Is locked out\")])]},proxy:true}]),model:{value:(_vm.user.IsLockedOut),callback:function ($$v) {_vm.$set(_vm.user, \"IsLockedOut\", $$v)},expression:\"user.IsLockedOut\"}})],1)],1),_vm._v(\" \"),_c('b',[_vm._v(\"Organizations (\"+_vm._s(_vm.user.OrganizationsCount)+\")\")]),_vm._v(\" \"),_c('div',{staticClass:\"ml-4\"},_vm._l((_vm.user.Organizations),function(org){return _c('div',{key:org.Id},[_c('router-link',{class:org.IsEnabled?'':'warning--text',attrs:{\"to\":{ name: 'BackOfficeOrganization', params: { organizationId: org.Id } }}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-link\")]),_vm._v(\" \"+_vm._s(org.Name)+\" - \"+_vm._s(org.Id)+\" \"),(!org.IsEnabled)?_c('span',[_vm._v(\"(disabled)\")]):_vm._e()],1)],1)}),0),_vm._v(\" \"),_c('div',{staticClass:\"mt-6 ml-4\"},[_c('v-btn',{staticClass:\"mb-1\",attrs:{\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":function($event){return _vm.deleteUser()}}},[_vm._v(\"Delete user\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Vue, Component, Prop } from 'vue-property-decorator';\r\n import { EventBus } from \"@/modules/EventBus\";\r\n import * as API from '@/api/Api';\r\n import * as Models from '@/models/RowShare';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n import Bigram from \"@/views/components/Bigram.vue\";\r\n import moment from 'moment';\r\n\r\n @Component({\r\n name: 'BackOfficeUser',\r\n components: {PageLoadSpinner, Bigram}\r\n })\r\n export default class BackOfficeUser extends Vue{\r\n @Prop() private userId!: string;\r\n\r\n user: Models.BackOfficeUser | null = null;\r\n \r\n async created() {\r\n this.user == null;\r\n if(this.userId) {\r\n this.user = await API.BoApi.loadUser(this.userId);\r\n }\r\n }\r\n\r\n formatDate(date: string | Date){\r\n var from = moment(date, undefined, 'en').fromNow();\r\n var exact = moment(String(date), undefined, 'en').format(\"YYYY-MM-DD HH:mm\");\r\n\r\n return from + \" (\" + exact + \")\";\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n\r\n async saveInternal() {\r\n if(!this.user) {\r\n return;\r\n }\r\n \r\n var newUser = await API.BoApi.saveUserProperty(this.user.Email, 'internal', (this.user.Internal).toString()); \r\n this.$emit('userUpdated', newUser);\r\n this.reportSave(true, \"updating user\");\r\n }\r\n\r\n async saveIsLockedOut() {\r\n if(!this.user) {\r\n return;\r\n }\r\n var newUser = await API.BoApi.saveUserProperty(this.user.Email, 'locked', (this.user.IsLockedOut).toString()); \r\n this.$emit('userUpdated', newUser);\r\n this.reportSave(true, \"updating user\");\r\n }\r\n\r\n async saveIsRSAdmin() {\r\n if(!this.user) {\r\n return;\r\n }\r\n var newUser = await API.BoApi.saveUserProperty(this.user.Email, 'rsadmin', (this.user.IsAdministrator).toString()); \r\n this.$emit('userUpdated', newUser);\r\n this.reportSave(true, \"updating user\");\r\n }\r\n\r\n deleteUser() {\r\n if(!this.user) {\r\n return;\r\n }\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Delete user\";\r\n evtArgs.description1 = \"Delete the RowShare account for \" + this.user.Email + \" ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"trash-alt\";\r\n evtArgs.actionButtonColor = 'error';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n if(!this.user) {\r\n return;\r\n }\r\n var res = await API.BoApi.deleteUser(this.user); \r\n if(res) {\r\n this.$emit('userDeleted', this.user);\r\n this.$router.push({name: 'bo'});\r\n }\r\n \r\n this.reportSave(res, \"deleting user\");\r\n }\r\n\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n \r\n reportSave(res: boolean | null, operation: string){\r\n if(res) {\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: Models.NotificationType.success,\r\n message: \"Done \" + operation\r\n });\r\n } else {\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: Models.NotificationType.error,\r\n message: \"Failed \" + operation\r\n });\r\n }\r\n }\r\n\r\n copyLink() {\r\n }\r\n\r\n getConfirmationLink(code: string) {\r\n document.addEventListener('copy',(event) => this.copyToClipboard(event, code));\r\n document.execCommand('copy');\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: Models.NotificationType.success,\r\n message: 'Link copied'\r\n }); \r\n }\r\n\r\n copyToClipboard(event: ClipboardEvent, code: string) {\r\n let url = `${window.location.protocol}//${window.location.host}/ConfirmEmail/${code}`; \r\n event.clipboardData?.setData('text/plain', url);\r\n event.preventDefault();\r\n document.removeEventListener('copy', (event) => this.copyToClipboard(event, code));\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOfficeUser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOfficeUser.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BackOfficeUser.vue?vue&type=template&id=ec8f1238&scoped=true&\"\nimport script from \"./BackOfficeUser.vue?vue&type=script&lang=ts&\"\nexport * from \"./BackOfficeUser.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BackOfficeUser.vue?vue&type=style&index=0&id=ec8f1238&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 \"ec8f1238\",\n null\n \n)\n\nexport default component.exports","\r\n import {Vue, Component, Prop } from 'vue-property-decorator';\r\n import * as API from '@/api/Api';\r\n import * as Models from '@/models/RowShare';\r\n import PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n import BackOfficeUser from './BackOfficeUser.vue';\r\n import Bigram from \"@/views/components/Bigram.vue\";\r\n import moment from 'moment';\r\n\r\n @Component({\r\n name: 'ListAccessAudit',\r\n components: {PageLoadSpinner, Bigram, BackOfficeUser}\r\n })\r\n export default class ListAccessAudit extends Vue{\r\n search: string | null = null;\r\n userSearchResults: Models.BackOfficeUser[] | null = null;\r\n orgSearchResults: Models.BackOfficeOrganizationSummary[] | null = null;\r\n listSearchResults: Models.BackOfficeListSummary[] | null = null;\r\n allSearchResults: Models.BackOfficeSearchSummary | null = null;\r\n\r\n mounted() {\r\n this.$nextTick(() => {\r\n (this.$refs.searchField as any).$el.querySelector('input').focus();\r\n });\r\n }\r\n clearAllSearchResults(){\r\n this.userSearchResults = null;\r\n this.orgSearchResults = null;\r\n this.listSearchResults = null;\r\n this.allSearchResults = null;\r\n }\r\n\r\n async searchUsers() {\r\n this.clearAllSearchResults();\r\n if(this.search == null)\r\n return;\r\n\r\n this.userSearchResults = await API.BoApi.searchUsers(this.search);\r\n }\r\n\r\n async searchOrganizations() {\r\n this.clearAllSearchResults();\r\n if(this.search == null)\r\n return;\r\n\r\n this.orgSearchResults = await API.BoApi.searchOrganizations(this.search);\r\n }\r\n\r\n async searchTables(){\r\n this.clearAllSearchResults();\r\n if(this.search == null)\r\n return;\r\n \r\n this.listSearchResults = await API.BoApi.searchLists(this.search);\r\n }\r\n\r\n async searchAll() {\r\n this.clearAllSearchResults();\r\n if(this.search == null) {\r\n return;\r\n }\r\n \r\n this.allSearchResults = await API.BoApi.search(this.search);\r\n if(this.allSearchResults) {\r\n this.userSearchResults = this.allSearchResults.Users;\r\n this.orgSearchResults = this.allSearchResults.Organizations;\r\n this.listSearchResults = this.allSearchResults.Lists;\r\n }\r\n }\r\n \r\n formatUserCreationData(user: Models.User){\r\n var from = moment(user.CreationDate, undefined, 'en').fromNow();\r\n var exact = moment(String(user.CreationDate), undefined, 'en').format(\"YYYY-MM-DD HH:mm\");\r\n\r\n return from + \" (\" + exact + \")\";\r\n }\r\n\r\n onUserUpdated(user: Models.User) {\r\n if(!this.userSearchResults)\r\n return;\r\n\r\n var currentIdx = this.userSearchResults.findIndex(u => u.Email == user.Email);\r\n if(currentIdx >= 0)\r\n Vue.set(this.userSearchResults, currentIdx, user);\r\n }\r\n\r\n onUserDeleted(user: Models.User) {\r\n if(!this.userSearchResults)\r\n return;\r\n\r\n var currentIdx = this.userSearchResults.findIndex(u => u.Email == user.Email);\r\n if(currentIdx >= 0)\r\n this.userSearchResults.splice(currentIdx, 1);\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOffice.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOffice.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BackOffice.vue?vue&type=template&id=0afc2e10&scoped=true&\"\nimport script from \"./BackOffice.vue?vue&type=script&lang=ts&\"\nexport * from \"./BackOffice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BackOffice.vue?vue&type=style&index=0&id=0afc2e10&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 \"0afc2e10\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"mb-4\",attrs:{\"fluid\":\"\"}},[(!_vm.org)?_c('page-load-spinner'):_c('div',[_c('div',{staticClass:\"d-flex align-center pa-1\"},[_c('v-avatar',{attrs:{\"size\":\"36\",\"rounded\":\"\"}},[(_vm.org.IconPath !== null)?_c('v-img',{attrs:{\"src\":'/' + _vm.org.IconPath + '?_ssb_img=S;w:64;h:64'}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1),_vm._v(\" \"),_c('h2',{staticClass:\"ml-2 text-body-1 font-weight-bold text-sm-h5\"},[_vm._v(_vm._s(_vm.org.Name))]),_vm._v(\" \"),(!_vm.org.SubscriptionEnabled)?_c('div',{staticClass:\"d-flex align-center pa-1\"},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"warning\"}},[_vm._v(\"fal fa-triangle-exclamation\")]),_c('span',{staticClass:\"warning--text\"},[_vm._v(\"Organization disabled\")])],1):_vm._e()],1),_vm._v(\" \"),_c('v-divider',{staticClass:\"my-1 my-sm-4\"},[_vm._v(\"Organization Informations\")]),_vm._v(\" \"),(_vm.org)?_c('div',{staticClass:\"ml-sm-7\"},[_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n ID:\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.org.Id)+\"\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Name:\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.org.Name)+\"\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Creation date:\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.formatDate(_vm.org.CreationDateTimeUtc))+\"\\n \")])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Logo:\\n \")]),_vm._v(\" \"),_c('v-col',[(_vm.org.IconPath)?_c('v-img',{staticClass:\"img-wrapper ml-2\",attrs:{\"max-height\":\"100\",\"max-width\":\"100\",\"contain\":\"\",\"src\":'/' + _vm.org.IconPath}}):_vm._e(),_vm._v(\" \"),(!_vm.org.IconPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.pickLogo()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")]),_vm._v(\"\\n add\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.org.IconPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.pickLogo()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-exchange-alt\")]),_vm._v(\"\\n replace\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.org.IconPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"error\",\"text\":\"\"},on:{\"click\":function($event){return _vm.removeLogo('logo')}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash-alt\")]),_vm._v(\"\\n remove\\n \")],1):_vm._e(),_vm._v(\" \"),_c('input',{ref:\"logoInput\",attrs:{\"type\":\"file\",\"hidden\":\"\",\"accept\":\"image/*\"},on:{\"change\":_vm.onLogoSelected}})],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Full site logo:\\n \")]),_vm._v(\" \"),_c('v-col',[(_vm.org.FullSiteLogoPath)?_c('v-img',{staticClass:\"img-wrapper ml-2\",attrs:{\"max-height\":\"100\",\"max-width\":\"400\",\"contain\":\"\",\"src\":'/' + _vm.org.FullSiteLogoPath}}):_vm._e(),_vm._v(\" \"),(!_vm.org.FullSiteLogoPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.pickFullSiteLogo()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")]),_vm._v(\"\\n add\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.org.FullSiteLogoPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.pickFullSiteLogo()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-exchange-alt\")]),_vm._v(\"\\n replace\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.org.FullSiteLogoPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"error\",\"text\":\"\"},on:{\"click\":function($event){return _vm.removeLogo('fullSiteLogo')}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash-alt\")]),_vm._v(\"\\n remove\\n \")],1):_vm._e(),_vm._v(\" \"),_c('input',{ref:\"fullSiteLogoInput\",attrs:{\"type\":\"file\",\"hidden\":\"\",\"accept\":\"image/*\"},on:{\"change\":_vm.onFullSiteLogoSelected}})],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Small site logo:\\n \")]),_vm._v(\" \"),_c('v-col',[(_vm.org.SmallSiteLogoPath)?_c('v-img',{staticClass:\"img-wrapper ml-2\",attrs:{\"max-height\":\"100\",\"max-width\":\"100\",\"contain\":\"\",\"src\":'/' + _vm.org.SmallSiteLogoPath}}):_vm._e(),_vm._v(\" \"),(!_vm.org.SmallSiteLogoPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.pickSmallSiteLogo()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")]),_vm._v(\"\\n add\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.org.SmallSiteLogoPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.pickSmallSiteLogo()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-exchange-alt\")]),_vm._v(\"\\n replace\\n \")],1):_vm._e(),_vm._v(\" \"),(_vm.org.SmallSiteLogoPath)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"error\",\"text\":\"\"},on:{\"click\":function($event){return _vm.removeLogo('smallSiteLogo')}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-trash-alt\")]),_vm._v(\"\\n remove\\n \")],1):_vm._e(),_vm._v(\" \"),_c('input',{ref:\"smallSiteLogoInput\",attrs:{\"type\":\"file\",\"hidden\":\"\",\"accept\":\"image/*\"},on:{\"change\":_vm.onSmallSiteLogoSelected}})],1)],1),_vm._v(\" \"),_c('v-divider',{staticClass:\"my-1 my-sm-4\"},[_vm._v(\"Subscription Informations\")]),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Current Plan:\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.currentPlanId)+\"\\n \")])],1),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-switch',{staticClass:\"ma-0\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"inset\":\"\",\"loading\":_vm.savingChangePlanAlone},on:{\"change\":_vm.saveCannotChangePlanAlone},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"label\"},[_vm._v(\"Cannot change plan alone\")])]},proxy:true}],null,false,2679117477),model:{value:(_vm.org.CannotChangePlanAlone),callback:function ($$v) {_vm.$set(_vm.org, \"CannotChangePlanAlone\", $$v)},expression:\"org.CannotChangePlanAlone\"}})],1)],1):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Next renewal (UTC):\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.formatDate(_vm.org.SubscriptionCurrentTermEndDateUtc))+\"\\n \")])],1),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Last billing infos refresh (UTC):\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.formatDate(_vm.org.SubscriptionLastUpdateDateTime))+\"\\n \"),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"loading\":_vm.refreshingBillingInfos,\"small\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.refreshBillingInfos()}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-arrows-rotate\")]),_vm._v(\"\\n Refresh\\n \")],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Paid members:\\n \")]),_vm._v(\" \"),_c('v-col',[_c('span',[_vm._v(_vm._s(_vm.org.ActiveMemberCount)+\" / \"+_vm._s(_vm.org.MaximumMemberCount))]),_vm._v(\" \"),(_vm.org.DisabledRegularMemberCount)?_c('span',[_vm._v(\" (+\"+_vm._s(_vm.org.DisabledRegularMemberCount)+\" disabled)\")]):_vm._e()])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Readonly members:\\n \")]),_vm._v(\" \"),_c('v-col',[_c('span',[_vm._v(_vm._s(_vm.org.ReadonlyMemberCount))]),_vm._v(\" \"),(_vm.org.DisabledReadonlyMemberCount)?_c('span',[_vm._v(\" (+\"+_vm._s(_vm.org.DisabledReadonlyMemberCount)+\" disabled)\")]):_vm._e()])],1),_vm._v(\" \"),(_vm.isNotOnPrem && _vm.org.SupportMemberCount > 0)?_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Support members:\\n \")]),_vm._v(\" \"),_c('v-col',[_c('span',[_vm._v(_vm._s(_vm.org.SupportMemberCount))])])],1):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Tables:\\n \")]),_vm._v(\" \"),_c('v-col',[_c('span',[_vm._v(_vm._s(_vm.org.ListCount)+\" / \"+_vm._s(_vm.org.MaximumListCount))])])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Subscription properties:\\n \")]),_vm._v(\" \"),_c('v-col',[(_vm.isNotOnPrem && _vm.org.SubscriptionInTrial)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"In trial\")]):_vm._e(),_vm._v(\" \"),(_vm.isNotOnPrem && _vm.org.SubscriptionIsFree)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Free plan\")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasArchiveRows)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Can archive rows\")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasAudit)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Has audit\")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasAdvancedPermissions)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Has advanced permissions\")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasLockRows)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Can lock rows\")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasRowMerge)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"RowMerge\")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasRowMetadatas)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Row Metadatas\")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasPermissionsAudit)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Has Audit permissions \")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasColumnPermissions)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Has column permissions \")]):_vm._e(),_vm._v(\" \"),(_vm.org.SubscriptionHasRTCHistory)?_c('v-chip',{attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"Has Rtc History \")]):_vm._e()],1)],1),_vm._v(\" \"),(_vm.org.SubscriptionHasAudit)?_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Audit conservation delay:\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.org.AuditConservationInDays)+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2 org--property\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"label\",attrs:{\"cols\":\"2\"}},[_vm._v(\"\\n Clean deleted rows delay:\\n \")]),_vm._v(\" \"),_c('v-col',[_vm._v(\"\\n \"+_vm._s(_vm.org.SubscriptionCleanDeletedRowsDelay)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"my-6 d-flex flex-wrap justify-center justify-md-start\",staticStyle:{\"gap\":\"8px\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"tile\":\"\",\"to\":'/bo/ListAccessAudit/' + _vm.org.Id,\"target\":\"_blank\"}},[_vm._v(\"Go to list access audit\")]),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-btn',{attrs:{\"outlined\":\"\",\"tile\":\"\",\"href\":_vm.chargeBeeUrl,\"target\":\"_blank\"}},[_vm._v(\"Go to Chargebee\")]):_vm._e(),_vm._v(\" \"),_c('v-btn',{attrs:{\"outlined\":\"\",\"tile\":\"\",\"to\":'/ManageOrganization/' + _vm.org.Id,\"target\":\"_blank\"}},[_vm._v(\"Go to manage organization\")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"outlined\":\"\",\"tile\":\"\",\"to\":'limits/' + _vm.org.Id,\"target\":\"_blank\"}},[_vm._v(\"Check limits\")]),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-btn',{attrs:{\"outlined\":\"\",\"tile\":\"\"},on:{\"click\":_vm.deleteOrganization}},[_vm._v(\"Delete\")]):_vm._e()],1),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('div',{staticClass:\"d-flex align-center flex-wrap\"},[_c('div',{staticClass:\"d-flex align-center mt-6\"},[_c('h3',[_vm._v(\"Members \"+_vm._s(_vm.members ? '('+ _vm.members.length + ')' : ''))]),_vm._v(\" \"),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"small\":\"\",\"icon\":\"\"}},on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-ellipsis-v\")])],1)]}}],null,false,3862858605)},[_vm._v(\" \"),_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){_vm.search = 'administrator'}}},[_c('v-list-item-title',[_vm._v(\"Show only admins\")])],1),_vm._v(\" \"),(_vm.isNotOnPrem)?_c('v-list-item',{on:{\"click\":function($event){_vm.search = 'RowShare support'}}},[_c('v-list-item-title',[_vm._v(\"Show only RowShare support\")])],1):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-text-field',{staticClass:\"mt-6\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"clearable\":\"\",\"label\":\"Filter members\",\"width\":\"200\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}})],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mt-2\"},_vm._l((_vm.filteredMembers),function(member){return _c('v-col',{key:member.Email,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"3\"}},[_c('v-card',[_c('div',{staticClass:\"d-flex align-center mb-2\"},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":_vm.getMemberColor(member)}},[_vm._v(_vm._s(_vm.getMemberIcon(member)))]),_vm._v(\" \"),_c('h4',{staticClass:\"d-flex flex-wrap\",staticStyle:{\"overflow-wrap\":\"anywhere\"}},[_vm._v(_vm._s(member.Email))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"small\":\"\",\"icon\":\"\"}},on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa fa-ellipsis-v\")])],1)]}}],null,true)},[_vm._v(\" \"),_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.toggleAdmin(member)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-crown\")])],1),_vm._v(\" \"),_c('v-list-item-title',[_vm._v(_vm._s(member.IsAdministrator ? 'Remove ' : ' Add')+\" admin status\")])],1),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":function($event){return _vm.toggleSupport(member)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fas fa-rocket\")])],1),_vm._v(\" \"),_c('v-list-item-title',[_vm._v(_vm._s(member.IsRowShareSupport ? 'Remove ' : ' Add')+\" RowShare support status\")])],1),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":function($event){return _vm.deleteMember(member)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\"far fa-trash-alt\")])],1),_vm._v(\" \"),_c('v-list-item-title',[_vm._v(\"Remove member\")])],1)],1)],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"ml-4 member-info\"},[_c('b',[_vm._v(\"Member name: \")]),_vm._v(_vm._s(member.Name))]),_vm._v(\" \"),_c('div',{staticClass:\"ml-4 member-info\"},[_c('b',[_vm._v(\"User name: \")]),_c('span',{class:{'warning--text': !member.IsUser}},[_vm._v(_vm._s(member.AssociatedUserNickName))]),_vm._v(\" \"),(member.IsUser)?_c('v-btn',{attrs:{\"color\":\"primary\",\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"target\":\"_blank\",\"to\":{ name: 'BackOfficeUser', params: {userId: member.UserId}}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-square-arrow-up-right\")])],1):_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.sendInvite(member)}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-envelope\")]),_vm._v(\"Resend invite\")],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"ml-4 member-info\"},[_c('b',[_vm._v(\"Last seen: \")]),_vm._v(_vm._s(_vm.formatDate(member.LastSeenDate)))]),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\",\"tile\":\"\"},on:{\"click\":function($event){member.showExtraInfos = !member.showExtraInfos}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(member.showExtraInfos ? \"fal fa-chevron-up\" : \"fal fa-chevron-down\"))])],1)],1),_vm._v(\" \"),_c('v-expand-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(member.showExtraInfos),expression:\"member.showExtraInfos\"}]},[(member.Manager && member.Manager != '')?_c('div',{staticClass:\"ml-4 member-info\"},[_c('b',[_vm._v(\"Manager: \")]),_vm._v(\" \"),(member.Manager)?_c('span',[_vm._v(_vm._s(member.Manager.Name)+\" (\"+_vm._s(member.Manager.Email)+\")\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"ml-4 member-info\"},[_c('b',[_vm._v(\"Options: \")]),_vm._v(\" \"),(member.IsRowShareSupport)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"label\":\"\",\"small\":\"\",\"color\":_vm.rsSupportColor}},[_vm._v(\"RowShare Support\")]):_vm._e(),_vm._v(\" \"),(member.IsAdministrator)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"label\":\"\",\"small\":\"\",\"color\":_vm.adminColor}},[_vm._v(\"Administrator\")]):_vm._e(),_vm._v(\" \"),(member.IsDisabled)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"label\":\"\",\"small\":\"\"}},[_vm._v(\"Disabled\")]):_vm._e(),_vm._v(\" \"),(member.IsUniversalOwner)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"label\":\"\",\"small\":\"\",\"color\":_vm.universalOwnerColor}},[_vm._v(\"Universal Owner\")]):_vm._e(),_vm._v(\" \"),(member.IsReadOnly)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"label\":\"\",\"small\":\"\",\"color\":\"\"}},[_vm._v(\"Read Only Member\")]):_vm._e()],1),_vm._v(\" \"),(member.Groups && member.Groups.length > 0)?_c('div',{staticClass:\"mt-1 ml-4 member-info\"},[_c('b',[_vm._v(\"Groups: \")]),_vm._v(\" \"),_vm._l((member.Groups),function(group){return _c('v-chip',{key:group.Id,staticClass:\"mr-1\",attrs:{\"label\":\"\",\"small\":\"\"}},[_vm._v(_vm._s(group.Name))])})],2):_vm._e()])])],1)],1)}),1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Vue, Component, Prop } from 'vue-property-decorator';\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport * as API from '@/api/Api';\r\nimport * as Models from '@/models/RowShare';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport Bigram from \"@/views/components/Bigram.vue\";\r\nimport moment from 'moment';\r\n\r\n@Component({\r\n name: 'BackOfficeOrganization',\r\n components: {PageLoadSpinner, Bigram}\r\n})\r\nexport default class BackOfficeOrganization extends Vue{\r\n @Prop() private organizationId!: string;\r\n private org: Models.Organization | null = null;\r\n private members: Models.BackOfficeMember[] | null = null;\r\n private search: string | null = null;\r\n savingChangePlanAlone: boolean = false;\r\n currentPlanId: string = \"\";\r\n refreshingBillingInfos: boolean = false;\r\n async created(){\r\n this.refreshData();\r\n }\r\n\r\n async refreshData(){\r\n this.org = await API.BoApi.loadOrganization(this.organizationId, {cache: false});\r\n this.members = await API.BoApi.loadMembers(this.organizationId, {cache: false});\r\n this.currentPlanId = await API.Organization.getCurrentPlanId(this.organizationId, {cache: false}) ?? \"No Active Plan\";\r\n }\r\n\r\n get chargeBeeUrl() : string {\r\n if(!this.org) {\r\n return \"\";\r\n }\r\n let cbHost = \"rowshare.chargebee.com\";\r\n if(process.env.NODE_ENV == \"development\") {\r\n cbHost = \"rowshare-test.chargebee.com\";\r\n }\r\n return `https://${cbHost}/d/customers/${this.org.Id}`;\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;;\r\n }\r\n\r\n get filteredMembers(){\r\n if(!this.members)\r\n return null;\r\n\r\n var res : Models.BackOfficeMember[];\r\n if(!this.search) {\r\n var res = this.members;\r\n } else {\r\n res = this.members.filter(m => {\r\n if(!this.search) {\r\n return true;\r\n }\r\n\r\n if(m.Email.toLowerCase().includes(this.search.toLowerCase())) {\r\n return true;\r\n }\r\n\r\n if(m.Name && m.Name.toLowerCase().includes(this.search.toLowerCase())) {\r\n return true;\r\n }\r\n\r\n if(m.AssociatedUserNickName && m.AssociatedUserNickName.toLowerCase().includes(this.search.toLowerCase())) {\r\n return true;\r\n }\r\n\r\n if(m.Groups) {\r\n var gr = m.Groups.find(g => g.Name.toLowerCase().includes(this.search?.toLowerCase() ?? \"\"));\r\n if(gr) {\r\n return true;\r\n }\r\n }\r\n\r\n if(m.ManagerEmail && m.ManagerEmail.toLowerCase().includes(this.search.toLowerCase())) {\r\n return true;\r\n }\r\n\r\n if(m.ManagerName && m.ManagerName.toLowerCase().includes(this.search.toLowerCase())) {\r\n return true;\r\n }\r\n\r\n if(\"administrator\".includes(this.search.toLowerCase()) && m.IsAdministrator) {\r\n return true;\r\n }\r\n\r\n if(\"rowshare support\".includes(this.search.toLowerCase()) && m.IsRowShareSupport) {\r\n return true;\r\n }\r\n\r\n if(\"enabled\".includes(this.search.toLowerCase()) && !m.IsDisabled) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n return res.sort(function(a, b) {\r\n if(a.IsRowShareSupport && !b.IsRowShareSupport)\r\n return -1;\r\n if(b.IsRowShareSupport && !a.IsRowShareSupport)\r\n return 1;\r\n\r\n if(a.IsAdministrator && !b.IsAdministrator)\r\n return -1;\r\n if(b.IsAdministrator && !a.IsAdministrator)\r\n return 1;\r\n\r\n if(a.IsUniversalOwner && !b.IsUniversalOwner)\r\n return -1;\r\n if(b.IsUniversalOwner && !a.IsUniversalOwner)\r\n return 1;\r\n\r\n if(a.IsDisabled && !b.IsDisabled)\r\n return 1;\r\n if(b.IsDisabled && !a.IsDisabled)\r\n return -1;\r\n\r\n if(a.IsReadOnly && !b.IsReadOnly)\r\n return 1;\r\n if(b.IsReadOnly && !a.IsReadOnly)\r\n return -1;\r\n\r\n return a.Email.toLowerCase().localeCompare(b.Email.toLowerCase());\r\n });\r\n }\r\n\r\n pickLogo() {\r\n (this.$refs.logoInput).click();\r\n }\r\n\r\n pickFullSiteLogo() {\r\n (this.$refs.fullSiteLogoInput).click();\r\n }\r\n\r\n pickSmallSiteLogo() {\r\n (this.$refs.smallSiteLogoInput).click();\r\n }\r\n\r\n refreshBillingInfos() {\r\n this.refreshingBillingInfos = true;\r\n API.Organization.refreshBillingInfos(this.organizationId)\r\n .then(res => {\r\n if(res) {\r\n this.refreshData();\r\n }\r\n })\r\n .finally(() => { this.refreshingBillingInfos = false });\r\n }\r\n\r\n async onLogoSelected(){\r\n let files = (this.$refs.logoInput).files;\r\n if(!files || files.length != 1)\r\n return;\r\n\r\n var res = await API.BoApi.saveOrgLogo(this.organizationId, \"logo\",files[0]);\r\n this.reportSave(res, \"updating logo\");\r\n this.refreshData();\r\n }\r\n\r\n async onFullSiteLogoSelected(){\r\n let files = (this.$refs.fullSiteLogoInput).files;\r\n if(!files || files.length != 1)\r\n return;\r\n\r\n var res = await API.BoApi.saveOrgLogo(this.organizationId, \"fullSiteLogo\",files[0]);\r\n this.reportSave(res, \"updating full site logo\");\r\n this.refreshData();\r\n }\r\n\r\n async onSmallSiteLogoSelected(){\r\n let files = (this.$refs.smallSiteLogoInput).files;\r\n if(!files || files.length != 1)\r\n return;\r\n\r\n var res = await API.BoApi.saveOrgLogo(this.organizationId, \"smallSiteLogo\",files[0]);\r\n this.reportSave(res, \"updating small site logo\");\r\n this.refreshData();\r\n }\r\n\r\n async removeLogo(logoType: ('logo' | 'fullSiteLogo' | 'smallSiteLogo')){\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Remove logo\";\r\n evtArgs.description1 = \"Remove the organization logo (\" + logoType + \") ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"trash-alt\";\r\n evtArgs.actionButtonColor = 'error';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n var res = await API.BoApi.saveOrgLogo(this.organizationId, logoType, null);\r\n this.reportSave(res, \"removing logo\");\r\n this.refreshData();\r\n }\r\n\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n\r\n async saveCannotChangePlanAlone() {\r\n var res: boolean | null = false;\r\n if(this.org) {\r\n this.savingChangePlanAlone = true;\r\n API.BoApi.saveOrganizationProperty(this.organizationId, \"CannotChangePlanAlone\", this.org.CannotChangePlanAlone + '')\r\n .then(res => {\r\n this.reportSave(res, \"update CannotChangePlanAlone\");\r\n this.refreshData();\r\n })\r\n .finally(() => { this.savingChangePlanAlone = false; });\r\n }\r\n }\r\n\r\n formatDate(date: string | Date) {\r\n\r\n var d = moment(date, undefined, 'en');\r\n if(! d.isValid() || d.year() == 1) {\r\n return \"\";\r\n }\r\n\r\n var from = d.fromNow();\r\n var exact = d.format(\"YYYY-MM-DD HH:mm\");\r\n\r\n return from + \" (\" + exact + \")\";\r\n }\r\n\r\n getMemberIcon(member: Models.Member) {\r\n if(member.IsDisabled)\r\n return \"fal fa-user-slash\";\r\n\r\n if(member.IsRowShareSupport)\r\n return \"fas fa-user-astronaut\";\r\n\r\n if(member.IsAdministrator)\r\n return \"fas fa-user-crown\";\r\n\r\n if(member.IsUniversalOwner)\r\n return \"fas fa-user-cowboy\";\r\n\r\n if(member.IsReadOnly)\r\n return \"fas fa-user-ninja\";\r\n\r\n return \"fas fa-user\";\r\n }\r\n\r\n private readonly adminColor = \"primary\";\r\n private readonly rsSupportColor = \"#CCA43D\";\r\n private readonly universalOwnerColor = \"primary lighten-1\";\r\n\r\n getMemberColor(member: Models.Member) {\r\n if(member.IsRowShareSupport)\r\n return this.rsSupportColor;\r\n\r\n if(member.IsAdministrator)\r\n return this.adminColor;\r\n\r\n if(member.IsUniversalOwner)\r\n return this.universalOwnerColor;\r\n\r\n return \"#C4C4C4\";\r\n }\r\n\r\n get currentUserEmail(){\r\n return UserModule.CurrentUser.Email;\r\n }\r\n\r\n async addCurrentUserForSupport(){\r\n this.addSupportUser(this.currentUserEmail);\r\n }\r\n\r\n readonly genericSupportEmail = \"support@rowshare.com\";\r\n\r\n async addGenericSupportUser(){\r\n this.addSupportUser(this.genericSupportEmail);\r\n }\r\n\r\n async addSupportUser(email: string){\r\n var member = new Models.Member();\r\n member.Email = email;\r\n member.OrganizationId = this.organizationId;\r\n member.IsAdministrator = true;\r\n member.IsRowShareSupport = true;\r\n\r\n var res = await API.BoApi.saveMember(member);\r\n this.reportSave(res, \"adding support member\");\r\n this.refreshData();\r\n }\r\n\r\n async toggleAdmin(member: Models.Member) {\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Edit member\";\r\n evtArgs.description1 = (member.IsAdministrator ? \"Remove\" : \"Add\") + \" the administrator status to \" + member.Email + \" ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"crown\";\r\n evtArgs.actionButtonColor = 'primary';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n member.IsAdministrator = !member.IsAdministrator;\r\n var res = await API.BoApi.saveMember(member);\r\n this.reportSave(res, \"changing admin status\");\r\n this.refreshData();\r\n }\r\n\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n\r\n async toggleSupport(member: Models.Member) {\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Edit member\";\r\n evtArgs.description1 = (member.IsRowShareSupport ? \"Remove\" : \"Add\") + \" the RowShare support status to \" + member.Email + \" ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"rocket\";\r\n evtArgs.actionButtonColor = 'primary';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n member.IsRowShareSupport = !member.IsRowShareSupport;\r\n var res = await API.BoApi.saveMember(member);\r\n this.reportSave(res, \"changing support status\");\r\n this.refreshData();\r\n }\r\n\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n\r\n async deleteOrganization() {\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Delete organization\";\r\n evtArgs.description1 = \"Delete organization \" + this.org?.Name + \" ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"trash\";\r\n evtArgs.actionButtonColor = 'error';\r\n evtArgs.onConfirmation = async () => {\r\n if(this.org) {\r\n API.BoApi.deleteOrganization(this.org)\r\n .then(res => {\r\n if(res) {\r\n this.reportSave(res, \"deleting organization\");\r\n this.$router.push({name:'bo'});\r\n }\r\n });\r\n }\r\n }\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n\r\n async deleteMember(member: Models.Member) {\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Remove member\";\r\n evtArgs.description1 = \"Remove member \" + member.Email + \" ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"trash\";\r\n evtArgs.actionButtonColor = 'error';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n var res = await API.BoApi.deleteMember(member);\r\n this.reportSave(res, \"deleting member\");\r\n this.refreshData();\r\n }\r\n\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n\r\n reportSave(res: boolean | null, operation: string){\r\n if(res) {\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: Models.NotificationType.success,\r\n message: \"Done \" + operation\r\n });\r\n } else {\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: Models.NotificationType.error,\r\n message: \"Failed \" + operation\r\n });\r\n }\r\n }\r\n\r\n sendInvite(member: Models.Member) {\r\n if(!member) {\r\n return;\r\n }\r\n API.Member.resendInvitation(member)\r\n .then(res => {\r\n this.reportSave(res, \"sending user invite\");\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOfficeOrganization.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOfficeOrganization.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BackOfficeOrganization.vue?vue&type=template&id=fa41d75a&scoped=true&\"\nimport script from \"./BackOfficeOrganization.vue?vue&type=script&lang=ts&\"\nexport * from \"./BackOfficeOrganization.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BackOfficeOrganization.vue?vue&type=style&index=0&id=fa41d75a&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 \"fa41d75a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mb-4\"},[(_vm.org)?_c('div',{staticClass:\"d-flex align-center pa-1\"},[_c('v-avatar',{attrs:{\"size\":\"36\",\"rounded\":\"\"}},[(_vm.org.IconPath !== null)?_c('v-img',{attrs:{\"src\":'/' + _vm.org.IconPath + '?_ssb_img=S;w:64;h:64'}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1),_vm._v(\" \"),_c('h2',{staticClass:\"ml-2 text-body-1 font-weight-bold text-sm-h5\"},[_vm._v(_vm._s(_vm.org.Name))])],1):_vm._e(),_vm._v(\" \"),_c('v-divider',{staticClass:\"my-1 my-sm-4\"}),_vm._v(\" \"),_c('v-row',{staticClass:\"mt-2\"},_vm._l((_vm.limits),function(limit){return _c('v-col',{key:limit.LimitType + '_' + limit.ObjectId,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\"}},[_c('v-card',{staticClass:\"fill-height\",attrs:{\"color\":limit.Exceeded ? 'error lighten-1' : ''}},[_c('div',{staticClass:\"ml-4\"},[_c('b',[_vm._v(\"Type: \")]),_vm._v(_vm._s(_vm.getDisplayType(limit.LimitType)))]),_vm._v(\" \"),_c('div',{staticClass:\"ml-4\"},[_c('b',[_vm._v(\"Value: \")]),_vm._v(_vm._s(_vm.formatCurrentValue(limit))+\" / \"+_vm._s(_vm.formatMaxValue(limit)))]),_vm._v(\" \"),_c('div',{staticClass:\"ml-4\"},[_c('b',[_vm._v(\"Object: \")]),_vm._v(_vm._s(limit.Name)+\" (\"+_vm._s(limit.ObjectId)+\")\")]),_vm._v(\" \"),_c('div',{staticClass:\"ml-4\"},[_c('b',[_vm._v(\"Is in recyble bin: \")]),_vm._v(_vm._s(limit.IsInRecycleBin))])])],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Vue, Component, Prop } from 'vue-property-decorator';\r\n import * as API from '@/api/Api';\r\n import * as Models from '@/models/RowShare';\r\n import { Utils } from '@/utils/Utilities';\r\n\r\n @Component({\r\n name: 'BackOfficeOrganizationLimits',\r\n components: {}\r\n })\r\n export default class BackOfficeOrganizationLimits extends Vue{\r\n @Prop() private organizationId!: string;\r\n private org: Models.Organization | null = null;\r\n private limits: Models.SubscriptionLimit[] | null = null;\r\n\r\n async created(){\r\n this.org = await API.BoApi.loadOrganization(this.organizationId);\r\n this.limits = await API.Organization.getLimits(this.organizationId);\r\n }\r\n \r\n getDisplayType(type: Models.SubscriptionLimitType){\r\n switch(type) {\r\n case Models.SubscriptionLimitType.User:\r\n return \"User\";\r\n case Models.SubscriptionLimitType.Table:\r\n return \"Table\";\r\n case Models.SubscriptionLimitType.Row:\r\n return \"Row\";\r\n case Models.SubscriptionLimitType.Storage:\r\n return \"Storage\";\r\n case Models.SubscriptionLimitType.ReadOnlyUser:\r\n return \"Read only user\";\r\n default:\r\n return \"Invalid type\";\r\n }\r\n }\r\n \r\n formatCurrentValue(limit: Models.SubscriptionLimit){\r\n if(limit.LimitType == Models.SubscriptionLimitType.Storage)\r\n return Utils.humanFileSize(limit.CurrentValue, this.$i18n.locale==\"en\", 0);\r\n else\r\n return limit.CurrentValue\r\n }\r\n\r\n formatMaxValue(limit: Models.SubscriptionLimit){\r\n if(limit.LimitType == Models.SubscriptionLimitType.Storage)\r\n return Utils.humanFileSize(limit.MaxValue, this.$i18n.locale==\"en\", 0);\r\n else\r\n return limit.MaxValue\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOfficeOrganizationLimits.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOfficeOrganizationLimits.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BackOfficeOrganizationLimits.vue?vue&type=template&id=06f90c46&scoped=true&\"\nimport script from \"./BackOfficeOrganizationLimits.vue?vue&type=script&lang=ts&\"\nexport * from \"./BackOfficeOrganizationLimits.vue?vue&type=script&lang=ts&\"\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 \"06f90c46\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"business-page-new outer-wrapper\"},[_c('section',{staticClass:\"main mt-3\"},[_c('v-container',[_c('v-row',[_c('v-col',[_c('validation-observer',{ref:\"observer\"},[_c('v-form',{ref:\"form\",model:{value:(_vm.validForm),callback:function ($$v) {_vm.validForm=$$v},expression:\"validForm\"}},[_c('v-card',{staticClass:\"px-3 py-3 card-manage-org\",attrs:{\"elevation\":\"6\"}},[_c('v-card-title',{staticClass:\"pa-0\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-btn',{staticClass:\"mb-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.returnToTable()}}},[_c('v-icon',{attrs:{\"dense\":\"\"}},[_vm._v(\"fa-arrow-left\")])],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"d-flex justify-center\",attrs:{\"cols\":\"auto\"}},[_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('ColumnSettings_Title', {listName: _vm.currentList.DisplayName}))+\"\\n \")])])],1)],1),_vm._v(\" \"),_c('v-card-title',{staticClass:\"pa-0\"},[_c('column-selector',{attrs:{\"listId\":_vm.listId},on:{\"change\":_vm.onSelectedColumnIdChanged},model:{value:(_vm.selectedColumnId),callback:function ($$v) {_vm.selectedColumnId=$$v},expression:\"selectedColumnId\"}})],1),_vm._v(\" \"),_c('v-card-text',[_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_DisplayName')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_DisplayNameDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('input-text',{attrs:{\"inputTextId\":'columnName',\"inputTextName\":_vm.$t('ColumnSettings_DisplayName'),\"inputTextValidationRules\":{required: true}},on:{\"blured\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.Name),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"Name\", $$v)},expression:\"currentColumn.Name\"}})],1)],1),_vm._v(\" \"),(_vm.currentColumn.canEditSubname)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_SubName')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_SubNameDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('input-text-area',{attrs:{\"inputTextId\":'columnSubName',\"inputTextName\":_vm.$t('ColumnSettings_SubName')},on:{\"blured\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.SubName),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"SubName\", $$v)},expression:\"currentColumn.SubName\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditGroupName)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_ColumnGroup')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_ColumnGroupDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('input-text',{attrs:{\"inputTextId\":'columnGroup',\"inputTextName\":_vm.$t('ColumnSettings_ColumnGroup')},on:{\"blured\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.ColumnGroup),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"ColumnGroup\", $$v)},expression:\"currentColumn.ColumnGroup\"}})],1)],1):_vm._e(),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_Type')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_TypeDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.columnTypes,\"item-text\":\"name\",\"item-value\":\"value\",\"outlined\":\"\",\"standard\":\"\",\"dense\":\"\",\"required\":\"\",\"error-messages\":_vm.columnTypeError,\"menu-props\":_vm.defaultProps,\"disabled\":_vm.cannotUpdateType},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}]),model:{value:(_vm.currentColumn.Type),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"Type\", $$v)},expression:\"currentColumn.Type\"}})],1)],1),_vm._v(\" \"),(_vm.currentColumn.canEditIsLookupMultiValued)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsLookupMultiValued')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsLookupMultiValuedDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 mt-0 mb-0 mr-0 ml-2\",attrs:{\"cols\":\"auto\"}},[_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.isLookupMultiValued),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isLookupMultiValued\", $$v)},expression:\"currentColumn.isLookupMultiValued\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsCompact)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsCompact')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsCompactDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 mt-0 mb-0 mr-0 ml-2\",attrs:{\"cols\":\"auto\"}},[_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.isCompact),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isCompact\", $$v)},expression:\"currentColumn.isCompact\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditLookupValues)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 mb-2\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_LookupValues')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_LookupValuesDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('column-settings-lookup-editor',{attrs:{\"columnLookUpValues\":_vm.currentColumn.LookupValues},on:{\"changed\":_vm.onLookupValuesChanged}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditLookupList)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_LookupList')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('column-settings-lookup-list-editor',{attrs:{\"currentListId\":_vm.listId,\"lookupListColumnName\":_vm.currentColumn.LookupListColumnName,\"lookupListId\":_vm.currentColumn.LookupListId},on:{\"change\":_vm.onLinkedColumnChanged}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditRelatedColumns)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_RelatedList')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_RelatedListDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('column-settings-related-columns-editor',{attrs:{\"currentListId\":_vm.listId,\"currentColumnId\":_vm.currentColumn.Id,\"relatedListId\":_vm.currentColumn.RelatedListId,\"disableColumnSelection\":_vm.disableRelatedColumnsSelection},on:{\"change\":_vm.onRelatedListChanged}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditUseSmartRenderer)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_UseSmartRenderer')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_UseSmartRendererDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 mt-0 mb-0 mr-0 ml-2\",attrs:{\"cols\":\"auto\"}},[_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.useSmartRenderer),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"useSmartRenderer\", $$v)},expression:\"currentColumn.useSmartRenderer\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsFormula)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsFormula')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsFormulaDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 mt-0 mb-0 mr-0 ml-2\",attrs:{\"cols\":\"auto\"}},[_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.isFormula),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isFormula\", $$v)},expression:\"currentColumn.isFormula\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditFormula)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_Formula')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('ColumnSettings_FormulaDescription'))}})])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",class:{'field-formula': !_vm.$vuetify.breakpoint.mobile},attrs:{\"cols\":\"6\"}},[_c('v-textarea',{attrs:{\"outlined\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.formula),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"formula\", $$v)},expression:\"currentColumn.formula\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsMandatory)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsMandatory')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsMandatoryDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 mt-0 mb-0 mr-0 ml-2\",attrs:{\"cols\":\"auto\"}},[_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.isMandatory),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isMandatory\", $$v)},expression:\"currentColumn.isMandatory\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsUnique)?_c('v-row',{staticClass:\"mb-1\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsUnique')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_IsUniqueDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 mt-0 mb-0 mr-0 ml-2\",attrs:{\"cols\":\"auto\"}},[_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.isUnique),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isUnique\", $$v)},expression:\"currentColumn.isUnique\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditMaxDecimals)?_c('v-row',{staticClass:\"mb-1 align-center\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_MaxDecimals')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"type\":\"number\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.MaxDecimals),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"MaxDecimals\", $$v)},expression:\"currentColumn.MaxDecimals\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditMaxLength)?_c('v-row',{staticClass:\"mb-1 align-center\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_MaxLength')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"type\":\"number\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.MaxLength),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"MaxLength\", $$v)},expression:\"currentColumn.MaxLength\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditMinMaxValue)?_c('v-row',{staticClass:\"mb-1 align-top\"},[_c('v-col',{staticClass:\"pa-0 pt-2 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_MinValue')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"rules\":[_vm.isValidNumber]},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.MinValue),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"MinValue\", $$v)},expression:\"currentColumn.MinValue\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditMinMaxValue)?_c('v-row',{staticClass:\"mb-1 align-top\"},[_c('v-col',{staticClass:\"pa-0 pt-2 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_MaxValue')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"rules\":[_vm.isValidNumber]},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.MaxValue),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"MaxValue\", $$v)},expression:\"currentColumn.MaxValue\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditShowThousandsSeparator)?_c('v-row',{staticClass:\"mb-1 align-center\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_ShowThousandsSeparator')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 mt-0 mb-0 mr-0 ml-2\",attrs:{\"cols\":\"auto\"}},[_c('v-switch',{attrs:{\"inset\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.showThousandsSeparator),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"showThousandsSeparator\", $$v)},expression:\"currentColumn.showThousandsSeparator\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditDefaultValue)?_c('v-row',{staticClass:\"mb-1 align-center\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_DefaultValue')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_DefaultValueDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.DefaultValue),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"DefaultValue\", $$v)},expression:\"currentColumn.DefaultValue\"}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditColor)?_c('v-row',{staticClass:\"mb-1 align-center\"},[_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"12\",\"md\":\"2\"}},[_c('div',{staticClass:\"field-name\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_Color')))]),_vm._v(\" \"),_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_ColorDescription')))])]),_vm._v(\" \"),_c('v-col',{staticClass:\"pa-0 ma-0\",attrs:{\"cols\":\"auto\"}},[_c('column-settings-color-editor',{attrs:{\"currentColumn\":_vm.currentColumn},on:{\"change\":_vm.updateColumnSettings}})],1)],1):_vm._e()],1)],1)],1)],1)],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',[_c('v-col',{staticClass:\"lookup-values\",attrs:{\"cols\":\"auto\"}},[_c('v-item-group',{staticClass:\"column-group column-group-first column-group-last\"},[_c('span',{staticClass:\"column-group-name mb-3\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_LookupValues')))]),_vm._v(\" \"),_c('draggable',{attrs:{\"draggable\":\".item\"},model:{value:(_vm.lookUpItems),callback:function ($$v) {_vm.lookUpItems=$$v},expression:\"lookUpItems\"}},[_vm._l((_vm.lookUpItems),function(item,index){return _c('v-card',{key:item.name,staticClass:\"item ma-1 pa-1\"},[_c('v-list-item',{staticClass:\"pa-0\"},[_c('v-list-item-icon',{staticClass:\"mx-0\"},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\"}},[_vm._v(\"fal fa-ellipsis-v\")])],1),_vm._v(\" \"),_c('v-list-item-action',{staticClass:\"mx-1\"},[_c('color-picker',{on:{\"change\":function($event){return _vm.onColorSelected(item)}},model:{value:(item.color),callback:function ($$v) {_vm.$set(item, \"color\", $$v)},expression:\"item.color\"}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"dense\":\"\",\"small\":\"\"}},[_vm._v(\"fal fa-paint-brush\")])],1)],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-chip',{attrs:{\"small\":\"\",\"color\":item.color,\"label\":\"\"}},[_vm._v(\"\\n \"+_vm._s(item.name)+\"\\n \")])],1),_vm._v(\" \"),_c('v-list-item-action',{on:{\"click\":function($event){return _vm.deleteItem(index)}}},[_c('v-icon',{staticClass:\"mx-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")])],1)],1)],1)}),_vm._v(\" \"),_c('v-row',{staticClass:\"ma-0 pa-0\",attrs:{\"slot\":\"header\",\"no-gutters\":\"\"},slot:\"header\"},[_c('v-col',[_c('v-text-field',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('LookupEditor_AddItemsPlaceHolder')},on:{\"keydown\":_vm.onAddItemKeyDown},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('v-btn',{staticClass:\"pa-1 mt-n2 ml-n3 add-items\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.addItems}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('LookupEditor_AddItems'))+\"\\n \")])]},proxy:true}]),model:{value:(_vm.itemsToAdd),callback:function ($$v) {_vm.itemsToAdd=$$v},expression:\"itemsToAdd\"}})],1)],1)],2)],1)],1),_vm._v(\" \"),(_vm.helpText)?_c('v-col',{staticClass:\"ma-0 pa-0\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({staticClass:\"mt-8\",attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2180897107)},[_vm._v(\"\\n \"+_vm._s(_vm.helpText)+\"\\n \")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import {Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n import InputText from '@/views/components/FormInputs/InputText.vue';\r\n import ColorPicker from '@/views/components/ColorPicker.vue';\r\n import { Utils } from \"@/utils/Utilities\"\r\n import draggable from 'vuedraggable';\r\n import { KeyCodes } from '@/utils/KeyCodes';\r\n\r\n @Component({\r\n name: 'ColumnSettingsLookupEditor',\r\n components: {InputText, draggable, ColorPicker}\r\n })\r\n export default class ColumnSettingsLookupEditor extends Vue{\r\n @Prop({default: ''}) columnLookUpValues!: string;\r\n @Prop({default: ''}) helpText!: string;\r\n\r\n lookUpItems: ColumnSettingsLookupEditorItemVM[];\r\n itemsToAdd: string;\r\n\r\n constructor(){\r\n super();\r\n this.lookUpItems = [];\r\n this.itemsToAdd = \"\";\r\n }\r\n\r\n mounted(){\r\n this.parseItems(this.columnLookUpValues);\r\n }\r\n\r\n @Watch('columnLookUpValues')\r\n onValuesChanged(){\r\n this.parseItems(this.columnLookUpValues);\r\n }\r\n\r\n parseItems(values: string) {\r\n this.lookUpItems = [];\r\n if (!values) {\r\n return;\r\n }\r\n try {\r\n const items = JSON.parse(values)\r\n if (items) {\r\n this.lookUpItems = items.map((v: any) => new ColumnSettingsLookupEditorItemVM(v.name ? v.name : v.value, v.color)); \r\n }\r\n } \r\n catch {\r\n var strvalues: string[];\r\n if (Utils.isArray(values)) {\r\n strvalues = values;\r\n } else {\r\n strvalues = (values).replace(/\\r/g, \"\").split(\"\\n\");\r\n }\r\n if (strvalues) {\r\n \r\n for (var i = 0; i < strvalues.length; i++) {\r\n var val = strvalues[i];\r\n var valueVM = new ColumnSettingsLookupEditorItemVM(val, \"\");\r\n this.lookUpItems.push(valueVM);\r\n }\r\n }\r\n }\r\n }\r\n\r\n @Watch('lookUpItems')\r\n onLookUpItemsChanged(){\r\n let newItemsValues = JSON.stringify(this.lookUpItems);\r\n if(newItemsValues !== this.columnLookUpValues){\r\n this.$emit('changed', newItemsValues);\r\n }\r\n }\r\n\r\n addItems(){\r\n if(this.itemsToAdd?.length > 0){\r\n var items = this.itemsToAdd.split(\";\");\r\n if (items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].trim().length > 0) {\r\n if(!this.lookUpItems.find(li => li.name.toLowerCase() === items[i].toLowerCase())) {\r\n this.lookUpItems.push(new ColumnSettingsLookupEditorItemVM(items[i].trim(), \"\"));\r\n }\r\n }\r\n }\r\n this.itemsToAdd = \"\";\r\n }\r\n }\r\n }\r\n\r\n onAddItemKeyDown(event: KeyboardEvent){\r\n if (event.keyCode === KeyCodes.DOM_VK_RETURN) {\r\n this.addItems();\r\n }\r\n }\r\n\r\n deleteItem(index: number){\r\n if(index > -1){\r\n this.lookUpItems.splice(index, 1);\r\n }\r\n }\r\n\r\n getColorrgb(item: ColumnSettingsLookupEditorItemVM) {\r\n var color = this.$vuetify.theme.currentTheme[item.color];\r\n if (color) {\r\n return color;\r\n } else {\r\n return \"#FFFFFF\";\r\n }\r\n }\r\n\r\n onClearColor(item: ColumnSettingsLookupEditorItemVM) {\r\n if(!item) {\r\n return;\r\n }\r\n item.color = '';\r\n this.onLookUpItemsChanged();\r\n }\r\n\r\n onColorSelected(item: ColumnSettingsLookupEditorItemVM) {\r\n if(item?.color == undefined) {\r\n return;\r\n }\r\n this.onLookUpItemsChanged();\r\n }\r\n\r\n }\r\n \r\n class ColumnSettingsLookupEditorItemVM{\r\n public name: string;\r\n public color: string;\r\n\r\n constructor(name: string, color: string){\r\n this.name = name;\r\n this.color = color;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettingsLookupEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettingsLookupEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnSettingsLookupEditor.vue?vue&type=template&id=41be947f&scoped=true&\"\nimport script from \"./ColumnSettingsLookupEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnSettingsLookupEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnSettingsLookupEditor.vue?vue&type=style&index=0&id=41be947f&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 \"41be947f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"pa-0 ma-0\"},[_c('v-row',{staticClass:\"mb-1 pa-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"ma-0 pa-0\"},[_c('v-autocomplete',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"loading\":_vm.loadingSiblings,\"label\":_vm.$t('ColumnSettings_ChooseLinkedList'),\"items\":_vm.siblings,\"item-text\":\"Path\",\"item-value\":\"Id\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}]),model:{value:(_vm.selectedLinkedList),callback:function ($$v) {_vm.selectedLinkedList=$$v},expression:\"selectedLinkedList\"}})],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-3 pa-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"ma-0 pa-0\"},[_c('div',{staticClass:\"field-description\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_LinkedListId')))]),_vm._v(\" \"),_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\"},model:{value:(_vm.selectedLinkedList),callback:function ($$v) {_vm.selectedLinkedList=$$v},expression:\"selectedLinkedList\"}})],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"ma-0 pa-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"ma-0 pa-0\"},[_c('v-select',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"loading\":_vm.loadingColumns,\"disabled\":!_vm.linkedColumns,\"label\":_vm.$t('ColumnSettings_LinkedColumn'),\"items\":_vm.linkedColumns,\"item-text\":\"DisplayName\",\"item-value\":\"Name\",\"hide-details\":\"\"},on:{\"change\":_vm.onColumnNameChanged},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}]),model:{value:(_vm.selectedColumnName),callback:function ($$v) {_vm.selectedColumnName=$$v},expression:\"selectedColumnName\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport * as Api from '@/api/Api';\r\nimport { ListThumbnailInfo } from '@/models/RowShare';\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\n\r\n@Component({name: 'ColumnSettingsLookupListEditor'})\r\nexport default class ColumnSettingsLookupListEditor extends Vue {\r\n @Prop() currentListId!: string;\r\n @Prop() lookupListId!: string;\r\n @Prop() lookupListColumnName!: string;\r\n selectedColumnName: string = \"\";\r\n loadingSiblings: boolean = true;\r\n loadingColumns: boolean = false;\r\n linkedColumns: RowShare.Column[] | null = [];\r\n siblings: ListThumbnailInfo[] | null = [];\r\n\r\n mounted() {\r\n if(!this.currentListId) {\r\n return;\r\n }\r\n this.init();\r\n }\r\n\r\n @Watch('lookupListId')\r\n @Watch('lookupListColumnName')\r\n init() {\r\n this.loadingSiblings = true;\r\n Api.ListTree.loadSiblings(this.currentListId).then(lists => {\r\n this.siblings = lists?.filter(l => !l.IsInRecycleBin) ?? [];\r\n this.internalSelectedLinkedList = this.lookupListId ?? null;\r\n this.loadColumnsForLinkedList(() => {\r\n this.selectedColumnName = this.lookupListColumnName;\r\n });\r\n this.loadingSiblings = false;\r\n });\r\n }\r\n\r\n internalSelectedLinkedList: string | null = null;\r\n\r\n get selectedLinkedList() : string | null {\r\n return this.internalSelectedLinkedList;\r\n }\r\n\r\n set selectedLinkedList(val: string | null) {\r\n this.internalSelectedLinkedList = val;\r\n\r\n if(!val)\r\n return;\r\n\r\n this.loadColumnsForLinkedList(() => {\r\n if(this.linkedColumns && this.linkedColumns.length > 0) {\r\n this.selectedColumnName = this.linkedColumns[0].Name;\r\n this.onColumnNameChanged();\r\n }\r\n });\r\n }\r\n\r\n private loadColumnsForLinkedList(callback: () => any){\r\n this.loadingColumns = true;\r\n this.linkedColumns = [];\r\n if(this.selectedLinkedList === null)\r\n return;\r\n\r\n Api.Column.loadForList(this.selectedLinkedList).then(cols => {\r\n this.linkedColumns = cols ?? [];\r\n callback();\r\n this.loadingColumns = false; \r\n });\r\n }\r\n\r\n onColumnNameChanged() {\r\n if(this.selectedColumnName) {\r\n this.$emit('change', {linkedListId: this.selectedLinkedList, linkedColumnName: this.selectedColumnName});\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettingsLookupListEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettingsLookupListEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnSettingsLookupListEditor.vue?vue&type=template&id=bcf057b0&\"\nimport script from \"./ColumnSettingsLookupListEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnSettingsLookupListEditor.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"pa-0 ma-0\"},[_c('v-row',{staticClass:\"ma-0 pa-0\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"ma-0 pa-0\"},[_c('v-autocomplete',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"loading\":_vm.loadingSiblings,\"label\":_vm.$t('ColumnSettings_ChooseRelatedList'),\"items\":_vm.siblings,\"item-text\":\"Path\",\"item-value\":\"Id\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true},{key:\"append-outer\",fn:function(){return [(_vm.helpText)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.helpText)+\"\\n \")]):_vm._e()]},proxy:true}]),model:{value:(_vm.selectedRelatedListId),callback:function ($$v) {_vm.selectedRelatedListId=$$v},expression:\"selectedRelatedListId\"}})],1)],1),_vm._v(\" \"),_c('v-row',{staticClass:\"ma-0 pa-0\",attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"ma-0 pa-0\"},[_c('v-list',{attrs:{\"elevation\":\"0\",\"outlined\":\"\",\"dense\":\"\",\"disabled\":_vm.disableColumnSelection}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('ColumnSettings_RelatedListColumns')))]),_vm._v(\" \"),_c('v-list-item-group',{staticClass:\"related-cols\",attrs:{\"color\":\"primary\"},model:{value:(_vm.selectedRelatedListColumnIndex),callback:function ($$v) {_vm.selectedRelatedListColumnIndex=$$v},expression:\"selectedRelatedListColumnIndex\"}},_vm._l((_vm.relatedListColumns),function(col){return _c('v-list-item',{key:col.Id,on:{\"dblclick\":_vm.addRelatedColumn}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(col.DisplayName))])],1)],1)}),1)],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"action-buttons\"},[_c('v-btn',{staticClass:\"mb-1\",attrs:{\"loading\":_vm.addingRelatedColumn,\"small\":\"\",\"tile\":\"\",\"color\":\"primary\",\"disabled\":!_vm.relatedListColumnSelected},on:{\"click\":_vm.addRelatedColumn}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-chevron-right\")])],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"mb-1\",attrs:{\"loading\":_vm.removingRelatedColumn,\"small\":\"\",\"tile\":\"\",\"color\":\"primary\",\"disabled\":!_vm.canRemoveRelatedColumn},on:{\"click\":_vm.removeRelatedColumn}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-chevron-left\")])],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"ma-0 pa-0\"},[_c('v-list',{attrs:{\"elevation\":\"0\",\"outlined\":\"\",\"dense\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('ColumnSettings_RelatedColumns')))]),_vm._v(\" \"),_c('v-list-item-group',{staticClass:\"related-cols\",attrs:{\"color\":\"primary\"},model:{value:(_vm.selectedRelatedColumnIndex),callback:function ($$v) {_vm.selectedRelatedColumnIndex=$$v},expression:\"selectedRelatedColumnIndex\"}},_vm._l((_vm.relatedColumns),function(col){return _c('v-list-item',{key:col.Id,on:{\"dblclick\":_vm.removeRelatedColumn}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(col.DisplayName))])],1)],1)}),1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport * as Api from '@/api/Api';\r\nimport { GlobalNotificationEventParams, ListThumbnailInfo } from '@/models/RowShare';\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\n@Component({name: 'ColumnSettingsRelatedColumnsEditor'})\r\nexport default class ColumnSettingsRelatedColumnsEditor extends Vue {\r\n @Prop() currentListId!: string;\r\n @Prop() relatedListId!: string;\r\n @Prop() currentColumnId!: string;\r\n @Prop() disableColumnSelection!: boolean;\r\n @Prop() helpText!: string;\r\n\r\n selectedRelatedListColumnIndex: number = -1;\r\n selectedRelatedColumnIndex: number = -1;\r\n loadingSiblings: boolean = true;\r\n loadingColumns: boolean = false;\r\n relatedListColumns: RowShare.Column[] | null = [];\r\n relatedColumns: RowShare.Column[] | null = [];\r\n siblings: ListThumbnailInfo[] | null = [];\r\n removingRelatedColumn: boolean = false;\r\n addingRelatedColumn: boolean = false;\r\n originalRelatedListColumns: RowShare.Column[] | null = [];\r\n\r\n mounted() {\r\n if(!this.currentListId)\r\n return;\r\n\r\n this.loadingSiblings = true;\r\n Api.ListTree.loadSiblings(this.currentListId).then(lists => {\r\n this.siblings = lists?.filter(l => !l.IsInRecycleBin && l.Id != this.currentListId) ?? [];\r\n this.internalSelectedRelatedListId = this.relatedListId ?? null;\r\n this.loadRelatedColumns().then(() => this.loadColumnsForRelatedList());\r\n this.loadingSiblings = false;\r\n });\r\n }\r\n\r\n @Watch('disableColumnSelection')\r\n initFirstRelatedColumn() {\r\n if(!this.disableColumnSelection && (this.relatedColumns?.length ?? 0) == 0) {\r\n setTimeout(() => {\r\n if(this.relatedListColumns) {\r\n let mainColIndex = this.relatedListColumns.findIndex(c => c.IsMainColumn);\r\n this.selectedRelatedListColumnIndex = mainColIndex > -1 ? mainColIndex : 0;\r\n this.addRelatedColumn();\r\n }\r\n }, 0);\r\n }\r\n }\r\n\r\n internalSelectedRelatedListId: string | null = null;\r\n\r\n get selectedRelatedListId() : string | null {\r\n return this.internalSelectedRelatedListId;\r\n }\r\n\r\n set selectedRelatedListId(val: string | null) {\r\n this.internalSelectedRelatedListId = val;\r\n\r\n if(!val)\r\n return;\r\n Api.Column.clearRelated(this.currentColumnId)\r\n .then(res => {\r\n this.loadRelatedColumns().then(() => {\r\n this.loadColumnsForRelatedList()\r\n .then(() => this.onRelatedListChanged());\r\n }); \r\n });\r\n }\r\n\r\n onRelatedListChanged() {\r\n if(this.selectedRelatedListId) {\r\n this.$emit('change', {RelatedListId: this.selectedRelatedListId});\r\n }\r\n }\r\n\r\n get canRemoveRelatedColumn() {\r\n return ((this.selectedRelatedColumnIndex ?? -1) >= 0 && (this.relatedColumns?.length ?? 0) > 1);\r\n }\r\n\r\n get relatedListColumnSelected() {\r\n return (this.selectedRelatedListColumnIndex ?? -1) >= 0;\r\n }\r\n\r\n private notifyColumnSaved() {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('ColumnSettings_SaveSuccess'), \r\n type: RowShare.NotificationType.success, \r\n autoHide: true, autoHideAfterMs: 4000,\r\n duplicateId: 'ColumnSaveSuccess'});\r\n this.$emit('columnsChanged');\r\n }\r\n\r\n private async loadColumnsForRelatedList(){\r\n this.relatedListColumns = [];\r\n this.selectedRelatedListColumnIndex = -1;\r\n this.selectedRelatedColumnIndex = -1;\r\n if(this.selectedRelatedListId === null)\r\n return;\r\n\r\n this.originalRelatedListColumns = (await Api.Column.loadForList(this.selectedRelatedListId))?.filter(c => !c.isTechnical && c.Type != RowShare.ColumnStrongType.Comment && c.Type != RowShare.ColumnStrongType.Relation) ?? [];\r\n this.relatedListColumns = this.originalRelatedListColumns.filter(c => this.relatedColumns?.findIndex(rc => rc.ParentColumnId == c.Id) == -1);\r\n }\r\n\r\n private async loadRelatedColumns() {\r\n this.relatedColumns = (await Api.Column.loadRelated(this.currentColumnId)) ?? [];\r\n }\r\n\r\n addRelatedColumn() {\r\n if(this.selectedRelatedListColumnIndex != null && this.relatedListColumns && this.selectedRelatedListColumnIndex >= 0 \r\n && this.selectedRelatedListColumnIndex < this.relatedListColumns.length) {\r\n this.addingRelatedColumn = true;\r\n var parentCol = this.relatedListColumns[this.selectedRelatedListColumnIndex];\r\n if(parentCol) {\r\n var childCol = new RowShare.Column();\r\n childCol.Type = RowShare.ColumnStrongType.Child;\r\n childCol.ListId = this.currentListId;\r\n childCol.DisplayName = parentCol.DisplayName;\r\n childCol.ParentColumnId = parentCol.Id;\r\n childCol.RelationColumnId = this.currentColumnId;\r\n childCol.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n Api.Column.save(childCol)\r\n .then(savedCol => {\r\n if(this.selectedRelatedListColumnIndex >= 0 && this.relatedListColumns) {\r\n this.relatedListColumns.splice(this.selectedRelatedListColumnIndex, 1);\r\n }\r\n this.loadRelatedColumns();\r\n this.notifyColumnSaved();\r\n })\r\n .finally(() => this.addingRelatedColumn = false);\r\n }\r\n }\r\n }\r\n\r\n\r\n async removeRelatedColumn() {\r\n if(!this.canRemoveRelatedColumn) {\r\n return;\r\n }\r\n if(this.selectedRelatedColumnIndex != null && this.relatedColumns && this.selectedRelatedColumnIndex >= 0 && this.selectedRelatedColumnIndex < this.relatedColumns.length) {\r\n if(await Api.Column.IsReferenced(this.relatedColumns[this.selectedRelatedColumnIndex].Id)) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: this.$i18n.t('ColumnMenu_CannotDeleteReferenced').toString(),\r\n autoHide: true,\r\n autoHideAfterMs: 10000,\r\n type: 'error',\r\n duplicateId: 'CannotDeleteColumn'\r\n });\r\n }\r\n else {\r\n this.removingRelatedColumn = true;\r\n const colToRemove = this.relatedColumns[this.selectedRelatedColumnIndex];\r\n colToRemove.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n Api.Column.remove(colToRemove)\r\n .then(res => {\r\n if(res) {\r\n if(this.selectedRelatedColumnIndex >= 0 && this.relatedColumns) {\r\n this.relatedColumns.splice(this.selectedRelatedColumnIndex, 1);\r\n }\r\n this.loadColumnsForRelatedList();\r\n }\r\n this.notifyColumnSaved();\r\n })\r\n .finally(() => this.removingRelatedColumn = false);\r\n\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettingsRelatedColumnsEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettingsRelatedColumnsEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnSettingsRelatedColumnsEditor.vue?vue&type=template&id=3f3b1d28&scoped=true&\"\nimport script from \"./ColumnSettingsRelatedColumnsEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnSettingsRelatedColumnsEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnSettingsRelatedColumnsEditor.vue?vue&type=style&index=0&id=3f3b1d28&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 \"3f3b1d28\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{attrs:{\"align-content\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-item-group',{staticClass:\"column-group column-group-first column-group-last\"},[_c('span',{staticClass:\"column-group-name mb-3\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_Color')))]),_vm._v(\" \"),_c('v-row',{attrs:{\"align-content\":\"center\"}},[_c('v-col',{staticClass:\"color-picker color-editor--col\"},[_c('color-picker',{on:{\"change\":_vm.onColorSelected},model:{value:(_vm.selectedColor),callback:function ($$v) {_vm.selectedColor=$$v},expression:\"selectedColor\"}},[_c('v-btn',{attrs:{\"color\":_vm.currentColumn.Color,\"tile\":\"\",\"elevation\":\"0\"}},[(_vm.lightColor)?_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/palette-blue.svg\"),\"contain\":\"\",\"height\":\"20\",\"width\":\"20\"}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/palette-white.svg\"),\"contain\":\"\",\"height\":\"20\",\"width\":\"20\"}})],1)],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"color-editor--col\"},[_c('v-checkbox',{staticClass:\"mr-2 color-type\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.colorTypesDisabled,\"label\":_vm.headerCheckboxLabel,\"value\":_vm.headerCheckboxValue},on:{\"change\":_vm.onColorTypeChanged},model:{value:(_vm.selectedColorTypes),callback:function ($$v) {_vm.selectedColorTypes=$$v},expression:\"selectedColorTypes\"}}),_vm._v(\" \"),_c('v-checkbox',{staticClass:\"color-type\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.colorTypesDisabled,\"label\":_vm.cellsCheckboxLabel,\"value\":_vm.cellsCheckboxValue},on:{\"change\":_vm.onColorTypeChanged},model:{value:(_vm.selectedColorTypes),callback:function ($$v) {_vm.selectedColorTypes=$$v},expression:\"selectedColorTypes\"}})],1)],1)],1)],1),_vm._v(\" \"),(_vm.helpText)?_c('v-col',{staticClass:\"px-0 ml-n1\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({staticClass:\"mt-5\",attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,708518846)},[_vm._v(\"\\n \"+_vm._s(_vm.helpText)+\"\\n \")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport ColorPicker from '@/views/components/ColorPicker.vue';\r\nimport { Column, ColumnColorType } from '@/models/RowShare';\r\n\r\n@Component({name: 'ColumnSettingsColorEditor', components: { ColorPicker }})\r\nexport default class ColumnSettingsColorEditor extends Vue {\r\n @Prop() currentColumn!: Column\r\n @Prop() helpText!: string;\r\n selectedColorTypes: any[] = [];\r\n selectedColor: string = '';\r\n\r\n @Watch('currentColumn')\r\n initCurrentColumnColorType() {\r\n switch(this.currentColumn?.ColorType) {\r\n case ColumnColorType.All:\r\n this.selectedColorTypes.push(...[ColumnColorType.Header, ColumnColorType.Cells]);\r\n break;\r\n case ColumnColorType.None:\r\n this.selectedColorTypes = [];\r\n break;\r\n default:\r\n this.selectedColorTypes.push(this.currentColumn.ColorType);\r\n break;\r\n }\r\n this.selectedColor = this.currentColumn.Color ?? '';\r\n }\r\n\r\n get headerCheckboxLabel(): string {\r\n return this.$i18n.t('ColumnSettings_ColorType_Header').toString();\r\n }\r\n\r\n get cellsCheckboxLabel(): string {\r\n return this.$i18n.t('ColumnSettings_ColorType_Cells').toString();\r\n }\r\n\r\n get headerCheckboxValue() {\r\n return ColumnColorType.Header;\r\n }\r\n\r\n get cellsCheckboxValue() {\r\n return ColumnColorType.Cells;\r\n }\r\n\r\n get colorTypesDisabled(): boolean {\r\n return this.currentColumn.Color === '';\r\n }\r\n\r\n get lightColor(): boolean {\r\n return ['color1','color2','color7','color12','color17','color21','color27'].findIndex(c => c === this.currentColumn?.Color) > -1 || !this.currentColumn?.Color;\r\n }\r\n\r\n onColorTypeChanged() {\r\n this.setColumnColorType();\r\n this.$emit('change');\r\n }\r\n\r\n onColorSelected() {\r\n if(this.selectedColor == undefined) {\r\n return;\r\n }\r\n if(this.currentColumn.Color !== this.selectedColor) {\r\n this.currentColumn.Color = this.selectedColor;\r\n if(this.selectedColor == \"\") {\r\n this.currentColumn.ColorType = ColumnColorType.None;\r\n this.selectedColorTypes = [];\r\n }\r\n else {\r\n if(this.selectedColorTypes.length == 0) {\r\n this.selectedColorTypes.push(ColumnColorType.Header);\r\n this.setColumnColorType();\r\n }\r\n }\r\n this.$emit('change');\r\n }\r\n }\r\n\r\n setColumnColorType() {\r\n if(this.selectedColorTypes.length == 0) {\r\n this.currentColumn.ColorType = ColumnColorType.None;\r\n }\r\n else if (this.selectedColorTypes.length == 1) {\r\n this.currentColumn.ColorType = this.selectedColorTypes[0];\r\n }\r\n else {\r\n this.currentColumn.ColorType = ColumnColorType.All;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettingsColorEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettingsColorEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnSettingsColorEditor.vue?vue&type=template&id=59e854ad&scoped=true&\"\nimport script from \"./ColumnSettingsColorEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnSettingsColorEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnSettingsColorEditor.vue?vue&type=style&index=0&id=59e854ad&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 \"59e854ad\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',{staticClass:\"mb-5 justify-center\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"1\"}},[_c('v-btn',{staticClass:\"mr-1\",attrs:{\"color\":\"primary\",\"icon\":\"\",\"disabled\":!_vm.canGoToPrevious},on:{\"click\":_vm.previousColumn}},[_c('v-icon',[_vm._v(\"fal fa-arrow-circle-left\")])],1)],1),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-select',{staticClass:\"column-switcher\",attrs:{\"disabled\":_vm.disableNavigation,\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"items\":_vm.allColumns,\"item-text\":\"DisplayName\",\"item-value\":\"Id\"},model:{value:(_vm.selectedColumnId),callback:function ($$v) {_vm.selectedColumnId=$$v},expression:\"selectedColumnId\"}})],1),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-btn',{attrs:{\"color\":\"primary\",\"icon\":\"\",\"disabled\":!_vm.canGoToNext},on:{\"click\":_vm.nextColumn}},[_c('v-icon',[_vm._v(\"fal fa-arrow-circle-right\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Prop, ModelSync, Watch } from 'vue-property-decorator';\r\nimport * as Models from '@/models/RowShare';\r\nimport * as Api from '@/api/Api';\r\nimport { EventBus } from '@/modules/EventBus';\r\n\r\n@Component({name: 'ColumnSelector'})\r\nexport default class ColumnSelector extends Vue {\r\n @Prop() listId!: string;\r\n @Prop({default: true}) manageChildColumns!: boolean;\r\n @Prop({default: false}) disableNavigation!: boolean;\r\n @ModelSync('value', 'change') selectedColumnId!: string | null;\r\n allColumns: Models.Column[] | null = [];\r\n\r\n created() {\r\n this.initColumns();\r\n EventBus.$on(Models.Event.COLUMN_INFOS_CHANGED, (column: Models.Column) => this.updateColumnInfos(column));\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([Models.Event.COLUMN_INFOS_CHANGED]);\r\n }\r\n\r\n updateColumnInfos(column: Models.Column) {\r\n if(this.allColumns && column) {\r\n let index = this.allColumns.findIndex((c) => c.Id == column.Id);\r\n if(index > -1) {\r\n this.allColumns[index].DisplayName = column.DisplayName;\r\n }\r\n }\r\n }\r\n\r\n @Watch('listId')\r\n onListIdChanged() {\r\n this.initColumns();\r\n }\r\n\r\n async initColumns() {\r\n if(this.listId && (this.allColumns?.length ?? 0) == 0) {\r\n var listColumns = await Api.Column.loadForList(this.listId, {cache: false});\r\n listColumns?.forEach(lc => {\r\n if(lc.HasParentColumn && this.manageChildColumns) {\r\n if(this.allColumns?.findIndex(ac => ac.ColumnGroup === lc.ColumnGroup) == -1) { \r\n lc.DisplayName = lc.ColumnGroup;\r\n lc.Id = lc.RelationColumnId;\r\n this.allColumns.push(lc);\r\n }\r\n }\r\n else {\r\n this.allColumns?.push(lc);\r\n }\r\n });\r\n }\r\n }\r\n\r\n get canGoToPrevious(): boolean {\r\n if(this.disableNavigation) {\r\n return false;\r\n }\r\n if(this.allColumns) {\r\n let index = this.allColumns.findIndex((c) => c.Id == this.selectedColumnId);\r\n return index > 0;\r\n }\r\n return true;\r\n }\r\n\r\n get canGoToNext(): boolean {\r\n if(this.disableNavigation) {\r\n return false;\r\n }\r\n if(this.allColumns) {\r\n let index = this.allColumns.findIndex((c) => c.Id == this.selectedColumnId);\r\n return index < this.allColumns.length - 1;\r\n }\r\n return true;\r\n }\r\n\r\n previousColumn() {\r\n if(this.allColumns) {\r\n let index = this.allColumns.findIndex((c) => c.Id == this.selectedColumnId);\r\n if(index > 0) {\r\n this.selectedColumnId = this.allColumns[index - 1].Id;\r\n }\r\n }\r\n }\r\n \r\n nextColumn() {\r\n if(this.allColumns) {\r\n let index = this.allColumns.findIndex((c) => c.Id == this.selectedColumnId);\r\n if(index < this.allColumns.length - 1) {\r\n this.selectedColumnId = this.allColumns[index + 1].Id;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnSelector.vue?vue&type=template&id=0a48d42e&\"\nimport script from \"./ColumnSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnSelector.vue?vue&type=style&index=0&id=0a48d42e&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","\r\nimport {Component, Prop, Watch} from 'vue-property-decorator';\r\nimport * as Models from '@/models/RowShare';\r\nimport {\r\n ColumnStrongType,\r\n ConfirmationRequiredEventParams,\r\n Event,\r\n GlobalNotificationEventParams,\r\n NotificationType\r\n} from '@/models/RowShare';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport ColumnSettingsLookupEditor from '@/views/Table/ColumnSettings/ColumnSettingsLookupEditor.vue';\r\nimport {FormValidation} from '@/views/components/FormValidation';\r\nimport {Column, List} from '@/api/Api';\r\nimport {ValidationObserver} from 'vee-validate';\r\nimport {RawLocation, Route} from 'vue-router';\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport InputTextArea from '@/views/components/FormInputs/InputTextArea.vue';\r\nimport {ColumnTypes} from '@/utils/ColumnTypes';\r\nimport ColumnSettingsLookupListEditor from '@/views/Table/ColumnSettings/ColumnSettingsLookupListEditor.vue';\r\nimport ColumnSettingsRelatedColumnsEditor from '@/views/Table/ColumnSettings/ColumnSettingsRelatedColumnsEditor.vue';\r\nimport ColumnSettingsColorEditor from '@/views/Table/ColumnSettings/ColumnSettingsColorEditor.vue';\r\nimport {EventBus} from '@/modules/EventBus';\r\nimport {Utils} from '@/utils/Utilities';\r\nimport {RowShareException} from '@/api/ApiUtils';\r\nimport {UserModule} from '@/store/UserStore';\r\nimport ColumnSelector from '@/views/Table/ColumnSettings/ColumnSelector.vue';\r\nimport {ColumnType, ColumnTypeCategory, ColumnTypeCategoryName} from \"@/models/ColumnType\";\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\n@Component({\r\n name: 'ColumnSettings',\r\n components: { PageLoadSpinner,\r\n ColumnSettingsLookupEditor,\r\n ValidationObserver,\r\n InputText,\r\n InputTextArea,\r\n ColumnSettingsLookupListEditor,\r\n ColumnSettingsRelatedColumnsEditor,\r\n ColumnSettingsColorEditor,\r\n ColumnSelector\r\n }\r\n})\r\nexport default class ColumnSettings extends FormValidation {\r\n @Prop() listId!: string;\r\n @Prop() columnId!: string;\r\n\r\n private defaultProps = { maxHeight: 200 };\r\n currentColumn: Models.Column | null = new Models.Column();\r\n currentList: Models.List | null = new Models.List();\r\n originalColumn: Models.Column = new Models.Column();\r\n validForm: boolean = true;\r\n selectedColumnId: string | null = '';\r\n columnTypeError: string = '';\r\n disableRelatedColumnsSelection: boolean = false;\r\n previousColumnType: Models.ColumnStrongType | null = null;\r\n\r\n async created(){\r\n if(this.listId){\r\n this.currentList = await List.load(this.listId);\r\n }\r\n this.currentColumn = await Column.load(this.columnId);\r\n Object.assign(this.originalColumn, this.currentColumn);\r\n this.selectedColumnId = this.columnId;\r\n this.previousColumnType = this.currentColumn!.Type;\r\n window.addEventListener('beforeunload', this.beforeUnload);\r\n }\r\n\r\n beforeDestroy() {\r\n window.removeEventListener('beforeunload', this.beforeUnload);\r\n }\r\n\r\n returnToTable() {\r\n this.$router.push({name: 'Table', params: {listId: this.listId}});\r\n }\r\n\r\n async validateForm(): Promise {\r\n this.columnTypeError = \"\";\r\n let isValid = await (this.$refs.observer).validate();\r\n isValid = await isValid && (this.$refs.form).validate();\r\n if(isValid) {\r\n if(!this.currentColumn?.Type) {\r\n this.columnTypeError = this.$i18n.t('ColumnSettings_MandatoryProperty', [this.$i18n.t('ColumnSettings_Type').toString()]).toString();\r\n return false;\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n //hasProhibitedChanges(): boolean {\r\n //\t\tconst prohibitedTypes = [\r\n //\t\t\t\t//adding prohibited items about lookup list\r\n //\t\t\t\tColumnStrongType.LookUpList,\r\n //\t\t\t\tColumnStrongType.LookUp,\r\n //\t\t\t\t//adding prohibited items about metadata\r\n //\t\t\t\tColumnStrongType.OwnerName, ColumnStrongType.OwnerEmail, ColumnStrongType.CreationDate,\r\n //\t\t\t\tColumnStrongType.CreatedByUserEmail, ColumnStrongType.LastWriteDate,\r\n //\t\t\t\tColumnStrongType.LastWriteUserName, ColumnStrongType.MemberManagerName, ColumnStrongType.RowIndex,\r\n //\t\t\t\t//adding prohibited items about related row\r\n //\t\t\t\tColumnStrongType.Relation\r\n //\t\t];\r\n //\r\n //\t\treturn this.previousColumnType !== this.currentColumn!.Type\r\n //\t\t\t&& prohibitedTypes.includes(this.previousColumnType!) && prohibitedTypes.includes(this.currentColumn!.Type);\r\n //}\r\n\r\n async updateColumnSettings() {\r\n this.disableRelatedColumnsSelection = true;\r\n let isValid = await this.validateForm();\r\n if(isValid){\r\n if(this.currentColumn && this.columnSettingsHaveChanged) {\r\n if(this.currentColumn.Type != this.originalColumn?.Type && this.currentColumn.Type == ColumnStrongType.LookUp && !this.currentColumn.LookupValues) {\r\n this.currentColumn.LookupValues = ColumnTypes.defaultLookupValues;\r\n }\r\n this.currentColumn.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n Column.save(this.currentColumn, {clearCache: true})\r\n .then(savedColumn => {\r\n Object.assign(this.originalColumn, this.currentColumn);\r\n EventBus.$emit(Event.COLUMN_INFOS_CHANGED, savedColumn);\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('ColumnSettings_SaveSuccess'),\r\n type: NotificationType.success,\r\n autoHide: true, autoHideAfterMs: 4000,\r\n duplicateId: 'ColumnSaveSuccess'});\r\n setTimeout(() => { this.disableRelatedColumnsSelection = false}, 0);\r\n })\r\n .catch(exc => {\r\n let rsExc = exc as RowShareException;\r\n let exceptionMsg = \"\";\r\n if(rsExc) {\r\n exceptionMsg = rsExc.message;\r\n }\r\n else {\r\n exceptionMsg = this.$i18n.t('ColumnSettings_SaveError').toString();\r\n }\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: exceptionMsg,\r\n type: NotificationType.error,\r\n autoHide: true, autoHideAfterMs: 10000});\r\n setTimeout(() => { this.disableRelatedColumnsSelection = true}, 0);\r\n });\r\n }\r\n }\r\n }\r\n\r\n get columnSettingsHaveChanged() {\r\n return this.currentColumn && JSON.stringify(this.currentColumn) != JSON.stringify(this.originalColumn);\r\n }\r\n\r\n beforeRouteLeave(to: Route, from: Route, next: any){\r\n this.handleBeforeRouteLeave(() => next());\r\n }\r\n\r\n async canLeaveRoute() {\r\n let isValid = await this.validateForm();\r\n return (isValid || !this.columnSettingsHaveChanged);\r\n }\r\n\r\n async beforeUnload(evt: BeforeUnloadEvent) {\r\n let canLeave = await this.canLeaveRoute();\r\n if(!canLeave){\r\n evt.returnValue = this.$i18n.t('NotSavedItemsDialog_Description');\r\n evt.preventDefault();\r\n }\r\n }\r\n\r\n async handleBeforeRouteLeave(callback : () => void) {\r\n let canLeave = await this.canLeaveRoute();\r\n if(!canLeave){\r\n let event = new ConfirmationRequiredEventParams();\r\n event.title = this.$i18n.t('NotSavedItemsDialog_Title').toString();\r\n event.description1 = this.$i18n.t('NotSavedItemsDialog_Description').toString();\r\n event.cancelButtonText = this.$i18n.t('NotSavedItemsDialog_Cancel').toString();\r\n event.actionButtonText = this.$i18n.t('NotSavedItemsDialog_Validate').toString();\r\n event.actionButtonColor = \"primary\";\r\n event.onConfirmation = async () => {\r\n callback();\r\n };\r\n EventBus.$emit(Event.CLEAR_ALL_GLOBAL_NOTIFICATIONS);\r\n EventBus.$emit(Event.CONFIRMATION_REQUIRED, event);\r\n }\r\n else {\r\n callback();\r\n }\r\n }\r\n\r\n @Watch('columnId')\r\n async onColumnIdChanged(){\r\n this.currentColumn = await Column.load(this.columnId);\r\n this.selectedColumnId = this.columnId;\r\n }\r\n\r\n onSelectedColumnIdChanged() {\r\n this.handleBeforeRouteLeave(() => {\r\n this.$router.push({name: 'ColumnSettings', params: {listId: this.listId, columnId: this.selectedColumnId}});\r\n });\r\n }\r\n\r\n onLookupValuesChanged(value: string){\r\n if(this.currentColumn){\r\n this.currentColumn.LookupValues = value;\r\n this.updateColumnSettings();\r\n }\r\n }\r\n\r\n onLinkedColumnChanged(link: any) {\r\n if(link && this.currentColumn) {\r\n this.currentColumn.LookupListColumnName = link.linkedColumnName;\r\n this.currentColumn.LookupListId = link.linkedListId;\r\n this.updateColumnSettings();\r\n }\r\n }\r\n\r\n async onRelatedListChanged(event: any) {\r\n if(event && this.currentColumn) {\r\n this.currentColumn.RelatedListId = event.RelatedListId;\r\n this.updateColumnSettings()\r\n }\r\n }\r\n\r\n get columnTypes(): any[] {\r\n let types = ColumnTypes.getColumnTypesWithCategoriesSelectorItems(UserModule.connectedUser?.PreviewFeaturesEnabled ?? false);\r\n\r\n const typesToRemoveCriteria = (item : Models.ColumnStrongType) =>\r\n ColumnType.metadataTypes().includes(item)\r\n //|| ColumnType.lookupListTypes().includes(item)\r\n || ColumnType.relatedRowTypes().includes(item);\r\n\r\n if(typesToRemoveCriteria(this.currentColumn!.Type)){\r\n return types;\r\n }\r\n let filteredType = types.filter(item => !typesToRemoveCriteria(item.value));\r\n //removing header.\r\n //filteredType = filteredType.filter(item => !item.category || item.category !== ColumnTypeCategoryName.lookUp);\r\n filteredType = filteredType.filter(item => !item.category || item.category !== ColumnTypeCategoryName.row);\r\n return filteredType;\r\n }\r\n\r\n get isNotAllowedColumnType(): boolean {\r\n if (!this.currentColumn)\r\n return true;\r\n if (ColumnType.metadataTypes().includes(this.currentColumn.Type))\r\n return true;\r\n /*else if (ColumnType.lookupListTypes().includes(this.currentColumn.Type))\r\n return true;*/\r\n else if (ColumnType.relatedRowTypes().includes(this.currentColumn.Type))\r\n return true;\r\n return false;\r\n }\r\n\r\n get cannotUpdateType(): boolean {\r\n return ((this.currentColumn?.Type === ColumnStrongType.Relation && !Utils.isNullOrWhiteSpace(this.currentColumn.RelatedListId)) || this.isNotAllowedColumnType);\r\n }\r\n\r\n @Watch('currentColumn.Type')\r\n resetValues() {\r\n if(this.currentColumn?.Type === ColumnStrongType.LookUp) {\r\n if(Utils.isNullOrWhiteSpace(this.currentColumn.LookupValues)) {\r\n this.currentColumn.LookupValues = ColumnTypes.defaultLookupValues;\r\n }\r\n this.currentColumn.MaxLength = 0;\r\n }\r\n }\r\n\r\n isValidNumber(value: any): boolean | string {\r\n let valStr = value?.toString() ?? \"\";\r\n if(Utils.isNullOrWhiteSpace(valStr)) {\r\n return true;\r\n }\r\n const regExp = /^[\\-]?\\d*$/;\r\n\r\n var number: number | null = null;\r\n if(this.currentColumn?.Type === ColumnStrongType.DecimalNumber || this.currentColumn?.Type === ColumnStrongType.Percentage) {\r\n number = Utils.parseNumber(valStr, null);\r\n }\r\n else {\r\n number = Utils.parseInteger(valStr, null)\r\n }\r\n\r\n return (number != null) ? true : this.$i18n.t('ColumnSettings_InvalidNumber').toString();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ColumnSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnSettings.vue?vue&type=template&id=adc17b28&scoped=true&\"\nimport script from \"./ColumnSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnSettings.vue?vue&type=style&index=0&id=adc17b28&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 \"adc17b28\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"pa-4 print-container\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"not-printed\"},[_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.$t('TablePrint_Instructions')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"small\":\"\"},on:{\"click\":_vm.printTable}},[_vm._v(_vm._s(_vm.$t('TablePrint_Print')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"small\":\"\"},on:{\"click\":_vm.closeWindow}},[_vm._v(_vm._s(_vm.$t('TablePrint_Close')))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"small\":\"\"},on:{\"click\":_vm.sizeColumnsToFit}},[_vm._v(_vm._s(_vm.$t('TablePrint_SizeColumnsToFit')))])],1),_vm._v(\" \"),_c('h2',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.listTitle))]),_vm._v(\" \"),(_vm.gridViewVM)?_c('row-share-grid',{ref:\"gridToPrint\",attrs:{\"gridViewVM\":_vm.gridViewVM,\"list\":_vm.currentList,\"printMode\":true}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport * as Models from '@/models/RowShare';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport GridViewVM from '@/viewModels/Table/gridViewVM';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport {AgGridVue} from \"ag-grid-vue\";\r\nimport RowShareGrid from '@/views/Table/GridView/RowshareGrid.vue';\r\nimport ListVM from '@/viewModels/Table/listVM';\r\n\r\n@Component({name: 'TablePrint', components: { PageLoadSpinner, AgGridVue, RowShareGrid }})\r\nexport default class TablePrint extends Vue {\r\n @Prop() listVM!: ListVM;\r\n renderedCellsCount: number = 0;\r\n \r\n gridViewVM!: GridViewVM;\r\n \r\n created() {\r\n this.gridViewVM = new GridViewVM(this.listVM);\r\n }\r\n\r\n destroyed() {\r\n this.gridViewVM.dispose();\r\n }\r\n\r\n closeWindow() {\r\n window.close();\r\n }\r\n\r\n printTable() { \r\n window.print();\r\n }\r\n\r\n sizeColumnsToFit() {\r\n let grid = this.$refs.gridToPrint;\r\n if(grid) {\r\n this.gridViewVM?.columnApi?.sizeColumnsToFit(grid.$el.clientWidth);// window.innerWidth);\r\n this.gridViewVM?.gridApi?.refreshHeader();\r\n }\r\n }\r\n\r\n get listTitle() {\r\n return this.currentList?.DisplayName;\r\n }\r\n\r\n get currentList() : Models.List | null {\r\n return ListTreeModule.currentList;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TablePrint.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./TablePrint.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TablePrint.vue?vue&type=template&id=704e4e92&scoped=true&\"\nimport script from \"./TablePrint.vue?vue&type=script&lang=ts&\"\nexport * from \"./TablePrint.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TablePrint.vue?vue&type=style&index=0&id=704e4e92&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 \"704e4e92\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"backgrounds fill-height\"},[_c('v-container',[(_vm.listVM.columns && _vm.rowVM)?_c('v-row',{staticClass:\"align-self-start form-view-wrapper\"},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"d-flex flex-column justify-content-start mt-4\"},[_c('div',{staticClass:\"px-4 d-flex align-start\"},[_c('div',{staticClass:\"mr-4 mt-2\"},[(_vm.listVM && _vm.listVM.list && _vm.listVM.list.IconPath)?_c('v-img',{staticClass:\"rounded\",attrs:{\"width\":\"48\",\"height\":\"48\",\"src\":'/' + _vm.listVM.list.IconPath + '?_ssb_img=S;w:48;h:48'}}):_c('div',{staticClass:\"primary lighten-2\"},[_c('v-img',{attrs:{\"width\":\"48\",\"height\":\"48\",\"src\":require(\"@/assets/static/images/icon_default_table.svg\")}})],1)],1),_vm._v(\" \"),_c('div',[(_vm.listVM && _vm.listVM.list)?_c('h1',[_vm._v(_vm._s(_vm.listVM.list.DisplayName))]):_vm._e(),_vm._v(\" \"),(_vm.listVM && _vm.listVM.list && _vm.listVM.list.Description)?_c('p',{staticClass:\"mb-0\",staticStyle:{\"white-space\":\"pre-wrap\"},domProps:{\"innerHTML\":_vm._s(_vm.getDescriptionContent(_vm.listVM.list.Description))}}):_vm._e()])]),_vm._v(\" \"),_c('v-divider',{staticClass:\"mb-8 mt-4\"}),_vm._v(\" \"),_c('v-form',{ref:\"formEditor\",staticClass:\"px-4\"},[_vm._l((_vm.columnDescriptions.columns),function(colDesc,index){return _c('div',{key:index,class:{ 'column-group': colDesc.columnGroupName,\n 'column-group-first': _vm.columnDescriptions.isFirstOfGroup(index),\n 'column-group-middle': _vm.columnDescriptions.isMiddleOfGroup(index),\n 'column-group-last': _vm.columnDescriptions.isLastOfGroup(index),\n 'column-group-relation': colDesc.columnIsChild}},[(_vm.columnDescriptions.isFirstOfGroup(index))?_c('div',{staticClass:\"column-group-name\"},[_c('span',{staticClass:\"column-groupe-name-text\"},[_vm._v(_vm._s(colDesc.columnGroupName))]),_vm._v(\" \"),(_vm.columnDescriptions.isFirstOfGroup(index))?_c('v-tooltip',{staticClass:\"mr-2\",attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [(colDesc.columnIsChild)?_c('v-icon',_vm._g({staticClass:\"ml-2\",attrs:{\"size\":\"10\"}},on),[_vm._v(\"fa-link\")]):_vm._e()]}}],null,true)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('Form_ColumnGroup_TooltipText'))+\"\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('cell-form-view',{attrs:{\"listVM\":_vm.listVM,\"rowVM\":_vm.rowVM,\"colDesc\":colDesc,\"cellState\":_vm.cellStates[index],\"cellError\":_vm.cellErrors[index],\"isInSurveyMode\":true,\"focus\":index==0}})],1)}),_vm._v(\" \"),_c('div',{staticClass:\"d-flex justify-center mt-8\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(_vm._s(_vm.$t(\"Survey_Submit\")))])],1)],2)],1)],1)],1):_c('v-row',{staticClass:\"fill-height align-self-start\"},[_c('v-col',[_c('page-load-spinner',{attrs:{\"dimension\":60}})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\n import RemindUsersDialog from '@/views/Table/ListActions/RemindUsersDialog.vue';\r\n import RowMergeDialog from '@/views/Table/ListActions/RowMergeDialog.vue';\r\n import CommentEditorDialog from '@/views/Table/CommentEditorDialog.vue';\r\n import * as RowShare from '@/models/RowShare';\r\n import { EventBus } from \"@/modules/EventBus\";\r\n import { Location as RouterLocation, Route } from \"vue-router\";\r\n import PageLoadSpinner from \"@/views/layouts/LayoutParts/PageLoadSpinner.vue\";\r\n import ListVM from '@/viewModels/Table/listVM';\r\n import RowVM from '@/viewModels/Table/rowVM';\r\n import FormViewVM from '@/viewModels/Table/formViewVM';\r\n import {ColumnDescriptionVM, ColumnDescriptionCollection} from '@/viewModels/Table/ColumnDescriptionVM';\r\n import Bigram from \"@/views/components/Bigram.vue\";\r\n import CellFormView from '@/views/Table/FormView/CellFormView.vue';\r\n import { UserModule } from '@/store/UserStore';\r\n import { ListTreeModule } from '@/store/ListTreeStore';\r\n import ProxyBasedCardRenderer from '@/views/Table/CardView/ProxyBasedCardRenderer.vue';\r\n import CommentCardRenderer from '@/views/Table/cellsComponents/Comment/CommentCardRenderer.vue';\r\n import TwoStatesBooleanCardRenderer from '@/views/Table/cellsComponents/TwoStateBoolean/TwoStatesBooleanCardRenderer.vue'\r\n import { ColumnStrongType } from '@/models/Column';\r\n import linkifyStr from 'linkify-string';\r\n\r\n @Component({\r\n name: 'Survey',\r\n components: {\r\n PageLoadSpinner, Bigram, RemindUsersDialog, RowMergeDialog, CommentEditorDialog,\r\n ProxyBasedCardRenderer, CommentCardRenderer, TwoStatesBooleanCardRenderer, CellFormView\r\n }\r\n })\r\n export default class Survey extends Vue {\r\n\r\n @Prop() listVM!: ListVM;\r\n @Prop({ default: 'view' }) editorState !: RowShare.EditorState;\r\n \r\n formViewVM!: FormViewVM;\r\n\r\n private columnDescriptions: ColumnDescriptionCollection = new ColumnDescriptionCollection();\r\n private cellStates : (\"form-cell-error\"|\"form-cell-saving\"|\"form-cell-readonly\"|\"\")[] = [];\r\n private cellErrors : (string|null)[] = [];\r\n\r\n private rowVM : RowVM | null = null;\r\n \r\n async mounted() : Promise{\r\n this.formViewVM = new FormViewVM(this.listVM);\r\n window.addEventListener('beforeunload', this.beforeUnload);\r\n this.onListLoaded();\r\n this.initCols();\r\n this.formViewVM.setRowUpdateCallBack(rowVM => this.refreshRowState(rowVM));\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([RowShare.Event.ROW_UPDATED, RowShare.Event.VALIDATE_FORM]);\r\n window.removeEventListener('beforeunload', this.beforeUnload);\r\n this.formViewVM.dispose();\r\n }\r\n\r\n @Watch(\"listVM.columns\")\r\n initCols(){\r\n if(!this.listVM.columns)\r\n return;\r\n\r\n this.columnDescriptions = new ColumnDescriptionCollection();\r\n\r\n for(let i = 0; i < (this.listVM.columns.length); ++i){\r\n var col = this.listVM.columns[i];\r\n\r\n if(col.IsReadOnly || col.isGenerated || col.HasReadOnlyPermissions || col.HasHiddenPermissions || col.Type == ColumnStrongType.Comment || col.isChildColumn)\r\n continue;\r\n\r\n let colDesc = new ColumnDescriptionVM(col);\r\n this.columnDescriptions.add(colDesc);\r\n }\r\n }\r\n \r\n @Watch(\"listVM.list\")\r\n onListLoaded(){\r\n this.init();\r\n\r\n if(this.listVM.list) {\r\n document.title = this.listVM.list.DisplayName + \" | RowShare\";\r\n } else {\r\n document.title = \"RowShare\";\r\n }\r\n }\r\n\r\n init(){\r\n if(!this.listVM.list)\r\n return;\r\n this.rowVM = RowVM.createNewRow(this.listVM, this.listVM.list.Id); \r\n if(!this.rowVM?.rsRow)\r\n return 0;\r\n this.refreshRowState(this.rowVM);\r\n }\r\n\r\n /** \r\n * This method is called by formViewVM everytime a row is refreshed\r\n * It is used to refresh the UI with error icon or saving spinner\r\n **/\r\n refreshRowState(rowVM: RowVM){\r\n if(!this.listVM.columns || !this.listVM.list)\r\n return;\r\n\r\n if(rowVM.rowVMId != this.rowVM?.rowVMId)\r\n return;\r\n \r\n var cellStates : (\"form-cell-error\"|\"form-cell-saving\"|\"form-cell-readonly\"|\"\")[] = [];\r\n var cellErrors : (string|null)[] = [];\r\n this.columnDescriptions.columns.forEach(colDesc => {\r\n var rsCol = colDesc.currentColumn;\r\n if(rsCol == null) {\r\n cellErrors.push(\"\");\r\n cellStates.push(\"\");\r\n return;\r\n }\r\n if(this.rowVM) {\r\n cellErrors.push(this.rowVM.getCellError(rsCol));\r\n }\r\n else {\r\n cellErrors.push(\"\");\r\n }\r\n \r\n if(this.rowVM?.isSavingCell(rsCol)) {\r\n cellStates.push(\"form-cell-saving\");\r\n } else if(this.rowVM?.hasCellError(rsCol)) {\r\n cellStates.push(\"form-cell-error\");\r\n } else if(!this.rowVM?.rsRow.CanUpdate || this.rowVM.isLocked) {\r\n cellStates.push(\"form-cell-readonly\");\r\n } else {\r\n cellStates.push(\"\");\r\n }\r\n });\r\n this.cellStates = cellStates;\r\n this.cellErrors = cellErrors;\r\n }\r\n \r\n async save(){\r\n await this.rowVM?.saveSurvey();\r\n\r\n // failed saving the row\r\n if(this.rowVM?.isNew)\r\n return;\r\n\r\n // success should navigate to an intermediate success screen\r\n this.$router.push({ name: 'SurveySuccess', params: { listId: this.listVM?.list?.Id }});\r\n }\r\n\r\n beforeRouteLeave(to: Route, from: Route, next: any){\r\n this.handleBeforeRouteLeave(() => next()); \r\n }\r\n\r\n canLeaveRoute(){\r\n return !this.rowVM || this.rowVM.removed == true || (!this.rowVM.dirtyValues && !this.rowVM.valuesBeingSaved);\r\n }\r\n\r\n handleBeforeRouteLeave(callback : () => void) {\r\n if(!this.canLeaveRoute()){\r\n let event = new RowShare.ConfirmationRequiredEventParams();\r\n event.title = this.$i18n.t('NotSavedItemsDialog_Title').toString();\r\n event.description1 = this.$i18n.t('NotSavedItemsDialog_Description').toString();\r\n event.cancelButtonText = this.$i18n.t('NotSavedItemsDialog_Cancel').toString();\r\n event.actionButtonText = this.$i18n.t('NotSavedItemsDialog_Validate').toString();\r\n event.actionButtonColor = \"primary\";\r\n event.onConfirmation = async () => {\r\n callback();\r\n };\r\n EventBus.$emit(RowShare.Event.CLEAR_ALL_GLOBAL_NOTIFICATIONS);\r\n EventBus.$emit(RowShare.Event.CONFIRMATION_REQUIRED, event);\r\n }\r\n else {\r\n callback();\r\n }\r\n }\r\n\r\n beforeUnload(evt: BeforeUnloadEvent) {\r\n if(!this.canLeaveRoute()){\r\n evt.returnValue = this.$i18n.t('NotSavedItemsDialog_Description');\r\n evt.preventDefault();\r\n }\r\n }\r\n\r\n getDescriptionContent(content: string) {\r\n return linkifyStr(content, {target: '_blank'});\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Survey.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Survey.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Survey.vue?vue&type=template&id=6eb3430b&scoped=true&\"\nimport script from \"./Survey.vue?vue&type=script&lang=ts&\"\nexport * from \"./Survey.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Survey.vue?vue&type=style&index=0&id=6eb3430b&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 \"6eb3430b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"backgrounds fill-height\"},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"text-center mx-auto\",attrs:{\"cols\":\"auto\"}},[_c('v-card',{staticClass:\"pa-8 mt-10\"},[_c('h1',{staticClass:\"font-weight-bold\",staticStyle:{\"font-size\":\"20px\"}},[_vm._v(_vm._s(_vm.$t(\"SurveySuccess_Title\")))]),_vm._v(\" \"),_c('v-divider',{staticClass:\"mb-6 mt-4\"}),_vm._v(\" \"),_c('p',{staticClass:\"mb-6\",staticStyle:{\"font-size\":\"18px\"}},[_vm._v(_vm._s(_vm.$t(\"SurveySuccess_Description\")))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"to\":{ name: 'Survey', params: { listId: _vm.listId } }}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"SurveySuccess_NewEntry\"))+\"\\n \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\n\r\n @Component({\r\n name: 'SurveySuccess',\r\n components: {}\r\n })\r\n export default class SurveySuccess extends Vue {\r\n @Prop() listId!: string;\r\n\r\n async goToRowShare(){\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SurveySuccess.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SurveySuccess.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SurveySuccess.vue?vue&type=template&id=d860e8f4&scoped=true&\"\nimport script from \"./SurveySuccess.vue?vue&type=script&lang=ts&\"\nexport * from \"./SurveySuccess.vue?vue&type=script&lang=ts&\"\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 \"d860e8f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{class:{darkteams: _vm.isDarkTeams}},[(_vm.errorMessage)?_c('v-card',[_c('div',{staticClass:\"error-message text-center\",domProps:{\"innerHTML\":_vm._s(_vm.errorMessage)}})]):_vm._e(),_vm._v(\" \"),(_vm.userHasList)?_c('v-card',[_c('v-card-title',{staticClass:\"justify-center\"},[_c('v-img',{staticClass:\"logo d-sm-block ma-0\",attrs:{\"src\":require(\"@/assets/static/images/logo.svg\"),\"contain\":\"\"}})],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MsTeamsConfiguration_Description'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('v-autocomplete',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$i18n.t('MsTeamsConfiguration_Organization'),\"items\":_vm.organizations,\"return-object\":\"\",\"item-text\":\"Name\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}],null,false,921640277),model:{value:(_vm.selectedOrganization),callback:function ($$v) {_vm.selectedOrganization=$$v},expression:\"selectedOrganization\"}})],1),_vm._v(\" \"),_c('v-card-text',[_c('v-autocomplete',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$i18n.t('MsTeamsConfiguration_Folder'),\"loading\":_vm.loadingFolders,\"items\":_vm.folders,\"return-object\":\"\",\"item-text\":\"DisplayPath\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true}],null,false,921640277),model:{value:(_vm.selectedFolder),callback:function ($$v) {_vm.selectedFolder=$$v},expression:\"selectedFolder\"}})],1),_vm._v(\" \"),_c('v-card-text',[_c('v-autocomplete',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"outlined\":\"\",\"label\":_vm.$i18n.t('MsTeamsConfiguration_List'),\"loading\":_vm.loadingLists,\"items\":_vm.lists,\"return-object\":\"\",\"item-text\":\"DisplayName\"},model:{value:(_vm.selectedList),callback:function ($$v) {_vm.selectedList=$$v},expression:\"selectedList\"}})],1)],1):(_vm.creatingTemplateTable)?_c('v-card',[_c('v-card-text',{staticClass:\"text-center\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('MsTeamsConfiguration_NoList'))}})]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"justify-center\"},[_c('page-load-spinner')],1)],1):(_vm.templateTableCreated)?_c('v-card',[_c('v-card-text',{staticClass:\"text-center\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('MsTeamsConfiguration_ListCreated'))}})])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport * as microsoftTeams from '@microsoft/teams-js';\r\nimport * as API from '@/api/Api';\r\nimport { AccessMode, CopyListInfo, CopyListOptions, Folder, List, Organization } from '@/models/RowShare';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n\r\n@Component({name: 'MsTeamsConfiguration', components: { PageLoadSpinner }})\r\nexport default class MsTeamsConfiguration extends Vue {\r\n userHasList: boolean = false;\r\n organizations: Organization[] = [];\r\n folders: Folder[] = [];\r\n lists: List[] = [];\r\n selectedOrganization: Organization | null = null;\r\n selectedFolder: Folder | null = null;\r\n selectedList: List | null = null;\r\n isDarkTeams: boolean = false;\r\n loadingFolders: boolean = false;\r\n loadingLists: boolean = false;\r\n creatingTemplateTable: boolean = false;\r\n templateTableCreated: boolean = false;\r\n errorMessage: string = \"\";\r\n\r\n mounted() {\r\n microsoftTeams.app.initialize();// .initialize();\r\n this.initOrgs();\r\n this.init();\r\n\r\n microsoftTeams.pages.config.registerOnSaveHandler(saveEvent => {\r\n if(!this.selectedList) {\r\n return;\r\n }\r\n var url = `${window.location.protocol}//${window.location.host}/msteams/login?returnUrl=/t/${this.selectedList.Id}`;\r\n microsoftTeams.pages.config.setConfig({\r\n websiteUrl: window.location.protocol + '//' + window.location.host,\r\n contentUrl: url,\r\n suggestedDisplayName: \"RowShare - \" + this.selectedList.DisplayName\r\n });\r\n saveEvent.notifySuccess();\r\n\r\n });\r\n this.resetTheme();\r\n microsoftTeams.app.registerOnThemeChangeHandler(t => this.resetTheme());\r\n }\r\n\r\n async init() {\r\n microsoftTeams.app.getContext().then(context => {\r\n API.User.CheckUserHasListForMsTeams(context.team?.displayName, {cache: false})\r\n .then(async (hasList) => {\r\n this.userHasList = (hasList ?? false);\r\n if(!this.userHasList) {\r\n this.creatingTemplateTable = true;\r\n await this.initOrgs();\r\n if(this.selectedOrganization && this.selectedFolder) {\r\n let copyOptions = new CopyListOptions();\r\n copyOptions.CopyRows = true;\r\n copyOptions.CopyReports = true;\r\n copyOptions.CreateNotifications = true;\r\n let copyInfo = new CopyListInfo();\r\n copyInfo.Id = this.$i18n.t('BlankTableId').toString();\r\n copyInfo.FolderId = this.selectedFolder.Id;\r\n copyInfo.Options = copyOptions;\r\n\r\n ListTreeModule.cloneList({copyInfo: copyInfo, organizationId: this.selectedOrganization.Id})\r\n .then(newList => {\r\n if(newList) {\r\n this.creatingTemplateTable = false;\r\n this.folderChanged();\r\n this.templateTableCreated = true;\r\n }\r\n })\r\n .catch((err) => this.errorMessage = this.$i18n.t('MsTeamsGeneral_Error').toString());\r\n }\r\n }\r\n })\r\n .catch((err) => this.errorMessage = this.$i18n.t('MsTeamsGeneral_Error').toString());\r\n });\r\n }\r\n\r\n async initOrgs() {\r\n this.organizations = [];\r\n this.selectedOrganization = null;\r\n let orgs = await API.Organization.loadall({cache: false});\r\n if(orgs) {\r\n this.organizations = orgs;\r\n if((this.organizations?.length ?? 0) == 1) {\r\n this.selectedOrganization = this.organizations[0];\r\n }\r\n }\r\n }\r\n\r\n @Watch('selectedOrganization')\r\n organizationChanged() {\r\n this.selectedFolder = null;\r\n this.folders = [];\r\n this.lists = [];\r\n this.selectedList = null;\r\n if(!this.selectedOrganization) {\r\n return;\r\n }\r\n API.Folder.loadAllForOrganization(AccessMode.ReadOwnedOnly, this.selectedOrganization?.Id, {cache: false})\r\n .then(folders => {\r\n if(folders) {\r\n this.folders = folders;\r\n if(this.folders.length == 1) {\r\n this.selectedFolder = this.folders[0];\r\n }\r\n }\r\n })\r\n .finally(() => this.loadingFolders = false);\r\n }\r\n\r\n @Watch('selectedFolder')\r\n folderChanged() {\r\n this.selectedList = null;\r\n this.lists = [];\r\n if(!this.selectedFolder) {\r\n return;\r\n }\r\n this.loadingLists = true;\r\n API.List.loadForParent(this.selectedFolder.Id, {cache: false})\r\n .then(lists => {\r\n if(lists) {\r\n this.lists = lists.sort((x, y) => {\r\n if(x.DisplayName > y.DisplayName) {\r\n return 1;\r\n }\r\n else if(x.DisplayName < y.DisplayName) {\r\n return -1;\r\n }\r\n else {\r\n return 0;\r\n }\r\n });\r\n if((this.lists?.length ?? 0) == 1) {\r\n this.selectedList = this.lists[0];\r\n }\r\n }\r\n })\r\n .catch((err) => this.errorMessage = this.$i18n.t('MsTeamsGeneral_Error').toString())\r\n .finally(() => this.loadingLists = false);\r\n }\r\n\r\n @Watch('selectedList')\r\n listChanged() {\r\n if(this.selectedList) {\r\n microsoftTeams.pages.config.setValidityState(true);\r\n }\r\n else {\r\n microsoftTeams.pages.config.setValidityState(false);\r\n }\r\n }\r\n\r\n resetTheme() {\r\n microsoftTeams.app.getContext().then(context => this.isDarkTeams = (context.app.theme == 'dark'));\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MsTeamsConfiguration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MsTeamsConfiguration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MsTeamsConfiguration.vue?vue&type=template&id=1f1f9309&scoped=true&\"\nimport script from \"./MsTeamsConfiguration.vue?vue&type=script&lang=ts&\"\nexport * from \"./MsTeamsConfiguration.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MsTeamsConfiguration.vue?vue&type=style&index=0&id=1f1f9309&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 \"1f1f9309\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{class:{darkteams: _vm.isDarkTeams}},[(_vm.errorMessage)?_c('v-card',[_c('div',{staticClass:\"error-message text-center\",domProps:{\"innerHTML\":_vm._s(_vm.errorMessage)}})]):(_vm.connecting)?_c('v-card',[_c('v-card-text',{staticClass:\"text-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MsTeamsLogin_Authentication'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"justify-center\"},[_c('page-load-spinner')],1)],1):(_vm.hasToLogin)?_c('v-card',[_c('v-card-text',{staticClass:\"text-center\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('MsTeamsLogin_ConnectToRowshare'))}})]),_vm._v(\" \"),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":_vm.login}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('MsTeamsLogin_Login'))+\"\\n \")])],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component } from 'vue-property-decorator';\r\nimport { ReturnUrlHandler } from '@/views//ReturnUrl';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport * as microsoftTeams from '@microsoft/teams-js';\r\nimport * as API from '@/api/Api';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { ApplicationModule } from '@/store/ApplicationStore';\r\nimport { UserModule } from '@/store/UserStore';\r\n\r\n@Component({name: 'MsTeamsLogin', components:{ PageLoadSpinner }})\r\nexport default class MsTeamsLogin extends ReturnUrlHandler{\r\n connecting: boolean = true;\r\n hasToLogin: boolean = false;\r\n isDarkTeams: boolean = false;\r\n errorMessage: string = \"\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n mounted(){\r\n ApplicationModule.updateIsMsTeamsApp(true);\r\n microsoftTeams.app.initialize();\r\n let _context: microsoftTeams.app.Context;\r\n microsoftTeams.app.getContext().then(context => {\r\n _context = context;\r\n });\r\n microsoftTeams.authentication.getAuthToken()\r\n .then((token: string) => {\r\n API.User.getUserEmailFromToken({IdToken: token, Tid: _context.user?.tenant?.id, TeamsName: _context.team?.displayName})\r\n .then((email) => {\r\n if(!Utils.isNullOrWhiteSpace(email)) {\r\n API.User.load()\r\n .then(user => {\r\n if(!user || user.IsAnonymous || user.Email.toLowerCase() != email?.toLowerCase()) {\r\n this.hasToLogin = true;\r\n }\r\n else {\r\n this.redirectToReturnUrlOrDefault('/404');\r\n }\r\n })\r\n .catch((err) => this.errorMessage = this.$i18n.t('MsTeamsLogin_Error').toString())\r\n .finally(() => this.connecting = false);\r\n }\r\n });\r\n })\r\n .catch((reason: any) => { \r\n this.errorMessage = this.$i18n.t('MsTeamsLogin_Error',[reason]).toString();\r\n });\r\n }\r\n\r\n login() {\r\n let _context: microsoftTeams.app.Context;\r\n microsoftTeams.app.getContext().then( (context) => _context = context);\r\n microsoftTeams.authentication.getAuthToken()\r\n .then((token: string) => {\r\n if(!Utils.isNullOrWhiteSpace(token)) {\r\n this.hasToLogin = false;\r\n this.connecting = true;\r\n API.User.connectUserByIdToken({IdToken: token, Tid: _context.user?.tenant?.id, TeamsName: _context.team?.displayName})\r\n .then(valid => {\r\n if(valid) {\r\n UserModule.refreshUser().then(() =>{\r\n this.redirectToReturnUrlOrDefault(this.$route.fullPath);\r\n });\r\n }\r\n })\r\n .catch((error: any) => {\r\n this.errorMessage = error._message;\r\n })\r\n .finally(() => this.connecting = false);\r\n }\r\n })\r\n .catch((reason: any) => { \r\n this.errorMessage = this.$i18n.t('MsTeamsLogin_Error',[reason]).toString();\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MsTeamsLogin.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MsTeamsLogin.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MsTeamsLogin.vue?vue&type=template&id=22750242&scoped=true&\"\nimport script from \"./MsTeamsLogin.vue?vue&type=script&lang=ts&\"\nexport * from \"./MsTeamsLogin.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MsTeamsLogin.vue?vue&type=style&index=0&id=22750242&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 \"22750242\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"listcalendar-view-wrapper\"},[(_vm.listVM.list && !_vm.$vuetify.breakpoint.mobile)?_c('list-toolbar',{staticClass:\"mb-1 flex-grow-0\",attrs:{\"listVM\":_vm.listVM,\"showReturnToTable\":true,\"hideMenu\":true}}):_vm._e(),_vm._v(\" \"),_c('v-toolbar',{attrs:{\"dense\":\"\",\"elevation\":\"0\"}},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"outlined\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.goToPreviousMonth()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-chevron-left\")])],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"outlined\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.goToNextMonth()}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-chevron-right\")])],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"outlined\":\"\",\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.goToToday()}}},[_vm._v(_vm._s(_vm.$t('ListCalendarView_Today')))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-toolbar-title',{staticClass:\"listcalendarview-title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('v-chip',{staticClass:\"ml-2\",attrs:{\"color\":\"warning\",\"outlined\":\"\",\"label\":\"\"}},[_vm._v(_vm._s(_vm.$t('ListCalendarView_BetaVersion')))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.canShowDayAndWeekViews)?_c('v-btn-toggle',{attrs:{\"dense\":\"\",\"mandatory\":\"\"},model:{value:(_vm.selectedView),callback:function ($$v) {_vm.selectedView=$$v},expression:\"selectedView\"}},[_c('v-btn',{attrs:{\"value\":\"dayGridMonth\",\"small\":\"\",\"text\":\"\",\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.$t('ListCalendarView_MonthView')))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"value\":\"timeGridWeek\",\"small\":\"\",\"text\":\"\",\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.$t('ListCalendarView_WeekView')))]),_vm._v(\" \"),_c('v-btn',{attrs:{\"value\":\"timeGridDay\",\"small\":\"\",\"text\":\"\",\"color\":\"primary\"}},[_vm._v(_vm._s(_vm.$t('ListCalendarView_DayView')))])],1):_vm._e()],1),_vm._v(\" \"),(_vm.loadingEvents)?_c('page-load-spinner'):_c('full-calendar',{staticClass:\"listcalendarview-calendar-wrapper\",attrs:{\"options\":_vm.calendarOptions},scopedSlots:_vm._u([{key:\"dayCellContent\",fn:function(params){return [(_vm.canAddNewRow)?_c('v-btn',{staticClass:\"daycell-header--add mr-1\",attrs:{\"color\":\"primary\",\"width\":\"24\",\"height\":\"24\",\"fab\":\"\",\"x-small\":\"\"},on:{\"click\":function($event){return _vm.addEvent(params.date)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-plus\")])],1):_c('v-icon',{staticClass:\"daycell-header--add\",attrs:{\"x-small\":\"\"}},[_vm._v(\"fa-fw\")]),_vm._v(\" \"),_c('span',{on:{\"click\":function($event){return _vm.onNavLinkDayClick(params.date)}}},[_vm._v(_vm._s(params.dayNumberText))])]}}])}),_vm._v(\" \"),(_vm.listVM.list)?_c('row-merge-dialog',{attrs:{\"currentList\":_vm.listVM.list}}):_vm._e(),_vm._v(\" \"),_c('comment-editor-dialog'),_vm._v(\" \"),_c('relation-editor-dialog')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DateTime } from '@/utils/Date';\r\nimport ListVM from './listVM';\r\nimport RowVM from './rowVM';\r\nimport * as fc from '@fullcalendar/core';\r\n\r\nexport default class calendarEventVM implements fc.EventInput {\r\n listVM: ListVM;\r\n rowVM: RowVM;\r\n public id?: string | undefined;\r\n public title?: string | undefined;\r\n public allDay?: boolean | undefined;\r\n public start?: fc.DateInput | undefined;\r\n public className?: (string | string[]) | undefined;\r\n \r\n constructor(listVM: ListVM, rowVM: RowVM, startColumnId: string) {\r\n this.listVM = listVM;\r\n this.rowVM = rowVM;\r\n let rsColumn = this.listVM.columns?.find(c => c.Id == startColumnId);\r\n if(!rsColumn) {\r\n console.error('column not found : ', startColumnId);\r\n return;\r\n }\r\n this.id = this.rowVM.rsRow.Id;\r\n this.title = rowVM.rsRow.DescriptorFormattedValue;\r\n this.className = 'color' + rowVM.rsRow.OwnerBackgroundColorIndex;\r\n let startDate = DateTime.parseDateTime(rowVM.rsRow.Values[rsColumn.DisplayName], undefined);\r\n this.start = startDate;\r\n this.allDay = rsColumn.isDateFormat;\r\n }\r\n\r\n}","import { ListConfiguration, Row } from \"@/models/RowShare\";\r\nimport ListDisplayModeVM from \"./listDisplayModeVM\";\r\nimport ListVM from \"./listVM\";\r\nimport RowVM from \"./rowVM\";\r\nimport ViewManager from \"./viewManager\";\r\nimport { CalendarApi } from \"@fullcalendar/core\";\r\n\r\nexport default class calendarViewVM implements ListDisplayModeVM {\r\n viewManager: ViewManager;\r\n printMode: boolean = false;\r\n\r\n public calendarApi: CalendarApi | undefined = undefined;\r\n public listVM : ListVM;\r\n\r\n constructor(listVM: ListVM){\r\n this.listVM = listVM;\r\n this.listVM.registerListener(this);\r\n this.viewManager = new ViewManager(this);\r\n }\r\n \r\n dispose() : void {\r\n this.listVM.unregisterListener(this);\r\n }\r\n \r\n private rowUpdateCallback: ((rowVM: RowVM) => void) | null = null;\r\n setRowUpdateCallBack(callback: (rowVM: RowVM) => void){\r\n this.rowUpdateCallback = callback;\r\n }\r\n \r\n onListUpdated() {}\r\n\r\n private rowsUpdateCallback: ((rowVMs: RowVM[]) => void) | null = null;\r\n setRowsUpdateCallback(callback: (rowVMs: RowVM[]) => void) {\r\n this.rowsUpdateCallback = callback;\r\n }\r\n\r\n onBeforeRowVMsUdated() {}\r\n\r\n onRowVMsUpdated() {\r\n if(this.listVM.rowVMs == null) {\r\n return;\r\n }\r\n if(this.rowsUpdateCallback) {\r\n this.rowsUpdateCallback(this.listVM.rowVMs);\r\n }\r\n }\r\n\r\n onColumnsUpdated() {}\r\n \r\n get totalRowsCount(): number { return this.listVM.rowVMs?.length ?? 0; }\r\n get visibleRowsCount(): number { return this.totalRowsCount; }\r\n get totalColumnsCount(): number { return this.listVM.columns?.length ?? 0; }\r\n get visibleColumnsCount(): number { return this.totalColumnsCount; }\r\n get rowGroupsCount(): number { return 0; }\r\n get rowGroupsColNames(): string[] { return []; }\r\n get isFiltered(): boolean { return false; }\r\n get isSorted(): boolean { return false; }\r\n get cellSelected(): boolean { return false; }\r\n displayedRowIds: string[]| null = null;\r\n\r\n /** Sort, filter, hide... **/\r\n public getCurrentViewConfig() : ListConfiguration | undefined { return undefined; }\r\n public getHiddenColumnsIds() : string[] | undefined { return undefined; }\r\n public getCurrentFilters(): any {}\r\n public getCurrentSort(): any[] | undefined { return undefined; }\r\n \r\n public getRowGroupColumnsIds(): string[] | undefined { return undefined; }\r\n public getValueColumns(): any[] | undefined { return undefined; }\r\n public getVisibleToolPanelId(): string | undefined { return undefined; }\r\n public getCollapsedColumnGroups(): string[] | undefined { return undefined }\r\n\r\n public applyFilters(viewConfig: ListConfiguration) : void {}\r\n public applySort(viewConfig: ListConfiguration) : void {}\r\n public applyHiddenColumns(viewConfig: ListConfiguration) : void {}\r\n public applyRowGroupColumns(viewConfig: ListConfiguration) : void {}\r\n public applyValueColumns(viewConfig: ListConfiguration) : void {};\r\n public applyVisibleToolPanel(viewConfig: ListConfiguration) : void {};\r\n public applyCollapsedColumnGroups(viewConfig: ListConfiguration): void {}\r\n \r\n public clearHiddenColumns() : void {}\r\n public clearSortOrder() : void {}\r\n public clearFilters() : void {}\r\n public clearRowGroups() : void {}\r\n public clearValueColumns(): void {}\r\n public clearVisibleToolPanel(): void {}\r\n public clearCollapsedColumnGroups(): void {}\r\n\r\n /** Specific dispaly methods **/\r\n\r\n public onRowVMUpdated(rowVM: RowVM) : void {\r\n if(this.rowUpdateCallback != null) {\r\n this.rowUpdateCallback(rowVM);\r\n }\r\n }\r\n \r\n public refreshCell(rowVM: RowVM) : void {\r\n if(this.rowUpdateCallback)\r\n this.rowUpdateCallback(rowVM);\r\n }\r\n \r\n public async insertClonedRowInUI(clonedRow: Row, insertAtIdx: number | undefined, refresh: boolean | undefined) : Promise{}\r\n public getRowNodeIndex(id: string): number { return -1;}\r\n public scrollToIndex(index: number): void {}\r\n public addRowsInUI(newRows: Row[]): void {};\r\n public updateRowsInUI(updatedRows: Row[]):void {};\r\n public removeRowsInUI(rowVMs: RowVM[]) : void {}\r\n public deselectAllRows() : void {}\r\n}","\r\nimport {Vue, Component, Prop, Watch } from 'vue-property-decorator';\r\nimport FullCalendar from '@fullcalendar/vue';\r\nimport dayGridPlugin from '@fullcalendar/daygrid';\r\nimport interactionPlugin, { DateClickArg } from '@fullcalendar/interaction';\r\nimport timeGridPlugin from '@fullcalendar/timegrid';\r\nimport { CalendarApi, CalendarOptions, EventClickArg, EventDropArg, ViewMountArg } from '@fullcalendar/core';\r\nimport frLocale from '@fullcalendar/core/locales/fr';\r\nimport esLocale from '@fullcalendar/core/locales/es';\r\nimport ListToolbar from '@/views/Table/ListActions/ListToolbar.vue'\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport { Column, Event, ShowSidePanelFormViewEventParams } from '@/models/RowShare';\r\nimport calendarEventVM from '@/viewModels/Table/calendarEventVM';\r\nimport calendarViewVM from '@/viewModels/Table/calendarViewVM';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport RowVM from '@/viewModels/Table/rowVM';\r\nimport RowMergeDialog from '@/views/Table/ListActions/RowMergeDialog.vue';\r\nimport CommentEditorDialog from '@/views/Table/CommentEditorDialog.vue';\r\nimport RelationEditorDialog from '@/views/Table/cellsComponents/Relation/RelationEditorDialog.vue';\r\nimport _ from 'lodash';\r\n\r\n@Component({name: 'ListCalendarView', components: { FullCalendar, ListToolbar, PageLoadSpinner, RowMergeDialog, CommentEditorDialog, RelationEditorDialog }})\r\nexport default class ListCalendarView extends Vue {\r\n @Prop() listVM!: ListVM;\r\n @Prop() startColumnId!: string;\r\n \r\n loadingEvents: boolean = true;\r\n userLocale: string | undefined = undefined;\r\n calendarApi: CalendarApi | undefined = undefined;\r\n selectedView: \"dayGridMonth\" | \"timeGridWeek\" | \"timeGridDay\" | \"listMonth\" = \"dayGridMonth\";\r\n title: string = \"\";\r\n calendarViewVM!: calendarViewVM;\r\n \r\n \r\n calendarEventVMs: calendarEventVM[] = [];\r\n\r\n public calendarOptions: CalendarOptions | null = null;\r\n\r\n get canShowDayAndWeekViews(): boolean {\r\n if(this.currentStartColumn) {\r\n return this.currentStartColumn.isDateTimeFormat;\r\n }\r\n return false;\r\n }\r\n\r\n get currentStartColumn() {\r\n return this.listVM?.columns?.find(c => c.Id === this.startColumnId);\r\n }\r\n\r\n get canAddNewRow() {\r\n return this.currentStartColumn && !this.currentStartColumn.isTechnical && this.listVM.canAddNewRow\r\n && this.selectedView == 'dayGridMonth';\r\n }\r\n\r\n get canEditEvent(): boolean {\r\n return !this.currentStartColumn?.isTechnical;\r\n }\r\n\r\n onCalendarViewMounted(arg: ViewMountArg) { \r\n this.calendarApi = arg.view.calendar;\r\n this.refreshTitle();\r\n }\r\n\r\n @Watch(\"listVM.list\")\r\n onListLoaded(){\r\n if(this.listVM.list) {\r\n document.title = this.listVM.list.DisplayName + \" | RowShare\";\r\n } else {\r\n document.title = \"RowShare\";\r\n }\r\n } \r\n\r\n created() {\r\n this.calendarViewVM = new calendarViewVM(this.listVM);\r\n this.calendarViewVM.setRowsUpdateCallback((rows) => this.refreshEvents());\r\n this.calendarViewVM.setRowUpdateCallBack((row) => this.onRowUpdated(row));\r\n this.$nextTick(() => {\r\n EventBus.$on(Event.LOCALE_CHANGED, this.onLocaleChanged);\r\n EventBus.$on(Event.ROW_DELETE, this.onRowsDeleted);\r\n });\r\n this.calendarOptions = {\r\n themeSystem: 'standard',\r\n headerToolbar: false,\r\n initialView: 'dayGridMonth',\r\n plugins: [dayGridPlugin, interactionPlugin, timeGridPlugin],\r\n dayMaxEvents: true,\r\n firstDay: 1,\r\n locales: [frLocale, esLocale],\r\n locale: this.userLocale,\r\n //showNonCurrentDates: false, Option updated to fix a bug in FullCalendar\r\n navLinks: false,\r\n events: this.calendarEventVMs,\r\n viewDidMount: this.onCalendarViewMounted,\r\n eventClick: this.onEventClicked,\r\n dateClick: this.onDateClicked,\r\n dayCellClassNames: ['daycell-header'],\r\n allDaySlot: false,\r\n eventStartEditable: this.canEditEvent,\r\n eventDrop: this.onEventDropped,\r\n };\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([Event.LOCALE_CHANGED, Event.ROW_DELETE]);\r\n }\r\n\r\n mounted() {\r\n this.onLocaleChanged();\r\n this.refreshEvents();\r\n }\r\n\r\n refreshTitle() {\r\n if(!this.calendarApi) {\r\n return;\r\n }\r\n this.title = this.calendarApi.view.title.toUpperCase();\r\n }\r\n\r\n goToPreviousMonth() {\r\n if(!this.calendarApi) {\r\n return;\r\n }\r\n this.calendarApi.prev();\r\n this.refreshTitle();\r\n }\r\n\r\n goToNextMonth() {\r\n if(!this.calendarApi) {\r\n return;\r\n }\r\n this.calendarApi.next();\r\n this.refreshTitle();\r\n }\r\n \r\n goToToday() {\r\n if(!this.calendarApi) {\r\n return;\r\n }\r\n this.calendarApi.today();\r\n this.refreshTitle();\r\n }\r\n\r\n @Watch('selectedView')\r\n changeCurrentView() {\r\n if(!this.selectedView || !this.calendarApi) {\r\n return;\r\n }\r\n this.calendarApi.changeView(this.selectedView);\r\n this.refreshTitle();\r\n }\r\n\r\n onNavLinkDayClick(dateClicked: Date) {\r\n if(!dateClicked || !this.canShowDayAndWeekViews) {\r\n return;\r\n }\r\n if(this.calendarApi) {\r\n this.calendarApi.gotoDate(dateClicked);\r\n }\r\n this.selectedView = 'timeGridDay';\r\n \r\n }\r\n\r\n @Watch('startColumnId')\r\n onStartColumnIdChanged() {\r\n this.refreshEvents();\r\n }\r\n\r\n refreshEvents() {\r\n if(this.listVM?.list?.Id && this.startColumnId) {\r\n this.loadingEvents = true;\r\n this.$nextTick(() => {\r\n if(!this.calendarOptions) {\r\n return;\r\n }\r\n let events = this.listVM.rowVMs?.map((row) =>\r\n {\r\n var event = new calendarEventVM(this.listVM, row, this.startColumnId);\r\n return event;\r\n });\r\n if(events) {\r\n this.calendarEventVMs.push(...events);\r\n }\r\n this.loadingEvents = false;\r\n });\r\n }\r\n }\r\n\r\n onRowUpdated(row: RowVM) {\r\n if(!row || !this.calendarApi) {\r\n return;\r\n }\r\n var eventVM = new calendarEventVM(this.listVM, row, this.startColumnId); \r\n var eventIndex = this.calendarEventVMs.findIndex((e) => { return e.id === row.rsRow.Id});\r\n if(eventIndex < 0) {\r\n this.calendarEventVMs.push(eventVM);\r\n }\r\n else {\r\n this.calendarEventVMs[eventIndex] = eventVM;\r\n }\r\n if(eventVM.start) {\r\n this.calendarApi?.gotoDate(eventVM.start);\r\n }\r\n }\r\n\r\n onRowsDeleted(rows: RowVM[]) {\r\n if(!rows || rows.length == 0 || !this.calendarApi) {\r\n return;\r\n }\r\n rows.forEach((row) => {\r\n var eventIndex = this.calendarEventVMs.findIndex((e) => { return e.id === row.rsRow.Id});\r\n if(eventIndex > -1) {\r\n this.calendarEventVMs.splice(eventIndex, 1);\r\n }\r\n });\r\n }\r\n\r\n onLocaleChanged() {\r\n if(!this.calendarOptions) {\r\n return;\r\n }\r\n this.calendarOptions.locale = UserModule.currentUserLanguage ?? '';\r\n this.$nextTick(() => this.refreshTitle());\r\n }\r\n\r\n onEventClicked(event: EventClickArg) {\r\n if(!event) {\r\n return;\r\n }\r\n EventBus.$emit(Event.SHOW_SIDEPANEL_FORMVIEW, {\r\n ListVM: this.listVM,\r\n rowId: event.event.id\r\n });\r\n }\r\n\r\n onDateClicked(event: DateClickArg) {\r\n if(!event || event.allDay) {\r\n return;\r\n }\r\n this.addEvent(event.date);\r\n }\r\n\r\n addEvent(eventDate: Date) {\r\n if(!this.listVM.list || !this.currentStartColumn) {\r\n return;\r\n }\r\n // First remove previously created row but not saved (closing side panel before saving)\r\n _.remove(this.listVM.rowVMs ?? [], (r) => {return r.isNew});\r\n\r\n var newRowVM = RowVM.createNewRow(this.listVM, this.listVM.list.Id);\r\n if(newRowVM) {\r\n newRowVM.setValue(this.currentStartColumn, eventDate);\r\n this.listVM.rowVMs?.push(newRowVM);\r\n EventBus.$emit(Event.SHOW_SIDEPANEL_FORMVIEW, {\r\n ListVM: this.listVM,\r\n rowId: 'new'\r\n });\r\n }\r\n }\r\n\r\n onEventDropped(infos: EventDropArg) {\r\n if(!infos || !infos.event.extendedProps.rowVM) {\r\n return;\r\n }\r\n var rowVM = infos.event.extendedProps.rowVM;\r\n if(!rowVM) {\r\n return;\r\n }\r\n if(!this.currentStartColumn) {\r\n return;\r\n }\r\n rowVM.setValue(this.currentStartColumn, infos.event.start);\r\n rowVM.innerSave();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListCalendarView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ListCalendarView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListCalendarView.vue?vue&type=template&id=31fb2d94&scoped=true&\"\nimport script from \"./ListCalendarView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListCalendarView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListCalendarView.vue?vue&type=style&index=0&id=31fb2d94&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 \"31fb2d94\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport VueRouter, { RouteConfig, Route } from 'vue-router';\r\nimport MyTables from '@/views/MyTables/MyTables.vue';\r\nimport CreateTable from '@/views/CreateTable/CreateTable.vue';\r\nimport ListDisplayModeSelector from '@/views/Table/ListDisplayModeSelector.vue';\r\nimport ListBasedRoot from '@/views/Table/ListBasedRoot.vue';\r\nimport Contact from '@/views/Contact/Contact.vue';\r\nimport Login from '@/views/Signin/Login.vue';\r\nimport LoginFba from '@/views/Signin/LoginFba.vue';\r\nimport LoginMS from '@/views/Signin/LoginMS.vue';\r\nimport MyAccount from '@/views/MyAccount/MyAccount.vue';\r\nimport SignUp from '@/views/Signup/SignUp.vue';\r\nimport MyDocuments from '@/views/RowMerge/MyDocuments.vue';\r\nimport RowMerge from '@/views/RowMerge/RowMerge.vue';\r\nimport PageNotFound from '@/views/ErrorPages/PageNotFound.vue';\r\nimport AccessDenied from '@/views/ErrorPages/AccessDenied.vue';\r\nimport OrganizationAccessDenied from '@/views/ErrorPages/OrganizationAccessDenied.vue';\r\nimport SubscriptionCheckOut from '@/views/ManageOrganization/SubscriptionCheckOut.vue';\r\nimport Unsubscription from '@/views/MyAccount/Unsubscription.vue';\r\nimport TableOwners from '@/views/Table/ShareTable/TableOwners.vue';\r\nimport TableAccessDenied from '@/views/Table/TableAccessDenied.vue';\r\nimport ConfirmEmail from '@/views/ConfirmEmail/ConfirmEmail.vue';\r\nimport TableSettings from '@/views/Table/TableSettings/TableSettings.vue';\r\nimport ResetPasswordRequest from '@/views/ResetPassword/ResetPasswordRequest.vue';\r\nimport ResetPassword from '@/views/ResetPassword/ResetPassword.vue';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport { ApplicationModule } from '@/store/ApplicationStore';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport ManageOrganization from '@/views/ManageOrganization/ManageOrganization.vue';\r\nimport ListAccessAudit from '@/views/ManageOrganization/ListAccessAudit.vue';\r\nimport BackOffice from '@/views/BackOffice/BackOffice.vue';\r\nimport BackOfficeOrganization from '@/views/BackOffice/BackOfficeOrganization.vue';\r\nimport BackOfficeOrganizationLimits from '@/views/BackOffice/BackOfficeOrganizationLimits.vue';\r\nimport BackOfficeUser from '@/views/BackOffice/BackOfficeUser.vue';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport ColumnSettings from '@/views/Table/ColumnSettings/ColumnSettings.vue';\r\nimport { loadAndSetWithUserLanguageAsync } from '@/modules/Localization';\r\nimport Cookie from \"js-cookie\";\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { RowShareException } from '@/api/ApiUtils';\r\nimport TablePrint from '@/views/Table/TablePrint.vue';\r\nimport ListFormView from '@/views/Table/FormView/ListFormView.vue';\r\nimport Survey from '@/views/Table/FormView/Survey.vue';\r\nimport SurveySuccess from '@/views/Table/FormView/SurveySuccess.vue';\r\nimport MsTeamsConfiguration from '@/views/msTeams/MsTeamsConfiguration.vue';\r\nimport MsTeamsLogin from '@/views/msTeams/MsTeamsLogin.vue';\r\nimport ListCalendarView from '@/views/Table/CalendarView/ListCalendarView.vue';\r\nimport { List } from '@/models/List';\r\n\r\nVue.use(VueRouter);\r\n\r\n// helper methods\r\n\r\nexport class RouterUtils {\r\n\r\n //see https://stackoverflow.com/questions/62462276/how-to-solve-avoided-redundant-navigation-to-current-location-error-in-vue\r\n public static pushRouteTo(component: Vue, route: any) {\r\n component.$router.push(route)\r\n .catch(failure => {\r\n if (failure.name !== 'NavigationDuplicated') {\r\n throw failure;\r\n }\r\n });\r\n }\r\n\r\n public static parseMyTablesParams(route: any) {\r\n var mode: string | null = null;\r\n var folderId = route.params.folderId ? route.params.folderId : route.query.organizationParentFolderId;\r\n var organizationId = route.params.organizationId ? route.params.organizationId : route.query.key;\r\n if (organizationId)\r\n organizationId = (organizationId).toLowerCase().replace(/-/g, '');\r\n else //retrieve default one\r\n {\r\n organizationId = ListTreeModule.currentOrganizationId;\r\n }\r\n if (folderId) {\r\n if (folderId == 'Recents' || folderId == 'Favorites') {\r\n mode = folderId;\r\n folderId = null;\r\n } else {\r\n folderId = (folderId).toLowerCase().replace(/-/g, '');\r\n }\r\n }\r\n\r\n return {\r\n folderId: folderId,\r\n organizationId: organizationId,\r\n lmCurrent: mode,\r\n breadcrumbTag: mode\r\n };\r\n }\r\n\r\n public static getCaseInsentiveQuery(route: Route, paramName: string) {\r\n paramName = paramName.toLowerCase();\r\n for (var prop in route.query) {\r\n if (route.query.hasOwnProperty(prop) && prop.toLowerCase() == paramName)\r\n return route.query[prop];\r\n }\r\n }\r\n}\r\n\r\n\r\n// route definitions\r\n\r\nconst routes: RouteConfig[] =\r\n [\r\n { path: '/', redirect: '/MyTables' },\r\n {\r\n path: '/Login(.html)?',\r\n name: 'Login',\r\n component: Login,\r\n props: (route: any) => ({\r\n returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\") ??\r\n (RouterUtils.getCaseInsentiveQuery(route, \"__url__\") ? decodeURIComponent(RouterUtils.getCaseInsentiveQuery(route, \"__url__\")) : undefined),\r\n emailFromSignUp: route.params.emailFromSignUp,\r\n inviteLinkId: route.params.inviteLinkId,\r\n }),\r\n meta: {\r\n layout: \"LogInLayout\",\r\n allowsEmptyOrganization: true\r\n }\r\n },\r\n {\r\n path: '/LoginFba(.html)?',\r\n name: 'LoginFba',\r\n component: LoginFba,\r\n props: (route: any) => ({\r\n returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\") ??\r\n (RouterUtils.getCaseInsentiveQuery(route, \"__url__\") ?\r\n decodeURIComponent(RouterUtils.getCaseInsentiveQuery(route, \"__url__\")) : null)\r\n }),\r\n meta: { layout: \"IframeLayout\" }\r\n },\r\n {\r\n path: '/LoginFbaSuccess(.html)?',\r\n name: 'LoginFbaSuccess',\r\n component: PageLoadSpinner,\r\n props: (route: any) => ({ returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\") }),\r\n meta: { layout: \"IframeLayout\" }\r\n },\r\n {\r\n path: '/LoginMS(.html)?',\r\n name: 'LoginMS',\r\n component: LoginMS,\r\n props: (route: any) => ({ returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\") }),\r\n meta: { layout: \"IframeLayout\", notOnPrem: true }\r\n },\r\n {\r\n path: '/MyTables(.html)?/:organizationId?/:folderId?',\r\n name: \"MyTables\",\r\n component: MyTables,\r\n props: RouterUtils.parseMyTablesParams,\r\n meta: {\r\n requiresAuth: true,\r\n pathProvider: RouterUtils.parseMyTablesParams,\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: true,\r\n breadcrumbTagInUrl: true\r\n }\r\n },\r\n {\r\n path: '/CreateTable',\r\n name: 'CreateTable',\r\n component: CreateTable,\r\n props: (route: any) => ({\r\n folderId: route.query.folderId,\r\n organizationId: route.query.organization,\r\n category: route.query.category,\r\n }),\r\n meta: {\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: true,\r\n allowsEmptyOrganization: false,\r\n pathProvider: (route: any) => ({\r\n folderId: route.query.folderId,\r\n organization: route.query.organization\r\n }),\r\n }\r\n },\r\n { path: '//t/:listId', redirect: '/t/:listId' },\r\n { path: '/td/:listId', redirect: '/Template/:listId' },\r\n { path: '/tc/:listId', redirect: '/Template/:listId' },\r\n { path: '/tf/:listId/:rowId', redirect: '/t/:listId/form/:rowId' },\r\n {\r\n path: '/V2/MsTeamsTable(.html)?',\r\n redirect: (route: any) => {\r\n // the function receives the target route as the argument\r\n // we return a redirect path/location here.\r\n return { path: '/t/' + RouterUtils.getCaseInsentiveQuery(route, \"key\"), query: { msteams: true } }\r\n }\r\n },\r\n { path: '/V2/MsTeamsConfiguration(.html)?', redirect: { name: 'TeamsConfiguration' } },\r\n {\r\n path: '/V2/MsTeamsSilentLogin(.html)?', redirect: (route: any) => {\r\n return { name: 'TeamsLogin', query: { returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\") } }\r\n }\r\n },\r\n {\r\n path: '/msteams/configuration',\r\n name: 'TeamsConfiguration',\r\n component: MsTeamsConfiguration,\r\n meta: { requiresAuth: false, layout: 'IframeLayout' }\r\n },\r\n {\r\n path: '/msteams/login',\r\n name: 'TeamsLogin',\r\n component: MsTeamsLogin,\r\n props: (route: any) => ({\r\n returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\")\r\n }),\r\n meta: { requiresAuth: false, layout: 'IframeLayout' }\r\n },\r\n {\r\n path: '/t/:listId',\r\n component: ListBasedRoot,\r\n props: (route: any) => ({\r\n listId: route.params.listId,\r\n }),\r\n children: [\r\n {\r\n path: '',\r\n name: 'Table',\r\n component: ListDisplayModeSelector,\r\n props: (route: any) => ({\r\n listId: route.params.listId,\r\n currentRowId: route.query.currentRowId,\r\n highlightRows: RouterUtils.getCaseInsentiveQuery(route, \"highlightrow\")\r\n }),\r\n meta: {\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: true,\r\n pathProvider: (route: any) => ({\r\n listId: route.params.listId,\r\n }),\r\n },\r\n beforeEnter: (to, from, next) => {\r\n // query string param for both GA trackings and preventing infinite loop\r\n if (Utils.getCookie(\"rsVersion\") == \"2\" && !to.query.rsVersionError) {\r\n window.location.href = \"/t/\" + to.params.listId + \"?rsVersionError=true\";\r\n } else {\r\n next();\r\n }\r\n if (RouterUtils.getCaseInsentiveQuery(to, \"msteams\") && to.meta) {\r\n to.meta.layout = 'MsTeamsLayout';\r\n }\r\n }\r\n },\r\n {\r\n path: 'tableprint',\r\n name: 'TablePrint',\r\n component: TablePrint,\r\n props: true,\r\n meta: {\r\n isBreadcrumbVisible: false,\r\n layout: \"IframeLayout\",\r\n pathProvider: (route: any) => ({\r\n listId: route.params.listId,\r\n })\r\n }\r\n },\r\n {\r\n path: 'calendar/:startColumnId',\r\n name: 'Calendar',\r\n component: ListCalendarView,\r\n props: (route: any) => ({\r\n listId: route.params.listId,\r\n startColumnId: route.params.startColumnId\r\n }),\r\n meta: {\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: true,\r\n pathProvider: (route: any) => ({\r\n listId: route.params.listId\r\n })\r\n }\r\n },\r\n {\r\n path: 'form/:rowId',\r\n name: 'Form',\r\n component: ListFormView,\r\n props: (route: any) => ({\r\n listId: route.params.listId,\r\n rowId: route.params.rowId,\r\n showDetails: (route.params.mode === 'details')\r\n }),\r\n meta: {\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: false,\r\n showListInBreadcrumb: true,\r\n pathProvider: (route: any) => ({\r\n listId: route.params.listId,\r\n }),\r\n },\r\n },\r\n {\r\n path: '/survey/:listId',\r\n name: 'Survey',\r\n component: Survey,\r\n props: (route: any) => ({\r\n listId: route.params.listId,\r\n }),\r\n meta: {\r\n allowsEmptyOrganization: true,\r\n isBreadcrumbVisible: false,\r\n pathProvider: (route: any) => ({\r\n listId: route.params.listId,\r\n allowSurvey: true\r\n }),\r\n isSurvey: true // using meta because parent route won't map property from children routes \r\n }\r\n },\r\n\r\n ]\r\n },\r\n {\r\n path: '/surveysuccess/:listId',\r\n name: 'SurveySuccess',\r\n component: SurveySuccess,\r\n props: (route: any) => ({\r\n listId: route.params.listId,\r\n }),\r\n meta: {\r\n isBreadcrumbVisible: false,\r\n }\r\n },\r\n {\r\n path: '/Contact',\r\n name: 'Contact',\r\n component: Contact,\r\n props: true,\r\n meta: {\r\n isBreadcrumbVisible: true,\r\n }\r\n },\r\n {\r\n path: '/MyAccount',\r\n name: 'MyAccount',\r\n component: MyAccount,\r\n meta: {\r\n requiresAuth: true,\r\n isBreadcrumbVisible: true,\r\n allowsEmptyOrganization: true\r\n }\r\n },\r\n { path: '/business-trial', redirect: { name: 'SignUp' } },\r\n {\r\n path: '/SignUp',\r\n name: 'SignUp',\r\n component: SignUp,\r\n props: (route: any) => ({\r\n returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\"),\r\n freeTrial: RouterUtils.getCaseInsentiveQuery(route, \"trial\")\r\n }),\r\n meta: {\r\n layout: \"SignupLayout\"\r\n }\r\n },\r\n {\r\n path: '/join/:inviteLinkId',\r\n name: 'Join',\r\n component: SignUp,\r\n props: (route: any) => ({\r\n inviteLinkId: route.params.inviteLinkId ? route.params.inviteLinkId : RouterUtils.getCaseInsentiveQuery(route, \"inviteLinkId\"),\r\n returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\")\r\n }),\r\n meta: {\r\n layout: \"SignupLayout\"\r\n }\r\n },\r\n {\r\n path: '/newsubscription',\r\n name: 'NewSubscription',\r\n component: SignUp,\r\n props: (route: any) => ({\r\n returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\"),\r\n }),\r\n meta: {\r\n requiresAuth: true,\r\n notOnPrem: true\r\n }\r\n },\r\n {\r\n path: '/MyDocuments',\r\n name: 'MyDocuments',\r\n component: MyDocuments,\r\n meta: {\r\n requiresAuth: true\r\n },\r\n props: (route: any) => ({\r\n returnUrl: RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\")\r\n })\r\n },\r\n {\r\n path: '/SubscriptionCheckOut/:organizationId',\r\n name: 'SubscriptionCheckOut',\r\n component: SubscriptionCheckOut,\r\n props: (route: any) => ({\r\n organizationId: route.params.organizationId,\r\n returnUrl: route.params.returnUrl ? route.params.returnUrl : RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\")\r\n }),\r\n meta: {\r\n requiresAuth: true,\r\n pathProvider: (route: any) => ({\r\n organizationId: route.params.organizationId,\r\n }),\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: false,\r\n notOnPrem: true\r\n }\r\n },\r\n {\r\n path: '/Unsubscription/:userId',\r\n name: 'Unsubscription',\r\n component: Unsubscription,\r\n props: (route: any) => ({\r\n userId: route.params.userId\r\n }),\r\n meta: {\r\n notOnPrem: true\r\n }\r\n },\r\n {\r\n path: '/TableOwners/:organizationId/:listId',\r\n name: 'TableOwners',\r\n props: true,\r\n component: TableOwners,\r\n meta: { layout: \"IframeLayout\" }\r\n },\r\n {\r\n path: '/TableAccessDenied/:listId?',\r\n name: 'TableAccessDenied',\r\n component: TableAccessDenied,\r\n props: (route: any) => {\r\n var listId = route.params.listId ? route.params.listId : route.query.key;\r\n if (listId)\r\n listId = (listId).toLowerCase().replace(/-/g, '');\r\n return { listId: listId };\r\n },\r\n meta: { layout: \"ErrorLayout\" }\r\n },\r\n {\r\n path: '/OrganizationAccessDenied',\r\n name: 'OrganizationAccessDenied',\r\n component: OrganizationAccessDenied,\r\n meta: { layout: \"ErrorLayout\" }\r\n },\r\n {\r\n path: '/TableSettings/:listId?',\r\n name: 'TableSettings',\r\n component: TableSettings,\r\n props: (route: any) => {\r\n var listId = route.params.listId ? route.params.listId : route.query.key;\r\n if (listId)\r\n listId = (listId).toLowerCase().replace(/-/g, '');\r\n return { listId: listId };\r\n },\r\n meta: {\r\n requiresAuth: true,\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: true,\r\n pathProvider: (route: any) => ({\r\n listId: route.params.listId,\r\n }),\r\n }\r\n },\r\n {\r\n path: '/tjf/:listId',\r\n name: 'RowMerge',\r\n component: RowMerge,\r\n props: (route: any) => {\r\n var listId = route.params.listId;\r\n if (listId)\r\n listId = (listId).toLowerCase().replace(/-/g, '');\r\n return { listId: listId };\r\n },\r\n meta: {\r\n requiresAuth: true,\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: true,\r\n pathProvider: (route: any) => ({\r\n listId: route.params.listId,\r\n }),\r\n }\r\n },\r\n {\r\n path: '/tcs/:listId/:columnId',\r\n name: 'ColumnSettings',\r\n component: ColumnSettings,\r\n props: (route: any) => ({\r\n listId: route.params.listId,\r\n columnId: route.params.columnId,\r\n returnUrl: route.params.returnUrl ? route.params.returnUrl : RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\")\r\n }),\r\n meta: {\r\n requiresAuth: true\r\n }\r\n },\r\n {\r\n path: '/ConfirmEmail(.html)?/:token?',\r\n name: 'ConfirmEmail',\r\n component: ConfirmEmail,\r\n props: (route: any) => {\r\n var token = route.params.token ? route.params.token : route.query.data;\r\n if (token)\r\n token = (token).toLowerCase().replace(/-/g, '');\r\n return {\r\n token: token\r\n };\r\n },\r\n meta: {\r\n allowsEmptyOrganization: true\r\n }\r\n },\r\n {\r\n path: '/ResetPasswordRequest/',\r\n name: 'ResetPasswordRequest',\r\n component: ResetPasswordRequest,\r\n },\r\n {\r\n path: '/ResetPassword(.html)?/:token?',\r\n name: 'ResetPassword',\r\n component: ResetPassword,\r\n props: (route: any) => {\r\n var token = route.params.token ? route.params.token : route.query.data;\r\n if (token)\r\n token = (token).toLowerCase();\r\n return {\r\n token: token\r\n };\r\n },\r\n },\r\n {\r\n path: '/ManageOrganization(.html)?/:organizationId?',\r\n name: 'ManageOrganization',\r\n component: ManageOrganization,\r\n props: (route: any) => ({\r\n organizationId: route.params.organizationId ? route.params.organizationId : route.query.key,\r\n returnUrl: route.params.returnUrl ? route.params.returnUrl : RouterUtils.getCaseInsentiveQuery(route, \"ReturnUrl\")\r\n }),\r\n meta: {\r\n requiresAuth: true,\r\n pathProvider: (route: any) => ({ organizationId: route.params.organizationId ? route.params.organizationId : route.query.key }),\r\n isBreadcrumbVisible: true,\r\n isFullBreadcrumb: false,\r\n breadcrumbTag: \"Settings\"\r\n }\r\n },\r\n {\r\n path: '/bo/ListAccessAudit/:organizationId',\r\n name: 'ListAccessAudit',\r\n component: ListAccessAudit,\r\n props: true,\r\n meta: {\r\n layout: \"BackOfficeLayout\",\r\n requiresAuth: true,\r\n isBO: true,\r\n }\r\n },\r\n {\r\n path: '/403',\r\n name: '403',\r\n component: AccessDenied,\r\n meta: {\r\n layout: \"ErrorLayout\",\r\n }\r\n },\r\n {\r\n path: '/bo/organization/:organizationId',\r\n name: 'BackOfficeOrganization',\r\n component: BackOfficeOrganization,\r\n props: true,\r\n meta: {\r\n layout: \"BackOfficeLayout\",\r\n requiresAuth: true,\r\n isBO: true,\r\n }\r\n },\r\n {\r\n path: '/bo/organization/limits/:organizationId',\r\n name: 'BackOfficeOrganizationLimits',\r\n component: BackOfficeOrganizationLimits,\r\n props: true,\r\n meta: {\r\n layout: \"BackOfficeLayout\",\r\n requiresAuth: true,\r\n isBO: true,\r\n }\r\n },\r\n {\r\n path: '/bo/user/:userId',\r\n name: 'BackOfficeUser',\r\n component: BackOfficeUser,\r\n props: true,\r\n meta: {\r\n layout: \"BackOfficeLayout\",\r\n requiresAuth: true,\r\n isBO: true\r\n }\r\n },\r\n {\r\n path: '/bo',\r\n name: 'bo',\r\n component: BackOffice,\r\n meta: {\r\n layout: \"BackOfficeLayout\",\r\n requiresAuth: true,\r\n isBO: true,\r\n }\r\n },\r\n {\r\n path: '*',\r\n name: 'PageNotFound',\r\n component: PageNotFound,\r\n meta: {\r\n layout: \"ErrorLayout\",\r\n }\r\n },\r\n ];\r\n\r\nconst router = new VueRouter({\r\n mode: 'history',\r\n routes: routes\r\n});\r\n\r\nrouter.beforeEach(\r\n async (to, _from, next) => {\r\n\r\n // mobile app detection\r\n if (to.query.scope == 'mobileapp') {\r\n Cookie.set('IsMobile', 'true');\r\n var isMobileCookie = Cookie.get('IsMobile');\r\n let isInMobileApp = isMobileCookie ? (isMobileCookie.toLowerCase() == \"true\") : false;\r\n ApplicationModule.updateDevice(isInMobileApp);\r\n }\r\n\r\n await UserModule.refreshUserIfMissing();\r\n\r\n // handling demo user\r\n if (to.query.demo && UserModule.CurrentUser.IsAnonymous) {\r\n await UserModule.DemoSignIn(to.query.demo);\r\n await UserModule.refreshUser();\r\n }\r\n\r\n // load only needed user language / browser language if no user connected\r\n await loadAndSetWithUserLanguageAsync();\r\n\r\n ApplicationModule.updateAppPreviousLocation('');\r\n\r\n // load org logo if orgid in querystring on login page\r\n var orgid = RouterUtils.getCaseInsentiveQuery(to, \"orgId\");\r\n if (!to.meta?.requiresAuth && UserModule.CurrentUser.IsAnonymous && orgid) {\r\n ListTreeModule.updateCurrentSiteLogos(orgid)\r\n }\r\n else {\r\n ListTreeModule.updateCurrentSiteLogos(null);\r\n }\r\n\r\n // start loading the listtrees and update the current org and folder if provided by the route\r\n ListTreeModule.refreshOrganizationsTreeIfMissingOrOutdated()\r\n .then(() => {\r\n var route = to.matched.length > 1 ? to.matched.filter(r => !!(r.parent))[0] : to.matched[0];\r\n if (!route || !route.meta || !route.meta.pathProvider || !route.meta.pathProvider(to))\r\n return;\r\n var path = route.meta.pathProvider(to);\r\n if (path.listId)\r\n RouteToList(path, next, to);\r\n else if (!UserModule.CurrentUser.IsAnonymous) {\r\n if (path.organizationId)\r\n RouteToOrg(path, next, to);\r\n }\r\n });\r\n\r\n if (to.query.errorPage === '404') {\r\n next({ name: '404' });\r\n }\r\n\r\n //if we are on the OnPrem variant we do not have access to some routes\r\n if (to.matched.some(route => route.meta.notOnPrem)) {\r\n if (OnPremModule.isOnPrem) {\r\n next({ name: '403' });\r\n }\r\n }\r\n\r\n //If the route requires authentication, a query to the store is done to know if there is a connected user or not.\r\n //If the route doesn't allow users without organizations, the user is redirected to the signup \r\n if (to.matched.some(route => route.meta.requiresAuth)) {\r\n var userDetails = UserModule.CurrentUser;\r\n\r\n if (to.matched.some(route => route.meta.isBO) && !userDetails.IsAdministrator)\r\n next({ name: 'PageNotFound' });\r\n\r\n let isLoggedIn = !userDetails.IsAnonymous;\r\n if (isLoggedIn) {\r\n if (!to.matched.some(route => route.meta.allowsEmptyOrganization)) {\r\n if (userDetails && userDetails.OrganizationsCount == 0)\r\n next({ name: 'SignUp', query: { ReturnUrl: to.path } });\r\n else\r\n next();\r\n }\r\n else\r\n next();\r\n }\r\n else {\r\n next({ name: 'Login', query: { ReturnUrl: to.path } });\r\n }\r\n }\r\n else {\r\n if (to.matched.some(route => route.meta.allowsEmptyOrganization === false)) {\r\n var userDetails = UserModule.CurrentUser;\r\n let isLoggedIn = !userDetails.IsAnonymous;\r\n\r\n if (isLoggedIn && userDetails && userDetails.OrganizationsCount == 0)\r\n next({ name: 'SignUp', query: { ReturnUrl: to.path } });\r\n else\r\n next();\r\n }\r\n else {\r\n next();\r\n }\r\n }\r\n }\r\n);\r\n\r\n\r\nfunction RouteToOrg(path: any, next: any, to: Route) {\r\n {\r\n ListTreeModule.refreshOrganizationListTreeIfMissingOrOutdated(path.organizationId)\r\n .then(() => {\r\n ListTreeModule.updateCurrentFolder({ organizationId: path.organizationId, folderId: path.folderId });\r\n })\r\n .catch((e: RowShareException) => {\r\n if (e.httpResponse?.status == 404) {\r\n next({ name: 'OrganizationAccessDenied' });\r\n } else if (e.httpResponse?.status == 401 || e.httpResponse?.status == 403) {\r\n if (!UserModule.CurrentUser.IsAnonymous)\r\n next({ name: 'OrganizationAccessDenied' });\r\n\r\n else\r\n next({ name: 'Login', query: { ReturnUrl: to.path } });\r\n };\r\n });\r\n }\r\n}\r\n\r\nfunction RouteToList(path: any, next: any, to: Route) {\r\n {\r\n ListTreeModule.updateCurrentList({ listId: path.listId, allowSurvey: path.allowSurvey })\r\n .then((list: List | null) => {\r\n if (!to.meta?.isSurvey)\r\n ListTreeModule.refreshList(list);\r\n else\r\n ListTreeModule.refreshListPathAndStore(list!);\r\n })\r\n .catch((e: RowShareException) => {\r\n if (e.httpResponse?.status == 404) {\r\n next({ name: 'PageNotFound' });\r\n } else if (e.httpResponse?.status == 401 || e.httpResponse?.status == 403) {\r\n if (!UserModule.CurrentUser.IsAnonymous)\r\n next({ name: 'TableAccessDenied', params: { listId: path.listId } });\r\n\r\n else\r\n next({ name: 'Login', query: { ReturnUrl: to.path } });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default router;","\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport { loadAndSetWithUserLanguageAsync } from \"@/modules/Localization\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport { ListTreeModule } from \"@/store/ListTreeStore\";\r\nimport { RouterUtils } from \"@/modules/Router\";\r\nimport { ResLoader } from \"@/utils/ResLoader\";\r\nimport { ApplicationModule } from \"@/store/ApplicationStore\";\r\nimport * as API from \"@/api/Api\";\r\nimport {ApiResult, ConfirmationRequiredEventParams, Event} from \"@/models/RowShare\";\r\n\r\ndeclare var Calendly: any;\r\n\r\n@Component\r\nexport default class RsHeader extends FormValidation {\r\n\r\n @Prop() isSignUp!: {\r\n type: boolean;\r\n default: false;\r\n };\r\n\r\n @Prop() isLogIn!: {\r\n type: boolean;\r\n default: false;\r\n };\r\n\r\n myAccountListGroupOpened : boolean = false;\r\n\r\n get canAskForSupport() : boolean {\r\n return !(this.currentOrganization?.HasRowShareSupportActivated ?? false);\r\n }\r\n\r\n get canSeeSupportButton() : boolean {\r\n return this.currentUser?.Email !== \"support@rowshare.com\" && this.isNotOnPrem\r\n }\r\n\r\n get currentUser () {\r\n return UserModule.connectedUser;\r\n }\r\n\r\n get canDisableSupport() : boolean {\r\n return !this.canAskForSupport\r\n }\r\n\r\n onAddRowShareSupport(){\r\n EventBus.$emit(Event.CONFIRMATION_REQUIRED, {\r\n title: this.$i18n.t('Header_AddRowShareSupportAsMember_DialogTitle'),\r\n description1: this.$i18n.t('Header_AddRowShareSupportAsMember_DialogDescription', [this.currentOrganization?.Name]).toString(),\r\n actionButtonText: this.$i18n.t('Common_Confirm'),\r\n actionButtonColor: \"primary\",\r\n onConfirmation: () => this.addRowShareSupport(),\r\n cancelButtonText: this.$i18n.t('Form_CancelButton').toString()\r\n });\r\n }\r\n\r\n onRemoveRowShareSupport(){\r\n this.removeRowShareSupport();\r\n }\r\n\r\n async removeRowShareSupport(){\r\n if (!this.currentOrganization) {\r\n return;\r\n }\r\n let apiResult = await API.Member.removeRowShareSupport(this.currentOrganization.Id);\r\n if(apiResult?.IsValid && apiResult.Value){\r\n this.currentOrganization.HasRowShareSupportActivated = false;\r\n let message = this.$i18n.t('Header_RemoveRowSupportMember_SuccessMessage').toString();\r\n this.notify(message, RowShare.NotificationType.success);\r\n } else {\r\n let message = this.$i18n.t('Header_RemoveRowSupportMember_ErrorMessage').toString();\r\n this.notify(message, RowShare.NotificationType.error);\r\n }\r\n }\r\n\r\n async addRowShareSupport() {\r\n if(!this.currentOrganization) {\r\n return;\r\n }\r\n let apiResult = await API.Member.addRowShareSupport(this.currentOrganization.Id);\r\n if(apiResult && apiResult?.IsValid){\r\n /*this.rowShareSupportMember = new RowShare.Member();\r\n Object.assign(this.rowShareSupportMember, apiResult.Value);*/\r\n this.currentOrganization.HasRowShareSupportActivated = true;\r\n let message = this.$i18n.t('Header_AddRowSupportMember_SuccessMessage').toString();\r\n this.notify(message, RowShare.NotificationType.success);\r\n } else {\r\n let message = this.$i18n.t('Header_AddRowSupportMember_ErrorMessage').toString();\r\n this.notify(message, RowShare.NotificationType.error);\r\n }\r\n }\r\n\r\n notify(message: string, notificationType: RowShare.NotificationType) {\r\n EventBus.$emit(RowShare.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: message,\r\n type: notificationType,\r\n autoHide: true,\r\n autoHideAfterMs: 4000\r\n });\r\n }\r\n\r\n async created() {\r\n EventBus.$on(RowShare.Event.LOCALE_CHANGED, async() => {\r\n await this.onLocaleChanged();\r\n });\r\n\r\n let scriptPromise = this.$loadScript('https://assets.calendly.com/assets/external/widget.js');\r\n ResLoader.loadCss('https://assets.calendly.com/assets/external/widget.css');\r\n let res = await Promise.all([scriptPromise]);\r\n }\r\n\r\n destroy() {\r\n EventBus.$off([RowShare.Event.LOCALE_CHANGED]);\r\n }\r\n\r\n onLocaleChanged(){\r\n this.setValidationLanguage(this.$i18n.locale);\r\n }\r\n\r\n get activeLocale() {\r\n return this.$i18n.locale;\r\n }\r\n\r\n async changeLocale(locale: string) {\r\n let currentLocale = await sessionStorage.getItem('activeLocale');\r\n if ( currentLocale === locale)\r\n return; //do nothing if no real change\r\n UserModule.changeUserLanguage(locale).then( ul =>\r\n {\r\n loadAndSetWithUserLanguageAsync().then( () => {\r\n EventBus.$emit(RowShare.Event.LOCALE_CHANGED);\r\n });\r\n });\r\n }\r\n\r\n get customSmallSiteLogoPath() {\r\n let url: string = \"\";\r\n if(ListTreeModule?.currentSmallSiteLogoPath) {\r\n url = ListTreeModule.currentSmallSiteLogoPath;\r\n }\r\n else if(this.currentOrganization?.SmallSiteLogoPath) {\r\n url = this.currentOrganization.SmallSiteLogoPath;\r\n }\r\n return url;\r\n }\r\n\r\n get customFullSiteLogoPath() {\r\n let url: string = \"\";\r\n if(ListTreeModule?.currentFullSiteLogoPath) {\r\n url = ListTreeModule.currentFullSiteLogoPath;\r\n }\r\n else if(this.currentOrganization?.FullSiteLogoPath) {\r\n url = this.currentOrganization.FullSiteLogoPath;\r\n }\r\n return url;\r\n }\r\n\r\n get hasCustomRSLogosForLogin(): boolean {\r\n return ListTreeModule?.currentFullSiteLogoPath != null && ListTreeModule?.currentSmallSiteLogoPath != null;\r\n }\r\n\r\n get demoUser() : boolean {\r\n return UserModule.connectedUser?.IsDemoUser ?? false;\r\n }\r\n\r\n get Languages() {\r\n return [\r\n { Name: this.$i18n.t(\"Footer_English\").toString(), Value: \"en\" },\r\n { Name: this.$i18n.t(\"Footer_Spanish\").toString(), Value: \"es\" },\r\n { Name: this.$i18n.t(\"Footer_French\").toString(), Value: \"fr\" }\r\n ];\r\n }\r\n\r\n get getUser(){\r\n return UserModule.CurrentUser;\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get organizationsTree(){\r\n return ListTreeModule.organizationsTree;\r\n }\r\n\r\n get currentOrganization(){\r\n return ListTreeModule.currentOrganization;\r\n }\r\n\r\n get currentList() {\r\n return ListTreeModule.currentList;\r\n }\r\n\r\n get currentListFromOtherOrg() {\r\n return this.currentList != null && this.currentList.OrganizationId !== this.currentOrganization?.Id;\r\n }\r\n\r\n get currentBreadcrumb() : RowShare.BreadcrumbFolder[] | null {\r\n let breadcrumb = ListTreeModule.currentBreadcrumb;\r\n let res: RowShare.BreadcrumbFolder[] | null = null;\r\n\r\n if(this.isFullBreadcrumb)\r\n res = breadcrumb;\r\n else if (breadcrumb && breadcrumb.length >= 1)\r\n res = [breadcrumb[0]];\r\n else\r\n res = null;\r\n\r\n if(res && this.breadcrumbTag) {\r\n let tagPattern = \"Header_BreadcrumbTag_\" + this.breadcrumbTag;\r\n let tagName = this.$i18n.t(tagPattern).toString();\r\n if(tagName == tagPattern)\r\n tagName = this.breadcrumbTag;\r\n\r\n res = [...res, {Id: this.breadcrumbTag, Name: tagName, IsRootFolder: false, IsTag: true}];\r\n } else if(res && this.showListInBreadcrumb) {\r\n const list = ListTreeModule.currentList;\r\n if(!list)\r\n return res;\r\n\r\n res = [...res, {Id: list.Id, Name: list.DisplayName, IsRootFolder: false, IsTag: true}];\r\n }\r\n\r\n if(this.$vuetify.breakpoint.mobile && res && res.length > 2) {\r\n res = [res[0], {Id: '', Name: '...', IsRootFolder: false, IsTag: false}, res[res.length - 1]];\r\n } else if(res && res.length > 3) {\r\n res = [res[0], {Id: '', Name: '...', IsRootFolder: false, IsTag: false}, res[res.length - 2], res[res.length - 1]];\r\n\r\n }\r\n\r\n return res;\r\n }\r\n\r\n get isBreadcrumbVisible() : boolean {\r\n return ListTreeModule.currentBreadcrumb && this.$route.meta!.isBreadcrumbVisible && !this.currentListFromOtherOrg;\r\n }\r\n\r\n get isFullBreadcrumb() : boolean {\r\n return this.$route.meta!.isFullBreadcrumb;\r\n }\r\n\r\n get breadcrumbTag() : string | null {\r\n if(this.$route.meta!.breadcrumbTag)\r\n return this.$route.meta!.breadcrumbTag;\r\n\r\n var pathProvider = this.$route.meta!.pathProvider;\r\n if(pathProvider){\r\n var tag = pathProvider(this.$route)?.breadcrumbTag;\r\n return tag ?? null\r\n }\r\n\r\n return null;\r\n }\r\n\r\n get breadcrumbTagInUrl() : boolean {\r\n return this.$route.meta!.breadcrumbTagInUrl;\r\n }\r\n\r\n get showListInBreadcrumb() : boolean {\r\n return this.$route.meta!.showListInBreadcrumb;\r\n }\r\n\r\n async signout() {\r\n let returnUrl: string | null = await UserModule.signOut();\r\n if (returnUrl) {\r\n if (returnUrl.charAt(0) == \"~\") returnUrl = returnUrl.substr(1);\r\n\r\n window.location.href = returnUrl;\r\n }\r\n }\r\n\r\n get GetHomeUrl() {\r\n if(UserModule.CurrentUser.IsAnonymous) {\r\n return this.$route.fullPath;\r\n }\r\n return {\r\n name: 'MyTables',\r\n params: {\r\n organizationId: ListTreeModule.currentOrganization?.Id,\r\n folderId: ListTreeModule.currentOrganization?.IsEnabled ? ListTreeModule.currentOrganization?.RootFolder.Id : undefined\r\n }\r\n };\r\n }\r\n\r\n get signUpLink() {\r\n return {\r\n name: \"SignUp\",\r\n query: {\r\n ReturnUrl: RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\"),\r\n }\r\n };\r\n }\r\n\r\n get signInLink(){\r\n var returnUrl = RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\");\r\n\r\n if(!this.isSignUp && !returnUrl)\r\n returnUrl = this.$route.path;\r\n\r\n return {\r\n name: \"Login\",\r\n query: {\r\n ReturnUrl: returnUrl,\r\n }\r\n };\r\n }\r\n\r\n get isCheckoutBtnVisible(){\r\n return this.currentOrganization && this.currentOrganization.CanCurrentUserManage && this.currentOrganization.InTrial && this.currentOrganization.IsEnabled;\r\n }\r\n\r\n get isBreadcrumbRootInLongDisplay(){\r\n if(this.$vuetify.breakpoint.mobile) {\r\n return false;\r\n }\r\n if(!this.isCheckoutBtnVisible)\r\n return true;\r\n }\r\n\r\n getBreadcrumbLinkUrl(organizationId: string, breadcrumbFolder: RowShare.BreadcrumbFolder) {\r\n if(breadcrumbFolder.IsTag && !this.breadcrumbTagInUrl)\r\n return this.$route.path;\r\n\r\n if(breadcrumbFolder.Id == '' || breadcrumbFolder.Id == this.currentOrganization?.RootFolder?.Id)\r\n return { name:'MyTables', params: {organizationId: organizationId, folderId: this.currentOrganization?.RootFolder?.Id}};\r\n else\r\n return { name:'MyTables', params: {organizationId: organizationId, folderId: breadcrumbFolder.Id}};\r\n }\r\n\r\n scheduleDemo() {\r\n Calendly.initPopupWidget({ url: this.$i18n.t('Header_ScheduleDemoUrl').toString() });\r\n }\r\n\r\n get previousLocation() : RouterLocation | string {\r\n return ApplicationModule.mobileAppPreviousLocation;\r\n }\r\n\r\n previous(location: RouterLocation){\r\n this.$router.push(location);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Header.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./Header.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=a439c996&scoped=true&\"\nimport script from \"./Header.vue?vue&type=script&lang=ts&\"\nexport * from \"./Header.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Header.vue?vue&type=style&index=0&id=a439c996&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 \"a439c996\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.currentParams)?_c('confirmation-dialog',{attrs:{\"dialogState\":_vm.isVisible,\"title\":_vm.currentParams.title,\"description\":_vm.currentParams.description1,\"modalConfirmationReally\":_vm.currentParams.description2,\"actionButtonText\":_vm.currentParams.actionButtonText,\"cancelButtonText\":_vm.currentParams.cancelButtonText,\"actionButtonIcon\":_vm.currentParams.actionButtonIcon,\"actionButtonColor\":_vm.currentParams.actionButtonColor,\"submitLoading\":_vm.isLoading,\"persistent\":_vm.currentParams.persistent},on:{\"submit\":_vm.onSubmit,\"cancel\":_vm.onCancel}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Prop, Vue } from 'vue-property-decorator';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport ConfirmationDialog from '@/views/components/ConfirmationDialog.vue';\r\nimport * as RowShare from '@/models/RowShare';\r\n\r\n@Component({\r\n name:'GlobalConfirmationDialog',\r\n components: {ConfirmationDialog}\r\n})\r\nexport default class GlobalConfirmationDialog extends Vue{\r\n\r\n isVisible: boolean = false;\r\n isLoading: boolean = false;\r\n currentParams: RowShare.ConfirmationRequiredEventParams | null = null;\r\n\r\n created(){\r\n EventBus.$on(\r\n RowShare.Event.CONFIRMATION_REQUIRED,\r\n this.onConfirmationRequired\r\n );\r\n }\r\n\r\n destroyed(){\r\n EventBus.$off(RowShare.Event.CONFIRMATION_REQUIRED, this.onConfirmationRequired);\r\n }\r\n\r\n onSubmit(){\r\n this.isLoading = true;\r\n\r\n if(this.currentParams) {\r\n this.currentParams.onConfirmation().then(() => {\r\n this.isVisible = false;\r\n this.currentParams = null;\r\n });\r\n } else {\r\n this.isVisible = false;\r\n this.currentParams = null;\r\n }\r\n }\r\n\r\n onCancel(){\r\n this.isVisible = false;\r\n this.currentParams = null;\r\n }\r\n\r\n onConfirmationRequired(params: RowShare.ConfirmationRequiredEventParams){\r\n if(this.isVisible) {\r\n console.error(\"Error: another global confirmation dialog is already open\");\r\n return;\r\n }\r\n\r\n this.isLoading = false;\r\n this.currentParams = params;\r\n this.isVisible = true;\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./GlobalConfirmationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./GlobalConfirmationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GlobalConfirmationDialog.vue?vue&type=template&id=48cfb986&scoped=true&\"\nimport script from \"./GlobalConfirmationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./GlobalConfirmationDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GlobalConfirmationDialog.vue?vue&type=style&index=0&id=48cfb986&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 \"48cfb986\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"notification-container\"},_vm._l((_vm.toasts),function(toast){return _c('div',{key:toast.id},[(toast.isOpen)?_c('v-card',{staticClass:\"mb-4 rs-toast\",class:'rs-toast-' + toast.type,attrs:{\"color\":toast.backgroundColor}},[(toast.title)?_c('v-card-title',{staticClass:\"toast-title\"},[_c('v-icon',{staticClass:\"toast-type-icon\",attrs:{\"color\":toast.iconColor,\"dense\":\"\"}},[_vm._v(_vm._s(toast.icon))]),_vm._v(\" \"),_c('span',{class:toast.textColor + '--text'},[_vm._v(_vm._s(toast.title))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{staticClass:\"toast-close-icon ml-1\",attrs:{\"dense\":\"\",\"color\":toast.iconColor},on:{\"click\":function($event){toast.isOpen = false;}}},[_vm._v(\"far fa-times\")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"toast-rectangle\",class:toast.iconColor}),_vm._v(\" \"),_c('v-card-text',{staticClass:\"toast-description\",class:toast.title?'':'no-title'},[(!toast.title)?_c('v-icon',{staticClass:\"toast-type-icon mr-1\",attrs:{\"color\":toast.iconColor,\"dense\":\"\"}},[_vm._v(_vm._s(toast.icon))]):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(toast.message))]),_vm._v(\" \"),(!toast.title)?_c('v-spacer'):_vm._e(),_vm._v(\" \"),(!toast.title)?_c('v-icon',{staticClass:\"toast-close-icon ml-1\",attrs:{\"dense\":\"\",\"color\":toast.iconColor},on:{\"click\":function($event){toast.isOpen = false;}}},[_vm._v(\"far fa-times\")]):_vm._e()],1),_vm._v(\" \"),(_vm.showActionButton)?_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"text\":\"\",\"outlined\":\"\",\"color\":\"primary\",\"small\":\"\"},on:{\"click\":function($event){return _vm.onActionButtonClick(toast)}}},[_vm._v(_vm._s(_vm.actionButtonText))])],1):_vm._e()],1):_vm._e()],1)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n import { EventBus } from \"@/modules/EventBus\";\r\n import * as Models from '@/models/RowShare';\r\n import { RowErrorEventParams, GridErrorEventParams, NotificationType, GlobalNotificationEventParams } from '@/models/RowShare';\r\n import RowVM from '@/viewModels/Table/rowVM';\r\n\r\n @Component({\r\n name: \"NotificationStack\",\r\n components: { }\r\n })\r\n export default class NotificationStack extends Vue {\r\n\r\n private toasts: ToastVM[] = [];\r\n showActionButton: boolean = false;\r\n actionButtonText: string | null = null;\r\n actionButtonClick!: () => void;\r\n\r\n created(){\r\n EventBus.$on(Models.Event.GRID_ERROR, (evt: RowErrorEventParams) => this.onGridError(evt));\r\n EventBus.$on(Models.Event.ROW_ERROR, (evt: RowErrorEventParams) => this.onRowError(evt));\r\n EventBus.$on(Models.Event.ROW_SAVED, (rowVM: RowVM) => this.clearToastsForRow(rowVM));\r\n EventBus.$on(Models.Event.ROW_DELETE, (rowVMs: RowVM[]) => this.clearToastsForRows(rowVMs));\r\n EventBus.$on(Models.Event.ROW_ARCHIVE, (rowVMs: RowVM[]) => this.clearToastsForRows(rowVMs));\r\n EventBus.$on(Models.Event.GLOBAL_NOTIFICATION_RAISED, (evt: GlobalNotificationEventParams) => this.onGlobalNotification(evt));\r\n EventBus.$on(Models.Event.CLEAR_ALL_GLOBAL_NOTIFICATIONS, () => this.onClearAllGlobalNotifications());\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off(\r\n [\r\n Models.Event.GRID_ERROR,\r\n Models.Event.ROW_ERROR,\r\n Models.Event.ROW_SAVED,\r\n Models.Event.ROW_DELETE, \r\n Models.Event.ROW_ARCHIVE,\r\n Models.Event.GLOBAL_NOTIFICATION_RAISED,\r\n Models.Event.CLEAR_ALL_GLOBAL_NOTIFICATIONS\r\n ]);\r\n }\r\n\r\n onRowError(evt: RowErrorEventParams){\r\n if(!evt.title)\r\n evt.title = this.$i18n.t(\"ErrorNotif_DefaultTitle\").toString();\r\n\r\n this.toasts = this.toasts.filter(r => r.isOpen && (!r.key || r.type != NotificationType.error || r.key != evt.rowVM.rowVMId));\r\n this.toasts.push(new RowErrorToastVM(evt));\r\n }\r\n\r\n onGridError(evt: GridErrorEventParams){\r\n if(!evt.title)\r\n evt.title = this.$i18n.t(\"ErrorNotif_DefaultTitle\").toString();\r\n\r\n this.toasts = this.toasts.filter(r => r.isOpen);\r\n this.toasts.push(new ToastVM(evt.title, evt.message, NotificationType.error, null));\r\n }\r\n\r\n onGlobalNotification(evt: GlobalNotificationEventParams){\r\n this.toasts = this.toasts.filter(r => r.isOpen && (evt.duplicateId == null || r.duplicateId != evt.duplicateId));\r\n var toast = new ToastVM(evt.title, evt.message, evt.type, evt.duplicateId);\r\n this.showActionButton = evt.showActionButton;\r\n if(this.showActionButton) {\r\n this.actionButtonText = evt.actionButtonText;\r\n this.actionButtonClick = evt.actionButtonClick;\r\n }\r\n this.toasts.push(toast);\r\n if(evt.autoHide) {\r\n setTimeout(() => {\r\n this.toasts = this.toasts.filter(r => r != toast);\r\n }, evt.autoHideAfterMs);\r\n }\r\n }\r\n\r\n onClearAllGlobalNotifications() {\r\n this.toasts = [];\r\n }\r\n\r\n clearToastsForRow(rowVM: RowVM) {\r\n this.toasts = this.toasts.filter(r => r.isOpen && (!r.key || r.type != NotificationType.error || r.key != rowVM.rowVMId));\r\n }\r\n\r\n clearToastsForRows(rowVMs: RowVM[]) {\r\n let rowIds = rowVMs.map((rvm) => rvm.rowVMId);\r\n this.toasts = this.toasts.filter(r => r.isOpen && (!r.key || r.type != NotificationType.error || !rowIds.includes(r.key)));\r\n }\r\n\r\n onActionButtonClick(toast: ToastVM) {\r\n this.toasts = this.toasts.filter(t => t != toast);\r\n this.actionButtonClick();\r\n }\r\n }\r\n\r\n class ToastVM{\r\n static nextId = 0;\r\n\r\n id: number;\r\n title: string;\r\n message: string | null;\r\n type: NotificationType;\r\n duplicateId: string | null;\r\n\r\n isOpen = true;\r\n\r\n constructor(title: string, message: string | null, type: NotificationType, duplicateId: string | null){\r\n this.id = ToastVM.nextId;\r\n ToastVM.nextId++;\r\n\r\n this.title = title;\r\n this.message = message;\r\n this.type = type;\r\n this.duplicateId = duplicateId;\r\n }\r\n\r\n get key() : any { return undefined; }\r\n\r\n get backgroundColor() {\r\n switch(this.type){\r\n case NotificationType.error:\r\n return \"error lighten-2\";\r\n case NotificationType.warning:\r\n return \"warning lighten-2\";\r\n default:\r\n return \"lightest\"\r\n }\r\n }\r\n\r\n get iconColor() {\r\n switch(this.type){\r\n case NotificationType.error:\r\n return \"error\";\r\n case NotificationType.warning:\r\n return \"warning\";\r\n case NotificationType.success:\r\n return \"success\";\r\n default:\r\n return \"primary\"\r\n }\r\n }\r\n\r\n get textColor() {\r\n switch(this.type){\r\n case NotificationType.error:\r\n return \"error\";\r\n case NotificationType.warning:\r\n return \"warning\";\r\n default:\r\n return \"darkest\"\r\n }\r\n }\r\n\r\n get icon(){\r\n switch(this.type){\r\n case NotificationType.error:\r\n return \"far fa-times-circle\";\r\n case NotificationType.warning:\r\n return \"far fa-exclamation-triangle\";\r\n case NotificationType.success:\r\n return \"far fa-check-circle\";\r\n default:\r\n return \"far fa-exclamation-circle\";\r\n }\r\n }\r\n }\r\n\r\n class RowErrorToastVM extends ToastVM {\r\n rowVM: RowVM;\r\n\r\n get key() : any { return this.rowVM.rowVMId; }\r\n\r\n constructor(params: RowErrorEventParams){\r\n super(params.title, params.message, NotificationType.error, null);\r\n this.rowVM = params.rowVM;\r\n }\r\n }\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NotificationStack.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./NotificationStack.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotificationStack.vue?vue&type=template&id=ae5c2b00&scoped=true&\"\nimport script from \"./NotificationStack.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotificationStack.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotificationStack.vue?vue&type=style&index=0&id=ae5c2b00&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 \"ae5c2b00\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"600\",\"fullscreen\":_vm.$vuetify.breakpoint.mobile},on:{\"click:outside\":_vm.onCancel,\"keydown:esc\":_vm.onCancel},model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_c('upsell-card',{attrs:{\"description\":_vm.description,\"title\":_vm.title,\"showCancelButton\":true,\"returnUrl\":_vm.returnUrl,\"canGoToCheckOut\":_vm.canGoToCheckOut,\"organizationId\":_vm.organizationId},on:{\"cancel\":_vm.onCancel}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"upsell-dialog\"},[_c('v-card-title',{staticClass:\"headline lighten-2\",attrs:{\"primary-title\":\"\"}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"color\":\"deeppurple\",\"large\":\"\"}},[_vm._v(\"fal fa-arrow-circle-up\")]),_vm._v(\" \"),_c('span',{staticClass:\"dialog-title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.showCancelButton)?_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")]):_vm._e()],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"font-weight-bold subtitle-1\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.description)}})]),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('div',[(_vm.showCancelButton)?_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.$i18n.t('Common_Close'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.canGoToCheckOut)?_c('v-btn',{staticClass:\"mt-1 ml-2 button-dialog white--text\",attrs:{\"color\":\"deeppurple\",\"to\":{name: 'SubscriptionCheckOut', params: {organizationId: _vm.organizationId, returnUrl: _vm.returnUrl}}},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.$i18n.t('Common_GoToCheckOut'))+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),(!_vm.showCancelButton)?_c('v-spacer'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ListTreeModule } from '@/store/ListTreeStore';\r\nimport {Vue, Component, Prop} from 'vue-property-decorator';\r\n\r\n@Component({name: 'UpsellCard'})\r\nexport default class UpsellCard extends Vue {\r\n @Prop() title!: string;\r\n @Prop() description!: string;\r\n @Prop({default: false}) showCancelButton!: boolean;\r\n @Prop() returnUrl!: string;\r\n @Prop() organizationId!: string;\r\n @Prop({default: false}) canGoToCheckOut!: boolean;\r\n\r\n\r\n onCancel() {\r\n this.$emit('cancel');\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./UpsellCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./UpsellCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UpsellCard.vue?vue&type=template&id=437bf95d&scoped=true&\"\nimport script from \"./UpsellCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./UpsellCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UpsellCard.vue?vue&type=style&index=0&id=437bf95d&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 \"437bf95d\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Event, ShowUpsellDialogEventParams } from \"@/models/Event\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport { Vue, Component} from \"vue-property-decorator\";\r\nimport UpsellCard from '@/views/components/UpsellCard.vue';\r\nimport { ListTreeModule } from \"@/store/ListTreeStore\";\r\n\r\n@Component({name: 'UpsellDialog', components: { UpsellCard }})\r\nexport default class UpsellDialog extends Vue {\r\n showMe: boolean = false;\r\n title: string = \"\";\r\n description: string = \"\";\r\n \r\n created() {\r\n EventBus.$on(Event.SHOW_UPSELL_DIALOG, (event: ShowUpsellDialogEventParams) => this.onShowUpsellDialogEvent(event))\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off(Event.SHOW_UPSELL_DIALOG);\r\n }\r\n\r\n onShowUpsellDialogEvent(event: ShowUpsellDialogEventParams) {\r\n this.title = event.title ?? \"\";\r\n this.description = event.description ?? \"\";\r\n this.showMe = true;\r\n }\r\n\r\n onCancel() {\r\n this.showMe = false;\r\n }\r\n\r\n get returnUrl(): string {\r\n return this.$route.fullPath;\r\n }\r\n\r\n get organizationId(): string {\r\n return ListTreeModule.currentOrganization?.Id ?? \"\";\r\n }\r\n\r\n get canGoToCheckOut(): boolean {\r\n return ListTreeModule.currentOrganization?.CanCurrentUserManage ?? false;\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!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./UpsellDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./UpsellDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UpsellDialog.vue?vue&type=template&id=6a9502df&scoped=true&\"\nimport script from \"./UpsellDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./UpsellDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UpsellDialog.vue?vue&type=style&index=0&id=6a9502df&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 \"6a9502df\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-navigation-drawer',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:({handler: _vm.onClickOutside, closeConditional: _vm.shouldClosePanel}),expression:\"{handler: onClickOutside, closeConditional: shouldClosePanel}\"}],attrs:{\"stateless\":\"\",\"disable-resize-watcher\":\"\",\"temporary\":\"\",\"absolute\":\"\",\"right\":\"\",\"width\":_vm.width},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-list-item',[_c('v-spacer'),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1)]},proxy:true}]),model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_vm._v(\" \"),(_vm.listVM)?_c('row-form-view',{attrs:{\"listVM\":_vm.listVM,\"rowId\":_vm.rowId,\"sidePanelMode\":true,\"showBottomNavigation\":false},on:{\"rowDeleted\":_vm.onCancel}}):_c('page-load-spinner')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport RowFormView from '@/views/Table/FormView/RowFormView.vue'\r\nimport ListVM from '@/viewModels/Table/listVM';\r\nimport { Event, ShowSidePanelFormViewEventParams } from '@/models/RowShare';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\n\r\n@Component({name: 'SidePanelFormView', components: { RowFormView, PageLoadSpinner }})\r\nexport default class SidePanelFormView extends Vue {\r\n showMe: boolean = false;\r\n listVM: ListVM | null = null;\r\n rowId: string = \"\";\r\n width: string = \"0px\";\r\n\r\n created() {\r\n EventBus.$on(Event.SHOW_SIDEPANEL_FORMVIEW, (event: ShowSidePanelFormViewEventParams) => this.onShowSidePanelFormView(event));\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off(Event.SHOW_SIDEPANEL_FORMVIEW);\r\n }\r\n\r\n onShowSidePanelFormView(event: ShowSidePanelFormViewEventParams) {\r\n this.listVM = event.ListVM;\r\n this.rowId = event.rowId ?? \"\";\r\n this.width = \"33%\";\r\n setTimeout(() => { this.showMe = true;}, 0);\r\n }\r\n\r\n onClickOutside() {\r\n if(this.showMe) {\r\n this.onCancel();\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.listVM = null;\r\n this.rowId = \"\";\r\n this.showMe = false;\r\n this.width = \"0px\";\r\n }\r\n\r\n shouldClosePanel(event: any): boolean {\r\n if(!event?.target?.classList) {\r\n return false;\r\n }\r\n return event.target.classList.contains('v-overlay__scrim');\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelFormView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelFormView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidePanelFormView.vue?vue&type=template&id=74990dd4&\"\nimport script from \"./SidePanelFormView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidePanelFormView.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-navigation-drawer',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:({handler: _vm.onClickOutside, closeConditional: _vm.shouldClosePanel}),expression:\"{handler: onClickOutside, closeConditional: shouldClosePanel}\"}],attrs:{\"stateless\":\"\",\"disable-resize-watcher\":\"\",\"temporary\":\"\",\"absolute\":\"\",\"right\":\"\",\"width\":_vm.width},on:{\"transitionend\":_vm.onSidePanelStatusChanged},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('div',{ref:\"sidepanelHeader\"},[_c('v-card-title',{staticClass:\"mb-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelSharing_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"href\":_vm.$t('SidePanelSharing_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(_vm.listShared)?_c('v-card-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelSharing_Description'))+\"\\n \")]):_vm._e()],1)]},proxy:true},{key:\"append\",fn:function(){return [_c('div',{ref:\"sidePanelFooter\"},[(!_vm.hasAdvancedPermissions && _vm.advancedMode)?_c('div',{staticClass:\"upsell-card\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"upsell-title mb-3\"},[_c('span',[_vm._v(_vm._s(_vm.upsellTitle))])])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"mr-4\",attrs:{\"cols\":\"3\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/sharing_empty_state.svg\"),\"height\":\"100\",\"aspect-ratio\":\"1\",\"contain\":\"\"}})],1),_vm._v(\" \"),_c('v-col',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.upsellDescription)}})])],1),_vm._v(\" \"),(_vm.canGoToCheckOut)?_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"to\":{name: 'SubscriptionCheckOut', params: {organizationId: _vm.currentOrganizationId, returnUrl: _vm.currentUrl}}},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.$i18n.t('Common_GoToCheckOut'))+\" \"),_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-arrow-right\")])],1)],1)],1):_vm._e()],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-divider',{staticClass:\"mb-2\"}),_vm._v(\" \"),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[(_vm.hasNewGuests)?_c('v-tooltip',{staticClass:\"d-flex ml-3\",attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('v-switch',{staticClass:\"ml-3 send-invitations-switch\",attrs:{\"disabled\":!_vm.hasNewGuests,\"inset\":\"\",\"label\":_vm.$t('SidePanelSharing_SendToNewGuests')},model:{value:(_vm.sendInvitationEmails),callback:function ($$v) {_vm.sendInvitationEmails=$$v},expression:\"sendInvitationEmails\"}})],1)]}}],null,false,527486305)},[_vm._v(\" \"),_c('div',{staticClass:\"info-tooltip\"},[_vm._v(_vm._s(_vm.$t('SidePanelSharing_SendToNewGuestsToolTip')))])]):_vm._e(),_vm._v(\" \"),(!_vm.hasNewGuests)?_c('v-tooltip',{staticClass:\"d-flex ml-3\",attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('v-switch',{staticClass:\"ml-3 send-invitations-switch\",attrs:{\"disabled\":!_vm.hasNewGuests,\"inset\":\"\",\"label\":_vm.$t('SidePanelSharing_SendToNewGuests')},model:{value:(_vm.sendInvitationEmails),callback:function ($$v) {_vm.sendInvitationEmails=$$v},expression:\"sendInvitationEmails\"}})],1)]}}],null,false,527486305)},[_vm._v(\" \"),_c('div',{staticClass:\"info-tooltip\"},[_vm._v(_vm._s(_vm.$t('SidePanelSharing_NoMailToSend')))])]):_vm._e()],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-col',{staticClass:\"action-btn\"},[_c('v-btn',{staticClass:\"mr-3\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.onCancel}},[_vm._v(_vm._s(_vm.$t('Common_Cancel')))]),_vm._v(\" \"),_c('v-tooltip',{staticClass:\"d-flex mr-3\",attrs:{\"top\":\"\",\"disabled\":_vm.canValidateAccesses,\"color\":_vm.validationBtnTooltipColor},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('v-btn',{staticClass:\"mr-3\",attrs:{\"disabled\":!_vm.canValidateAccesses,\"color\":\"primary\",\"loading\":_vm.processing},on:{\"click\":_vm.onSaveClick}},[_vm._v(_vm._s(_vm.$t('SidePanelSharing_Validate')))])],1)]}}])},[_vm._v(\" \"),_c('div',{staticClass:\"info-tooltip\"},[_vm._v(_vm._s(_vm.validationBtnTooltip))])])],1)],1)],1)]},proxy:true}]),model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_vm._v(\" \"),(_vm.listShared)?_c('div',[_c('v-data-table',{attrs:{\"dense\":\"\",\"disable-pagination\":\"\",\"hide-default-footer\":\"\",\"disable-sort\":\"\",\"disable-filtering\":\"\",\"fixed-header\":\"\",\"height\":_vm.listAccessesHeight,\"headers\":_vm.accessesListHeaders,\"items\":_vm.currentListAccesses,\"loading\":_vm.loadingAccesses,\"loading-text\":_vm.$t('SidePanelSharing_LoadingAccesses'),\"item-class\":_vm.getAccessClass},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-row',{ref:\"listaccessesHeader\",attrs:{\"no-gutters\":\"\"}},[_c('v-spacer'),_vm._v(\" \"),_c('v-col',{staticClass:\"advancedmode-label pr-5\"},[_c('v-tooltip',{staticClass:\"d-flex mr-3\",attrs:{\"disabled\":_vm.canSwitchMode,\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('v-switch',{attrs:{\"inset\":\"\",\"disabled\":!_vm.canSwitchMode,\"label\":_vm.$t('SidePanelSharing_AdvancedMode')},model:{value:(_vm.advancedMode),callback:function ($$v) {_vm.advancedMode=$$v},expression:\"advancedMode\"}})],1)]}}],null,false,233369792)},[_vm._v(\" \"),_c('div',{staticClass:\"info-tooltip\"},[_vm._v(_vm._s(_vm.advancedModeSwitchTooltip))])])],1)],1)]},proxy:true},{key:\"item.guestName\",fn:function({item}){return [(item.IsMyOrganization)?_c('div',{staticClass:\"guest-name\"},[_c('v-avatar',{staticClass:\"mr-1\",attrs:{\"size\":\"24\",\"title\":item.guestName}},[(_vm.getMyOrganizationIconPath(item) !== null)?_c('v-img',{attrs:{\"src\":_vm.getMyOrganizationIconPath(item)}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1),_vm._v(\" \"),_c('span',{attrs:{\"title\":item.guestName}},[_vm._v(_vm._s(item.guestName))])],1):_c('div',{staticClass:\"guest-name\"},[_c('bigram',{staticClass:\"mr-2\",attrs:{\"dense\":\"\",\"listAccess\":item}}),_vm._v(\" \"),_c('span',{attrs:{\"title\":item.guestName}},[_vm._v(_vm._s(item.guestName))])],1)]}},{key:\"item.simpleAccessLevel\",fn:function({item}){return [(item.simpleAccessLevel)?_c('v-btn-toggle',{attrs:{\"mandatory\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.updateStatus(item)}},model:{value:(item.simpleAccessLevel),callback:function ($$v) {_vm.$set(item, \"simpleAccessLevel\", $$v)},expression:\"item.simpleAccessLevel\"}},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":item.isDeleted,\"text\":\"\",\"color\":\"primary\",\"value\":1}},[_c('v-icon',{staticClass:\"mr-2 circle-half--horizontal\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"far fa-circle-half-stroke\")]),_vm._v(_vm._s(_vm.$t('SidePanelSharing_OwnedOnly')))],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":item.isDeleted,\"text\":\"\",\"color\":\"primary\",\"value\":2}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fa-circle\")]),_vm._v(_vm._s(_vm.$t('SidePanelSharing_All')))],1)],1):_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelSharing_InvalidAccessLevel'))+\"\\n \")])]}},{key:\"item.Read\",fn:function({item}){return [_c('access-level-switch',{attrs:{\"dense\":true,\"disabled\":item.isDeleted},on:{\"change\":function($event){return _vm.updateStatus(item)}},model:{value:(item.Read),callback:function ($$v) {_vm.$set(item, \"Read\", $$v)},expression:\"item.Read\"}})]}},{key:\"item.Create\",fn:function({item}){return [_c('access-level-switch',{attrs:{\"dense\":true,\"disabled\":item.isDeleted,\"twoStateMode\":true},on:{\"change\":function($event){return _vm.updateStatus(item)}},model:{value:(item.Create),callback:function ($$v) {_vm.$set(item, \"Create\", $$v)},expression:\"item.Create\"}})]}},{key:\"item.Update\",fn:function({item}){return [_c('access-level-switch',{attrs:{\"dense\":true,\"disabled\":item.isDeleted},on:{\"change\":function($event){return _vm.updateStatus(item)}},model:{value:(item.Update),callback:function ($$v) {_vm.$set(item, \"Update\", $$v)},expression:\"item.Update\"}})]}},{key:\"item.Suppress\",fn:function({item}){return [_c('v-tooltip',{attrs:{\"disabled\":_vm.hasAdvancedPermissions,\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('access-level-switch',{attrs:{\"dense\":true,\"disabled\":item.isDeleted || !_vm.hasAdvancedPermissions},on:{\"change\":function($event){return _vm.updateStatus(item)}},model:{value:(item.Suppress),callback:function ($$v) {_vm.$set(item, \"Suppress\", $$v)},expression:\"item.Suppress\"}})],1)]}}],null,true)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelSharing_NoAccessToAdvancedMode'))+\"\\n \")])]}},{key:\"item.Assign\",fn:function({item}){return [_c('v-tooltip',{attrs:{\"disabled\":_vm.hasAdvancedPermissions,\"top\":\"\",\"open-delay\":\"500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('access-level-switch',{attrs:{\"dense\":true,\"disabled\":item.isDeleted || !_vm.hasAdvancedPermissions},on:{\"change\":function($event){return _vm.updateStatus(item)}},model:{value:(item.Assign),callback:function ($$v) {_vm.$set(item, \"Assign\", $$v)},expression:\"item.Assign\"}})],1)]}}],null,true)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelSharing_NoAccessToAdvancedMode'))+\"\\n \")])]}},{key:\"item.resendInvite\",fn:function({item}){return [_c('v-tooltip',{attrs:{\"top\":\"\",\"open-delay\":\"1500\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"icon\":\"\",\"disabled\":!_vm.getCanResendInvite(item)},on:{\"click\":function($event){return _vm.resendInvite(item)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-paper-plane-top\")])],1)],1)]}}],null,true)},[_vm._v(\"\\n \"+_vm._s(_vm.getResendInviteTooltip(item))+\"\\n \")])]}},{key:\"item.removeCol\",fn:function({item}){return [_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeAccess(item)}}},[(item.isDeleted)?_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash-undo\")]):_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")])],1)]}},{key:\"footer\",fn:function(){return [_c('v-divider'),_vm._v(\" \"),_c('v-row',{ref:\"listaccessesFooter\",staticClass:\"mt-2\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pl-2\"},[(_vm.currentOrganization)?_c('security-principal-dropdown',{ref:\"guestsDropdown\",staticClass:\"new-guest-dropdown\",attrs:{\"id\":\"guestsDropdown\",\"organization\":_vm.currentOrganization,\"memberCreationEnabled\":true,\"includeTeams\":true,\"showMyOrganization\":true,\"multiple\":false,\"dropdownIcon\":\"fal fa-plus\",\"filterExistingPrincipals\":_vm.currentSecurityPrincipals},on:{\"close\":_vm.onGuestSelected},model:{value:(_vm.selectedGuest),callback:function ($$v) {_vm.selectedGuest=$$v},expression:\"selectedGuest\"}}):_vm._e()],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),(_vm.advancedMode)?_c('v-col',{staticClass:\"accesses-legend mr-4\"},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"far fa-circle\")]),_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.$t('SidePanelSharing_NoPermission')))]),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-1 circle-half--horizontal\",attrs:{\"small\":\"\"}},[_vm._v(\"far fa-circle-half-stroke\")]),_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.$t('SidePanelSharing_OwnedOnly')))]),_vm._v(\" \"),_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-circle\")]),_c('span',[_vm._v(_vm._s(_vm.$t('SidePanelSharing_All')))])],1):_vm._e()],1)]},proxy:true}],null,false,1596650132)})],1):_c('div',[_c('v-card-title',{staticClass:\"empty-state empty-state--title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelSharing_EmptyStateTitle'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-subtitle',{staticClass:\"empty-state empty-state--subtitle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelSharing_EmptyStateSubtitle'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/sharing_empty_state.svg\"),\"height\":\"150\",\"aspect-ratio\":\"1\",\"contain\":\"\"}})],1),_vm._v(\" \"),_c('v-card-text',{staticClass:\"empty-state empty-state--dropdown\"},[(_vm.currentOrganization)?_c('security-principal-dropdown',{ref:\"guestsDropdown\",attrs:{\"id\":\"guestsDropdown\",\"organization\":_vm.currentOrganization,\"memberCreationEnabled\":true,\"includeTeams\":true,\"showMyOrganization\":true,\"multiple\":false,\"filterExistingPrincipals\":_vm.currentSecurityPrincipals,\"dropdownIcon\":\"fal fa-plus\"},on:{\"close\":_vm.onGuestSelected},model:{value:(_vm.selectedGuest),callback:function ($$v) {_vm.selectedGuest=$$v},expression:\"selectedGuest\"}}):_vm._e()],1)],1),_vm._v(\" \"),_vm._v(\" \"),(_vm.mustShowRecaptcha)?_c('recaptcha'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{on:{\"click\":_vm.toggleLevel}},[(_vm.noneLevelSelected)?_c('v-btn',{staticClass:\"ma-0 pa-0\",attrs:{\"disabled\":_vm.disabled,\"color\":_vm.noneColor,\"small\":_vm.dense,\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":_vm.noneColor,\"small\":_vm.dense}},[_vm._v(\"far fa-circle\")])],1):_vm._e(),_vm._v(\" \"),(_vm.ownedLevelSelected)?_c('v-btn',{staticClass:\"ma-0 pa-0\",attrs:{\"disabled\":_vm.disabled,\"color\":_vm.ownedColor,\"small\":_vm.dense,\"icon\":\"\"}},[_c('v-icon',{staticClass:\"circle-half--horizontal\",attrs:{\"color\":_vm.ownedColor,\"small\":_vm.dense}},[_vm._v(\"far fa-circle-half-stroke\")])],1):_vm._e(),_vm._v(\" \"),(_vm.allLevelSelected)?_c('v-btn',{staticClass:\"ma-0 pa-0\",attrs:{\"disabled\":_vm.disabled,\"color\":_vm.allColor,\"small\":_vm.dense,\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":_vm.allColor,\"small\":_vm.dense}},[_vm._v(\"fa-circle\")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { AccessLevel } from '@/models/RowShare';\r\nimport {Component, Vue, Prop, Model, Provide, ModelSync} from 'vue-property-decorator';\r\n\r\n@Component({name: 'AccessLevelSwitch'})\r\nexport default class AccessLevelSwitch extends Vue {\r\n @Prop({default: \"primary\"}) noneColor!: string;\r\n @Prop({default: \"primary\"}) ownedColor!: string;\r\n @Prop({default: \"primary\"}) allColor!: string;\r\n @Prop() dense!: boolean;\r\n @Prop({default: false}) twoStateMode!: boolean;\r\n @Prop({default: false}) disabled!: boolean;\r\n @ModelSync('value', 'change') selectedValue!: AccessLevel | boolean;\r\n\r\n get noneLevelSelected(): boolean {\r\n if(this.twoStateMode) {\r\n return this.selectedValue === false;\r\n }\r\n return this.selectedValue === AccessLevel.none;\r\n }\r\n\r\n get ownedLevelSelected(): boolean {\r\n if(this.twoStateMode) {\r\n return false;\r\n }\r\n return this.selectedValue === AccessLevel.ownedOnly;\r\n }\r\n\r\n get allLevelSelected(): boolean {\r\n if(this.twoStateMode) {\r\n return this.selectedValue === true;\r\n }\r\n return this.selectedValue === AccessLevel.all;\r\n }\r\n\r\n toggleLevel() {\r\n if(this.disabled) {\r\n return;\r\n }\r\n if(this.twoStateMode) {\r\n this.selectedValue = !this.selectedValue;\r\n }\r\n else {\r\n switch(this.selectedValue) {\r\n case AccessLevel.none:\r\n this.selectedValue = AccessLevel.ownedOnly;\r\n break;\r\n case AccessLevel.ownedOnly:\r\n this.selectedValue = AccessLevel.all;\r\n break;\r\n case AccessLevel.all:\r\n this.selectedValue = AccessLevel.none;\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { AccessLevel, ListAccess } from \"@/models/RowShare\";\r\n\r\nexport default class ListAccessVM extends ListAccess {\r\n status: ListAccessVMStatus = ListAccessVMStatus.Unchanged;\r\n \r\n constructor(access: ListAccess) {\r\n super();\r\n Object.assign(this, access);\r\n }\r\n\r\n public get isNew(): boolean {\r\n return this.status === ListAccessVMStatus.New || this.status === ListAccessVMStatus.NewMember;\r\n }\r\n\r\n public get isModified(): boolean {\r\n return this.status === ListAccessVMStatus.Modified;\r\n }\r\n\r\n public get isDeleted(): boolean {\r\n return this.status === ListAccessVMStatus.Deleted;\r\n }\r\n\r\n public get isValid(): boolean {\r\n if(!this.isAdvancedAccess) {\r\n return true;\r\n }\r\n\r\n if((this.Create && this.Read == AccessLevel.none) || this.Update > this.Read || this.Suppress > this.Read || this.Assign > this.Read) {\r\n return false;\r\n }\r\n\r\n if(this.Create) {\r\n if(this.Update == AccessLevel.none) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\nexport enum ListAccessVMStatus {\r\n Unchanged,\r\n Modified,\r\n New,\r\n Deleted,\r\n Invalid,\r\n NewMember\r\n}","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AccessLevelSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./AccessLevelSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AccessLevelSwitch.vue?vue&type=template&id=44ba9f9d&scoped=true&\"\nimport script from \"./AccessLevelSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./AccessLevelSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AccessLevelSwitch.vue?vue&type=style&index=0&id=44ba9f9d&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 \"44ba9f9d\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport PageLoadSpinner from '@/views/layouts/LayoutParts/PageLoadSpinner.vue';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { AccessLevel, ListAccess, Event, List, Organization, SecurityPrincipal, showSidePanelSharingEventParams, GlobalNotificationEventParams, NotificationType, NonExistentMember, Owner, OwnerType, ListAccessesToSave, ConfirmationRequiredEventParams } from '@/models/RowShare';\r\nimport SecurityPrincipalDropdown from \"@/views/components/SecurityPrincipalDropdown.vue\";\r\nimport { RecaptchaActions } from '@/views/components/Recaptcha.vue';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport Recaptcha from '@/views/components/Recaptcha.vue';\r\nimport * as Api from '@/api/Api';\r\nimport Bigram from '@/views/components/Bigram.vue';\r\nimport { RowShareException } from '@/api/ApiUtils';\r\nimport { DataTableHeader } from 'vuetify';\r\nimport AccessLevelSwitch from '@/views/components/AccessLevelSwitch.vue';\r\nimport ListAccessVM, { ListAccessVMStatus } from '@/viewModels/Table/ListAccessVM';\r\n\r\n@Component({name: 'SidePanelSharing', components: { PageLoadSpinner, Recaptcha, SecurityPrincipalDropdown, Bigram, AccessLevelSwitch } })\r\nexport default class SidePanelSharing extends Vue {\r\n showMe: boolean = false;\r\n listId: string = \"\";\r\n width: string = \"0px\";\r\n selectedGuest: SecurityPrincipal | string = \"\";\r\n sendInvitationEmails: boolean = false;\r\n currentOrganization: Organization | null = null;\r\n currentList: List | null = null;\r\n recaptchaToken: string |null = null;\r\n recaptchaTokenIsV3:boolean = true;\r\n processing: boolean = false;\r\n newMemberCount: number = 0;\r\n currentGuestSearch: string = \"\";\r\n canCreateTagForCurrentSearch = false;\r\n isNoUserOrGroupErrorVisible = false;\r\n isMaxMemberCountErrorVisible = false;\r\n selectedSimpleAccessLevel: AccessLevel = AccessLevel.none;\r\n currentListAccesses: ListAccessVM[] = [];\r\n originalListAccesses: ListAccessVM[] = [];\r\n loadingAccesses: boolean = false;\r\n advancedMode: boolean = false;\r\n listAccessesHeight: number = 0;\r\n accessesListHeaders: DataTableHeader[] = [];\r\n addGuestMode: boolean = false;\r\n\r\n created() {\r\n EventBus.$on(Event.SHOW_SIDEPANEL_SHARING, (event: showSidePanelSharingEventParams) => this.onShowSidePanelSharing(event));\r\n window.addEventListener('resize', this.refreshListAccessesHeight);\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([Event.RECAPTCHA_SUCCEEDED,\r\n Event.RECAPTCHA_FAILED,\r\n Event.RECAPTCHA_CANCELEDV2,\r\n Event.SHOW_SIDEPANEL_SHARING]);\r\n window.removeEventListener('resize', this.refreshListAccessesHeight);\r\n }\r\n\r\n async onShowSidePanelSharing(event: showSidePanelSharingEventParams) {\r\n EventBus.$on(Event.RECAPTCHA_SUCCEEDED,this.onRecaptchaSucceeded);\r\n EventBus.$on([Event.RECAPTCHA_FAILED,Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n this.listId = event.listId;\r\n this.currentList = await Api.List.load(this.listId);\r\n if(this.currentList != null) {\r\n this.currentOrganization = await Api.Organization.load(this.currentList.OrganizationId);\r\n }\r\n if((event.inviteParams?.selectedGuests?.length ?? 0) > 0) {\r\n this.selectedGuest = event.inviteParams.selectedGuests[0];\r\n }\r\n this.advancedMode = event.advancedMode;\r\n this.addGuestMode = event.addGuest;\r\n this.refreshListAccesses();\r\n this.refreshListAccessesHeight();\r\n this.refreshColumns();\r\n this.width = \"60%\";\r\n\r\n setTimeout(() => {\r\n this.showMe = true;\r\n }, 0);\r\n\r\n if((window).Intercom) {\r\n (window).Intercom('update', { 'hide_default_launcher': true});\r\n }\r\n }\r\n\r\n onSidePanelStatusChanged() {\r\n if(this.addGuestMode && this.showMe) {\r\n setTimeout(() => {\r\n ((this.$refs.guestsDropdown)).activate();\r\n }, 0);\r\n }\r\n }\r\n\r\n @Watch('advancedMode')\r\n refreshColumns() {\r\n this.accessesListHeaders = [];\r\n this.accessesListHeaders.push({text: '', align: 'start', value: 'guestName', width: '40%'});\r\n if(this.advancedMode){\r\n this.accessesListHeaders.push({text: this.$i18n.t('SidepanelSharing_Read').toString(), align: 'center', value: 'Read', width: '10%' });\r\n if(this.hasAdvancedPermissions) {\r\n this.accessesListHeaders.push({text: this.$i18n.t('SidepanelSharing_Create').toString(), align: 'center', value: 'Create', width: '10%'});\r\n }\r\n this.accessesListHeaders.push({text: this.$i18n.t('SidepanelSharing_Update').toString(), align: 'center', value: 'Update', width: '10%'});\r\n this.accessesListHeaders.push({text: this.$i18n.t('SidepanelSharing_Suppress').toString(), align: 'center', value: 'Suppress', width: '10%'});\r\n this.accessesListHeaders.push({text: this.$i18n.t('SidepanelSharing_Assign').toString(), align: 'center', value: 'Assign', width: '10%'});\r\n }\r\n else {\r\n this.accessesListHeaders.push({text: '', align: 'center', value: 'simpleAccessLevel', sortable: false, width: '50%'});\r\n }\r\n this.accessesListHeaders.push({text: '', align: 'center', value: 'resendInvite', sortable: false, width: '5%'})\r\n this.accessesListHeaders.push({text: '', align: 'end', value: 'removeCol', sortable: false, width: '5%'});\r\n }\r\n\r\n refreshListAccesses() {\r\n this.loadingAccesses = true;\r\n Api.ListAccess.loadByList(this.listId)\r\n .then(accesses => {\r\n if(accesses) {\r\n accesses.sort((a: ListAccess, b: ListAccess) => {\r\n if(a.IsMyOrganization) {\r\n return -1;\r\n }\r\n if(b.IsMyOrganization) {\r\n return 1;\r\n }\r\n let vala = a.guestName.toLowerCase();\r\n let valb = b.guestName.toLowerCase();\r\n if(vala < valb) {\r\n return -1;\r\n }\r\n else if(vala > valb) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n this.currentListAccesses = accesses.map(acc => new ListAccessVM(acc));\r\n this.originalListAccesses = accesses.map(acc => new ListAccessVM(acc));\r\n }\r\n })\r\n .finally(() => {\r\n this.loadingAccesses = false;\r\n if(this.selectedGuest) {\r\n this.onGuestSelected();\r\n }\r\n });\r\n }\r\n\r\n onCancel() {\r\n if(this.hasModifiedAccess) {\r\n EventBus.$emit(Event.CONFIRMATION_REQUIRED, {\r\n description1: this.$i18n.t('SidePanelSharing_ConfirmClosePanel').toString(),\r\n actionButtonText: this.$i18n.t('SidePanelSharing_ConfirmCancellation').toString(),\r\n actionButtonColor: \"primary\",\r\n actionButtonIcon: \"\",\r\n onConfirmation: async () => {this.closePanel();},\r\n cancelButtonText: this.$i18n.t('Common_Cancel').toString()\r\n });\r\n }\r\n else {\r\n this.closePanel();\r\n }\r\n }\r\n\r\n closePanel() {\r\n this.listId = \"\";\r\n this.showMe = false;\r\n this.width = \"0px\";\r\n this.currentList = null;\r\n this.currentOrganization = null;\r\n this.advancedMode = false;\r\n this.currentListAccesses = [];\r\n this.sendInvitationEmails = false;\r\n this.selectedGuest = \"\";\r\n if((window).Intercom) {\r\n (window).Intercom('update', { 'hide_default_launcher': false});\r\n }\r\n EventBus.$off(Event.RECAPTCHA_SUCCEEDED,this.onRecaptchaSucceeded);\r\n EventBus.$off([Event.RECAPTCHA_FAILED,Event.RECAPTCHA_CANCELEDV2], this.onRecaptchaFailedOrCanceled);\r\n }\r\n\r\n onClickOutside() {\r\n if(this.showMe) {\r\n this.onCancel();\r\n }\r\n }\r\n\r\n getMyOrganizationIconPath(access: ListAccess) {\r\n if(!access || !access.IsMyOrganization) {\r\n return \"\";\r\n }\r\n let path = access?.Guest?.IconPath\r\n if(!path) {\r\n return \"\";\r\n }\r\n if(!path.startsWith(\"/\")) {\r\n path = \"/\" + path + '?_ssb_img=S;w:40;h:40';\r\n }\r\n else {\r\n path = null;\r\n }\r\n return path;\r\n }\r\n\r\n retryFallbackRecaptcha(){\r\n this.recaptchaToken = \"\";\r\n EventBus.$emit(Event.RECAPTCHA_SHOWV2);\r\n }\r\n\r\n triggerRecaptcha() {\r\n this.recaptchaToken = \"\";\r\n EventBus.$emit(Event.RECAPTCHA_SHOW, RecaptchaActions.ShareMembers);\r\n }\r\n\r\n onRecaptchaSucceeded(successEvent: any){\r\n if(!this.showMe) {\r\n return;\r\n }\r\n this.recaptchaToken = successEvent.token;\r\n this.recaptchaTokenIsV3 = successEvent.isV3;\r\n this.saveAccesses();\r\n }\r\n\r\n onRecaptchaFailedOrCanceled(reason: string = \"\"){\r\n if(!this.showMe) {\r\n return;\r\n }\r\n this.recaptchaToken = \"\";\r\n this.recaptchaTokenIsV3 = true;\r\n this.processing = false;\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 3000,\r\n type: NotificationType.error,\r\n message: (this.$i18n.t('Recaptcha_Invalid').toString()) + reason\r\n });\r\n }\r\n\r\n @Watch('currentListAccesses')\r\n refreshListAccessesHeight() {\r\n let listaccessesHeader = this.$refs.listaccessesHeader;\r\n let listaccessesFooter = this.$refs.listaccessesFooter;\r\n let sidepanelHeader = this.$refs.sidepanelHeader;\r\n let sidepanelFooter = this.$refs.sidePanelFooter;\r\n if(!listaccessesFooter || !listaccessesHeader || !sidepanelHeader || !sidepanelFooter) {\r\n return;\r\n }\r\n let maxHeight = window.innerHeight - (listaccessesFooter.getBoundingClientRect().height +\r\n listaccessesHeader.getBoundingClientRect().height +\r\n sidepanelHeader.getBoundingClientRect().height +\r\n sidepanelFooter.getBoundingClientRect().height + 20);// 284;\r\n let computedHeight = (this.currentListAccesses.length * 32) + 32;\r\n this.listAccessesHeight = Math.min(maxHeight, computedHeight);\r\n }\r\n\r\n shouldClosePanel(event: any): boolean {\r\n if(!event?.target?.classList) {\r\n return false;\r\n }\r\n return event.target.classList.contains('v-overlay__scrim');\r\n }\r\n\r\n onGuestSelected() {\r\n if(!this.selectedGuest) {\r\n return;\r\n }\r\n\r\n var newAccesss: ListAccessVM;\r\n let lastAccessCreated = this.currentListAccesses.length > 0 ? this.currentListAccesses[this.currentListAccesses.length-1]\r\n : ListAccess.getNewDefault(this.listId);\r\n\r\n\r\n if(this.selectedGuest instanceof SecurityPrincipal) {\r\n newAccesss = new ListAccessVM(ListAccess.getNew(this.currentListAccesses, this.selectedGuest, this.listId,\r\n lastAccessCreated.Create, lastAccessCreated.Read, lastAccessCreated.Update,\r\n lastAccessCreated.Suppress, lastAccessCreated.Assign));\r\n newAccesss.Guest = {\r\n BackgroundColorIndex: this.selectedGuest.BackgroundColorIndex,\r\n Bigram: this.selectedGuest.Bigram,\r\n Email: this.selectedGuest.MemberEmail,\r\n IconPath: this.selectedGuest.IconPath,\r\n Id: this.selectedGuest.id,\r\n Type: this.selectedGuest.ownerType,\r\n DisplayName: this.selectedGuestName\r\n }\r\n newAccesss.status = ListAccessVMStatus.New;\r\n }\r\n else {\r\n newAccesss = new ListAccessVM(new ListAccess());\r\n newAccesss.MemberEmail = this.selectedGuest;\r\n newAccesss.MemberOrganizationId = this.currentOrganizationId;\r\n newAccesss.ListId = lastAccessCreated.ListId;\r\n newAccesss.Create = lastAccessCreated.Create;\r\n newAccesss.Read = lastAccessCreated.Read;\r\n newAccesss.Update = lastAccessCreated.Update;\r\n newAccesss.Suppress = lastAccessCreated.Suppress;\r\n newAccesss.Assign = lastAccessCreated.Assign;\r\n newAccesss.Guest = {\r\n DisplayName: this.selectedGuest,\r\n Email: this.selectedGuest,\r\n Type: OwnerType.Member\r\n }\r\n newAccesss.status = ListAccessVMStatus.NewMember;\r\n }\r\n this.currentListAccesses.push(newAccesss);\r\n this.$nextTick(() => {\r\n this.selectedGuest = \"\";\r\n (this.$refs.guestsDropdown)?.clearSelection();\r\n this.refreshListAccessesHeight();\r\n }, 0);\r\n }\r\n\r\n getAccessClass(access: ListAccessVM) {\r\n if(!access.isValid) {\r\n return \"access-invalid\";\r\n }\r\n switch(access.status) {\r\n case ListAccessVMStatus.Deleted:\r\n return \"access-deleted\";\r\n case ListAccessVMStatus.Invalid:\r\n return \"access-invalid\";\r\n case ListAccessVMStatus.Modified:\r\n return \"access-modified\";\r\n case ListAccessVMStatus.New:\r\n return \"access-new\";\r\n case ListAccessVMStatus.NewMember:\r\n return \"access-new-member\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n updateStatus(access: ListAccessVM) {\r\n if(!this.hasAdvancedPermissions) {\r\n access.Suppress = access.Update;\r\n access.Assign = access.Update;\r\n access.Create = access.Update > 0;\r\n }\r\n if(access.isNew || access.isDeleted) {\r\n return;\r\n }\r\n this.setStatus(access);\r\n }\r\n\r\n setStatus(access: ListAccessVM) {\r\n if(!access.isValid) {\r\n access.status = ListAccessVMStatus.Invalid;\r\n return;\r\n }\r\n let originalAccess = this.originalListAccesses.find((acc) => acc.Id == access.Id);\r\n if(originalAccess) {\r\n access.status = (originalAccess.Create == access.Create && originalAccess.Read == access.Read && originalAccess.Update == access.Update\r\n && originalAccess.Suppress == access.Suppress && originalAccess.Assign == access.Assign)\r\n ? ListAccessVMStatus.Unchanged\r\n : ListAccessVMStatus.Modified;\r\n }\r\n }\r\n\r\n removeAccess(access: ListAccessVM) {\r\n if(access.isNew) {\r\n let accessIndex = this.currentListAccesses.findIndex((acc) => acc == access);\r\n if(accessIndex > -1) {\r\n this.currentListAccesses.splice(accessIndex, 1);\r\n }\r\n }\r\n if(!access.isDeleted) {\r\n access.status = ListAccessVMStatus.Deleted;\r\n }\r\n else {\r\n this.setStatus(access);\r\n }\r\n }\r\n\r\n resendInvite(access: ListAccessVM) {\r\n if(access) {\r\n Api.ListAccess.resendInvitation(access.Id)\r\n .then(result => {\r\n if(result) {\r\n let msg = \"\";\r\n let msgType: NotificationType\r\n if(result.IsValid) {\r\n msg = this.$i18n.t('SidePanelSharing_ResendInvitation_Success').toString();\r\n msgType = NotificationType.success;\r\n }\r\n else {\r\n\r\n msg = this.$i18n.t(result?.Errors[0].ExceptionCode.toString() ?? \"\").toString();\r\n msgType = NotificationType.error;\r\n }\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, {\r\n message: msg,\r\n autoHide: true,\r\n type: msgType,\r\n autoHideAfterMs: result.IsValid ? 2000 : 3000,\r\n duplicateId: 'ResendInvite'\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n onSaveClick() {\r\n if(this.mustShowRecaptcha) {\r\n this.triggerRecaptcha();\r\n }\r\n else {\r\n this.saveAccesses();\r\n }\r\n }\r\n\r\n saveAccesses() {\r\n let accessesToSave = new ListAccessesToSave();\r\n this.processing = true;\r\n accessesToSave.listId = this.listId;\r\n accessesToSave.organizationId = this.currentOrganizationId;\r\n accessesToSave.sendNotification = this.sendInvitationEmails;\r\n accessesToSave.recaptchaToken = this.recaptchaToken;\r\n accessesToSave.recaptchaTokenIsV3 = this.recaptchaTokenIsV3;\r\n this.currentListAccesses.forEach((access) => {\r\n switch(access.status) {\r\n case ListAccessVMStatus.NewMember:\r\n accessesToSave.newAccessesForNewMembers.push(NonExistentMember.getNew(access.MemberEmail, access.Create, access.Read, access.Update,\r\n access.Suppress, access.Assign));\r\n break;\r\n case ListAccessVMStatus.New:\r\n accessesToSave.newAccesses.push(access);\r\n break;\r\n case ListAccessVMStatus.Modified:\r\n accessesToSave.updatedAccesses.push(access);\r\n break;\r\n case ListAccessVMStatus.Deleted:\r\n accessesToSave.deletedAccesses.push(access);\r\n break;\r\n }\r\n });\r\n Api.ListAccess.saveMultiple(accessesToSave)\r\n .then((result) => {\r\n if(result?.IsValid && result?.Value) {\r\n this.refreshListAccesses();\r\n this.refreshListAccessesHeight();\r\n EventBus.$emit(Event.LISTACCESSES_CHANGED);\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED,\r\n {\r\n message: this.$i18n.t('SidePanelSharing_SaveSuccess').toString(),\r\n type: NotificationType.success,\r\n autoHide: true,\r\n autoHideAfterMs: 3000\r\n });\r\n }\r\n else {\r\n if((result?.Errors?.length ?? 0) > 0) {\r\n var error = result?.Errors[0];\r\n var errorMessage = \"\";\r\n if(error?.ExceptionCode == 96 && this.mustShowRecaptcha) {\r\n // Recaptcha token is not valid\r\n this.retryFallbackRecaptcha();\r\n return;\r\n }\r\n else if (error?.ExceptionCode == 62) {\r\n // MaximumMemberExceededForOrganization\r\n errorMessage = this.$i18n.t('SidePanelSharing_MaxMemberExceeded').toString();\r\n }\r\n else {\r\n errorMessage = this.$i18n.t(error?.ExceptionCode.toString()?? \"\").toString()\r\n }\r\n\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED,\r\n {\r\n message: errorMessage,\r\n title: this.$i18n.t('SidePanelSharing_SaveError').toString(),\r\n type: NotificationType.error,\r\n autoHide: true,\r\n autoHideAfterMs: 10000\r\n });\r\n }\r\n }\r\n })\r\n .catch((exc: any) => {\r\n let rsExc = exc as RowShareException;\r\n let exceptionMsg = \"\";\r\n if(rsExc) {\r\n if (rsExc.code == 96 && this.mustShowRecaptcha) {\r\n // Recaptcha token not valid\r\n this.retryFallbackRecaptcha();\r\n return;\r\n }\r\n if (rsExc.code == 62) {\r\n this.isMaxMemberCountErrorVisible = true;\r\n return;\r\n }\r\n exceptionMsg = rsExc.message;\r\n }\r\n else {\r\n exceptionMsg = exc.toString();\r\n }\r\n EventBus.$emit(Event.GLOBAL_NOTIFICATION_RAISED, { message: exceptionMsg,\r\n type: NotificationType.error,autoHide: true, autoHideAfterMs: 10000});\r\n })\r\n .finally(() => this.processing = false);\r\n }\r\n\r\n getResendInviteTooltip(access: ListAccessVM) {\r\n if(this.getCanResendInvite(access)) {\r\n return this.$i18n.t('SidePanelSharing_ResendInviteTooltip').toString();\r\n }\r\n\r\n return this.$i18n.t('SidePanelSharing_CannotResendInviteTooltip').toString();\r\n }\r\n\r\n getCanResendInvite(access: ListAccessVM) {\r\n return access.status === ListAccessVMStatus.Unchanged;\r\n }\r\n\r\n get selectedGuestName(): string {\r\n if(!this.selectedGuest) {\r\n return \"\";\r\n }\r\n if(this.selectedGuest instanceof SecurityPrincipal) {\r\n switch (this.selectedGuest.ownerType) {\r\n case OwnerType.Group:\r\n return this.selectedGuest.GroupName;\r\n case OwnerType.MyOrganization:\r\n return this.$i18n.t('ListAccess_MyOrganization').toString();\r\n case OwnerType.Team:\r\n return this.selectedGuest.MemberName ?? this.selectedGuest.MemberEmail;\r\n default:\r\n return this.selectedGuest.displayName;\r\n }\r\n }\r\n return this.selectedGuest;\r\n }\r\n\r\n get isNotOnPrem() {\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get mustShowRecaptcha() {\r\n return this.isNotOnPrem\r\n && process.env.NODE_ENV!=\"development\"\r\n && this.canShowRecaptcha\r\n && this.sendInvitationEmails;\r\n }\r\n\r\n get canShowRecaptcha(): boolean {\r\n return this.currentListAccesses.findIndex(acc => acc.status == ListAccessVMStatus.NewMember) > -1;\r\n }\r\n\r\n get hasAdvancedPermissions(): boolean {\r\n return this.currentOrganization?.SubscriptionHasAdvancedPermissions ?? false;\r\n }\r\n\r\n get canGoToCheckOut(): boolean {\r\n return this.currentOrganization?.CanCurrentUserManage ?? false;\r\n }\r\n\r\n get currentUrl(): string {\r\n return this.$route.fullPath;\r\n }\r\n\r\n get currentOrganizationId(): string {\r\n return this.currentOrganization?.Id ?? \"\";\r\n }\r\n\r\n get currentSecurityPrincipals(): SecurityPrincipal[] {\r\n if(!this.currentListAccesses) {\r\n return [];\r\n }\r\n return this.currentListAccesses.map((access) => access.principal);\r\n }\r\n\r\n get upsellTitle(): string {\r\n return this.$i18n.t('UpsellCard_AdvancedPermissionsTitle').toString();\r\n }\r\n\r\n get upsellDescription(): string {\r\n return this.$i18n.t('UpsellCard_AdvancedPermissionsDescription').toString();\r\n }\r\n\r\n get addGuestsButtonText() {\r\n if(this.sendInvitationEmails) {\r\n return this.$i18n.t('InviteDialog_Invite').toString();\r\n }\r\n else {\r\n return this.$i18n.t('InviteDialog_ShareTable').toString();\r\n }\r\n }\r\n\r\n get canSwitchMode(): boolean {\r\n if(this.advancedMode) {\r\n return (this.currentListAccesses.findIndex(access => access.isAdvancedAccess) == -1);\r\n }\r\n return true;\r\n }\r\n\r\n get advancedModeLabel(): string {\r\n return this.$i18n.t('SidePanelSharing_AdvancedMode').toString();\r\n }\r\n\r\n get sendInvitationsLabel(): string {\r\n return this.$i18n.t('InviteDialog_SendButtonDescription').toString();\r\n }\r\n\r\n get accessesChanged(): boolean {\r\n return this.currentListAccesses.findIndex(access => access.status !== ListAccessVMStatus.Unchanged) > -1;\r\n }\r\n\r\n get validationBtnTooltip(): string {\r\n if(this.hasInvalidAccess) {\r\n return this.$i18n.t('SidePanelSharing_CannotValidate_InvalidAccesses').toString();\r\n }\r\n return this.$i18n.t('SidePanelSharing_NoChangeToValidate').toString();\r\n }\r\n\r\n get listShared(): boolean {\r\n return this.currentListAccesses.length > 0;\r\n }\r\n\r\n get addGuestPlaceHolder(): string {\r\n return this.$i18n.t('SidePanelSharing_AddGuest').toString();\r\n }\r\n\r\n get advancedModeSwitchTooltip() {\r\n if(this.advancedMode) {\r\n return this.$i18n.t('SidePanelSharing_SimpleModeImpossible').toString();\r\n }\r\n else if(!this.hasAdvancedPermissions) {\r\n return this.$i18n.t('SidePanelSharing_NoAccessToAdvancedMode').toString();\r\n }\r\n return \"\";\r\n }\r\n\r\n get hasNewGuests(): boolean {\r\n return this.currentListAccesses.findIndex(access => access.isNew) > -1;\r\n }\r\n\r\n get hasInvalidAccess(): boolean {\r\n return this.currentListAccesses.findIndex(access => !access.isValid) > -1;\r\n }\r\n\r\n get canValidateAccesses(): boolean {\r\n return this.accessesChanged && !this.hasInvalidAccess;\r\n }\r\n\r\n get validationBtnTooltipColor(): string {\r\n if(this.hasInvalidAccess) {\r\n return \"error\";\r\n }\r\n return \"\";\r\n }\r\n\r\n get hasModifiedAccess(): boolean {\r\n return this.currentListAccesses.findIndex(acc => acc.status !== ListAccessVMStatus.Unchanged) > -1;\r\n }\r\n}\r\n","import { ColumnAccess, OwnerType, TeamType } from \"@/models/RowShare\";\r\nimport i18n from \"@/modules/Localization\";\r\nexport class ColumnAccessVM extends ColumnAccess {\r\n status: ColumnAccessVMStatus = ColumnAccessVMStatus.Unchanged;\r\n isAdminAccess: boolean;\r\n \r\n constructor(access: ColumnAccess) {\r\n super();\r\n Object.assign(this, access);\r\n this.isAdminAccess = false;\r\n }\r\n\r\n public get isNew(): boolean {\r\n return this.status === ColumnAccessVMStatus.New;\r\n }\r\n\r\n public get isModified(): boolean {\r\n return this.status === ColumnAccessVMStatus.Modified;\r\n }\r\n\r\n public get isDeleted(): boolean {\r\n return this.status === ColumnAccessVMStatus.Deleted;\r\n }\r\n\r\n public get canBeRemoved(): boolean {\r\n return !this.IsMyOrganization && !this.isAdminAccess;\r\n }\r\n\r\n public get guestName(): string {\r\n let guestName = this.Guest?.DisplayName;\r\n if(!guestName) {\r\n return \"\";\r\n }\r\n let result = guestName;\r\n if (this.Guest.Type == OwnerType.Team) {\r\n if(this.TeamGrant == TeamType.Direct) {\r\n result = i18n.t(\"ListAccess_DirectReportsTeamNameFormat\", [guestName]).toString();\r\n }\r\n else if (this.TeamGrant == TeamType.Extended) {\r\n result = i18n.t(\"ListAccess_AllReportsTeamNameFormat\", [guestName]).toString();\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n public get category(): string {\r\n return (this.isAdminAccess || this.IsMyOrganization) ? \"\" : i18n.t('SidePanelColumnPermissions_Specific').toString();\r\n }\r\n}\r\n\r\nexport enum ColumnAccessVMStatus {\r\n Unchanged,\r\n Modified,\r\n New,\r\n Deleted,\r\n Invalid\r\n}","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelSharing.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelSharing.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidePanelSharing.vue?vue&type=template&id=2e9ebbde&scoped=true&\"\nimport script from \"./SidePanelSharing.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidePanelSharing.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SidePanelSharing.vue?vue&type=style&index=0&id=2e9ebbde&prod&lang=css&\"\nimport style1 from \"./SidePanelSharing.vue?vue&type=style&index=1&id=2e9ebbde&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 \"2e9ebbde\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-navigation-drawer',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:({handler: _vm.onClickOutside, closeConditional: _vm.shouldClosePanel}),expression:\"{handler: onClickOutside, closeConditional: shouldClosePanel}\"}],staticClass:\"sidepanel-container\",class:{'sidepanel-container--mobile': _vm.$vuetify.breakpoint.mobile},attrs:{\"stateless\":\"\",\"disable-resize-watcher\":\"\",\"temporary\":\"\",\"absolute\":\"\",\"right\":\"\",\"width\":_vm.width},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('div',{ref:\"sidepanelHeader\"},[_c('v-card-title',{staticClass:\"mb-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelColumnPermissions_Title'))+\" \\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"href\":_vm.$t('SidePanelColumnPermissions_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelColumnPermissions_Description'))+\"\\n \")]),_vm._v(\" \"),_c('v-card-title',{staticClass:\"ma-0 justify-center\"},[_c('column-selector',{attrs:{\"listId\":_vm.currentListId,\"manageChildColumns\":false,\"disableNavigation\":_vm.hasModifiedAccess},on:{\"change\":_vm.onSelectedColumnIdChanged},model:{value:(_vm.selectedColumnId),callback:function ($$v) {_vm.selectedColumnId=$$v},expression:\"selectedColumnId\"}})],1)],1)]},proxy:true},{key:\"append\",fn:function(){return [_c('div',{ref:\"sidePanelFooter\"},[_c('v-divider',{staticClass:\"mb-2\"}),_vm._v(\" \"),_c('v-row',{staticClass:\"mb-2\",attrs:{\"no-gutters\":\"\"}},[_c('v-spacer'),_vm._v(\" \"),_c('v-col',{staticClass:\"action-btn\"},[_c('v-btn',{staticClass:\"mr-3\",attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.onCancel}},[_vm._v(_vm._s(_vm.$t('Common_Cancel')))]),_vm._v(\" \"),_c('v-tooltip',{staticClass:\"d-flex mr-3\",attrs:{\"top\":\"\",\"disabled\":_vm.hasModifiedAccess},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('div',_vm._g({},on),[_c('v-btn',{staticClass:\"mr-3\",attrs:{\"disabled\":!_vm.hasModifiedAccess,\"color\":\"primary\",\"loading\":_vm.processing},on:{\"click\":_vm.onSaveClick}},[_vm._v(_vm._s(_vm.$t('SidePanelPermissions_Validate')))])],1)]}}])},[_vm._v(\" \"),_c('div',{staticClass:\"info-tooltip\"},[_vm._v(_vm._s(_vm.$t('SidePanelPermissions_NoChangeToValidate')))])])],1)],1)],1)]},proxy:true}]),model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_vm._v(\" \"),_c('v-data-table',{attrs:{\"dense\":\"\",\"disable-pagination\":\"\",\"hide-default-header\":\"\",\"hide-default-footer\":\"\",\"disable-sort\":\"\",\"disable-filtering\":\"\",\"fixed-header\":\"\",\"height\":_vm.columnAccessesHeight,\"headers\":_vm.accessesListHeaders,\"items\":_vm.currentColumnAccesses,\"loading\":_vm.loadingAccesses,\"loading-text\":_vm.$t('SidePanelColumnPermissions_LoadingAccesses'),\"item-class\":_vm.getAccessClass,\"group-by\":\"category\"},scopedSlots:_vm._u([{key:\"group.header\",fn:function({group}){return [_c('div',{staticClass:\"ml-2 group-header\"},[_vm._v(\"\\n \"+_vm._s(group)+\"\\n \")])]}},{key:\"item.guestName\",fn:function({item}){return [(item.IsMyOrganization)?_c('div',{staticClass:\"guest-name\"},[_c('v-avatar',{staticClass:\"mr-1\",attrs:{\"size\":\"24\",\"title\":item.guestName}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-users\")])],1),_vm._v(\" \"),_c('span',{attrs:{\"title\":_vm.myOrganizationGuestName}},[_vm._v(_vm._s(_vm.myOrganizationGuestName))])],1):(item.isAdminAccess)?_c('div',{staticClass:\"guest-name\"},[_c('v-avatar',{staticClass:\"mr-1\",attrs:{\"size\":\"24\",\"title\":_vm.adminsGuestName}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-user-crown\")])],1),_vm._v(\" \"),_c('span',{attrs:{\"title\":_vm.adminsGuestName}},[_vm._v(_vm._s(_vm.adminsGuestName))])],1):_c('div',{staticClass:\"guest-name\"},[_c('bigram',{staticClass:\"mr-2\",attrs:{\"dense\":\"\",\"columnAccess\":item}}),_vm._v(\" \"),_c('span',{attrs:{\"title\":item.guestName}},[_vm._v(_vm._s(item.guestName))])],1)]}},{key:\"item.Access\",fn:function({item}){return [_c('v-btn-toggle',{attrs:{\"mandatory\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.updateStatus(item)}},model:{value:(item.Access),callback:function ($$v) {_vm.$set(item, \"Access\", $$v)},expression:\"item.Access\"}},[(!_vm.currentColumn.IsMainColumn)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":item.isDeleted || item.isAdminAccess,\"text\":\"\",\"color\":\"primary\",\"value\":0}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-eye-slash\")]),_vm._v(_vm._s(_vm.$t('ColumnAccessLevel_Hidden')))],1):_vm._e(),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":item.isDeleted || item.isAdminAccess,\"text\":\"\",\"color\":\"primary\",\"value\":1}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-lock-open\")]),_vm._v(_vm._s(_vm.$t('ColumnAccessLevel_ReadOnly')))],1),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":item.isDeleted || item.isAdminAccess,\"text\":\"\",\"color\":\"primary\",\"value\":2}},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":\"primary\"}},[_vm._v(\"fal fa-pencil\")]),_vm._v(_vm._s(_vm.$t('ColumnAccessLevel_RowAccess')))],1)],1)]}},{key:\"item.removeCol\",fn:function({item}){return [(item.canBeRemoved)?_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeAccess(item)}}},[(item.isDeleted)?_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash-undo\")]):_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-trash\")])],1):_vm._e()]}},{key:\"footer\",fn:function(){return [_c('v-divider'),_vm._v(\" \"),(_vm.hasColumnPermissions)?_c('v-row',{ref:\"columnaccessesFooter\",staticClass:\"mt-1\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pl-2\"},[(_vm.currentOrganization)?_c('security-principal-dropdown',{ref:\"guestsDropdown\",staticClass:\"new-guest-dropdown\",attrs:{\"id\":\"guestsDropdown\",\"organization\":_vm.currentOrganization,\"memberCreationEnabled\":false,\"includeTeams\":true,\"showMyOrganization\":false,\"multiple\":false,\"dropdownIcon\":\"fal fa-plus\",\"filterExistingPrincipals\":_vm.currentSecurityPrincipals},on:{\"close\":_vm.onGuestSelected},model:{value:(_vm.selectedGuest),callback:function ($$v) {_vm.selectedGuest=$$v},expression:\"selectedGuest\"}}):_vm._e()],1)],1):_c('div',{ref:\"columnaccessesFooter\",staticClass:\"upsell-card\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"upsell-title mb-3\"},[_c('span',[_vm._v(_vm._s(_vm.upsellTitle))])])],1),_vm._v(\" \"),_c('v-row',{attrs:{\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"mr-4\",attrs:{\"cols\":\"3\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/sharing_empty_state.svg\"),\"height\":\"100\",\"aspect-ratio\":\"1\",\"contain\":\"\"}})],1),_vm._v(\" \"),_c('v-col',[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.upsellDescription)}})])],1),_vm._v(\" \"),(_vm.canGoToCheckOut)?_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"to\":{name: 'SubscriptionCheckOut', params: {organizationId: _vm.currentOrganizationId, returnUrl: _vm.currentUrl}}},on:{\"click\":_vm.onCancel}},[_vm._v(\"\\n \"+_vm._s(_vm.$i18n.t('Common_GoToCheckOut'))+\" \"),_c('v-icon',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-arrow-right\")])],1)],1)],1):_vm._e()],1)],1)],1)]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Watch } from 'vue-property-decorator';\r\nimport * as Models from '@/models/RowShare';\r\nimport { ColumnAccessVM, ColumnAccessVMStatus } from '@/viewModels/Table/ColumnAccessVM';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport * as Api from '@/api/Api';\r\nimport { DataTableHeader } from 'vuetify';\r\nimport SecurityPrincipalDropdown from \"@/views/components/SecurityPrincipalDropdown.vue\";\r\nimport Bigram from '@/views/components/Bigram.vue';\r\nimport ColumnSelector from './ColumnSelector.vue';\r\nimport { RowShareException } from '@/api/ApiUtils';\r\n\r\n@Component({name: 'SidePanelColumnPermissions', components: { SecurityPrincipalDropdown, Bigram, ColumnSelector }})\r\nexport default class SidePanelColumnPermissions extends Vue {\r\n showMe: boolean = false;\r\n columnId: string = \"\";\r\n width: string = \"0px\";\r\n selectedGuest: Models.SecurityPrincipal | null = null;\r\n currentColumnAccesses: ColumnAccessVM[] = [];\r\n originalColumnAccesses: ColumnAccessVM[] = [];\r\n currentColumn: Models.Column | null = null;\r\n currentList: Models.List | null = null;\r\n currentOrganization: Models.Organization | null = null;\r\n loadingAccesses: boolean = false;\r\n columnAccessesHeight: number = 0;\r\n processing: boolean = false;\r\n selectedColumnId: string = \"\";\r\n\r\n\r\n accessesListHeaders: DataTableHeader[] = [];\r\n\r\n created() {\r\n EventBus.$on(Models.Event.SHOW_SIDEPANEL_COLUMN_PERMISSIONS, (params: Models.showSidePanelColumnPermissionsEventParams) => this.onShowSidePanel(params));\r\n window.addEventListener('resize', this.refreshColumnAccessesHeight);\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([Models.Event.SHOW_SIDEPANEL_COLUMN_PERMISSIONS]);\r\n window.removeEventListener('resize', this.refreshColumnAccessesHeight);\r\n }\r\n\r\n async onShowSidePanel(event: Models.showSidePanelColumnPermissionsEventParams) {\r\n this.columnId = event.columnId;\r\n this.width = \"40%\";\r\n this.initializeColumnAccessesHeader();\r\n await this.initPanel();\r\n this.selectedColumnId = this.columnId;\r\n setTimeout(() => {\r\n this.showMe = true;\r\n }, 0);\r\n\r\n if((window).Intercom) {\r\n (window).Intercom('update', { 'hide_default_launcher': true});\r\n }\r\n }\r\n\r\n async initPanel() {\r\n this.currentColumn = await Api.Column.load(this.columnId);\r\n if(this.currentColumn != null) {\r\n this.currentList = await Api.List.load(this.currentColumn.ListId);\r\n }\r\n if(this.currentList != null) {\r\n this.currentOrganization = await Api.Organization.load(this.currentList.OrganizationId);\r\n }\r\n\r\n this.refreshColumnAccesses();\r\n this.refreshColumnAccessesHeight();\r\n }\r\n\r\n initializeColumnAccessesHeader() {\r\n this.accessesListHeaders.push({text: '', align: 'start', value: 'guestName', width: '50%', cellClass: 'cell-guest'});\r\n this.accessesListHeaders.push({text: '', align: 'center', value: 'Access', sortable: false, width: '45%', cellClass: 'cell-access'});\r\n this.accessesListHeaders.push({text: '', align: 'end', value:'removeCol', sortable: false, width: '5%', cellClass: 'cell-removeCol'});\r\n }\r\n\r\n refreshColumnAccesses() {\r\n this.loadingAccesses = true;\r\n this.currentColumnAccesses = [];\r\n this.originalColumnAccesses = [];\r\n Api.ColumnAccess.loadForColumn(this.columnId)\r\n .then(async (result) => {\r\n if(result && result.IsValid) {\r\n let accesses = result.Value;\r\n this.currentColumnAccesses = accesses.filter(acc => !acc.IsMyOrganization).map(acc => new ColumnAccessVM(acc));\r\n this.currentColumnAccesses.sort((a: ColumnAccessVM, b: ColumnAccessVM) => {\r\n if(a.IsMyOrganization) {\r\n return -1;\r\n }\r\n if(b.IsMyOrganization) {\r\n return 1;\r\n }\r\n let vala = a.guestName.toLowerCase();\r\n let valb = b.guestName.toLowerCase();\r\n if(vala < valb) {\r\n return -1;\r\n }\r\n else if(vala > valb) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n // Add MyOrganization access\r\n this.originalColumnAccesses = accesses.filter(acc => !acc.IsMyOrganization).map(acc => new ColumnAccessVM(acc));\r\n var myOrgAccess = accesses.find(acc => acc.IsMyOrganization);\r\n if(!myOrgAccess) {\r\n myOrgAccess = Models.ColumnAccess.getNewDefault(this.columnId)\r\n myOrgAccess.Access = Models.ColumnAccessLevel.RowAccess;\r\n let principals = await Api.SecurityPrincipal.loadForOrganization(this.currentOrganizationId, false);\r\n if(principals && principals.length > 0) {\r\n var orgPrincipal = principals.find(p => p.IsMyOrganization);\r\n if(orgPrincipal) {\r\n myOrgAccess.principal = orgPrincipal;\r\n }\r\n }\r\n myOrgAccess.IsMyOrganization = true;\r\n }\r\n this.currentColumnAccesses.unshift(new ColumnAccessVM(myOrgAccess));\r\n this.originalColumnAccesses.unshift(new ColumnAccessVM(myOrgAccess));\r\n // Add Admin access for information\r\n var adminAccess = Models.ColumnAccess.getNewDefault(this.columnId);\r\n var adminRow = new ColumnAccessVM(adminAccess);\r\n adminRow.Access = Models.ColumnAccessLevel.RowAccess;\r\n adminRow.isAdminAccess = true;\r\n adminRow.status = ColumnAccessVMStatus.Unchanged;\r\n this.currentColumnAccesses.unshift(adminRow);\r\n this.originalColumnAccesses.unshift(adminRow);\r\n }\r\n })\r\n .finally(() => {\r\n this.loadingAccesses = false; \r\n // if(this.selectedGuest) {\r\n // this.onGuestSelected();\r\n // }\r\n });\r\n }\r\n\r\n onCancel() {\r\n if(this.hasModifiedAccess) {\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, {\r\n description1: this.$i18n.t('SidePanelColumnPermissions_ConfirmClosePanel').toString(),\r\n actionButtonText: this.$i18n.t('SidePanelColumnPermissions_ConfirmCancellation').toString(),\r\n actionButtonColor: \"primary\",\r\n actionButtonIcon: \"\",\r\n onConfirmation: async () => {this.closePanel();},\r\n cancelButtonText: this.$i18n.t('Common_Cancel').toString()\r\n });\r\n }\r\n else {\r\n this.closePanel();\r\n }\r\n }\r\n\r\n closePanel() {\r\n this.columnId = \"\";\r\n this.showMe = false;\r\n this.width = \"0px\";\r\n this.currentList = null;\r\n this.currentOrganization = null;\r\n this.currentColumnAccesses = [];\r\n this.originalColumnAccesses = [];\r\n this.accessesListHeaders = [];\r\n this.selectedGuest = null;\r\n this.selectedColumnId = '';\r\n if((window).Intercom) {\r\n (window).Intercom('update', { 'hide_default_launcher': false});\r\n }\r\n }\r\n\r\n onClickOutside() {\r\n if(this.showMe) {\r\n this.onCancel();\r\n }\r\n }\r\n\r\n shouldClosePanel(event: any): boolean {\r\n if(!event?.target?.classList) {\r\n return false;\r\n }\r\n return event.target.classList.contains('v-overlay__scrim');\r\n }\r\n\r\n setStatus(access: ColumnAccessVM) {\r\n let originalAccess = this.originalColumnAccesses.find((acc) => acc.Id == access.Id);\r\n if(originalAccess) {\r\n access.status = originalAccess.Access == access.Access ? ColumnAccessVMStatus.Unchanged : ColumnAccessVMStatus.Modified;\r\n }\r\n }\r\n\r\n updateStatus(access: ColumnAccessVM) {\r\n if(access.isNew || access.isDeleted) {\r\n return;\r\n }\r\n this.setStatus(access);\r\n }\r\n\r\n removeAccess(access: ColumnAccessVM) { \r\n if(access.isNew) {\r\n let accessIndex = this.currentColumnAccesses.findIndex((acc) => acc == access);\r\n if(accessIndex > -1) {\r\n this.currentColumnAccesses.splice(accessIndex, 1);\r\n }\r\n }\r\n if(!access.isDeleted) {\r\n access.status = ColumnAccessVMStatus.Deleted;\r\n }\r\n else {\r\n this.setStatus(access);\r\n }\r\n }\r\n\r\n getAccessClass(access: ColumnAccessVM) {\r\n switch(access.status) {\r\n case ColumnAccessVMStatus.Deleted:\r\n return \"access-deleted\";\r\n case ColumnAccessVMStatus.Modified:\r\n return \"access-modified\";\r\n case ColumnAccessVMStatus.New:\r\n return \"access-new\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n @Watch('currentColumnAccesses')\r\n refreshColumnAccessesHeight() {\r\n let columnaccessesFooter = this.$refs.columnaccessesFooter;\r\n let sidepanelHeader = this.$refs.sidepanelHeader;\r\n let sidepanelFooter = this.$refs.sidePanelFooter;\r\n if(!columnaccessesFooter || !sidepanelHeader || !sidepanelFooter) {\r\n return;\r\n }\r\n let maxHeight = window.innerHeight - (columnaccessesFooter.getBoundingClientRect().height + \r\n sidepanelHeader.getBoundingClientRect().height +\r\n sidepanelFooter.getBoundingClientRect().height)// + 20);// 284;\r\n let computedHeight = (this.currentColumnAccesses.length * 32) + 32;\r\n this.columnAccessesHeight = Math.min(maxHeight, computedHeight);\r\n }\r\n\r\n onGuestSelected() {\r\n if(!this.selectedGuest) {\r\n return;\r\n }\r\n \r\n var newAccesss: ColumnAccessVM;\r\n let lastAccessCreated = this.currentColumnAccesses.length > 0 ? this.currentColumnAccesses[this.currentColumnAccesses.length-1]\r\n : Models.ColumnAccess.getNewDefault(this.columnId);\r\n \r\n newAccesss = new ColumnAccessVM(Models.ColumnAccess.getNew(this.currentColumnAccesses, this.selectedGuest, this.columnId, lastAccessCreated.Access));\r\n newAccesss.Guest = {\r\n BackgroundColorIndex: this.selectedGuest.BackgroundColorIndex,\r\n Bigram: this.selectedGuest.Bigram,\r\n Email: this.selectedGuest.MemberEmail,\r\n IconPath: this.selectedGuest.IconPath,\r\n Id: this.selectedGuest.id,\r\n Type: this.selectedGuest.ownerType,\r\n DisplayName: this.selectedGuestName\r\n }\r\n newAccesss.status = ColumnAccessVMStatus.New;\r\n this.currentColumnAccesses.push(newAccesss);\r\n this.$nextTick(() => {\r\n this.selectedGuest = null;\r\n (this.$refs.guestsDropdown)?.clearSelection();\r\n this.refreshColumnAccessesHeight();\r\n }, 0);\r\n }\r\n\r\n onSaveClick() {\r\n let accessesToSave = new Models.ColumnAccessesToSave();\r\n this.processing = true;\r\n accessesToSave.columnId = this.columnId;\r\n this.currentColumnAccesses.forEach((access) => {\r\n if(access.isAdminAccess) {\r\n return;\r\n }\r\n switch(access.status) {\r\n case ColumnAccessVMStatus.New:\r\n accessesToSave.newAccesses.push(access);\r\n break;\r\n case ColumnAccessVMStatus.Modified:\r\n if(access.IsMyOrganization && access.Access == Models.ColumnAccessLevel.RowAccess) {\r\n accessesToSave.deletedAccesses.push(access);\r\n }\r\n else {\r\n accessesToSave.updatedAccesses.push(access);\r\n }\r\n break;\r\n case ColumnAccessVMStatus.Deleted:\r\n accessesToSave.deletedAccesses.push(access);\r\n break;\r\n }\r\n });\r\n Api.ColumnAccess.saveMultiple(accessesToSave)\r\n .then((result) => {\r\n if(result?.IsValid && result?.Value) {\r\n this.refreshColumnAccesses();\r\n this.refreshColumnAccessesHeight();\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED,\r\n {\r\n message: this.$i18n.t('SidePanelColumnPermissions_SaveSuccess').toString(),\r\n type: Models.NotificationType.success,\r\n autoHide: true,\r\n autoHideAfterMs: 3000\r\n });\r\n EventBus.$emit(Models.Event.COLUMN_PERMISSIONS_CHANGED, this.columnId);\r\n }\r\n else {\r\n if((result?.Errors?.length ?? 0) > 0) {\r\n var error = result?.Errors[0];\r\n var errorMessage = this.$i18n.t(error?.ExceptionCode.toString()?? \"\").toString()\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, \r\n { \r\n message: errorMessage,\r\n title: this.$i18n.t('SidePanelColumnPermissions_SaveError').toString(),\r\n type: Models.NotificationType.error,\r\n autoHide: true,\r\n autoHideAfterMs: 10000\r\n });\r\n }\r\n }\r\n })\r\n .catch((exc: any) => {\r\n let rsExc = exc as RowShareException;\r\n let exceptionMsg = \"\";\r\n if(rsExc) {\r\n exceptionMsg = rsExc.message;\r\n }\r\n else {\r\n exceptionMsg = exc.toString();\r\n }\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, { message: exceptionMsg,\r\n type: Models.NotificationType.error,autoHide: true, autoHideAfterMs: 10000});\r\n })\r\n .finally(() => this.processing = false);\r\n }\r\n\r\n onSelectedColumnIdChanged() {\r\n this.columnId = this.selectedColumnId;\r\n this.initPanel();\r\n }\r\n \r\n get selectedGuestName(): string {\r\n if(!this.selectedGuest) {\r\n return \"\";\r\n }\r\n if(this.selectedGuest instanceof Models.SecurityPrincipal) {\r\n switch (this.selectedGuest.ownerType) {\r\n case Models.OwnerType.Group:\r\n return this.selectedGuest.GroupName;\r\n case Models.OwnerType.MyOrganization:\r\n return this.$i18n.t('ListAccess_MyOrganization').toString();\r\n case Models.OwnerType.Team:\r\n return this.selectedGuest.MemberName ?? this.selectedGuest.MemberEmail;\r\n default:\r\n return this.selectedGuest.displayName;\r\n }\r\n }\r\n return this.selectedGuest;\r\n }\r\n\r\n get hasModifiedAccess(): boolean {\r\n return this.currentColumnAccesses.findIndex(acc => acc.status !== ColumnAccessVMStatus.Unchanged) > -1;\r\n }\r\n\r\n get currentSecurityPrincipals(): Models.SecurityPrincipal[] {\r\n if(!this.currentColumnAccesses) {\r\n return [];\r\n }\r\n return this.currentColumnAccesses.filter(cavm => !cavm.isAdminAccess).map((access) => access.principal);\r\n }\r\n \r\n get currentColumnName(): string {\r\n return this.currentColumn?.DisplayName ?? \"\";\r\n }\r\n\r\n get currentListId(): string {\r\n return this.currentList?.Id ?? \"\";\r\n }\r\n\r\n get adminsGuestName(): string {\r\n return this.$i18n.t('SidePanelColumnPermissions_AdminAccess').toString();\r\n }\r\n\r\n get myOrganizationGuestName(): string {\r\n return this.$i18n.t('SidePanelColumnPermissions_MyOrgAccess').toString();\r\n }\r\n\r\n get currentOrganizationId(): string {\r\n return this.currentOrganization?.Id ?? \"\";\r\n }\r\n\r\n get hasColumnPermissions(): boolean {\r\n return this.currentOrganization?.SubscriptionHasColumnPermissions ?? false;\r\n }\r\n\r\n get canGoToCheckOut(): boolean {\r\n return this.currentOrganization?.CanCurrentUserManage ?? false;\r\n }\r\n\r\n get upsellTitle(): string {\r\n return this.$i18n.t('UpsellCard_ColumnPermissionsTitle').toString();\r\n }\r\n\r\n get upsellDescription(): string {\r\n return this.$i18n.t('UpsellCard_ColumnPermissionsDescription').toString();\r\n }\r\n\r\n get currentUrl(): string {\r\n return this.$route.fullPath;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelColumnPermissions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelColumnPermissions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidePanelColumnPermissions.vue?vue&type=template&id=5ce7833c&scoped=true&\"\nimport script from \"./SidePanelColumnPermissions.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidePanelColumnPermissions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SidePanelColumnPermissions.vue?vue&type=style&index=0&id=5ce7833c&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 \"5ce7833c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-navigation-drawer',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:({handler: _vm.onClickOutside, closeConditional: _vm.shouldClosePanel}),expression:\"{handler: onClickOutside, closeConditional: shouldClosePanel}\"}],staticClass:\"sidepanel-container\",class:{'sidepanel-container--mobile': _vm.$vuetify.breakpoint.mobile},attrs:{\"stateless\":\"\",\"disable-resize-watcher\":\"\",\"temporary\":\"\",\"absolute\":\"\",\"right\":\"\",\"width\":_vm.width},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('div',{ref:\"sidepanelHeader\"},[_c('v-card-title',{staticClass:\"mb-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSettings_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"href\":_vm.$t('SidePanelTableSettings_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(_vm.getLocaleText('SidePanelTableSettings_Description'))?_c('v-card-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelTableSettings_Description'))+\"\\n \")]):_vm._e()],1)]},proxy:true}]),model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_vm._v(\" \"),_c('ValidationObserver',{ref:\"observer\"},[_c('form',[_c('v-card',{staticClass:\"px-6 card-table-settings\",attrs:{\"elevation\":\"0\"}},[_c('v-item-group',{staticClass:\"column-group column-group-first\"},[_c('span',{staticClass:\"column-group-name mb-4\"},[_vm._v(_vm._s(_vm.$t('SidePanelTableSettings_About')))]),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'tableName',\"inputTextName\":_vm.$t('Form_TableName'),\"label\":_vm.$t('TableSettings_TableName'),\"hide-details\":\"auto\",\"inputTextValidationRules\":{required: true}},on:{\"blured\":_vm.updateTableSettings},model:{value:(_vm.currentList.DisplayName),callback:function ($$v) {_vm.$set(_vm.currentList, \"DisplayName\", $$v)},expression:\"currentList.DisplayName\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-middle pt-3\"},[_c('input-text-area',{attrs:{\"inputTextId\":'tableDescription',\"inputTextName\":_vm.$t('TableSettings_TableDescription'),\"label\":_vm.$t('TableSettings_TableDescription')},on:{\"blured\":_vm.updateTableSettings},model:{value:(_vm.currentList.Description),callback:function ($$v) {_vm.$set(_vm.currentList, \"Description\", $$v)},expression:\"currentList.Description\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('div',{staticClass:\"form-view-cell table-option\"},[_c('div',{staticClass:\"form-view-cell-name\"},[_c('span',{staticClass:\"form-view-cell-name-text\"},[_vm._v(_vm._s(_vm.$t('TableSettings_TileImage')))])]),_vm._v(\" \"),_c('v-row',{staticClass:\"px-0 ma-2 align-center\",attrs:{\"no-gutters\":\"\"}},[_c('v-overlay',{staticClass:\"delete-overlay\",attrs:{\"absolute\":\"\",\"opacity\":0.8,\"value\":_vm.removeImageConfirmation}},[_c('v-btn',{staticClass:\"text-none ma-3\",attrs:{\"text\":\"\",\"color\":\"white\",\"ripple\":false},on:{\"click\":_vm.cancelled}},[_vm._v(_vm._s(_vm.$t('Action_Cancel')))]),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none ma-3\",attrs:{\"ripple\":false,\"color\":\"error\"},on:{\"click\":_vm.deleteImage}},[_c('v-icon',{staticClass:\"mr-1\"},[_vm._v(\"fal fa-trash-alt\")]),_vm._v(_vm._s(_vm.$t('Action_ConfirmDelete')))],1)],1),_vm._v(\" \"),(_vm.getIcon())?_c('v-col',{staticClass:\"mr-2\"},[_c('v-img',{attrs:{\"src\":_vm.getIcon(),\"max-width\":\"48\",\"max-height\":\"48\",\"contain\":\"\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-col',[_c('v-btn',{ref:\"openPickerBtn\",staticClass:\"text-none mr-1\",attrs:{\"text\":\"\",\"small\":!_vm.$vuetify.breakpoint.mobile,\"x-small\":_vm.$vuetify.breakpoint.mobile,\"color\":\"primary\"},on:{\"click\":_vm.selectFile}},[_c('input',{ref:\"inputFile\",staticClass:\"pa-0 ma-0 hidden\",attrs:{\"type\":\"file\",\"accept\":\"image/*\",\"hidden\":\"\"},on:{\"change\":_vm.onFileSelected}}),_vm._v(\" \"),(_vm.currentList.IconPath)?_c('span',[_vm._v(_vm._s(_vm.$t('Action_Update')))]):_c('span',[_vm._v(_vm._s(_vm.$t('Action_AddFile')))])])],1),_vm._v(\" \"),_c('v-col',[(_vm.currentList.IconPath)?_c('v-btn',{staticClass:\"mr-1\",attrs:{\"small\":!_vm.$vuetify.breakpoint.mobile,\"x-small\":_vm.$vuetify.breakpoint.mobile,\"text\":\"\",\"color\":\"primary\",\"height\":_vm.$vuetify.breakpoint.mobile ? 24 : 40,\"width\":_vm.$vuetify.breakpoint.mobile ? 24 : 40},on:{\"click\":_vm.onDeleteIconClick}},[_c('v-icon',{staticClass:\"ma-0 pa-0\",attrs:{\"small\":!_vm.$vuetify.breakpoint.mobile,\"x-small\":_vm.$vuetify.breakpoint.mobile,\"color\":\"primary\"}},[_vm._v(\"far fa-trash-alt\")])],1):_vm._e()],1)],1)],1)]),_vm._v(\" \"),_c('v-item-group',{staticClass:\"pt-3 column-group column-group-last\"},[(_vm.canEditCatalogCategory)?_c('v-autocomplete',{attrs:{\"items\":_vm.categories,\"item-text\":\"DisplayName\",\"item-value\":\"Id\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"menu-props\":_vm.defaultProps,\"clearable\":\"\"},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.$t('TableSettings_CatalogCategory')))])]},proxy:true}],null,false,1389623748),model:{value:(_vm.currentList.CategoryId),callback:function ($$v) {_vm.$set(_vm.currentList, \"CategoryId\", $$v)},expression:\"currentList.CategoryId\"}}):_vm._e()],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-first\"},[_c('span',{staticClass:\"column-group-name\"},[_vm._v(_vm._s(_vm.$t('SidepanelTableSettings_DisplayOptions')))]),_vm._v(\" \"),_c('v-switch',{staticClass:\"table-option\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('TableSettings_ShowColumnTotals'),\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([(_vm.getLocaleText('TableSetting_ShowColumnTotals_Description'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2895004030)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSetting_ShowColumnTotals_Description'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentList.ShowTotals),callback:function ($$v) {_vm.$set(_vm.currentList, \"ShowTotals\", $$v)},expression:\"currentList.ShowTotals\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"table-option\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('TableSettings_RowsAutoHeight'),\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([(_vm.getLocaleText('TableSettings_RowsAutoHeight_Description'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSettings_RowsAutoHeight_Description'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentList.RowsAutoHeight),callback:function ($$v) {_vm.$set(_vm.currentList, \"RowsAutoHeight\", $$v)},expression:\"currentList.RowsAutoHeight\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-last mb-2\"},[_c('v-switch',{staticClass:\"table-option\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('TableSettings_RowOwnerInitials'),\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([(_vm.getLocaleText('TableSettings_RowOwnerInitials_Description'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSettings_RowOwnerInitials_Description'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentList.ShowOwnerInformations),callback:function ($$v) {_vm.$set(_vm.currentList, \"ShowOwnerInformations\", $$v)},expression:\"currentList.ShowOwnerInformations\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-first\"},[_c('span',{staticClass:\"column-group-name mb-4\"},[_vm._v(_vm._s(_vm.$t('SidepanelTableSettings_OtherOptions')))]),_vm._v(\" \"),_c('v-autocomplete',{staticClass:\"setting-autocomplete\",attrs:{\"items\":_vm.listOfCultures,\"item-text\":\"DisplayName\",\"item-value\":\"Lcid\",\"outlined\":\"\",\"dense\":\"\",\"menu-props\":_vm.defaultProps},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.$t('TableSettings_Culture')))])]},proxy:true},(_vm.getLocaleText('TableSettings_Culture_Description'))?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSettings_Culture_Description'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentList.Lcid),callback:function ($$v) {_vm.$set(_vm.currentList, \"Lcid\", $$v)},expression:\"currentList.Lcid\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-select',{staticClass:\"setting-autocomplete\",attrs:{\"items\":_vm.columns,\"item-text\":\"DisplayName\",\"item-value\":\"Id\",\"selectValidationRules\":{required: true},\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.$t('TableSettings_MainColumn')))])]},proxy:true},(_vm.getLocaleText('TableSettings_MainColumn_Description'))?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSettings_MainColumn_Description'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentList.RowDescriptorId),callback:function ($$v) {_vm.$set(_vm.currentList, \"RowDescriptorId\", $$v)},expression:\"currentList.RowDescriptorId\"}})],1),_vm._v(\" \"),(_vm.currentList.CanCurrentUserEnableAudit)?_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"table-option\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('TableSettings_EnableAudit'),\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([(_vm.getLocaleText('TableSettings_EnableAudit_Description'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSettings_EnableAudit_Description'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentList.CanCurrentUserExportAudit),callback:function ($$v) {_vm.$set(_vm.currentList, \"CanCurrentUserExportAudit\", $$v)},expression:\"currentList.CanCurrentUserExportAudit\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"table-option\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('TableSettings_ExternalType'),\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([(_vm.getLocaleText('TableSettings_ExternalType_Description'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSettings_ExternalType_Description'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentList.AllowPublic),callback:function ($$v) {_vm.$set(_vm.currentList, \"AllowPublic\", $$v)},expression:\"currentList.AllowPublic\"}})],1),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-last\"},[_c('v-switch',{staticClass:\"table-option\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('TableSettings_OneRowMaxPerUser'),\"inset\":\"\"},on:{\"change\":_vm.updateTableSettings},scopedSlots:_vm._u([(_vm.getLocaleText('TableSettings_OneRowMaxPerUser_Description'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.$t('TableSettings_OneRowMaxPerUser_Description'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentList.OneRowMaximumPerUser),callback:function ($$v) {_vm.$set(_vm.currentList, \"OneRowMaximumPerUser\", $$v)},expression:\"currentList.OneRowMaximumPerUser\"}})],1)],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Vue, Component, Watch} from 'vue-property-decorator';\r\nimport * as Models from '@/models/RowShare';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { ValidationProvider, ValidationObserver } from 'vee-validate';\r\nimport * as API from '@/api/Api';\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport InputTextArea from '@/views/components/FormInputs/InputTextArea.vue';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\n\r\n@Component({name: 'SidePanelTableSettings', components: { ValidationObserver, ValidationProvider, InputText, InputTextArea}})\r\nexport default class SidePanelTableSettings extends FormValidation {\r\n showMe: boolean = false;\r\n width: string = \"0px\";\r\n listId: string = '';\r\n currentList: Models.List = new Models.List();\r\n oldList: Models.List = new Models.List();\r\n currentOrganization: Models.Organization | null = null;\r\n settingsHeight: number = 0;\r\n columns: Models.Column [] = [];\r\n listOfCultures: Models.Culture[] = [];\r\n categories: Models.CatalogCategory[] = [];\r\n iconImage: File | null = null;\r\n removeImageConfirmation: boolean = false;\r\n defaultProps = { maxHeight: 200 };\r\n settingsSaved: boolean = false;\r\n\r\n $refs!: {\r\n observer: InstanceType,\r\n sidepanelHeader: InstanceType,\r\n inputFile: InstanceType,\r\n openPickerBtn: any\r\n };\r\n\r\n created() {\r\n EventBus.$on(Models.Event.SHOW_SIDEPANEL_TABLE_SETTINGS, (params: Models.showSidePanelTableSettingsEventParams) => this.onShowSidePanel(params));\r\n window.addEventListener('resize', this.refreshSettingsHeight);\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([Models.Event.SHOW_SIDEPANEL_TABLE_SETTINGS]);\r\n window.removeEventListener('resize', this.refreshSettingsHeight);\r\n }\r\n\r\n async onShowSidePanel(event: Models.showSidePanelTableSettingsEventParams) {\r\n this.listId = event.listId;\r\n this.width = \"40%\";\r\n this.loadList();\r\n this.refreshSettingsHeight();\r\n setTimeout(() => {\r\n this.showMe = true;\r\n }, 0);\r\n\r\n if((window).Intercom) {\r\n (window).Intercom('update', { 'hide_default_launcher': true});\r\n }\r\n }\r\n\r\n loadList() {\r\n API.List.load(this.listId,{cache: false}).then(listResult => {\r\n if(listResult){\r\n this.currentList = listResult;\r\n this.oldList = Object.assign({}, listResult);\r\n if(this.currentList){\r\n API.Column.loadForList(this.listId).then(listColumns=>{\r\n if(listColumns){\r\n // Option by default is added and after that all the table columns\r\n let firstColumn = new Models.Column();\r\n firstColumn.Id = \"00000000000000000000000000000000\";\r\n firstColumn.DisplayName = this.$t(\"TableSettings_MainColumn_Option\").toString();\r\n this.columns = listColumns.filter(c => !c.HasHiddenPermissions);\r\n this.columns.unshift(firstColumn);\r\n }\r\n });\r\n API.Culture.loadCultures().then((listOfCultures:any)=>{\r\n this.listOfCultures = listOfCultures;\r\n });\r\n API.Category.loadAll()\r\n .then((categories) => {\r\n if(categories) {\r\n this.categories = categories;\r\n }\r\n });\r\n \r\n }\r\n } \r\n });\r\n }\r\n\r\n onClickOutside() {\r\n if(this.showMe) {\r\n this.onCancel();\r\n }\r\n }\r\n\r\n shouldClosePanel(event: any): boolean {\r\n if(!event?.target?.classList) {\r\n return false;\r\n }\r\n return event.target.classList.contains('v-overlay__scrim');\r\n }\r\n\r\n onCancel() {\r\n this.closePanel();\r\n }\r\n\r\n closePanel() {\r\n this.listId = \"\";\r\n this.showMe = false;\r\n this.width = \"0px\";\r\n this.currentList = new Models.List();\r\n this.currentOrganization = null;\r\n if(this.settingsSaved) {\r\n EventBus.$emit(Models.Event.LISTSETTINGS_CHANGED, this.currentList);\r\n EventBus.$emit(Models.Event.LISTINFO_CHANGED);\r\n this.settingsSaved = false;\r\n }\r\n if((window).Intercom) {\r\n (window).Intercom('update', { 'hide_default_launcher': false});\r\n }\r\n }\r\n\r\n @Watch('currentList')\r\n refreshSettingsHeight() {\r\n if(!this.$refs.sidepanelHeader) {\r\n return;\r\n }\r\n let maxHeight = window.innerHeight - this.$refs.sidepanelHeader.getBoundingClientRect().height;\r\n this.settingsHeight = maxHeight;\r\n }\r\n\r\n async updateTableSettings(){\r\n if(JSON.stringify(this.currentList) != JSON.stringify(this.oldList)){\r\n let isValid = await this.$refs.observer?.validate();\r\n if(isValid){\r\n try{\r\n let result = await API.List.save(this.currentList);\r\n if(result){\r\n this.oldList = Object.assign({}, result);\r\n this.currentList = result;\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('TableSettings_SuccessMessage'), \r\n type: Models.NotificationType.success, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 4000});\r\n this.settingsSaved = true;\r\n }\r\n }\r\n catch(Error) { \r\n this.currentList = Object.assign({}, this.oldList); \r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('TableSettings_ErrorMessage'), \r\n type: Models.NotificationType.error, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 10000});\r\n }\r\n }\r\n }\r\n }\r\n\r\n getIcon(){\r\n if (this.currentList && this.currentList.IconPath) {\r\n return '/' + this.currentList.IconPath + \"?_ssb_img=S;w:48;h:48\";\r\n }\r\n }\r\n\r\n async onFileChanged(){\r\n if(this.iconImage && this.iconImage.size>0) {\r\n if(!this.iconImage?.type.startsWith('image/')) {\r\n this.currentList = Object.assign({}, this.oldList);\r\n this.iconImage = null;\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('Common_InvalidFileType'), \r\n type: Models.NotificationType.error, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 5000});\r\n }\r\n else {\r\n try{\r\n let result = await API.List.saveWithFile(this.currentList, this.iconImage, \"/icon\");\r\n if(result){\r\n this.oldList = Object.assign({}, result);\r\n this.currentList = result;\r\n this.iconImage = null;\r\n this.settingsSaved = true;\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('TableSettings_SuccessMessage'), \r\n type: Models.NotificationType.success, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 4000});\r\n }\r\n }\r\n catch(Error){\r\n this.currentList = Object.assign({}, this.oldList);\r\n this.iconImage = null;\r\n EventBus.$emit(Models.Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('TableSettings_ErrorMessage'), \r\n type: Models.NotificationType.error, \r\n duplicateId: 'ts_'+ this.listId,\r\n autoHide: true, autoHideAfterMs: 10000});\r\n }\r\n }\r\n }\r\n }\r\n\r\n deleteImage(){\r\n if(this.currentList){\r\n this.currentList.IconPath = null;\r\n this.currentList.Icon_Remove = true;\r\n }\r\n this.updateTableSettings();\r\n this.removeImageConfirmation = false;\r\n }\r\n\r\n onDeleteIconClick(){\r\n this.removeImageConfirmation = true;\r\n }\r\n\r\n cancelled() {\r\n this.removeImageConfirmation = false;\r\n }\r\n\r\n getLocaleText(key: string) {\r\n if(this.existsLocalization(key)) {\r\n return this.$i18n.t(key).toString();\r\n }\r\n return '';\r\n }\r\n\r\n existsLocalization(key: string) {\r\n return this.$i18n.te(key);\r\n }\r\n\r\n selectFile() {\r\n this.focusButton();\r\n let imputElt = this.$refs.inputFile as HTMLInputElement;\r\n if(imputElt) {\r\n imputElt.click();\r\n }\r\n }\r\n\r\n onFileSelected(event: any) {\r\n this.iconImage = event.target.files[0];\r\n this.onFileChanged();\r\n }\r\n \r\n focusButton(){\r\n let element = (this.$refs.openPickerBtn).$el as HTMLButtonElement;\r\n if(element){\r\n this.$nextTick(() => {\r\n element.focus(); \r\n });\r\n }\r\n }\r\n\r\n get currentUser() {\r\n return UserModule.CurrentUser || new Models.User();\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get canEditCatalogCategory(): boolean {\r\n return this.isNotOnPrem && this.currentUser.IsAdministrator;\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!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelTableSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelTableSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidePanelTableSettings.vue?vue&type=template&id=c26b16a2&scoped=true&\"\nimport script from \"./SidePanelTableSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidePanelTableSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SidePanelTableSettings.vue?vue&type=style&index=0&id=c26b16a2&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 \"c26b16a2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-navigation-drawer',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:({handler: _vm.onClickOutside, closeConditional: _vm.shouldClosePanel}),expression:\"{handler: onClickOutside, closeConditional: shouldClosePanel}\"}],staticClass:\"sidepanel-container\",class:{'sidepanel-container--mobile': _vm.$vuetify.breakpoint.mobile},attrs:{\"stateless\":\"\",\"disable-resize-watcher\":\"\",\"temporary\":\"\",\"absolute\":\"\",\"right\":\"\",\"width\":_vm.width},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('div',{ref:\"sidepanelHeader\"},[_c('v-card-title',{staticClass:\"mb-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelColumnSettings_Title'))+\"\\n \"),_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"primary\",\"text\":\"\",\"href\":_vm.$t('SidePanelColumnSettings_HelpLink'),\"target\":\"_blank\"}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"small\":\"\"}},[_vm._v(\"fal fa-life-ring\")]),_vm._v(\"\\n \"+_vm._s(_vm.$t('Common_DialogHelpLinkText'))+\"\\n \")],1),_vm._v(\" \"),_c('v-icon',{attrs:{\"dense\":\"\"},on:{\"click\":_vm.onCancel}},[_vm._v(\"fa-times\")])],1),_vm._v(\" \"),(_vm.getLocaleText('SidePanelColumnSettings_Description'))?_c('v-card-subtitle',[_vm._v(\"\\n \"+_vm._s(_vm.$t('SidePanelColumnSettings_Description'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-card-title',{staticClass:\"ma-0 pa-0 justify-center\"},[_c('column-selector',{attrs:{\"listId\":_vm.currentListId,\"manageChildColumns\":true},on:{\"change\":_vm.onSelectedColumnIdChanged},model:{value:(_vm.selectedColumnId),callback:function ($$v) {_vm.selectedColumnId=$$v},expression:\"selectedColumnId\"}})],1)],1)]},proxy:true},{key:\"append\",fn:function(){return [_c('span',{staticClass:\"column-id\",on:{\"click\":_vm.copyColumnId}},[_vm._v(\"Id: \"+_vm._s(_vm.currentColumn?.Id))])]},proxy:true}]),model:{value:(_vm.showMe),callback:function ($$v) {_vm.showMe=$$v},expression:\"showMe\"}},[_vm._v(\" \"),_c('validation-observer',{ref:\"observer\"},[_c('v-form',{ref:\"form\",model:{value:(_vm.validForm),callback:function ($$v) {_vm.validForm=$$v},expression:\"validForm\"}},[_c('v-card',{staticClass:\"px-3 py-3\",attrs:{\"elevation\":\"0\"}},[_c('v-card-text',{staticClass:\"pa-0\"},[_c('v-item-group',{staticClass:\"column-group column-group-first mt-0\"},[_c('span',{staticClass:\"column-group-name mb-4\"},[_vm._v(_vm._s(_vm.$t('SidePanelColumnSettings_About')))]),_vm._v(\" \"),_c('input-text',{attrs:{\"inputTextId\":'columnName',\"inputTextName\":_vm.$t('ColumnSettings_DisplayName'),\"label\":_vm.$t('ColumnSettings_DisplayName'),\"helpText\":_vm.getLocaleText('ColumnSettings_DisplayNameDescription'),\"hide-details\":\"auto\",\"inputTextValidationRules\":{required: true}},on:{\"blured\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.Name),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"Name\", $$v)},expression:\"currentColumn.Name\"}})],1),_vm._v(\" \"),(_vm.currentColumn.canEditSubname)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-3\"},[_c('input-text-area',{attrs:{\"inputTextId\":'columnSubName',\"inputTextName\":_vm.$t('ColumnSettings_SubName'),\"label\":_vm.$t('ColumnSettings_SubName'),\"helpText\":_vm.getLocaleText('ColumnSettings_SubNameDescription'),\"hide-details\":\"auto\"},on:{\"blured\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.SubName),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"SubName\", $$v)},expression:\"currentColumn.SubName\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditGroupName)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-3\"},[_c('input-text',{attrs:{\"inputTextId\":'columnGroup',\"inputTextName\":_vm.$t('ColumnSettings_ColumnGroup'),\"label\":_vm.$t('ColumnSettings_ColumnGroup'),\"helpText\":_vm.getLocaleText('ColumnSettings_ColumnGroupDescription'),\"hide-details\":\"auto\"},on:{\"blured\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.ColumnGroup),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"ColumnGroup\", $$v)},expression:\"currentColumn.ColumnGroup\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-item-group',{staticClass:\"column-group column-group-last pt-3\"},[_c('v-autocomplete',{attrs:{\"items\":_vm.columnTypes,\"item-text\":\"name\",\"item-value\":\"value\",\"outlined\":\"\",\"standard\":\"\",\"dense\":\"\",\"required\":\"\",\"hide-details\":\"auto\",\"error-messages\":_vm.columnTypeError,\"menu-props\":_vm.defaultProps,\"disabled\":_vm.cannotUpdateType},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_c('div',{staticClass:\"px-2\"},[_vm._v(_vm._s(_vm.$t('Common_NoDataFound')))])]},proxy:true},{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_Type')))])]},proxy:true},(_vm.getLocaleText('ColumnSettings_TypeDescription') && !_vm.cannotUpdateType)?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_TypeDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.Type),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"Type\", $$v)},expression:\"currentColumn.Type\"}})],1),_vm._v(\" \"),(_vm.currentColumn.canEditRelatedColumns)?_c('v-item-group',{staticClass:\"column-group column-group-first column-group-last\"},[_c('span',{staticClass:\"column-group-name mb-3\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_RelatedList')))]),_vm._v(\" \"),_c('column-settings-related-columns-editor',{attrs:{\"currentListId\":_vm.currentListId,\"currentColumnId\":_vm.currentColumn.Id,\"relatedListId\":_vm.currentColumn.RelatedListId,\"disableColumnSelection\":_vm.disableRelatedColumnsSelection,\"helpText\":_vm.getLocaleText('ColumnSettings_RelatedListDescription')},on:{\"change\":_vm.onRelatedListChanged,\"columnsChanged\":_vm.onChildColumnsChanged}})],1):_vm._e(),_vm._v(\" \"),(_vm.canEditCommonOptions)?_c('v-item-group',{staticClass:\"column-group column-group-first\"},[_c('span',{staticClass:\"column-group-name mb-4\"},[_vm._v(_vm._s(_vm.$t('SidePanelColumnSettings_CommonOptions')))])]):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditDefaultValue)?_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_DefaultValue')))])]},proxy:true},(_vm.getLocaleText('ColumnSettings_DefaultValueDescription'))?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_DefaultValueDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.DefaultValue),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"DefaultValue\", $$v)},expression:\"currentColumn.DefaultValue\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditColor)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-3\"},[_c('column-settings-color-editor',{attrs:{\"helpText\":_vm.getLocaleText('ColumnSettings_ColorDescription'),\"currentColumn\":_vm.currentColumn},on:{\"change\":_vm.updateColumnSettings}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsFormula)?_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"column-option\",attrs:{\"dense\":\"\",\"inset\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('ColumnSettings_IsFormula')},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([(_vm.getLocaleText('ColumnSettings_IsFormulaDescription'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_IsFormulaDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.isFormula),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isFormula\", $$v)},expression:\"currentColumn.isFormula\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditFormula)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-4\"},[_c('v-textarea',{attrs:{\"outlined\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_Formula')))])]},proxy:true},(_vm.getLocaleText('ColumnSettings_FormulaDescription'))?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',{staticClass:\"mt-n5 ml-n3 pa-0\",attrs:{\"color\":\"grey\",\"icon\":\"\",\"target\":\"_blank\",\"href\":_vm.getLocaleText('SidePanelColumnSettings_FormulaDescriptionLink')}},[_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])],1)]}}],null,false,3647551831)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_FormulaDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.formula),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"formula\", $$v)},expression:\"currentColumn.formula\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsMandatory)?_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"column-option\",attrs:{\"dense\":\"\",\"inset\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('ColumnSettings_IsMandatory')},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([(_vm.getLocaleText('ColumnSettings_IsMandatoryDescription'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_IsMandatoryDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.isMandatory),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isMandatory\", $$v)},expression:\"currentColumn.isMandatory\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsUnique)?_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"column-option\",attrs:{\"dense\":\"\",\"inset\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('ColumnSettings_IsUnique')},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([(_vm.getLocaleText('ColumnSettings_IsUniqueDescription'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_IsUniqueDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.isUnique),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isUnique\", $$v)},expression:\"currentColumn.isUnique\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.canEditCommonOptions)?_c('v-item-group',{staticClass:\"column-group column-group-last\"}):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsLookupMultiValued)?_c('v-item-group',{staticClass:\"column-group column-group-first\"},[_c('span',{staticClass:\"column-group-name mb-4\"},[_vm._v(_vm._s(_vm.$t('SidePanelColumnSettings_LookupOptions')))]),_vm._v(\" \"),_c('v-switch',{staticClass:\"column-option\",attrs:{\"dense\":\"\",\"inset\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('ColumnSettings_IsLookupMultiValued')},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([(_vm.getLocaleText('ColumnSettings_IsLookupMultiValuedDescription'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_IsLookupMultiValuedDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.isLookupMultiValued),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isLookupMultiValued\", $$v)},expression:\"currentColumn.isLookupMultiValued\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditIsCompact)?_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"column-option\",attrs:{\"dense\":\"\",\"inset\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('ColumnSettings_IsCompact')},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([(_vm.getLocaleText('ColumnSettings_IsCompactDescription'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_IsCompactDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.isCompact),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"isCompact\", $$v)},expression:\"currentColumn.isCompact\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditLookupValues)?_c('v-item-group',{staticClass:\"column-group column-group-last\"},[_c('column-settings-lookup-editor',{attrs:{\"columnLookUpValues\":_vm.currentColumn.LookupValues,\"helpText\":_vm.getLocaleText('ColumnSettings_LookupValuesDescription')},on:{\"changed\":_vm.onLookupValuesChanged}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditLookupList)?_c('v-item-group',{staticClass:\"column-group column-group-last\"},[_c('v-item-group',{staticClass:\"column-group column-group-first column-group-last\"},[_c('span',{staticClass:\"column-group-name mb-3\"},[_vm._v(_vm._s(_vm.$t('ColumnSettings_LookupList')))]),_vm._v(\" \"),_c('column-settings-lookup-list-editor',{attrs:{\"currentListId\":_vm.currentListId,\"lookupListColumnName\":_vm.currentColumn.LookupListColumnName,\"lookupListId\":_vm.currentColumn.LookupListId},on:{\"change\":_vm.onLinkedColumnChanged}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditMaxLength)?_c('v-item-group',{staticClass:\"column-group column-group-first column-group-last\"},[_c('span',{staticClass:\"column-group-name mb-4\"},[_vm._v(_vm._s(_vm.$t('SidePanelColumnSettings_TextOptions')))]),_vm._v(\" \"),_c('v-text-field',{attrs:{\"dense\":\"\",\"type\":\"number\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_MaxLength')))])]},proxy:true}],null,false,3345665172),model:{value:(_vm.currentColumn.MaxLength),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"MaxLength\", $$v)},expression:\"currentColumn.MaxLength\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showNumbersOptions)?_c('v-item-group',{staticClass:\"column-group column-group-first\"},[_c('span',{staticClass:\"column-group-name\"},[_vm._v(_vm._s(_vm.$t('SidePanelColumnSettings_NumberOptions')))])]):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditShowThousandsSeparator)?_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"column-option\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('ColumnSettings_ShowThousandsSeparator'),\"inset\":\"\"},on:{\"change\":_vm.updateColumnSettings},model:{value:(_vm.currentColumn.showThousandsSeparator),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"showThousandsSeparator\", $$v)},expression:\"currentColumn.showThousandsSeparator\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditUseSmartRenderer)?_c('v-item-group',{staticClass:\"column-group column-group-middle\"},[_c('v-switch',{staticClass:\"column-option\",attrs:{\"dense\":\"\",\"inset\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('ColumnSettings_UseSmartRenderer')},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([(_vm.getLocaleText('ColumnSettings_UseSmartRendererDescription'))?{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_UseSmartRendererDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.useSmartRenderer),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"useSmartRenderer\", $$v)},expression:\"currentColumn.useSmartRenderer\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditMaxDecimals)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-4\"},[_c('v-text-field',{attrs:{\"dense\":\"\",\"type\":\"number\",\"outlined\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_MaxDecimals')))])]},proxy:true}],null,false,703847504),model:{value:(_vm.currentColumn.MaxDecimals),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"MaxDecimals\", $$v)},expression:\"currentColumn.MaxDecimals\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditMinMaxValue)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-4\"},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"auto\",\"rules\":[_vm.isValidNumber]},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_MinValue')))])]},proxy:true}],null,false,3521496957),model:{value:(_vm.currentColumn.MinValue),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"MinValue\", $$v)},expression:\"currentColumn.MinValue\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditMinMaxValue)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-4\"},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"auto\",\"rules\":[_vm.isValidNumber]},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_MaxValue')))])]},proxy:true}],null,false,242546723),model:{value:(_vm.currentColumn.MaxValue),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"MaxValue\", $$v)},expression:\"currentColumn.MaxValue\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditPrefix)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-4\"},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"auto\"},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_Prefix')))])]},proxy:true},(_vm.getLocaleText('ColumnSettings_PrefixDescription'))?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_PrefixDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.Prefix),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"Prefix\", $$v)},expression:\"currentColumn.Prefix\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.currentColumn.canEditSuffix)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-4\"},[_c('v-text-field',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"auto\"},on:{\"change\":_vm.updateColumnSettings},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_Suffix')))])]},proxy:true},(_vm.getLocaleText('ColumnSettings_SuffixDescription'))?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_SuffixDescription'))+\"\\n \")])]},proxy:true}:null],null,true),model:{value:(_vm.currentColumn.Suffix),callback:function ($$v) {_vm.$set(_vm.currentColumn, \"Suffix\", $$v)},expression:\"currentColumn.Suffix\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showNumbersOptions && !_vm.currentColumn.canEditUseSmartRenderer)?_c('v-item-group',{staticClass:\"column-group column-group-middle pt-4\"},[_c('v-text-field',{attrs:{\"readonly\":\"\",\"dense\":\"\",\"outlined\":\"\",\"value\":_vm.numberPreview,\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"text-field-label\"},[_vm._v(_vm._s(_vm.getLocaleText('ColumnSettings_NumberPreview')))])]},proxy:true},(_vm.getLocaleText('ColumnSettings_NumberPreviewDescription'))?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-icon',_vm._g({attrs:{\"size\":\"20\"}},on),[_vm._v(\"fal fa-circle-question\")])]}}],null,false,2691758847)},[_vm._v(\"\\n \"+_vm._s(_vm.getLocaleText('ColumnSettings_NumberPreviewDescription'))+\"\\n \")])]},proxy:true}:null],null,true)})],1):_vm._e(),_vm._v(\" \"),(_vm.showNumbersOptions)?_c('v-item-group',{staticClass:\"column-group column-group-last\"}):_vm._e()],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport {Component, Watch } from 'vue-property-decorator';\r\nimport ColumnSelector from '@/views/Table/ColumnSettings/ColumnSelector.vue'\r\nimport * as models from '@/models/RowShare';\r\nimport * as api from '@/api/Api';\r\nimport { EventBus } from '@/modules/EventBus';\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport InputText from '@/views/components/FormInputs/InputText.vue';\r\nimport InputTextArea from '@/views/components/FormInputs/InputTextArea.vue';\r\nimport { ValidationProvider, ValidationObserver } from 'vee-validate';\r\nimport { ColumnTypes } from '@/utils/ColumnTypes';\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { Utils } from '@/utils/Utilities';\r\nimport { RowShareException } from '@/api/ApiUtils';\r\nimport ColumnSettingsLookupEditor from '@/views/Table/ColumnSettings/ColumnSettingsLookupEditor.vue';\r\nimport ColumnSettingsLookupListEditor from '@/views/Table/ColumnSettings/ColumnSettingsLookupListEditor.vue';\r\nimport ColumnSettingsRelatedColumnsEditor from '@/views/Table/ColumnSettings/ColumnSettingsRelatedColumnsEditor.vue';\r\nimport ColumnSettingsColorEditor from '@/views/Table/ColumnSettings/ColumnSettingsColorEditor.vue';\r\nimport {RealTimeCollaborationModule} from \"@/store/RealTimeCollaborationStore\";\r\n\r\n@Component({name: 'SidePanelColumnSettings', components: { ColumnSelector, ValidationObserver, ValidationProvider, InputText, InputTextArea,\r\n ColumnSettingsLookupEditor, ColumnSettingsLookupListEditor, ColumnSettingsRelatedColumnsEditor,\r\n ColumnSettingsColorEditor}})\r\nexport default class SidePanelColumnSettings extends FormValidation {\r\n showMe: boolean = false;\r\n columnId: string = '';\r\n currentListId: string = '';\r\n width: string = '0px';\r\n currentColumn: models.Column | null = new models.Column();\r\n originalColumn: models.Column = new models.Column();\r\n currentList: models.List | null = null;\r\n currentOrganization: models.Organization | null = null;\r\n selectedColumnId: string = '';\r\n settingsHeight: number = 0;\r\n settingsSaved: boolean = false;\r\n columnTypeError: string = '';\r\n disableRelatedColumnsSelection: boolean = false;\r\n savedColumn: models.Column | null = null;\r\n validForm: boolean = false;\r\n defaultProps = { maxHeight: 200 };\r\n saveInProgress: boolean = false;\r\n\r\n $refs!: {\r\n observer: InstanceType,\r\n sidepanelHeader: InstanceType,\r\n form: any\r\n }; \r\n\r\n created() {\r\n EventBus.$on(models.Event.SHOW_SIDEPANEL_COLUMN_SETTINGS, (params: models.showSidePanelColumnSettingsEventParams) => this.onShowSidePanel(params));\r\n window.addEventListener('resize', this.refreshColumnSettingsHeight);\r\n }\r\n\r\n beforeDestroy() {\r\n EventBus.$off([models.Event.SHOW_SIDEPANEL_COLUMN_SETTINGS]);\r\n window.removeEventListener('resize', this.refreshColumnSettingsHeight);\r\n }\r\n\r\n async onShowSidePanel(event: models.showSidePanelColumnSettingsEventParams) {\r\n this.columnId = event.columnId;\r\n this.currentListId = event.listId;\r\n this.width = \"35%\";\r\n await this.initPanel(); \r\n setTimeout(() => {\r\n this.showMe = true;\r\n }, 0);\r\n\r\n if((window).Intercom) {\r\n (window).Intercom('update', { 'hide_default_launcher': true});\r\n }\r\n }\r\n\r\n async initPanel() {\r\n await this.refreshColumnSettings();\r\n if(this.currentColumn != null) {\r\n this.currentList = await api.List.load(this.currentColumn.ListId);\r\n }\r\n if(this.currentList != null) {\r\n this.currentOrganization = await api.Organization.load(this.currentList.OrganizationId);\r\n }\r\n\r\n this.refreshColumnSettingsHeight();\r\n }\r\n\r\n onSelectedColumnIdChanged() {\r\n this.columnId = this.selectedColumnId;\r\n this.refreshColumnSettings();\r\n }\r\n\r\n @Watch('currentColumn')\r\n refreshColumnSettingsHeight() {\r\n if(!this.$refs.sidepanelHeader) {\r\n return;\r\n }\r\n let maxHeight = window.innerHeight - this.$refs.sidepanelHeader.getBoundingClientRect().height;\r\n this.settingsHeight = maxHeight;\r\n }\r\n\r\n onClickOutside() {\r\n if(this.showMe) {\r\n this.onCancel();\r\n }\r\n }\r\n\r\n shouldClosePanel(event: any): boolean {\r\n if(!event?.target?.classList || this.saveInProgress) {\r\n return false;\r\n }\r\n return event.target.classList.contains('v-overlay__scrim');\r\n }\r\n\r\n onCancel() {\r\n this.closePanel();\r\n }\r\n\r\n closePanel() {\r\n this.columnId = \"\";\r\n this.showMe = false;\r\n this.width = \"0px\";\r\n this.currentList = null;\r\n this.currentOrganization = null;\r\n this.currentColumn = new models.Column();\r\n if(this.settingsSaved) {\r\n EventBus.$emit(models.Event.COLUMNSETTINGS_CHANGED);\r\n this.settingsSaved = false;\r\n }\r\n if((window).Intercom) {\r\n (window).Intercom('update', { 'hide_default_launcher': false});\r\n }\r\n }\r\n\r\n async refreshColumnSettings() {\r\n if(!this.columnId) {\r\n return;\r\n }\r\n this.currentColumn = await api.Column.load(this.columnId, {cache: false});\r\n this.selectedColumnId = this.columnId;\r\n }\r\n\r\n onLookupValuesChanged(value: string){\r\n if(this.currentColumn){\r\n this.currentColumn.LookupValues = value;\r\n this.updateColumnSettings();\r\n }\r\n }\r\n\r\n onLinkedColumnChanged(link: any) {\r\n if(link && this.currentColumn) {\r\n this.currentColumn.LookupListColumnName = link.linkedColumnName;\r\n this.currentColumn.LookupListId = link.linkedListId;\r\n this.updateColumnSettings();\r\n }\r\n }\r\n\r\n async onRelatedListChanged(event: any) {\r\n if(event && this.currentColumn) {\r\n this.currentColumn.RelatedListId = event.RelatedListId;\r\n this.updateColumnSettings()\r\n }\r\n }\r\n\r\n onChildColumnsChanged() {\r\n this.settingsSaved = true;\r\n }\r\n\r\n @Watch('currentColumn.Type')\r\n resetValues() {\r\n if(this.currentColumn?.Type === models.ColumnStrongType.LookUp) {\r\n if(Utils.isNullOrWhiteSpace(this.currentColumn.LookupValues)) {\r\n this.currentColumn.LookupValues = ColumnTypes.defaultLookupValues;\r\n }\r\n this.currentColumn.MaxLength = 0;\r\n }\r\n }\r\n\r\n isValidNumber(value: any): boolean | string {\r\n let valStr = value?.toString() ?? \"\";\r\n if(Utils.isNullOrWhiteSpace(valStr)) {\r\n return true;\r\n }\r\n const regExp = /^[\\-]?\\d*$/;\r\n\r\n var number: number | null = null;\r\n if(this.currentColumn?.Type === models.ColumnStrongType.DecimalNumber || this.currentColumn?.Type === models.ColumnStrongType.Percentage) {\r\n number = Utils.parseNumber(valStr, null);\r\n }\r\n else {\r\n number = Utils.parseInteger(valStr, null)\r\n }\r\n\r\n return (number != null) ? true : this.$i18n.t('ColumnSettings_InvalidNumber').toString();\r\n }\r\n\r\n async validateForm(): Promise {\r\n this.columnTypeError = \"\";\r\n let isValid = await (this.$refs.observer).validate();\r\n isValid = await isValid && (this.$refs.form).validate();\r\n if(isValid) {\r\n if(!this.currentColumn?.Type) {\r\n this.columnTypeError = this.$i18n.t('ColumnSettings_MandatoryProperty', [this.$i18n.t('ColumnSettings_Type').toString()]).toString();\r\n return false;\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n\r\n async updateColumnSettings() {\r\n this.disableRelatedColumnsSelection = true;\r\n let isValid = await this.validateForm(); \r\n if(isValid) {\r\n if(this.currentColumn && this.columnSettingsHaveChanged) {\r\n if(this.currentColumn.Type != this.originalColumn?.Type && this.currentColumn.Type == models.ColumnStrongType.LookUp && !this.currentColumn.LookupValues) {\r\n this.currentColumn.LookupValues = ColumnTypes.defaultLookupValues;\r\n }\r\n this.saveInProgress = true;\r\n this.currentColumn.RtcConnectionId = RealTimeCollaborationModule.connection.connectionId;\r\n api.Column.save(this.currentColumn, {clearCache: true})\r\n .then(savedColumn => {\r\n Object.assign(this.originalColumn, this.currentColumn);\r\n EventBus.$emit(models.Event.COLUMN_INFOS_CHANGED, savedColumn);\r\n EventBus.$emit(models.Event.GLOBAL_NOTIFICATION_RAISED, { message: this.$i18n.t('ColumnSettings_SaveSuccess'),\r\n type: models.NotificationType.success,\r\n autoHide: true, autoHideAfterMs: 4000,\r\n duplicateId: 'ColumnSaveSuccess'});\r\n setTimeout(() => { this.disableRelatedColumnsSelection = false}, 0);\r\n this.settingsSaved = true;\r\n })\r\n .catch(exc => {\r\n let rsExc = exc as RowShareException;\r\n let exceptionMsg = \"\";\r\n if(rsExc) {\r\n exceptionMsg = rsExc.message;\r\n }\r\n else {\r\n exceptionMsg = this.$i18n.t('ColumnSettings_SaveError').toString();\r\n }\r\n EventBus.$emit(models.Event.GLOBAL_NOTIFICATION_RAISED, { message: exceptionMsg,\r\n type: models.NotificationType.error,\r\n autoHide: true, autoHideAfterMs: 10000});\r\n setTimeout(() => { this.disableRelatedColumnsSelection = true}, 0);\r\n })\r\n .finally(() => {\r\n this.saveInProgress = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n getLocaleText(key: string) {\r\n if(this.existsLocalization(key)) {\r\n return this.$i18n.t(key).toString();\r\n }\r\n return '';\r\n }\r\n\r\n existsLocalization(key: string) {\r\n return this.$i18n.te(key);\r\n }\r\n\r\n copyColumnId() {\r\n if(!this.currentColumn?.Id) {\r\n return;\r\n }\r\n document.addEventListener('copy', this.copyToClipboard);\r\n document.execCommand('copy');\r\n EventBus.$emit(models.Event.GLOBAL_NOTIFICATION_RAISED, {\r\n autoHide: true,\r\n autoHideAfterMs: 2000,\r\n duplicateId:'CopyColumnId',\r\n message: this.$i18n.t('SidePanelColumnSettings_IdCopied').toString(),\r\n type: models.NotificationType.success\r\n });\r\n }\r\n\r\n copyToClipboard(event: ClipboardEvent) {\r\n if(!this.currentColumn?.Id) {\r\n return;\r\n }\r\n event.clipboardData?.setData('text/plain', this.currentColumn?.Id);\r\n event.preventDefault();\r\n document.removeEventListener('copy', this.copyToClipboard);\r\n }\r\n\r\n get columnSettingsHaveChanged() {\r\n return this.currentColumn && JSON.stringify(this.currentColumn) != JSON.stringify(this.originalColumn);\r\n }\r\n\r\n get columnTypes(): any[] {\r\n let types = ColumnTypes.getColumnTypesWithCategoriesSelectorItems(UserModule.connectedUser?.PreviewFeaturesEnabled ?? false);\r\n\r\n const typesToRemoveCriteria = (item : models.ColumnStrongType) =>\r\n models.ColumnType.metadataTypes().includes(item)\r\n //|| ColumnType.lookupListTypes().includes(item)\r\n || models.ColumnType.relatedRowTypes().includes(item);\r\n\r\n if(typesToRemoveCriteria(this.currentColumn!.Type)){\r\n return types;\r\n }\r\n let filteredType = types.filter(item => !typesToRemoveCriteria(item.value));\r\n filteredType = filteredType.filter(item => !item.category || item.category !== models.ColumnTypeCategoryName.row);\r\n return filteredType;\r\n }\r\n\r\n get isNotAllowedColumnType(): boolean {\r\n if (!this.currentColumn)\r\n return true;\r\n if (models.ColumnType.metadataTypes().includes(this.currentColumn.Type))\r\n return true;\r\n else if (models.ColumnType.relatedRowTypes().includes(this.currentColumn.Type))\r\n return true;\r\n return false;\r\n }\r\n\r\n get cannotUpdateType(): boolean {\r\n return ((this.currentColumn?.Type === models.ColumnStrongType.Relation && !Utils.isNullOrWhiteSpace(this.currentColumn.RelatedListId)) || this.isNotAllowedColumnType);\r\n }\r\n\r\n get numberPreview(): string {\r\n if(!this.currentColumn) {\r\n return \"\";\r\n }\r\n let num = Number.parseFloat('12345.67890');\r\n return (this.currentColumn.Prefix ?? '') + this.formatNum(num) + (this.currentColumn.Suffix ?? '');\r\n }\r\n\r\n formatNum(num: number){\r\n if(isNaN(num) || !this.currentColumn)\r\n return \"\";\r\n\r\n return num.toLocaleString(navigator.language, {\r\n useGrouping: this.currentColumn.showThousandsSeparator,\r\n minimumFractionDigits: this.currentColumn.MaxDecimals,\r\n maximumFractionDigits: this.currentColumn.MaxDecimals\r\n })\r\n }\r\n\r\n get showNumbersOptions(): boolean {\r\n if(!this.currentColumn) {\r\n return false;\r\n }\r\n return this.currentColumn.canEditMaxDecimals || this.currentColumn.canEditMinMaxValue || this.currentColumn.canEditPrefix\r\n || this.currentColumn.canEditShowThousandsSeparator || this.currentColumn.canEditSuffix\r\n || this.currentColumn.canEditUseSmartRenderer;\r\n }\r\n\r\n get canEditCommonOptions(): boolean {\r\n if(!this.currentColumn) {\r\n return false;\r\n }\r\n\r\n return this.currentColumn.canEditIsUnique || this.currentColumn.canEditColor || this.currentColumn.canEditFormula \r\n || this.currentColumn.canEditDefaultValue || this.currentColumn.canEditIsFormula || this.currentColumn.canEditIsMandatory;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelColumnSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SidePanelColumnSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidePanelColumnSettings.vue?vue&type=template&id=39d49c0a&scoped=true&\"\nimport script from \"./SidePanelColumnSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidePanelColumnSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SidePanelColumnSettings.vue?vue&type=style&index=0&id=39d49c0a&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 \"39d49c0a\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component } from 'vue-property-decorator';\r\nimport { FormValidation } from '@/views/components/FormValidation';\r\nimport RsHeader from \"@/views/layouts/LayoutParts/Header.vue\";\r\nimport GlobalConfirmationDialog from \"@/views/components/GlobalConfirmationDialog.vue\";\r\nimport NotificationStack from \"@/views/layouts/LayoutParts/NotificationStack.vue\";\r\nimport UpsellDialog from '@/views/components/UpsellDialog.vue';\r\nimport SidePanelFormView from '@/views/Table/FormView/SidePanelFormView.vue';\r\nimport SidePanelSharing from '@/views/Table/ShareTable/SidePanelSharing.vue';\r\nimport SidePanelColumnPermissions from '@/views/Table/ColumnSettings/SidePanelColumnPermissions.vue';\r\nimport SidePanelTableSettings from '@/views/Table/TableSettings/SidePanelTableSettings.vue';\r\nimport SidePanelColumnSettings from '@/views/Table/ColumnSettings/SidePanelColumnSettings.vue';\r\n@Component({components: {RsHeader, NotificationStack, GlobalConfirmationDialog, UpsellDialog, SidePanelFormView, SidePanelSharing, \r\n SidePanelColumnPermissions, SidePanelTableSettings, SidePanelColumnSettings}})\r\nexport default class DefaultLayout extends FormValidation {\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DefaultLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./DefaultLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefaultLayout.vue?vue&type=template&id=d0ebde72&scoped=true&\"\nimport script from \"./DefaultLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefaultLayout.vue?vue&type=script&lang=ts&\"\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 \"d0ebde72\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{attrs:{\"id\":\"iframe-layout\"}},[_c('v-main',[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component } from 'vue-property-decorator';\r\n import { FormValidation } from '@/views/components/FormValidation';\r\n\r\n @Component\r\n export default class IframeLayout extends FormValidation {\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./IframeLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./IframeLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IframeLayout.vue?vue&type=template&id=9058f1a4&scoped=true&\"\nimport script from \"./IframeLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./IframeLayout.vue?vue&type=script&lang=ts&\"\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 \"9058f1a4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{attrs:{\"id\":\"error-layout\"}},[_c('rs-error-header'),_vm._v(\" \"),_c('v-main',[_vm._t(\"default\")],2),_vm._v(\" \"),_c('notification-stack')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app-bar',{staticClass:\"rs-header\",attrs:{\"app\":\"\",\"color\":\"lightest\",\"height\":\"50\"}},[_c('v-toolbar-title',{staticClass:\"px-1 rs-header--title\"},[_c('router-link',{staticClass:\"pa-0 mx-0\",attrs:{\"to\":_vm.GetHomeUrl}},[(_vm.$vuetify.breakpoint.mobile)?_c('div',[(_vm.customSmallSiteLogoPath)?_c('v-img',{staticClass:\"logo-small d-sm-none ma-0\",attrs:{\"src\":'/' + _vm.customSmallSiteLogoPath,\"contain\":\"\"}}):_c('v-img',{staticClass:\"logo-small d-sm-none ma-0\",attrs:{\"src\":require(\"@/assets/static/images/logo_small.svg\"),\"contain\":\"\"}})],1):_c('div',[(_vm.customFullSiteLogoPath)?_c('v-img',{staticClass:\"logo d-none d-sm-block ma-0\",attrs:{\"src\":'/' + _vm.customFullSiteLogoPath,\"contain\":\"\"}}):_c('v-img',{staticClass:\"logo d-none d-sm-block ma-0\",attrs:{\"src\":require(\"@/assets/static/images/logo.svg\"),\"contain\":\"\"}})],1)])],1),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-row',{staticClass:\"header-actions\",attrs:{\"justify\":\"end\"}},[(_vm.getUser!==null && !_vm.getUser.IsAnonymous)?_c('div',{staticClass:\"header-loggedin-actions\"},[_c('v-menu',{staticClass:\"user-menu\",attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({staticClass:\"text-none text-left org-menu\",attrs:{\"text\":\"\",\"width\":\"auto\",\"height\":\"auto\"}},on),[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-avatar',{attrs:{\"size\":\"36\",\"rounded\":\"\"}},[(_vm.currentOrganization && _vm.currentOrganization.IconPath !== null)?_c('v-img',{attrs:{\"src\":'/' + _vm.currentOrganization.IconPath + '?_ssb_img=S;w:64;h:64'}}):_c('v-img',{attrs:{\"src\":require(\"@/assets/static/images/org.svg\")}})],1)],1),_vm._v(\" \"),_c('v-col',{staticClass:\"pr-0 pl-0 org-and-user-names\"},[(_vm.currentOrganization)?_c('strong',[_vm._v(_vm._s(_vm.currentOrganization.Name))]):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"font-weight-regular\"},[_vm._v(_vm._s(_vm.getUser.NickName))])]),_vm._v(\" \"),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-chevron-down\")])],1)],1)],1)]}}],null,false,1845880605)},[_vm._v(\" \"),_c('v-list',{staticClass:\"user-menu--items\"},[_c('div',{staticClass:\"user-menu--list-item\",class:_vm.other-_vm.orgs-_vm.list},_vm._l((_vm.organizationsTree.Organizations),function(org){return _c('v-list-item',{key:org.Id,attrs:{\"to\":{ name: 'MyTables', params: { organizationId: org.Id, folderId: org.IsEnabled ? org.RootFolder.Id : undefined }}}},[_c('v-list-item-content',{staticClass:\"other-orgs-name\"},[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(org.Name)}})],1)],1)}),1),_vm._v(\" \"),_c('v-divider',{staticClass:\"user-menu--list-item\"}),_vm._v(\" \"),_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"href\":_vm.$t('Footer_HelpUrl'),\"dense\":_vm.$vuetify.breakpoint.mobile}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Header_SiteHelp')))])],1),_vm._v(\" \"),_c('v-list-item',{staticClass:\"user-menu--list-item\",attrs:{\"dense\":_vm.$vuetify.breakpoint.mobile},on:{\"click\":_vm.signout}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('Header_Signout')))])],1)],1)],1)],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { Vue, Component, Prop } from \"vue-property-decorator\";\r\nimport { UserModule } from '@/store/UserStore';\r\nimport { OnPremModule } from '@/store/OnPremStore';\r\nimport { FormValidation } from \"@/views/components/FormValidation\";\r\nimport { loadAndSetWithUserLanguageAsync } from \"@/modules/Localization\";\r\nimport { EventBus } from \"@/modules/EventBus\";\r\nimport * as RowShare from \"@/models/RowShare\";\r\nimport { Location as RouterLocation } from \"vue-router\";\r\nimport { ListTreeModule } from \"@/store/ListTreeStore\";\r\nimport { RouterUtils } from \"@/modules/Router\";\r\nimport { ResLoader } from \"@/utils/ResLoader\";\r\nimport { ApplicationModule } from \"@/store/ApplicationStore\";\r\n\r\n\r\n@Component\r\nexport default class RsErrorHeader extends Vue {\r\n\r\n myAccountListGroupOpened : boolean = false;\r\n\r\n get currentUser () {\r\n return UserModule.connectedUser;\r\n }\r\n\r\n async created() {\r\n let scriptPromise = this.$loadScript('https://assets.calendly.com/assets/external/widget.js');\r\n ResLoader.loadCss('https://assets.calendly.com/assets/external/widget.css');\r\n let res = await Promise.all([scriptPromise]);\r\n\r\n }\r\n\r\n get activeLocale() {\r\n return this.$i18n.locale;\r\n }\r\n\r\n get customSmallSiteLogoPath() {\r\n let url: string = \"\";\r\n if(ListTreeModule?.currentSmallSiteLogoPath) {\r\n url = ListTreeModule.currentSmallSiteLogoPath;\r\n }\r\n else if(this.currentOrganization?.SmallSiteLogoPath) {\r\n url = this.currentOrganization.SmallSiteLogoPath;\r\n }\r\n return url;\r\n }\r\n\r\n get customFullSiteLogoPath() {\r\n let url: string = \"\";\r\n if(ListTreeModule?.currentFullSiteLogoPath) {\r\n url = ListTreeModule.currentFullSiteLogoPath;\r\n }\r\n else if(this.currentOrganization?.FullSiteLogoPath) {\r\n url = this.currentOrganization.FullSiteLogoPath;\r\n }\r\n return url;\r\n }\r\n\r\n get hasCustomRSLogosForLogin(): boolean {\r\n return ListTreeModule?.currentFullSiteLogoPath != null && ListTreeModule?.currentSmallSiteLogoPath != null;\r\n }\r\n\r\n get Languages() {\r\n return [\r\n { Name: this.$i18n.t(\"Footer_English\").toString(), Value: \"en\" },\r\n { Name: this.$i18n.t(\"Footer_Spanish\").toString(), Value: \"es\" },\r\n { Name: this.$i18n.t(\"Footer_French\").toString(), Value: \"fr\" }\r\n ];\r\n }\r\n\r\n get getUser(){\r\n return UserModule.CurrentUser;\r\n }\r\n\r\n get isNotOnPrem(){\r\n return !OnPremModule.isOnPrem;\r\n }\r\n\r\n get currentOrganization(){\r\n return ListTreeModule.currentOrganization;\r\n }\r\n\r\n get organizationsTree(){\r\n return ListTreeModule.organizationsTree;\r\n }\r\n\r\n async signout() {\r\n let returnUrl: string | null = await UserModule.signOut();\r\n if (returnUrl) {\r\n if (returnUrl.charAt(0) == \"~\") returnUrl = returnUrl.substr(1);\r\n\r\n window.location.href = returnUrl;\r\n }\r\n }\r\n\r\n get GetHomeUrl() {\r\n if(UserModule.CurrentUser.IsAnonymous) {\r\n return this.$route.fullPath;\r\n }\r\n return {\r\n name: 'MyTables',\r\n };\r\n }\r\n\r\n get signInLink(){\r\n var returnUrl = RouterUtils.getCaseInsentiveQuery(this.$route, \"ReturnUrl\");\r\n\r\n if(!returnUrl)\r\n returnUrl = this.$route.path;\r\n\r\n return {\r\n name: \"Login\",\r\n query: {\r\n ReturnUrl: returnUrl,\r\n }\r\n };\r\n }\r\n\r\n get previousLocation() : RouterLocation | string {\r\n return ApplicationModule.mobileAppPreviousLocation;\r\n }\r\n\r\n previous(location: RouterLocation){\r\n this.$router.push(location);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ErrorHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ErrorHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ErrorHeader.vue?vue&type=template&id=d26d4692&scoped=true&\"\nimport script from \"./ErrorHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ErrorHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ErrorHeader.vue?vue&type=style&index=0&id=d26d4692&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 \"d26d4692\",\n null\n \n)\n\nexport default component.exports","\r\nimport {Vue, Component } from 'vue-property-decorator';\r\nimport RsErrorHeader from \"@/views/layouts/LayoutParts/ErrorHeader.vue\";\r\nimport NotificationStack from \"@/views/layouts/LayoutParts/NotificationStack.vue\";\r\n\r\n@Component({components: {RsErrorHeader, NotificationStack}})\r\nexport default class ErrorLayout extends Vue {\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ErrorLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./ErrorLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ErrorLayout.vue?vue&type=template&id=2044e673&scoped=true&\"\nimport script from \"./ErrorLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./ErrorLayout.vue?vue&type=script&lang=ts&\"\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 \"2044e673\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{attrs:{\"id\":\"signup-layout\"}},[_c('rs-header',{attrs:{\"isSignUp\":true}}),_vm._v(\" \"),_c('v-main',[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component } from 'vue-property-decorator';\r\n import { FormValidation } from '@/views/components/FormValidation';\r\n import RsHeader from \"@/views/layouts/LayoutParts/Header.vue\";\r\n\r\n @Component({components: {RsHeader}})\r\n export default class SignupLayout extends FormValidation {\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SignupLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./SignupLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignupLayout.vue?vue&type=template&id=2f82c533&scoped=true&\"\nimport script from \"./SignupLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./SignupLayout.vue?vue&type=script&lang=ts&\"\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 \"2f82c533\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{attrs:{\"id\":\"login-layout\"}},[_c('rs-header',{attrs:{\"isLogIn\":true}}),_vm._v(\" \"),_c('v-main',[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component } from 'vue-property-decorator';\r\n import { FormValidation } from '@/views/components/FormValidation';\r\n import RsHeader from \"@/views/layouts/LayoutParts/Header.vue\";\r\n\r\n @Component({name:'LogInLayout', components: {RsHeader}})\r\n export default class LogInLayout extends FormValidation {\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LogInLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./LogInLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LogInLayout.vue?vue&type=template&id=261c6761&scoped=true&\"\nimport script from \"./LogInLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./LogInLayout.vue?vue&type=script&lang=ts&\"\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 \"261c6761\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{attrs:{\"id\":\"msteams-layout\"}},[_c('v-main',[_vm._t(\"default\")],2),_vm._v(\" \"),_c('global-confirmation-dialog'),_vm._v(\" \"),_c('notification-stack'),_vm._v(\" \"),_c('upsell-dialog'),_vm._v(\" \"),_c('side-panel-form-view'),_vm._v(\" \"),_c('side-panel-sharing'),_vm._v(\" \"),_c('side-panel-column-permissions'),_vm._v(\" \"),_c('side-panel-table-settings'),_vm._v(\" \"),_c('side-panel-column-settings')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component } from 'vue-property-decorator';\r\n import { FormValidation } from '@/views/components/FormValidation';\r\n import GlobalConfirmationDialog from \"@/views/components/GlobalConfirmationDialog.vue\"\r\n import NotificationStack from \"@/views/layouts/LayoutParts/NotificationStack.vue\"\r\n import UpsellDialog from '@/views/components/UpsellDialog.vue';\r\n import SidePanelFormView from '@/views/Table/FormView/SidePanelFormView.vue';\r\n import SidePanelSharing from '@/views/Table/ShareTable/SidePanelSharing.vue';\r\n import SidePanelColumnPermissions from '@/views/Table/ColumnSettings/SidePanelColumnPermissions.vue';\r\n import SidePanelTableSettings from '@/views/Table/TableSettings/SidePanelTableSettings.vue';\r\n import SidePanelColumnSettings from '@/views/Table/ColumnSettings/SidePanelColumnSettings.vue';\r\n\r\n @Component({components: {NotificationStack, GlobalConfirmationDialog, UpsellDialog, SidePanelColumnPermissions, SidePanelColumnSettings,SidePanelFormView,\r\n SidePanelSharing, SidePanelTableSettings}})\r\n export default class MsTeamsLayout extends FormValidation {\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MsTeamsLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./MsTeamsLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MsTeamsLayout.vue?vue&type=template&id=7d729dd3&\"\nimport script from \"./MsTeamsLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./MsTeamsLayout.vue?vue&type=script&lang=ts&\"\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 render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',{attrs:{\"id\":\"iframe-layout\"}},[_c('v-main',[_c('v-app-bar',{attrs:{\"app\":\"\"}},[_c('v-img',{staticClass:\"pointer-elt\",attrs:{\"src\":require(\"@/assets/static/images/logo_small.svg\"),\"max-height\":\"32\",\"max-width\":\"32\",\"contain\":\"\"},on:{\"click\":function($event){return _vm.goToBoRoot()}}}),_vm._v(\" \"),_c('v-toolbar-title',{staticClass:\"ml-2 px-1 rs-header--title pointer-elt\",on:{\"click\":function($event){return _vm.goToBoRoot()}}},[_vm._v(\"\\n RowShare BackOffice\\n \")]),_vm._v(\" \"),_c('v-spacer'),_vm._v(\" \"),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({on}){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"fa fa-ellipsis-v\")])],1)]}}])},[_vm._v(\" \"),_c('v-list',[_c('v-list-item',{attrs:{\"to\":\"/\"}},[_c('v-list-item-title',[_vm._v(\"Back to RowShare\")])],1),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.clearCache}},[_c('v-list-item-title',[_vm._v(\"Clear server memory cache\")])],1),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.restartServer}},[_c('v-list-item-title',[_vm._v(\"Restart server\")])],1),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.clearCacheAndRestartServer}},[_c('v-list-item-title',[_vm._v(\"Clear cache && restart server\")])],1),_vm._v(\" \"),_c('v-list-item',{on:{\"click\":_vm.signout}},[_c('v-list-item-title',[_vm._v(\"Signout\")])],1)],1)],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"pa-4\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('global-confirmation-dialog'),_vm._v(\" \"),_c('notification-stack')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n import { Component } from 'vue-property-decorator';\r\n import { FormValidation } from '@/views/components/FormValidation';\r\n import { UserModule } from '@/store/UserStore';\r\n import GlobalConfirmationDialog from \"@/views/components/GlobalConfirmationDialog.vue\"\r\n import NotificationStack from \"@/views/layouts/LayoutParts/NotificationStack.vue\"\r\n import { EventBus } from \"@/modules/EventBus\";\r\n import * as API from '@/api/Api';\r\n import * as Models from '@/models/RowShare';\r\n\r\n @Component ({\r\n name: 'BackOfficeLayout',\r\n components: {NotificationStack, GlobalConfirmationDialog}\r\n })\r\n export default class BackOfficeLayout extends FormValidation {\r\n async signout() {\r\n let returnUrl: string | null = await UserModule.signOut();\r\n if (returnUrl) {\r\n if (returnUrl.charAt(0) == \"~\") returnUrl = returnUrl.substr(1);\r\n\r\n window.location.href = returnUrl;\r\n }\r\n }\r\n \r\n async goToBoRoot(){\r\n this.$router.push({name:'bo'})\r\n }\r\n\r\n async clearCache(){\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Clear cache\";\r\n evtArgs.description1 = \"Confirm clear cache ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"broom\";\r\n evtArgs.actionButtonColor = 'error';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n API.BoApi.ClearCache();\r\n }\r\n\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n async restartServer(){\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Restart server\";\r\n evtArgs.description1 = \"Confirm restart server ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"recycle\";\r\n evtArgs.actionButtonColor = 'error';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n API.BoApi.RestartServer();\r\n }\r\n\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n async clearCacheAndRestartServer(){\r\n var evtArgs = new Models.ConfirmationRequiredEventParams();\r\n evtArgs.title = \"Clear cache and restart\";\r\n evtArgs.description1 = \"Confirm clear cache and restart server ?\";\r\n evtArgs.cancelButtonText = \"Cancel\";\r\n evtArgs.actionButtonText = \"Confirm\";\r\n evtArgs.actionButtonIcon = \"broom\";\r\n evtArgs.actionButtonColor = 'error';\r\n\r\n evtArgs.onConfirmation = async () => {\r\n API.BoApi.ClearCacheAndRestartServer();\r\n }\r\n\r\n EventBus.$emit(Models.Event.CONFIRMATION_REQUIRED, evtArgs);\r\n }\r\n }\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOfficeLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./BackOfficeLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BackOfficeLayout.vue?vue&type=template&id=74b3951b&scoped=true&\"\nimport script from \"./BackOfficeLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./BackOfficeLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BackOfficeLayout.vue?vue&type=style&index=0&id=74b3951b&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 \"74b3951b\",\n null\n \n)\n\nexport default component.exports","\r\n import { Component, Vue} from \"vue-property-decorator\";\r\n import { ApplicationModule } from '@/store/ApplicationStore';\r\n import { OnPremModule } from '@/store/OnPremStore';\r\n import DefaultLayout from \"@/views/layouts/DefaultLayout.vue\";\r\n import IframeLayout from \"@/views/layouts/IframeLayout.vue\";\r\n import ErrorLayout from \"@/views/layouts/ErrorLayout.vue\";\r\n import SignupLayout from \"@/views/layouts/SignupLayout.vue\";\r\n import LogInLayout from \"@/views/layouts/LogInLayout.vue\";\r\n import MsTeamsLayout from \"@/views/layouts/MsTeamsLayout.vue\";\r\n import BackOfficeLayout from \"@/views/layouts/BackOfficeLayout.vue\";\r\n import Cookie from \"js-cookie\";\r\n import { UserModule } from '@/store/UserStore';\r\n import { loadAndSetWithUserLanguageAsync } from '@/modules/Localization';\r\n import * as API from '@/api/Api';\r\n\r\n @Component({ \r\n components: { \r\n DefaultLayout, ErrorLayout, SignupLayout, IframeLayout, LogInLayout, MsTeamsLayout, BackOfficeLayout\r\n } \r\n })\r\n export default class App extends Vue {\r\n\r\n private header: string = \"\";\r\n \r\n\r\n async mounted () {\r\n var isInExcel = location.search.indexOf('excel') > 0;\r\n var isOnPrem = process.env.VUE_APP_ISONPREM ? (process.env.VUE_APP_ISONPREM.toLowerCase() == \"true\") : false;\r\n var isDevEnv = window?.location?.hostname === \"www.rowsharedev.com\";\r\n OnPremModule.updateIsOnPrem(isOnPrem);\r\n\r\n if ((!OnPremModule.isOnPrem)&&\r\n (process.env.VUE_APP_APPINSIGHTS_ID) && (process.env.VUE_APP_APPINSIGHTS_ID !== '')){\r\n ApplicationModule.updateAppInsightsKey(process.env.VUE_APP_APPINSIGHTS_ID) ;\r\n }\r\n \r\n // loading GTM and recaptcha, but skipping it for Excel Sync, OnPrem and dev\r\n if(!isInExcel && !isOnPrem && !isDevEnv){\r\n this.$loadScript('/api/script/load/gtm');\r\n }\r\n\r\n // Check if on mobile app or not\r\n let isInMobileApp = true;\r\n var isMobileCookie = Cookie.get('IsMobile');\r\n isInMobileApp = isMobileCookie ? (isMobileCookie.toLowerCase() == \"true\") : false;\r\n ApplicationModule.updateDevice(isInMobileApp);\r\n \r\n //get password complexity rule\r\n let passwordRegEx = await API.Configuration.getPasswordRegex();\r\n ApplicationModule.updatePasswordRegex(passwordRegEx);\r\n\r\n setInterval(async () => {\r\n var isAnonymous = !UserModule.connectedUser || UserModule.connectedUser.IsAnonymous;\r\n\r\n await UserModule.refreshUser();\r\n if(!isAnonymous && (!UserModule.connectedUser || UserModule.connectedUser.IsAnonymous))\r\n window.location.reload();\r\n }, 900000); \r\n }\r\n \r\n get pageLayout() {\r\n if(this.$route.name == null)\r\n return \"IframeLayout\";\r\n\r\n if(ApplicationModule.isMsTeamsApp) {\r\n return \"MsTeamsLayout\";\r\n }\r\n \r\n return this.$route.meta!.layout || \"DefaultLayout\";\r\n }\r\n }\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../node_modules/@vue/cli-service/lib/config/vue-loader-v15-resolve-compat/vue-loader.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=c3451854&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\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 \"c3451854\",\n null\n \n)\n\nexport default component.exports","import './modules/ClassComponentHooks';\r\n\r\n// https://bootstrap-vue.js.org/docs/#browser-support\r\nimport 'core-js/stable';\r\nimport 'custom-event-polyfill'\r\nimport 'regenerator-runtime/runtime';\r\nimport 'intersection-observer';\r\n\r\nimport Vue from 'vue';\r\nimport App from './App.vue';\r\nimport DatetimePicker from 'vuetify-datetime-picker';\r\n//import VueAnalytics from 'vue-analytics'\r\n\r\nimport './scss/Styles.scss';\r\n\r\nimport vueRouter from './modules/Router';\r\nimport vi18n from './modules/Localization';\r\nimport vuex from './modules/Store';\r\nimport vuetify from './modules/Vuetify';\r\nimport Meta from 'vue-meta';\r\nimport 'ag-grid-enterprise';\r\nimport LoadScript from 'vue-plugin-load-script';\r\nimport { LicenseManager } from '../node_modules/ag-grid-enterprise';\r\nimport { OnPremModule } from './store/OnPremStore';\r\nimport VCalendar from 'v-calendar';\r\nimport VueScrollto from 'vue-scrollto';\r\nimport VueTelInputVuetify from 'vue-tel-input-vuetify';\r\nimport VueMask from 'v-mask'\r\nimport VueCurrencyInput from 'vue-currency-input';\r\nimport VueAppInsights from 'vue-application-insights';\r\nimport { ApplicationModule } from './store/ApplicationStore';\r\nimport { loadAndSetWithUserLanguageAsync } from '@/modules/Localization';\r\n\r\nVue.config.productionTip = true;\r\nVue.use(Meta, { refreshOnceOnNavigation: true });\r\nVue.use(DatetimePicker);\r\nVue.use(LoadScript);\r\nVue.use(VCalendar, { componentPrefix: 'vc' });\r\nVue.use(VueScrollto);\r\nVue.use(VueTelInputVuetify, { vuetify });\r\nVue.use(VueMask);\r\nVue.use(VueCurrencyInput);\r\n\r\n//Vue.use(VueAnalytics, { id: 'UA-80443126-1', router: vueRouter })\r\n\r\n// AgGrid Licence\r\nLicenseManager.setLicenseKey(\"Using_this_{AG_Grid}_Enterprise_key_{AG-065110}_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_legal@ag-grid.com___For_help_with_changing_this_key_please_contact_info@ag-grid.com___{SOFTFLUENT_SOFTWARE}_is_granted_a_{Single_Application}_Developer_License_for_the_application_{RowShare}_only_for_{2}_Front-End_JavaScript_developers___All_Front-End_JavaScript_developers_working_on_{RowShare}_need_to_be_licensed___{RowShare}_has_been_granted_a_Deployment_License_Add-on_for_{3}_Production_Environments___This_key_works_with_{AG_Grid}_Enterprise_versions_released_before_{15_October_2025}____[v3]_[01]_MTc2MDQ4MjgwMDAwMA==687d0b2c41099c93b4da188ace0afaac\");\r\n//Directive to hide elements but keep space occupied (e.g. : style: visibility)\r\nVue.directive('visible', function (el, binding) {\r\n el.style.visibility = !!binding.value ? 'visible' : 'hidden';\r\n});\r\n\r\n(Vue).loadScript('/api/script/load/datalayer').then((s: any) => {\r\n loadAndSetWithUserLanguageAsync(true).then(() => {\r\n new Vue({\r\n router: vueRouter,\r\n i18n: vi18n,\r\n store: vuex,\r\n vuetify,\r\n render: h => h(App)\r\n }).$mount('#app');\r\n if (ApplicationModule.getAppInsightsKey !== '') {\r\n Vue.use(VueAppInsights, {\r\n id: ApplicationModule.getAppInsightsKey,\r\n router: vueRouter,\r\n options: {\r\n disableAjaxTracking: false,\r\n disableFetchTracking: false,\r\n disableExceptionTracking: false,\r\n disableTelemetry: false,\r\n enableAutoRouteTracking: true,\r\n enableCorsCorrelation: true,\r\n enableRequestHeaderTracking: true,\r\n enableSessionStorageBuffer: true,\r\n enableAutoPageViewTracking: true,\r\n maxAjaxCallsPerView: -1,\r\n maxBatchInterval: 15000,\r\n maxBatchSizeInBytes: 102400,\r\n overridePageViewDuration: false,\r\n sessionExpirationMs: 1800000,\r\n sessionRenewalMs: 300000,\r\n startTrackEventBuffer: 0,\r\n startTrackPageBuffer: 0,\r\n disableFlushOnBeforeUnload: false,\r\n enableDebug: false,\r\n verboseLogging: false,\r\n enableUnhandledPromiseRejectionTracking: true,\r\n enableResponseHeaderTracking: true\r\n }\r\n\r\n });\r\n }\r\n });\r\n});\r\n\r\ndeclare global {\r\n interface Window { grecaptcha: any; }\r\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksoftfluent_rowshare_front\"] = self[\"webpackChunksoftfluent_rowshare_front\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(9638); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","Component","registerHooks","Event","NotificationType","render","_vm","this","_c","_self","_setupProxy","pageLayout","tag","attrs","staticRenderFns","ConfirmationRequiredEventParams","constructor","_defineProperty","maximizeChartEventParams","Vue","use","Vuex","storeOptions","ticksPerMillisecond","ticksPerSecond","ticksPerMinutes","ticksPerHours","dateFormatRegExp","zeros","pad","n","digits","str","end","length","substring","TimeSpan","ticks","_ticks","static","hours","minutes","seconds","milliseconds","Utils","isNumber","Math","trunc","totalHours","totalMinutes","totalSeconds","totalMilliseconds","displayValue","toString","toDate","date","Date","setHours","format","isNullOrUndefined","replace","match","result","floor","undefined","String","slice","key","instance","obj","isUndefined","isNaN","htmlString","test","isString","guidPattern","guid","isNullOrEmpty","emptyGuid","Array","isArray","JSON","parse","isObject","isFunction","then","str1","str2","toLowerCase","suffix","indexOf","value","trim","defaultValue","f","parseFloat","i","parseInt","isBoolean","upper","toUpperCase","parsedValue","parseNumber","NaN","isDate","a","exec","getTime","getTimezoneOffset","tz","offset","b","year","parseInteger","month","day","fromTime","isFinite","fromTicks","parseTime","min","max","items","propertyName","Map","item","values","get","set","push","timeout","Promise","reject","setTimeout","wait","func","immediate","args","context","later","apply","callNow","clearTimeout","promises","reduce","prev","current","s4","random","newGuid","url","script","document","createElement","src","addEventListener","head","insertBefore","firstChild","mimeType","d","documentElement","lang","array","asyncCallback","results","all","index","findIndex","bytes","frLocale","precision","thresh","unitsEN","unitsFR","units","abs","unitIndex","toFixed","email","re","pwd","RegExp","ApplicationModule","loginPasswordRegex","cname","name","decodedCookie","decodeURIComponent","cookie","ca","split","c","charAt","ConsoleLogger","enabled","_enabled","localStorage","setItem","EnabledKeyName","enable","isEnabled","getItem","clear","console","log","component","level","message","optionalParams","debug","info","warn","error","SessionStorageLogger","storage","getStorage","removeItem","DataKeyName","json","table","getStackTrace","err","stack","ex","params","coerceParameter","stackTrace","stringify","Logger","loggers","logger","canLog","getLogLevel","options","minimumLevel","ApiResult","MemberOptions","UserOptions","OwnerType","PortalSections","PricingModelEnum","PeriodUnitEnum","ChartType","ChartStackedType","ChartAggregationFunction","ChartDateGroupingUnit","XDataType","ColumnStrongType","ColumnOptions","ColumnColorType","Member","IsDisabled","Options","Disabled","IsEnabled","IsAdministrator","Administrator","nameOrEmail","Name","Email","IsRowShareSupport","RowshareSupport","IsUniversalOwner","UniversalOwner","IsReadOnly","ReadOnlyMember","hasRole","User","UserUnsubscription","SignupUser","SigninUser","ResetPasswordRequest","ResetPassword","Owner","BackOfficeOrganizationSummary","BackOfficeListSummary","BackOfficeUser","BackOfficeSearchSummary","BackOfficeMember","CatalogItem","CatalogCategory","TableTemplate","Quotation","UserPrice","price","Price","BasePrice","users","RequestedUsers","HostedPage","PortalConfig","Plan","getPrice","period","periodUnit","currency","userCount","usersToBill","itemPrice","getItemPrice","PricingModel","Tiered","Tiers","sort","x","y","MinUnit","forEach","tier","userCountInTier","MaxUnit","getMandatoryAddOnsPrices","Prices","find","pp","Period","PeriodUnit","Currency","getUserPrice","t","getBasePrice","ip","MandatoryAddOns","ma","addonPrice","aoip","getItemPriceById","priceId","Id","getSetupFees","fees","SetupFees","sf","Chart","ChartParameters","Column","hasOption","option","setOption","isRowGroupingEnabled","RowIndex","AutoNumber","includes","Type","isMandatory","IsMandatory","isUnique","IsUnique","isFormula","IsFormula","isLookupMultiValued","IsLookupMultiValued","isCompact","IsCompact","isGenerated","isTechnical","isStatusColumn","StatusChangeByUserName","StatusChangeDateTime","isMember","CreationDate","LastWriteDate","MemberManagerEmail","MemberManagerName","LastWriteUserEmail","LastWriteUserName","OwnerEmail","OwnerName","CreatedByUserEmail","CreatedByUserName","isChildColumn","isNullOrWhiteSpace","ParentColumnId","showThousandsSeparator","DoNotShowThousandsSeparator","DecimalNumber","Number","Percentage","isBlob","File","Image","isPercentage","isEmail","isHyperlink","Hyperlink","isLookup","LookUp","LookUpList","parsedLookupItems","LookupValues","v","LookUpItem","color","strvalues","val","valueVM","isDateTimeFormat","DateTime","Reminder","isOwnerInfo","canBeCleared","Comment","canBeRemoved","canEditIsMandatory","TwoStatesBoolean","Relation","useSmartRenderer","UseSmartRenderer","canEditIsUnique","canEditIsLookupMultiValued","canEditMaxDecimals","canEditShowThousandsSeparator","canEditMinMaxValue","canEditMaxLength","Text","canEditLookupValues","canEditIsCompact","canEditLookupList","canEditDefaultValue","canEditFormula","canEditUseSmartRenderer","canEditIsFormula","isDateFormat","Time","canEditRelatedColumns","canEditGroupName","canEditSubname","canEditColor","formula","DefaultValue","HasParentColumn","canEditPrefix","canEditSuffix","internalColor","noColorDefined","CommandEvent","UserStore","VuexModule","CurrentUser","connectedUser","storeUser","user","IsAnonymous","currentUserLanguage","Language","TrackingUtils","UpdateUserDataLayer","storeUserLanguage","language","disconnectUser","async","API","load","cache","refreshUser","refreshUserLanguage","loadLanguage","commit","newLanguage","userLang","changeLanguage","setAttribute","signUpInfo","userLoggedUp","signup","demoGuid","loginStatus","demoSignin","returnedUser","credentials","signin","returnUrl","signout","userProfile","RowShare","Save","FirstName","LastName","NickName","TimeZoneId","DefaultOrgId","PreviewFeaturesEnabled","EmailNotifications","deleteRedirectUrl","delete","deleteAccount","__decorate","Mutation","Action","rawError","Module","dynamic","store","UserModule","getModule","VueI18n","supportedCulture","i18n","locale","fallbackLocale","fallbackRoot","loadAndSetWithUserLanguageAsync","doNotEnforce","userLanguage","activeLocale","sessionStorage","navigator","userLocale","loadAndStoreTranslationsAsync","activeLocaleUpdate","activeLocaleMessage","activeLocaleUpdateDate","now","translationMessage","setLocaleMessage","ColumnTypeCategoryName","FolderAccessMode","AccessOptions","FolderOwnerOptions","FolderOptions","SecurityPrincipalType","DataStatus","DisplayedRows","RowShareServiceFormat","GroupOptions","JobStatus","JobType","ListOwnerOptions","AccessLevel","AccessMode","ListAccessAuditAccesLevel","SettingNames","ReportOptions","ReportFormat","OutputDestinationType","ColumnTypes","betaTypes","hasRowMetadataSubscription","colTypes","pushColumnType","text","RichText","number","visual","defaultThreeStateBooleanLookupValues","defaultRatingLookupValues","lookUp","defaultLookupValues","media","row","formulas","types","strongType","category","icon","sortOrder","displayName","aliasID","hasRequiredSubscription","type","ColumnType","StrongType","DisplayName","Category","SortOrder","Icon","HasRequiredSubscription","categories","pushColumnTypeCategory","frequent","cat","ColumnTypeCategory","getColumnTypeCategories","header","getTypesForCategory","group","trueTypes","getFrequentTypes","getColumnTypes","filter","isFrequent","mustBeConfigured","strongtypes","mustRefreshValuesFromServer","Culture","DeleteAccountData","Folder","isOrganization","isEmptyGuid","OrganizationId","isUser","isRootFolder","ParentId","isOrganizationRootFolder","isUserRootFolder","FolderOwner","FolderAccess","guestName","Guest","Team","ManagedOfMember","Recursive","SecurityPrincipal","UserEmail","GroupId","GroupName","MemberEmail","MemberOrganizationId","Unknown","AllReports","DirectReports","Group","IsMyOrganization","ownerType","UserUnknown","MyOrganization","memberDisplayName","MemberName","DropdownMember","s","securityPrincipal","searchBy","assign","hasEmail","member","isNew","link","ImportResult","InviteLink","Job","hasFinished","Status","Finished","SourceDeleted","updateStatusAsync","interval","updateCallback","pollingJobs","pollingTimeout","setInterval","job","oldRef","clearInterval","splice","status","List","hasDescription","Description","CellsColorsList","colors","CellsColors","ListOwner","CopyListInfo","CopyListOptions","ListInformations","ExportContext","XlsFormatOptions","ListAccess","Read","none","None","ownedOnly","Create","Update","Suppress","Assign","WriteOwnedOnly","ReadOwnedOnly","Write","ReadWriteOwnedOnly","access","principal","listOfAccesses","readAccess","writeAccess","ListId","newListAccess","accessId","existsAccess","accessMode","getAccessMode","listId","create","read","update","suppress","simpleAccessLevel","userEmail","groupId","memberEmail","memberOrganizationId","accessOptions","elem","ac","accessToRead","accessToWrite","readAccessLevel","writeAccessLevel","isAdvancedAccess","NonExistentMember","newMember","Access","ListAccessesToSave","newAccessesForNewMembers","newAccesses","updatedAccesses","deletedAccesses","ListAccessAudit","ListCapabilities","Settings","ns","finalName","columnId","prop","columnsConfiguration","getJson","columnConfiguration","setJson","ListConfiguration","sideBar","SidebarConfiguration","valueColumn","rowGroupStatus","ListSettings","settings","configuration","currentSettings","loadListSettingsFromLocalStorage","displayModeVM","hiddenCols","getHiddenColumnsIds","listVM","list","specialRowsDisplayed","hiddenColumns","cId","saveListSettingsToLocalStorage","groupStatus","groups","existingGroup","gs","rowGroupColumnId","expanded","collapsedColumnGroups","getCollapsedColumnGroups","ccg","printMode","displayedRowIds","filters","getCurrentFilters","getCurrentSort","rowGroupColumns","getRowGroupColumnsIds","valueColumns","getValueColumns","visibleToolPanel","getVisibleToolPanelId","visibleToolPanelId","ListTree","ListTreeFolder","ListThumbnailInfo","Organization","AddOrganization","PostedFile","column","data","appendToFormData","formData","FileList","append","getFileName","hasData","fileName","Report","conversionHasFinished","ConversionNeeded","ConversionStatus","jobs","hasConversionError","updateConversionStatusAsync","pollingReports","report","api","ConversionErrorCode","ConversionErrorMessage","pr","ReportGenerationContext","Row","HasRelatedRows","ParentRows","surveyUserEmail","OwnerIdType","SubscriptionLimitType","UserListLinkTypes","ColumnAccessLevel","TeamType","RealTimeCollaborationEventType","ExceptionCode","CommentDetails","RelatedRow","SubscriptionLimit","UserListLink","isFavorite","Types","Favorite","isVisited","Visited","isAllRowsEmailNotifications","AllRowsEmailNotifications","isOwnedRowsEmailNotifications","OwnedRowsEmailNotifications","isNoEmailNotifications","UserNotificationLink","UserNotificationUpdate","View","ColumnAccess","Models","TeamGrant","Direct","Extended","ColumnId","RowAccess","ColumnAccessesToSave","computeConcernedEventsForUer","exceptions","events","Subscribe","UnSubscribe","RowCreate","RowDelete","RowCellUpdate","RowLock","RowUnlock","RowCellLock","RowCellUnlock","RowArchive","RowUnarchive","RowSave","RowSaveComment","RowDeleteComment","RowSaveBlob","RowDeleteBlob","ColumnSave","ColumnCreate","ColumnClone","ColumnDelete","ListDelete","exception","EditingCell","RtcHistoryItem","entity","formatStatus","rowId","getFromRecord","dateObject","getHours","padStart","getMinutes","formattedDate","colName","eventType","descriptor","allowGoToLink","scrollTo","scrollAndFlashCell","scrollAndFlashRow","rowNode","panelParams","getRowNode","rowIndex","ensureIndexVisible","flashCells","rowNodes","flashDelay","fadeDelay","ensureColumnVisible","columns","Cache","dictionary","containsKey","hasOwnProperty","RowShareException","apiResult","res","httpResponse","isJsonException","_code","Code","parseMessage","Message","ValidationErrors","validationErrors","_message","regex","IsJsonExceptionObject","ApiUtils","encodeURIComponent","xhr","response","HttpResponse","statusText","responseText","responseURL","endsWith","window","location","uri","setCulture","equalsIgnoreCase","rootUrl","culture","getCurrentCulture","setQueryStringParameter","mustUpdateUrl","href","separator","newUri","substr","setRequestHeader","withCredentials","buildUri","useCache","clearCache","promise","XMLHttpRequest","onreadystatechange","readyState","getResponseObject","isSuccess","createFromApiResult","open","setXmlHttpRequestConfiguration","send","responseType","contentDipositionHeader","getResponseHeader","filenameRegex","matches","file","FormData","toJson","appendFiles","apiPostJson","Blob","isArrayLike","fileColumnName","appendFilesWithColumnName","patternName","desc","FormatParams","tableUrlPrefix","formUrlPrefix","surveyUrlPrefix","columnFormUrlPrefix","jobsFormUrlPrefix","process","populate","object","nullableObject","objects","localizedErrorMessage","BoApi","searchStr","createRequestOptions","apiGet","encodeSegment","property","orgId","logoType","apiPostJsonWithFiles","organization","Catalog","CellColor","cellColors","CellColors","chart","rowIds","mergedOptions","orderedIds","OrderedIds","ids","toindex","displayedColumns","rtcConnectionId","columnIds","toIndex","RtcConnectionId","DefaultWidth","pinned","LeftPinned","accessesToSave","Configuration","ContactMessage","organizationId","depth","apiPostFile","organisationId","folderName","parentFolderId","creatingData","FolderName","ParentFolderId","folderId","parentId","renamingData","deletingData","FolderId","folderOwner","inheritMode","lists","recents","favs","folders","IdList","copyOptions","listOwner","listResponse","typeOfFile","folder","columnName","choiceArray","exportContext","apiPostJsonForFileResponse","listAccess","sendNotification","recaptchaToken","accessToSend","listAccessId","usercount","planId","quotation","nameConfirmation","OrgId","NameConfirmation","ordId","customerId","userQuantity","orgid","reportId","Normal","onlySummary","contacts","owner","files","apiPostJsonWithFilesAndColumnName","columnIndex","comments","content","RowId","ColumnIndex","Content","savedComment","comment","removedComment","removedFile","updateVersion","removeData","Version","removedRow","hardDelete","insertAtBottom","InsertAtBottom","CopyCreatedByUser","sourceListId","targetListId","moveBlobInsteadOfCopy","includeTeams","SocialProvider","providerName","inviteLinkId","loginOrSignup","action","queryString","TimezoneService","Translation","returnedStatus","rsExc","provider","token","emailToValidate","unsubscribeInfo","resetPasswordRequest","resetPasswordInfo","Token","teamName","idToken","notification","view","IsV3","ListTreeHelper","listTree","orgTree","searchFullOrganizationTree","RootFolder","IsRootFolder","IsTag","folderTree","findSubfolder","unshift","listTreeOrganizations","Organizations","currentOrg","getOrganizationTreeOrDefault","IsDefault","locaStorageLastUpdate","lastUpdateTS","retentionDelay","lastOrgId","organizationsTree","resetLocalStoreOrganizationsTree","storedOrg","org","isLocalStoredAllOrganizationsFresh","storedOrgs","orgs","breadcrumb","getFolderAndBreadCrumb","folderAndBreadcrumb","getFolderInOrganization","orgIdx","listInOrg","findListInFolder","directChild","Lists","l","Folders","tmpRes","parentFolder","CanCurrentUserCreateList","IsRecycleBin","Path","subFolder","getAuthorizedPaths","organizationTree","folderRecycleBin","searchedOrganization","ListTreeStore","Active","loadCurrentLogosIntoStore","payload","currentFullSiteLogoPath","fullSiteLogoPath","currentSmallSiteLogoPath","smallSiteLogoPath","loadListTreeIntoStore","currentOrganizationId","resetLocalStoreCurrentOrganization","currentOrganization","currentFolder","currentBreadcrumb","pathElements","getPathElementsOrDefault","loadOrganizationsTreeIntoStore","currentOrgId","defaultOrg","tree","loadCurrentOrganizationIdIntoStore","loadCurrentListIntoStore","oldListId","currentList","currentListCapabilities","currentListDisplayedRows","loadCurrentListCapabilitiesIntoStore","listCapabilities","loadCurrentListDisplayedRowsIntoStore","displayedRows","updateCurrentFolderIntoStore","updateCurrentListPathIntoStore","getPathElementsForList","refreshListTreeIfMissing","enforce","refreshOrganizationsTreeIfMissing","isLocalStoredOrganizationFresh","getLocalStoreListTree","refreshListTree","getLocalStoreOrganizationsTree","refreshOrganizationsTree","setLocalStoreCurrentOrganization","catch","setLocalStoreOrganizationsTree","UpdatePathContext","allowSurvey","loadForSurvey","FullSiteLogoPath","SmallSiteLogoPath","folderAndOrg","createdFolder","rename","deleteInfo","moveToRecycleBin","recycleBin","inheritConfig","modifiedFolder","setInheritAccessMode","renameInfo","save","renamedList","moveInfo","move","listToMove","refreshOrganizationListTree","moveToRecycleBinInfo","infoToEmptyRecycleBin","emptyRecycleBin","recycleBinId","clone","copyInfo","refreshList","isPublicList","AllowPublic","previousOrgId","This","refreshOrganizationListTreeIfMissingOrOutdated","existent","IsKnownList","refreshListPathAndStore","otherorg","ListTreeModule","currentDataLayer","dataLayer","dtUser","OrganizationName","OrganizationIsAdmin","CanCurrentUserManage","InTrial","OrganizationBillingStatus","IsFree","isListOwner","Owned","dispatchEvent","CustomEvent","connected","userId","k","Identity","isMsTeamsApp","eventName","ApplicationStore","getAppInsightsKey","appInsightsKey","getIsMobileStatus","isInMobileApp","getIsMsTeamsApp","getPasswordRegex","passwordRegex","updateAppInsightsKey","updateDevice","updatePasswordRegex","updateIsMsTeamsApp","UpdateIsMsTeamsAppDataLayer","updateAppCommands","commands","mobileAppCommands","updateAppPreviousLocation","mobileAppPreviousLocation","toggleDescriptionDisplay","descriptionCommand","SHOW_DESCRIPTION_DIALOG","currentState","isActive","toggleRecentDisplay","recentCommand","TOGGLE_RECENT","toggleFavouriteDisplay","favouriteCommand","TOGGLE_FAVOURITE","OnPremStore","getIsOnPrem","isOnPrem","updateIsOnPrem","OnPremModule","_setup","FormValidation","created","addValidationRules","extend","required","confirmed","is","getValidationState","dirty","validated","valid","setValidationLanguage","localize","en","es","fr","staticClass","GetHomeUrl","$vuetify","breakpoint","require","_v","_e","class","scopedSlots","fn","isBreadcrumbRootInLongDisplay","_s","getUser","isNotOnPrem","$t","signInLink","isCheckoutBtnVisible","mobile","hasCustomRSLogosForLogin","IconPath","domProps","$event","stopPropagation","_u","proxy","changeLocale","on","onAddRowShareSupport","EventBus","lmCurrent","mainActionUrl","mainActionName","PageTitle","hasMainAction","Prop","default","showRecents","recentLinkUrl","showFavorites","favLinkUrl","model","searchText","callback","searchInsideCurrentFolder","resetSearch","props","displaySearchResult","preventDefault","createTableLocation","dragStart","directives","rawName","expression","selectedQuestion","ResLoader","existingElement","querySelector","elt","rel","appendChild","MyTablesDisabledOrganization","scriptPromise","$loadScript","loadCss","mounted","UpdateLimitInfos","canCheckOutAlone","openCalendly","Calendly","initPopupWidget","$i18n","Watch","getTableUrl","idx","doNothing","onCancel","$$v","selectedOrganization","loadingFolders","selectedFolder","processingAction","CopyListDialog","$on","Events","LIST_COPIEDORMOVED","onCopyMoveDone","destroyed","$off","listName","isListOwned","isListInRecycleBin","IsInRecycleBin","isCopyInOtherSubscription","openModalToCopyMove","refreshCurrentList","selectedAction","actionMove","actionCopyWithRows","openModalCopy","initOrgsAndFolders","actionButtonText","actionCopyWithoutRows","title","canCopyMoveTable","destination","organizationChanged","loadFolders","folderChanged","organizations","loadingOrganizations","loadall","finally","loadAllForOrganization","processAction","copyList","moveList","errorMessage","newList","refresh","otherOrg","newRoute","RouterUtils","pushRouteTo","getCopyListInfo","CopyReports","CreateNotifications","RowsAutoHeight","CopyRows","other","cloneList","$emit","listToMoveData","allInfoToMove","moveFrom","openModalToRename","_t","openModalRename","listThumbnail","renameListServerErrorMessage","renameListConfirmed","cancelled","dialogState","ref","inputPlaceholder","externalError","inputTextName","inputTextVid","inputTextValidationRules","validationContext","errors","filled","blured","InputText","emitTextValueChanged","valueParam","onKeydown","event","focusInput","$nextTick","$refs","textInput","focus","components","ValidationProvider","SingleFormDialog","formModel","observer","reset","validate","ValidationObserver","RenameList","nameParam","listInfo","renameList","openModalToRecycleBin","openModalRecycleBin","moveToRecycleBinConfirmed","description","onSubmit","ConfirmationDialog","persistent","MoveListToRecycleBin","IsReferenced","GLOBAL_NOTIFICATION_RAISED","autoHide","autoHideAfterMs","duplicateId","CONFIRMATION_REQUIRED","description1","description2","actionButtonIcon","actionButtonColor","onConfirmation","cancelButtonText","getRecycleBin","infoToMoveToRecycleBin","openModalToDelete","openModalDelete","deleteListServerErrorMessage","deleteListConfirmed","DeleteList","deleteList","ListActionSubmenu","ListThumbnail","focusComponent","focusedComponent","focusLost","getIcon","ListActionsSubmenu","leftElement","FolderThumbnail","badgeTooltipsContent","TotalListCount","getContentUrl","enteredElement","getElementById","listDragged","classList","add","remove","CanCurrentUserCreateFolder","CanCurrentUserRenameFolder","update:new-name","$set","CanCurrentUserManageAccesses","update:organization-id","update:folder-id","emptyRecycleBinErrorMessage","emptyRecycleBinConfirmed","recycleBinModal","canCreate","createFolderModal","dialogAlreadyExistInDOM","createFolderDialogName","createFolderServerErrorMessage","createFolder","CreateFolderAction","createInfo","existingFolder","getFolderByNameInParentFolder","existingList","getListByNameInParentFolder","Exception","canRename","renameFolderModal","renameFolderDialogName","newName","renameFolderServerErrorMessage","renameFolder","RenameFolderAction","newFolderName","existingFolderInAboveLevel","existingListInAboveLevel","canDelete","deleteFolderDialogName","getDescription","deleteFolderServerErrorMessage","isDeleting","moveFolderToRecycleBin","DeleteFolderAction","resetErrorMessage","parentTableLocation","removeFolder","$router","canEdit","authorizationModal","editAuthDialogName","displayInheritConfiguration","inheritAccess","usersListFolderAccesses","onChangeSaveFolderAccess","selectedPrincipal","newFolderAccess","classes","tooltip","bigram","BigramHelper","backgroundColorIndex","ownerId","ownerIdType","dense","xsmall","getBigramClasses","rowOwner","columnAccess","rtcUser","bgIndex","BackgroundColorIndex","getNormalizedSecurityPrincipalType","ownerName","validateEmail","getBigramTooltip","authorName","Bigram","getBigramClassesForListAccess","getBigramClassesForSecurityPrincipal","getBigramClassesForRowOwner","getBigramClassesForColumnAccess","getBigramClassesForRtcUser","getBigramTooltipForListAccess","getBigramTooltipForSecurityPrincipal","getBigramTooltipForRowOwner","getBigramTooltipForColumnAccess","getBigramTooltipForForRtcUser","Boolean","onValueChanged","onNewTag","close","getIconPath","slot","SecurityPrincipalDropdown","initListItems","multiple","selection","principals","loadForOrganization","filterExistingPrincipalsIds","filterExistingPrincipals","showMyOrganization","allPrincipals","evtArgs","vals","vm","createTagPlaceholder","currentGuestSearch","placeholder","customPlaceHolder","newTag","newItem","onTagboxSearchChanged","searchQuery","isValidEmail","isDuplicate","g","memberAlreadyExists","p","canCreateTagForCurrentSearch","activate","multiselect","clearSelection","path","startsWith","Multiselect","PermissionDialog","super","displayAddForm","DontInherit","loadAccesses","permissions","folderAccessToSave","newCreatedFolderAccess","saveAccess","toggleAddForm","isError","hideModal","setInheritAccess","removeAccess","deleteAccess","deletedAccess","savedAccess","currentDisplayedPrincipals","currentListOfFolderAccess","EditAuthorizationAction","canManage","manageOwnersModal","manageOwnersDialogName","tableTitle","textOption","organizationUsers","isUserDisabled","selectedUserEmail","OwnerDialog2","currentOwners","loadOwners","folderOwners","currentOrganizationUsers","loadForParent","newOwner","OwnerOrganizationId","addedOwner","saveOwner","alreadyOwner","_","removedOwner","deleteOwner","ManageOwnersAction","OwnersDialog","MyTablesActions","query","personalOrgRootFolderIds","style","width","dimension","height","PageLoadSpinner","ArrayUtils","sortField","sortDirection","toggleSortDirection","JsonObjectSearch","searchtarget","searchField","objectScan","filterFn","parents","breakFn","lowercasedValue","lowercasedName","SearchResult","orderedFolders","orderedLists","orderedDeletedFolders","deletedFolders","orderedDeletedLists","deletedLists","resultNumber","deletedResultNumber","allResultNumber","SEARCH_TRIGGERED","onSearchTriggered","searchResult","searchAllNodesByName","deletedItems","SEARCH_RESET","ListBrowser","onToggleRecentOrFavorites","onSearch","onSearchReset","refreshTrees","updateTabTitle","beforeDestroy","viewAll","lmRecents","lmFavorites","canAddNewList","HasRemainingListSlot","otherOrganizations","o1","o2","localeCompare","orgIcon","ev","fol","folderIdDragged","clearDragInfo","clearStyleClass","droppedItem","MyTables","search","selectedCategory","filterCategory","entry","loadingEntry","CatalogStore","isCatalogEmpty","catalog","isCategoryListEmpty","catalogItemList","categoryList","itemIsNotInTheListYet","inCatalog","isListInCatalog","storeCatalogTemplate","Title","LongDescription","InCatalog","getTableTemplateInfoById","tableTemplateInfo","findStatus","inCatalogStatus","currentItem","MutationAction","mutate","CatalogModule","headerTitle","isFileLoading","signUpLink","hasClickedCreateBlankTable","CreateTableActions","userNotConnected","onFileChanged","importError","importErrorMessage","excelFile","size","$route","import","getCreateBlankTableUrl","folderIdStr","openFile","click","ReturnUrl","fullPath","gotToDemo","CreateTable","filteredCatalog","searchEngine","indexedCatalog","LOCALE_CHANGED","onLocaleChanged","initCatalog","hasChangedLanguage","fetchCatalogData","allCategory","tc","Color","activeCategory","initSearch","shouldSort","threshold","minMatchCharLength","distance","Fuse","getCreateTableUrl","listIdStr","useTemplate","catContent","pageTitle","fromSignup","pageDescription","stillLookingSubtitle","currentRowId","highlightRows","canShowSharingBar","gridViewVM","canAddColumn","onAssignRowsDialogClosed","updatingName","locked","manageOwners","onMenuToggle","openTableSettings","printTable","excelMenuOpened","exportMenuOpened","onExportAuditClicked","displayDescription","showDescription","userListLinks","removeFromFavorites","addToFavorites","selectedEmailNotifications","unsubscribeFromEmailNotifications","onCancelManageOwners","removeOwner","isUserOwner","defaultProps","TableOwnerSelector","maxHeight","closeInput","field","blur","listOwners","currentOrganizationMembers","organizationMembers","m","LISTINFO_CHANGED","KeyCodes","showDialog","showToaster","toasterColor","closeToaster","Toaster","SurveyModeDialog","AllowSurvey","savingList","updateCurrentList","surveyUrl","protocol","host","openDialog","copyLink","copyToClipboard","execCommand","toasterText","toasterIcon","clipboardData","setData","removeEventListener","viewManager","currentView","confirmSaveCurrentView","personalView","sharedView","canDeleteView","isSaveViewDialogOpen","viewBeingSaved","viewBeingReplacedSummary","saveErrorMessage","isSavingView","saveCurrentView","ViewSelector","applyDefaultView","applyView","canSaveCurrentView","baseConfirmSaveView","confirmUpdateExistingView","getViewSummary","viewConfigBeingSaved","getCurrentViewConfig","savingViewSummary","getViewConfigSummary","Data","saveView","Shared","deleteView","arguments","exportToExcel","fileSelected","ImportDialog","initExportContext","Xls","formatOptions","IncludeRowDetails","OpenXml","Export","URL","createObjectURL","download","gridApi","tmpRowIds","isFiltered","forEachNodeAfterFilterAndSort","rsRow","initDialog","selectFile","input","fileImportInput","processingFile","importRows","gridChanged","AddedRows","addRowsInUI","UpdatedRows","updateRowsInUI","tryRefreshTotalRow","models","GRID_INFOS_CHANGED","reload","ListToolbar","specialRowsName","Deleted","organizationCleanDeletedRowsDelay","Archived","specialRowsChipColor","teal","lighten3","hasArchiveRows","HasArchiveRows","hasRowMerge","HasRowMerge","showDescriptionNextTimeLabel","downloadExcel","downloadFile","downloadCsv","Csv","opened","loadListInfo","initUserListLinks","initCurrentListInformations","GRID_CLEAR_FILTERS","clearSearch","GRID_SEARCH_CHANGED","onExternalSearchChanged","currentListInformations","information","hidePermissionsMessage","returnToTable","updateCurrentListDisplayedRows","isLoggedIn","links","loadByList","listIconUrl","ownersNicknames","OwnersNicknames","maxOwnersDisplay","owners","othersOwners","join","notificationsIcon","allNotifications","ownedNotifications","noNotifications","notificationsIconColor","SubscriptionCleanDeletedRowsDelay","getRowMergeGenerationContext","totalTableRowCount","RowCount","hasReadOnlyRows","CanUpdate","isLocked","canRunRowMerge","rowMerge","onRowMergeClicked","ROWMERGE_REQUEST","SHOW_UPSELL_DIALOG","body","LoadedByReadOnlyMember","showManageTableOwners","NoEmailNotifications","hideDescription","onListNameKeyDown","keyCode","DOM_VK_RETURN","saveListName","DOM_VK_ESCAPE","isEditing","nameUpdateErrors","LISTNAME_CHANGED","exc","editListName","onDeletedRowsClicked","onArchivedRowsClicked","canShowArchivedRows","showReturnToTable","resolved","pivotTable","onGridSearchChanged","searchTextChangedTimeout","saveValue","source","getDescriptionContent","linkifyStr","target","SHOW_SIDEPANEL_TABLE_SETTINGS","copyListDialog","surveyModeDialog","myOrganizationName","myOrganizationIconPath","firstListUsersAccesses","addNewGuests","selectedColor","rowGroupsTooltipText","clearRowGroupsTooltipText","groupMenuOpened","toggleRowGroupColumnSelected","isRowGroupColumnSelected","ListStore","loadCurrentListAccessesIntoStore","accesses","currentAccesses","updateListAccess","accessIndex","removeListAccess","updatedAccess","updatedList","ListModule","clearColor","ColorPicker","swatches","theme","currentTheme","color0","color1","color2","color3","color4","color5","color6","color7","color8","color9","color10","color11","color12","color13","color14","color15","color16","color17","color18","color19","color20","color21","color22","color23","color24","color25","color26","color27","color28","color29","color30","color31","selectedValue","selectedColorName","colorClass","colorUpdate","hex","ModelSync","userConfirmed","ListAnalysisDialog","LISTANALYSIS_REQUEST","init","Api","requestListAnalysis","IsValid","Value","success","closeDialog","Errors","GetApiErrorDescription","SharingBar","onGridInfosChanged","GRID_SELECTION_CHANGED","onGridSelectionChanged","ROW_MODIFIED","rowVM","obsoleteFilters","LISTACCESSES_CHANGED","onListAccessesChanged","beforeMount","currentAnalysis","loadLastAnalysisJob","clearAllJobUpdateTimeout","refreshIndicators","cellSelected","onColorSelected","GRID_CHOOSE_CELL_COLOR","closeGroupMenu","onListAnalysisChipClicked","AnalysisDone","LISTANALYSIS_SHOWRESULTS","onAnalysisRequested","canRequestAnalysis","hostname","analysisIcon","analysisChipColor","analysisLabel","getStatusString","canChooseColor","currentListColumnsForRowGrouping","externalAccessAllowed","listUsersAccesses","acc","otherListUsersAccesses","otherListUsersAccessesCount","hasOtherListUsersAccesses","hasAdvancedListAccesses","listMyOrganizationAccess","clearFiltersTooltipText","clearHiddenColumnsTooltipText","SHOW_SIDEPANEL_SHARING","addGuest","advancedMode","refreshCurrentAccesses","editSharing","isListShared","sharedWithMyOrganization","rowsCountLabel","totalRowsCount","visibleRowsCount","columnsCountLabel","totalColumnsCount","visibleColumnsCount","rowGroupsLabel","rowGroupsCount","rowGroupsColNames","canClearRowsFilter","canClearHiddenColumns","canClearRowGroups","selectedGroupColumnIds","clearFilters","clearRowGroups","GRID_CLEAR_ROWGROUPS","clearHiddenColumns","GRID_CLEAR_HIDDENCOLUMNS","restoreFilters","RESTORE_FILTERS","GRID_REMOVE_ROWGROUP","GRID_ADD_ROWGROUP","onAssignRowsClicked","canDeleteRows","onDeleteRowsClicked","onCopyMoveRowsClicked","canRemindUsers","onRemindUsersClicked","deletedRowsDisplayed","onRestoreRowsClicked","onUnarchiveRowsClicked","cloneErrorMessage","onCloneRowsModalAfterEachClicked","isCloningAtBottom","dialogOpened","processingError","targetLists","CopyMoveRowsDialog","processingTransfer","processingCopy","processingMove","hasErrors","hasComparaisonErrors","comparaisonErrors","siblingsLabel","copyDisabled","moveDisabled","selectionHasLockedRows","rows","r","loadingSiblings","loadSiblings","siblings","copyMoveRows","processCopyMoveRows","rowVMs","node","ROW_DELETE","deselectAllRows","moveBlobInsteadOfCopyStr","getCaseInsentiveQuery","copy","GetErrorDescription","sendingReminders","RemindUsersDialog","sendingRemindersTo","membersToNotify","membersList","formatMembersList","didntSentTo","notNotifiedMembers","memberList","selectedRowsIds","rvm","canSendReminders","noOneToSend","loadingRecipients","getRowOwners","members","IsUser","sendReminders","SendOwnerReminders","maxMembers","sep","memberCount","showMe","assignRows","MemberHelper","mail","ORGANIZATION_CHANGED","AssignationDialog","ASSIGNROWS_REQUEST","selectedRows","destroy","processing","addMemberIfNecessary","setAssignation","getAssignationResultFromSecurityPrincipal","innerSave","RealTimeCollaborationStore","signalR","withUrl","configureLogging","Warning","build","hasAudit","HasAudit","hasRtcHistory","HasRtcHistory","isAdmin","currentUser","connection","_connection","ConnectedUsers","connectedUsers","getHistory","history","updateHistory","h","updateConnectedUsers","incomingUsers","addEditingCell","editingCell","connectionId","inEditionCells","addNewRow","createdRows","removeEditingCell","updateEditingCellsForSubscribeEvent","eCells","ec","updateEditingCellsForUnSubscribeEvent","isSupportedEvent","processHistory","coWorkers","remainingUsers","coWorker","editingCells","state","processBroadcastEvent","processSubscribeEvent","processUnSubscribeEvent","processEditingCellsEvent","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","start","nonConcernedEvents","consideredEvents","connectionDate","toISOString","methodToInvoke","authorEmail","invoke","stop","RealTimeCollaborationModule","SelectedRowsBar","selectedRowVMs","hasApiErrors","apiErrors","archivedRowsDisplayed","hasLockRows","HasLockRows","canCloneRows","hasUniqueColumns","canAddNewRow","canAddSeveralNewRows","canCloneRowsAfterEach","isSorted","onCloneRowsClicked","isCloneRowsModalOpen","cloneSelectedRows","isCloningAfterEach","closeAndResetAllModals","lastIndex","cloneMultiple","clonedRows","nbCloned","currCloned","insertClonedRowInUI","scrollToIndex","nbSelectedRows","clonedRow","getRowNodeIndex","newAgIdx","ROW_ADDED","canArchiveRows","onArchiveRowsClicked","DescriptorFormattedValue","alreadySavedRows","apiRes","archive","vms","ROW_ARCHIVE","ROW_ERROR","canUnarchiveRows","unarchive","ROW_UNARCHIVE","CanSuppress","HasUserReadOnlyColumn","HasUserHiddenColumn","parentRowsInSelection","IsParentRow","deleteBatch","deleteRowsButtonLabel","canAssignRows","CanAssign","canCopyMoveRows","isCopyMoveRowsModalOpen","rowMergeGenerationContext","readOnlyRowsInSelection","ReportCount","isRemindUsersModalOpen","Restore","ROW_RESTORE","sr","selectionHasUnlockedRows","canLockRows","lock","canUnlockRows","unlock","isCurrentModalLoading","selectedrsRows","rsRows","readyToShowTheGrid","staticStyle","listColumns","defaultColumnSettings","gridOptions","bottomPinnedRows","tabToNextCell","postProcessPopup","getLocaleText","gridReady","onCellValueChanged","onSelectionChanged","BaseColumnProxy","parseInitialTypedValue","rsColumn","Values","getFormulaError","getAPIVal","areEquals","val1","val2","shouldSuppressKeyboardEvent","rsCol","isAlwaysEditable","getFormattedHtml","getFormattedText","getFormattedHtmlTooltip","getCellIconClasses","getRendererWrapperClass","getRenderer","getCustomFilter","getCustomFilterParams","excelMode","comparator","valueA","valueB","normalizeString","refreshValuesOnOpen","caseSensitive","textFormatter","getQuickFilterText","canShowTotal","addToTotal","currentAggResult","formatTotal","aggResult","rowCount","getRowCountFormat","basePattern","valueCount","totalRowCount","getClipboardValue","getContextMenuEntries","getEnableRowGrouping","getEnableAggregate","enablePivot","compareValues","valX","valY","nodeX","nodeY","NumericColumnProxy","Index","num","formatNum","Prefix","Suffix","toLocaleString","useGrouping","minimumFractionDigits","MaxDecimals","maximumFractionDigits","inRangeInclusive","filterOptions","displayKey","predicate","filterValue","cellValue","numberOfInputs","getValue","TextColumnProxy","span","innerHTML","textContent","innerText","escapeHTML","cellRenderer","valueFormatter","TimeColumnProxy","timespan","rowBaseVM","isTotalRow","RowVM","rowVMId","nextRowVMId","Locked","editionInProgress","EditionInProgress","newRow","maxIdx","tmpIdx","col","RsColumnManager","getProxy","setValue","columnProxy","dirtyValues","dirtyVal","valuesBeingSaved","valBeingSaved","cellNotAccessible","getAssignation","ColumnVM","rowOwnerHeaderId","OwnerId","getOwnerSortValue","assignation","oldValue","setRelatedRow","related","getRelatedRow","modified","ParentRowId","ChildRowId","RelationColumnId","getParentRowsAsync","setInsertBeforeRowId","insertBeforeRowId","insertBeforeRowIdId","beforeId","rowPositionLast","newValue","isAnonymousSurveyAnswer","resetAllErrors","notifyRowVMUpdated","filesToSave","filesToDelete","relatedRowsToSave","valuesToSave","colAccessor","colValue","rrts","shoudRefreshOthers","moveLast","apiSavedRow","InsertBeforeRowId","MoveLast","IsAnonymousSurveyAnswer","savedValue","rowAfterFileDelete","deleteRowFile","assignRowOwner","OwnerHasAccessToList","warning","showActionButton","actionButtonClick","sp","inviteParams","selectedGuests","ROW_SAVED","refreshRowsFromServer","hasError","_globalErrorMessage","_cellsErrorMessages","errorTitle","shouldResave","refreshCell","hasCellError","getCellError","cellError","isSavingCell","cell","isReadOnly","LookupColumnProxy","parseMultivaluedCell","formatValue","lookupItems","firstTag","allTagsButFirst","getItemClasses","loadChoice","lookupValues","lookuplistValues","LookupListId","LookupListColumnName","valx","valy","suppressSorting","getFilterValues","itemIndex","formattedX","normalize","formattedY","PercentageColumnProxy","minValue","valueRange","MinValue","MaxValue","position","cellContent","MemberColumnProxy","iconClasses","isSurveyUser","OwnerBackgroundColorIndex","keyCreator","convertValuesToStrings","caseSensitiveX","caseSensitiveY","DateTimeColumnProxy","StatusDateUtc","parseDateTime","moment","getFullYear","getMonth","getDate","toJSON","isDateTimeValue","dateStyle","timeStyle","getSeconds","toLocaleDateString","reminderDate","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","currentDate","filterLocalDateAtMidnight","dateCellValue","dateToCompare","EmailColumnProxy","HyperLinkColumnProxy","TwoStatesBooleanColumnProxy","parseBoolean","BlobColumnProxy","innerGetHtml","isThumbnail","isImage","ContentType","downloadUrl","AbsoluteFileUrl","pathname","thumbnailUrl","FileName","ImageUrl","LastWriteTimeUtc","Size","fileVM","ShowImageContextMenuEntry","CommentColumnProxy","count","CommentCount","ProxyBasedRenderer","colVM","colDef","cellContainer","wrapperClass","errorIcon","savingIcon","getVal","cellIconClasses","cellIcon","display","getGui","paramsVal","formulaError","CommentRenderer","commentCount","RowOwnerHeaderRenderer","bigramElement","createBigramElement","ShowOwnerInformations","TotalRowHeaderRenderer","TotalRowRenderer","ProxyBasedTooltipRenderer","html","GroupRowRenderer","textOverflow","overflow","currentFile","removeImageConfirmation","canUpdateFile","FileVM","BlobField","fileSize","humanFileSize","canRemoveImage","focusButton","imputElt","inputFile","element","openPickerBtn","$el","onFileUpdated","newFile","selectedFile","removeImage","confirmRemoveImage","authorizedFiles","BlobEditor","pCurrentFile","stopEditing","nextTick","tabRef","thisTabRef","colId","blobfield","isPopup","openCommentDialog","CommentEditor","btn","ROW_EDIT_COMMENTS","refreshParentRow","updatedRow","refreshCells","force","formattedDateTime","pickerValue","chooseNow","DateTimeEditor","isInitialized","datetimeInput","isDateTime","isReminder","selectionMode","isRequired","updateDatePicker","selectedDateTime","picker","datePicker","pickerChanged","isValid","nowLabel","closeEditor","cancel","is24hrTimeFormat","linkUrl","nameLabel","onNameTabPress","linkName","HyperlinkEditor","canEditValue","refreshDisplay","urlField","eventKey","displayNameField","onUrlTabPress","shiftKey","urlLabel","formattedLinkUrl","urlPlaceholder","namePlaceholder","disableLink","minWidth","_k","ctrlKey","altKey","metaKey","onTabPressed","onShiftTabPressed","onEnterPressed","onCtrlEnterPressed","onDropdownClosed","LookupField","loadingItems","initSelectedValues","stringValues","selectedValues","strVal","isSelected","LookupEditor","lookupfield","getActualWidth","setFocusedCell","tabToPreviousCell","NumberEditor","rsColumnSettings","onInput","formattedValue","onChange","numberInput","maxValue","distractionFree","hideCurrencySymbol","hideGroupingSymbol","hideNegligibleDecimalDigits","$ci","globalOptions","numeral","multiply","divide","openRelationDialog","RelationEditor","ROW_EDIT_RELATED_ROWS","relatedListId","RelatedListId","cardWidth","editorContent","editor","RichTextField","editorOptions","extensions","StarterKit","Underline","onUpdate","getHTML","onBlur","editorProps","handleKeyDown","autofocus","Editor","setContent","editorView","EditorContent","RichTextEditor","minimumWidth","getPopupPosition","richtextfield","stopImmediatePropagation","RowOwnerHeaderEditor","TextEditor","MaxLength","maxLength","TimeEditor","TwoStatesBooleanEditor","startEditWithKeyboard","rootElt","ckb","inputElt","getElementsByTagName","menuOpened","removeRelationColumn","columnGroupHeader","relationColumnId","relationColumn","isMenuEnabled","gridContext","currentRoute","columnGroup","getChildren","colDefs","getColumnDefs","deletedIndex","def","headerGroupComponentParams","setColumnDefs","redrawRows","GRID_ERROR","showColumnSettings","SHOW_SIDEPANEL_COLUMN_SETTINGS","toggleExpanded","setExpanded","isExpanded","hover","columnDescription","isSortable","getId","showColumnDescription","isRowGroupColumn","_l","colDesc","rowGroupsColumns","groupedColumn","ColId","mandatoryDescription","formulaDescription","ColumnDescription","ColumnDescriptionVM","currentColumn","columnTitle","columnHasSpecialProperties","columnIsMandatory","columnSorted","columnHasPermissions","columnIsReadOnly","columnHasReadOnlyPermissions","columnHasHiddenPermissions","HasHiddenPermissions","HasReadOnlyPermissions","columnSubName","SubName","columnIsFormula","sortDescription","columnSortedAsc","columnSortedDesc","readOnlyDescription","readOnlyPermissionsDescription","hiddenPermissionsDescription","hiddenColumnDescription","hiddenColumnsCount","hiddenColumnsBesideCount","getSortIcon","specialColumnIcon","permissionsIcon","columnIsChild","columnGroupName","ColumnGroup","ColumnDescriptionCollection","descriptions","colDescVM","isFirstOfGroup","prevColumn","isMiddleOfGroup","nextColumn","isLastOfGroup","groupRowColumnDescriptionVM","columnSettings","columnApi","rowGroupsColumnsNames","rgc","headerName","getRowGroupColumns","getColDef","columnHeader","currentColumnSettings","autoGroupColumnId","sortChanged","menuVisibleChanged","filerActiveChanged","refreshDescriptionDisabled","enableSorting","enableMenu","getColumnDef","colState","getColumnState","hiddenColCount","hiddenCol","hide","getColumn","toggleSort","progressSort","getSort","columnFiltered","isFilterActive","filterColumn","filterMenuOpened","parentElementPrefix","openColumnMenu","isMenuVisible","columnMenuOpened","descriptionDisabled","columnMenu","tabs","coldef","menuTabs","parentElement","showColumnMenu","getFilterIcon","showHiddenColumns","showHiddenColumnsBeside","_proxies","_textProxy","_numberProxy","_percentageProxy","_dateTimeProxy","_lookupProxy","_memberProxy","_blobProxy","RowOwnerHeader","AutoNumberEditor","CreatedByUserEmailEditor","CreatedByUserNameEditor","DateEditor","DecimalNumberEditor","EmailEditor","FileEditor","ImageEditor","LastWriteUserEmailEditor","LastWriteUserNameEditor","LookUpEditor","LookUpListEditor","MemberManagerEmailEditor","MemberManagerNameEditor","OwnerEmailEditor","OwnerNameEditor","PercentageEditor","ReminderEditor","rsList","listSettings","valueGetter","valueSetter","tooltipValueGetter","savedWidth","getColumnProperty","editable","checkIsEditable","bind","chartDataType","toolPanelClass","lockPinned","autoHeight","cellRendererSelector","cellEditor","tooltipComponent","customFilter","customFilterParams","filterParams","suppressKeyboardEvent","editing","cellClassRules","getCellClassRules","cellClass","getCellClasses","headerClass","getHeaderClasses","isHiddenColumn","nodeA","nodeB","isInverted","comparedValues","enableRowGroup","enableValue","hc","ColorType","All","Header","cc","columnColor","Cells","leftCol","getDisplayedColBefore","getColId","colStates","cs","finished","gridCol","refreshHeader","statusChangeByUserId","statusChangeDateTimeId","setColumnProperty","newWidth","saveWidth","savePinned","getDisplayedColAfter","moveColumn","GridActions","removeFromUICallback","removed","GridContextMenu","menuItems","getEditingCells","colActions","RowFormViewContextMenuEntry","SidePanelFormViewContextMenuEntry","CloneRowContextMenuEntry","InsertRowContextMenuEntry","RestoreRowContextMenuEntry","UnarchiveRowContextMenuEntry","hasReadOnlyColumns","hasHiddenColumns","DeleteRowContextMenuEntry","activeRowsDisplayed","UnlockRowContextMenuEntry","ArchiveRowContextMenuEntry","LockRowContextMenuEntry","RowIdContextMenuEntry","SHOW_SIDEPANEL_FORMVIEW","ListVM","addRow","defaultLabel","removeRow","archiveRow","applyTransaction","archiveIcon","cssClasses","ROW_LOCKED","lockIcon","ROW_UNLOCKED","unlockIcon","Vuetify","mobileBreakpoint","icons","iconfont","customProperties","themes","light","lightest","darkest","primary","darken1","base","lighten1","lighten2","secondary","grey","deeppurple","deepPurple","accent1","darken4","darken3","darken2","lighten4","lighten5","backgrounds","facebook","google","excel","windows","columnContextMenu","grid","hasHiddenColumnBeside","displayedColBefore","firstColumn","lastDiplayedColumn","isAutoGroupColumn","listOwned","colIndex","columnSettingsMenuEntry","columnPermissionsMenuEntry","toggleMandatoryColumnMenuEntry","vuetify","framework","getPinned","togglePinColumnMenuEntry","hideColumnMenuEntry","showHiddenColumnsMenuEntry","expandAllMenuEntry","collapseAllMenuEntry","columnTypes","HasRowMetadatas","columnTypeIndex","columnType","insertColumnBefore","cloneColumnAfter","lockPosition","removeColumnMenuEntry","isAllowRowGroup","isRowGroupActive","clearRowGroupsColumnMenuEntry","showCalendarView","ADD_COLUMN","insertBeforeColumnId","cloneColumnResult","insertColumnInUI","startColumnId","router","SHOW_SIDEPANEL_COLUMN_PERMISSIONS","expandAll","collapseAll","toggleMandatoryColumn","mandatoryIcon","savedColumn","removeFromGroup","children","hideColumn","togglePinColumn","execOnceColumnApiIsReady","RowTotalVM","total","forEachNodeAfterFilter","ViewManager","registerListener","onListUpdated","loadAllView","onColumnsUpdated","onRowVMsUpdated","onBeforeRowVMsUdated","onRowVMUpdated","forceReload","idToSelect","isLoadingAllViews","allViewsLoaded","sharedViews","personalViews","views","lastUsedId","getLastUsedViewId","onViewDataChanged","newState","currentSort","rowGroupCols","valueCols","isNotDefault","onFilterChanged","onSortChange","onColumnVisibleChanged","onColumnRowGroupChanged","onColumnGroupOpenedChanged","clearSortOrder","clearValueColumns","clearCollapsedColumnGroups","saveLastUsedViewToLocalStorage","viewConfig","applyFilters","applySort","applyHiddenColumns","applyValueColumns","applyRowGroupColumns","applyCollapsedColumnGroups","newView","allSortStr","sortedColName","sortPattern","hiddenColumnsNames","hiddenColPattern","entries","filteredColName","rowGroupColumnsNames","rowGroupColCount","collapsedGroupsPattern","viewId","GridViewVM","refreshRowAssignedToCurrentUserCount","removeRowsFromGrid","rowVms","onRowGroupsCleared","onCellColorSelected","onRowGroupColumnAdded","onRowGroupColumnRemoved","updatedRows","GRID_SHOW_ROWS","flashRows","COLUMN_PERMISSIONS_CHANGED","onColumnPermissionsChanged","processRowCellUpdateEvent","processRowCreateEvent","processRowDeleteEvent","processColumnDeleteEvent","processColumnCreateEvent","processColumnSaveEvent","processColumnCloneEvent","processRowSaveComment","processRowDeleteComment","processRowSaveBlob","processRowDeleteBlob","processRowLockEvent","processRowUnLockEvent","processRowArchiveEvent","processRowCellLockEvent","processRowCellUnLockEvent","processListDeleteEvent","flashRow","DeletionInProgress","msg","showStructuralChangePopupMessage","oldName","dispose","unregisterListener","execOnceGridApiIsReady","showLoadingOverlay","getDisplayedRowCount","previousDisplayedRows","setRowData","addStatusColumns","removeStatusColumns","hideOverlay","ShowTotals","rowTotalVM","statusChangeUserHeader","statusChangeDateHeader","getCellRanges","setCellRangesColor","cellRanges","rowsSelected","getSelectedNodes","nodesToRefresh","columnsToRefresh","cellsRangesColor","range","firstRowIndex","startRow","endRow","lastRowIndex","rowModel","getModel","getRow","saveColors","clearRangeSelection","statusColumns","fakeRsColumn","lockVisible","clearAllSavedFilters","lc","currentQuickFilter","allCols","marryChildren","headerGroupComponent","openByDefault","columnGroupShow","firstCol","rowDrag","rowDragText","dragItemCount","suppressSizeToFit","resizable","suppressColumnsToolPanel","suppressFiltersToolPanel","checkboxSelection","headerCheckboxSelection","headerCheckboxSelectionFilteredOnly","maxWidth","suppressMovable","sortable","suppressMenu","execOnceColAndGridApiAreReady","setFilterModel","applyColumnState","defaultState","setRowGroupColumns","pGridApi","funcToExecOnceGridApiIsReady","tryRunFuncWaitingForColAndGridApi","pColumnApi","funcToExecOnceColumnApiIsReady","removeRowsInUI","funcToExecOnceColAndGridApiAreReady","totalRow","getPinnedBottomRow","deselectAll","beforeRowNode","preparingAdd","isColumnFilterPresent","isQuickFilterPresent","newRowVM","createNewRow","agIdx","beforeRow","forEachNode","nVM","rowNodeTransactions","addIndex","refreshClientSideRowModel","flatColumns","child","colToEdit","editCell","colKey","startEditingCell","getAllDisplayedColumns","setDataValue","insertAtIdx","getDisplayedRowAtIndex","parentNode","parent","allLeafChildren","rowNodeTransaction","rn","newColumn","insertColumnId","insertPosition","addColVM","cd","newAgCol","agColInsert","agColInsertIndex","getAllGridColumns","isPinned","setColumnPinned","ct","newRows","nr","ur","rowvm","setColumnVisible","saveHiddenColumns","saveCollapsedColumnGroups","onRowGroupOpenedChanged","rowGroupColumn","saveGroups","isGroupOpenByDefault","leafGroup","columnsState","colGroups","getAllDisplayedColumnGroups","cg","getDefinition","getColumnGroup","setColumnsVisible","setColumnGroupOpened","clearGroupFromLocalStorage","valCol","removeValueColumns","vc","clearVisibleToolPanel","closeToolPanel","restoreVisibleToolPanel","applyVisibleToolPanel","setQuickFilter","moveColumns","savedColumns","sc","visiblecolumns","rowGroupWidth","setColumnWidth","getFilterModel","sortIndex","collapsedGroups","setValueActive","setAggFunc","aggFunction","addValueColumn","openToolPanel","isAnyFilterPresent","summableColumns","getColumns","setValueColumns","saveRowGroupColumns","addRowGroupColumn","removeRowGroupColumn","onColumnValueChanged","saveValueColumns","getAggFunc","openedToolPanelId","getOpenedToolPanel","moreRows","nodes","scrollRecursive","top","bottom","oldScrollPosition","currentScrollPosition","getVerticalPixelRange","round","emptyStateOverlay","canAddRow","CanCreate","openedPanels","sharedCharts","privateCharts","addNewChart","loadingData","loadingErrors","maximizeChart","_m","domId","charRenderer","chartId","refreshChartData","onChartIdChanged","onRowIdsChanged","loadChartData","datas","chartData","chartDataToChartjsConfiguration","config","getDefaultConfig","labels","Labels","datasets","DataSets","ds","chartJsDataset","label","Label","replaceAll","backgroundColor","BackgroundColor","borderColor","Area","fill","plugins","legend","resizeDelay","onClick","Line","scales","beginAtZero","stacked","time","tooltipFormat","getTooltipFormatForTimeUnit","DateGroupingUnit","unit","Bar","Stacked","Scatter","Pie","Month","Day","Year","XColumnStrongType","getChartImage","toBase64Image","MAXIMIZE_CHART","ChartsToolPanel","REFRESH_CHARTS","refreshCharts","loadingCharts","charts","initOpenedPanels","refreshtoolPanelTabLabel","ADD_NEW_CHART","elements","getElementsByClassName","onDataToChartChanged","onChartsOrderChanged","newSharedOrder","newPrivateOrder","saveOrder","concat","hasNoCharts","ChartRenderer","draggable","currentAnomalies","anomaly","onShowRowClicked","responseMessage","AnalysisToolPanel","LISTANALYSIS_REFRESH","refreshAnalysis","currentAnalysisResponse","loadAnalysisResponseFromJob","hasAnomalies","Anomalies","markdownToHtml","ResponseMessage","md","marked","rtcHistoryItems","HistoryToolPanel","hasNoHistoryItem","upsellTitle","upsellDescription","currentUrl","auditUrl","auditIsEnabled","CanCurrentUserExportAudit","auditHelpLink","RowshareGrid","cellRendererParams","innerRenderer","footerValueGetter","getGroupFooterValue","stopEditingWhenCellsLoseFocus","renderers","simpleRenderers","onColumnResized","getContextMenuItems","suppressRowClickSelection","rowSelection","suppressClipboardPaste","headerHeight","onCellClicked","onCellEditingStarted","onCellEditingStopped","onSortChanged","onColumnVisible","getMainMenuItems","rowDragManaged","onRowDragEnd","enableRangeSelection","processCellForClipboard","cacheQuickFilter","suppressPropertyNamesCheck","getRowId","tooltipShowDelay","showOpenedGroup","autoGroupColumnDef","autoGroupColumnSettings","groupIncludeFooter","onToolPanelVisibleChanged","suppressModelUpdateAfterUpdateTransaction","suppressDragLeaveHidesColumns","onColumnMoved","onColumnPinned","skipHeaderOnAutoSize","onColumnGroupOpened","onRangeSelectionChanged","noRowsOverlayComponent","loadingOverlayComponent","suppressRowGroupHidesColumns","onFirstDataRendered","onRowGroupOpened","headerComponent","buttons","closeOnApply","suppressSpanHeaderHeight","te","variableValues","sideBarConfig","toolPanels","labelDefault","labelKey","iconKey","toolPanel","toolPanelParams","suppressPivots","suppressPivotMode","suppressColumnSelectAll","hiddenByDefault","rowClassRules","doesExternalFilterPass","isExternalFilterPresent","setDomLayout","app","setPopupParent","getToolPanelInstance","chartToolPanel","onShowAnalysisResults","setSideBar","setSideBarVisible","hRows","hlr","ePopup","oldTopStr","oldTop","newTop","cellValueChanged","handleCellEditing","lockType","broadcast","ROW_SELECTION_CHANGED","mouseEvent","saveFilters","refreshDOM","saveSortOrder","nodeToMove","refNode","moveBefore","nextCellPosition","saveToolPanelsStatus","AgGridVue","commentsList","commentVM","CreatedSince","canComment","commentInputLabel","CommentEditorDialog","updated","scrollCommentsToBottom","commContainer","commentContainer","scrollTop","commentInput","getCommentContent","loadingComments","loadRowComments","comm","closeModal","onToggleVisibility","intercomBtn","newComment","saveRowComment","addComment","requireDelete","deletionRequired","cancelDeletion","deleteComment","deleteRowComment","deletedComment","getCreatedDate","creationDate","onStart","columnTypeCategories","toggle","active","columnTitleIcon","AddColumnDialog","frequentTypes","contentClass","isInsertColumn","initModal","selectedType","$scrollTo","container","rootElem","intersectionObserver","IntersectionObserver","onIntersect","root","rootMargin","observe","disconnect","autoScrolling","isIntersecting","rootTypesContainer","txColumnTitle","addingColumn","rsColBefore","agCol","rsColBeforeBefore","addedColumn","agColBefore","agColBeforeIndex","onTypeSelected","startAutoScrolling","doneAutoScrolling","tooManyRowsWarning","documentUrl","RowMergeDialog","executeRowMergeRequest","initReportsList","loadForList","cols","currentFileTypeColumns","currentJob","processingReport","disableTemplateChoice","destinationColumnIsDeleted","destinationColumnIsReadOnly","destinationRowIsReadOnly","disableGenerateButton","isTestMode","reportIndex","reportList","rl","generationContext","selectedReport","validateSelectedReport","lastInitialisedListId","loadingReports","reports","defaultReportId","Published","capabilities","hasReports","updateCurrentListCapabilities","rowDestinationOutputMessage","CopyToColumn","loadColumns","found","OutputDestinationId","outputFormat","startMonitoringJob","createJob","OutputFormat","onJobUpdated","ListReport","loadMultiple","testMode","generateButtonTitle","dialogTitle","rowCountMessage","selectedRowsCount","hasTooManyRows","canManageReports","canShowMyDocuments","jobStatus","hasJobError","showGenerateButton","OutputFilePath","showDownloadButton","DownloadFile","showCopiedToColumn","chartTypeIcon","isScatter","selectedDateGroupingUnit","splitColumnSelection","createChart","saveBtnLabel","chartConfigurationDialog","EDIT_CHART","chartToEdit","editMode","chartParams","currentStep","selectedAggregationFunction","aggregationFunctions","af","aggregationFunction","YAggregationFunction","selectedXColumn","XColumnId","selectedYColumn","YColumnId","selectedSplitColumn","SplitColumnId","selectSplitColumn","selectedStackOption","dateGroupingUnits","dgu","groupingUnit","savingChart","nextStep","steps","previousStep","onAggregationFunctionSelected","onlyNumericColumns","yColumnSelection","aggregableColumns","canChooseYColumn","onXColumnSelected","DateGroupingQuantity","onYColumnSelected","onSplitColumnSelected","NotStacked","onStackOptionSelected","onDateGroupingUnitSelected","onSelectSplitColumnChanged","onChartTypeChanged","DataVersion","Count","NotNullCount","Sum","Max","Min","Avg","xColumnSelection","canCreateChart","showDateGroupingSelector","canSelectSplitColumn","canChooseStacked","editChartName","confirmDeletion","chartDialog","editChart","toggleShared","deleteChart","deleted","menuState","downloadImage","imageLink","initMenu","saveChartName","isEditingName","nameInput","onChartNameKeyDown","loadChartInfo","chartShared","renderer","canShare","canRemove","hasNotPublicColumn","HasNotPublicColumn","chartRenderer","canUnlink","unlinkRow","rowArray","dialogDisplay","lineHeight","columnRendererName","isCellAccessible","hasImageColumn","imageColumnUrl","CommentCardRenderer","TwoStatesBooleanCardRenderer","innerHtml","ProxyBasedCardRenderer","RowCardMobile","isCurrentRow","loadByCulture","isoName","IsoName","imageColumn","showOwnerInformation","mainColumn","IsMainColumn","isMainColumnAFile","imageColumnValue","imageValue","defaultImage","rowDetail","rowDoubleClick","CardView","searchTerm","resetSearchEngine","initListInfo","scrollToRow","onRowVMsChanged","onScrollToRowIdChanged","scrollIndex","scrollToRowId","scroller","scroll","behavior","onListChanged","setCommand","previousLocation","createRow","appStore","pSearch","debounce","propertyNames","getOwnPropertyNames","propertyNamesPrefixed","propName","getFn","sorterIcon","dialog","order","isToggable","onCardClick","onCardDblClick","RowCard","pList","listeners","pRowVMs","notifyRowVMsUpdating","pColumns","onlyIndexAndVersion","currentRows","gridRow","serverRow","rowData","refreshIndexAndVersion","refreshValues","listener","OneRowMaximumPerUser","rowAssignedToCurrentUserCount","HasUniqueColumn","isOwned","checkLimits","errorRemainingStorage","errorRemainingRows","warnRemainingRows","listSizeInMb","ListSizeInBytes","listMaxSizeInMb","MaxSizeInBytes","storageQuotaUsed","RemainingRowCount","eventRows","maxRowCount","MaxRowCount","eventStorage","listSize","listMaxSize","RelationEditorDialog","loadRelatedRow","rr","selectedRowId","cardViewer","relatedListVM","linkRow","subtitle","RsTable","OnRowSelectionChanged","beforeUnload","unload","rtcUsers","hasRtcViewers","addColumn","tmpSelectedRows","hasSelectedRows","onCurrentListChanged","startAndSubscribe","handleBeforeRouteLeave","to","from","next","stopAndUnsubscribe","evt","returnValue","canShowCardView","_g","columnDescriptions","FormViewVM","setRowUpdateCallBack","rowUpdateCallback","cellState","isInSurveyMode","currentValue","FormEditor","columnDefaultValue","onRowVMChanged","onrsRowChanged","isMandatoryColumn","isFormulaColumn","isReadOnlyColumn","getFileSize","fileAsFile","fileAsBlob","fileAsList","TextFormEditor","RichTextFormEditor","saveCellValue","HyperlinkFormEditor","CommentFormEditor","showPicker","DateTimeFormEditor","updateFormattedDate","validateDate","pickerIcon","EmailFormEditor","checkEmail","reg","mailtoLink","BlobFormEditor","NumberFormEditor","textFieldVisible","TimeFormEditor","TwoStatesBooleanFormEditor","LookUpFormEditor","RowFormView","getComponentName","typeName","formViewVM","VALIDATE_FORM","formEditor","onListLoaded","initCols","refreshRowState","ROW_UPDATED","canDeleteRow","canDuplicateRow","sidePanelMode","cellStates","cellErrors","navigatingFromNewToRowId","onRowIdChanged","setPreviousLocation","pos","loopRowVM","rowPosition","previousRowId","nextRowId","goBackward","mode","goForward","newLocation","commandDelete","beforeRouteLeave","canLeaveRoute","CLEAR_ALL_GLOBAL_NOTIFICATIONS","CellFormView","ListFormView","onCurrentRowIdChanged","showHeader","msTeamsMode","canShowFormView","ListDisplayModeSelector","ListBasedRoot","isSurvey","meta","refreshAllListData","LISTSETTINGS_CHANGED","onSettingsChanged","COLUMNSETTINGS_CHANGED","onDisplayedRowsChanged","DeletionRequired","lastListId","msTeams","passes","disableInputsForLoggedInUser","working","Bandeau","inputTextAreaName","inputTextAreaVid","inputTextAreaValidationRules","inputTextAreaId","InputTextArea","emitTextAreaValueChanged","InputSelect","emitSelectValueChanged","inputSelect","RecaptchaActions","isV2Ready","isDisabled","Recaptcha","RECAPTCHA_SHOW","showV3","RECAPTCHA_SHOWV2","showV2","removeCaptcha","tokenTimestamp","previousTimestamp","currentTimestamp","RECAPTCHA_SUCCEEDED","isV3","isRecaptchaV2","hideV2","initOrResetRecaptchaV3","isRecaptchaV3","sitekeyV3","grecaptcha","ready","execute","calledAction","onSuccess","onError","hideV3","ReCaptchaLoaded","onV2Loaded","onErrorV2","onExpiredV2","$unloadScript","closeV2","RECAPTCHA_CANCELEDV2","querySelectorAll","el","hideCaptchaBadge","sitekey","sitekeyV2","badge","onSuccessV2","timeStamp","isV2Valid","onValidTokenV2","getResponse","reason","RECAPTCHA_FAILED","Contact","Question","RecaptchaToken","RecaptchaTokenIsV3","onRecaptchaSucceeded","onRecaptchaFailedOrCanceled","titleBandeau","descriptionBandeau","loadSelectList","listSubjects","mustShowRecaptcha","triggerRecaptcha","doSend","sendMessage","formulario","messageSent","messageError","exceptionMsg","retryFallbackRecaptcha","successEvent","emailFromSignUp","getSignupUrl","SectionTitle","isSignUp","ReturnUrlHandler","redirectToReturnUrlOrDefault","defaultRedirect","pushOrReloadRoute","pathOrUrl","isV3Path","internalRoute","matched","GoogleLoginButton","loginOrSignUp","login","MicrosoftLoginButton","SocialLoginList","signinUser","inputPasswordName","inputPasswordVid","inputPasswordValidationRules","emitPasswordValueChanged","InputPassword","pwdInput","LoginForm","presetEmail","focusPassword","focusEmail","doLogin","formValidState","isValidLoginPassword","Password","SignIn","defaultRedirectRoute","setErrors","password","Login","validateLoginPassword","clearValidations","showView","redirectToLanding","hasUnauthorizedSignupError","qsVal","LoginFba","browserLanguage","LoginMS","timezones","orderedRelatedTables","MyAccountNotificationList","Unspecified","listLink","newType","newNotificationConfig","updatedNotif","setListNotifOnServer","tableNotif","userNewNotificationList","updateUserTableNotification","userListLink","selectedNotification","isDeleteSubscriptionModalOpen","subscriptionToDeleteNameConfirmation","deleteSubscriptionModalWasFirstConfirmed","isDeletingSubscription","lastConfirmDeleteSubscription","MyAccountSubscriptionList","reloadSubscriptions","bypassCache","openDeleteSubscriptionModal","orgBeingDeleted","hasSubscriptionDeletionError","subscriptionToDeleteErrors","firstConfirmDeleteSubscription","deleteSubscription","handleDeleteSubscriptionError","getDeleteSubscriptionModalTitle","getDeleteSubscriptionWarningText","pattern","MemberCount","ListCount","getDeleteSubscriptionLastWarningText","validateSubscriptionName","fieldName","checkCanDeleteAccount","currentDeleteAccountModalSate","LastWarningStep","deleteAccountData","FreeOrgWithOtherAdmins","hasConfirmedFreeOrgWarning","FreeOrgWarningStep","PaidOrgWithOtherAdmins","hasConfirmedPaidOrgWarning","PaidOrgWarningStep","OwnOrgWithNoMember","hasConfirmedOwnOrgWarning","OwnOrgWarningStep","redirectUrl","deleteUserProfile","userRemovalErrorMessage","canCurrentUserdeleteAccount","CanDeleteAccount","isDeleteAccountModalOpen","isCannotDeleteAccountModalOpen","getDeleteOwnOrgWithNoMemberWarningText","getCannotDeleteAccountModalDescription","OrgPreventingDeletion","getDeleteAccountModalFreeOrgAdminWarning","getDeleteAccountModalPaidOrgAdminWarning","ConfirmDeleteAccountStep","isDeletingAccount","deleteUser","MyAccount","relatedLists","getUserProfile","getUserLanguage","getUserRelatedLists","profile","profil","userRelatedTable","loadAll","allValid","updateUserProfile","manageCookies","openAxeptioCookies","existsCookiesScript","MyAccountDeleteAccountButton","dataUpdated","companyCreated","joinCompany","signUpEmail","SignUpEmail","validateUserEmail","er","externalSignUp","getLoginUrl","invalid","modelSignUp","passwordRule","errorCreatingAccount","PersonalData","accountEmail","AutoLogon","doSignup","signUpUser","resultList","confirmPassword","Signup","modelOrganization","enableTags","selected","MembersArray","disableButton","inputName","inputVid","inputValidationRules","inputId","disabledProp","emitValueChanged","InputPhone","Personalization","CompanyName","PhoneNumber","UserCount","WhyRowShareAnswer","userName","submitting","Members","First","collectAdminInfos","trialSetup","organizationResult","isCreateOrg","updateCurrentFolder","addEventDataLayer","companyName","removeMail","tagValidator","deleteTags","formInvalid","emails","disable","ManagedOrganizationsCount","JoinSociety","redirectToCompany","SignUp","checkInviteLink","userModel","createMember","OrganizationsCount","showPersonalization","isCreateOrganization","showFreeTrialMessage","freeTrial","checkingInviteLink","invalidLink","updateModelEmail","emailValue","showJoinOrganization","organizationParam","RootFolderId","emptyFiles","isLoading","listFiles","confirmDeleteJob","MyDocuments","fields","setTableHeader","showListLink","showUser","deleteJob","getFormatedDate","createdDate","getRelativeDate","getStatusTitle","Retrying","OutputError","StatusChangeDateUtc","getStatusIcon","NotStarted","Processing","getStatusColor","loadFiles","resultFiles","JobGrid","saveReport","confirmDeleteReport","RowMerge","loadList","loadReports","loadJobs","listResult","listModel","loadingJobs","loadingColumns","allOutputFormat","Auto","Pdf","Docx","allColumnsByDestinationType","reportTypeIsCopyToColumn","pickFile","updatedReport","saveProperty","onFileError","oldPollingRef","pickNewFile","newReport","FileSize","savedReport","testReport","newJobStarted","deleteReport","PageNotFound","loginUrl","isMsTeams","AccessDenied","OrganizationAccessDenied","currentUserEmail","CurrentUserEmail","signOut","toolbarTitle","loadingPlans","SubscriptionConfigurator","currentPeriod","selectedPeriod","currentCurrency","isUsingEur","showFullPriceDetails","membersCount","showContactUs","priceStringPattern","contactLink","initChargebeeInstance","ActiveMemberCount","MaximumMemberCount","orgMembersCount","CurrencyISOCode","canChooseCurrency","SubscriptionEnabled","SubscriptionIsFree","orgInTrial","getPlans","computeQuotations","cbInstance","siteNamePromise","getChargebeeSiteName","cbSiteName","Chargebee","site","enableGATracking","enableGTMTracking","isItemsModel","isCorporatePlan","plan","OfferId","isEnterprisePlan","getPlanTitle","getTierDescription","getItemPriceTiers","pricingUrl","configuratorPlans","getConfiguratorPlans","planA","planB","priceA","priceB","currentQuotations","cp","quot","PlanId","ItemPriceId","PlanQuantity","CustomerId","getPlanBasePrice","q","getPlanPrice","getPlanUserPrice","getSetupFeesPrice","getTablesLimit","Limits","TablePerQuantity","FixedTableQuantity","getRowsLimit","RowPerQuantity","FixedRowQuantity","getSizeLimit","TableSizePerQuantity","FixedTableSize","getReadOnlyUsersLimit","ReadOnlyUsersPerQuantity","FixedReadOnlyUsersQuantity","getQuotationPrice","choosePlan","openCheckoutFromQuotation","getPlanExtraUserTooltipTitle","openCheckout","hostedPage","loadCheckoutFromQuotation","cbCheckOutSuceeded","defaultRedirectUrl","hostedPageId","subscriptionTermEndDateUTC","onUpdateUserCountClick","checkoutLink","OrganizationInfos","updateOrganization","SubscriptionCurrentTermEndDateUtc","showImage","createChargebeePortal","getShowImage","showPaymentSources","openBillingPortal","PAYMENT_SOURCES","showSubscriptionDetails","SUBSCRIPTION_DETAILS","cbPortal","setPortalSession","loadPortalConfig","openSection","sectionType","getPortalSections","BILLING_HISTORY","section","currentSubscription","getCurrentSubscriptionId","callbacks","sectionInfo","subscriptionId","UPDATE_SUBSCRIPTION_REQUEST","checkOutButtonLabel","queryStringReturnUrl","Toolbar","hasReturnUrl","returnToPrevious","SubscriptionCheckOut","toolbarDescription","scheduleMeeting","unsubscriptionEmail","Unsubscription","unsubscriptionInfo","unsubscribeEmail","showMessage","TableOwners","TableAccessDenied","hasRequestedAccess","retryUrl","requestAccess","sendToEmail","ConfirmEmail","emailConfirmed","confirmationCodeSended","noToken","confirmEmail","sendConfirmationCode","updateTableSettings","iconImage","TableSettings","canEditCatalogCategory","listResul","olderList","loadCultures","listOfCultures","deleteIconModal","saveWithFile","deleteImage","Icon_Remove","openModalToDeleteIcon","existsLocalization","ResetPasswordRequest_1","doValidate","resetPasswordRequestSuccess","getResetPasswordUrl","resetPasswordModel","resetPasswordSuccess","resetPasswordError","ConfirmPassword","validateToken","tokenError","resetPassword","arrayTab","tabName","tab","SubscriptionHasPermissionsAudit","updateOrganizationSettings","offsetY","deleteLogo","OrganizationSettings","oldOrganization","toasterTextValue","toasterColorValue","displayToaster","openModalToDeleteLogo","deleteLogoModal","Logo_Remove","getAccessModeText","groupListColumns","addNewGroup","deleteGroup","cancelGroupDeletion","groupsEditor","selectedGroups","idsToRemove","groupsDescription","groupsRenderer","deleteRowRenderer","groupVM","initialGroup","Groups","orgGroups","showRemoveModal","groupRowToDelete","toasterTimeOut","firstDataRendered","sizeColumnsToFit","cellEditorParams","getGroupsEditorParams","flex","confirmRemoveGroup","getRowClassRules","suppressContextMenu","currentGroup","saveGroup","gvm","GROUP_CHANGED","IsNew","newGroup","groupToDelete","groupToDeleteName","addNewMember","deleteMember","cancelMemberDeletion","selectedManagerEmail","memberEditor","selectedManager","currentMember","Manager","selectManager","ManagerEmail","ManagerName","selector","activateMenu","booleanRenderer","onDblClick","memberRenderer","gridUtils","s1","s2","string1","string2","m1","m2","stringComparator","memberVM","initialMember","InvitationState","memberEmailRenderer","addingNew","IsAdding","hasCustomMessage","isEditingInvitationMessage","invitationMessage","saveInvitationMessage","EditInvitationDialog","GetInvitationMessage","isMessageUpToDate","openEditInvitationMessageDialog","canSaveInvitationMessage","savingInvitationMessage","SetInvitationMessage","showSuccessNotif","showErroNotif","hasInviteLink","closeInviteLinkDialog","showInviteLinkDialog","requestDeletion","deletingInviteLink","deleteInviteLink","canCreateInviteLink","InviteLinkDialog","activeInviteLink","createInviteLink","creatingInviteLink","savingErrorMessage","deleteErrorMessage","deletionRequested","openInviteLinkDialog","inviteLinkUrl","onRowDataChanged","onOrganizationChanged","loadMembers","memberListColumns","isEmailEditable","memberComparator","filterValueGetter","getManagerName","boolValueToString","confirmRemoveMember","orgMembers","membersToSave","saveMember","resendInvitation","currentNode","currentIndex","doSaveMember","mvm","displayErrorOnNewMember","ManageOrganization","memberRowToDelete","memberToDelete","removeMemberFromGrid","memberToRemove","cellEditingStarted","cellEditingStopped","AddNewRowToolTip","getButtonLabel","memberToDeleteInfos","memberName","updateSubscription","audit","Admins","adminsNode","TreeNodeVM","fromMember","UniversalOwners","universalOwnersNode","fromFolder","textKey","countReadAccess","Accesses","CanRead","countFullReadAccess","countPartialReadAccess","countCreateAccess","countUpdateAccess","countFullUpdateAccess","countPartialUpdateAccess","countSuppressAccess","countFullSuppressAccess","countPartialSuppressAccess","countAssignAccess","countFullAssignAccess","countPartialAssignAccess","treeview","updateAll","getCsvUrl","getJsonUrl","getYamlUrl","openedIcon","Tables","fromTable","Url","ExternalAccess","ext","fromAccess","idPrefix","tableId","onEstimateClick","cannotEstimateTooltip","onUpdateSubscriptionClick","SubscriptionUpdateDialog","loading","closeMe","estimateSubscriptionUpdate","currentEstimate","backToUpdate","processingUpdate","getAmountString","amount","amountInDecimal","IsInEuro","getDateString","subscriptionDescription","activeMemberCount","maxMemberCount","cannotEstimate","notEnoughUsers","updateDescription","oldMemberCount","newMemberCount","prorataDescription","prorataInvoice","ImmediateAmountDue","updateConfirmationDescription","isDowngrade","show","IsCurrentUserAdministrator","orgSearchResults","saveInternal","saveIsRSAdmin","saveIsLockedOut","loadUser","formatDate","fromNow","exact","newUser","saveUserProperty","Internal","reportSave","IsLockedOut","operation","getConfirmationLink","clearAllSearchResults","userSearchResults","listSearchResults","allSearchResults","searchUsers","searchOrganizations","searchLists","Users","formatUserCreationData","onUserUpdated","currentIdx","u","onUserDeleted","savingChangePlanAlone","saveCannotChangePlanAlone","CannotChangePlanAlone","getMemberColor","toggleAdmin","BackOfficeOrganization","refreshData","loadOrganization","currentPlanId","getCurrentPlanId","chargeBeeUrl","cbHost","filteredMembers","AssociatedUserNickName","gr","pickLogo","logoInput","pickFullSiteLogo","fullSiteLogoInput","pickSmallSiteLogo","smallSiteLogoInput","refreshBillingInfos","refreshingBillingInfos","saveOrgLogo","saveOrganizationProperty","getMemberIcon","rsSupportColor","adminColor","universalOwnerColor","addSupportUser","genericSupportEmail","deleteOrganization","sendInvite","LimitType","BackOfficeOrganizationLimits","limits","getLimits","getDisplayType","Table","Storage","ReadOnlyUser","formatCurrentValue","limit","CurrentValue","formatMaxValue","validForm","onSelectedColumnIdChanged","selectedColumnId","updateColumnSettings","lookUpItems","addItems","ColumnSettingsLookupEditor","itemsToAdd","parseItems","columnLookUpValues","onValuesChanged","ColumnSettingsLookupEditorItemVM","onLookUpItemsChanged","newItemsValues","li","onAddItemKeyDown","deleteItem","getColorrgb","onClearColor","selectedLinkedList","onColumnNameChanged","selectedColumnName","ColumnSettingsLookupListEditor","currentListId","internalSelectedLinkedList","lookupListId","loadColumnsForLinkedList","lookupListColumnName","linkedColumns","linkedListId","linkedColumnName","selectedRelatedListId","selectedRelatedListColumnIndex","relatedListColumns","selectedRelatedColumnIndex","ColumnSettingsRelatedColumnsEditor","internalSelectedRelatedListId","loadRelatedColumns","loadColumnsForRelatedList","initFirstRelatedColumn","disableColumnSelection","relatedColumns","mainColIndex","addRelatedColumn","clearRelated","currentColumnId","onRelatedListChanged","canRemoveRelatedColumn","relatedListColumnSelected","notifyColumnSaved","originalRelatedListColumns","rc","loadRelated","addingRelatedColumn","parentCol","childCol","Child","savedCol","removingRelatedColumn","colToRemove","headerCheckboxValue","selectedColorTypes","colorTypesDisabled","ColumnSettingsColorEditor","initCurrentColumnColorType","headerCheckboxLabel","cellsCheckboxLabel","cellsCheckboxValue","lightColor","onColorTypeChanged","setColumnColorType","ColumnSelector","initColumns","COLUMN_INFOS_CHANGED","updateColumnInfos","allColumns","onListIdChanged","manageChildColumns","canGoToPrevious","disableNavigation","canGoToNext","previousColumn","ColumnSettings","originalColumn","previousColumnType","columnTypeError","form","disableRelatedColumnsSelection","validateForm","columnSettingsHaveChanged","canLeave","onLookupValuesChanged","onLinkedColumnChanged","getColumnTypesWithCategoriesSelectorItems","typesToRemoveCriteria","metadataTypes","relatedRowTypes","filteredType","isNotAllowedColumnType","cannotUpdateType","resetValues","isValidNumber","valStr","TablePrint","closeWindow","print","gridToPrint","clientWidth","listTitle","RowShareGrid","Survey","saveSurvey","SurveySuccess","selectedList","MsTeamsConfiguration","microsoftTeams","initialize","initOrgs","registerOnSaveHandler","saveEvent","setConfig","websiteUrl","contentUrl","suggestedDisplayName","notifySuccess","resetTheme","registerOnThemeChangeHandler","getContext","CheckUserHasListForMsTeams","team","userHasList","hasList","creatingTemplateTable","templateTableCreated","loadingLists","listChanged","setValidityState","isDarkTeams","darkteams","MsTeamsLogin","_context","getAuthToken","getUserEmailFromToken","IdToken","Tid","tenant","TeamsName","hasToLogin","connecting","connectUserByIdToken","selectedView","onNavLinkDayClick","calendarEventVM","className","startDate","allDay","calendarViewVM","setRowsUpdateCallback","rowsUpdateCallback","ListCalendarView","canShowDayAndWeekViews","currentStartColumn","canEditEvent","onCalendarViewMounted","arg","calendarApi","calendar","refreshTitle","refreshEvents","onRowUpdated","onRowsDeleted","calendarOptions","themeSystem","headerToolbar","initialView","dayGridPlugin","interactionPlugin","timeGridPlugin","dayMaxEvents","firstDay","locales","esLocale","navLinks","calendarEventVMs","viewDidMount","eventClick","onEventClicked","dateClick","onDateClicked","dayCellClassNames","allDaySlot","eventStartEditable","eventDrop","onEventDropped","goToPreviousMonth","goToNextMonth","goToToday","today","changeCurrentView","changeView","dateClicked","gotoDate","onStartColumnIdChanged","loadingEvents","eventVM","eventIndex","addEvent","eventDate","infos","extendedProps","FullCalendar","VueRouter","route","failure","organizationParentFolderId","breadcrumbTag","paramName","routes","redirect","layout","allowsEmptyOrganization","notOnPrem","parseMyTablesParams","requiresAuth","pathProvider","isBreadcrumbVisible","isFullBreadcrumb","breadcrumbTagInUrl","msteams","beforeEnter","getCookie","rsVersionError","showDetails","showListInBreadcrumb","isBO","BackOffice","RouteToOrg","RouteToList","beforeEach","_from","scope","Cookie","isMobileCookie","refreshUserIfMissing","demo","DemoSignIn","updateCurrentSiteLogos","refreshOrganizationsTreeIfMissingOrOutdated","errorPage","some","userDetails","RsHeader","canAskForSupport","HasRowShareSupportActivated","canSeeSupportButton","canDisableSupport","addRowShareSupport","onRemoveRowShareSupport","removeRowShareSupport","notify","notificationType","currentLocale","changeUserLanguage","ul","customSmallSiteLogoPath","customFullSiteLogoPath","demoUser","IsDemoUser","Languages","currentListFromOtherOrg","tagPattern","tagName","getBreadcrumbLinkUrl","breadcrumbFolder","scheduleDemo","previous","currentParams","isVisible","GlobalConfirmationDialog","onConfirmationRequired","toast","textColor","isOpen","NotificationStack","onGridError","onRowError","clearToastsForRow","clearToastsForRows","onGlobalNotification","onClearAllGlobalNotifications","toasts","RowErrorToastVM","ToastVM","onActionButtonClick","nextId","iconColor","UpsellCard","UpsellDialog","onShowUpsellDialogEvent","canGoToCheckOut","handler","onClickOutside","closeConditional","shouldClosePanel","SidePanelFormView","onShowSidePanelFormView","contains","hasAdvancedPermissions","hasNewGuests","validationBtnTooltipColor","listAccessesHeight","getMyOrganizationIconPath","updateStatus","getResendInviteTooltip","isDeleted","currentSecurityPrincipals","selectedGuest","toggleLevel","AccessLevelSwitch","noneLevelSelected","twoStateMode","ownedLevelSelected","allLevelSelected","disabled","ListAccessVMStatus","ListAccessVM","Unchanged","New","NewMember","isModified","Modified","SidePanelSharing","onShowSidePanelSharing","refreshListAccessesHeight","addGuestMode","refreshListAccesses","refreshColumns","Intercom","onSidePanelStatusChanged","guestsDropdown","accessesListHeaders","align","loadingAccesses","vala","valb","currentListAccesses","originalListAccesses","onGuestSelected","hasModifiedAccess","closePanel","sendInvitationEmails","ShareMembers","recaptchaTokenIsV3","saveAccesses","listaccessesHeader","listaccessesFooter","sidepanelHeader","sidepanelFooter","sidePanelFooter","innerHeight","getBoundingClientRect","computedHeight","newAccesss","lastAccessCreated","getNewDefault","getNew","selectedGuestName","getAccessClass","Invalid","setStatus","originalAccess","resendInvite","msgType","onSaveClick","saveMultiple","isMaxMemberCountErrorVisible","getCanResendInvite","canShowRecaptcha","SubscriptionHasAdvancedPermissions","addGuestsButtonText","canSwitchMode","advancedModeLabel","sendInvitationsLabel","accessesChanged","validationBtnTooltip","hasInvalidAccess","listShared","addGuestPlaceHolder","advancedModeSwitchTooltip","canValidateAccesses","ColumnAccessVMStatus","ColumnAccessVM","isAdminAccess","SidePanelColumnPermissions","onShowSidePanel","refreshColumnAccessesHeight","initializeColumnAccessesHeader","initPanel","refreshColumnAccesses","currentColumnAccesses","originalColumnAccesses","loadForColumn","myOrgAccess","orgPrincipal","adminAccess","adminRow","columnaccessesFooter","columnAccessesHeight","cavm","currentColumnName","adminsGuestName","myOrganizationGuestName","hasColumnPermissions","SubscriptionHasColumnPermissions","SidePanelTableSettings","refreshSettingsHeight","oldList","settingsSaved","settingsHeight","onDeleteIconClick","onFileSelected","copyColumnId","onChildColumnsChanged","canEditCommonOptions","showNumbersOptions","numberPreview","SidePanelColumnSettings","refreshColumnSettingsHeight","refreshColumnSettings","saveInProgress","DefaultLayout","IframeLayout","RsErrorHeader","ErrorLayout","SignupLayout","LogInLayout","MsTeamsLayout","goToBoRoot","restartServer","BackOfficeLayout","ClearCache","RestartServer","ClearCacheAndRestartServer","App","isInExcel","isDevEnv","passwordRegEx","isAnonymous","productionTip","Meta","refreshOnceOnNavigation","DatetimePicker","LoadScript","VCalendar","componentPrefix","VueScrollto","VueTelInputVuetify","VueMask","VueCurrencyInput","LicenseManager","setLicenseKey","directive","binding","visibility","loadScript","vueRouter","vi18n","vuex","$mount","VueAppInsights","disableAjaxTracking","disableFetchTracking","disableExceptionTracking","disableTelemetry","enableAutoRouteTracking","enableCorsCorrelation","enableRequestHeaderTracking","enableSessionStorageBuffer","enableAutoPageViewTracking","maxAjaxCallsPerView","maxBatchInterval","maxBatchSizeInBytes","overridePageViewDuration","sessionExpirationMs","sessionRenewalMs","startTrackEventBuffer","startTrackPageBuffer","disableFlushOnBeforeUnload","enableDebug","verboseLogging","enableUnhandledPromiseRejectionTracking","enableResponseHeaderTracking","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","definition","defineProperty","enumerable","globalThis","Function","prototype","Symbol","toStringTag","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}