@@ -189,8 +189,8 @@ class="copy-clipboard"
189189</script>
190190<script>
191191 window.onload = function() {
192- var codeBlocks = document.querySelectorAll('.solution pre code,.codeBlock'),
193- callStackItems = document.getElementsByClassName('call-stack-item');
192+ const codeBlocks = document.querySelectorAll('.solution pre code,.codeBlock');
193+ const callStackItems = document.getElementsByClassName('call-stack-item');
194194
195195 // If there are grouped vendor package files
196196 var vendorCollapse = document.getElementsByClassName('call-stack-vendor-collapse');
@@ -249,13 +249,47 @@ class="copy-clipboard"
249249 };
250250
251251 for (var i = 0, imax = callStackItems.length; i < imax; ++i) {
252- refreshCallStackItemCode(callStackItems[i]);
252+ let stackItem = callStackItems[i];
253+ refreshCallStackItemCode(stackItem);
253254
254255 // toggle code block visibility
255- callStackItems[i].getElementsByClassName('element-wrap')[0].addEventListener('click', function (event) {
256+ stackItem.querySelector('.show-arguments-toggle')?.addEventListener('click', function (e) {
257+ e.stopPropagation()
258+
259+ stackItem.getElementsByClassName('function-arguments-wrap')[0].classList.toggle('hidden')
260+ });
261+
262+ // toggle code block visibility
263+ const arguments = stackItem.querySelector('.arguments');
264+ arguments?.addEventListener('select', function (e) {
265+ e.stopPropagation()
266+ e.stopImmediatePropagation()
267+ })
268+
269+ arguments?.addEventListener('click', function (e) {
270+ e.stopPropagation()
271+ // stop click event on selecting text
272+ if (document.getSelection()?.type === 'Range') {
273+ return
274+ }
275+
276+ const fullArguments = stackItem.querySelector('.full-arguments');
277+ const shortArguments = stackItem.querySelector('.short-arguments');
278+ if (fullArguments) {
279+ fullArguments.classList.toggle('hidden')
280+ shortArguments.classList.toggle('hidden')
281+ }
282+ });
283+
284+ // toggle code block visibility
285+ stackItem.getElementsByClassName('element-wrap')[0].addEventListener('click', function (event) {
256286 if (event.target.nodeName.toLowerCase() === 'a') {
257287 return;
258288 }
289+ // stop click event on selecting text
290+ if (document.getSelection()?.type === 'Range') {
291+ return
292+ }
259293
260294 var callStackItem = this.parentNode,
261295 code = callStackItem.getElementsByClassName('code-wrap')[0];
@@ -273,6 +307,7 @@ class="copy-clipboard"
273307 refreshCallStackItemCode(callStackItem);
274308 }
275309 });
310+
276311 }
277312
278313 // handle copy stacktrace action on clipboard button
0 commit comments