• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import { nullptr, pointer } from "@koalaui/interop";
17import { WebCookie } from "../generated/ArkWebCookieMaterialized";
18import { ArkUIGeneratedNativeModule } from "../generated/ArkUIGeneratedNativeModule";
19
20interface RunJavaScriptType {
21    script: string;
22    callback?: (result: string) => void;
23}
24interface LoadDataType {
25    data: string;
26    mimeType: string;
27    encoding: string;
28    baseUrl?: string;
29    historyUrl?: string;
30}
31interface LoadUrlType {
32    url: string | Resource;
33    headers?: Array<Header>;
34}
35interface RegisterJavaScriptProxyType {
36    object: object;
37    name: string;
38    methodList: Array<string>;
39}
40export class WebController {
41    private nativePointer: pointer = nullptr
42    setNativeController(node: pointer) {
43        // TODO: refactor code accordingly to Serializer
44        // this.nativePointer = ArkUIGeneratedNativeModule._WebController_Get_(node)
45    }
46    constructor() { }
47    onInactive(): void {
48        throw new Error("[WebController.onInactive] - method not implemented.");
49    }
50    onActive(): void {
51        throw new Error("[WebController.onActive] - method not implemented.");
52    }
53    zoom(factor: number): void {
54        throw new Error("[WebController.zoom] - method not implemented.");
55    }
56    clearHistory(): void {
57        throw new Error("[WebController.clearHistory] - method not implemented.");
58    }
59    runJavaScript(options: RunJavaScriptType) {
60        throw new Error("[WebController.runJavaScript] - method not implemented.");
61    }
62    loadData(options: LoadDataType) {
63        throw new Error("[WebController.loadData] - method not implemented.");
64    }
65    loadUrl(options: LoadUrlType) {
66        throw new Error("[WebController.loadUrl] - method not implemented.");
67    }
68    refresh() {
69        throw new Error("[WebController.refresh] - method not implemented.");
70    }
71    stop() {
72        throw new Error("[WebController.stop] - method not implemented.");
73    }
74    registerJavaScriptProxy(options: RegisterJavaScriptProxyType) {
75        throw new Error("[WebController.registerJavaScriptProxy] - method not implemented.");
76    }
77    deleteJavaScriptRegister(name: string) {
78        throw new Error("[WebController.deleteJavaScriptRegister] - method not implemented.");
79    }
80    getHitTest(): HitTestType {
81        throw new Error("[WebController.getHitTest] - method not implemented.");
82    }
83    requestFocus() {
84        throw new Error("[WebController.requestFocus] - method not implemented.");
85    }
86    accessBackward(): boolean {
87        throw new Error("[WebController.accessBackward] - method not implemented.");
88    }
89    accessForward(): boolean {
90        throw new Error("[WebController.accessForward] - method not implemented.");
91    }
92    accessStep(step: number): boolean {
93        throw new Error("[WebController.accessStep] - method not implemented.");
94    }
95    backward() {
96        throw new Error("[WebController.backward] - method not implemented.");
97    }
98    forward() {
99        throw new Error("[WebController.forward] - method not implemented.");
100    }
101    getCookieManager(): WebCookie {
102        throw new Error("[WebController.getCookieManager] - method not implemented.");
103    }
104}
105
106// TODO: proper import types form ets/api for WebviewController
107interface WebHeader { }
108enum SecureDnsMode { }
109enum WebHitTestType { }
110interface BackForwardList { }
111interface HitTestValue { }
112interface WebMessagePort { }
113interface WebCustomScheme { }
114class AsyncCallback<T> { }
115class JsMessageExt { }
116declare namespace cert {
117    interface X509Cert { }
118}
119
120export namespace webview {
121    export class WebviewController {
122        private nativePointer: pointer = nullptr
123        setNativeController(node: pointer) {
124            // TODO: refactor code accordingly to Serializer
125            // this.nativePointer = ArkUIGeneratedNativeModule._WebAttribute_Get_viewController(node)
126        }
127
128        static initializeWebEngine(): void {
129            throw new Error("[WebviewController.static] - method not implemented.")
130        }
131        static setHttpDns(secureDnsMode: SecureDnsMode, secureDnsConfig: string): void {
132            throw new Error("[WebviewController.static] - method not implemented.")
133        }
134        static setWebDebuggingAccess(webDebuggingAccess: boolean): void {
135            throw new Error("[WebviewController.static] - method not implemented.")
136        }
137        accessForward(): boolean {
138            throw new Error("[WebviewController.accessForward] - method not implemented.")
139        }
140        accessBackward(): boolean {
141            throw new Error("[WebviewController.accessBackward] - method not implemented.")
142        }
143        accessStep(step: number): boolean {
144            throw new Error("[WebviewController.accessStep] - method not implemented.")
145        }
146        forward(): void {
147            throw new Error("[WebviewController.forward] - method not implemented.")
148        }
149        backward(): void {
150            throw new Error("[WebviewController.backward] - method not implemented.")
151        }
152        clearHistory(): void {
153            throw new Error("[WebviewController.clearHistory] - method not implemented.")
154        }
155        onActive(): void {
156            throw new Error("[WebviewController.onActive] - method not implemented.")
157        }
158        onInactive(): void {
159            throw new Error("[WebviewController.onInactive] - method not implemented.")
160        }
161        refresh(): void {
162            throw new Error("[WebviewController.refresh] - method not implemented.")
163        }
164        loadData(data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string): void {
165            throw new Error("[WebviewController.loadData] - method not implemented.")
166        }
167        loadUrl(url: string | Resource, headers?: Array<WebHeader>): void {
168            throw new Error("[WebviewController.loadUrl] - method not implemented.")
169        }
170        getHitTest(): WebHitTestType {
171            throw new Error("[WebviewController.getHitTest] - method not implemented.")
172        }
173        storeWebArchivePromise(baseName: string, autoName: boolean): Promise<string> {
174            throw new Error("[WebviewController.storeWebArchive] - method not implemented.")
175        }
176        storeWebArchiveAsync(baseName: string, autoName: boolean, callback: AsyncCallback<string>): void {
177            throw new Error("[WebviewController.storeWebArchive] - method not implemented.")
178        }
179        zoom(factor: number): void {
180            throw new Error("[WebviewController.zoom] - method not implemented.")
181        }
182        zoomIn(): void {
183            throw new Error("[WebviewController.zoomIn] - method not implemented.")
184        }
185        zoomOut(): void {
186            throw new Error("[WebviewController.zoomOut] - method not implemented.")
187        }
188        getHitTestValue(): HitTestValue {
189            throw new Error("[WebviewController.getHitTestValue] - method not implemented.")
190        }
191        getWebId(): number {
192            throw new Error("[WebviewController.getWebId] - method not implemented.")
193        }
194        getUserAgent(): string {
195            throw new Error("[WebviewController.getUserAgent] - method not implemented.")
196        }
197        getTitle(): string {
198            throw new Error("[WebviewController.getTitle] - method not implemented.")
199        }
200        getPageHeight(): number {
201            throw new Error("[WebviewController.getPageHeight] - method not implemented.")
202        }
203        backOrForward(step: number): void {
204            throw new Error("[WebviewController.backOrForward] - method not implemented.")
205        }
206        requestFocus(): void {
207            throw new Error("[WebviewController.requestFocus] - method not implemented.")
208        }
209        createWebMessagePorts(isExtentionType?: boolean): Array<WebMessagePort> {
210            throw new Error("[WebviewController.createWebMessagePorts] - method not implemented.")
211        }
212        postMessage(name: string, ports: Array<WebMessagePort>, uri: string): void {
213            throw new Error("[WebviewController.postMessage] - method not implemented.")
214        }
215        stop(): void {
216            throw new Error("[WebviewController.stop] - method not implemented.")
217        }
218        registerJavaScriptProxy(object: object, name: string, methodList: Array<string>): void {
219            throw new Error("[WebviewController.registerJavaScriptProxy] - method not implemented.")
220        }
221        deleteJavaScriptRegister(name: string): void {
222            throw new Error("[WebviewController.deleteJavaScriptRegister] - method not implemented.")
223        }
224        searchAllAsync(searchString: string): void {
225            throw new Error("[WebviewController.searchAllAsync] - method not implemented.")
226        }
227        clearMatches(): void {
228            throw new Error("[WebviewController.clearMatches] - method not implemented.")
229        }
230        searchNext(forward: boolean): void {
231            throw new Error("[WebviewController.searchNext] - method not implemented.")
232        }
233        clearSslCache(): void {
234            throw new Error("[WebviewController.clearSslCache] - method not implemented.")
235        }
236        clearClientAuthenticationCache(): void {
237            throw new Error("[WebviewController.clearClientAuthenticationCache] - method not implemented.")
238        }
239        runJavaScriptPromise(script: string): Promise<string> {
240            throw new Error("[WebviewController.runJavaScript] - method not implemented.")
241        }
242        runJavaScriptAsync(script: string, callback: AsyncCallback<string>): void {
243            throw new Error("[WebviewController.runJavaScript] - method not implemented.")
244        }
245        runJavaScriptExtPromise(script: string): Promise<JsMessageExt> {
246            throw new Error("[WebviewController.runJavaScriptExt] - method not implemented.")
247        }
248        runJavaScriptExtAsync(script: string, callback: AsyncCallback<JsMessageExt>): void {
249            throw new Error("[WebviewController.runJavaScriptExt] - method not implemented.")
250        }
251        getUrl(): string {
252            throw new Error("[WebviewController.getUrl] - method not implemented.")
253        }
254        pageUp(top: boolean): void {
255            throw new Error("[WebviewController.pageUp] - method not implemented.")
256        }
257        pageDown(bottom: boolean): void {
258            throw new Error("[WebviewController.pageDown] - method not implemented.")
259        }
260        getOriginalUrl(): string {
261            throw new Error("[WebviewController.getOriginalUrl] - method not implemented.")
262        }
263        getFavicon(): PixelMap {
264            throw new Error("[WebviewController.getFavicon] - method not implemented.")
265        }
266        setNetworkAvailable(enable: boolean): void {
267            throw new Error("[WebviewController.setNetworkAvailable] - method not implemented.")
268        }
269        hasImagePromise(): Promise<boolean> {
270            throw new Error("[WebviewController.hasImage] - method not implemented.")
271        }
272        hasImageAsync(callback: AsyncCallback<boolean>): void {
273            throw new Error("[WebviewController.hasImage] - method not implemented.")
274        }
275        getBackForwardEntries(): BackForwardList {
276            throw new Error("[WebviewController.getBackForwardEntries] - method not implemented.")
277        }
278        removeCache(clearRom: boolean): void {
279            throw new Error("[WebviewController.removeCache] - method not implemented.")
280        }
281        scrollTo(x: number, y: number): void {
282            throw new Error("[WebviewController.scrollTo] - method not implemented.")
283        }
284        scrollBy(deltaX: number, deltaY: number): void {
285            throw new Error("[WebviewController.scrollBy] - method not implemented.")
286        }
287        slideScroll(vx: number, vy: number): void {
288            throw new Error("[WebviewController.slideScroll] - method not implemented.")
289        }
290        serializeWebState(): Uint8Array {
291            throw new Error("[WebviewController.serializeWebState] - method not implemented.")
292        }
293        restoreWebState(state: Uint8Array): void {
294            throw new Error("[WebviewController.restoreWebState] - method not implemented.")
295        }
296        static customizeSchemes(schemes: Array<WebCustomScheme>): void {
297            throw new Error("[WebviewController.static] - method not implemented.")
298        }
299        getCertificatePromise(): Promise<Array<cert.X509Cert>> {
300            throw new Error("[WebviewController.getCertificate] - method not implemented.")
301        }
302        getCertificateAsync(callback: AsyncCallback<Array<cert.X509Cert>>): void {
303            throw new Error("[WebviewController.getCertificate] - method not implemented.")
304        }
305        setAudioMuted(mute: boolean): void {
306            throw new Error("[WebviewController.setAudioMuted] - method not implemented.")
307        }
308        prefetchPage(url: string, additionalHeaders?: Array<WebHeader>): void {
309            throw new Error("[WebviewController.prefetchPage] - method not implemented.")
310        }
311        static prepareForPageLoad(url: string, preconnectable: boolean, numSockets: number): void {
312            throw new Error("[WebviewController.static] - method not implemented.")
313        }
314        setCustomUserAgent(userAgent: string): void {
315            throw new Error("[WebviewController.setCustomUserAgent] - method not implemented.")
316        }
317        getCustomUserAgent(): string {
318            throw new Error("[WebviewController.getCustomUserAgent] - method not implemented.")
319        }
320    }
321}
322
323abstract class TextContentControllerBase {
324    getCaretOffset(): CaretOffset {
325        throw new Error("[TextContentControllerBase.getCaretOffset] - method not implemented.")
326    }
327    getTextContentRect(): RectResult {
328        throw new Error("[TextContentControllerBase.getTextContentRect] - method not implemented.")
329    }
330    getTextContentLineCount(): number {
331        throw new Error("[TextContentControllerBase.getTextContentLineCount] - method not implemented.")
332    }
333}
334
335export class TextInputController {
336    private nativePointer: pointer = nullptr
337    setNativeController(node: pointer) {
338        // TODO: refactor code accordingly to Serializer
339        // this.nativePointer = ArkUIGeneratedNativeModule._TextInputController_Get_(node)
340    }
341    caretPosition(value: number): void {
342        throw new Error("[TextInputController.caretPosition] - method not implemented.")
343    }
344    setTextSelection(selectionStart: number, selectionEnd: number): void {
345        throw new Error("[TextInputController.setTextSelection] - method not implemented.")
346    }
347    stopEditing(): void {
348        throw new Error("[TextInputController.stopEditing] - method not implemented.")
349    }
350}
351
352export class TextClockController {
353    private nativePointer: pointer = nullptr
354    constructor() {
355    }
356    start() {
357        if (this.nativePointer) {
358            ArkUIGeneratedNativeModule._TextClockController_start(this.nativePointer)
359        }
360    }
361    stop() {
362        if (this.nativePointer) {
363            ArkUIGeneratedNativeModule._TextClockController_stop(this.nativePointer)
364        }
365    }
366    setNativeController(TextClockNode: pointer) {
367        // TODO: refactor code accordingly to Serializer
368        // this.nativePointer = ArkUIGeneratedNativeModule._TextClockController_Get_(TextClockNode)
369    }
370}
371
372export class TextTimerController {
373    private nativePointer: pointer = nullptr
374    constructor() {
375    }
376    start() {
377        if (this.nativePointer) {
378            ArkUIGeneratedNativeModule._TextTimerController_start(this.nativePointer)
379        }
380    }
381    pause() {
382        if (this.nativePointer) {
383            ArkUIGeneratedNativeModule._TextTimerController_pause(this.nativePointer)
384        }
385    }
386    reset() {
387        if (this.nativePointer) {
388            ArkUIGeneratedNativeModule._TextTimerController_reset(this.nativePointer)
389        }
390    }
391    setNativeController(TextTimer: pointer) {
392        // TODO: refactor code accordingly to Serializer
393        // this.nativePointer = ArkUIGeneratedNativeModule._TextTimerController_Get_(TextTimer)
394    }
395}
396
397export class RichEditorController {
398    private nativePointer: pointer = nullptr
399    setNativeController(node: pointer) {
400        // TODO: refactor code accordingly to Serializer
401        // this.nativePointer = ArkUIGeneratedNativeModule._RichEditorController_Get_(node)
402    }
403
404    getCaretOffset(): number {
405        throw new Error("Method not implemented.");
406    }
407    setCaretOffset(offset: number): boolean {
408        throw new Error("Method not implemented.");
409    }
410    addTextSpan(value: string, options?: RichEditorTextSpanOptions | undefined): number {
411        throw new Error("Method not implemented.");
412    }
413    addImageSpan(value: PixelMap | ResourceStr, options?: RichEditorImageSpanOptions | undefined): number {
414        throw new Error("Method not implemented.");
415    }
416    updateSpanStyle(value: RichEditorUpdateTextSpanStyleOptions | RichEditorUpdateImageSpanStyleOptions): void {
417        throw new Error("Method not implemented.");
418    }
419    deleteSpans(value?: RichEditorRange | undefined): void {
420        throw new Error("Method not implemented.");
421    }
422    getSpans(value?: RichEditorRange | undefined): (RichEditorTextSpanResult | RichEditorImageSpanResult)[] {
423        throw new Error("Method not implemented.");
424    }
425    closeSelectionMenu(): void {
426        throw new Error("Method not implemented.");
427    }
428}
429
430export class TextAreaController {
431    private nativePointer: pointer = nullptr
432    constructor() {
433    }
434    caretPosition(value: number): void {
435        throw new Error("Method not implemented.");
436    }
437    setTextSelection(selectionStart: number, selectionEnd: number): void {
438        throw new Error("Method not implemented.");
439    }
440    stopEditing(): void {
441        throw new Error("Method not implemented.");
442    }
443    getCaretOffset(): CaretOffset {
444        throw new Error("Method not implemented.");
445    }
446    getTextContentRect(): RectResult {
447        throw new Error("Method not implemented.");
448    }
449    getTextContentLineCount(): number {
450        throw new Error("Method not implemented.");
451    }
452    setNativeController(TextArea: pointer) {
453        // TODO: refactor code accordingly to Serializer
454        // this.nativePointer = ArkUIGeneratedNativeModule._TextAreaController_Get_(TextArea)
455    }
456}
457
458export class SwiperController {
459    private nativePointer: pointer = nullptr
460
461    constructor() {
462    }
463
464    showNext(): void {
465        throw new Error("Method not implemented.")
466    }
467    showPrevious(): void {
468        throw new Error("Method not implemented.")
469    }
470    changeIndex(index: number, useAnimation?: boolean): void {
471        throw new Error("Method not implemented.")
472    }
473    finishAnimation(callback?: () => void): void {
474        throw new Error("Method not implemented.")
475    }
476}
477
478