PageSourceSearch

https://scilearnix.com/wp-content/plugins/copy-the-code/classes/blocks/assets/js/core.js?ver=4.1.1

js scilearnix.com collected 2026-10-04 22:29:38 UTC 2,371 bytes, 103 lines download raw bytes

1(function ($) {
2	const CTCCore = {
3
4		/**
5		 * Init
6		 */
7		init: function () {
8			this._bind();
9		},
10
11		/**
12		 * Binds events
13		 */
14		_bind: function () {
15			$( document ).on( 'click', 'body:not(.block-editor-page) .ctc-block-copy', this.doCopy );
16		},
17
18		/**
19		 * Do Copy to Clipboard
20		 */
21		doCopy: function (event) {
22			event.preventDefault();
23
24			let btn             = $( this ),
25				btnText         = btn.find( '.ctc-button-text' ),
26				oldText         = btnText.text(),
27				copiedText      = btn.attr( 'data-copied' ) || 'Copied',
28				copyAsRaw       = btn.attr( 'copy-as-raw' ) || '',
29				block           = btn.parents( '.ctc-block' ),
30				textarea        = block.find( '.ctc-copy-content' ),
31				content         = textarea.val(),
32				selectionTarget = textarea.attr( 'selection-target' ) || ''
33
34			// Copy as selection.
35			if ( selectionTarget ) {
36				const source = $( selectionTarget )
37				if ( ! source.length ) {
38					return
39				}
40
41				CTCWP.copySelection( source )
42			} else {
43				if ( ! copyAsRaw ) {
44					// Convert the <br/> tags into new line.
45					content = content.replace( /<br\s*[\/]?>/gi, "\n" );
46
47					// Convert the <div> tags into new line.
48					content = content.replace( /<div\s*[\/]?>/gi, "\n" );
49
50					// Convert the <p> tags into new line.
51					content = content.replace( /<p\s*[\/]?>/gi, "\n\n" );
52
53					// Convert the <li> tags into new line.
54					content = content.replace( /<li\s*[\/]?>/gi, "\n" );
55
56					// Remove all tags.
57					content = content.replace( /(<([^>]+)>)/ig, '' );
58
59					// Remove white spaces.
60					content = content.replace( new RegExp( "/^\s+$/" ), "" );
61				}
62
63				// Remove first and last new line.
64				content = $.trim( content );
65
66				// Support for IOS devices too.
67				CTCWP.copy( content );
68			}
69
70			if ( btn.hasClass( 'ctc-block-copy-icon' ) ) {
71				// Copied!
72				btn.addClass( 'copied' );
73				setTimeout(
74					function () {
75						btn.removeClass( 'copied' )
76					},
77					1000
78				);
79			} else {
80				// Copied!
81				btnText.text( copiedText );
82				block.addClass( 'copied' )
83				setTimeout(
84					function () {
85						btnText.text( oldText )
86						block.removeClass( 'copied' )
87					},
88					1000
89				);
90			}
91		}
92	};
93
94	/**
95	 * Initialization
96	 */
97	$(
98		function () {
99			CTCCore.init();
100		}
101	);
102
103})( jQuery );

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.