import { Controller } from "./controller/AbstractController"; import { UserModel } from "./model/UserModel" import { Model } from "./model/AbstractModel"; import { View } from "./view/AbstractView"; import { UserView } from "./view/UserView"; import { UserController } from "./controller/UserController"; import { ModelFactory } from "./model/ModelFactory"; import { ActiveUserViewModel } from "./viewmodel/ActiveUserViewModel"; import { ChatMessageViewModel } from "./viewmodel/ChatMessageViewModel"; import * as Handlebars from "handlebars"; import { ChatModel } from "./model/ChatModel"; import { ChatView } from "./view/ChatView"; import { ChatController } from "./controller/ChatController"; import { JsonAPI } from "./singleton/JsonAPI"; import * as log from 'loglevel'; import { EncryptionService } from "./service/EncryptionService"; import { SJCLEncryptionService } from "./service/SJCLEncryptionService"; import { MessageCipherDTO } from "./dto/MessageCipherDTO"; import { SearchService } from "./service/SearchService"; import { FuseSearchService } from "./service/FuseSearchService"; import { ChatMessageDTO } from "./dto/ChatMessageDTO"; import { NotificationService } from "./service/NotificationService"; import { AlertifyNotificationService } from "./service/AlertifyNotificationService"; import { Builder } from "builder-pattern"; // import "./SprintfTest.d.ts" // import { sprintf } from "sprintf-js"; // import sprintf = require('sprintf-js'); import { TemplateFactory } from "./template/TemplateFactory"; import { UserViewDeps } from "./view/UserViewDeps"; import { ChatViewDeps } from "./view/ChatViewDeps"; import { MarkDownItMarkDownService } from "./service/MarkDownItMarkDownService"; import { Sprintf } from "./singleton/Sprintf"; const usersListElement = document.getElementById('contacts-box'); const userSearchButton = document.getElementById('user-search'); const userSearchInputElement = document.getElementById('user-search-term') as HTMLInputElement; const userSearchCancelButton = document.getElementById('user-search-cancel'); const activeUserSearchService: SearchService = new FuseSearchService(["userName"]); log.setLevel("TRACE") const chatModel = new ChatModel(); const userModel = new UserModel(); // const userModel = ModelFactory.createModel("USER"); const uvDeps: UserViewDeps = { model: userModel, chatModel: chatModel, // @ts-ignore: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'HTMLElement'. Type 'null' is not assignable to type 'HTMLElement'. usersListElement: usersListElement, userSearchInputElement: userSearchInputElement, // @ts-ignore: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'HTMLElement'. Type 'null' is not assignable to type 'HTMLElement'. userSearchButton: userSearchButton, // @ts-ignore: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'HTMLElement'. Type 'null' is not assignable to type 'HTMLElement'. userSearchCancelButton: userSearchCancelButton, searchService: activeUserSearchService, userContactOnlineTemplate: TemplateFactory.getTemplate('user-contact-online-template'), userContactOfflineTemplate: TemplateFactory.getTemplate('user-contact-offline-template') } const userView = new UserView(uvDeps); // console.log(userBox); userModel.attach(userView); // userView.model const userController = new UserController(userModel, userView); // userController.test(); // userModel.someBusinessMethod(activeUsersMock); log.info("hello"); const chatArea = document.getElementById('chat-area-new'); // @ts-ignore: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'HTMLElement'. Type 'null' is not assignable to type 'HTMLElement'. const cvDeps: ChatViewDeps = { chatModel: chatModel, // @ts-ignore: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'HTMLElement'. Type 'null' is not assignable to type 'HTMLElement'. messageContainer: chatArea, messageSendTemplate: TemplateFactory.getTemplate('msg_container_send_template'), messageReceiveTemplate: TemplateFactory.getTemplate('msg_container_template'), markdownService: new MarkDownItMarkDownService, encryptionService: new SJCLEncryptionService } const chatView = new ChatView(cvDeps); chatModel.attach(chatView); const chatController = new ChatController(chatModel, chatView); function someFunc(vm: ActiveUserViewModel): void { // log.info(vm); // logger.info(vm) } userController.getActiveUsers(); log.info("test"); // someFunc(activeUserViewModelMock); // @ts-ignore: Object is possibly 'null'. var source = document.getElementById("msg_container_template").innerHTML; var msgContainerTemplate = Handlebars.compile(source); JsonAPI.ACTIVE_USERS_GET + 'aef'; const encryptionService: EncryptionService = new SJCLEncryptionService(); let messageCipherDTO: MessageCipherDTO = encryptionService.encrypt("password", "data"); console.log(encryptionService.decrypt("password", messageCipherDTO)); async function func(): Promise { const text = await encryptionService.decryptAsPromise("password", messageCipherDTO) log.debug(text); } func(); Handlebars.registerHelper('avatar', function () { return '
'; }); const testList: ChatMessageDTO[] = []; // @ts-ignore console.log() log.info(Sprintf("test sprintf")) // log.info(sprintf2.sprintf("test sprintf")) const ns: NotificationService = new AlertifyNotificationService(); ns.success("Welcome"); // ns.errorWithDelay("Hmm very long error notif", 10); const ss = FuseSearchService.getInstance([""]); const test = Builder().build();