rails_admin 3.0.0.beta2 → 3.0.0.rc3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of rails_admin might be problematic. Click here for more details.

Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -9
  3. data/Rakefile +11 -0
  4. data/app/assets/javascripts/{rails_admin.js → rails_admin/application.js} +4 -4
  5. data/app/assets/stylesheets/rails_admin/application.scss +31 -0
  6. data/app/controllers/rails_admin/application_controller.rb +1 -1
  7. data/app/controllers/rails_admin/main_controller.rb +12 -21
  8. data/app/helpers/rails_admin/application_helper.rb +43 -22
  9. data/app/helpers/rails_admin/form_builder.rb +3 -3
  10. data/app/helpers/rails_admin/main_helper.rb +1 -1
  11. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +2 -2
  12. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +4 -4
  13. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +4 -4
  14. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +12 -10
  15. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +4 -4
  16. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +4 -4
  17. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +6 -4
  18. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +4 -4
  19. data/app/views/layouts/rails_admin/_head.html.erb +2 -2
  20. data/app/views/layouts/rails_admin/_navigation.html.erb +12 -16
  21. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +8 -8
  22. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +1 -5
  23. data/app/views/layouts/rails_admin/application.html.erb +4 -7
  24. data/app/views/layouts/rails_admin/{pjax.html.erb → content.html.erb} +7 -5
  25. data/app/views/layouts/rails_admin/modal.js.erb +1 -1
  26. data/app/views/rails_admin/main/_dashboard_history.html.erb +1 -1
  27. data/app/views/rails_admin/main/_delete_notice.html.erb +2 -2
  28. data/app/views/rails_admin/main/_form_boolean.html.erb +6 -8
  29. data/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -1
  30. data/app/views/rails_admin/main/_form_datetime.html.erb +8 -7
  31. data/app/views/rails_admin/main/_form_enumeration.html.erb +5 -1
  32. data/app/views/rails_admin/main/_form_file_upload.html.erb +1 -1
  33. data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +14 -14
  34. data/app/views/rails_admin/main/_form_filtering_select.html.erb +16 -21
  35. data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +1 -1
  36. data/app/views/rails_admin/main/_form_nested_many.html.erb +4 -4
  37. data/app/views/rails_admin/main/_form_nested_one.html.erb +4 -4
  38. data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +11 -6
  39. data/app/views/rails_admin/main/_submit_buttons.html.erb +8 -8
  40. data/app/views/rails_admin/main/bulk_delete.html.erb +1 -1
  41. data/app/views/rails_admin/main/dashboard.html.erb +4 -4
  42. data/app/views/rails_admin/main/delete.html.erb +1 -1
  43. data/app/views/rails_admin/main/edit.html.erb +1 -1
  44. data/app/views/rails_admin/main/export.html.erb +35 -32
  45. data/app/views/rails_admin/main/history.html.erb +16 -14
  46. data/app/views/rails_admin/main/index.html.erb +39 -36
  47. data/app/views/rails_admin/main/new.html.erb +1 -1
  48. data/config/locales/rails_admin.en.yml +0 -1
  49. data/lib/generators/rails_admin/install_generator.rb +8 -7
  50. data/lib/generators/rails_admin/templates/webpack.config.js +0 -3
  51. data/lib/rails_admin/abstract_model.rb +3 -4
  52. data/lib/rails_admin/adapters/active_record/object_extension.rb +1 -1
  53. data/lib/rails_admin/adapters/active_record/property.rb +1 -1
  54. data/lib/rails_admin/adapters/active_record.rb +8 -3
  55. data/lib/rails_admin/adapters/mongoid/property.rb +3 -3
  56. data/lib/rails_admin/adapters/mongoid.rb +4 -4
  57. data/lib/rails_admin/config/actions/base.rb +1 -6
  58. data/lib/rails_admin/config/actions/dashboard.rb +13 -9
  59. data/lib/rails_admin/config/actions/delete.rb +4 -0
  60. data/lib/rails_admin/config/actions/edit.rb +4 -0
  61. data/lib/rails_admin/config/actions/export.rb +2 -1
  62. data/lib/rails_admin/config/actions/index.rb +2 -1
  63. data/lib/rails_admin/config/actions/new.rb +7 -1
  64. data/lib/rails_admin/config/actions/show_in_app.rb +0 -4
  65. data/lib/rails_admin/config/fields/association.rb +6 -1
  66. data/lib/rails_admin/config/fields/base.rb +3 -3
  67. data/lib/rails_admin/config/fields/factories/active_storage.rb +2 -1
  68. data/lib/rails_admin/config/fields/factories/association.rb +4 -4
  69. data/lib/rails_admin/config/fields/factories/carrierwave.rb +2 -1
  70. data/lib/rails_admin/config/fields/factories/devise.rb +2 -1
  71. data/lib/rails_admin/config/fields/factories/dragonfly.rb +2 -1
  72. data/lib/rails_admin/config/fields/factories/paperclip.rb +2 -1
  73. data/lib/rails_admin/config/fields/types/action_text.rb +1 -1
  74. data/lib/rails_admin/config/fields/types/date.rb +7 -0
  75. data/lib/rails_admin/config/fields/types/datetime.rb +11 -5
  76. data/lib/rails_admin/config/fields/types/has_many_association.rb +4 -0
  77. data/lib/rails_admin/config/fields/types/has_one_association.rb +4 -0
  78. data/lib/rails_admin/config/fields/types/time.rb +9 -0
  79. data/lib/rails_admin/config/has_fields.rb +4 -0
  80. data/lib/rails_admin/config/model.rb +8 -0
  81. data/lib/rails_admin/config/sections/list.rb +4 -4
  82. data/lib/rails_admin/config.rb +18 -4
  83. data/lib/rails_admin/engine.rb +6 -13
  84. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +2 -2
  85. data/lib/rails_admin/support/datetime.rb +50 -53
  86. data/lib/rails_admin/support/esmodule_preprocessor.rb +2 -1
  87. data/lib/rails_admin/version.rb +1 -1
  88. data/package.json +7 -5
  89. data/src/rails_admin/base.js +3 -6
  90. data/src/rails_admin/filter-box.js +36 -37
  91. data/src/rails_admin/filtering-select.js +3 -6
  92. data/src/rails_admin/i18n.js +0 -3
  93. data/src/rails_admin/nested-form-hooks.js +16 -8
  94. data/src/rails_admin/remote-form.js +18 -15
  95. data/src/rails_admin/styles/base/theming.scss +80 -155
  96. data/src/rails_admin/styles/base/variables.scss +2 -0
  97. data/src/rails_admin/styles/base.scss +8 -45
  98. data/src/rails_admin/styles/filtering-multiselect.scss +2 -2
  99. data/src/rails_admin/styles/filtering-select.scss +1 -1
  100. data/src/rails_admin/styles/widgets.scss +1 -10
  101. data/src/rails_admin/ui.js +19 -57
  102. data/src/rails_admin/widgets.js +38 -48
  103. data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  104. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +10683 -0
  105. data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  106. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  107. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  108. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  109. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  110. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  111. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +64 -110
  112. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  113. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +162 -176
  114. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +31 -26
  115. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  116. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  117. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -538
  118. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  119. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +18 -69
  120. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  121. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  122. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +127 -84
  123. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +26 -22
  124. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  125. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  126. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +218 -542
  127. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  128. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +46 -70
  129. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  130. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  131. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  132. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  133. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  134. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  135. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +100 -178
  136. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  137. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +97 -77
  138. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  139. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +54 -254
  140. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +628 -55
  141. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1572 -781
  142. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +38 -35
  143. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  144. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  145. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  146. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  147. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  148. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  149. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  150. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  151. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  152. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  153. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  154. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  155. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  156. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  157. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  158. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  159. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  160. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  161. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  162. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  163. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +72 -12
  164. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  165. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  166. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +113 -30
  167. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  168. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +5 -18
  169. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  170. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  171. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  172. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +130 -70
  173. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +27 -38
  174. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +127 -98
  175. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +6 -24
  176. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +13 -20
  177. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  178. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +24 -16
  179. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  180. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
  181. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  182. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
  183. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  184. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  185. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  186. data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  187. data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  188. data/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  189. metadata +88 -94
  190. data/app/assets/stylesheets/rails_admin.scss.erb +0 -76
  191. data/lib/generators/rails_admin/templates/environment.js +0 -6
  192. data/src/rails_admin/styles/themes/cerulean/mixins.scss +0 -0
  193. data/src/rails_admin/styles/themes/cerulean/theming.scss +0 -135
  194. data/src/rails_admin/styles/themes/cerulean/variables.scss +0 -830
  195. data/src/rails_admin/styles/themes/default/mixins.scss +0 -8
  196. data/src/rails_admin/styles/themes/default/theming.scss +0 -11
  197. data/src/rails_admin/styles/themes/default/variables.scss +0 -12
  198. data/src/rails_admin/vendor/jquery.pjax.js +0 -899
  199. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -164
  200. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -95
  201. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -125
  202. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -246
  203. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -212
  204. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -165
  205. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -358
  206. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -123
  207. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -172
  208. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -155
  209. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -677
  210. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
  211. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
  212. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
  213. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2611
  214. data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +0 -898
  215. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -18085
  216. data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
  217. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
  218. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
  219. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
  220. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
  221. data/vendor/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
  222. data/vendor/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
  223. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
  224. data/vendor/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
  225. data/vendor/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
  226. data/vendor/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
  227. data/vendor/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
  228. data/vendor/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
  229. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
  230. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
  231. data/vendor/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
  232. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
  233. data/vendor/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
  234. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
  235. data/vendor/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
  236. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
  237. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
  238. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
  239. data/vendor/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
  240. data/vendor/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
  241. data/vendor/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
  242. data/vendor/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
  243. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
  244. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
  245. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
  246. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
  247. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
  248. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
  249. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
  250. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  251. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
  252. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
  253. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
  254. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  255. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
  256. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
  257. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
  258. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
  259. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
  260. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
  261. data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
@@ -1,677 +0,0 @@
1
- /* ========================================================================
2
- * Bootstrap: tooltip.js v3.4.1
3
- * https://getbootstrap.com/docs/3.4/javascript/#tooltip
4
- * Inspired by the original jQuery.tipsy by Jason Frame
5
- * ========================================================================
6
- * Copyright 2011-2019 Twitter, Inc.
7
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
8
- * ======================================================================== */
9
-
10
- +function ($) {
11
- 'use strict';
12
-
13
- var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']
14
-
15
- var uriAttrs = [
16
- 'background',
17
- 'cite',
18
- 'href',
19
- 'itemtype',
20
- 'longdesc',
21
- 'poster',
22
- 'src',
23
- 'xlink:href'
24
- ]
25
-
26
- var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i
27
-
28
- var DefaultWhitelist = {
29
- // Global attributes allowed on any supplied element below.
30
- '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
31
- a: ['target', 'href', 'title', 'rel'],
32
- area: [],
33
- b: [],
34
- br: [],
35
- col: [],
36
- code: [],
37
- div: [],
38
- em: [],
39
- hr: [],
40
- h1: [],
41
- h2: [],
42
- h3: [],
43
- h4: [],
44
- h5: [],
45
- h6: [],
46
- i: [],
47
- img: ['src', 'alt', 'title', 'width', 'height'],
48
- li: [],
49
- ol: [],
50
- p: [],
51
- pre: [],
52
- s: [],
53
- small: [],
54
- span: [],
55
- sub: [],
56
- sup: [],
57
- strong: [],
58
- u: [],
59
- ul: []
60
- }
61
-
62
- /**
63
- * A pattern that recognizes a commonly useful subset of URLs that are safe.
64
- *
65
- * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
66
- */
67
- var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi
68
-
69
- /**
70
- * A pattern that matches safe data URLs. Only matches image, video and audio types.
71
- *
72
- * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
73
- */
74
- var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i
75
-
76
- function allowedAttribute(attr, allowedAttributeList) {
77
- var attrName = attr.nodeName.toLowerCase()
78
-
79
- if ($.inArray(attrName, allowedAttributeList) !== -1) {
80
- if ($.inArray(attrName, uriAttrs) !== -1) {
81
- return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))
82
- }
83
-
84
- return true
85
- }
86
-
87
- var regExp = $(allowedAttributeList).filter(function (index, value) {
88
- return value instanceof RegExp
89
- })
90
-
91
- // Check if a regular expression validates the attribute.
92
- for (var i = 0, l = regExp.length; i < l; i++) {
93
- if (attrName.match(regExp[i])) {
94
- return true
95
- }
96
- }
97
-
98
- return false
99
- }
100
-
101
- function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
102
- if (unsafeHtml.length === 0) {
103
- return unsafeHtml
104
- }
105
-
106
- if (sanitizeFn && typeof sanitizeFn === 'function') {
107
- return sanitizeFn(unsafeHtml)
108
- }
109
-
110
- // IE 8 and below don't support createHTMLDocument
111
- if (!document.implementation || !document.implementation.createHTMLDocument) {
112
- return unsafeHtml
113
- }
114
-
115
- var createdDocument = document.implementation.createHTMLDocument('sanitization')
116
- createdDocument.body.innerHTML = unsafeHtml
117
-
118
- var whitelistKeys = $.map(whiteList, function (el, i) { return i })
119
- var elements = $(createdDocument.body).find('*')
120
-
121
- for (var i = 0, len = elements.length; i < len; i++) {
122
- var el = elements[i]
123
- var elName = el.nodeName.toLowerCase()
124
-
125
- if ($.inArray(elName, whitelistKeys) === -1) {
126
- el.parentNode.removeChild(el)
127
-
128
- continue
129
- }
130
-
131
- var attributeList = $.map(el.attributes, function (el) { return el })
132
- var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])
133
-
134
- for (var j = 0, len2 = attributeList.length; j < len2; j++) {
135
- if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {
136
- el.removeAttribute(attributeList[j].nodeName)
137
- }
138
- }
139
- }
140
-
141
- return createdDocument.body.innerHTML
142
- }
143
-
144
- // TOOLTIP PUBLIC CLASS DEFINITION
145
- // ===============================
146
-
147
- var Tooltip = function (element, options) {
148
- this.type = null
149
- this.options = null
150
- this.enabled = null
151
- this.timeout = null
152
- this.hoverState = null
153
- this.$element = null
154
- this.inState = null
155
-
156
- this.init('tooltip', element, options)
157
- }
158
-
159
- Tooltip.VERSION = '3.4.1'
160
-
161
- Tooltip.TRANSITION_DURATION = 150
162
-
163
- Tooltip.DEFAULTS = {
164
- animation: true,
165
- placement: 'top',
166
- selector: false,
167
- template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
168
- trigger: 'hover focus',
169
- title: '',
170
- delay: 0,
171
- html: false,
172
- container: false,
173
- viewport: {
174
- selector: 'body',
175
- padding: 0
176
- },
177
- sanitize : true,
178
- sanitizeFn : null,
179
- whiteList : DefaultWhitelist
180
- }
181
-
182
- Tooltip.prototype.init = function (type, element, options) {
183
- this.enabled = true
184
- this.type = type
185
- this.$element = $(element)
186
- this.options = this.getOptions(options)
187
- this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
188
- this.inState = { click: false, hover: false, focus: false }
189
-
190
- if (this.$element[0] instanceof document.constructor && !this.options.selector) {
191
- throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
192
- }
193
-
194
- var triggers = this.options.trigger.split(' ')
195
-
196
- for (var i = triggers.length; i--;) {
197
- var trigger = triggers[i]
198
-
199
- if (trigger == 'click') {
200
- this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
201
- } else if (trigger != 'manual') {
202
- var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
203
- var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
204
-
205
- this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
206
- this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
207
- }
208
- }
209
-
210
- this.options.selector ?
211
- (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
212
- this.fixTitle()
213
- }
214
-
215
- Tooltip.prototype.getDefaults = function () {
216
- return Tooltip.DEFAULTS
217
- }
218
-
219
- Tooltip.prototype.getOptions = function (options) {
220
- var dataAttributes = this.$element.data()
221
-
222
- for (var dataAttr in dataAttributes) {
223
- if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {
224
- delete dataAttributes[dataAttr]
225
- }
226
- }
227
-
228
- options = $.extend({}, this.getDefaults(), dataAttributes, options)
229
-
230
- if (options.delay && typeof options.delay == 'number') {
231
- options.delay = {
232
- show: options.delay,
233
- hide: options.delay
234
- }
235
- }
236
-
237
- if (options.sanitize) {
238
- options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)
239
- }
240
-
241
- return options
242
- }
243
-
244
- Tooltip.prototype.getDelegateOptions = function () {
245
- var options = {}
246
- var defaults = this.getDefaults()
247
-
248
- this._options && $.each(this._options, function (key, value) {
249
- if (defaults[key] != value) options[key] = value
250
- })
251
-
252
- return options
253
- }
254
-
255
- Tooltip.prototype.enter = function (obj) {
256
- var self = obj instanceof this.constructor ?
257
- obj : $(obj.currentTarget).data('bs.' + this.type)
258
-
259
- if (!self) {
260
- self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
261
- $(obj.currentTarget).data('bs.' + this.type, self)
262
- }
263
-
264
- if (obj instanceof $.Event) {
265
- self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
266
- }
267
-
268
- if (self.tip().hasClass('in') || self.hoverState == 'in') {
269
- self.hoverState = 'in'
270
- return
271
- }
272
-
273
- clearTimeout(self.timeout)
274
-
275
- self.hoverState = 'in'
276
-
277
- if (!self.options.delay || !self.options.delay.show) return self.show()
278
-
279
- self.timeout = setTimeout(function () {
280
- if (self.hoverState == 'in') self.show()
281
- }, self.options.delay.show)
282
- }
283
-
284
- Tooltip.prototype.isInStateTrue = function () {
285
- for (var key in this.inState) {
286
- if (this.inState[key]) return true
287
- }
288
-
289
- return false
290
- }
291
-
292
- Tooltip.prototype.leave = function (obj) {
293
- var self = obj instanceof this.constructor ?
294
- obj : $(obj.currentTarget).data('bs.' + this.type)
295
-
296
- if (!self) {
297
- self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
298
- $(obj.currentTarget).data('bs.' + this.type, self)
299
- }
300
-
301
- if (obj instanceof $.Event) {
302
- self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
303
- }
304
-
305
- if (self.isInStateTrue()) return
306
-
307
- clearTimeout(self.timeout)
308
-
309
- self.hoverState = 'out'
310
-
311
- if (!self.options.delay || !self.options.delay.hide) return self.hide()
312
-
313
- self.timeout = setTimeout(function () {
314
- if (self.hoverState == 'out') self.hide()
315
- }, self.options.delay.hide)
316
- }
317
-
318
- Tooltip.prototype.show = function () {
319
- var e = $.Event('show.bs.' + this.type)
320
-
321
- if (this.hasContent() && this.enabled) {
322
- this.$element.trigger(e)
323
-
324
- var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
325
- if (e.isDefaultPrevented() || !inDom) return
326
- var that = this
327
-
328
- var $tip = this.tip()
329
-
330
- var tipId = this.getUID(this.type)
331
-
332
- this.setContent()
333
- $tip.attr('id', tipId)
334
- this.$element.attr('aria-describedby', tipId)
335
-
336
- if (this.options.animation) $tip.addClass('fade')
337
-
338
- var placement = typeof this.options.placement == 'function' ?
339
- this.options.placement.call(this, $tip[0], this.$element[0]) :
340
- this.options.placement
341
-
342
- var autoToken = /\s?auto?\s?/i
343
- var autoPlace = autoToken.test(placement)
344
- if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
345
-
346
- $tip
347
- .detach()
348
- .css({ top: 0, left: 0, display: 'block' })
349
- .addClass(placement)
350
- .data('bs.' + this.type, this)
351
-
352
- this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)
353
- this.$element.trigger('inserted.bs.' + this.type)
354
-
355
- var pos = this.getPosition()
356
- var actualWidth = $tip[0].offsetWidth
357
- var actualHeight = $tip[0].offsetHeight
358
-
359
- if (autoPlace) {
360
- var orgPlacement = placement
361
- var viewportDim = this.getPosition(this.$viewport)
362
-
363
- placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
364
- placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
365
- placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
366
- placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
367
- placement
368
-
369
- $tip
370
- .removeClass(orgPlacement)
371
- .addClass(placement)
372
- }
373
-
374
- var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
375
-
376
- this.applyPlacement(calculatedOffset, placement)
377
-
378
- var complete = function () {
379
- var prevHoverState = that.hoverState
380
- that.$element.trigger('shown.bs.' + that.type)
381
- that.hoverState = null
382
-
383
- if (prevHoverState == 'out') that.leave(that)
384
- }
385
-
386
- $.support.transition && this.$tip.hasClass('fade') ?
387
- $tip
388
- .one('bsTransitionEnd', complete)
389
- .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
390
- complete()
391
- }
392
- }
393
-
394
- Tooltip.prototype.applyPlacement = function (offset, placement) {
395
- var $tip = this.tip()
396
- var width = $tip[0].offsetWidth
397
- var height = $tip[0].offsetHeight
398
-
399
- // manually read margins because getBoundingClientRect includes difference
400
- var marginTop = parseInt($tip.css('margin-top'), 10)
401
- var marginLeft = parseInt($tip.css('margin-left'), 10)
402
-
403
- // we must check for NaN for ie 8/9
404
- if (isNaN(marginTop)) marginTop = 0
405
- if (isNaN(marginLeft)) marginLeft = 0
406
-
407
- offset.top += marginTop
408
- offset.left += marginLeft
409
-
410
- // $.fn.offset doesn't round pixel values
411
- // so we use setOffset directly with our own function B-0
412
- $.offset.setOffset($tip[0], $.extend({
413
- using: function (props) {
414
- $tip.css({
415
- top: Math.round(props.top),
416
- left: Math.round(props.left)
417
- })
418
- }
419
- }, offset), 0)
420
-
421
- $tip.addClass('in')
422
-
423
- // check to see if placing tip in new offset caused the tip to resize itself
424
- var actualWidth = $tip[0].offsetWidth
425
- var actualHeight = $tip[0].offsetHeight
426
-
427
- if (placement == 'top' && actualHeight != height) {
428
- offset.top = offset.top + height - actualHeight
429
- }
430
-
431
- var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
432
-
433
- if (delta.left) offset.left += delta.left
434
- else offset.top += delta.top
435
-
436
- var isVertical = /top|bottom/.test(placement)
437
- var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
438
- var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
439
-
440
- $tip.offset(offset)
441
- this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
442
- }
443
-
444
- Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
445
- this.arrow()
446
- .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
447
- .css(isVertical ? 'top' : 'left', '')
448
- }
449
-
450
- Tooltip.prototype.setContent = function () {
451
- var $tip = this.tip()
452
- var title = this.getTitle()
453
-
454
- if (this.options.html) {
455
- if (this.options.sanitize) {
456
- title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)
457
- }
458
-
459
- $tip.find('.tooltip-inner').html(title)
460
- } else {
461
- $tip.find('.tooltip-inner').text(title)
462
- }
463
-
464
- $tip.removeClass('fade in top bottom left right')
465
- }
466
-
467
- Tooltip.prototype.hide = function (callback) {
468
- var that = this
469
- var $tip = $(this.$tip)
470
- var e = $.Event('hide.bs.' + this.type)
471
-
472
- function complete() {
473
- if (that.hoverState != 'in') $tip.detach()
474
- if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.
475
- that.$element
476
- .removeAttr('aria-describedby')
477
- .trigger('hidden.bs.' + that.type)
478
- }
479
- callback && callback()
480
- }
481
-
482
- this.$element.trigger(e)
483
-
484
- if (e.isDefaultPrevented()) return
485
-
486
- $tip.removeClass('in')
487
-
488
- $.support.transition && $tip.hasClass('fade') ?
489
- $tip
490
- .one('bsTransitionEnd', complete)
491
- .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
492
- complete()
493
-
494
- this.hoverState = null
495
-
496
- return this
497
- }
498
-
499
- Tooltip.prototype.fixTitle = function () {
500
- var $e = this.$element
501
- if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
502
- $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
503
- }
504
- }
505
-
506
- Tooltip.prototype.hasContent = function () {
507
- return this.getTitle()
508
- }
509
-
510
- Tooltip.prototype.getPosition = function ($element) {
511
- $element = $element || this.$element
512
-
513
- var el = $element[0]
514
- var isBody = el.tagName == 'BODY'
515
-
516
- var elRect = el.getBoundingClientRect()
517
- if (elRect.width == null) {
518
- // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
519
- elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
520
- }
521
- var isSvg = window.SVGElement && el instanceof window.SVGElement
522
- // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
523
- // See https://github.com/twbs/bootstrap/issues/20280
524
- var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())
525
- var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
526
- var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
527
-
528
- return $.extend({}, elRect, scroll, outerDims, elOffset)
529
- }
530
-
531
- Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
532
- return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
533
- placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
534
- placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
535
- /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
536
-
537
- }
538
-
539
- Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
540
- var delta = { top: 0, left: 0 }
541
- if (!this.$viewport) return delta
542
-
543
- var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
544
- var viewportDimensions = this.getPosition(this.$viewport)
545
-
546
- if (/right|left/.test(placement)) {
547
- var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
548
- var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
549
- if (topEdgeOffset < viewportDimensions.top) { // top overflow
550
- delta.top = viewportDimensions.top - topEdgeOffset
551
- } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
552
- delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
553
- }
554
- } else {
555
- var leftEdgeOffset = pos.left - viewportPadding
556
- var rightEdgeOffset = pos.left + viewportPadding + actualWidth
557
- if (leftEdgeOffset < viewportDimensions.left) { // left overflow
558
- delta.left = viewportDimensions.left - leftEdgeOffset
559
- } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
560
- delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
561
- }
562
- }
563
-
564
- return delta
565
- }
566
-
567
- Tooltip.prototype.getTitle = function () {
568
- var title
569
- var $e = this.$element
570
- var o = this.options
571
-
572
- title = $e.attr('data-original-title')
573
- || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
574
-
575
- return title
576
- }
577
-
578
- Tooltip.prototype.getUID = function (prefix) {
579
- do prefix += ~~(Math.random() * 1000000)
580
- while (document.getElementById(prefix))
581
- return prefix
582
- }
583
-
584
- Tooltip.prototype.tip = function () {
585
- if (!this.$tip) {
586
- this.$tip = $(this.options.template)
587
- if (this.$tip.length != 1) {
588
- throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
589
- }
590
- }
591
- return this.$tip
592
- }
593
-
594
- Tooltip.prototype.arrow = function () {
595
- return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
596
- }
597
-
598
- Tooltip.prototype.enable = function () {
599
- this.enabled = true
600
- }
601
-
602
- Tooltip.prototype.disable = function () {
603
- this.enabled = false
604
- }
605
-
606
- Tooltip.prototype.toggleEnabled = function () {
607
- this.enabled = !this.enabled
608
- }
609
-
610
- Tooltip.prototype.toggle = function (e) {
611
- var self = this
612
- if (e) {
613
- self = $(e.currentTarget).data('bs.' + this.type)
614
- if (!self) {
615
- self = new this.constructor(e.currentTarget, this.getDelegateOptions())
616
- $(e.currentTarget).data('bs.' + this.type, self)
617
- }
618
- }
619
-
620
- if (e) {
621
- self.inState.click = !self.inState.click
622
- if (self.isInStateTrue()) self.enter(self)
623
- else self.leave(self)
624
- } else {
625
- self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
626
- }
627
- }
628
-
629
- Tooltip.prototype.destroy = function () {
630
- var that = this
631
- clearTimeout(this.timeout)
632
- this.hide(function () {
633
- that.$element.off('.' + that.type).removeData('bs.' + that.type)
634
- if (that.$tip) {
635
- that.$tip.detach()
636
- }
637
- that.$tip = null
638
- that.$arrow = null
639
- that.$viewport = null
640
- that.$element = null
641
- })
642
- }
643
-
644
- Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {
645
- return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)
646
- }
647
-
648
- // TOOLTIP PLUGIN DEFINITION
649
- // =========================
650
-
651
- function Plugin(option) {
652
- return this.each(function () {
653
- var $this = $(this)
654
- var data = $this.data('bs.tooltip')
655
- var options = typeof option == 'object' && option
656
-
657
- if (!data && /destroy|hide/.test(option)) return
658
- if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
659
- if (typeof option == 'string') data[option]()
660
- })
661
- }
662
-
663
- var old = $.fn.tooltip
664
-
665
- $.fn.tooltip = Plugin
666
- $.fn.tooltip.Constructor = Tooltip
667
-
668
-
669
- // TOOLTIP NO CONFLICT
670
- // ===================
671
-
672
- $.fn.tooltip.noConflict = function () {
673
- $.fn.tooltip = old
674
- return this
675
- }
676
-
677
- }(jQuery);