libbootstrap.pp 8.8 KB

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