move clipboard.js to npm/webpack (#10183)

- created lazy-loaded webpack chunk for clipboard.js
- upgraded clipboard.js from 1.5.9 to 2.0.4
- parallelize initialization of all lazy-loaded features

Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com>
This commit is contained in:
silverwind 2020-02-08 00:03:42 +01:00 committed by GitHub
parent 0754ceca5b
commit 4721d45c2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 64 additions and 49 deletions

View file

@ -10,6 +10,7 @@ import './vendor/semanticDropdown.js';
import initContextPopups from './features/contextPopup.js';
import initHighlight from './features/highlight.js';
import initGitGraph from './features/gitGraph.js';
import initClipboard from './features/clipboard.js';
import ActivityTopAuthors from './components/ActivityTopAuthors.vue';
@ -2453,24 +2454,6 @@ $(document).ready(async () => {
}
}
// Clipboard JS
const clipboard = new Clipboard('.clipboard');
clipboard.on('success', (e) => {
e.clearSelection();
$(`#${e.trigger.getAttribute('id')}`).popup('destroy');
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-success'));
$(`#${e.trigger.getAttribute('id')}`).popup('show');
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original'));
});
clipboard.on('error', (e) => {
$(`#${e.trigger.getAttribute('id')}`).popup('destroy');
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-error'));
$(`#${e.trigger.getAttribute('id')}`).popup('show');
e.trigger.setAttribute('data-content', e.trigger.getAttribute('data-original'));
});
// Helpers.
$('.delete-button').click(showDeletePopup);
$('.add-all-button').click(showAddAllPopup);
@ -2579,7 +2562,6 @@ $(document).ready(async () => {
initRepoStatusChecker();
initTemplateSearch();
initContextPopups(suburl);
initGitGraph();
// Repo clone url.
if ($('#repo-clone-url').length > 0) {
@ -2616,8 +2598,11 @@ $(document).ready(async () => {
}
});
// parallel init of lazy-loaded features
[hljs] = await Promise.all([
initHighlight(),
initGitGraph(),
initClipboard(),
]);
});