Punk-Queue

 view release on metacpan or  search on metacpan

lib/Punk/Plugin/Queue/assets/fontawesome/LICENSE.txt  view on Meta::CPAN


The Font Awesome Free download is licensed under a Creative Commons
Attribution 4.0 International License and applies to all icons packaged
as SVG and JS file types.

--------------------------------------------------------------------------------

# Fonts: SIL OFL 1.1 License

In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.

Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
with Reserved Font Name: "Font Awesome".

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL

SIL OPEN FONT LICENSE
Version 1.1 - 26 February 2007

lib/Punk/Plugin/Queue/assets/funky/js/07-media-query.js  view on Meta::CPAN

	var Funky = window.Funky;

	// =========================================================================
	// Predefined Breakpoints
	// =========================================================================

	var BREAKPOINTS = {
		'mobile':         '(max-width: 767px)',
		'tablet':         '(max-width: 1023px)',
		'tablet-only':    '(min-width: 768px) and (max-width: 1023px)',
		'desktop':        '(min-width: 1024px)',
		'large':          '(min-width: 1200px)',
		'xlarge':         '(min-width: 1440px)',
		'portrait':       '(orientation: portrait)',
		'landscape':      '(orientation: landscape)',
		'touch':          '(pointer: coarse)',
		'mouse':          '(pointer: fine)',
		'hover':          '(hover: hover)',
		'reduced-motion': '(prefers-reduced-motion: reduce)',
		'dark-mode':      '(prefers-color-scheme: dark)',
		'light-mode':     '(prefers-color-scheme: light)',

lib/Punk/Plugin/Queue/assets/funky/js/35-table.js  view on Meta::CPAN


	/**
	 * Default breakpoints
	 */
	var DEFAULT_BREAKPOINTS = [
		{ name: 'mobile', width: 480 },
		{ name: 'mobile-l', width: 640 },
		{ name: 'tablet', width: 768 },
		{ name: 'tablet-l', width: 1024 },
		{ name: 'laptop', width: 1280 },
		{ name: 'desktop', width: 10000 }
	];

	/**
	 * Determine current breakpoint based on container width
	 * @param {boolean} force - Force recalculation even if breakpoint hasn't changed
	 */
	TableInstance.prototype._determineBreakpoint = function(force) {
		if (!this.config.responsive) return;

		// Use wrapper element for width detection (container may be replaced)

lib/Punk/Plugin/Queue/assets/funky/js/35-table.js  view on Meta::CPAN

		
		// Support responsive as object { enabled: true, breakpoints: [...] } or just breakpoints at config level
		var responsiveConfig = typeof this.config.responsive === 'object' ? this.config.responsive : {};
		var breakpoints = responsiveConfig.breakpoints || this.config.breakpoints || DEFAULT_BREAKPOINTS;
		
		// Ensure breakpoints is an array
		if (!Array.isArray(breakpoints)) {
			breakpoints = DEFAULT_BREAKPOINTS;
		}
		
		var newBreakpoint = 'desktop';

		// Sort breakpoints by width descending
		var sorted = breakpoints.slice().sort(function(a, b) {
			return b.width - a.width;
		});

		for (var i = 0; i < sorted.length; i++) {
			if (containerWidth <= sorted[i].width) {
				newBreakpoint = sorted[i].name;
			}

lib/Punk/Plugin/Queue/assets/funky/js/35-table.js  view on Meta::CPAN

		if (this.config.debug) {
			console.log('[Funky.Table] After _collapseAllDetails, tbody rows:', this.tbody && this.tbody.el ? this.tbody.el.querySelectorAll('tr').length : 0);
		}
	};

	/**
	 * Get breakpoint priority number
	 */
	TableInstance.prototype._getBreakpointPriority = function(breakpoint) {
		var priorities = {
			'desktop': 1,
			'laptop': 2,
			'tablet-l': 3,
			'tablet': 4,
			'mobile-l': 5,
			'mobile': 6
		};
		return priorities[breakpoint] || 1;
	};

	/**
	 * Get maximum priority to show at breakpoint
	 * Priority scale: 1-10 (lower = more important = stays visible longer)
	 * Columns with no responsivePriority always remain visible
	 */
	TableInstance.prototype._getMaxPriorityForBreakpoint = function(breakpoint) {
		// Threshold = maximum priority value to SHOW at this breakpoint
		// Lower priority number = more important = stays visible longer
		// Columns with priority > threshold will be hidden
		// At desktop (widest), threshold is high - show all columns
		// At mobile (narrowest), threshold is low - only priority 1-2 shown
		var thresholds = {
			'desktop': 10000,   // Show all (priority 1-10000)
			'laptop': 6,        // Show priority 1-6
			'tablet-l': 5,      // Show priority 1-5
			'tablet': 4,        // Show priority 1-4
			'mobile-l': 3,      // Show priority 1-3
			'mobile': 2         // Show priority 1-2
		};
		return thresholds[breakpoint] || 10000;
	};

	/**

lib/Punk/Plugin/Queue/assets/funky/js/35-table.js  view on Meta::CPAN

			var headers = this._headerRow.querySelectorAll('th');
			for (var i = 0; i < headers.length; i++) {
				var th = headers[i];
				var index = parseInt(th.getAttribute('data-column-index'), 10);
				if (!isNaN(index)) {
					if (hide.indexOf(index) !== -1) {
						th.classList.add('funky-table-hidden');
					} else {
						th.classList.remove('funky-table-hidden');
						// When responsive mode is active, clear fixed widths so columns can expand
						// When back to desktop, restore original widths
						if (hasHiddenColumns) {
							// Store original width if not already stored
							if (!th.hasAttribute('data-original-width') && th.style.width) {
								th.setAttribute('data-original-width', th.style.width);
							}
							th.style.width = '';
						} else {
							// Restore original width if we stored one
							var originalWidth = th.getAttribute('data-original-width');
							if (originalWidth) {



( run in 2.303 seconds using v1.01-cache-2.11-cpan-b16cb0d3907 )