bootstrap.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. window._ = require('lodash');
  2. window.Popper = require('popper.js').default;
  3. import swal from 'sweetalert';
  4. window.pixelfed = {};
  5. window.$ = window.jQuery = require('jquery');
  6. require('bootstrap');
  7. window.Vue = require('vue');
  8. import BootstrapVue from 'bootstrap-vue'
  9. Vue.use(BootstrapVue);
  10. try {
  11. window.InfiniteScroll = require('infinite-scroll');
  12. window.filesize = require('filesize');
  13. window.typeahead = require('./lib/typeahead');
  14. window.Bloodhound = require('./lib/bloodhound');
  15. require('./components/localstorage');
  16. require('./components/likebutton');
  17. require('./components/commentform');
  18. require('./components/searchform');
  19. require('./components/bookmarkform');
  20. require('./components/statusform');
  21. // require('./components/embed');
  22. // require('./components/shortcuts');
  23. Vue.component(
  24. 'follow-suggestions',
  25. require('./components/FollowSuggestions.vue')
  26. );
  27. // Vue.component(
  28. // 'circle-panel',
  29. // require('./components/CirclePanel.vue')
  30. // );
  31. // Vue.component(
  32. // 'post-presenter',
  33. // require('./components/PostPresenter.vue')
  34. // );
  35. // Vue.component(
  36. // 'post-comments',
  37. // require('./components/PostComments.vue')
  38. // );
  39. Vue.component(
  40. 'passport-clients',
  41. require('./components/passport/Clients.vue')
  42. );
  43. Vue.component(
  44. 'passport-authorized-clients',
  45. require('./components/passport/AuthorizedClients.vue')
  46. );
  47. Vue.component(
  48. 'passport-personal-access-tokens',
  49. require('./components/passport/PersonalAccessTokens.vue')
  50. );
  51. } catch (e) {}
  52. $(document).ready(function() {
  53. $(function () {
  54. $('[data-toggle="tooltip"]').tooltip()
  55. });
  56. });
  57. window.axios = require('axios');
  58. window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
  59. let token = document.head.querySelector('meta[name="csrf-token"]');
  60. if (token) {
  61. window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
  62. } else {
  63. console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
  64. }
  65. // import Echo from "laravel-echo"
  66. // window.io = require('socket.io-client');
  67. // window.pixelfed.bootEcho = function() {
  68. // window.Echo = new Echo({
  69. // broadcaster: 'socket.io',
  70. // host: window.location.hostname + ':2096',
  71. // auth: {
  72. // headers: {
  73. // Authorization: 'Bearer ' + token.content,
  74. // },
  75. // },
  76. // });
  77. // }
  78. window.pixelfed.copyToClipboard = (str) => {
  79. const el = document.createElement('textarea');
  80. el.value = str;
  81. el.setAttribute('readonly', '');
  82. el.style.position = 'absolute';
  83. el.style.left = '-9999px';
  84. document.body.appendChild(el);
  85. const selected =
  86. document.getSelection().rangeCount > 0
  87. ? document.getSelection().getRangeAt(0)
  88. : false;
  89. el.select();
  90. document.execCommand('copy');
  91. document.body.removeChild(el);
  92. if (selected) {
  93. document.getSelection().removeAllRanges();
  94. document.getSelection().addRange(selected);
  95. }
  96. };