libbootstrap.pp 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  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. TBootstrapDelayObject = Class External name 'Object' (TJSObject)
  67. show : integer;
  68. hide : integer;
  69. End;
  70. TBootstrapPlacementCallBack = reference to procedure (popoverEl,triggerEl : TJSHTMLElement);
  71. TBootstrapProcCallBack = reference to procedure;
  72. TBootstrapPopoverOptions = Class external name 'Object' (TJSObject)
  73. animation : boolean;
  74. container : string;
  75. containerEl : TJSHTMLElement; external name 'container';
  76. containerBool : Boolean; external name 'container';
  77. content : string;
  78. contentEl : TJSHTMLElement; external name 'container';
  79. contentProc : TBootstrapProcCallBack; external name 'content';
  80. delay : Integer;
  81. delayObj : TBootstrapDelayObject; external name 'delay';
  82. html : Boolean;
  83. placement: string;
  84. placementFunc : TBootstrapPlacementCallBack; external name 'placement';
  85. selector : string;
  86. selectorBool : boolean; external name 'selector';
  87. template : string;
  88. title : string;
  89. titleEl : TJSHTMLElement; external name 'title';
  90. titleProc : TBootstrapProcCallBack; external name 'tirle';
  91. trigger : string;
  92. offset : integer;
  93. offsetStr : string; external name 'offset';
  94. fallBackPlacement : string;
  95. fallBackPlacementArr : string; external name 'fallBackPlacement';
  96. boundary : string;
  97. boundaryEl : TJSHTMLElement; external name 'boundary';
  98. End;
  99. TBootstrap = Class helper for TJQuery
  100. Procedure modal; external name 'modal';
  101. Procedure modal(aCommand : string); external name 'modal';
  102. Procedure modal(aOptions : TJSObject); external name 'modal';
  103. Procedure modal(aOptions : TBootstrapModalOptions); external name 'modal';
  104. Procedure ModalToggle;
  105. Procedure ModalShow;
  106. Procedure ModalHide;
  107. Procedure ModalDispose;
  108. Procedure ModalHandleUpdate;
  109. Procedure Toast; external name 'toast';
  110. Procedure Toast(aCommand : string); external name 'toast';
  111. Procedure Toast(aOptions : TJSObject); external name 'toast';
  112. Procedure ToastShow;
  113. Procedure ToastHide;
  114. Procedure ToastDispose;
  115. Procedure Tab;external name 'tab';
  116. Procedure Tab(aCommand : String) ;external name 'tab';
  117. Procedure TabShow;
  118. Procedure TabDispose;
  119. Procedure ToolTip; external name 'tooltip';
  120. Procedure ToolTip(aOptions : TJSObject); external name 'tooltip';
  121. Procedure ToolTip(aOptions : TBootstrapTooltipOptions); external name 'tooltip';
  122. Procedure ToolTip(aCommand : string); external name 'tooltip';
  123. Procedure ToolTipShow;
  124. Procedure ToolTipHide;
  125. Procedure ToolTipToggle;
  126. Procedure ToolTipDispose;
  127. Procedure ToolTipEnable;
  128. Procedure ToolTipDisable;
  129. Procedure ToolTipToggleEnabled;
  130. Procedure ToolTipUpdate;
  131. Procedure Alert; external name 'alert';
  132. Procedure Alert(aCommand : string); external name 'alert';
  133. Procedure AlertClose;
  134. Procedure AlertDispose;
  135. Procedure Button(aCommand : string); external name 'button';
  136. Procedure ButtonDispose;
  137. Procedure ButtonToggle;
  138. Procedure Carousel; external name 'carousel';
  139. Procedure Carousel(aCommand : string); external name 'carousel';
  140. Procedure Carousel(options : TJSObject); external name 'carousel';
  141. Procedure Carousel(options : TBootstrapCarouselOptions); external name 'carousel';
  142. Procedure Carousel(aIndex : Integer); external name 'carousel';
  143. Procedure CarouselCycle;
  144. Procedure CarouselPause;
  145. Procedure CarouselPrev;
  146. Procedure CarouselNext;
  147. Procedure CarouselDispose;
  148. Procedure DropDown; external name 'dropdown';
  149. Procedure DropDown(aCommand : string); external name 'dropdown';
  150. Procedure DropDown(options : TJSObject); external name 'dropdown';
  151. Procedure DropDown(options : TBootstrapDropDownOptions); external name 'dropdown';
  152. Procedure DropDownToggle;
  153. Procedure DropDownShow;
  154. Procedure DropDownHide;
  155. Procedure DropDownUpdate;
  156. Procedure DropDownDispose;
  157. Procedure Popover(options : TJSObject); external name 'popover';
  158. Procedure Popover(options : TBootstrapPopoverOptions); external name 'popover';
  159. Procedure Popover(aCommand : String); external name 'popover';
  160. Procedure PopoverShow;
  161. Procedure PopoverHide;
  162. Procedure PopoverToggle;
  163. Procedure PopoverDispose;
  164. Procedure PopoverEnable;
  165. Procedure PopoverToggleEnabled;
  166. Procedure PopoverUpdate;
  167. end;
  168. implementation
  169. { TBootstrap }
  170. procedure TBootstrap.ModalToggle;
  171. begin
  172. Modal('toggle');
  173. end;
  174. procedure TBootstrap.ModalShow;
  175. begin
  176. Modal('show');
  177. end;
  178. procedure TBootstrap.ModalHide;
  179. begin
  180. Modal('hide');
  181. end;
  182. procedure TBootstrap.ModalDispose;
  183. begin
  184. Modal('dispose');
  185. end;
  186. procedure TBootstrap.ModalHandleUpdate;
  187. begin
  188. Modal('handleupdate');
  189. end;
  190. procedure TBootstrap.ToastShow;
  191. begin
  192. Toast('show');
  193. end;
  194. procedure TBootstrap.ToastHide;
  195. begin
  196. Toast('hide');
  197. end;
  198. procedure TBootstrap.ToastDispose;
  199. begin
  200. Toast('dispose');
  201. end;
  202. procedure TBootstrap.TabShow;
  203. begin
  204. Tab('show');
  205. end;
  206. procedure TBootstrap.TabDispose;
  207. begin
  208. Tab('dispose');
  209. end;
  210. procedure TBootstrap.ToolTipShow;
  211. begin
  212. ToolTip('show');
  213. end;
  214. procedure TBootstrap.ToolTipHide;
  215. begin
  216. ToolTip('hide');
  217. end;
  218. procedure TBootstrap.ToolTipToggle;
  219. begin
  220. ToolTip('toggle');
  221. end;
  222. procedure TBootstrap.ToolTipDispose;
  223. begin
  224. ToolTip('dispose');
  225. end;
  226. procedure TBootstrap.ToolTipEnable;
  227. begin
  228. ToolTip('enable');
  229. end;
  230. procedure TBootstrap.ToolTipDisable;
  231. begin
  232. ToolTip('disable');
  233. end;
  234. procedure TBootstrap.ToolTipToggleEnabled;
  235. begin
  236. ToolTip('toggleEnabled');
  237. end;
  238. procedure TBootstrap.ToolTipUpdate;
  239. begin
  240. ToolTip('update');
  241. end;
  242. procedure TBootstrap.AlertClose;
  243. begin
  244. Alert('close');
  245. end;
  246. procedure TBootstrap.AlertDispose;
  247. begin
  248. Alert('dispose');
  249. end;
  250. procedure TBootstrap.ButtonDispose;
  251. begin
  252. Button('dispose');
  253. end;
  254. procedure TBootstrap.ButtonToggle;
  255. begin
  256. Button('toggle');
  257. end;
  258. procedure TBootstrap.CarouselCycle;
  259. begin
  260. Carousel('cycle');
  261. end;
  262. procedure TBootstrap.CarouselPause;
  263. begin
  264. Carousel('pause');
  265. end;
  266. procedure TBootstrap.CarouselPrev;
  267. begin
  268. Carousel('prev');
  269. end;
  270. procedure TBootstrap.CarouselNext;
  271. begin
  272. Carousel('next');
  273. end;
  274. procedure TBootstrap.CarouselDispose;
  275. begin
  276. Carousel('dispose');
  277. end;
  278. procedure TBootstrap.DropDownToggle;
  279. begin
  280. dropdown('toggle');
  281. end;
  282. procedure TBootstrap.DropDownShow;
  283. begin
  284. dropdown('show');
  285. end;
  286. procedure TBootstrap.DropDownHide;
  287. begin
  288. dropdown('hide');
  289. end;
  290. procedure TBootstrap.DropDownUpdate;
  291. begin
  292. dropdown('update');
  293. end;
  294. procedure TBootstrap.DropDownDispose;
  295. begin
  296. dropdown('dispose');
  297. end;
  298. Procedure TBootstrap.PopoverShow;
  299. begin
  300. Popover('show');
  301. end;
  302. Procedure TBootstrap.PopoverHide;
  303. begin
  304. Popover('hide');
  305. end;
  306. Procedure TBootstrap.PopoverToggle;
  307. begin
  308. Popover('toggle');
  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.PopoverToggleEnabled;
  319. begin
  320. Popover('toggleEnabled');
  321. end;
  322. Procedure TBootstrap.PopoverUpdate;
  323. begin
  324. Popover('update');
  325. end;
  326. end.