[BUGFIX] Prevent double escaping for src attribute in ScriptViewHelper
[Packages/TYPO3.CMS.git] / Build / types / TYPO3 / index.d.ts
1 /* tslint:disable:max-classes-per-file */
2
3 /**
4  * Currently a mixture between namespace and global object
5  * Add types as you use them
6  */
7 declare namespace TYPO3 {
8   export let Backend: any;
9   export let DebugConsole: any;
10   export let ExtensionManager: any;
11   export let Icons: any;
12   export let InfoWindow: any;
13   export let LoginRefresh: any;
14   export let ModuleMenu: any;
15   export let MultiStepWizard: any;
16   export let Notification: any;
17   export let Modal: any;
18   export let OpendocsMenu: any;
19   export let Permissions: any;
20   export let Severity: any;
21   export let ShortcutMenu: any;
22   export let Storage: any;
23   export let Tooltip: any;
24   export let Utility: any;
25   export let Wizard: any;
26   export let WorkspacesMenu: any;
27   export let settings: any;
28   export const lang: { [key: string]: string };
29   export const configuration: any;
30   export namespace CMS {
31     export namespace Backend {
32       export class FormEngineValidation {
33         public readonly errorClass: string;
34         public markFieldAsChanged($field: JQuery): void;
35         public initializeInputFields(): void;
36         public validate(): void;
37       }
38
39       export namespace FormEngine {
40         export namespace Element {
41           export class SelectTree {
42             public dispatch: {[key: string]: Function};
43             public constructor();
44             public initialize(selector: HTMLElement|JQuery, settings: {[key: string]: any}): boolean;
45           }
46         }
47       }
48
49       export class FormEngine {
50         public readonly Validation: FormEngineValidation;
51         public legacyFieldChangedCb(): void;
52         public getFieldElement(fieldName: string, appendix?: string, noFallback?: boolean): JQuery;
53         public updateHiddenFieldValueFromSelect(selectFieldEl: HTMLElement, originalFieldEl: HTMLElement): void;
54         public preventFollowLinkIfNotSaved(href: string): boolean;
55         public setSelectOptionFromExternalSource(
56           fieldName: string,
57           value: string,
58           label: string,
59           title: string,
60           exclusiveValues?: string,
61           optionEl?: HTMLOptionElement | JQuery,
62         ): void;
63         public reinitialize(): void;
64         public openPopupWindow(mode: string, params: string): JQuery;
65         public initializeNullNoPlaceholderCheckboxes(): void;
66         public initializeNullWithPlaceholderCheckboxes(): void;
67       }
68
69       export class MultiStepWizard {
70         public addSlide(identifier: string, title: string, content: string, severity: number, callback?: Function): MultiStepWizard;
71         public lockNextStep(): JQuery;
72         public unlockNextStep(): JQuery;
73         public lockPrevStep(): JQuery;
74         public unlockPrevStep(): JQuery;
75         public blurCancelStep(): JQuery;
76         public getComponent(): JQuery;
77         public addFinalProcessingSlide(callback?: Function): JQueryXHR;
78         public show(): MultiStepWizard;
79         public dismiss(): MultiStepWizard;
80       }
81     }
82   }
83 }
84
85 declare namespace TBE_EDITOR {
86   export let fieldChanged: Function;
87 }
88
89 /**
90  * Current AMD/RequireJS modules are returning *instances* of ad-hoc *classes*, make that known to TypeScript
91  */
92 declare module 'TYPO3/CMS/Backend/FormEngineValidation' {
93   const _exported: TYPO3.CMS.Backend.FormEngineValidation;
94   export = _exported;
95 }
96
97 declare module 'TYPO3/CMS/Backend/FormEngine' {
98   const _exported: TYPO3.CMS.Backend.FormEngine;
99   export = _exported;
100 }
101
102 declare module 'TYPO3/CMS/Backend/FormEngine/Element/SelectTree' {
103   const _exported: any;
104   export = _exported;
105 }
106
107 // type definition for global namespace object
108 interface Window {
109   TYPO3: any;
110   $: any; // only required in ImageManipulation.ts
111   startInModule: Array<string>;
112   loadEditId: (id: number, addGetVars?: string) => void;
113   require: Function;
114   list_frame: Window;
115   jump: Function;
116   currentSubScript: string;
117   currentModuleLoaded: string;
118   fsMod: { [key: string]: any };
119   nextLoadModuleUrl: string;
120
121   // required for Paste.ts
122   // TODO these should be passed as data attributes
123   pasteAfterLinkTemplate: string;
124   pasteIntoLinkTemplate: string;
125 }
126
127 /**
128  * Needed type declarations for provided libs
129  */
130 declare module 'TYPO3/CMS/Core/Contrib/imagesloaded.pkgd.min' {
131   import imagesloaded from 'imagesloaded';
132   export = imagesloaded;
133 }
134
135 declare module 'muuri';
136 declare module 'cm/lib/codemirror';
137 declare module 'flatpickr/flatpickr.min';
138 declare module 'moment';
139 declare module 'Sortable';
140 declare module 'TYPO3/CMS/Backend/LegacyTree';
141 declare module 'TYPO3/CMS/Recordlist/LinkBrowser';
142 declare module 'TYPO3/CMS/Dashboard/Contrib/chartjs';
143
144 interface JQueryTypedEvent<T extends Event> extends JQueryEventObject {
145   originalEvent: T;
146 }
147
148 /**
149  * Required to make jQuery plugins "available" in TypeScript
150  */
151 interface JQuery {
152   datetimepicker(options?: any): JQuery;
153
154   dragUploader(options?: any): JQuery;
155
156   t3FormEngineFlexFormElement(options?: any): JQuery;
157
158   // To be able to use devbridge-autocomplete we have to override the definition of jquerui
159   autocomplete(options?: { [key: string]: any }): any;
160   disablePagingAction(): void;
161 }