Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarah German <sgerman@gitlab.com>2022-06-28 01:03:37 +0300
committerDavid O'Regan <doregan@gitlab.com>2022-06-28 11:49:20 +0300
commitce8150cd679fd93bc849073b8fc3a54a554abd84 (patch)
treee35f010702c85a7a44bc2d523f817e79f83c25be
parent40cc22d12e91830a0d8d14d08db9aba475f9ee72 (diff)
Bundle ClipboardJS with yarn361-clipboard-cdn
-rw-r--r--content/assets/javascripts/clipboardjs.js42
-rw-r--r--content/frontend/shared/clipboardjs.js44
-rw-r--r--layouts/archives.html3
-rw-r--r--layouts/default.html3
-rw-r--r--package.json1
-rw-r--r--yarn.lock31
6 files changed, 78 insertions, 46 deletions
diff --git a/content/assets/javascripts/clipboardjs.js b/content/assets/javascripts/clipboardjs.js
deleted file mode 100644
index 92cd0ae3..00000000
--- a/content/assets/javascripts/clipboardjs.js
+++ /dev/null
@@ -1,42 +0,0 @@
----
-version: 2
----
-
-// Add a copy button to every fenced code block
-$('pre').append($('<button class="clip-btn" title="Click to copy" data-selector="true"><%= icon("copy-to-clipboard") %></button>'));
-
-// Tooltip
-$('button').tooltip({
- trigger: 'click',
- placement: 'left'
-});
-
-function setTooltip(btn, message) {
- $(btn).tooltip('hide')
- .attr('data-original-title', message)
- .tooltip('show');
-}
-
-function hideTooltip(btn) {
- setTimeout(function() {
- $(btn).tooltip('hide');
- }, 1000);
-}
-
-// trigger clipboardjs
-var clipboard = new ClipboardJS('.clip-btn', {
- target: function(trigger) {
- return trigger.previousElementSibling;
- }
-});
-
-clipboard.on('success', function(e) {
- setTooltip(e.trigger, 'Copied!');
- hideTooltip(e.trigger);
- e.clearSelection();
-});
-
-clipboard.on('error', function(e) {
- setTooltip(e.trigger, 'Failed!');
- hideTooltip(e.trigger);
-});
diff --git a/content/frontend/shared/clipboardjs.js b/content/frontend/shared/clipboardjs.js
new file mode 100644
index 00000000..ef76cb2e
--- /dev/null
+++ b/content/frontend/shared/clipboardjs.js
@@ -0,0 +1,44 @@
+/* global $ */
+
+import ClipboardJS from 'clipboard';
+
+// Add a copy button to every fenced code block
+const icon =
+ '<svg role="img" aria-label="" class="gl-icon ml-1 mr-1 s16"><use href="/assets/images/icons.svg#copy-to-clipboard"></use></svg>';
+$('pre').append(
+ $(`<button class="clip-btn" title="Click to copy" data-selector="true">${icon}</button>`),
+);
+
+// Tooltip
+$('button').tooltip({
+ trigger: 'click',
+ placement: 'left',
+});
+
+function setTooltip(btn, message) {
+ $(btn).tooltip('hide').attr('data-original-title', message).tooltip('show');
+}
+
+function hideTooltip(btn) {
+ setTimeout(function hide() {
+ $(btn).tooltip('hide');
+ }, 1000);
+}
+
+// trigger clipboardjs
+const clipboard = new ClipboardJS('.clip-btn', {
+ target: function triggerClipboard(trigger) {
+ return trigger.previousElementSibling;
+ },
+});
+
+clipboard.on('success', function clipboardSuccess(e) {
+ setTooltip(e.trigger, 'Copied!');
+ hideTooltip(e.trigger);
+ e.clearSelection();
+});
+
+clipboard.on('error', function clipboardFail(e) {
+ setTooltip(e.trigger, 'Failed!');
+ hideTooltip(e.trigger);
+});
diff --git a/layouts/archives.html b/layouts/archives.html
index fb9eaaaa..530d3fa1 100644
--- a/layouts/archives.html
+++ b/layouts/archives.html
@@ -24,10 +24,9 @@
<div class="doc-nav"></div>
</div>
<script src="<%= @items['/frontend/shared/global_imports.*'].path %>"></script>
- <script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<script src="<%= @items['/frontend/search/docsearch.*'].path %>"></script>
<script src="<%= @items['/frontend/header/index.*'].path %>"></script>
- <script type="application/javascript" src="<%= @items['/assets/javascripts/clipboardjs.*'].path %>"></script>
+ <script src="<%= @items['/frontend/shared/clipboardjs.*'].path %>"></script>
<script type="application/javascript" src="<%= @items['/assets/javascripts/badges.*'].path %>"></script>
<% if production? %>
<%# Add analytics only in production %>
diff --git a/layouts/default.html b/layouts/default.html
index 227d60a9..65c9071a 100644
--- a/layouts/default.html
+++ b/layouts/default.html
@@ -96,8 +96,7 @@
<script src="<%= @items['/frontend/shared/global_imports.*'].path %>"></script>
<script src="<%= @items['/frontend/search/docsearch.*'].path %>"></script>
<script src="<%= @items['/assets/javascripts/toggle_popover.*'].path %>"></script>
- <script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
- <script src="<%= @items['/assets/javascripts/clipboardjs.*'].path %>"></script>
+ <script src="<%= @items['/frontend/shared/clipboardjs.*'].path %>"></script>
<script src="<%= @items['/assets/javascripts/badges.*'].path %>"></script>
<script src="<%= @items['/assets/javascripts/mermaid.*'].path %>"></script>
<% if production? %>
diff --git a/package.json b/package.json
index 43c76767..2b5c4647 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
"@rollup/plugin-image": "^2.1.1",
"algoliasearch": "^4.13.1",
"bootstrap": "^4.6.1",
+ "clipboard": "^2.0.11",
"compare-versions": "^4.1.3",
"eslint-plugin-filenames": "^1.3.2",
"instantsearch.css": "^7.4.5",
diff --git a/yarn.lock b/yarn.lock
index a9caad15..8205f4a9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2317,6 +2317,15 @@ clean-regexp@^1.0.0:
dependencies:
escape-string-regexp "^1.0.5"
+clipboard@^2.0.11:
+ version "2.0.11"
+ resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5"
+ integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==
+ dependencies:
+ good-listener "^1.2.2"
+ select "^1.1.2"
+ tiny-emitter "^2.0.0"
+
cliui@^7.0.2:
version "7.0.4"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
@@ -2665,6 +2674,11 @@ delayed-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+delegate@^3.1.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
+ integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
+
detect-newline@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
@@ -3441,6 +3455,13 @@ globjoin@^0.1.4:
resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43"
integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=
+good-listener@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
+ integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==
+ dependencies:
+ delegate "^3.1.2"
+
graceful-fs@^4.1.2, graceful-fs@^4.2.9:
version "4.2.10"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
@@ -5705,6 +5726,11 @@ search-insights@^2.1.0:
resolved "https://registry.yarnpkg.com/search-insights/-/search-insights-2.2.1.tgz#9c93344fbae5fbf2f88c1a81b46b4b5d888c11f7"
integrity sha512-JDfVGZbKqTtiKVZjAVbkNw9C9f0ib80yx6Ea17M3z4RvPmuD0GYWXuFwA9++dpbreBEMH4TC3lQ29Zq7O4b5oA==
+select@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
+ integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==
+
"semver@2 || 3 || 4 || 5", semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@@ -6130,6 +6156,11 @@ throat@^6.0.1:
resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==
+tiny-emitter@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
+ integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
+
tmpl@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"