inkstream 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +21 -0
  3. data/README.md +93 -0
  4. data/_config.yml +122 -0
  5. data/_includes/button.html +4 -0
  6. data/_includes/icon.html +1 -0
  7. data/_includes/nav-default.html +23 -0
  8. data/_includes/nav-header.html +25 -0
  9. data/_includes/post-list.html +59 -0
  10. data/_includes/post-meta.html +0 -0
  11. data/_includes/post-pagination.html +29 -0
  12. data/_includes/promo-section.html +12 -0
  13. data/_includes/site-before-end.html +1 -0
  14. data/_includes/site-before-start.html +1 -0
  15. data/_includes/site-favicons.html +7 -0
  16. data/_includes/site-fonts.html +13 -0
  17. data/_includes/site-footer-default.html +17 -0
  18. data/_includes/site-footer.html +12 -0
  19. data/_includes/site-header.html +46 -0
  20. data/_includes/site-styles.html +6 -0
  21. data/_layouts/blog.html +24 -0
  22. data/_layouts/default.html +62 -0
  23. data/_layouts/page.html +35 -0
  24. data/_layouts/post.html +201 -0
  25. data/assets/css/styles.css +11167 -0
  26. data/assets/images/about-me.jpg +0 -0
  27. data/assets/images/blog/blog-post-banner.jpg +0 -0
  28. data/assets/images/blog/blog-post-thumb-1.jpg +0 -0
  29. data/assets/images/blog/blog-post-thumb-10.jpg +0 -0
  30. data/assets/images/blog/blog-post-thumb-11.jpg +0 -0
  31. data/assets/images/blog/blog-post-thumb-12.jpg +0 -0
  32. data/assets/images/blog/blog-post-thumb-2.jpg +0 -0
  33. data/assets/images/blog/blog-post-thumb-3.jpg +0 -0
  34. data/assets/images/blog/blog-post-thumb-4.jpg +0 -0
  35. data/assets/images/blog/blog-post-thumb-5.jpg +0 -0
  36. data/assets/images/blog/blog-post-thumb-6.jpg +0 -0
  37. data/assets/images/blog/blog-post-thumb-7.jpg +0 -0
  38. data/assets/images/blog/blog-post-thumb-8.jpg +0 -0
  39. data/assets/images/blog/blog-post-thumb-9.jpg +0 -0
  40. data/assets/images/posts/default-post-img.jpg +0 -0
  41. data/assets/images/posts/text-syntax.jpg +0 -0
  42. data/assets/images/posts/welcome.jpg +0 -0
  43. data/assets/images/profile.png +0 -0
  44. data/assets/images/promo-banner.jpg +0 -0
  45. data/assets/js/blog.js +9 -0
  46. data/assets/js/demo/style-switcher.js +45 -0
  47. data/assets/plugins/bootstrap/js/bootstrap.min.js +7 -0
  48. data/assets/plugins/jquery-3.3.1.min.js +2 -0
  49. data/assets/plugins/popper.min.js +5 -0
  50. data/assets/scss/bootstrap/js/dist/alert.js +199 -0
  51. data/assets/scss/bootstrap/js/dist/alert.js.map +1 -0
  52. data/assets/scss/bootstrap/js/dist/button.js +187 -0
  53. data/assets/scss/bootstrap/js/dist/button.js.map +1 -0
  54. data/assets/scss/bootstrap/js/dist/carousel.js +668 -0
  55. data/assets/scss/bootstrap/js/dist/carousel.js.map +1 -0
  56. data/assets/scss/bootstrap/js/dist/collapse.js +428 -0
  57. data/assets/scss/bootstrap/js/dist/collapse.js.map +1 -0
  58. data/assets/scss/bootstrap/js/dist/dropdown.js +595 -0
  59. data/assets/scss/bootstrap/js/dist/dropdown.js.map +1 -0
  60. data/assets/scss/bootstrap/js/dist/index.js +23 -0
  61. data/assets/scss/bootstrap/js/dist/index.js.map +1 -0
  62. data/assets/scss/bootstrap/js/dist/modal.js +650 -0
  63. data/assets/scss/bootstrap/js/dist/modal.js.map +1 -0
  64. data/assets/scss/bootstrap/js/dist/popover.js +261 -0
  65. data/assets/scss/bootstrap/js/dist/popover.js.map +1 -0
  66. data/assets/scss/bootstrap/js/dist/scrollspy.js +375 -0
  67. data/assets/scss/bootstrap/js/dist/scrollspy.js.map +1 -0
  68. data/assets/scss/bootstrap/js/dist/tab.js +269 -0
  69. data/assets/scss/bootstrap/js/dist/tab.js.map +1 -0
  70. data/assets/scss/bootstrap/js/dist/toast.js +283 -0
  71. data/assets/scss/bootstrap/js/dist/toast.js.map +1 -0
  72. data/assets/scss/bootstrap/js/dist/tooltip.js +760 -0
  73. data/assets/scss/bootstrap/js/dist/tooltip.js.map +1 -0
  74. data/assets/scss/bootstrap/js/dist/util.js +172 -0
  75. data/assets/scss/bootstrap/js/dist/util.js.map +1 -0
  76. data/assets/scss/bootstrap/js/src/alert.js +179 -0
  77. data/assets/scss/bootstrap/js/src/button.js +171 -0
  78. data/assets/scss/bootstrap/js/src/carousel.js +606 -0
  79. data/assets/scss/bootstrap/js/src/collapse.js +402 -0
  80. data/assets/scss/bootstrap/js/src/dropdown.js +545 -0
  81. data/assets/scss/bootstrap/js/src/index.js +52 -0
  82. data/assets/scss/bootstrap/js/src/modal.js +594 -0
  83. data/assets/scss/bootstrap/js/src/popover.js +184 -0
  84. data/assets/scss/bootstrap/js/src/scrollspy.js +326 -0
  85. data/assets/scss/bootstrap/js/src/tab.js +260 -0
  86. data/assets/scss/bootstrap/js/src/toast.js +227 -0
  87. data/assets/scss/bootstrap/js/src/tooltip.js +752 -0
  88. data/assets/scss/bootstrap/js/src/util.js +177 -0
  89. data/assets/scss/bootstrap/js/tests/README.md +69 -0
  90. data/assets/scss/bootstrap/js/tests/browsers.js +82 -0
  91. data/assets/scss/bootstrap/js/tests/index.html +133 -0
  92. data/assets/scss/bootstrap/js/tests/integration/bundle.js +8 -0
  93. data/assets/scss/bootstrap/js/tests/integration/index.html +66 -0
  94. data/assets/scss/bootstrap/js/tests/integration/rollup.bundle.js +20 -0
  95. data/assets/scss/bootstrap/js/tests/karma.conf.js +143 -0
  96. data/assets/scss/bootstrap/js/tests/unit/.eslintrc.json +40 -0
  97. data/assets/scss/bootstrap/js/tests/unit/alert.js +123 -0
  98. data/assets/scss/bootstrap/js/tests/unit/button.js +222 -0
  99. data/assets/scss/bootstrap/js/tests/unit/carousel.js +1333 -0
  100. data/assets/scss/bootstrap/js/tests/unit/collapse.js +892 -0
  101. data/assets/scss/bootstrap/js/tests/unit/dropdown.js +1419 -0
  102. data/assets/scss/bootstrap/js/tests/unit/modal.js +815 -0
  103. data/assets/scss/bootstrap/js/tests/unit/popover.js +471 -0
  104. data/assets/scss/bootstrap/js/tests/unit/scrollspy.js +728 -0
  105. data/assets/scss/bootstrap/js/tests/unit/tab.js +518 -0
  106. data/assets/scss/bootstrap/js/tests/unit/toast.js +259 -0
  107. data/assets/scss/bootstrap/js/tests/unit/tooltip.js +1109 -0
  108. data/assets/scss/bootstrap/js/tests/unit/util.js +163 -0
  109. data/assets/scss/bootstrap/js/tests/visual/alert.html +58 -0
  110. data/assets/scss/bootstrap/js/tests/visual/button.html +51 -0
  111. data/assets/scss/bootstrap/js/tests/visual/carousel.html +66 -0
  112. data/assets/scss/bootstrap/js/tests/visual/collapse.html +78 -0
  113. data/assets/scss/bootstrap/js/tests/visual/dropdown.html +212 -0
  114. data/assets/scss/bootstrap/js/tests/visual/modal.html +268 -0
  115. data/assets/scss/bootstrap/js/tests/visual/popover.html +46 -0
  116. data/assets/scss/bootstrap/js/tests/visual/scrollspy.html +95 -0
  117. data/assets/scss/bootstrap/js/tests/visual/tab.html +234 -0
  118. data/assets/scss/bootstrap/js/tests/visual/toast.html +72 -0
  119. data/assets/scss/bootstrap/js/tests/visual/tooltip.html +106 -0
  120. data/assets/scss/bootstrap/scss/_alert.scss +51 -0
  121. data/assets/scss/bootstrap/scss/_badge.scss +54 -0
  122. data/assets/scss/bootstrap/scss/_breadcrumb.scss +41 -0
  123. data/assets/scss/bootstrap/scss/_button-group.scss +163 -0
  124. data/assets/scss/bootstrap/scss/_buttons.scss +137 -0
  125. data/assets/scss/bootstrap/scss/_card.scss +289 -0
  126. data/assets/scss/bootstrap/scss/_carousel.scss +197 -0
  127. data/assets/scss/bootstrap/scss/_close.scss +41 -0
  128. data/assets/scss/bootstrap/scss/_code.scss +48 -0
  129. data/assets/scss/bootstrap/scss/_custom-forms.scss +507 -0
  130. data/assets/scss/bootstrap/scss/_dropdown.scss +191 -0
  131. data/assets/scss/bootstrap/scss/_forms.scss +330 -0
  132. data/assets/scss/bootstrap/scss/_functions.scss +86 -0
  133. data/assets/scss/bootstrap/scss/_grid.scss +52 -0
  134. data/assets/scss/bootstrap/scss/_images.scss +42 -0
  135. data/assets/scss/bootstrap/scss/_input-group.scss +193 -0
  136. data/assets/scss/bootstrap/scss/_jumbotron.scss +17 -0
  137. data/assets/scss/bootstrap/scss/_list-group.scss +149 -0
  138. data/assets/scss/bootstrap/scss/_media.scss +8 -0
  139. data/assets/scss/bootstrap/scss/_mixins.scss +47 -0
  140. data/assets/scss/bootstrap/scss/_modal.scss +229 -0
  141. data/assets/scss/bootstrap/scss/_nav.scss +120 -0
  142. data/assets/scss/bootstrap/scss/_navbar.scss +294 -0
  143. data/assets/scss/bootstrap/scss/_pagination.scss +73 -0
  144. data/assets/scss/bootstrap/scss/_popover.scss +171 -0
  145. data/assets/scss/bootstrap/scss/_print.scss +141 -0
  146. data/assets/scss/bootstrap/scss/_progress.scss +43 -0
  147. data/assets/scss/bootstrap/scss/_reboot.scss +483 -0
  148. data/assets/scss/bootstrap/scss/_root.scss +19 -0
  149. data/assets/scss/bootstrap/scss/_spinners.scss +55 -0
  150. data/assets/scss/bootstrap/scss/_tables.scss +185 -0
  151. data/assets/scss/bootstrap/scss/_toasts.scss +44 -0
  152. data/assets/scss/bootstrap/scss/_tooltip.scss +115 -0
  153. data/assets/scss/bootstrap/scss/_transitions.scss +20 -0
  154. data/assets/scss/bootstrap/scss/_type.scss +125 -0
  155. data/assets/scss/bootstrap/scss/_utilities.scss +17 -0
  156. data/assets/scss/bootstrap/scss/_variables.scss +1123 -0
  157. data/assets/scss/bootstrap/scss/bootstrap-grid.scss +29 -0
  158. data/assets/scss/bootstrap/scss/bootstrap-reboot.scss +12 -0
  159. data/assets/scss/bootstrap/scss/bootstrap.scss +44 -0
  160. data/assets/scss/bootstrap/scss/mixins/_alert.scss +13 -0
  161. data/assets/scss/bootstrap/scss/mixins/_background-variant.scss +21 -0
  162. data/assets/scss/bootstrap/scss/mixins/_badge.scss +17 -0
  163. data/assets/scss/bootstrap/scss/mixins/_border-radius.scss +63 -0
  164. data/assets/scss/bootstrap/scss/mixins/_box-shadow.scss +20 -0
  165. data/assets/scss/bootstrap/scss/mixins/_breakpoints.scss +123 -0
  166. data/assets/scss/bootstrap/scss/mixins/_buttons.scss +107 -0
  167. data/assets/scss/bootstrap/scss/mixins/_caret.scss +62 -0
  168. data/assets/scss/bootstrap/scss/mixins/_clearfix.scss +7 -0
  169. data/assets/scss/bootstrap/scss/mixins/_deprecate.scss +10 -0
  170. data/assets/scss/bootstrap/scss/mixins/_float.scss +14 -0
  171. data/assets/scss/bootstrap/scss/mixins/_forms.scss +192 -0
  172. data/assets/scss/bootstrap/scss/mixins/_gradients.scss +45 -0
  173. data/assets/scss/bootstrap/scss/mixins/_grid-framework.scss +66 -0
  174. data/assets/scss/bootstrap/scss/mixins/_grid.scss +51 -0
  175. data/assets/scss/bootstrap/scss/mixins/_hover.scss +37 -0
  176. data/assets/scss/bootstrap/scss/mixins/_image.scss +36 -0
  177. data/assets/scss/bootstrap/scss/mixins/_list-group.scss +21 -0
  178. data/assets/scss/bootstrap/scss/mixins/_lists.scss +7 -0
  179. data/assets/scss/bootstrap/scss/mixins/_nav-divider.scss +10 -0
  180. data/assets/scss/bootstrap/scss/mixins/_pagination.scss +22 -0
  181. data/assets/scss/bootstrap/scss/mixins/_reset-text.scss +17 -0
  182. data/assets/scss/bootstrap/scss/mixins/_resize.scss +6 -0
  183. data/assets/scss/bootstrap/scss/mixins/_screen-reader.scss +33 -0
  184. data/assets/scss/bootstrap/scss/mixins/_size.scss +7 -0
  185. data/assets/scss/bootstrap/scss/mixins/_table-row.scss +39 -0
  186. data/assets/scss/bootstrap/scss/mixins/_text-emphasis.scss +16 -0
  187. data/assets/scss/bootstrap/scss/mixins/_text-hide.scss +11 -0
  188. data/assets/scss/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  189. data/assets/scss/bootstrap/scss/mixins/_transition.scss +16 -0
  190. data/assets/scss/bootstrap/scss/mixins/_visibility.scss +8 -0
  191. data/assets/scss/bootstrap/scss/utilities/_align.scss +8 -0
  192. data/assets/scss/bootstrap/scss/utilities/_background.scss +19 -0
  193. data/assets/scss/bootstrap/scss/utilities/_borders.scss +75 -0
  194. data/assets/scss/bootstrap/scss/utilities/_clearfix.scss +3 -0
  195. data/assets/scss/bootstrap/scss/utilities/_display.scss +26 -0
  196. data/assets/scss/bootstrap/scss/utilities/_embed.scss +39 -0
  197. data/assets/scss/bootstrap/scss/utilities/_flex.scss +51 -0
  198. data/assets/scss/bootstrap/scss/utilities/_float.scss +11 -0
  199. data/assets/scss/bootstrap/scss/utilities/_overflow.scss +5 -0
  200. data/assets/scss/bootstrap/scss/utilities/_position.scss +32 -0
  201. data/assets/scss/bootstrap/scss/utilities/_screenreaders.scss +11 -0
  202. data/assets/scss/bootstrap/scss/utilities/_shadows.scss +6 -0
  203. data/assets/scss/bootstrap/scss/utilities/_sizing.scss +20 -0
  204. data/assets/scss/bootstrap/scss/utilities/_spacing.scss +73 -0
  205. data/assets/scss/bootstrap/scss/utilities/_stretched-link.scss +19 -0
  206. data/assets/scss/bootstrap/scss/utilities/_text.scss +72 -0
  207. data/assets/scss/bootstrap/scss/utilities/_visibility.scss +13 -0
  208. data/assets/scss/bootstrap/scss/vendor/_rfs.scss +212 -0
  209. data/assets/scss/theme/_about.scss +28 -0
  210. data/assets/scss/theme/_base.scss +207 -0
  211. data/assets/scss/theme/_blog.scss +140 -0
  212. data/assets/scss/theme/_demo.scss +153 -0
  213. data/assets/scss/theme/_mixins.scss +34 -0
  214. data/assets/scss/theme/_responsive.scss +88 -0
  215. data/assets/scss/theme/styles.scss +14 -0
  216. data/assets/scss/theme-8.scss +41 -0
  217. data/assets/styles.scss +6 -0
  218. metadata +219 -3
@@ -0,0 +1,260 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v4.3.0): tab.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import $ from 'jquery'
9
+ import Util from './util'
10
+
11
+ /**
12
+ * ------------------------------------------------------------------------
13
+ * Constants
14
+ * ------------------------------------------------------------------------
15
+ */
16
+
17
+ const NAME = 'tab'
18
+ const VERSION = '4.3.0'
19
+ const DATA_KEY = 'bs.tab'
20
+ const EVENT_KEY = `.${DATA_KEY}`
21
+ const DATA_API_KEY = '.data-api'
22
+ const JQUERY_NO_CONFLICT = $.fn[NAME]
23
+
24
+ const Event = {
25
+ HIDE : `hide${EVENT_KEY}`,
26
+ HIDDEN : `hidden${EVENT_KEY}`,
27
+ SHOW : `show${EVENT_KEY}`,
28
+ SHOWN : `shown${EVENT_KEY}`,
29
+ CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
30
+ }
31
+
32
+ const ClassName = {
33
+ DROPDOWN_MENU : 'dropdown-menu',
34
+ ACTIVE : 'active',
35
+ DISABLED : 'disabled',
36
+ FADE : 'fade',
37
+ SHOW : 'show'
38
+ }
39
+
40
+ const Selector = {
41
+ DROPDOWN : '.dropdown',
42
+ NAV_LIST_GROUP : '.nav, .list-group',
43
+ ACTIVE : '.active',
44
+ ACTIVE_UL : '> li > .active',
45
+ DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
46
+ DROPDOWN_TOGGLE : '.dropdown-toggle',
47
+ DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'
48
+ }
49
+
50
+ /**
51
+ * ------------------------------------------------------------------------
52
+ * Class Definition
53
+ * ------------------------------------------------------------------------
54
+ */
55
+
56
+ class Tab {
57
+ constructor(element) {
58
+ this._element = element
59
+ }
60
+
61
+ // Getters
62
+
63
+ static get VERSION() {
64
+ return VERSION
65
+ }
66
+
67
+ // Public
68
+
69
+ show() {
70
+ if (this._element.parentNode &&
71
+ this._element.parentNode.nodeType === Node.ELEMENT_NODE &&
72
+ $(this._element).hasClass(ClassName.ACTIVE) ||
73
+ $(this._element).hasClass(ClassName.DISABLED)) {
74
+ return
75
+ }
76
+
77
+ let target
78
+ let previous
79
+ const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]
80
+ const selector = Util.getSelectorFromElement(this._element)
81
+
82
+ if (listElement) {
83
+ const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE
84
+ previous = $.makeArray($(listElement).find(itemSelector))
85
+ previous = previous[previous.length - 1]
86
+ }
87
+
88
+ const hideEvent = $.Event(Event.HIDE, {
89
+ relatedTarget: this._element
90
+ })
91
+
92
+ const showEvent = $.Event(Event.SHOW, {
93
+ relatedTarget: previous
94
+ })
95
+
96
+ if (previous) {
97
+ $(previous).trigger(hideEvent)
98
+ }
99
+
100
+ $(this._element).trigger(showEvent)
101
+
102
+ if (showEvent.isDefaultPrevented() ||
103
+ hideEvent.isDefaultPrevented()) {
104
+ return
105
+ }
106
+
107
+ if (selector) {
108
+ target = document.querySelector(selector)
109
+ }
110
+
111
+ this._activate(
112
+ this._element,
113
+ listElement
114
+ )
115
+
116
+ const complete = () => {
117
+ const hiddenEvent = $.Event(Event.HIDDEN, {
118
+ relatedTarget: this._element
119
+ })
120
+
121
+ const shownEvent = $.Event(Event.SHOWN, {
122
+ relatedTarget: previous
123
+ })
124
+
125
+ $(previous).trigger(hiddenEvent)
126
+ $(this._element).trigger(shownEvent)
127
+ }
128
+
129
+ if (target) {
130
+ this._activate(target, target.parentNode, complete)
131
+ } else {
132
+ complete()
133
+ }
134
+ }
135
+
136
+ dispose() {
137
+ $.removeData(this._element, DATA_KEY)
138
+ this._element = null
139
+ }
140
+
141
+ // Private
142
+
143
+ _activate(element, container, callback) {
144
+ const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')
145
+ ? $(container).find(Selector.ACTIVE_UL)
146
+ : $(container).children(Selector.ACTIVE)
147
+
148
+ const active = activeElements[0]
149
+ const isTransitioning = callback && (active && $(active).hasClass(ClassName.FADE))
150
+ const complete = () => this._transitionComplete(
151
+ element,
152
+ active,
153
+ callback
154
+ )
155
+
156
+ if (active && isTransitioning) {
157
+ const transitionDuration = Util.getTransitionDurationFromElement(active)
158
+
159
+ $(active)
160
+ .removeClass(ClassName.SHOW)
161
+ .one(Util.TRANSITION_END, complete)
162
+ .emulateTransitionEnd(transitionDuration)
163
+ } else {
164
+ complete()
165
+ }
166
+ }
167
+
168
+ _transitionComplete(element, active, callback) {
169
+ if (active) {
170
+ $(active).removeClass(ClassName.ACTIVE)
171
+
172
+ const dropdownChild = $(active.parentNode).find(
173
+ Selector.DROPDOWN_ACTIVE_CHILD
174
+ )[0]
175
+
176
+ if (dropdownChild) {
177
+ $(dropdownChild).removeClass(ClassName.ACTIVE)
178
+ }
179
+
180
+ if (active.getAttribute('role') === 'tab') {
181
+ active.setAttribute('aria-selected', false)
182
+ }
183
+ }
184
+
185
+ $(element).addClass(ClassName.ACTIVE)
186
+ if (element.getAttribute('role') === 'tab') {
187
+ element.setAttribute('aria-selected', true)
188
+ }
189
+
190
+ Util.reflow(element)
191
+
192
+ if (element.classList.contains(ClassName.FADE)) {
193
+ element.classList.add(ClassName.SHOW)
194
+ }
195
+
196
+ if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
197
+ const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]
198
+
199
+ if (dropdownElement) {
200
+ const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE))
201
+
202
+ $(dropdownToggleList).addClass(ClassName.ACTIVE)
203
+ }
204
+
205
+ element.setAttribute('aria-expanded', true)
206
+ }
207
+
208
+ if (callback) {
209
+ callback()
210
+ }
211
+ }
212
+
213
+ // Static
214
+
215
+ static _jQueryInterface(config) {
216
+ return this.each(function () {
217
+ const $this = $(this)
218
+ let data = $this.data(DATA_KEY)
219
+
220
+ if (!data) {
221
+ data = new Tab(this)
222
+ $this.data(DATA_KEY, data)
223
+ }
224
+
225
+ if (typeof config === 'string') {
226
+ if (typeof data[config] === 'undefined') {
227
+ throw new TypeError(`No method named "${config}"`)
228
+ }
229
+ data[config]()
230
+ }
231
+ })
232
+ }
233
+ }
234
+
235
+ /**
236
+ * ------------------------------------------------------------------------
237
+ * Data Api implementation
238
+ * ------------------------------------------------------------------------
239
+ */
240
+
241
+ $(document)
242
+ .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
243
+ event.preventDefault()
244
+ Tab._jQueryInterface.call($(this), 'show')
245
+ })
246
+
247
+ /**
248
+ * ------------------------------------------------------------------------
249
+ * jQuery
250
+ * ------------------------------------------------------------------------
251
+ */
252
+
253
+ $.fn[NAME] = Tab._jQueryInterface
254
+ $.fn[NAME].Constructor = Tab
255
+ $.fn[NAME].noConflict = () => {
256
+ $.fn[NAME] = JQUERY_NO_CONFLICT
257
+ return Tab._jQueryInterface
258
+ }
259
+
260
+ export default Tab
@@ -0,0 +1,227 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v4.3.0): toast.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import $ from 'jquery'
9
+ import Util from './util'
10
+
11
+ /**
12
+ * ------------------------------------------------------------------------
13
+ * Constants
14
+ * ------------------------------------------------------------------------
15
+ */
16
+
17
+ const NAME = 'toast'
18
+ const VERSION = '4.3.0'
19
+ const DATA_KEY = 'bs.toast'
20
+ const EVENT_KEY = `.${DATA_KEY}`
21
+ const JQUERY_NO_CONFLICT = $.fn[NAME]
22
+
23
+ const Event = {
24
+ CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,
25
+ HIDE : `hide${EVENT_KEY}`,
26
+ HIDDEN : `hidden${EVENT_KEY}`,
27
+ SHOW : `show${EVENT_KEY}`,
28
+ SHOWN : `shown${EVENT_KEY}`
29
+ }
30
+
31
+ const ClassName = {
32
+ FADE : 'fade',
33
+ HIDE : 'hide',
34
+ SHOW : 'show',
35
+ SHOWING : 'showing'
36
+ }
37
+
38
+ const DefaultType = {
39
+ animation : 'boolean',
40
+ autohide : 'boolean',
41
+ delay : 'number'
42
+ }
43
+
44
+ const Default = {
45
+ animation : true,
46
+ autohide : true,
47
+ delay : 500
48
+ }
49
+
50
+ const Selector = {
51
+ DATA_DISMISS : '[data-dismiss="toast"]'
52
+ }
53
+
54
+ /**
55
+ * ------------------------------------------------------------------------
56
+ * Class Definition
57
+ * ------------------------------------------------------------------------
58
+ */
59
+
60
+ class Toast {
61
+ constructor(element, config) {
62
+ this._element = element
63
+ this._config = this._getConfig(config)
64
+ this._timeout = null
65
+ this._setListeners()
66
+ }
67
+
68
+ // Getters
69
+
70
+ static get VERSION() {
71
+ return VERSION
72
+ }
73
+
74
+ static get DefaultType() {
75
+ return DefaultType
76
+ }
77
+
78
+ static get Default() {
79
+ return Default
80
+ }
81
+
82
+ // Public
83
+
84
+ show() {
85
+ $(this._element).trigger(Event.SHOW)
86
+
87
+ if (this._config.animation) {
88
+ this._element.classList.add(ClassName.FADE)
89
+ }
90
+
91
+ const complete = () => {
92
+ this._element.classList.remove(ClassName.SHOWING)
93
+ this._element.classList.add(ClassName.SHOW)
94
+
95
+ $(this._element).trigger(Event.SHOWN)
96
+
97
+ if (this._config.autohide) {
98
+ this.hide()
99
+ }
100
+ }
101
+
102
+ this._element.classList.remove(ClassName.HIDE)
103
+ this._element.classList.add(ClassName.SHOWING)
104
+ if (this._config.animation) {
105
+ const transitionDuration = Util.getTransitionDurationFromElement(this._element)
106
+
107
+ $(this._element)
108
+ .one(Util.TRANSITION_END, complete)
109
+ .emulateTransitionEnd(transitionDuration)
110
+ } else {
111
+ complete()
112
+ }
113
+ }
114
+
115
+ hide(withoutTimeout) {
116
+ if (!this._element.classList.contains(ClassName.SHOW)) {
117
+ return
118
+ }
119
+
120
+ $(this._element).trigger(Event.HIDE)
121
+
122
+ if (withoutTimeout) {
123
+ this._close()
124
+ } else {
125
+ this._timeout = setTimeout(() => {
126
+ this._close()
127
+ }, this._config.delay)
128
+ }
129
+ }
130
+
131
+ dispose() {
132
+ clearTimeout(this._timeout)
133
+ this._timeout = null
134
+
135
+ if (this._element.classList.contains(ClassName.SHOW)) {
136
+ this._element.classList.remove(ClassName.SHOW)
137
+ }
138
+
139
+ $(this._element).off(Event.CLICK_DISMISS)
140
+
141
+ $.removeData(this._element, DATA_KEY)
142
+ this._element = null
143
+ this._config = null
144
+ }
145
+
146
+ // Private
147
+
148
+ _getConfig(config) {
149
+ config = {
150
+ ...Default,
151
+ ...$(this._element).data(),
152
+ ...typeof config === 'object' && config ? config : {}
153
+ }
154
+
155
+ Util.typeCheckConfig(
156
+ NAME,
157
+ config,
158
+ this.constructor.DefaultType
159
+ )
160
+
161
+ return config
162
+ }
163
+
164
+ _setListeners() {
165
+ $(this._element).on(
166
+ Event.CLICK_DISMISS,
167
+ Selector.DATA_DISMISS,
168
+ () => this.hide(true)
169
+ )
170
+ }
171
+
172
+ _close() {
173
+ const complete = () => {
174
+ this._element.classList.add(ClassName.HIDE)
175
+ $(this._element).trigger(Event.HIDDEN)
176
+ }
177
+
178
+ this._element.classList.remove(ClassName.SHOW)
179
+ if (this._config.animation) {
180
+ const transitionDuration = Util.getTransitionDurationFromElement(this._element)
181
+
182
+ $(this._element)
183
+ .one(Util.TRANSITION_END, complete)
184
+ .emulateTransitionEnd(transitionDuration)
185
+ } else {
186
+ complete()
187
+ }
188
+ }
189
+
190
+ // Static
191
+
192
+ static _jQueryInterface(config) {
193
+ return this.each(function () {
194
+ const $element = $(this)
195
+ let data = $element.data(DATA_KEY)
196
+ const _config = typeof config === 'object' && config
197
+
198
+ if (!data) {
199
+ data = new Toast(this, _config)
200
+ $element.data(DATA_KEY, data)
201
+ }
202
+
203
+ if (typeof config === 'string') {
204
+ if (typeof data[config] === 'undefined') {
205
+ throw new TypeError(`No method named "${config}"`)
206
+ }
207
+
208
+ data[config](this)
209
+ }
210
+ })
211
+ }
212
+ }
213
+
214
+ /**
215
+ * ------------------------------------------------------------------------
216
+ * jQuery
217
+ * ------------------------------------------------------------------------
218
+ */
219
+
220
+ $.fn[NAME] = Toast._jQueryInterface
221
+ $.fn[NAME].Constructor = Toast
222
+ $.fn[NAME].noConflict = () => {
223
+ $.fn[NAME] = JQUERY_NO_CONFLICT
224
+ return Toast._jQueryInterface
225
+ }
226
+
227
+ export default Toast