libbootstrap.pp 7.4 KB

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