bootstrap.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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-comments',
  33. require('./components/PostComments.vue')
  34. );
  35. Vue.component(
  36. 'passport-clients',
  37. require('./components/passport/Clients.vue')
  38. );
  39. Vue.component(
  40. 'passport-authorized-clients',
  41. require('./components/passport/AuthorizedClients.vue')
  42. );
  43. Vue.component(
  44. 'passport-personal-access-tokens',
  45. require('./components/passport/PersonalAccessTokens.vue')
  46. );
  47. } catch (e) {}
  48. $(document).ready(function() {
  49. $(function () {
  50. $('[data-toggle="tooltip"]').tooltip()
  51. });
  52. });
  53. window.axios = require('axios');
  54. window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
  55. let token = document.head.querySelector('meta[name="csrf-token"]');
  56. if (token) {
  57. window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
  58. } else {
  59. console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
  60. }
  61. // import Echo from "laravel-echo"
  62. // window.io = require('socket.io-client');
  63. // window.pixelfed.bootEcho = function() {
  64. // window.Echo = new Echo({
  65. // broadcaster: 'socket.io',
  66. // host: window.location.hostname + ':2096',
  67. // auth: {
  68. // headers: {
  69. // Authorization: 'Bearer ' + token.content,
  70. // },
  71. // },
  72. // });
  73. // }
  74. window.pixelfed.copyToClipboard = (str) => {
  75. const el = document.createElement('textarea');
  76. el.value = str;
  77. el.setAttribute('readonly', '');
  78. el.style.position = 'absolute';
  79. el.style.left = '-9999px';
  80. document.body.appendChild(el);
  81. const selected =
  82. document.getSelection().rangeCount > 0
  83. ? document.getSelection().getRangeAt(0)
  84. : false;
  85. el.select();
  86. document.execCommand('copy');
  87. document.body.removeChild(el);
  88. if (selected) {
  89. document.getSelection().removeAllRanges();
  90. document.getSelection().addRange(selected);
  91. }
  92. };