{"version":3,"file":"vue-flex-waterfall.mjs","sources":["../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../src/VueFlexWaterfall.vue"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nexport default throttle;\n","<template>\n  <div\n    ref=\"container\"\n    :style=\"{ height: validContainerHeight, 'align-content': alignContent }\"\n    style=\"display: flex; flex-flow: column wrap\"\n  >\n    <slot></slot>\n    <div\n      vue-flex-waterfall-split\n      v-for=\"i in validCol - 1\"\n      :key=\"`split-${i}`\"\n      :style=\"{ order: i, width: validColSpacing }\"\n      style=\"flex-basis: 100%\"\n    ></div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue';\nimport { throttle } from 'lodash-es';\n\nconst emit = defineEmits<{ (event: 'orderUpdated'): void }>();\nconst props = withDefaults(\n  defineProps<{\n    height?: number | string;\n    alignContent?: string;\n    col?: number | string;\n    colSpacing?: number | string;\n    breakAt?: Record<string, number>;\n    breakByContainer?: boolean;\n  }>(),\n  {\n    col: 1,\n    colSpacing: 0,\n    breakAt: () => ({}),\n    breakByContainer: false,\n  },\n);\n\nconst containerHeight = ref(0);\nconst winWidth = ref(0);\nconst container = ref<HTMLElement>();\nlet observer: MutationObserver | undefined;\n\nconst validCol = computed(() => {\n  const intCol = Number(props.col);\n  const col = !intCol || intCol < 1 ? 1 : intCol;\n  const breakPoint = validSortedBreakAt.value.find(([w]) => winWidth.value && winWidth.value <= w);\n  return Math.floor(breakPoint ? breakPoint[1] : col);\n});\nconst validColSpacing = computed(() => validLength(props.colSpacing));\nconst validContainerHeight = computed(\n  () => validLength(props.height) || (containerHeight.value > 0 ? `${containerHeight.value}px` : ''),\n);\nconst validSortedBreakAt = computed(() => {\n  const valid: number[][] = [];\n  Object.entries(props.breakAt).forEach(([k, v]) => {\n    const ikv = [Number(k) || 0, Number(v) || 0];\n    if (Math.min(...ikv) > 0) valid.push(ikv);\n  });\n  // for Nuxt compatibility\n  if (typeof window !== 'undefined') {\n    valid.length ? addResizeListener() : removeResizeListener();\n  }\n  return valid.sort(([w1], [w2]) => w1 - w2);\n});\n\nconst throttleUpdateWidth = throttle(updateWidth, 100);\n\nwatch(validSortedBreakAt, () => updateOrder(), { deep: true });\n\nonMounted(() => {\n  observer = new MutationObserver(() => updateOrder());\n  if (validSortedBreakAt.value.length) updateWidth();\n  updateOrder(false);\n  watch(validCol, () => updateOrder());\n});\n\nonBeforeUnmount(() => {\n  stopObserve();\n  removeResizeListener();\n});\n\nfunction validLength(val?: number | string) {\n  if (!val) return 0;\n  return Number(val) ? `${val}px` : val;\n}\n\nfunction getItems() {\n  if (!container.value) return [];\n  return Array.from(container.value.children)\n    .filter(el => el.getAttribute('vue-flex-waterfall-split') === null)\n    .map(el => {\n      const { marginTop, marginBottom } = window.getComputedStyle(el);\n      const ph = el.getBoundingClientRect().height + parseFloat(marginTop) + parseFloat(marginBottom);\n      return { el: el as HTMLElement, ph };\n    });\n}\n\nasync function updateOrder(emitEvent = true) {\n  stopObserve();\n  containerHeight.value = 0;\n  let orderChanged = false;\n  const colsHeight = Array(validCol.value).fill(0);\n  const items = getItems() || [];\n  items.forEach(({ el, ph }) => {\n    const minI = colsHeight.indexOf(Math.min(...colsHeight));\n    const oldOrder = el.style.order;\n    const newOrder = String(minI + 1);\n    if (oldOrder != newOrder) {\n      el.style.order = newOrder;\n      orderChanged = true;\n    }\n    colsHeight[minI] += ph;\n  });\n  containerHeight.value = Math.max(...colsHeight);\n  await nextTick();\n  startObserve();\n  if (emitEvent && orderChanged) emit('orderUpdated');\n}\n\nfunction updateWidth() {\n  winWidth.value = props.breakByContainer ? container.value!.clientWidth : window.innerWidth;\n}\n\nfunction startObserve() {\n  observer?.observe(container.value!, { attributes: true, childList: true, subtree: true });\n}\n\nfunction stopObserve() {\n  observer?.disconnect();\n}\n\nfunction addResizeListener() {\n  window.addEventListener('resize', throttleUpdateWidth);\n}\n\nfunction removeResizeListener() {\n  window.removeEventListener('resize', throttleUpdateWidth);\n}\n\ndefineExpose({ updateOrder });\n</script>\n"],"names":["freeGlobal","freeGlobal$1","freeSelf","root","root$1","Symbol","Symbol$2","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","e","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","reWhitespace","trimmedEndIndex","string","index","reTrimStart","baseTrim","isObject","type","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","now","now$1","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","throttle","containerHeight","ref","winWidth","container","observer","validCol","computed","intCol","props","col","breakPoint","validSortedBreakAt","w","validColSpacing","validLength","validContainerHeight","valid","k","v","ikv","addResizeListener","removeResizeListener","w1","w2","throttleUpdateWidth","updateWidth","watch","updateOrder","onMounted","onBeforeUnmount","stopObserve","val","getItems","el","marginTop","marginBottom","ph","emitEvent","__async","orderChanged","colsHeight","minI","oldOrder","newOrder","nextTick","startObserve","emit","expose"],"mappings":"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"}