From 6cd1f22718e0335190b4f9d5756b1a9f3f46238e Mon Sep 17 00:00:00 2001 From: Pablo P Varela Date: Thu, 21 Mar 2019 10:58:03 +0100 Subject: [PATCH] change(all): Move all remaining JS files to Typescript (#2875) * Convert files that don't throw errors * Import lodash in all missing files * Missing lodash imports * One missing file * Convert more files to typescript * Move more files * Restore to branch version * Move more files * Move more files * wip * Last files * Fix lint * Some window variables * Add angular type check * js is now ts on tests * yarn * Change promise resolution * Allow karma to run typescript files * Fix issues with tslint * Missing ) * Fix tsc issues * Get old react functions back (fix e2e) * No tson * Fix e2e and lint errors * Delete unused returns * Fix tslint * Add one more property from merge * Fix more lint issues * Remove any type * Example server -> js * Trailing comma --- jsconfig.json | 12 +-- karma.conf.js | 11 ++- package.json | 5 +- ...Controller.js => ArchiveListController.ts} | 0 ...istController.js => BaseListController.ts} | 12 ++- ...rchivedItemKill.js => ArchivedItemKill.ts} | 4 +- .../{ContentResults.js => ContentResults.ts} | 2 + .../directives/{Export.js => Export.ts} | 11 +++ .../directives/{ItemCrops.js => ItemCrops.ts} | 4 +- .../directives/{ItemLock.js => ItemLock.ts} | 2 + ...{MarkedItemTitle.js => MarkedItemTitle.ts} | 11 +++ .../{MediaMetadata.js => MediaMetadata.ts} | 4 +- .../{MediaPreview.js => MediaPreview.ts} | 2 + .../directives/{MediaUsed.js => MediaUsed.ts} | 5 + .../directives/{MediaView.js => MediaView.ts} | 2 + .../{ResendItem.js => ResendItem.ts} | 5 +- scripts/apps/archive/{index.js => index.ts} | 4 +- .../{ArchiveService.js => ArchiveService.ts} | 20 ++-- .../{FamilyService.js => FamilyService.ts} | 13 ++- .../{MultiService.js => MultiService.ts} | 2 + .../{archive.spec.js => archive.spec.ts} | 18 ++-- .../authoring/attachments/attachments.spec.ts | 1 + .../authoring/article-url-fields.tsx | 2 +- .../{authoring.spec.js => authoring.spec.ts} | 17 ++-- .../authoring/{constants.js => constants.ts} | 2 +- .../controllers/AssociationController.ts | 3 +- ...itDirective.js => ArticleEditDirective.ts} | 5 +- ...ringDirective.js => AuthoringDirective.ts} | 33 +++---- ...ctive.js => AuthoringEmbeddedDirective.ts} | 9 +- ...ewDirective.js => FullPreviewDirective.ts} | 2 + ...ive.js => ItemActionsByIntentDirective.ts} | 4 +- ...lDirective.js => ItemCarouselDirective.ts} | 29 +++--- .../{ReadingTime.js => ReadingTime.ts} | 4 +- .../directives/{SendItem.js => SendItem.tsx} | 25 +++-- ...irective.js => TansaScopeSyncDirective.ts} | 4 +- .../authoring/{helpers.js => helpers.ts} | 22 ++--- .../authoring/preview-test-server/server.js | 6 +- ...uthoringService.js => AuthoringService.ts} | 14 +-- ...esService.js => AuthoringThemesService.ts} | 2 +- ...{AutosaveService.js => AutosaveService.ts} | 2 + ...roller.js => CompareVersionsController.ts} | 4 + ...nsService.js => CompareVersionsService.ts} | 14 ++- ....js => CompareVersionsArticleDirective.ts} | 15 ++- ...js => CompareVersionsDropdownDirective.ts} | 9 +- ... CompareVersionsDropdownInnerDirective.ts} | 10 +- .../{find-replace.js => find-replace.ts} | 3 +- .../authoring/macros/{macros.js => macros.ts} | 3 +- .../metadata/{metadata.js => metadata.ts} | 35 ++++--- .../multiedit/{multiedit.js => multiedit.ts} | 4 +- .../packages/{packages.js => packages.ts} | 1 + ...gestController.js => SuggestController.ts} | 3 + ...uggestDirective.js => SuggestDirective.ts} | 4 + .../{SuggestService.js => SuggestService.ts} | 5 + .../{authoring.spec.js => authoring.spec.ts} | 14 +-- ...hangeImage.spec.js => changeImage.spec.ts} | 9 +- .../translations/{index.js => index.ts} | 2 +- ...toryController.js => HistoryController.ts} | 7 +- ...ive.js => TransmissionDetailsDirective.ts} | 6 +- scripts/apps/authoring/widgets/widgets.ts | 4 +- ...ctsController.js => ContactsController.ts} | 11 ++- .../{ContactList.js => ContactList.ts} | 7 +- ...ve.js => ContactsSearchPanelDirective.tsx} | 15 +-- ...e.js => ContactsSearchResultsDirective.ts} | 21 +++- ...rective.js => ContactsSortBarDirective.ts} | 2 + .../apps/contacts/{helpers.js => helpers.ts} | 5 +- ...{ContactsService.js => ContactsService.ts} | 11 ++- ...IController.js => ContentAPIController.ts} | 7 +- ...e.js => ContentAPISearchPanelDirective.ts} | 5 +- ...js => ContentAPISearchResultsDirective.ts} | 23 +++-- ...ctive.js => ContentAPISortBarDirective.ts} | 2 + ...hService.js => ContentAPISearchService.ts} | 47 +++++---- ...oller.js => FilterConditionsController.ts} | 3 +- ...r.js => ManageContentFiltersController.ts} | 5 +- ...troller.js => ProductionTestController.ts} | 5 +- ...rective.js => DeskRoutingInfoDirective.ts} | 0 .../closed-desk/{index.js => index.ts} | 17 ++-- ...onfigController.js => ConfigController.ts} | 4 +- ...rdController.js => DashboardController.ts} | 3 +- scripts/apps/dashboard/{index.js => index.ts} | 2 + ...ashboardWidgets.js => DashboardWidgets.ts} | 2 + .../workspace-tasks/{tasks.js => tasks.ts} | 6 +- .../tests/{tasks.spec.js => tasks.spec.ts} | 1 + .../{world-clock.js => world-clock.ts} | 3 +- ...gController.js => DeskConfigController.ts} | 7 +- ...istController.js => DeskListController.ts} | 2 + .../{ActionPicker.js => ActionPicker.ts} | 6 +- .../{ContentExpiry.js => ContentExpiry.ts} | 2 + .../{DeskSelect.js => DeskSelect.ts} | 2 + .../{DeskeditPeople.js => DeskeditPeople.ts} | 1 + .../{DeskeditStages.js => DeskeditStages.ts} | 10 +- .../{FocusElement.js => FocusElement.ts} | 4 +- ...ective.js => UserRoleItemListDirective.ts} | 2 + .../{UserSelectList.js => UserSelectList.ts} | 2 + .../{DesksFactory.js => DesksFactory.ts} | 3 +- ...eople.spec.js => sdDeskEditPeople.spec.ts} | 2 +- ...oller.js => DictionaryConfigController.ts} | 3 +- ...troller.js => DictionaryEditController.ts} | 3 +- ...tionaryService.js => DictionaryService.ts} | 4 +- ...ighlightsConfig.js => HighlightsConfig.ts} | 2 +- ...ightsSettings.js => HighlightsSettings.ts} | 2 + ...{HighlightsLabel.js => HighlightsLabel.ts} | 2 + ...down.js => MultiMarkHighlightsDropdown.ts} | 2 + ...earchHighlights.js => SearchHighlights.ts} | 2 + ...hlightsService.js => HighlightsService.ts} | 5 +- ...{highlights.spec.js => highlights.spec.ts} | 1 - ...roller.js => IngestDashboardController.ts} | 3 +- ...tController.js => IngestListController.ts} | 1 + ...outingAction.js => IngestRoutingAction.ts} | 5 +- ...tingContent.js => IngestRoutingContent.ts} | 12 ++- ...outingFilter.js => IngestRoutingFilter.ts} | 8 +- ...tingGeneral.js => IngestRoutingGeneral.ts} | 6 +- ...tRulesContent.js => IngestRulesContent.ts} | 1 + ...rcesContent.js => IngestSourcesContent.ts} | 18 ++-- ...serDashboard.js => IngestUserDashboard.ts} | 4 +- .../ingest/filters/{index.js => index.ts} | 2 + ...derService.js => IngestProviderService.ts} | 4 +- ...tedService.js => RemoveIngestedService.ts} | 2 + .../{SendService.js => SendService.ts} | 31 +++--- .../{SubjectService.js => SubjectService.ts} | 2 + .../tests/{ingest.spec.js => ingest.spec.ts} | 6 +- ...ontroller.js => LegalArchiveController.ts} | 2 + ...egalItemSortbar.js => LegalItemSortbar.ts} | 2 + ...chiveService.js => LegalArchiveService.ts} | 5 +- .../{AggregateCtrl.js => AggregateCtrl.ts} | 4 +- ...kNotifications.js => DeskNotifications.ts} | 4 +- ...{ItemActionsMenu.js => ItemActionsMenu.ts} | 4 +- .../{MonitoringView.js => MonitoringView.ts} | 5 +- .../{WidgetGroup.js => WidgetGroup.ts} | 28 +++--- .../{CardsService.js => CardsService.ts} | 6 +- ...{monitoring.spec.js => monitoring.spec.ts} | 9 +- ...earchWidgetCtrl.js => SearchWidgetCtrl.ts} | 4 +- .../directives/{Package.js => Package.ts} | 2 + ...geItemPreview.js => PackageItemPreview.ts} | 2 + ...ackageItemsEdit.js => PackageItemsEdit.ts} | 13 +-- ...{PackagesService.js => PackagesService.ts} | 12 ++- ...troller.js => ProductsConfigController.ts} | 1 + ...{ProductsFactory.js => ProductsFactory.ts} | 2 + ...ontroller.js => PublishQueueController.ts} | 26 ++--- ...rsDirective.js => SubscribersDirective.ts} | 8 +- ...ribersService.js => SubscribersService.ts} | 2 + .../{directive.js => directive.ts} | 9 +- .../apps/search/components/DesksDropdown.ts | 3 +- .../apps/search/components/HighlightsInfo.tsx | 6 +- .../apps/search/components/ListTypeIcon.tsx | 2 +- .../search/components/MarkedDesksInfo.tsx | 6 +- .../components/actions-menu/ActionsMenu.tsx | 2 +- .../search/components/actions-menu/Item.tsx | 3 +- .../fields/{highlights.js => highlights.ts} | 2 +- .../fields/{markedDesks.js => markedDesks.ts} | 2 +- .../fields/{slugline.js => slugline.ts} | 6 +- .../fields/{wordcount.js => wordcount.ts} | 6 +- .../{BaseSortBar.js => BaseSortBar.ts} | 3 + .../directives/{ItemList.js => ItemList.ts} | 8 +- .../{ItemSearchbar.js => ItemSearchbar.ts} | 2 + .../{ItemSortbar.js => ItemSortbar.ts} | 5 + .../{MultiActionBar.js => MultiActionBar.ts} | 2 + .../{SearchFilters.js => SearchFilters.ts} | 10 +- .../{SearchPanel.js => SearchPanel.ts} | 4 +- ...earchParameters.js => SearchParameters.ts} | 5 +- .../{SearchResults.js => SearchResults.ts} | 27 +++--- .../{SearchTags.js => SearchTags.ts} | 1 + scripts/apps/search/helpers.ts | 2 +- ...SearchService.js => SavedSearchService.ts} | 2 + .../{SearchService.js => SearchService.ts} | 80 +++++++-------- .../{SortService.js => SortService.ts} | 6 +- .../services/{TagService.js => TagService.ts} | 15 +-- .../tests/{search.spec.js => search.spec.ts} | 11 +-- .../{RoleUnique.js => RoleUnique.ts} | 2 +- ...treamController.js => StreamController.ts} | 4 +- ...eEditorModal.js => TemplateEditorModal.ts} | 2 + ...atesDirective.js => TemplatesDirective.ts} | 18 ++-- .../templates/filters/{index.js => index.ts} | 2 + ...emplatesService.js => TemplatesService.ts} | 25 ++--- ...tionDropdown.js => TranslationDropdown.ts} | 2 + ...ropdown.js => TranslationReactDropdown.ts} | 25 +++-- ...lationService.js => TranslationService.ts} | 7 +- ...ontroller.js => ChangeAvatarController.ts} | 6 +- ...istController.js => UserListController.ts} | 4 +- ...rective.js => RolesPrivilegesDirective.ts} | 1 + ...rListDirective.js => UserListDirective.ts} | 2 +- ...tioDirective.js => UserMentioDirective.ts} | 4 +- .../directives/UserPreferencesDirective.ts | 3 +- ...irective.js => UserPrivilegesDirective.ts} | 3 +- .../users/import/{import.js => import.ts} | 6 +- scripts/apps/users/{index.js => index.ts} | 6 +- .../{RolesService.js => RolesService.ts} | 2 + .../{ProfileService.js => ProfileService.ts} | 4 +- ...{UserListService.js => UserListService.ts} | 4 +- ...serPopupService.js => UserPopupService.ts} | 4 +- .../{UsersService.js => UsersService.ts} | 4 +- ...leges.spec.js => sdUserPrivileges.spec.ts} | 10 +- .../tests/{users.spec.js => users.spec.ts} | 7 +- .../{ContentService.js => ContentService.ts} | 15 +-- ...ctive.js => WorkspaceDropdownDirective.ts} | 2 + ...belForFieldId.js => getLabelForFieldId.ts} | 0 ...irective.js => activity-list-directive.ts} | 2 +- .../analytics/{analytics.js => analytics.ts} | 15 ++- ...pi-service.spec.js => api-service.spec.ts} | 4 +- .../api/{api-service.js => api-service.ts} | 24 +++-- ...nt-factory.js => http-endpoint-factory.ts} | 2 +- ...{request-service.js => request-service.ts} | 0 ...or.spec.js => timeout-interceptor.spec.ts} | 5 +- ...ter.spec.js => basic-auth-adapter.spec.ts} | 0 scripts/core/{config.js => config.ts} | 5 +- ...date-directive.js => absdate-directive.ts} | 1 + .../datetime/{datetime.js => datetime.ts} | 6 +- ...-directive.js => group-dates-directive.ts} | 2 + ...omplex.js => reldate-directive-complex.ts} | 1 + ...date-directive.js => reldate-directive.ts} | 0 ...ckAllDirective.js => CheckAllDirective.ts} | 2 + ...ounceDirective.js => DebounceDirective.ts} | 2 + .../directives/PasswordStrengthDirective.ts | 2 +- ...irective.js => PhoneHomeModalDirective.ts} | 3 + ...istDirective.js => SearchListDirective.ts} | 6 +- ...ective.js => SearchListSingleDirective.ts} | 2 + ...ottleDirective.js => ThrottleDirective.ts} | 2 + ...amsDirective.js => WithParamsDirective.ts} | 4 +- .../{add-embed.ctrl.js => add-embed.ctrl.ts} | 10 +- .../{customAnchor.js => customAnchor.ts} | 4 + .../{editor.ctrl.js => editor.ctrl.ts} | 86 ++++++++-------- scripts/core/editor2/{editor.js => editor.ts} | 52 +++++----- scripts/core/editor2/embedCodeHandlers.ts | 2 +- .../editor3/actions/tests/toolbar.spec.tsx | 2 +- scripts/core/editor3/components/Editor3.tsx | 2 +- .../editor3/components/Editor3Component.tsx | 2 +- .../annotations/AnnotationInput.tsx | 2 +- .../annotations/AnnotationPopup.tsx | 2 +- .../components/comments/CommentInput.tsx | 2 +- .../editor3/components/embeds/EmbedBlock.tsx | 2 +- .../editor3/components/embeds/EmbedInput.tsx | 2 +- .../components/embeds/loadIframely.tsx | 2 +- .../editor3/components/links/LinkInput.tsx | 2 +- .../editor3/components/links/LinkToolbar.tsx | 2 +- .../editor3/components/media/MediaBlock.tsx | 2 +- .../spellchecker/SpellcheckerContextMenu.tsx | 2 +- .../suggestions/SuggestionPopup.tsx | 2 +- .../editor3/components/tables/TableBlock.tsx | 2 +- .../editor3/components/tests/embeds.spec.tsx | 2 +- .../components/tests/spellchecker.spec.tsx | 4 +- .../editor3/{directive.js => directive.tsx} | 43 ++++++-- ...Data.spec.js => editor3CustomData.spec.ts} | 6 +- ...tor3CustomData.js => editor3CustomData.ts} | 4 +- ...ghts.js => handleBeforeInputHighlights.ts} | 9 +- ....js => htmlComesFromDraftjsEditor.spec.ts} | 2 +- .../{inlineStyles.js => inlineStyles.ts} | 14 ++- ... => insertAtomicBlockWithoutEmptyLines.ts} | 8 +- .../{removeFormat.js => removeFormat.ts} | 10 +- ...ectionIterator.js => selectionIterator.ts} | 2 +- scripts/core/editor3/helpers/tansa.ts | 17 ++-- .../html/from-html/{index.js => index.ts} | 14 ++- ...t.spec.jsx => from-html-snapshot.spec.tsx} | 1 - .../{from-html.spec.js => from-html.spec.ts} | 7 +- .../{to-html.spec.js => to-html.spec.ts} | 7 +- ...micBlockParser.js => AtomicBlockParser.ts} | 7 +- ...EntityWrapper.js => BlockEntityWrapper.ts} | 4 + ...eWrapper.js => BlockInlineStyleWrapper.ts} | 7 +- .../{HTMLGenerator.js => HTMLGenerator.ts} | 8 ++ .../core/editor3/store/{index.js => index.ts} | 25 +++-- .../core/editor3/store/tests/store.spec.tsx | 2 +- .../core/editor3/tests/editor3core.spec.tsx | 2 +- scripts/core/elastic/{es.js => es.ts} | 2 +- scripts/core/filters/{index.js => index.ts} | 8 +- .../open-external-links-in-new-tab.js | 29 ------ .../open-external-links-in-new-tab.ts | 28 ++++++ ...ationFrame.js => onEveryAnimationFrame.ts} | 4 +- ...acking.js => stickElementsWithTracking.ts} | 5 +- scripts/core/helpers/{uuid.js => uuid.ts} | 9 +- scripts/core/{index.js => index.ts} | 2 + scripts/core/itemList/itemList.ts | 1 + .../keyboard/{keyboard.js => keyboard.ts} | 27 +++--- .../{keyboard.spec.js => keyboard.spec.ts} | 5 +- scripts/core/lang/{index.js => index.ts} | 0 ...ngs.js => missing-translations-strings.ts} | 3 + scripts/core/list/{list.js => list.ts} | 6 +- .../{notifications.js => notifications.ts} | 19 ++-- .../{notification.js => notification.ts} | 5 +- scripts/core/services/{data.js => data.ts} | 10 +- .../core/services/{entity.js => entity.ts} | 4 +- scripts/core/services/modalService.spec.ts | 12 ++- ...ssionsService.js => permissionsService.ts} | 2 + ...rencesService.js => preferencesService.ts} | 21 ++-- .../core/services/{server.js => server.ts} | 20 ++-- .../{serverConfig.js => serverConfig.ts} | 4 +- .../services/{translate.js => translate.ts} | 3 +- ...{workflowService.js => workflowService.ts} | 2 + .../{spellcheck.js => spellcheck.ts} | 21 ++-- scripts/core/ui/components/Form/LinkInput.tsx | 3 +- scripts/core/ui/{ui.js => ui.ts} | 19 ++-- .../{crop-directive.js => crop-directive.ts} | 13 +-- scripts/core/upload/sdImageCrop.spec.ts | 2 +- .../{sdImageModify.js => sdImageModify.ts} | 12 +-- ...irective.js => video-capture-directive.ts} | 12 +-- scripts/globals.d.ts | 15 ++- scripts/{index.js => index.ts} | 4 +- scripts/{tests.js => tests.ts} | 0 tsconfig.json | 1 + yarn.lock | 97 ++++++++++++++++--- 297 files changed, 1414 insertions(+), 908 deletions(-) rename scripts/apps/archive/controllers/{ArchiveListController.js => ArchiveListController.ts} (100%) rename scripts/apps/archive/controllers/{BaseListController.js => BaseListController.ts} (90%) rename scripts/apps/archive/directives/{ArchivedItemKill.js => ArchivedItemKill.ts} (94%) rename scripts/apps/archive/directives/{ContentResults.js => ContentResults.ts} (99%) rename scripts/apps/archive/directives/{Export.js => Export.ts} (96%) rename scripts/apps/archive/directives/{ItemCrops.js => ItemCrops.ts} (95%) rename scripts/apps/archive/directives/{ItemLock.js => ItemLock.ts} (98%) rename scripts/apps/archive/directives/{MarkedItemTitle.js => MarkedItemTitle.ts} (97%) rename scripts/apps/archive/directives/{MediaMetadata.js => MediaMetadata.ts} (95%) rename scripts/apps/archive/directives/{MediaPreview.js => MediaPreview.ts} (99%) rename scripts/apps/archive/directives/{MediaUsed.js => MediaUsed.ts} (96%) rename scripts/apps/archive/directives/{MediaView.js => MediaView.ts} (99%) rename scripts/apps/archive/directives/{ResendItem.js => ResendItem.ts} (94%) rename scripts/apps/archive/{index.js => index.ts} (99%) rename scripts/apps/archive/services/{ArchiveService.js => ArchiveService.ts} (92%) rename scripts/apps/archive/services/{FamilyService.js => FamilyService.ts} (96%) rename scripts/apps/archive/services/{MultiService.js => MultiService.ts} (99%) rename scripts/apps/archive/tests/{archive.spec.js => archive.spec.ts} (97%) rename scripts/apps/authoring/authoring/{authoring.spec.js => authoring.spec.ts} (93%) rename scripts/apps/authoring/authoring/{constants.js => constants.ts} (99%) rename scripts/apps/authoring/authoring/directives/{ArticleEditDirective.js => ArticleEditDirective.ts} (99%) rename scripts/apps/authoring/authoring/directives/{AuthoringDirective.js => AuthoringDirective.ts} (98%) rename scripts/apps/authoring/authoring/directives/{AuthoringEmbeddedDirective.js => AuthoringEmbeddedDirective.ts} (93%) rename scripts/apps/authoring/authoring/directives/{FullPreviewDirective.js => FullPreviewDirective.ts} (99%) rename scripts/apps/authoring/authoring/directives/{ItemActionsByIntentDirective.js => ItemActionsByIntentDirective.ts} (98%) rename scripts/apps/authoring/authoring/directives/{ItemCarouselDirective.js => ItemCarouselDirective.ts} (93%) rename scripts/apps/authoring/authoring/directives/{ReadingTime.js => ReadingTime.ts} (91%) rename scripts/apps/authoring/authoring/directives/{SendItem.js => SendItem.tsx} (98%) rename scripts/apps/authoring/authoring/directives/{TansaScopeSyncDirective.js => TansaScopeSyncDirective.ts} (91%) rename scripts/apps/authoring/authoring/{helpers.js => helpers.ts} (94%) rename scripts/apps/authoring/authoring/services/{AuthoringService.js => AuthoringService.ts} (98%) rename scripts/apps/authoring/authoring/services/{AuthoringThemesService.js => AuthoringThemesService.ts} (98%) rename scripts/apps/authoring/authoring/services/{AutosaveService.js => AutosaveService.ts} (98%) rename scripts/apps/authoring/compare-versions/{CompareVersionsController.js => CompareVersionsController.ts} (96%) rename scripts/apps/authoring/compare-versions/{CompareVersionsService.js => CompareVersionsService.ts} (96%) rename scripts/apps/authoring/compare-versions/directives/{CompareVersionsArticleDirective.js => CompareVersionsArticleDirective.ts} (97%) rename scripts/apps/authoring/compare-versions/directives/{CompareVersionsDropdownDirective.js => CompareVersionsDropdownDirective.ts} (96%) rename scripts/apps/authoring/compare-versions/directives/{CompareVersionsDropdownInnerDirective.js => CompareVersionsDropdownInnerDirective.ts} (90%) rename scripts/apps/authoring/editor/{find-replace.js => find-replace.ts} (97%) rename scripts/apps/authoring/macros/{macros.js => macros.ts} (99%) rename scripts/apps/authoring/metadata/{metadata.js => metadata.ts} (98%) rename scripts/apps/authoring/multiedit/{multiedit.js => multiedit.ts} (99%) rename scripts/apps/authoring/packages/{packages.js => packages.ts} (98%) rename scripts/apps/authoring/suggest/{SuggestController.js => SuggestController.ts} (98%) rename scripts/apps/authoring/suggest/{SuggestDirective.js => SuggestDirective.ts} (97%) rename scripts/apps/authoring/suggest/{SuggestService.js => SuggestService.ts} (97%) rename scripts/apps/authoring/tests/{authoring.spec.js => authoring.spec.ts} (99%) rename scripts/apps/authoring/tests/{changeImage.spec.js => changeImage.spec.ts} (98%) rename scripts/apps/authoring/translations/{index.js => index.ts} (98%) rename scripts/apps/authoring/versioning/history/{HistoryController.js => HistoryController.ts} (98%) rename scripts/apps/authoring/versioning/history/{TransmissionDetailsDirective.js => TransmissionDetailsDirective.ts} (96%) rename scripts/apps/contacts/controllers/{ContactsController.js => ContactsController.ts} (94%) rename scripts/apps/contacts/directives/{ContactList.js => ContactList.ts} (96%) rename scripts/apps/contacts/directives/{ContactsSearchPanelDirective.js => ContactsSearchPanelDirective.tsx} (96%) rename scripts/apps/contacts/directives/{ContactsSearchResultsDirective.js => ContactsSearchResultsDirective.ts} (90%) rename scripts/apps/contacts/directives/{ContactsSortBarDirective.js => ContactsSortBarDirective.ts} (97%) rename scripts/apps/contacts/{helpers.js => helpers.ts} (98%) rename scripts/apps/contacts/services/{ContactsService.js => ContactsService.ts} (95%) rename scripts/apps/content-api/controllers/{ContentAPIController.js => ContentAPIController.ts} (94%) rename scripts/apps/content-api/directives/{ContentAPISearchPanelDirective.js => ContentAPISearchPanelDirective.ts} (96%) rename scripts/apps/content-api/directives/{ContentAPISearchResultsDirective.js => ContentAPISearchResultsDirective.ts} (89%) rename scripts/apps/content-api/directives/{ContentAPISortBarDirective.js => ContentAPISortBarDirective.ts} (97%) rename scripts/apps/content-api/services/{ContentAPISearchService.js => ContentAPISearchService.ts} (76%) rename scripts/apps/content-filters/controllers/{FilterConditionsController.js => FilterConditionsController.ts} (99%) rename scripts/apps/content-filters/controllers/{ManageContentFiltersController.js => ManageContentFiltersController.ts} (99%) rename scripts/apps/content-filters/controllers/{ProductionTestController.js => ProductionTestController.ts} (98%) rename scripts/apps/dashboard/closed-desk/{DeskRoutingInfoDirective.js => DeskRoutingInfoDirective.ts} (100%) rename scripts/apps/dashboard/closed-desk/{index.js => index.ts} (93%) rename scripts/apps/dashboard/controllers/{ConfigController.js => ConfigController.ts} (70%) rename scripts/apps/dashboard/controllers/{DashboardController.js => DashboardController.ts} (99%) rename scripts/apps/dashboard/{index.js => index.ts} (98%) rename scripts/apps/dashboard/services/{DashboardWidgets.js => DashboardWidgets.ts} (91%) rename scripts/apps/dashboard/workspace-tasks/{tasks.js => tasks.ts} (98%) rename scripts/apps/dashboard/workspace-tasks/tests/{tasks.spec.js => tasks.spec.ts} (99%) rename scripts/apps/dashboard/world-clock/{world-clock.js => world-clock.ts} (99%) rename scripts/apps/desks/controllers/{DeskConfigController.js => DeskConfigController.ts} (91%) rename scripts/apps/desks/controllers/{DeskListController.js => DeskListController.ts} (98%) rename scripts/apps/desks/directives/{ActionPicker.js => ActionPicker.ts} (91%) rename scripts/apps/desks/directives/{ContentExpiry.js => ContentExpiry.ts} (99%) rename scripts/apps/desks/directives/{DeskSelect.js => DeskSelect.ts} (99%) rename scripts/apps/desks/directives/{DeskeditPeople.js => DeskeditPeople.ts} (99%) rename scripts/apps/desks/directives/{DeskeditStages.js => DeskeditStages.ts} (95%) rename scripts/apps/desks/directives/{FocusElement.js => FocusElement.ts} (81%) rename scripts/apps/desks/directives/{UserRoleItemListDirective.js => UserRoleItemListDirective.ts} (97%) rename scripts/apps/desks/directives/{UserSelectList.js => UserSelectList.ts} (99%) rename scripts/apps/desks/services/{DesksFactory.js => DesksFactory.ts} (99%) rename scripts/apps/desks/tests/{sdDeskEditPeople.spec.js => sdDeskEditPeople.spec.ts} (99%) rename scripts/apps/dictionaries/controllers/{DictionaryConfigController.js => DictionaryConfigController.ts} (98%) rename scripts/apps/dictionaries/controllers/{DictionaryEditController.js => DictionaryEditController.ts} (99%) rename scripts/apps/dictionaries/services/{DictionaryService.js => DictionaryService.ts} (99%) rename scripts/apps/highlights/controllers/{HighlightsConfig.js => HighlightsConfig.ts} (98%) rename scripts/apps/highlights/controllers/{HighlightsSettings.js => HighlightsSettings.ts} (94%) rename scripts/apps/highlights/directives/{HighlightsLabel.js => HighlightsLabel.ts} (95%) rename scripts/apps/highlights/directives/{MultiMarkHighlightsDropdown.js => MultiMarkHighlightsDropdown.ts} (98%) rename scripts/apps/highlights/directives/{SearchHighlights.js => SearchHighlights.ts} (96%) rename scripts/apps/highlights/services/{HighlightsService.js => HighlightsService.ts} (98%) rename scripts/apps/highlights/tests/{highlights.spec.js => highlights.spec.ts} (99%) rename scripts/apps/ingest/controllers/{IngestDashboardController.js => IngestDashboardController.ts} (96%) rename scripts/apps/ingest/controllers/{IngestListController.js => IngestListController.ts} (98%) rename scripts/apps/ingest/directives/{IngestRoutingAction.js => IngestRoutingAction.ts} (96%) rename scripts/apps/ingest/directives/{IngestRoutingContent.js => IngestRoutingContent.ts} (95%) rename scripts/apps/ingest/directives/{IngestRoutingFilter.js => IngestRoutingFilter.ts} (94%) rename scripts/apps/ingest/directives/{IngestRoutingGeneral.js => IngestRoutingGeneral.ts} (83%) rename scripts/apps/ingest/directives/{IngestRulesContent.js => IngestRulesContent.ts} (99%) rename scripts/apps/ingest/directives/{IngestSourcesContent.js => IngestSourcesContent.ts} (98%) rename scripts/apps/ingest/directives/{IngestUserDashboard.js => IngestUserDashboard.ts} (98%) rename scripts/apps/ingest/filters/{index.js => index.ts} (96%) rename scripts/apps/ingest/services/{IngestProviderService.js => IngestProviderService.ts} (98%) rename scripts/apps/ingest/services/{RemoveIngestedService.js => RemoveIngestedService.ts} (97%) rename scripts/apps/ingest/services/{SendService.js => SendService.ts} (93%) rename scripts/apps/ingest/services/{SubjectService.js => SubjectService.ts} (98%) rename scripts/apps/ingest/tests/{ingest.spec.js => ingest.spec.ts} (96%) rename scripts/apps/legal-archive/controllers/{LegalArchiveController.js => LegalArchiveController.ts} (98%) rename scripts/apps/legal-archive/directives/{LegalItemSortbar.js => LegalItemSortbar.ts} (98%) rename scripts/apps/legal-archive/services/{LegalArchiveService.js => LegalArchiveService.ts} (97%) rename scripts/apps/monitoring/controllers/{AggregateCtrl.js => AggregateCtrl.ts} (99%) rename scripts/apps/monitoring/directives/{DeskNotifications.js => DeskNotifications.ts} (96%) rename scripts/apps/monitoring/directives/{ItemActionsMenu.js => ItemActionsMenu.ts} (97%) rename scripts/apps/monitoring/directives/{MonitoringView.js => MonitoringView.ts} (97%) rename scripts/apps/monitoring/directives/{WidgetGroup.js => WidgetGroup.ts} (94%) rename scripts/apps/monitoring/services/{CardsService.js => CardsService.ts} (96%) rename scripts/apps/monitoring/tests/{monitoring.spec.js => monitoring.spec.ts} (99%) rename scripts/apps/packaging/controllers/{SearchWidgetCtrl.js => SearchWidgetCtrl.ts} (98%) rename scripts/apps/packaging/directives/{Package.js => Package.ts} (97%) rename scripts/apps/packaging/directives/{PackageItemPreview.js => PackageItemPreview.ts} (99%) rename scripts/apps/packaging/directives/{PackageItemsEdit.js => PackageItemsEdit.ts} (91%) rename scripts/apps/packaging/services/{PackagesService.js => PackagesService.ts} (95%) rename scripts/apps/products/controllers/{ProductsConfigController.js => ProductsConfigController.ts} (99%) rename scripts/apps/products/services/{ProductsFactory.js => ProductsFactory.ts} (98%) rename scripts/apps/publish/controllers/{PublishQueueController.js => PublishQueueController.ts} (91%) rename scripts/apps/publish/directives/{SubscribersDirective.js => SubscribersDirective.ts} (99%) rename scripts/apps/publish/services/{SubscribersService.js => SubscribersService.ts} (98%) rename scripts/apps/search-providers/{directive.js => directive.ts} (97%) rename scripts/apps/search/components/fields/{highlights.js => highlights.ts} (93%) rename scripts/apps/search/components/fields/{markedDesks.js => markedDesks.ts} (93%) rename scripts/apps/search/components/fields/{slugline.js => slugline.ts} (90%) rename scripts/apps/search/components/fields/{wordcount.js => wordcount.ts} (67%) rename scripts/apps/search/directives/{BaseSortBar.js => BaseSortBar.ts} (94%) rename scripts/apps/search/directives/{ItemList.js => ItemList.ts} (98%) rename scripts/apps/search/directives/{ItemSearchbar.js => ItemSearchbar.ts} (98%) rename scripts/apps/search/directives/{ItemSortbar.js => ItemSortbar.ts} (96%) rename scripts/apps/search/directives/{MultiActionBar.js => MultiActionBar.ts} (99%) rename scripts/apps/search/directives/{SearchFilters.js => SearchFilters.ts} (98%) rename scripts/apps/search/directives/{SearchPanel.js => SearchPanel.ts} (98%) rename scripts/apps/search/directives/{SearchParameters.js => SearchParameters.ts} (99%) rename scripts/apps/search/directives/{SearchResults.js => SearchResults.ts} (96%) rename scripts/apps/search/directives/{SearchTags.js => SearchTags.ts} (99%) rename scripts/apps/search/services/{SavedSearchService.js => SavedSearchService.ts} (98%) rename scripts/apps/search/services/{SearchService.js => SearchService.ts} (92%) rename scripts/apps/search/services/{SortService.js => SortService.ts} (95%) rename scripts/apps/search/services/{TagService.js => TagService.ts} (97%) rename scripts/apps/search/tests/{search.spec.js => search.spec.ts} (98%) rename scripts/apps/settings/directives/{RoleUnique.js => RoleUnique.ts} (94%) rename scripts/apps/stream/controllers/{StreamController.js => StreamController.ts} (89%) rename scripts/apps/templates/directives/{TemplateEditorModal.js => TemplateEditorModal.ts} (98%) rename scripts/apps/templates/directives/{TemplatesDirective.js => TemplatesDirective.ts} (96%) rename scripts/apps/templates/filters/{index.js => index.ts} (98%) rename scripts/apps/templates/services/{TemplatesService.js => TemplatesService.ts} (93%) rename scripts/apps/translations/directives/{TranslationDropdown.js => TranslationDropdown.ts} (97%) rename scripts/apps/translations/directives/{TranslationReactDropdown.js => TranslationReactDropdown.ts} (84%) rename scripts/apps/translations/services/{TranslationService.js => TranslationService.ts} (95%) rename scripts/apps/users/controllers/{ChangeAvatarController.js => ChangeAvatarController.ts} (96%) rename scripts/apps/users/controllers/{UserListController.js => UserListController.ts} (98%) rename scripts/apps/users/directives/{RolesPrivilegesDirective.js => RolesPrivilegesDirective.ts} (98%) rename scripts/apps/users/directives/{UserListDirective.js => UserListDirective.ts} (95%) rename scripts/apps/users/directives/{UserMentioDirective.js => UserMentioDirective.ts} (98%) rename scripts/apps/users/directives/{UserPrivilegesDirective.js => UserPrivilegesDirective.ts} (97%) rename scripts/apps/users/import/{import.js => import.ts} (93%) rename scripts/apps/users/{index.js => index.ts} (96%) rename scripts/apps/users/roles/{RolesService.js => RolesService.ts} (94%) rename scripts/apps/users/services/{ProfileService.js => ProfileService.ts} (96%) rename scripts/apps/users/services/{UserListService.js => UserListService.ts} (95%) rename scripts/apps/users/services/{UserPopupService.js => UserPopupService.ts} (98%) rename scripts/apps/users/services/{UsersService.js => UsersService.ts} (97%) rename scripts/apps/users/tests/{sdUserPrivileges.spec.js => sdUserPrivileges.spec.ts} (97%) rename scripts/apps/users/tests/{users.spec.js => users.spec.ts} (97%) rename scripts/apps/workspace/content/services/{ContentService.js => ContentService.ts} (95%) rename scripts/apps/workspace/directives/{WorkspaceDropdownDirective.js => WorkspaceDropdownDirective.ts} (99%) rename scripts/apps/workspace/helpers/{getLabelForFieldId.js => getLabelForFieldId.ts} (100%) rename scripts/core/activity/{activity-list-directive.js => activity-list-directive.ts} (99%) rename scripts/core/analytics/{analytics.js => analytics.ts} (84%) rename scripts/core/api/{api-service.spec.js => api-service.spec.ts} (99%) rename scripts/core/api/{api-service.js => api-service.ts} (94%) rename scripts/core/api/{http-endpoint-factory.js => http-endpoint-factory.ts} (99%) rename scripts/core/api/{request-service.js => request-service.ts} (100%) rename scripts/core/api/{timeout-interceptor.spec.js => timeout-interceptor.spec.ts} (92%) rename scripts/core/auth/{basic-auth-adapter.spec.js => basic-auth-adapter.spec.ts} (100%) rename scripts/core/{config.js => config.ts} (97%) rename scripts/core/datetime/{absdate-directive.js => absdate-directive.ts} (98%) rename scripts/core/datetime/{datetime.js => datetime.ts} (98%) rename scripts/core/datetime/{group-dates-directive.js => group-dates-directive.ts} (98%) rename scripts/core/datetime/{reldate-directive-complex.js => reldate-directive-complex.ts} (98%) rename scripts/core/datetime/{reldate-directive.js => reldate-directive.ts} (100%) rename scripts/core/directives/{CheckAllDirective.js => CheckAllDirective.ts} (98%) rename scripts/core/directives/{DebounceDirective.js => DebounceDirective.ts} (97%) rename scripts/core/directives/{PhoneHomeModalDirective.js => PhoneHomeModalDirective.ts} (95%) rename scripts/core/directives/{SearchListDirective.js => SearchListDirective.ts} (94%) rename scripts/core/directives/{SearchListSingleDirective.js => SearchListSingleDirective.ts} (98%) rename scripts/core/directives/{ThrottleDirective.js => ThrottleDirective.ts} (97%) rename scripts/core/directives/{WithParamsDirective.js => WithParamsDirective.ts} (93%) rename scripts/core/editor2/{add-embed.ctrl.js => add-embed.ctrl.ts} (94%) rename scripts/core/editor2/{customAnchor.js => customAnchor.ts} (95%) rename scripts/core/editor2/{editor.ctrl.js => editor.ctrl.ts} (85%) rename scripts/core/editor2/{editor.js => editor.ts} (97%) rename scripts/core/editor3/{directive.js => directive.tsx} (88%) rename scripts/core/editor3/helpers/{editor3CustomData.spec.js => editor3CustomData.spec.ts} (89%) rename scripts/core/editor3/helpers/{editor3CustomData.js => editor3CustomData.ts} (97%) rename scripts/core/editor3/helpers/{handleBeforeInputHighlights.js => handleBeforeInputHighlights.ts} (96%) rename scripts/core/editor3/helpers/{htmlComesFromDraftjsEditor.spec.js => htmlComesFromDraftjsEditor.spec.ts} (98%) rename scripts/core/editor3/helpers/{inlineStyles.js => inlineStyles.ts} (85%) rename scripts/core/editor3/helpers/{insertAtomicBlockWithoutEmptyLines.js => insertAtomicBlockWithoutEmptyLines.ts} (96%) rename scripts/core/editor3/helpers/{removeFormat.js => removeFormat.ts} (96%) rename scripts/core/editor3/helpers/selection/{selectionIterator.js => selectionIterator.ts} (96%) rename scripts/core/editor3/html/from-html/{index.js => index.ts} (97%) rename scripts/core/editor3/html/tests/{from-html-snapshot.spec.jsx => from-html-snapshot.spec.tsx} (99%) rename scripts/core/editor3/html/tests/{from-html.spec.js => from-html.spec.ts} (96%) rename scripts/core/editor3/html/tests/{to-html.spec.js => to-html.spec.ts} (98%) rename scripts/core/editor3/html/to-html/{AtomicBlockParser.js => AtomicBlockParser.ts} (97%) rename scripts/core/editor3/html/to-html/{BlockEntityWrapper.js => BlockEntityWrapper.ts} (96%) rename scripts/core/editor3/html/to-html/{BlockInlineStyleWrapper.js => BlockInlineStyleWrapper.ts} (97%) rename scripts/core/editor3/html/to-html/{HTMLGenerator.js => HTMLGenerator.ts} (96%) rename scripts/core/editor3/store/{index.js => index.ts} (92%) rename scripts/core/elastic/{es.js => es.ts} (96%) rename scripts/core/filters/{index.js => index.ts} (98%) delete mode 100644 scripts/core/global-fixes/open-external-links-in-new-tab.js create mode 100644 scripts/core/global-fixes/open-external-links-in-new-tab.ts rename scripts/core/helpers/dom/{onEveryAnimationFrame.js => onEveryAnimationFrame.ts} (95%) rename scripts/core/helpers/dom/{stickElementsWithTracking.js => stickElementsWithTracking.ts} (92%) rename scripts/core/helpers/{uuid.js => uuid.ts} (80%) rename scripts/core/{index.js => index.ts} (99%) rename scripts/core/keyboard/{keyboard.js => keyboard.ts} (94%) rename scripts/core/keyboard/tests/{keyboard.spec.js => keyboard.spec.ts} (97%) rename scripts/core/lang/{index.js => index.ts} (100%) rename scripts/core/lang/{missing-translations-strings.js => missing-translations-strings.ts} (98%) rename scripts/core/list/{list.js => list.ts} (98%) rename scripts/core/menu/notifications/{notifications.js => notifications.ts} (94%) rename scripts/core/notification/{notification.js => notification.ts} (99%) rename scripts/core/services/{data.js => data.ts} (96%) rename scripts/core/services/{entity.js => entity.ts} (99%) rename scripts/core/services/{permissionsService.js => permissionsService.ts} (99%) rename scripts/core/services/{preferencesService.js => preferencesService.ts} (95%) rename scripts/core/services/{server.js => server.ts} (95%) rename scripts/core/services/{serverConfig.js => serverConfig.ts} (96%) rename scripts/core/services/{translate.js => translate.ts} (98%) rename scripts/core/services/{workflowService.js => workflowService.ts} (97%) rename scripts/core/spellcheck/{spellcheck.js => spellcheck.ts} (96%) rename scripts/core/ui/{ui.js => ui.ts} (99%) rename scripts/core/upload/{crop-directive.js => crop-directive.ts} (88%) rename scripts/core/upload/{sdImageModify.js => sdImageModify.ts} (87%) rename scripts/core/upload/{video-capture-directive.js => video-capture-directive.ts} (87%) rename scripts/{index.js => index.ts} (93%) rename scripts/{tests.js => tests.ts} (100%) diff --git a/jsconfig.json b/jsconfig.json index 67faa8c54e..743b9147fb 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -5,17 +5,17 @@ "jsx": "preserve", "paths": { "apps/*": [ - "./scripts/apps/*", + "./scripts/apps/*" ], "core/*": [ - "./scripts/core/*", - ], + "./scripts/core/*" + ] }, - "baseUrl": ".", + "baseUrl": "." }, "exclude": [ "node_modules", "bower_components", - "po", + "po" ] -} \ No newline at end of file +} diff --git a/karma.conf.js b/karma.conf.js index 20aff0a75a..aebe04e0f4 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,5 +1,3 @@ - - var grunt = require('grunt'); var makeConfig = require('./webpack.config.js'); @@ -25,7 +23,7 @@ module.exports = function(config) { preprocessors: { '**/*.html': ['ng-html2js'], - 'scripts/tests.js': ['webpack', 'sourcemap'], + 'scripts/tests.ts': ['webpack', 'sourcemap'], }, webpack: webpackConfig, @@ -40,7 +38,7 @@ module.exports = function(config) { }, files: [ - 'scripts/tests.js', + 'scripts/tests.ts', 'scripts/**/*.html', ], @@ -69,5 +67,10 @@ module.exports = function(config) { // Seams default 10s is not enough for CI sometime, so let's try 30s browserNoActivityTimeout: 30000, + + // Allow typescript files + mime: { + 'text/x-typescript': ['ts', 'tsx'], + }, }); }; diff --git a/package.json b/package.json index 5915d28399..02fea1f5d0 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "main": "scripts/index.js", "dependencies": { "@types/angular": "1.6.50", - "@types/draft-js": "0.10.25", + "@types/draft-js": "0.10.29", "@types/lodash": "4.14.117", "@types/react": "16.4.9", "@types/react-dom": "16.8.0", @@ -111,6 +111,9 @@ "webpack-dev-server": "2.11.1" }, "devDependencies": { + "@types/moment": "^2.13.0", + "@types/moment-timezone": "^0.5.12", + "@types/webpack-env": "^1.13.9", "btoa": "^1.1.2", "enzyme": "^3.3.0", "enzyme-adapter-react-16": "^1.1.1", diff --git a/scripts/apps/archive/controllers/ArchiveListController.js b/scripts/apps/archive/controllers/ArchiveListController.ts similarity index 100% rename from scripts/apps/archive/controllers/ArchiveListController.js rename to scripts/apps/archive/controllers/ArchiveListController.ts diff --git a/scripts/apps/archive/controllers/BaseListController.js b/scripts/apps/archive/controllers/BaseListController.ts similarity index 90% rename from scripts/apps/archive/controllers/BaseListController.js rename to scripts/apps/archive/controllers/BaseListController.ts index d44810e8f3..fbb156f72b 100644 --- a/scripts/apps/archive/controllers/BaseListController.js +++ b/scripts/apps/archive/controllers/BaseListController.ts @@ -1,4 +1,11 @@ +import _ from 'lodash'; + export class BaseListController { + lastQueryParams: any; + $location: any; + search: any; + desks: any; + constructor($scope, $location, search, desks) { this.lastQueryParams = {}; this.$location = $location; @@ -11,7 +18,7 @@ export class BaseListController { const source = this.getQuery(null, $scope.repo.archive || false); source.from = from; - this.fetchItems(this.getCriteria(source), true); + this.fetchItems(this.getCriteria(source)); }; $scope.$on('$routeUpdate', (e, data) => { @@ -55,12 +62,13 @@ export class BaseListController { return query; } - fetchItems(criteria) { + fetchItems(criteria, next?) { console.warn('No API defined.'); } fetchItem(id) { console.warn('no api defined'); + return Promise.resolve(); } refresh(filterDesk) { diff --git a/scripts/apps/archive/directives/ArchivedItemKill.js b/scripts/apps/archive/directives/ArchivedItemKill.ts similarity index 94% rename from scripts/apps/archive/directives/ArchivedItemKill.js rename to scripts/apps/archive/directives/ArchivedItemKill.ts index e9737d629b..4169043463 100644 --- a/scripts/apps/archive/directives/ArchivedItemKill.js +++ b/scripts/apps/archive/directives/ArchivedItemKill.ts @@ -18,7 +18,7 @@ export function ArchivedItemKill(authoring, api, notify) { api.remove(itemToDelete, {}, 'archived').then( (response) => { var fields = _.union(_.keys(authoring.getContentFieldDefaults()), ['_id', 'versioncreated']); - var itemForTemplate = {template_name: scope.action, item: _.pick(scope.item, fields)}; + let itemForTemplate: any = {template_name: scope.action, item: _.pick(scope.item, fields)}; api.save('content_templates_apply', {}, itemForTemplate, {}).then((result) => { itemForTemplate = _.pick(result, _.keys(authoring.getContentFieldDefaults())); @@ -38,7 +38,7 @@ export function ArchivedItemKill(authoring, api, notify) { } else { notify.error(gettext('Unknown Error: Cannot kill the item')); } - } + }, ); scope.kill = function() { diff --git a/scripts/apps/archive/directives/ContentResults.js b/scripts/apps/archive/directives/ContentResults.ts similarity index 99% rename from scripts/apps/archive/directives/ContentResults.js rename to scripts/apps/archive/directives/ContentResults.ts index ce0fb3f148..1d7383d510 100644 --- a/scripts/apps/archive/directives/ContentResults.js +++ b/scripts/apps/archive/directives/ContentResults.ts @@ -1,3 +1,5 @@ +import _ from 'lodash'; + ContentResults.$inject = ['$location', 'preferencesService', 'packages', 'tags', 'asset', 'search']; /* diff --git a/scripts/apps/archive/directives/Export.js b/scripts/apps/archive/directives/Export.ts similarity index 96% rename from scripts/apps/archive/directives/Export.js rename to scripts/apps/archive/directives/Export.ts index b489d262cf..32316cbab6 100644 --- a/scripts/apps/archive/directives/Export.js +++ b/scripts/apps/archive/directives/Export.ts @@ -1,4 +1,15 @@ +import _ from 'lodash'; + class LinkFunction { + api: any; + config: any; + multi: any; + notify: any; + storage: any; + session: any; + urls: any; + scope: any; + constructor(api, config, multi, notify, storage, session, urls, scope) { this.api = api; this.config = config; diff --git a/scripts/apps/archive/directives/ItemCrops.js b/scripts/apps/archive/directives/ItemCrops.ts similarity index 95% rename from scripts/apps/archive/directives/ItemCrops.js rename to scripts/apps/archive/directives/ItemCrops.ts index 0f60c9d1b3..784d1ac896 100644 --- a/scripts/apps/archive/directives/ItemCrops.js +++ b/scripts/apps/archive/directives/ItemCrops.ts @@ -1,3 +1,5 @@ +import _ from 'lodash'; + /** * @ngdoc directive * @module superdesk.apps.archive @@ -32,7 +34,7 @@ export function ItemCrops(metadata) { scope.showCrops = () => ( _.includes(['picture', 'graphic'], scope.item.type) && _.get(metadata, 'values.crop_sizes') && metadata.values.crop_sizes.some( - (crop) => scope.item.renditions && scope.item.renditions[crop.name] + (crop) => scope.item.renditions && scope.item.renditions[crop.name], ) ); }, diff --git a/scripts/apps/archive/directives/ItemLock.js b/scripts/apps/archive/directives/ItemLock.ts similarity index 98% rename from scripts/apps/archive/directives/ItemLock.js rename to scripts/apps/archive/directives/ItemLock.ts index bf67417509..d82684ddaa 100644 --- a/scripts/apps/archive/directives/ItemLock.js +++ b/scripts/apps/archive/directives/ItemLock.ts @@ -1,3 +1,5 @@ +import _ from 'lodash'; + ItemLock.$inject = ['api', 'lock', 'privileges', 'desks']; export function ItemLock(api, lock, privileges, desks) { return { diff --git a/scripts/apps/archive/directives/MarkedItemTitle.js b/scripts/apps/archive/directives/MarkedItemTitle.ts similarity index 97% rename from scripts/apps/archive/directives/MarkedItemTitle.js rename to scripts/apps/archive/directives/MarkedItemTitle.ts index 81f3ca51a7..39fdca2cf4 100644 --- a/scripts/apps/archive/directives/MarkedItemTitle.js +++ b/scripts/apps/archive/directives/MarkedItemTitle.ts @@ -1,4 +1,15 @@ +import _ from 'lodash'; + class LinkFunction { + scope: any; + desks: any; + authoring: any; + highlightsService: any; + filter: any; + location: any; + timeout: any; + elem: any; + constructor(desks, authoring, highlightsService, $filter, $location, $timeout, scope, elem) { this.desks = desks; this.authoring = authoring; diff --git a/scripts/apps/archive/directives/MediaMetadata.js b/scripts/apps/archive/directives/MediaMetadata.ts similarity index 95% rename from scripts/apps/archive/directives/MediaMetadata.js rename to scripts/apps/archive/directives/MediaMetadata.ts index 7d5c9f0783..63abc875cc 100644 --- a/scripts/apps/archive/directives/MediaMetadata.js +++ b/scripts/apps/archive/directives/MediaMetadata.ts @@ -1,3 +1,5 @@ +import _ from 'lodash'; + MediaMetadata.$inject = ['userList', 'archiveService', 'metadata']; export function MediaMetadata(userList, archiveService, metadata) { @@ -38,7 +40,7 @@ export function MediaMetadata(userList, archiveService, metadata) { } scope.getLocaleName = function(terms, scheme) { - const term = terms.find((elem) => elem.scheme === scheme); + const term = terms.find((element) => element.scheme === scheme); if (!term) { return 'None'; diff --git a/scripts/apps/archive/directives/MediaPreview.js b/scripts/apps/archive/directives/MediaPreview.ts similarity index 99% rename from scripts/apps/archive/directives/MediaPreview.js rename to scripts/apps/archive/directives/MediaPreview.ts index 3bb1ef7dc0..39eeb7fb45 100644 --- a/scripts/apps/archive/directives/MediaPreview.js +++ b/scripts/apps/archive/directives/MediaPreview.ts @@ -1,3 +1,5 @@ +import _ from 'lodash'; + /** * @ngdoc directive * @module superdesk.apps.archive diff --git a/scripts/apps/archive/directives/MediaUsed.js b/scripts/apps/archive/directives/MediaUsed.ts similarity index 96% rename from scripts/apps/archive/directives/MediaUsed.js rename to scripts/apps/archive/directives/MediaUsed.ts index 3eb4fe5b06..327a2a20a7 100644 --- a/scripts/apps/archive/directives/MediaUsed.js +++ b/scripts/apps/archive/directives/MediaUsed.ts @@ -1,4 +1,9 @@ class LinkFunction { + scope: any; + superdesk: any; + api: any; + familyService: any; + constructor(superdesk, api, familyService, scope) { this.scope = scope; this.superdesk = superdesk; diff --git a/scripts/apps/archive/directives/MediaView.js b/scripts/apps/archive/directives/MediaView.ts similarity index 99% rename from scripts/apps/archive/directives/MediaView.js rename to scripts/apps/archive/directives/MediaView.ts index 3fcc57ac96..4d0e34483c 100644 --- a/scripts/apps/archive/directives/MediaView.js +++ b/scripts/apps/archive/directives/MediaView.ts @@ -1,3 +1,5 @@ +import _ from 'lodash'; + MediaView.$inject = ['keyboardManager', 'packages']; export function MediaView(keyboardManager, packages) { diff --git a/scripts/apps/archive/directives/ResendItem.js b/scripts/apps/archive/directives/ResendItem.ts similarity index 94% rename from scripts/apps/archive/directives/ResendItem.js rename to scripts/apps/archive/directives/ResendItem.ts index 07beea6ee8..4e1f25fdb2 100644 --- a/scripts/apps/archive/directives/ResendItem.js +++ b/scripts/apps/archive/directives/ResendItem.ts @@ -1,3 +1,4 @@ +import _ from 'lodash'; import {gettext} from 'core/utils'; ResendItem.$inject = ['subscribersService', 'authoring', 'api', 'notify']; @@ -14,8 +15,8 @@ export function ResendItem(subscribersService, authoring, api, notify) { subscribersService.fetchTargetableSubscribers().then((items) => { scope.customSubscribers = []; scope.subscribers = items._items; - _.each(items, (item) => { - scope.customSubscribers.push({qcode: item._id, name: item.name}); + _.each(items, (_item) => { + scope.customSubscribers.push({qcode: _item._id, name: _item.name}); }); }); } diff --git a/scripts/apps/archive/index.js b/scripts/apps/archive/index.ts similarity index 99% rename from scripts/apps/archive/index.js rename to scripts/apps/archive/index.ts index 48f2384d74..a19d9d3628 100644 --- a/scripts/apps/archive/index.js +++ b/scripts/apps/archive/index.ts @@ -2,7 +2,7 @@ import './styles/related-item.scss'; import './styles/assignment.scss'; import './styles/html-preview.scss'; -import {get} from 'lodash'; +import {get, includes} from 'lodash'; // scripts import './related-item-widget/relatedItem'; @@ -392,7 +392,7 @@ function spikeActivity(spike, data, modal, $location, $q, multi, privileges, authoringWorkspace, confirm, autosave, config) { // For the sake of keyboard shortcut to work consistently, // if the item is multi-selected, let multibar controller handle its spike - if (!data.item || multi.count > 0 && _.includes(multi.getIds(), data.item._id)) { + if (!data.item || multi.count > 0 && includes(multi.getIds(), data.item._id)) { return; } diff --git a/scripts/apps/archive/services/ArchiveService.js b/scripts/apps/archive/services/ArchiveService.ts similarity index 92% rename from scripts/apps/archive/services/ArchiveService.js rename to scripts/apps/archive/services/ArchiveService.ts index 0e07621b73..559a761af6 100644 --- a/scripts/apps/archive/services/ArchiveService.js +++ b/scripts/apps/archive/services/ArchiveService.ts @@ -1,4 +1,5 @@ import _ from 'lodash'; +import moment from 'moment'; ArchiveService.$inject = ['desks', 'session', 'api', '$q', 'search', '$location', 'config']; export function ArchiveService(desks, session, api, $q, search, $location, config) { @@ -81,7 +82,7 @@ export function ArchiveService(desks, session, api, $q, search, $location, confi this.getRelatedItems = function(item, fromDateTime) { var beforeDateTime = fromDateTime || moment().subtract(1, 'days') .format(config.view.dateformat); - var params = {}; + var params: any = {}; params.q = 'slugline.phrase:"' + _.trim(item.slugline) + '"'; // exact match params.ignoreKilled = true; @@ -93,7 +94,7 @@ export function ArchiveService(desks, session, api, $q, search, $location, confi query.size(200); if (_.get(item, '_id')) { - let filter = { + let filter: any = { bool: { must_not: [ {bool: {must: [{term: {_id: item._id}}, {term: {_type: 'archive'}}]}}, @@ -132,11 +133,11 @@ export function ArchiveService(desks, session, api, $q, search, $location, confi * Returns versions of the item. * * @param {Object} item - * @param {Object} desks deskService + * @param {Object} deskService * @param {String} versionType one of versions, operations * @return list of object where each object is a version of the item */ - this.getVersions = function(item, desks, versionType) { + this.getVersions = function(item, deskService, versionType) { if (this.isLegal(item)) { return api.find('legal_archive', item._id, {version: 'all', max_results: 200}) .then((result) => { @@ -165,18 +166,19 @@ export function ArchiveService(desks, session, api, $q, search, $location, confi _.each(result._items, (version) => { if (version.task) { if (version.task.desk) { - var versiondesk = desks.deskLookup[version.task.desk]; + var versiondesk = deskService.deskLookup[version.task.desk]; version.desk = versiondesk && versiondesk.name; } if (version.task.stage) { - var versionstage = desks.stageLookup[version.task.stage]; + var versionstage = deskService.stageLookup[version.task.stage]; version.stage = versionstage && versionstage.name; } } if (version.version_creator || version.original_creator) { - var versioncreator = desks.userLookup[version.version_creator || version.original_creator]; + var versioncreator = + deskService.userLookup[version.version_creator || version.original_creator]; version.creator = versioncreator && versioncreator.display_name || 'System'; } @@ -208,6 +210,8 @@ export function ArchiveService(desks, session, api, $q, search, $location, confi return _.find(versions, {_current_version: item._latest_version}); } - return _.max(versions, (version) => version._current_version || version.version); + const versionsMap = versions.map((v) => v._current_version || v.version); + + return _.max(versionsMap); }; } diff --git a/scripts/apps/archive/services/FamilyService.js b/scripts/apps/archive/services/FamilyService.ts similarity index 96% rename from scripts/apps/archive/services/FamilyService.js rename to scripts/apps/archive/services/FamilyService.ts index 574b349dc8..e2306e359d 100644 --- a/scripts/apps/archive/services/FamilyService.js +++ b/scripts/apps/archive/services/FamilyService.ts @@ -1,4 +1,4 @@ -import {get} from 'lodash'; +import _, {get} from 'lodash'; /** * @ngdoc service @@ -13,7 +13,6 @@ FamilyService.$inject = ['api', 'desks']; export function FamilyService(api, desks) { const repo = 'archive,published'; - /** * @ngdoc method * @name family#fetchItems @@ -24,7 +23,7 @@ export function FamilyService(api, desks) { * @returns {Object} */ this.fetchItems = (familyId, excludeItem) => { - let filter = [ + let filter: Array = [ {not: {term: {state: 'spiked'}}}, {term: {family_id: familyId}}, ]; @@ -64,8 +63,8 @@ export function FamilyService(api, desks) { * @param {Object} queryString * @returns {Object} */ - const query = (filter, sortField, order, queryString) => { - let params = { + const query = (filter: any, sortField: string, order: string, queryString?: string) => { + let params: any = { repo: repo, source: { query: {filtered: {filter: { @@ -115,7 +114,7 @@ export function FamilyService(api, desks) { * @returns {Object} */ this.fetchRelatableItems = (keyword, sluglineMatch, item, modificationDateAfter) => { - let filter = [ + let filter: Array = [ {not: {term: {state: 'spiked'}}}, {not: {term: {event_id: item.event_id}}}, {not: {term: {type: 'composite'}}}, @@ -142,7 +141,7 @@ export function FamilyService(api, desks) { // process creation date if (modificationDateAfter) { - let dateQuery = {}; + let dateQuery: any = {}; dateQuery.versioncreated = { gte: modificationDateAfter, diff --git a/scripts/apps/archive/services/MultiService.js b/scripts/apps/archive/services/MultiService.ts similarity index 99% rename from scripts/apps/archive/services/MultiService.js rename to scripts/apps/archive/services/MultiService.ts index fc3eb64b43..ffdc916b28 100644 --- a/scripts/apps/archive/services/MultiService.js +++ b/scripts/apps/archive/services/MultiService.ts @@ -1,3 +1,5 @@ +import _ from 'lodash'; + /** * @ngdoc service * @module superdesk.apps.archive diff --git a/scripts/apps/archive/tests/archive.spec.js b/scripts/apps/archive/tests/archive.spec.ts similarity index 97% rename from scripts/apps/archive/tests/archive.spec.js rename to scripts/apps/archive/tests/archive.spec.ts index a9fad044f5..803bb0da43 100644 --- a/scripts/apps/archive/tests/archive.spec.js +++ b/scripts/apps/archive/tests/archive.spec.ts @@ -2,7 +2,7 @@ import {DuplicateController} from '../controllers'; describe('content', () => { - var item = {_id: 1}; + var item: any = {_id: 1}; beforeEach(window.module('superdesk.templates-cache')); beforeEach(window.module('superdesk.mocks')); @@ -273,7 +273,7 @@ describe('content', () => { inject(($rootScope, superdesk, activityService, privileges, modal, $q, spike) => { privileges.privileges = {planning: 1}; - let item = { + let itemObject = { _id: 'foo1', _type: 'archive', task: {desk: 'desk1', stage: 'stage1'}, @@ -284,7 +284,7 @@ describe('content', () => { spyOn(modal, 'confirm').and.returnValue($q.when({})); spyOn(spike, 'spike').and.returnValue($q.when({})); - activityService.start(superdesk.activities.spike, {data: {item: item}}); + activityService.start(superdesk.activities.spike, {data: {item: itemObject}}); $rootScope.$digest(); expect(modal.confirm).toHaveBeenCalledWith('This item is linked to in-progress ' + @@ -296,7 +296,7 @@ describe('content', () => { inject(($rootScope, superdesk, activityService, privileges, modal, $q, spike) => { privileges.privileges = {planning: 1}; - let item = { + let itemObject = { _id: 'foo1', _type: 'archive', task: {desk: 'desk1', stage: 'stage1'}, @@ -306,7 +306,7 @@ describe('content', () => { spyOn(modal, 'confirm').and.returnValue($q.when({})); spyOn(spike, 'spike').and.returnValue($q.when({})); - activityService.start(superdesk.activities.spike, {data: {item: item}}); + activityService.start(superdesk.activities.spike, {data: {item: itemObject}}); $rootScope.$digest(); expect(modal.confirm).toHaveBeenCalledWith('Are you sure you want to spike the item?', 'Confirm'); @@ -315,7 +315,7 @@ describe('content', () => { it('spike action does prompts user if planning component not activated', inject(($rootScope, superdesk, activityService, privileges, modal, $q, spike) => { - let item = { + let itemObject = { _id: 'foo1', _type: 'archive', task: {desk: 'desk1', stage: 'stage1'}, @@ -325,7 +325,7 @@ describe('content', () => { spyOn(modal, 'confirm').and.returnValue($q.when({})); spyOn(spike, 'spike').and.returnValue($q.when({})); - activityService.start(superdesk.activities.spike, {data: {item: item}}); + activityService.start(superdesk.activities.spike, {data: {item: itemObject}}); $rootScope.$digest(); expect(modal.confirm).toHaveBeenCalledWith('Are you sure you want to spike the item?', 'Confirm'); @@ -334,14 +334,14 @@ describe('content', () => { it('spike action prompts user if item has unsaved changes', inject((activityService, superdesk, autosave, confirm, $q, $rootScope, spike, modal) => { - const item = {_id: 'foo', lock_user: 'foo'}; + const itemObject = {_id: 'foo', lock_user: 'foo'}; spyOn(autosave, 'get').and.returnValue($q.when()); spyOn(confirm, 'reopen').and.returnValue($q.reject()); spyOn(modal, 'confirm').and.returnValue($q.when()); spyOn(spike, 'spike'); - activityService.start(superdesk.activities.spike, {data: {item: item}}); + activityService.start(superdesk.activities.spike, {data: {item: itemObject}}); $rootScope.$digest(); expect(autosave.get).toHaveBeenCalled(); diff --git a/scripts/apps/authoring/attachments/attachments.spec.ts b/scripts/apps/authoring/attachments/attachments.spec.ts index 3a5f205a2e..facd30332f 100644 --- a/scripts/apps/authoring/attachments/attachments.spec.ts +++ b/scripts/apps/authoring/attachments/attachments.spec.ts @@ -70,6 +70,7 @@ describe('attachments', () => { $rootScope.$digest(); const state = store.getState(); + expect(state.edit).toBe(null); expect(state.files[0].title).toBe(file.title); expect(state.files[0].description).toBe(updates.description); diff --git a/scripts/apps/authoring/authoring/article-url-fields.tsx b/scripts/apps/authoring/authoring/article-url-fields.tsx index c59d243d2c..1a91e71f94 100644 --- a/scripts/apps/authoring/authoring/article-url-fields.tsx +++ b/scripts/apps/authoring/authoring/article-url-fields.tsx @@ -74,7 +74,7 @@ export class ArticleUrlFields extends React.Component { -