libbootstrap.pp 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. {
  2. This file is part of the Pas2JS run time library.
  3. Copyright (C) 2019 Michael Van Canneyt
  4. Bootstrap 4 mappings for pas2js
  5. See the file COPYING.FPC, included in this distribution,
  6. for details about the copyright.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  10. **********************************************************************}
  11. {$IFNDEF FPC_DOTTEDUNITS}
  12. unit libbootstrap;
  13. {$ENDIF}
  14. {$mode objfpc}
  15. {$modeswitch externalclass}
  16. interface
  17. uses
  18. {$IFDEF FPC_DOTTEDUNITS}
  19. JSApi.JS, BrowserApi.Web, Api.JQuery;
  20. {$ELSE}
  21. JS, web, libjquery;
  22. {$ENDIF}
  23. Type
  24. TBootstrapVersion = (bv4,bv5);
  25. { TBootstrap }
  26. TBootstrapModalOptions = Class external name 'Object' (TJSObject)
  27. show : boolean;
  28. focus : boolean;
  29. keyboard : boolean;
  30. backdrop : boolean;
  31. end;
  32. TBootstrapToastOptions = Class external name 'Object' (TJSObject)
  33. animation : boolean;
  34. autohide : boolean;
  35. delay : NativeInt;
  36. end;
  37. TSanitizeFunction = reference to function(arg: jsValue): jsvalue;
  38. TBootstrapTooltipOptions = Class external name 'Object' (TJSObject)
  39. animation : boolean;
  40. container : jsValue;
  41. delay : jsValue;
  42. html : boolean;
  43. placement : jsValue;
  44. selector : jsValue;
  45. template : string;
  46. title : jsValue;
  47. trigger: string;
  48. offset : jsvalue;
  49. fallbackPlacement : JSValue;
  50. boundary : JSValue;
  51. sanitize : boolean;
  52. whiteList: TJSObject;
  53. sanitizeFn : TSanitizeFunction;
  54. end;
  55. TBootstrapCarouselOptions = Class external name 'Object' (TJSObject)
  56. interval : nativeint;
  57. keyboard : boolean;
  58. pause : boolean;
  59. pauseStr: string; external name 'pause';
  60. ride: string;
  61. wrap : boolean;
  62. touch : boolean;
  63. end;
  64. TBootstrapDropDownOptions = Class external name 'Object' (TJSObject)
  65. offset : JSValue;
  66. flip : boolean;
  67. boundary : string;
  68. boundaryEl : TJSHTMLElement; external name 'boundary';
  69. reference : string;
  70. referenceEl : TJSHTMLElement; external name 'reference';
  71. display : string;
  72. end;
  73. TBootstrapPopoverDelayOptions = Class external name 'Object' (TJSObject)
  74. show : NativeInt;
  75. hide : NativeInt;
  76. end;
  77. TPopoverContentFunction = reference to function(arg: jsValue): jsvalue;
  78. TPopoverPlacementFunction = reference to function(popoverNode, triggeringNode: jsValue): jsvalue;
  79. TBootstrapPopoverOptions = Class external name 'Object' (TJSObject)
  80. animation : boolean;
  81. container : string;
  82. containerEl : TJSHTMLElement; external name 'container';
  83. content : string;
  84. contentEl : TJSHTMLElement; external name 'content';
  85. contentFn : TPopoverContentFunction; external name 'content';
  86. delay : NativeInt;
  87. delayObj : TBootstrapPopoverDelayOptions; external name 'delay';
  88. html : boolean;
  89. placement : string;
  90. placementFn : TPopoverPlacementFunction; external name 'placement';
  91. selector : string;
  92. selectorBool: Boolean; external name 'selector';
  93. template : string;
  94. title: string;
  95. titleEl : TJSHTMLElement; external name 'title';
  96. trigger: string;
  97. offset : string;
  98. offsetInt : Integer; external name 'offset';
  99. fallbackPlacement : string;
  100. boundary: string;
  101. boundaryEl : TJSHTMLElement; external name 'boundary';
  102. end;
  103. TBootstrap = Class helper for TJQuery
  104. Procedure modal; external name 'modal';
  105. Procedure modal(aCommand : string); external name 'modal';
  106. Procedure modal(aOptions : TJSObject); external name 'modal';
  107. Procedure modal(aOptions : TBootstrapModalOptions); external name 'modal';
  108. Procedure ModalToggle;
  109. Procedure ModalShow;
  110. Procedure ModalHide;
  111. Procedure ModalDispose;
  112. Procedure ModalHandleUpdate;
  113. Procedure Toast; external name 'toast';
  114. Procedure Toast(aCommand : string); external name 'toast';
  115. Procedure Toast(aOptions : TJSObject); external name 'toast';
  116. Procedure ToastShow;
  117. Procedure ToastHide;
  118. Procedure ToastDispose;
  119. Procedure Tab;external name 'tab';
  120. Procedure Tab(aCommand : String) ;external name 'tab';
  121. Procedure TabShow;
  122. Procedure TabDispose;
  123. Procedure ToolTip; external name 'tooltip';
  124. Procedure ToolTip(aOptions : TJSObject); external name 'tooltip';
  125. Procedure ToolTip(aOptions : TBootstrapTooltipOptions); external name 'tooltip';
  126. Procedure ToolTip(aCommand : string); external name 'tooltip';
  127. Procedure ToolTipShow;
  128. Procedure ToolTipHide;
  129. Procedure ToolTipToggle;
  130. Procedure ToolTipDispose;
  131. Procedure ToolTipEnable;
  132. Procedure ToolTipDisable;
  133. Procedure ToolTipToggleEnabled;
  134. Procedure ToolTipUpdate;
  135. Procedure Alert; external name 'alert';
  136. Procedure Alert(aCommand : string); external name 'alert';
  137. Procedure AlertClose;
  138. Procedure AlertDispose;
  139. Procedure Button(aCommand : string); external name 'button';
  140. Procedure ButtonDispose;
  141. Procedure ButtonToggle;
  142. Procedure Carousel; external name 'carousel';
  143. Procedure Carousel(aCommand : string); external name 'carousel';
  144. Procedure Carousel(options : TJSObject); external name 'carousel';
  145. Procedure Carousel(options : TBootstrapCarouselOptions); external name 'carousel';
  146. Procedure Carousel(aIndex : Integer); external name 'carousel';
  147. Procedure CarouselCycle;
  148. Procedure CarouselPause;
  149. Procedure CarouselPrev;
  150. Procedure CarouselNext;
  151. Procedure CarouselDispose;
  152. Procedure DropDown; external name 'dropdown';
  153. Procedure DropDown(aCommand : string); external name 'dropdown';
  154. Procedure DropDown(options : TJSObject); external name 'dropdown';
  155. Procedure DropDown(options : TBootstrapDropDownOptions); external name 'dropdown';
  156. Procedure DropDownToggle;
  157. Procedure DropDownShow;
  158. Procedure DropDownHide;
  159. Procedure DropDownUpdate;
  160. Procedure DropDownDispose;
  161. Procedure PopOver; external name 'popover';
  162. Procedure PopOver(aCommand : string); external name 'popover';
  163. Procedure PopOver(options : TJSObject); external name 'popover';
  164. Procedure PopOver(options : TBootstrapPopoverOptions); external name 'popover';
  165. Procedure PopOverToggle;
  166. Procedure PopOverShow;
  167. Procedure PopOverHide;
  168. Procedure PopOverDispose;
  169. Procedure PopOverEnable;
  170. Procedure PopOverDisable;
  171. Procedure PopOverToggleEnabled;
  172. Procedure PopOverUpdate;
  173. end;
  174. Var
  175. BootstrapVersion : TBootstrapVersion = bv4;
  176. implementation
  177. { TBootstrap }
  178. procedure TBootstrap.ModalToggle;
  179. begin
  180. Modal('toggle');
  181. end;
  182. procedure TBootstrap.ModalShow;
  183. begin
  184. Modal('show');
  185. end;
  186. procedure TBootstrap.ModalHide;
  187. begin
  188. Modal('hide');
  189. end;
  190. procedure TBootstrap.ModalDispose;
  191. begin
  192. Modal('dispose');
  193. end;
  194. procedure TBootstrap.ModalHandleUpdate;
  195. begin
  196. Modal('handleupdate');
  197. end;
  198. procedure TBootstrap.ToastShow;
  199. begin
  200. Toast('show');
  201. end;
  202. procedure TBootstrap.ToastHide;
  203. begin
  204. Toast('hide');
  205. end;
  206. procedure TBootstrap.ToastDispose;
  207. begin
  208. Toast('dispose');
  209. end;
  210. procedure TBootstrap.TabShow;
  211. begin
  212. Tab('show');
  213. end;
  214. procedure TBootstrap.TabDispose;
  215. begin
  216. Tab('dispose');
  217. end;
  218. procedure TBootstrap.ToolTipShow;
  219. begin
  220. ToolTip('show');
  221. end;
  222. procedure TBootstrap.ToolTipHide;
  223. begin
  224. ToolTip('hide');
  225. end;
  226. procedure TBootstrap.ToolTipToggle;
  227. begin
  228. ToolTip('toggle');
  229. end;
  230. procedure TBootstrap.ToolTipDispose;
  231. begin
  232. ToolTip('dispose');
  233. end;
  234. procedure TBootstrap.ToolTipEnable;
  235. begin
  236. ToolTip('enable');
  237. end;
  238. procedure TBootstrap.ToolTipDisable;
  239. begin
  240. ToolTip('disable');
  241. end;
  242. procedure TBootstrap.ToolTipToggleEnabled;
  243. begin
  244. ToolTip('toggleEnabled');
  245. end;
  246. procedure TBootstrap.ToolTipUpdate;
  247. begin
  248. ToolTip('update');
  249. end;
  250. procedure TBootstrap.AlertClose;
  251. begin
  252. Alert('close');
  253. end;
  254. procedure TBootstrap.AlertDispose;
  255. begin
  256. Alert('dispose');
  257. end;
  258. procedure TBootstrap.ButtonDispose;
  259. begin
  260. Button('dispose');
  261. end;
  262. procedure TBootstrap.ButtonToggle;
  263. begin
  264. Button('toggle');
  265. end;
  266. procedure TBootstrap.CarouselCycle;
  267. begin
  268. Carousel('cycle');
  269. end;
  270. procedure TBootstrap.CarouselPause;
  271. begin
  272. Carousel('pause');
  273. end;
  274. procedure TBootstrap.CarouselPrev;
  275. begin
  276. Carousel('prev');
  277. end;
  278. procedure TBootstrap.CarouselNext;
  279. begin
  280. Carousel('next');
  281. end;
  282. procedure TBootstrap.CarouselDispose;
  283. begin
  284. Carousel('dispose');
  285. end;
  286. procedure TBootstrap.DropDownToggle;
  287. begin
  288. dropdown('toggle');
  289. end;
  290. procedure TBootstrap.DropDownShow;
  291. begin
  292. dropdown('show');
  293. end;
  294. procedure TBootstrap.DropDownHide;
  295. begin
  296. dropdown('hide');
  297. end;
  298. procedure TBootstrap.DropDownUpdate;
  299. begin
  300. dropdown('update');
  301. end;
  302. procedure TBootstrap.DropDownDispose;
  303. begin
  304. dropdown('dispose');
  305. end;
  306. procedure TBootstrap.PopOverDisable;
  307. begin
  308. popover('disable');
  309. end;
  310. procedure TBootstrap.PopOverDispose;
  311. begin
  312. popover('dispose');
  313. end;
  314. procedure TBootstrap.PopOverEnable;
  315. begin
  316. popover('enable');
  317. end;
  318. procedure TBootstrap.PopOverHide;
  319. begin
  320. popover('hide');
  321. end;
  322. procedure TBootstrap.PopOverShow;
  323. begin
  324. popover('show');
  325. end;
  326. procedure TBootstrap.PopOverToggle;
  327. begin
  328. popover('toggle');
  329. end;
  330. procedure TBootstrap.PopOverToggleEnabled;
  331. begin
  332. popover('toggleEnabled');
  333. end;
  334. procedure TBootstrap.PopOverUpdate;
  335. begin
  336. popover('enabled');
  337. end;
  338. end.