@pacem/pacem 1.0.0-abel → 1.0.0-amaldi

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/browser/pacem-2d.js +3 -3
  2. package/dist/browser/pacem-2d.js.map +0 -5
  3. package/dist/browser/pacem-2d.min.js +3 -3
  4. package/dist/browser/pacem-2d.min.js.map +0 -5
  5. package/dist/browser/pacem-3d.js +341 -341
  6. package/dist/browser/pacem-3d.js.map +1 -6
  7. package/dist/browser/pacem-3d.min.js +3 -3
  8. package/dist/browser/pacem-3d.min.js.map +1 -6
  9. package/dist/browser/pacem-charts.js +3 -3
  10. package/dist/browser/pacem-charts.js.map +0 -5
  11. package/dist/browser/pacem-charts.min.js +3 -3
  12. package/dist/browser/pacem-charts.min.js.map +0 -5
  13. package/dist/browser/pacem-cms.js +107 -107
  14. package/dist/browser/pacem-cms.js.map +1 -6
  15. package/dist/browser/pacem-cms.min.js +3 -3
  16. package/dist/browser/pacem-cms.min.js.map +1 -6
  17. package/dist/browser/pacem-core.js +21 -7
  18. package/dist/browser/pacem-core.js.map +1 -6
  19. package/dist/browser/pacem-core.min.js +4 -4
  20. package/dist/browser/pacem-core.min.js.map +1 -6
  21. package/dist/browser/pacem-foundation.js +3 -3
  22. package/dist/browser/pacem-foundation.js.map +0 -5
  23. package/dist/browser/pacem-foundation.min.js +3 -3
  24. package/dist/browser/pacem-foundation.min.js.map +0 -5
  25. package/dist/browser/pacem-fx.js +19 -19
  26. package/dist/browser/pacem-fx.js.map +1 -6
  27. package/dist/browser/pacem-fx.min.js +3 -3
  28. package/dist/browser/pacem-fx.min.js.map +1 -6
  29. package/dist/browser/pacem-logging.js +3 -3
  30. package/dist/browser/pacem-logging.js.map +0 -5
  31. package/dist/browser/pacem-logging.min.js +3 -3
  32. package/dist/browser/pacem-logging.min.js.map +0 -5
  33. package/dist/browser/pacem-maps.js +3 -3
  34. package/dist/browser/pacem-maps.js.map +0 -5
  35. package/dist/browser/pacem-maps.min.js +3 -3
  36. package/dist/browser/pacem-maps.min.js.map +0 -5
  37. package/dist/browser/pacem-media.js +3 -3
  38. package/dist/browser/pacem-media.js.map +0 -5
  39. package/dist/browser/pacem-media.min.js +3 -3
  40. package/dist/browser/pacem-media.min.js.map +0 -5
  41. package/dist/browser/pacem-networking.js +3 -3
  42. package/dist/browser/pacem-networking.js.map +0 -5
  43. package/dist/browser/pacem-networking.min.js +3 -3
  44. package/dist/browser/pacem-networking.min.js.map +0 -5
  45. package/dist/browser/pacem-numerical.js +3 -3
  46. package/dist/browser/pacem-numerical.js.map +0 -5
  47. package/dist/browser/pacem-numerical.min.js +3 -3
  48. package/dist/browser/pacem-numerical.min.js.map +0 -5
  49. package/dist/browser/pacem-plus.js +77 -77
  50. package/dist/browser/pacem-plus.js.map +1 -6
  51. package/dist/browser/pacem-plus.min.js +3 -3
  52. package/dist/browser/pacem-plus.min.js.map +1 -6
  53. package/dist/browser/pacem-scaffolding.js +11 -8
  54. package/dist/browser/pacem-scaffolding.js.map +1 -6
  55. package/dist/browser/pacem-scaffolding.min.js +4 -4
  56. package/dist/browser/pacem-scaffolding.min.js.map +1 -6
  57. package/dist/browser/pacem-ui.js +37 -26
  58. package/dist/browser/pacem-ui.js.map +1 -6
  59. package/dist/browser/pacem-ui.min.js +4 -4
  60. package/dist/browser/pacem-ui.min.js.map +1 -6
  61. package/dist/bundle/pacem.min.mjs +40 -38
  62. package/dist/bundle/pacem.mjs +58 -32
  63. package/dist/bundle/pacem.mjs.map +2 -7
  64. package/dist/typings/index.d.ts +5 -3
  65. package/dist/vscode.html-custom.json +4834 -0
  66. package/package.json +9 -8
@@ -1,6 +1 @@
1
- /**
2
- * @pacem/pacem v1.0.0-abel (https://js.pacem.it)
3
- * Copyright 2026 Pacem (https://pacem.it)
4
- * Licensed under Apache-2.0
5
- */
6
- {"version":3,"file":"pacem-core.js","sources":["../esm/animations/easings.js","../esm/trees/deepcloner.js","../esm/trees/json.js","../esm/promise.js","../esm/utils.js","../esm/utils-customevent.js","../esm/events.js","../esm/animations/events.js","../esm/animations/tween-service.js","../esm/animations/timer.js","../esm/net/fetcher.js","../esm/net/http.js","../esm/ui/drag-drop.js","../esm/ui/rescale.js","../esm/ui/rotate.js","../esm/ui/swipe.js","../esm/adapter.js","../esm/types.js","../esm/prefix.js","../esm/template.js","../esm/utils-customelement.js","../esm/expression.js","../esm/logger.js","../esm/converters.js","../esm/comparers.js","../esm/decorators.js","../esm/eventtarget.js","../esm/components/basic/types.js","../esm/components/basic/adapter.js","../esm/components/basic/annihilator.js","../esm/components/basic/beforeunload.js","../esm/components/basic/broadcastchannel-proxy.js","../esm/components/basic/browser.js","../esm/storage.js","../esm/components/basic/data.js","../esm/components/basic/dock.js","../esm/components/basic/element-proxies.js","../esm/components/basic/event-proxy.js","../esm/components/basic/fetcher.js","../esm/components/basic/history.js","../esm/components/basic/html-proxy.js","../esm/components/basic/if.js","../esm/components/basic/items-container.js","../esm/components/basic/iterative.js","../esm/components/basic/layout-proxy.js","../esm/components/basic/meta-proxy.js","../esm/components/basic/online-status.js","../esm/components/basic/panel.js","../esm/command.js","../esm/components/basic/template-proxy.js","../esm/components/basic/repeater.js","../esm/components/basic/resize.js","../esm/components/basic/router.js","../esm/components/basic/scroll-aware.js","../esm/components/basic/serviceworker-proxy.js","../esm/components/basic/shortcut.js","../esm/components/basic/span.js","../esm/components/basic/style-proxy.js","../esm/components/basic/text.js","../esm/components/basic/timer.js","../esm/components/basic/title-proxy.js","../esm/components/basic/tweener.js","../esm/components/basic/viewport-aware.js","../esm/components/basic/webworker-proxy.js","../esm/components/behavior.js","../esm/components/behaviors/drag-drop.js","../esm/components/behaviors/rescale.js","../esm/components/behaviors/rotate.js","../esm/components/behaviors/swipe.js","../esm/components/animations/animation.js","../esm/components/animations/color-animation.js","../esm/components/animations/number-animation.js","../esm/components/animations/point-animation.js","../esm/components/animations/storyboard.js","../esm/defaults.js","../esm/regex.js","../esm/transforms.js","../esm/index-iife.js"],"sourcesContent":["// namespace Pacem.Animations {\n// TODO: Bezier\nconst pi_half = Math.PI * .5;\nconst EASINGS = {\n // t: normalized `current time` [0,1]\n linear: t => t,\n sineIn: t => Math.sin(t * pi_half - pi_half) + 1.0,\n sineOut: t => Math.sin(t * pi_half),\n sineInOut: t => .5 * Math.sin(t * Math.PI - pi_half) + .5,\n expoIn: t => (Math.pow(Math.E, t) - 1.0) / (Math.E - 1.0),\n expoOut: t => Math.log(t * (Math.E - 1.0) + 1.0),\n expoInOut: t => t < .5 ? .5 * Easings.expoIn(t * 2) : .5 * (1 + Easings.expoOut(t * 2 - 1.0))\n};\nfunction assembleEasing(fn, css) {\n const output = (t) => fn(t);\n output['css'] = css;\n return output;\n}\nexport const Easings = {\n linear: assembleEasing(EASINGS.linear, \"linear\"),\n sineIn: assembleEasing(EASINGS.sineIn, 'cubic-bezier(0.12, 0, 0.39, 0)'),\n sineOut: assembleEasing(EASINGS.sineOut, 'cubic-bezier(0.61, 1, 0.88, 1)'),\n sineInOut: assembleEasing(EASINGS.sineInOut, 'cubic-bezier(0.37, 0, 0.63, 1)'),\n // TODO: set correct pairing\n expoIn: assembleEasing(EASINGS.expoIn, 'cubic-bezier(0.7, 0, 0.84, 0)'),\n expoOut: assembleEasing(EASINGS.expoOut, 'cubic-bezier(0.16, 1, 0.3, 1)'),\n expoInOut: assembleEasing(EASINGS.expoInOut, 'cubic-bezier(0.87, 0, 0.13, 1)'),\n};\n//}\n","// namespace Pacem {\nexport class DeepCloner {\n constructor() {\n }\n static clone(obj) {\n return new DeepCloner()._clone(obj);\n }\n _clone(obj) {\n let seen = new WeakMap();\n function clone(obj) {\n if (typeof obj === 'object' && obj !== null\n && /* DOM elements won't be deep-cloned */ !(obj instanceof Element)\n && /* FileSystem API interfaces and File objects won't be deep-cloned */ !(obj instanceof FileSystemHandle) && !(obj instanceof File)) {\n if (Array.isArray(obj)) {\n return obj.map(clone);\n }\n else if (obj instanceof Date) {\n return new Date(obj.valueOf());\n }\n else if (obj instanceof RegExp) {\n return new RegExp(obj);\n }\n else {\n if (seen.has(obj)) {\n return seen.get(obj);\n }\n else {\n let shallow2Deep = Object.assign({}, obj);\n seen.set(obj, shallow2Deep);\n Object.keys(shallow2Deep).forEach(k => { shallow2Deep[k] = clone(obj[k]); });\n return shallow2Deep;\n }\n }\n }\n return obj;\n }\n return clone(obj);\n }\n}\n//}\n","import { DeepCloner } from './deepcloner';\nimport { Keys } from '@pacem/pacem-foundation';\n// namespace Pacem {\nconst REF_ID = '$refId';\n/** How functions get serialized. */\nexport var JsonFunctionConversion;\n(function (JsonFunctionConversion) {\n /** Skip functions (default). */\n JsonFunctionConversion[JsonFunctionConversion[\"Ignore\"] = 0] = \"Ignore\";\n /** Functions get referenced from a state in the current DOM. Not suitable for backups or long-term dehydrations. */\n JsonFunctionConversion[\"Reference\"] = \"reference\";\n /** Function gets stringified and then eval(uated) while dehydrating. Functions with a state (impure) might not working properly when used on the dehydrated side. */\n JsonFunctionConversion[\"Plain\"] = \"plain\";\n})(JsonFunctionConversion || (JsonFunctionConversion = {}));\n;\nclass JsonFnStore {\n static { this._jsonFnWeakMap = new WeakMap(); }\n static { this._jsonFnMap = new Map(); }\n static store(fn) {\n const weak = this._jsonFnWeakMap;\n if (!weak.has(fn)) {\n const key = Keys.uniqueCode();\n weak.set(fn, key);\n this._jsonFnMap.set(key, fn);\n }\n return weak.get(fn);\n }\n static retrieve(key) {\n return this._jsonFnMap.get(key);\n }\n static remove(key) {\n const fn = this.retrieve(key);\n this._jsonFnMap.delete(key);\n this._jsonFnWeakMap.delete(fn);\n }\n}\nexport class Json {\n constructor(_options) {\n this._options = _options;\n }\n static serialize(obj, options) {\n return new Json(options)._serialize(obj);\n }\n static deserialize(json) {\n return new Json()._deserialize(json);\n }\n _serialize(obj) {\n let clone = DeepCloner.clone(obj);\n let keys = [REF_ID];\n let flat = this._flatten(clone, 0, null, keys);\n return JSON.stringify(flat, keys.sort());\n }\n _deserialize(json) {\n let hasRefs = false;\n let obj = JSON.parse(json, (key, value) => {\n const elPattern = /^\\$<#(.+)>$/, fnPattern = /^\\$<fn:([^\\x05]+)>$/, // <- Firefox workaround for missing 's' flag implementation\n // fnPattern = /^\\$<fn:(.+)>$/s,\n regexPattern = /^\\$<regex:(.+)>$/, fnRefPattern = /^\\$<fn#(.+)>$/;\n let arr;\n if (key === REF_ID) {\n hasRefs = true;\n }\n else if (typeof value === 'string') {\n // regex?\n if ((arr = regexPattern.exec(value)) && arr.length > 1) {\n const regex = arr[1], lastPipe = regex.lastIndexOf('|');\n return new RegExp(regex.substr(0, lastPipe), regex.substr(lastPipe + 1));\n }\n // element?\n else if ((arr = elPattern.exec(value)) && arr.length > 1) {\n return document.getElementById(arr[1]);\n }\n else \n // function (flat)\n if ((arr = fnPattern.exec(value)) && arr.length > 1) {\n return eval(arr[1]);\n }\n else \n // function (ref)\n if ((arr = fnRefPattern.exec(value)) && arr.length > 1) {\n return JsonFnStore.retrieve(arr[1]);\n }\n }\n return value;\n });\n if (hasRefs) {\n return this._revive(obj);\n }\n return obj;\n }\n _flatten(obj, increment = 0, seen, keys) {\n seen = seen || new WeakSet();\n keys = keys || [];\n if (obj instanceof Element) {\n if (!obj.id) {\n return;\n }\n return `$<#${obj.id}>`;\n }\n else if (obj instanceof RegExp) {\n return `$<regex:${obj.source}|${obj.flags}>`;\n }\n else if (typeof obj === 'object' && obj != null && !(obj instanceof Date)) {\n if (Array.isArray(obj)) {\n return obj.map(i => this._flatten(i, increment, seen, keys));\n }\n else {\n // very object\n if (seen.has(obj)) {\n return (obj[REF_ID] = obj[REF_ID] || ('$#ref_' + (increment++)));\n }\n else {\n seen.add(obj);\n Object.keys(obj).forEach(k => {\n if (keys.indexOf(k) === -1) {\n keys.push(k);\n }\n obj[k] = this._flatten(obj[k], increment, seen, keys);\n });\n return obj;\n }\n }\n }\n else if (typeof obj === 'function') {\n switch (this._options?.functions) {\n case JsonFunctionConversion.Reference:\n const key = JsonFnStore.store(obj);\n return '$<fn#' + key + '>';\n case JsonFunctionConversion.Plain:\n return '$<fn:' + obj + '>';\n default:\n return undefined;\n }\n }\n return obj;\n }\n _revive(obj) {\n let hashTable = {};\n const refPattern = /^\\$#ref_(.+)$/;\n function revive(entity) {\n if (typeof entity === 'object' && entity !== null) {\n if (Array.isArray(entity)) {\n return entity.map(revive);\n }\n else {\n if (REF_ID in entity) {\n hashTable[entity[REF_ID]] = entity;\n delete entity[REF_ID];\n }\n Object.keys(entity).forEach(k => {\n entity[k] = revive(entity[k]);\n });\n }\n }\n else if (typeof entity === 'string' && refPattern.test(entity)) {\n let arr = refPattern.exec(entity);\n return hashTable[arr[0]];\n }\n return entity;\n }\n return revive(obj);\n }\n}\n//}\n","//namespace Pacem {\nexport class DeferPromise {\n constructor() {\n this.deferred = null;\n var me = this;\n me.promise = new Promise(function (resolve, reject) {\n me.deferred = { 'resolve': resolve, 'reject': reject, 'promise': me };\n });\n }\n then(onCompleted, onFailed) {\n return this.promise.then(onCompleted, onFailed);\n }\n /**\n * Occurs whenever the promise concludes (either after completion or error).\n * @param {Function } callback\n */\n finally(callback) {\n this.promise.then(callback, callback);\n return this;\n }\n success(callback) {\n this.promise.then(callback, null);\n return this;\n }\n error(callback) {\n this.promise.then(null, callback);\n return this;\n }\n static defer() {\n var q = new DeferPromise();\n return q.deferred;\n }\n}\n//}\n","import { Keys, Dates, Colors, Strings, Blobs, Imaging, NullChecker, detect } from '@pacem/pacem-foundation';\nimport { Json } from './trees/json';\nimport { DeepCloner } from './trees/deepcloner';\nimport { DeferPromise } from './promise';\n// namespace Pacem {\nconst PACEM_CORE_DEFAULT = 'pacem';\nconst DEFAULT_DOWNLOAD_FILENAME = 'download';\nexport const stopPropagationHandler = (evt) => {\n evt.stopPropagation();\n};\nexport const preventDefaultHandler = (evt) => {\n evt.preventDefault();\n};\nexport const avoidHandler = (evt) => {\n evt.preventDefault();\n evt.stopPropagation();\n};\nconst SEGMENT_PATTERN = /^\\/[^\\/]+/;\nconst ROUTE_SEGMENT_PATTERN = /\\/\\{([a-z\\$_][\\w]*)\\??\\}/;\nexport class Utils {\n static get core() {\n const root = window['Pacem'];\n var id = (root && root.Configuration && root.Configuration.core) || PACEM_CORE_DEFAULT;\n return window[id] = window[id] || {};\n }\n static get customElements() {\n return window['customElements'];\n }\n // #region GENERAL\n static uniqueId() {\n return Keys.uniqueId();\n }\n static uniqueCode() {\n return Keys.uniqueCode();\n }\n static randomString(length) {\n return Keys.randomString(length);\n }\n static parseDate(input) {\n return Dates.parse(input);\n }\n static copyToClipboard(input) {\n if (navigator.clipboard) {\n return navigator.clipboard.writeText(input);\n }\n // deprecated code branch\n return new Promise((resolve, reject) => {\n const el = document.createElement('textarea');\n el.value = input;\n el.style.opacity = \"0\";\n document.body.appendChild(el);\n try {\n el.select();\n document.execCommand('copy');\n el.remove();\n resolve();\n }\n catch (e) {\n reject(e);\n }\n });\n }\n // json-dedicated\n static { this.Json = {\n stringify: Json.serialize,\n parse: Json.deserialize\n }; }\n // dates-dedicated (moved to foundations, kept for backwards compat)\n static { this.Dates = {\n now: () => Utils.parseDate(Date.now()),\n parse: Utils.parseDate,\n isLeapYear: Dates.isLeapYear,\n daysInMonth: Dates.daysInMonth,\n /**\n * Gets whether a date is an `Invalid Date` or not.\n * @param date\n */\n isDate: Dates.isDate,\n dateOnly: Dates.dateOnly,\n addMonths: Dates.addMonths,\n addDays: Dates.addDays,\n daysBetween: Dates.daysBetween,\n }; }\n static colorize(elementOrRgb, rgb) {\n const hsl0 = /*Colors.hsl(Colors.parse('#000'))*/ { h: 38, s: .245, l: .6 };\n var realRgb, rgba, filter, element;\n if (elementOrRgb instanceof HTMLElement) {\n realRgb = rgb;\n }\n else {\n realRgb = elementOrRgb;\n }\n // rgba\n if (typeof realRgb === 'string') {\n rgba = Colors.parse(realRgb);\n }\n else {\n rgba = { r: realRgb[0], g: realRgb[1], b: realRgb[2] };\n }\n const hsl = Colors.hsl(rgba);\n filter = `brightness(50%) sepia(1) hue-rotate(${(hsl.h - hsl0.h)}deg) saturate(${(1.0 + (hsl.s - hsl0.s))}) brightness(${(1.0 + (hsl.l - hsl0.l))})`;\n if (realRgb === rgb) {\n element.style.filter = filter;\n }\n else {\n return filter;\n }\n }\n static cssEscape(input) {\n return escape(input).replace('%', '\\\\');\n }\n // css-dedicated\n static { this.Css = {\n colorize: Utils.colorize,\n escape: Utils.cssEscape,\n getVariableValue(name) {\n return getComputedStyle(document.documentElement).getPropertyValue(name);\n },\n setVariable(name, value) {\n getComputedStyle(document.documentElement).setProperty(name, value);\n },\n /**\n * Naive O(n^2) implementation for an actual css class presence (definition) in the current DOM.\n * @param name CSS class name\n */\n isClassDefined(name) {\n const pattern = new RegExp('\\.' + name + '($|[\\s\\.,])');\n for (let j = 0; j < document.styleSheets.length; j++) {\n const sheet = document.styleSheets.item(j);\n try {\n const rules = sheet.cssRules;\n for (let i = 0; i < rules.length; i++) {\n const rule = sheet.cssRules.item(i);\n if (pattern.test(rule.selectorText)) {\n return true;\n }\n }\n }\n catch (e) {\n if (e instanceof DOMException) {\n console.warn('Couldn\\'t access cssRules of stylesheet \"' + sheet.href + '\".');\n // console.error(e);\n }\n }\n }\n return false;\n },\n deserializeTransform(element) {\n const style = element instanceof Element ? getComputedStyle(element) : element;\n let a = 1, b = 0, c = 0, d = 1, x = 0, y = 0, matches = /^matrix\\((.*)\\)$/.exec(style.transform), mij;\n //matrix(1, 0, 0, 1, 2, 4) \n if (matches && matches.length > 1 && (mij = matches[1].split(',')).length == 6) {\n // scale + rot\n a = parseFloat(mij[0]);\n b = parseFloat(mij[1]);\n c = parseFloat(mij[2]);\n d = parseFloat(mij[3]);\n // transl\n x += parseFloat(mij[4]);\n y += parseFloat(mij[5]);\n }\n return { a: a, b: b, c: c, d: d, e: x, f: y };\n }\n }; }\n // #region strings\n // legacy\n static { this.leftPad = Strings.leftPad; }\n static { this.formatString = Strings.format; }\n static { this.diff = Strings.diff; }\n static { this.Strings = {\n leftPad: Strings.leftPad,\n format: Strings.format,\n diff: Strings.diff,\n stripHTML: (html) => {\n let doc = new DOMParser().parseFromString(html, 'text/html');\n return doc.body.textContent || '';\n }\n }; }\n // #endregion\n // #endregion\n // #region blob/files...\n static { this.Blobs = {\n toDataURL: Blobs.blobToDataURL,\n fromDataURL: Blobs.dataURLToBlob,\n toText: Blobs.blobToText,\n fromText: Blobs.textToBlob\n }; }\n static { this.Images = {\n load: Imaging.loadImage,\n resize: Imaging.resizeImage\n }; }\n static loadImage(src) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.src = src;\n if (img.complete) {\n resolve(img);\n }\n else {\n img.onload = (evt) => {\n resolve(img);\n };\n img.onerror = (evt) => {\n reject();\n };\n }\n });\n }\n static blobToDataURL(blob) {\n return Utils.Blobs.toDataURL(blob);\n }\n static dataURLToBlob(dataURL) {\n return Utils.Blobs.fromDataURL(dataURL);\n }\n static blobToText(blob, encoding) {\n return Utils.Blobs.toText(blob, encoding);\n }\n static textToBlob(content, type = 'text/plain') {\n return Utils.Blobs.fromText(content, type);\n }\n /** @deprecated Use {Utils.Images.resize}, instead.\n * Resizes an image when exceeding the provided size constraints.\n * @param img {Blob} Input image\n * @param maxWidth {number} Width constraint\n * @param maxHeight {number} Height constraint\n */\n static resizeImage(img, maxWidth, maxHeight, quality) {\n var deferred = DeferPromise.defer();\n Utils.blobToDataURL(img)\n .then(Utils.loadImage)\n .then(el => {\n const origWidth = el.width, origHeight = el.height;\n let cnv = document.createElement('canvas');\n cnv.width = origWidth;\n cnv.height = origHeight;\n let ctx = cnv.getContext('2d');\n //ctx.drawImage(el, 0, 0);\n if (origWidth > maxWidth\n || origHeight > maxHeight) {\n const origRatio = origWidth / origHeight, targetRatio = maxWidth / maxHeight;\n let targetHeight, targetWidth;\n if (targetRatio < origRatio) {\n targetWidth = maxWidth;\n targetHeight = maxWidth / origRatio;\n }\n else {\n targetHeight = maxHeight;\n targetWidth = maxHeight * origRatio;\n }\n cnv.width = targetWidth;\n cnv.height = targetHeight;\n const jpeg = quality > 0 && quality <= 1;\n if (jpeg) {\n ctx.fillStyle = '#000';\n ctx.fillRect(0, 0, cnv.width, cnv.height);\n }\n Utils.cropImageOntoCanvas(el, ctx);\n let newUrl;\n if (jpeg)\n newUrl = ctx.canvas.toDataURL(\"image/jpeg\", quality);\n else\n newUrl = ctx.canvas.toDataURL();\n deferred.resolve(Utils.dataURLToBlob(newUrl));\n }\n else {\n deferred.resolve(img);\n }\n }, _ => {\n // image loading error caught...\n });\n return deferred.promise;\n }\n /** @deprecated Use {Utils.Images.resize}, instead.\n * Crops an image having the provided url (might be a dataURL) into another having the provided size\n * @param url\n * @param width\n * @param height\n * @param ctx\n */\n static cropImage(url, width, height, quality) {\n var deferred = DeferPromise.defer();\n let el = new Image();\n el.crossOrigin = 'anonymous';\n el.onload = function (ev) {\n let cnv = document.createElement('canvas');\n let ctx = cnv.getContext('2d');\n if (width)\n cnv.width = width;\n if (height)\n cnv.height = height;\n //\n const jpeg = quality > 0 && quality <= 1;\n if (jpeg) {\n ctx.fillStyle = '#000';\n ctx.fillRect(0, 0, cnv.width, cnv.height);\n }\n Utils.cropImageOntoCanvas(el, ctx);\n deferred.resolve(jpeg ? cnv.toDataURL('image/jpeg', quality) : cnv.toDataURL());\n };\n el.src = url;\n return deferred.promise;\n }\n static getUserMediaFunctions() {\n var _getUserMedia = [];\n let methods = [navigator['getUserMedia'], navigator['webkitGetUserMedia'], navigator['msGetUserMedia'], navigator['mozGetUserMedia']];\n let fns = methods.filter(function (fn, j) { return typeof fn == 'function'; });\n if (fns.length)\n _getUserMedia = fns;\n return _getUserMedia;\n }\n /**\n * Crops the snapshot of a drawable element onto a provided canvas context. It gets centered in the area and cropped (`cover`-like behavior).\n * @param el drawable element\n * @param ctx canvas context\n * @param sourceWidth forced source width\n * @param sourceHeight forced source height\n */\n static cropImageOntoCanvas(el, ctx, sourceWidth, sourceHeight) {\n ctx.imageSmoothingEnabled =\n ctx['mozImageSmoothingEnabled'] =\n ctx['oImageSmoothingEnabled'] =\n ctx['webkitImageSmoothingEnabled'] =\n true;\n //\n let tgetW = ctx.canvas.width /*= parseFloat(scope.thumbWidth)*/;\n let tgetH = ctx.canvas.height /*= parseFloat(scope.thumbHeight)*/;\n let cnvW = tgetW, cnvH = tgetH;\n let w = sourceWidth || 1.0 * el.width, h = sourceHeight || 1.0 * el.height;\n //console.log('img original size: ' + w + 'x' + h);\n var ratio = w / h;\n var tgetRatio = tgetW / tgetH;\n if (tgetRatio > ratio) {\n // crop vertically\n var f = tgetW / w;\n tgetH = f * h;\n ctx.drawImage(el, 0, .5 * (-tgetH + cnvH), cnvW, tgetH);\n }\n else {\n // crop horizontally\n var f = tgetH / h;\n tgetW = f * w;\n ctx.drawImage(el, -Math.abs(.5 * (-tgetW + cnvW)), 0, tgetW, cnvH);\n }\n }\n static get _domURL() {\n return window.URL || window['webkitURL'] || window;\n }\n /**\n * Snapshots a DOM element and returns its blob image representation.\n * @param el Element to snapshot\n * @param background Background color to replace the original\n * @param type Output mimetype (image/png, image/jpeg, images/webp, ...)\n * @param quality Quality ratio between 0..1\n */\n static snapshotElement(el, background, type = 'image/png', quality) {\n function drawCanvas(img) {\n return new Promise((resolve, reject) => {\n const canvas = document.createElement('canvas'), width = img.width, height = img.height;\n if (!(width > 0)) {\n reject('Image has width zero.');\n }\n else if (!(height > 0)) {\n reject('Image has height zero.');\n }\n else {\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n if (!Utils.isNullOrEmpty(background)) {\n ctx.fillStyle = background;\n ctx.fillRect(0, 0, width, height);\n }\n ctx.drawImage(img, 0, 0);\n canvas.toBlob(b => {\n resolve(b);\n }, type, quality);\n }\n });\n }\n if (el instanceof HTMLCanvasElement) {\n return drawCanvas(el);\n }\n return new Promise((resolve, _) => {\n const loadPromises = [];\n //#region utils functions\n function addLoadPromise(img) {\n const p = new Promise((resolve0, _) => {\n const getSrc = () => {\n return img instanceof HTMLImageElement ? img.src : img.href.baseVal;\n };\n const setSrc = (src) => {\n if (img instanceof HTMLImageElement)\n img.src = src;\n else {\n img.setAttribute('href', src);\n }\n };\n fetch(getSrc())\n .then(r => r.blob())\n .then(blob => Utils.blobToDataURL(blob))\n .then(url => {\n setSrc(url);\n resolve0();\n });\n });\n loadPromises.push(p);\n }\n function copyCanvas(copy, srcCanvas) {\n const p = new Promise((resolve0, _) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.width = srcCanvas.width;\n img.height = srcCanvas.height;\n img.style.cssText = copy.style.cssText;\n img.onload = () => {\n copy.replaceWith(img);\n resolve0();\n };\n img.src = srcCanvas.toDataURL();\n });\n loadPromises.push(p);\n }\n function applyCss(copy, src) {\n const css = getComputedStyle(src);\n for (let j = 0; j < css.length; j++) {\n const item = css.item(j);\n copy.style[item] = css[item];\n }\n }\n function recSetupCopy(copy, src) {\n // assign css text\n applyCss(copy, src);\n // bitmaps\n if (copy instanceof HTMLImageElement || copy instanceof SVGImageElement) {\n addLoadPromise(copy);\n }\n else if (copy instanceof HTMLCanvasElement) {\n copyCanvas(copy, src);\n }\n // recursion\n const childLength = copy.children.length;\n for (let i = 0; i < childLength; i++) {\n const copy1 = copy.children.item(i), src1 = src.children.item(i);\n if (copy1.tagName === src1.tagName) {\n recSetupCopy(copy1, src1);\n }\n }\n }\n //#endregion\n const isSvg = el instanceof SVGElement;\n if (!isSvg) {\n var doc = document.implementation.createHTMLDocument('');\n doc.write(el.outerHTML);\n doc.documentElement.setAttribute('xmlns', doc.documentElement.namespaceURI);\n const xpath = document.evaluate(\".//\" + el.localName, doc.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n const node = xpath;\n node.setAttribute('xmlns', doc.documentElement.namespaceURI);\n recSetupCopy(node, el);\n Promise.all(loadPromises).then(_ => {\n // Get well-formed markup\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", 'svg');\n const size = Utils.offset(el);\n svg.setAttribute('viewBox', `0 0 ${size.width} ${size.height}`);\n svg.setAttribute('width', size.width.toString());\n svg.setAttribute('height', size.height.toString());\n svg.innerHTML = `<foreignObject width=\"${size.width}\" height=\"${size.height}\">${node.outerHTML}</foreignObject>`;\n el = svg;\n execute();\n });\n }\n else {\n const svg = el.cloneNode(true);\n recSetupCopy(svg, el);\n Promise.all(loadPromises).then(_ => {\n el = svg;\n execute();\n });\n }\n function execute() {\n const data = new XMLSerializer().serializeToString(el);\n const img = new Image();\n img.crossOrigin = 'anonymous';\n // switching from blob to data url (see: https://bugs.chromium.org/p/chromium/issues/detail?id=294129)\n //const domURL = this._domURL;\n //var svg = new Blob([data], { type: 'image/svg+xml' });\n //var url = domURL.createObjectURL(svg);\n const url = 'data:image/svg+xml;charset=utf8,' + encodeURIComponent(data);\n img.onload = () => {\n drawCanvas(img).then(resolve);\n //domURL.revokeObjectURL(url);\n };\n img.src = url;\n }\n });\n }\n static async download(arg0, arg1, mime = \"application/download\") {\n if (typeof arg0 === 'string') {\n const url = arg0;\n let options = {}, filename;\n if (!Utils.isNullOrEmpty(arg1)) {\n if (typeof arg1 === 'object') {\n options = { credentials: arg1.credentials, headers: arg1.headers };\n filename = arg1.filename || filename;\n mime = arg1.mime || mime;\n }\n else {\n filename = arg1;\n }\n }\n var response = await fetch(url, options);\n if (response.ok) {\n if (Utils.isNullOrEmpty(filename)) {\n const headerName = 'Content-Disposition';\n if (response.headers.has(headerName)) {\n const header = response.headers.get(headerName), results = /^attachment; filename=\\\"?([^;\\\"]+)\\\"?(;|$)/.exec(header);\n if (results.length > 1) {\n filename = results[1];\n }\n }\n else {\n filename = DEFAULT_DOWNLOAD_FILENAME;\n }\n }\n var blob = await response.blob();\n const fn = filename.split(/[\\\\\\/]/g).join('_');\n return Utils.download(blob, fn);\n }\n {\n const reason = await response.text();\n throw new Error(reason);\n }\n }\n else {\n const content = arg0, filename = (typeof arg1 === 'string' && arg1) || DEFAULT_DOWNLOAD_FILENAME, fanchor = document.createElement('a');\n fanchor.setAttribute('href', Utils._domURL.createObjectURL(content));\n fanchor.setAttribute('download', filename);\n if (document.createEvent) {\n var event = document.createEvent('MouseEvents');\n event.initEvent('click', true, true);\n fanchor.dispatchEvent(event);\n }\n else {\n fanchor.click();\n }\n }\n }\n // #endregion\n // #region DOM\n static isDOMReady() {\n // Must exclude 'interactive' state since module script haven't been processed yet.\n return /* document.readyState === 'interactive' ||*/ document.readyState === 'complete';\n }\n static onDOMReady(listener) {\n //window.addEventListener('DOMContentLoaded', listener, false);\n // window 'load' event fires after 'DOMCOntentLoaded' since includes images load.\n window.addEventListener('load', listener, false);\n }\n /**\n * Moves all the source element children to the target element and returns them as an array of nodes.\n * @param source Source element.\n * @param target Target element.\n */\n static moveChildren(source, target) {\n return Utils.moveItems(source.childNodes, target);\n }\n /**\n * Moves specific nodes to the target element and returns them as an array of nodes.\n * @param nodes Nodes to move.\n * @param target Target element.\n */\n static moveItems(nodes, target) {\n let dom = [], ref;\n for (let j = nodes.length - 1; j >= 0; j--) {\n let item = nodes instanceof NodeList ? nodes.item(j) : nodes[j];\n target.insertBefore(item, ref);\n dom.unshift(item);\n ref = item;\n }\n return dom;\n }\n static is(el, selector) {\n return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector)\n .call(el, selector);\n }\n static lang(el) {\n return el.lang || document.documentElement.lang || navigator.language;\n }\n static jsonSortStringify(obj) {\n if (Utils.isNull(obj)) {\n return obj;\n }\n return Utils.Json.stringify(obj);\n }\n static { this.Browsers = {\n detect\n }; }\n static cookies(cookie) {\n const cookies = (cookie ?? document.cookie).split(';'), retval = {};\n for (var pair of cookies) {\n const keyval = pair.split('=');\n if (keyval.length < 2) {\n continue;\n }\n const key = (keyval[0] || '').trim(), value = (keyval[1] || '').trim();\n Object.defineProperty(retval, key, {\n configurable: false, enumerable: true, writable: false,\n value: decodeURIComponent(value.split('+').join(' '))\n });\n }\n return retval;\n }\n static { this.Cookies = {\n getAll: async (cookieName) => {\n const store = 'cookieStore' in window ? window.cookieStore : null;\n const retval = [];\n if (Utils.isNull(store)) {\n const nameValues = Utils.cookies();\n for (let name in nameValues) {\n if (!Utils.isNullOrEmpty(cookieName) && cookieName !== name) {\n continue;\n }\n retval.push({ name, value: nameValues[name] });\n }\n return retval;\n }\n else {\n return await store.getAll(cookieName);\n }\n },\n stringify: (data) => {\n let retval = `${data.name}=${encodeURIComponent(data.value ?? '')}`;\n if (!Utils.isNullOrEmpty(data.domain)) {\n retval += `; domain=${encodeURIComponent(data.domain)}`;\n }\n if (!Utils.isNullOrEmpty(data.path)) {\n retval += `; path=${encodeURIComponent(data.path)}`;\n }\n if (data.maxAge > 0) {\n retval += `; max-age=${data.maxAge.toFixed(0)}`;\n }\n if (!Utils.isNullOrEmpty(data.expires)) {\n retval += `; expires=${data.expires}`;\n }\n if (data.partitioned) {\n retval += '; Partitioned';\n }\n if (!Utils.isNullOrEmpty(data.sameSite)) {\n retval += `; SameSite=${encodeURIComponent(data.sameSite)}`;\n }\n if (data.secure) {\n retval += '; Secure';\n }\n return retval;\n }\n }; }\n static isVisible(el) {\n if ('checkVisibility' in el) {\n return el.checkVisibility({ checkOpacity: true, checkVisibilityCSS: true });\n }\n return getComputedStyle(el).visibility !== 'hidden' && (el.clientWidth > 0 || el.clientHeight > 0);\n }\n //#region classList DOMTokenList (css)\n static hasClass(el, className) {\n if (el.classList) {\n return el.classList.contains(className);\n }\n else {\n return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);\n }\n }\n static addClass(el, className) {\n const css = className.trim();\n if (el.classList) {\n DOMTokenList.prototype.add.apply(el.classList, css.split(' '));\n }\n else {\n el.setAttribute('class', el.className + ' ' + css);\n }\n }\n static removeClass(el, className) {\n const css = className.trim();\n if (el.classList) {\n DOMTokenList.prototype.remove.apply(el.classList, css.split(' '));\n }\n else {\n el.setAttribute('class', el.className.replace(new RegExp('(^|\\\\b)' + css.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' '));\n }\n }\n static toggleClass(el, className, on) {\n if (on) {\n Utils.addClass(el, className);\n }\n else {\n Utils.removeClass(el, className);\n }\n }\n //#endregion\n //#region part DOMTokenList (shadow-DOM)\n static hasPart(el, partName) {\n return el.part.contains(partName);\n }\n static addPart(el, partName) {\n DOMTokenList.prototype.add.apply(el.part, partName.trim().split(' '));\n }\n static removePart(el, partName) {\n DOMTokenList.prototype.remove.apply(el.part, partName.trim().split(' '));\n }\n static togglePart(el, partName, on) {\n if (on) {\n Utils.addPart(el, partName);\n }\n else {\n Utils.removePart(el, partName);\n }\n }\n //#endregion\n /**\n * Retrieve the bounding box of the provided element as of its rendered appearance on the stage (takes transformations into account).\n * @param el The element.\n */\n static offset(el) {\n var rect = el.getBoundingClientRect();\n return {\n top: Math.round(rect.top) + Utils.scrollTop,\n left: Math.round(rect.left) + Utils.scrollLeft,\n width: Math.round(rect.width),\n height: Math.round(rect.height)\n };\n }\n /**\n * Retrieve the bounding box of the provided element as of its rendered appearance on the stage (takes transformations into account).\n * @param el The element.\n */\n static offsetRect(el) {\n var rect = this.offset(el);\n return {\n y: rect.top,\n x: rect.left,\n width: rect.width,\n height: rect.height\n };\n }\n static naturalOffsetTop(el) {\n return (el?.offsetTop ?? 0) + ((el?.offsetParent && el.offsetParent instanceof HTMLElement) ? this.naturalOffsetTop(el.offsetParent) : 0);\n }\n static naturalOffsetLeft(el) {\n return (el?.offsetTop ?? 0) + ((el?.offsetParent && el.offsetParent instanceof HTMLElement) ? this.naturalOffsetLeft(el.offsetParent) : 0);\n }\n /**\n * Retrieve the natural bounding box of the provided element (does not takes transformations into account).\n * @param el {HTMLElement} The element.\n */\n static naturalOffset(el) {\n return { left: this.naturalOffsetLeft(el), top: this.naturalOffsetTop(el), width: el?.offsetWidth ?? 0, height: el?.offsetHeight ?? 0 };\n }\n /**\n * Retrieve the natural bounding box of the provided element (does not takes transformations into account).\n * @param el {HTMLElement} The element.\n */\n static naturalOffsetRect(el) {\n var rect = this.naturalOffset(el);\n return {\n y: rect.top,\n x: rect.left,\n width: rect.width,\n height: rect.height\n };\n }\n /** @deprecated */\n static deserializeTransform(obj) {\n return Utils.Css.deserializeTransform(obj);\n }\n static set scrollTop(y) {\n window.scrollTo(Utils.scrollLeft, y);\n }\n static set scrollLeft(x) {\n window.scrollTo(x, Utils.scrollTop);\n }\n static get scrollTop() {\n return window.scrollY /*window.pageYOffset*/ || document.documentElement.scrollTop || document.body.scrollTop || 0;\n }\n static get scrollLeft() {\n return window.scrollX /*window.pageXOffset*/ || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n }\n static get windowSize() {\n let win = window;\n return {\n width: win.innerWidth || win.document.documentElement.clientWidth || win.document.body.clientWidth || 0,\n height: win.innerHeight || win.document.documentElement.clientHeight || win.document.body.clientHeight || 0\n };\n }\n /**\n * Adds a callback at the end of a CSS animation/transition for a given element (execute once).\n * @param element The very element that has to trigger the animation/transitionend event.\n * @param callback Then callback.\n * @param timeout Fallback timeout (ms) in case the animation/transitionend event won't fire.\n */\n static addAnimationEndCallback(element, callback, timeout = 500) {\n const fn = (e) => {\n if (!e || e.target == element) {\n clearTimeout(handle);\n element.removeEventListener('animationend', fn, false);\n element.removeEventListener('transitionend', fn, false);\n callback.apply(this, [element]);\n }\n };\n element.addEventListener('animationend', fn, false);\n element.addEventListener('transitionend', fn, false);\n // fallback in case animation is missing\n const handle = setTimeout(fn, timeout);\n }\n /**\n * Promisifies the addAnimationEndCallback function.\n * @param element The very element that has to trigger the animation/transitionend event.\n * @param timeout Fallback timeout (ms) in case the animation/transitionend event won't fire.\n */\n static waitForAnimationEnd(element, timeout = 500) {\n return new Promise((resolve, _) => {\n Utils.addAnimationEndCallback(element, () => {\n resolve();\n }, timeout);\n });\n }\n /**\n * Waits until the provided timespan elapses.\n * @param msecs timespan in milliseconds\n */\n static idle(msecs) {\n return new Promise((resolve, _) => {\n setTimeout(() => resolve(), msecs);\n });\n }\n /**\n * Increases a callback loop call until cancelation is called.\n * @param callback Callback looped.\n * @param interval First callback call delay in ms (default 500).\n * @param pace Acceleration in ms per loop (default 5).\n * @param min Minimum loop rate in ms (default 20).\n *\n * Use case/example: while keeping a button pressed, the related callback execution increases in frequency.\n */\n static accelerateCallback(callback, interval = 500, pace = 5, min = 20) {\n let token = { cancel: false }, int = interval, last = pace + min;\n let fn = () => {\n callback(token);\n if (!token.cancel) {\n setTimeout(fn, int);\n if (int < last) {\n int = min;\n }\n else {\n int -= pace;\n }\n }\n };\n fn();\n }\n // #endregion\n // #region other\n static isEmpty(obj) {\n return NullChecker.isEmpty(obj) && !(obj instanceof Node);\n }\n static isNull(obj) {\n return NullChecker.isNull(obj);\n }\n // legacy\n static isArray(val) {\n return Array.isArray(val);\n }\n static isNullOrEmpty(val) {\n return Utils.isNull(val) || Utils.isEmpty(val);\n }\n /**\n * It is a `valueOf()` based comparison.\n * @param v1 term 1\n * @param v2 term 2\n */\n static areSemanticallyEqual(v1, v2) {\n // undefined and null are semantically equal\n v1 ??= null;\n v2 ??= null;\n const sv1 = v1 && v1.valueOf && v1.valueOf();\n const sv2 = v2 && v2.valueOf && v2.valueOf();\n return sv1 === sv2;\n }\n /** Legacy alias for Object.assign(). */\n static { this.extend = Object.assign; }\n static clone(obj) {\n if (obj === undefined)\n return undefined;\n return DeepCloner.clone(obj);\n }\n /** Legacy alias for Promise.resolve(). */\n static fromResult(v) {\n return Promise.resolve(v);\n }\n static fromResultAsync(task) {\n return new Promise(resolve => requestAnimationFrame(() => resolve(task())));\n }\n static readonlyCopy(obj) {\n if (Utils.isNull(obj)) {\n return null;\n }\n if (Utils.isArray(obj)) {\n const output = obj.slice(0);\n Object.freeze(output);\n return output;\n }\n else {\n const output = {};\n for (let name in obj) {\n output[name] = obj[name];\n }\n Object.freeze(output);\n return output;\n }\n }\n //#endregion\n //#region Net\n static { this.URIs = {\n format: function (url, parameters, removeMatchedParameters) {\n // replace segments\n for (let name in parameters || {}) {\n let tmpl = new RegExp(\"(^|\\\\/)\\\\{\" + name + \"\\\\??\\\\}(\\\\/|$)\");\n let arr = tmpl.exec(url);\n if (arr && arr.length) {\n let rpl = new RegExp(\"\\\\{\" + name + \"\\\\??\\\\}\"), ndx = arr.index;\n url = url.substring(0, ndx) + url.substring(ndx).replace(rpl, encodeURIComponent(parameters[name]));\n if (removeMatchedParameters) {\n delete parameters[name];\n }\n }\n }\n // clean-up optional\n const optPattern = /(^|\\/)\\{[\\w]+\\?\\}(\\/|$)/;\n var optArr;\n while ((optArr = optPattern.exec(url)) && optArr.length > 0) {\n let wholeMatch = optArr[0];\n url = url.replace(wholeMatch, wholeMatch.endsWith('/') ? \"/\" : \"\");\n }\n return url;\n },\n appendQuery: function (url, parameters, removeNullEntries = false, hash = false) {\n const char = hash ? '#' : '?', pattern = hash ? /#/ : /\\?/;\n const query = (pattern.test(url) ? '&' : char) +\n Object.keys(parameters)\n .filter(k => !Utils.isNull(parameters[k]) || !removeNullEntries)\n .map(k => encodeURIComponent(k) + '=' + encodeURIComponent(parameters[k] ?? '')).join('&');\n return url + (query.length > 1 ? query : '');\n },\n parseQuery: (query = window.location) => {\n if (typeof query !== 'string') {\n query = query.search;\n }\n const obj = {};\n new URLSearchParams(query).forEach((value, name) => {\n Object.defineProperty(obj, name, { enumerable: true, value });\n });\n return obj;\n },\n hasMandatoryTemplateSegments: function (url) {\n return /(^|\\/)\\{\\.*\\}(\\/|$)/.test(url);\n },\n parseRoute: function (pathTemplate) {\n let tmpl = pathTemplate;\n const trunks = [];\n if (!Utils.isNullOrEmpty(tmpl)) {\n let res;\n let j = 0;\n while ((res = SEGMENT_PATTERN.exec(tmpl)) != null) {\n const item = res[0];\n const res1 = ROUTE_SEGMENT_PATTERN.exec(item);\n if (!Utils.isNullOrEmpty(res1)) {\n const prop = res1[1];\n trunks.push({ name: prop, optional: item.charAt(item.length - 2) === '?', index: j });\n }\n tmpl = tmpl.substring(res.index + item.length);\n j++;\n }\n }\n return trunks;\n },\n split: function (url) {\n const URL_PATTERN = /^((https?:)?\\/\\/[^\\/]+)?([^\\?#]+)(\\?[^#]*)?(#[^#]*)?$/;\n const regArr = URL_PATTERN.exec(url);\n if (!regArr /*|| regArr.length <= 3*/) {\n return null;\n }\n return { domain: regArr[2] ?? '', protocol: regArr[1] ?? '', path: regArr[3] ?? '', query: regArr[4] ?? '', hash: regArr[5] ?? '' };\n },\n parseState: function (metadata, url, path, query, hash) {\n let fullPath = url;\n if (Utils.isNullOrEmpty(path)) {\n const split = Utils.URIs.split(url);\n path = split.path;\n if (Utils.isNullOrEmpty(query)) {\n query = split.query ?? '';\n }\n if (Utils.isNullOrEmpty(hash)) {\n hash = split.hash ?? '';\n }\n fullPath = path + query + hash;\n }\n const parseHash = (hash) => {\n const ndx = hash.indexOf('#');\n if (ndx !== 0) {\n return null;\n }\n return hash.substring(ndx + 1);\n };\n const parseQuery = (search) => {\n const ndx = search.indexOf('?');\n if (ndx === 0) {\n return Utils.URIs.parseQuery(search.substring(ndx + 1));\n }\n return {};\n };\n let obj = {\n $path: fullPath,\n $pathname: path,\n $querystring: query.length > 0 ? query.substring(1) : query,\n $query: parseQuery(query),\n $hash: parseHash(hash)\n }, i = 0;\n const tmpl = metadata.slice();\n if (!Utils.isNullOrEmpty(tmpl)) {\n let res;\n while ((res = SEGMENT_PATTERN.exec(path)) != null) {\n const v = res[0];\n const tmplIndex = tmpl.findIndex(t => t.index === i);\n if (tmplIndex >= 0) {\n const tmplItem = tmpl[tmplIndex];\n const { name: prop } = tmplItem;\n Object.defineProperty(obj, prop, { enumerable: true, value: v.substring(1) });\n // remove used value\n tmpl.splice(tmplIndex, 1);\n }\n i++;\n path = path.substring(res.index + v.length);\n }\n }\n for (let k = 0; k < tmpl.length; k++) {\n if (!tmpl[k].optional) {\n throw `Must provide \"${tmpl[k].name}\" route value.`;\n }\n }\n return obj;\n }\n }; }\n /**\n * Ensures the proper parsing of Web API results, including deprecated/legacy Pacem wrapped results.\n */\n static getApiResult(json) {\n if (typeof json === 'object'\n && !Utils.isNull(json)\n && json.hasOwnProperty('success')) {\n switch (json.success) {\n case true:\n if (json.hasOwnProperty('result')) {\n return json.result;\n }\n break;\n case false:\n if (json.hasOwnProperty('error')) {\n return null;\n }\n break;\n }\n }\n return json;\n }\n}\n// }\n","import { Utils } from './utils';\nexport var EventKeyModifier;\n(function (EventKeyModifier) {\n EventKeyModifier[\"AltKey\"] = \"Alt\";\n EventKeyModifier[\"CtrlKey\"] = \"Ctrl\";\n EventKeyModifier[\"ShiftKey\"] = \"Shift\";\n EventKeyModifier[\"MetaKey\"] = \"Cmd\";\n})(EventKeyModifier || (EventKeyModifier = {}));\nexport class CustomEventUtils {\n static isInstanceOf(evt, type) {\n return evt instanceof type;\n // || CustomElementUtils.getAttachedPropertyValue(evt, 'pacem:custom-event') === evt.type;\n }\n static getEventCoordinates(evt) {\n var src;\n if ('touches' in evt) {\n if (!Utils.isNullOrEmpty(evt.touches)) {\n src = evt.touches[0];\n }\n else if (!Utils.isNullOrEmpty(evt.changedTouches)) {\n src = evt.changedTouches[0];\n }\n }\n else {\n src = evt;\n }\n return {\n page: { x: src.pageX, y: src.pageY },\n screen: { x: src.screenX, y: src.screenY },\n client: { x: src.clientX, y: src.clientY }\n };\n }\n static getEventKeyModifiers(evt) {\n var which = evt.which;\n if (evt instanceof MouseEvent) {\n which = evt.button;\n }\n return {\n which: which, shiftKey: evt.shiftKey, altKey: evt.altKey, ctrlKey: evt.ctrlKey, metaKey: evt.metaKey\n };\n }\n static matchModifiers(evt, ...args) {\n const modifiers = !Utils.isNull(args) && (args.length === 1 && Utils.isArray(args[0]) ? args[0] : Array.from(args).filter(i => !Utils.isNullOrEmpty(i))), lowerCaseModifiers = (modifiers || []).map(i => i.toLowerCase());\n const altKey = lowerCaseModifiers.indexOf('alt') >= 0 || lowerCaseModifiers.indexOf('option') >= 0, shiftKey = lowerCaseModifiers.indexOf('shift') >= 0, ctrlKey = lowerCaseModifiers.indexOf('ctrl') >= 0, metaKey = lowerCaseModifiers.indexOf('win') >= 0 || lowerCaseModifiers.indexOf('cmd') >= 0;\n if (altKey !== evt.altKey\n || shiftKey !== evt.shiftKey\n || metaKey !== evt.metaKey\n || ctrlKey !== evt.ctrlKey) {\n return false;\n }\n return true;\n }\n static fixEdgeCustomEventSubClassInstance(evt, type) {\n // this an optimistic BUGGED workaround due to a damn' Edge bug: https://github.com/Microsoft/ChakraCore/issues/3952\n if (!(evt instanceof type)) {\n Object.setPrototypeOf(evt, type);\n }\n }\n}\n//}\n","/// <reference path=\"utils-customevent.ts\" />\nimport { Utils } from './utils';\nimport { CustomEventUtils } from './utils-customevent';\n// namespace Pacem {\nexport class CustomTypedEvent extends CustomEvent /* new in TypeScript v2.7.1 -> */ {\n constructor(type, detail, eventInit) {\n super(type, Utils.extend({ detail: detail }, eventInit || {}));\n CustomEventUtils.fixEdgeCustomEventSubClassInstance(this, this.constructor);\n }\n}\nfunction isEventInit(obj) {\n if ('detail' in obj) {\n // must provide a detail\n for (let prop in obj) {\n if (prop !== 'bubbles' && prop !== 'cancelable' && prop !== 'composed' && prop !== 'detail') {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n// TODO: make inherit from CustomTypedEvent\nexport class CustomUIEvent extends CustomEvent {\n constructor(type, detail, eventInit, orig) {\n super(type, Utils.extend((isEventInit(detail || {}) ? detail : { detail: detail }), (!(eventInit instanceof Event) && eventInit) || {}));\n const originalEvent = orig || eventInit;\n if (originalEvent instanceof Event) {\n this.#originalEvent = originalEvent;\n this.#modifiers = CustomEventUtils.getEventKeyModifiers(originalEvent);\n if (originalEvent instanceof MouseEvent || originalEvent instanceof TouchEvent) {\n this.#coords = CustomEventUtils.getEventCoordinates(originalEvent);\n }\n }\n CustomEventUtils.fixEdgeCustomEventSubClassInstance(this, this.constructor);\n }\n #originalEvent;\n #modifiers;\n #coords;\n get originalEvent() {\n return this.#originalEvent;\n }\n get which() {\n return this.#modifiers?.which;\n }\n get altKey() {\n return this.#modifiers?.altKey;\n }\n get shiftKey() {\n return this.#modifiers?.shiftKey;\n }\n get ctrlKey() {\n return this.#modifiers?.ctrlKey;\n }\n get metaKey() {\n return this.#modifiers?.metaKey;\n }\n get pageX() {\n return this.#coords?.page.x;\n }\n get pageY() {\n return this.#coords?.page.y;\n }\n get clientX() {\n return this.#coords?.client.x;\n }\n get clientY() {\n return this.#coords?.client.y;\n }\n get screenX() {\n return this.#coords?.screen.x;\n }\n get screenY() {\n return this.#coords?.screen.y;\n }\n}\nexport const AttributeChangeEventName = 'attributechange';\nexport class AttributeChangeEvent extends CustomTypedEvent {\n constructor(args) {\n super(AttributeChangeEventName, args);\n }\n}\nexport const PropertyChangeEventName = 'propertychange';\nexport class PropertyChangeEvent extends CustomTypedEvent {\n constructor(args) {\n super(PropertyChangeEventName, args);\n }\n}\n//}\n","import { CustomTypedEvent } from '../events';\nexport class AnimationEvent extends CustomTypedEvent {\n constructor(args) {\n super(\"step\", args);\n }\n}\nexport class AnimationEndEvent extends CustomEvent {\n constructor() {\n super('end');\n }\n}\nexport class AnimationStartEvent extends CustomEvent {\n constructor() {\n super('start');\n }\n}\n//}\n","//namespace Pacem.Animations {\nimport { Easings } from './easings';\nexport class TweenService {\n run(from, to, duration, delay = 0, easing = Easings.linear, callback = null) {\n return new Promise((resolve, _) => {\n const now = (performance && performance.now()) || Date.now();\n const start = now + Math.abs(delay || 0);\n const end = start + Math.abs(duration || 0);\n //\n const fn = () => {\n const t = (performance && performance.now()) || Date.now();\n if (t >= start && t < end) {\n const ct = (t - start) / duration;\n const v = from + (easing || Easings.linear)(ct) * (to - from);\n if (callback) {\n callback(ct, v);\n }\n }\n if (t < end) {\n requestAnimationFrame(fn);\n }\n else {\n if (callback) {\n callback(1.0, to);\n }\n resolve();\n }\n };\n fn();\n });\n }\n}\n//}\n","// namespace Pacem.Animations {\nexport class Timer {\n #fps;\n #callback;\n #handle;\n constructor(callback, fps) {\n this.#then = 0;\n this._run = (t) => {\n this.#handle = requestAnimationFrame(this._run);\n const now = performance.now(), fps = this.#fps;\n const delta = now - this.#then;\n if (delta >= fps) {\n this.#then = now - (delta % fps);\n this.#callback(t);\n }\n };\n this.#fps = 1000 / fps;\n this.#callback = callback;\n this.#handle = requestAnimationFrame(this._run);\n }\n #then;\n static run(callback, fps = 60) {\n return new Timer(callback, fps);\n }\n stop() {\n cancelAnimationFrame(this.#handle);\n }\n}\n;\n// }\n","//namespace Pacem.Net {\nexport var HttpMethod;\n(function (HttpMethod) {\n HttpMethod[\"Get\"] = \"GET\";\n HttpMethod[\"Post\"] = \"POST\";\n HttpMethod[\"Put\"] = \"PUT\";\n HttpMethod[\"Delete\"] = \"DELETE\";\n HttpMethod[\"Options\"] = \"OPTIONS\";\n HttpMethod[\"Head\"] = \"HEAD\";\n HttpMethod[\"Patch\"] = \"PATCH\";\n HttpMethod[\"Connect\"] = \"CONNECT\";\n HttpMethod[\"Trace\"] = \"TRACE\";\n})(HttpMethod || (HttpMethod = {}));\nexport const FetchResultEventName = 'fetchresult';\nexport const FetchErrorEventName = 'error';\nexport const FetchSuccessEventName = 'success';\nexport class Fetcher {\n static isEmpty(r) {\n return r.status === 204 || r.headers.get(\"Content-Length\") === \"0\";\n }\n}\n//}\n","/// <reference path=\"../promise.ts\" />\nimport { DeferPromise } from '../promise';\nimport { HttpMethod } from './fetcher';\n// namespace Pacem.Net {\nconst noop = () => { };\nexport class StatusCodeError extends Error {\n constructor(statusCode, statusText) {\n super(statusText);\n this.statusCode = statusCode;\n }\n get status() {\n return this.statusCode;\n }\n}\n/** @deprecated */\nexport class Response {\n constructor(req, processTime) {\n if (!req)\n return;\n this._status = req.status;\n this._body = req.response;\n this._text = req.responseText;\n this._type = req.responseType;\n this._allHeadersRaw = req.getAllResponseHeaders();\n this._processTime = processTime;\n }\n get processTime() {\n return this._processTime;\n }\n get headers() {\n if (this._headers === undefined && this._allHeadersRaw)\n this._parseHeaders();\n return this._headers;\n }\n get size() {\n return +this.headers['Content-Length'];\n }\n get mime() {\n return this.headers['Content-Type'];\n }\n get date() {\n return new Date(Date.parse(this.headers['Date']));\n }\n _parseHeaders() {\n let headers = {}, rows = this._allHeadersRaw.split('\\r\\n');\n rows.forEach(r => {\n if (r && r.length) {\n let index = r.indexOf(':');\n let key = r.substr(0, index).trim();\n let value = r.substr(index + 1).trim();\n headers[key] = value;\n }\n });\n this._headers = headers;\n }\n get status() { return this._status; }\n get text() { return this._text; }\n get content() { return this._body; }\n get type() { return this._type; }\n /**\n * Short-hand utility for getting or parsing json content (if any).\n */\n get json() {\n if (this._type === 'json')\n return this._body;\n else\n try {\n return JSON.parse(this._text);\n }\n catch (e) {\n return undefined;\n }\n }\n}\n/** @deprecated */\nexport class Http {\n constructor() { }\n /**\n * Executes an asynchronous XMLHttpRequest over the net.\n * @param {String} url - Base url to be requested.\n * @param {Object} [options] - Options for the request.\n * @param {Object} [options.data] - Data to be sent along.\n * @param {String} [options.method=GET] - HTTP Verb to be used.\n * @param {Object} [options.headers] - Key-value pairs of strings.\n * @param {Function} [options.progress] - Callback on retrieval progress.\n */\n request(url, options) {\n var _this = this;\n let deferred = DeferPromise.defer();\n options = options || { method: HttpMethod.Get };\n var method = options.method || HttpMethod.Get;\n var data = options.data || {};\n var progress = options.progress || noop;\n var headers = options.headers || {};\n if (_this.accessToken)\n headers['Authorization'] = 'Bearer ' + _this.accessToken;\n var req = new XMLHttpRequest();\n // send cookies?\n req.withCredentials = false;\n //\n req.addEventListener(\"progress\", (evt) => {\n if (evt.lengthComputable) {\n var pct = evt.loaded / evt.total;\n // callback\n if (typeof progress === 'function')\n progress.apply(_this, [pct]);\n }\n }, false);\n req.addEventListener(\"error\", (err) => {\n // Network error occurred\n deferred.reject(new StatusCodeError(500, err['message'] || 'Unknown error'));\n }, false);\n //req.addEventListener(\"abort\", transferCanceled, false);\n var stopWatch;\n req.addEventListener('load', () => {\n if (req.status >= 200 && req.status < 300) {\n // Resolve the promise with the response\n var response = new Response(req, Date.now() - stopWatch);\n deferred.resolve(response);\n }\n else\n deferred.reject(new StatusCodeError(req.status, req.statusText));\n }, false);\n var params;\n switch (method.toUpperCase()) {\n case HttpMethod.Get:\n url += (/\\?/.test(url) ? '&' : '?') + (typeof data == 'string' ? data : Object.keys(data).map(function (k) { return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]); }).join('&'));\n break;\n case HttpMethod.Post:\n params = JSON.stringify(data);\n }\n //\n req.open(method, url, true);\n switch (method.toUpperCase()) {\n case HttpMethod.Get:\n req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n break;\n case HttpMethod.Post:\n req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n req.setRequestHeader('Content-Type', 'application/json');\n break;\n }\n for (var kvp in headers) {\n req.setRequestHeader(kvp, headers[kvp]);\n }\n //\n stopWatch = Date.now();\n req.send(params);\n return deferred.promise;\n }\n /**\n * Short-hand for 'GET' requests.\n */\n get(url, data, headers) {\n return this.request(url, { 'method': HttpMethod.Get, 'data': data, 'headers': headers || {} });\n }\n /**\n * Short-hand for 'POST' requests (content provided as json).\n */\n post(url, data, headers) {\n return this.request(url, { 'method': HttpMethod.Post, 'data': data, 'headers': headers || {} });\n }\n}\n//}\n","import { Point } from '@pacem/pacem-foundation';\nimport { Utils } from '../utils';\nimport { CustomUIEvent } from '../events';\n//namespace Pacem.UI {\nexport var DragDataMode;\n(function (DragDataMode) {\n /** Source element is dragged around (floater is the element itself so is the data). */\n DragDataMode[\"Self\"] = \"self\";\n /** The floater is an element clone, while data is the element itself. */\n DragDataMode[\"Alias\"] = \"alias\";\n /** The floater is a clone of the element, while data is a copy of it. */\n DragDataMode[\"Copy\"] = \"copy\";\n})(DragDataMode || (DragDataMode = {}));\nexport var DropBehavior;\n(function (DropBehavior) {\n /** Drag & drop task is meant to sort or swap items around. */\n DropBehavior[\"InsertChild\"] = \"insert\";\n /** Drag & drop task has no logical meaning. Event listeners might be in charge for a specific scenario. */\n DropBehavior[\"None\"] = \"none\";\n})(DropBehavior || (DropBehavior = {}));\nexport var DropTargetMissedBehavior;\n(function (DropTargetMissedBehavior) {\n /** Reverts to the last tracked spot. */\n DropTargetMissedBehavior[\"Revert\"] = \"revert\";\n /** Deletes item on spill-out. */\n DropTargetMissedBehavior[\"Remove\"] = \"remove\";\n /** No explicit behavior, might fallback to 'revert' when drop behavior is 'insert'. */\n DropTargetMissedBehavior[\"None\"] = \"none\";\n})(DropTargetMissedBehavior || (DropTargetMissedBehavior = {}));\nexport var DragDropEventType;\n(function (DragDropEventType) {\n /** Initial state change before first dragging act. */\n DragDropEventType[\"Init\"] = \"draginit\";\n /** First dragging act. */\n DragDropEventType[\"Start\"] = \"dragstart\";\n /** Any dragging act. */\n DragDropEventType[\"Drag\"] = \"drag\";\n /** Dropping act. */\n DragDropEventType[\"Drop\"] = \"drop\";\n /** Hovering a drop target. */\n DragDropEventType[\"Over\"] = \"dragover\";\n /** Exiting a drop target. */\n DragDropEventType[\"Out\"] = \"dragout\";\n /** Terminating the drag-drop activities. */\n DragDropEventType[\"End\"] = \"dragend\";\n})(DragDropEventType || (DragDropEventType = {}));\nclass DragDropEventArgsBaseClass {\n constructor(_builder) {\n this._builder = _builder;\n this.currentPosition = _builder.currentPosition;\n this.target = _builder.target;\n }\n get element() {\n return this._builder.element;\n }\n get origin() {\n return this._builder.origin;\n }\n get initialDelta() {\n return this._builder.initialDelta;\n }\n get startTime() {\n return this._builder.startTime;\n }\n get floater() {\n return this._builder.floater;\n }\n get delta() {\n var args = this;\n return Point.add(args.initialDelta, /* included in `initialDelta` for perf sake => { x: this._builder.scroll.left, y: this._builder.scroll.top },*/ Point.subtract(args.origin, args.currentPosition));\n }\n}\nexport class DragDropInitEventArgsClass extends DragDropEventArgsBaseClass {\n constructor(_builder) {\n super(_builder);\n this.placeholder = _builder.placeholder;\n this.data = _builder.data;\n }\n static fromArgs(builder) {\n return new DragDropInitEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class DragDropEventArgsClass extends DragDropEventArgsBaseClass {\n constructor(_builder, _placeholder = _builder.placeholder, _data = _builder.data) {\n super(_builder);\n this._placeholder = _placeholder;\n this._data = _data;\n }\n get placeholder() {\n return this._placeholder;\n }\n get data() {\n return this._data;\n }\n static fromArgs(builder) {\n return new DragDropEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class DragDropEvent extends CustomUIEvent {\n constructor(type, args, eventInit, evt) {\n super(type, args, eventInit, evt);\n }\n}\n//}\n","import { Utils } from '../utils';\nimport { CustomUIEvent } from '../events';\n//namespace Pacem.UI {\nexport var RescaleHandle;\n(function (RescaleHandle) {\n RescaleHandle[\"All\"] = \"all\";\n RescaleHandle[\"Top\"] = \"top\";\n RescaleHandle[\"Left\"] = \"left\";\n RescaleHandle[\"Right\"] = \"right\";\n RescaleHandle[\"Bottom\"] = \"bottom\";\n})(RescaleHandle || (RescaleHandle = {}));\nexport var RescaleEventType;\n(function (RescaleEventType) {\n RescaleEventType[\"Start\"] = \"rescalestart\";\n RescaleEventType[\"Rescale\"] = \"rescale\";\n RescaleEventType[\"End\"] = \"rescaleend\";\n})(RescaleEventType || (RescaleEventType = {}));\nexport class RescaleEventArgsClass {\n constructor(_builder) {\n this._builder = _builder;\n }\n get currentPosition() {\n return this._builder.currentPosition;\n }\n get targetRect() {\n return this._builder.targetRect;\n }\n get element() {\n return this._builder.element;\n }\n get handle() {\n return this._builder.handle;\n }\n static fromArgs(builder) {\n return new RescaleEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class RescaleEvent extends CustomUIEvent {\n constructor(type, args, eventInit, evt) {\n super(type, args, eventInit, evt);\n }\n}\n//}\n","import { Utils } from '../utils';\nimport { CustomUIEvent } from '../events';\nexport var RotateEventType;\n(function (RotateEventType) {\n RotateEventType[\"Start\"] = \"rotatestart\";\n RotateEventType[\"Rotate\"] = \"rotate\";\n RotateEventType[\"End\"] = \"rotateend\";\n})(RotateEventType || (RotateEventType = {}));\nexport class RotateEventArgsClass {\n constructor(_builder) {\n this._builder = _builder;\n }\n get currentPosition() {\n return this._builder.currentPosition;\n }\n get rotation() {\n return this._builder.rotation;\n }\n get element() {\n return this._builder.element;\n }\n get center() {\n return this._builder.center;\n }\n static fromArgs(builder) {\n return new RotateEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class RotateEvent extends CustomUIEvent {\n constructor(type, args, eventInit, evt) {\n super(type, args, eventInit, evt);\n }\n}\n//}\n","import { Utils } from '../utils';\nimport { CustomTypedEvent } from '../events';\nexport var SwipeEventType;\n(function (SwipeEventType) {\n SwipeEventType[\"Swipe\"] = \"swipe\";\n SwipeEventType[\"Pan\"] = \"pan\";\n SwipeEventType[\"SwipeLeft\"] = \"swipeleft\";\n SwipeEventType[\"SwipeRight\"] = \"swiperight\";\n SwipeEventType[\"SwipeUp\"] = \"swipeup\";\n SwipeEventType[\"SwipeDown\"] = \"swipedown\";\n // end of swipe animation\n SwipeEventType[\"SwipeAnimationEnd\"] = \"swipeanimationend\";\n SwipeEventType[\"SwipeLeftAnimationEnd\"] = \"swipeleftanimationend\";\n SwipeEventType[\"SwipeRightAnimationEnd\"] = \"swiperightanimationend\";\n SwipeEventType[\"SwipeUpAnimationEnd\"] = \"swipeupanimationend\";\n SwipeEventType[\"SwipeDownAnimationEnd\"] = \"swipedownanimationend\";\n})(SwipeEventType || (SwipeEventType = {}));\nexport class SwipeEventArgsClass {\n constructor(_builder) {\n this._builder = _builder;\n }\n get #isVertical() {\n const { verticalspeed, horizontalspeed, vertical } = this._builder;\n const isVertical = vertical ?? (Math.abs(horizontalspeed) < Math.abs(verticalspeed));\n return isVertical;\n }\n get direction() {\n return this.#isVertical\n ? (this._builder.verticalspeed > 0 ? 'down' : 'up')\n : (this._builder.horizontalspeed > 0 ? 'right' : 'left');\n }\n /** Speed in pixels/second, with sign. */\n get speed() {\n const { verticalspeed, horizontalspeed } = this._builder;\n return this.#isVertical ? verticalspeed : horizontalspeed;\n }\n /** Current offset relative to element's original position. */\n get delta() {\n const { position: { x, y }, t0: { position: { x: x0, y: y0 } } } = this._builder;\n return this.#isVertical\n ? y - y0\n : x - x0;\n }\n get flinging() {\n const { fling } = this._builder;\n return fling > 0 && Math.abs(this.speed) > fling;\n }\n /** Final offset (relative to element's original position) that takes release velocity into account. */\n get predictedDelta() {\n const inertia = this._builder.inertia ?? 8;\n return this.delta + this.speed / inertia;\n }\n /** Seconds to reach the final predicted position. */\n get predictedDuration() {\n const inertia = this._builder.inertia ?? 8;\n return -Math.log(.01 /* v/v0 where v ~ 0 <=> 1% of v0 */) / inertia;\n }\n get element() {\n return this._builder.element;\n }\n static fromArgs(builder) {\n return new SwipeEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class SwipeEvent extends CustomTypedEvent {\n constructor(type, args, eventInit) {\n super(type, args, eventInit);\n }\n}\n//}\n","import { CustomTypedEvent } from './events';\nexport class CurrentIndexChangeEvent extends CustomTypedEvent {\n constructor(args) {\n super('currentindexchange', args);\n }\n}\n//}\n","/// <reference path=\"events.ts\" />\nexport const Type = Function;\n;\n// #region CONSTS\nexport const WATCH_PROPS_VAR = 'pacem:properties';\nexport const INSTANCE_BINDINGS_VAR = 'pacem:custom-element:bindings';\nexport const INSTANCE_HOST_VAR = 'pacem:custom-element:host';\nexport const INSTANCE_SCOPE_VAR = 'pacem:custom-element:scope';\n// #endregion\n//}\n","//namespace Pacem {\nvar root;\n/** the overall customelement prefix */\nexport const P = (root = window['Pacem'])?.Configuration?.prefix ?? 'pacem';\nexport const PCSS = root?.Configuration?.css ?? P;\n//}\n","//namespace Pacem {\nexport class TemplateElement extends HTMLElement {\n}\n//}\n","/// <reference path=\"expression.ts\" />\n/// <reference path=\"promise.ts\" />\n/// <reference path=\"prefix.ts\" />\n/// <reference path=\"trees/json.ts\" />\n/// <reference path=\"utils.ts\" />\nimport { Utils } from './utils';\nimport { INSTANCE_SCOPE_VAR, WATCH_PROPS_VAR, INSTANCE_HOST_VAR, INSTANCE_BINDINGS_VAR } from './types';\nimport { PCSS } from './prefix';\nimport { Expression } from './expression';\nimport { TemplateElement } from './template';\n// namespace Pacem {\nconst PACEM_BAG = '__pacem__';\n// {{ binding.expression }}\nconst bindingPattern = /^\\{\\{(.|\\n)+\\}\\}$/;\n// TODO: CSP-proof binding (no unsafe-eval)\n// binding syntax example: `{ binding: { source: ^item.property.path, binder: $pacem.func, parameters: [ ^index, 'foo', : host._baz], mode: 'twoway' } }`\nexport class CustomElementUtils {\n static get polyfilling() {\n return customElements instanceof window['CustomElementRegistry'];\n }\n static camelToKebab(camelCased) {\n return camelCased && camelCased.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n static kebabToCamel(kebabCased) {\n return kebabCased && kebabCased.replace(/(-[a-z])/g, (m) => {\n return m[1].toUpperCase();\n });\n }\n static getWatchedProperties(target, includeInherited = true) {\n var properties = [];\n var chain = target instanceof HTMLElement ? target.constructor : target;\n do {\n let additional = this.getAttachedPropertyValue(chain, WATCH_PROPS_VAR) || [];\n let pblic = additional.filter(p => !p.name.startsWith('_'));\n Array.prototype.splice.apply(properties, [0, 0].concat(pblic));\n } while (includeInherited && (chain = Object.getPrototypeOf(chain)));\n return properties;\n }\n static getWatchedProperty(target, name) {\n return this.getWatchedProperties(target, true).find(p => p.name === name);\n }\n static importjs(src, integrity = null, crossorigin = false) {\n var attrs = { 'type': 'text\\/javascript', 'src': src };\n if (!Utils.isNullOrEmpty(integrity))\n Utils.extend(attrs, { integrity: integrity });\n if (crossorigin)\n Utils.extend(attrs, { 'crossorigin': '' });\n return CustomElementUtils.import(src, 'script', attrs, (document.head || document.getElementsByTagName(\"head\")[0]));\n }\n static importcss(src, integrity = null, crossorigin = false) {\n var attrs = { 'rel': 'stylesheet', 'href': src };\n if (!Utils.isNullOrEmpty(integrity))\n Utils.extend(attrs, { integrity: integrity });\n if (crossorigin)\n Utils.extend(attrs, { 'crossorigin': 'anonymous' });\n return CustomElementUtils.import(src, 'link', attrs, (document.head || document.getElementsByTagName(\"head\")[0]));\n }\n static import(key, tagName, attrs, appendTo = document.body) {\n const _p = Utils.core;\n var _imports = _p['imports'] = _p['imports'] || {};\n return _imports[key] = _imports[key] || new Promise((resolve, reject) => {\n // try to find the equivalent element in the DOM\n var selector = tagName;\n for (let attr in attrs || {}) {\n selector += `[${attr}=\"${attrs[attr]}\"]`;\n }\n var script = document.querySelector(selector);\n if (!Utils.isNull(script)) {\n // best guess: since element was already there, it is hopefully fully loaded\n resolve(script);\n }\n else {\n script = document.createElement(tagName);\n script.onerror = e => {\n reject(e);\n };\n script.onload = () => {\n resolve(script);\n };\n for (var attr in (attrs || {})) {\n script.setAttribute(attr, attrs[attr]);\n }\n appendTo.appendChild(script);\n }\n });\n }\n static { this.Theme = {\n importWebFonts() {\n function cleanupQuotes(input) {\n // check if the string is wrapped around quotes to escape ';' chars\n if (/^('|\").*\\1$/.test(input)) {\n return input.substring(1, input.length - 1);\n }\n return input;\n }\n function downloadFont(fontFace) {\n return Utils.isNullOrEmpty(fontFace) ? Promise.resolve() : document.fonts.load('1rem ' + fontFace);\n }\n const promises = ['icons', 'std', 'main', 'tech', 'btn'].map(f => {\n const fontFace = Utils.Css.getVariableValue(`--${PCSS}-font-${f}`).split(',')[0];\n const url = cleanupQuotes(Utils.Css.getVariableValue(`--${PCSS}-font-${f}-api-url`));\n if (Utils.isNullOrEmpty(url)) {\n return downloadFont(fontFace);\n }\n else {\n return CustomElementUtils.importcss(url).then(_ => downloadFont(fontFace));\n }\n });\n const atLeast1FontFaceReady = new Promise((resolve) => {\n function check(count = 0) {\n // size against the specs: https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet/size#specifications\n if (count > 4 || !('size' in document.fonts) || typeof document.fonts.size === 'number' && document.fonts.size > 0) {\n document.fonts.ready.then(resolve);\n }\n else {\n setTimeout(check, 250, count++);\n }\n }\n check();\n });\n promises.push(atLeast1FontFaceReady);\n return Promise.all(promises);\n }\n }; }\n static setAttachedPropertyValue(target, name, value) {\n /*(target[PACEM_BAG] = target[PACEM_BAG] || {})[name] = value;*/\n if (Utils.isNull(target))\n return;\n const propKey = Object.getOwnPropertyDescriptor(target, PACEM_BAG);\n const bag = (propKey && propKey.value)\n || Object.defineProperty(target, PACEM_BAG, {\n value: {}, enumerable: false, writable: false, configurable: false\n })[PACEM_BAG];\n if (Utils.isNull(value))\n delete bag[name];\n else\n bag[name] = value;\n }\n static deleteAttachedPropertyValue(target, name) {\n CustomElementUtils.setAttachedPropertyValue(target, name, undefined);\n }\n static getAttachedPropertyValue(target, name, ensureValue) {\n const propKey = Object.getOwnPropertyDescriptor(target, PACEM_BAG), bag = propKey && propKey.value;\n if (Utils.isNull(bag && bag[name]) && !Utils.isNull(ensureValue)) {\n CustomElementUtils.setAttachedPropertyValue(target, name, ensureValue);\n return ensureValue;\n }\n return bag && bag[name];\n }\n /**\n * Resolves a dotted path into actual values.\n * @param path Dotted path\n * @param scope Root of the path\n */\n static resolvePath(path, scope) {\n if (!path || !scope)\n return undefined;\n if (/[\\(\\)\\{\\}]/.test(path))\n throw `Security alert: not allowed to process paths like ${path}.`;\n const trunks = path.split('.');\n var root = scope, ref = root, parent, core = trunks[0];\n trunks.forEach((t, i) => {\n var trunksSq = t.split('[');\n trunksSq.forEach((t2, j) => {\n parent = ref;\n if (/\\]$/.test(t2)) {\n t2 = t2.substring(0, t2.length - 1);\n if (/^('|\").+[^\\\\]\\1$/.test(t2)) {\n t2 = t2.substr(1, t2.length - 2);\n }\n }\n ref = ref[t2];\n });\n });\n var name, ndx;\n if (/\\]$/.test(path)) {\n ndx = path.lastIndexOf('[');\n name = path.substring(ndx + 1);\n name = name.substring(0, name.length - 1);\n }\n else {\n ndx = path.lastIndexOf('.');\n name = path.substring(ndx + 1);\n }\n return { target: { value: ref, name: name }, parent: { value: parent || scope, path: path.substring(0, ndx) }, root: { value: root, property: core } };\n }\n static set(element, path, value) {\n var obj = CustomElementUtils.resolvePath(path, element);\n var current = obj.target.value;\n if (current !== value) {\n if (obj.parent.value != obj.root.value /* nested property scenario */\n && !(obj.parent.value instanceof HTMLElement) /* and not targeting an HTMLElement (which will eventually fire autonomously) */) {\n // 1. set new value (won't fire 'propertychange' since it's a nested property)\n obj.parent.value[obj.target.name] = value;\n // 2. clone the resulting object (will be set as the new one at 4.)\n const set_val = Utils.clone(obj.root.value[obj.root.property]);\n // 3. reset to previous value (so that when 4. will trigger the 'propertychange' we'll have meaningful arguments)\n obj.parent.value[obj.target.name] = current;\n // repeater-item?\n let repItem;\n if (obj.root.property === 'item' && !Utils.isNull(repItem = RepeaterItem.getRepeaterItem(obj.root.value))) {\n // kind of ugly solution, I know. it works however...\n // trigger array update\n repItem.repeater && repItem.repeater.datasource && repItem.repeater.datasource.splice(repItem.index, 1, repItem.item = set_val);\n }\n else {\n // 4. force root property change\n obj.root.value[obj.root.property] = set_val;\n }\n }\n else {\n // parent === root, property change event fires automatically\n obj.parent.value[obj.target.name] = value;\n }\n }\n }\n static get(element, path) {\n var obj = CustomElementUtils.resolvePath(path, element);\n return obj && obj.target && obj.target.value;\n }\n /**\n * Works for unit-test contexts.\n * @param element\n */\n static _findScopeContextLegacy(element) {\n // old impl...\n let el = element;\n let retval;\n do {\n el = el.parentNode;\n } while (el != null && (el != (retval = element.ownerDocument) || (el instanceof HTMLElement && (retval = el.shadowRoot) != null)));\n //let logFn: (message?: string) => void;\n //if (retval == null && console && (logFn = console.debug))\n // logFn(`Element \"${element.constructor.name}\" isn't attached to any context yet.`);\n return retval;\n }\n static findScopeContext(element) {\n let retval = (element.isConnected) ?\n element.getRootNode()\n : CustomElementUtils.getAttachedPropertyValue(element, INSTANCE_SCOPE_VAR);\n return retval ?? /* in Jasmine TESTS `element.isConnected` always returns false (attached to #document-fragment) */ CustomElementUtils._findScopeContextLegacy(element);\n }\n static findAncestor(element, predicate) {\n let el = element;\n let retval;\n while (el && (el = el.parentNode || el.getRootNode()?.host) != null) {\n if (el['host'] instanceof HTMLElement)\n el = el['host'];\n if (predicate.apply(el, [el])) {\n retval = el;\n break;\n }\n }\n return retval;\n }\n static findAncestorShell(element) {\n return CustomElementUtils.findAncestor(element, el => Utils.is(el, `.${PCSS}-body`) || el === document.body);\n }\n static findAncestorOfType(element, ctor) {\n return CustomElementUtils.findAncestor(element, el => el instanceof ctor);\n }\n static findDescendants(element, predicate, firstOnly = false) {\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT);\n var retval = [];\n while (walker.nextNode()) {\n let n = walker.currentNode;\n if (predicate(n) === true) {\n retval.push(n);\n if (firstOnly) {\n return retval;\n }\n }\n }\n return retval;\n }\n static findFirstDescendant(element, predicate) {\n const any = CustomElementUtils.findDescendants(element, predicate, true);\n return Utils.isNullOrEmpty(any) ? void 0 : any[0];\n }\n static findAll(selector = '[pacem]', filter = (e) => true) {\n const retval = [];\n document.querySelectorAll(selector).forEach((e, i, arr) => {\n if (filter(e) === true) {\n retval.push(e);\n }\n });\n return retval;\n }\n /**\n * To be used back again when Edge will allow Comment subclassing\n * https://github.com/Microsoft/ChakraCore/issues/2999 and https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12080908/\n * @param element\n * @param ctor\n * @param upLevels\n */\n static findPreviousSiblingOrAncestorOfType(element, ctor, upLevels = 0) {\n let el = element;\n let retval = null;\n let levels = 0;\n do {\n el = el.previousSibling || el.parentNode;\n if (el instanceof ctor) {\n if (levels >= upLevels) {\n retval = el;\n break;\n }\n else {\n el = el.parentNode;\n }\n levels++;\n }\n } while (el != null);\n return retval;\n }\n /**\n * To be removed when Edge will allow Comment subclassing\n * https://github.com/Microsoft/ChakraCore/issues/2999 and https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12080908/\n * @param element\n * @param predicate\n * @param upLevels\n */\n static findPreviousSiblingOrAncestor(element, predicate, upLevels = 0) {\n let el = element;\n let retval = null;\n let levels = 0;\n do {\n el = el.previousSibling || el.parentNode;\n if (el && predicate.apply(el, [el])) {\n if (levels >= upLevels) {\n retval = el;\n break;\n }\n else {\n el = el.parentNode;\n }\n levels++;\n }\n } while (el != null);\n return retval;\n }\n static assignHostContext(host, template) {\n // navigate through the DOM hierarchy\n const walker = document.createTreeWalker(template.content, NodeFilter.SHOW_ELEMENT + /* traverse templates' content */ NodeFilter.SHOW_DOCUMENT_FRAGMENT);\n while (walker.nextNode()) {\n var node = walker.currentNode;\n /*if (node instanceof HTMLTemplateElement)\n CustomElementUtils.assignHostContext(host, node);\n else*/ if (Utils.isNull(CustomElementUtils.getAttachedPropertyValue(node, INSTANCE_HOST_VAR))) {\n CustomElementUtils.setAttachedPropertyValue(node, INSTANCE_HOST_VAR, host);\n }\n }\n }\n static findHostContext(element) {\n let el = element;\n let retval;\n // not connected to the DOM? then exit and return undefined\n if (!el.isConnected) {\n return retval;\n }\n /*const root = element.getRootNode({ composed: false });\n if (root instanceof ShadowRoot) {\n return root.host as HTMLElement;\n }*/\n while (el != null) {\n retval = CustomElementUtils.getAttachedPropertyValue(el, INSTANCE_HOST_VAR);\n if (retval instanceof HTMLElement)\n break;\n el = el.parentElement;\n }\n let logFn;\n if (retval == null && console && (logFn = console.warn))\n logFn(`Element \"${element.constructor.name}\" isn't a descendant of a templated component.`);\n return retval;\n }\n static isBindingAttribute(attr) {\n /*if (/^\\s*\\{\\s*binding\\s+.*\\}\\s*$/.test(attr)) {\n\n // { binding ... } syntax\n var fn = attr.replace('binding', '').trim();\n fn = fn.substring(1, fn.length - 1);\n let twoway = /,\\s*twoway\\s*=\\s*true\\s*$/.test(fn);\n let commaNdx = fn.indexOf(',');\n if (commaNdx == -1)\n commaNdx = fn.length;\n var expression = Expression.parse(fn.substr(0, commaNdx), element);\n (expression && expression.dependencies).forEach(d => {\n d.twoway = d.twowayAllowed && twoway && expression.dependencies.length == 1;\n });\n return expression;\n }\n else*/\n return bindingPattern.test(attr);\n }\n static extractBindingAttributeExpression(attr) {\n if (CustomElementUtils.isBindingAttribute(attr)) {\n return attr.substr(2, attr.length - 4);\n }\n else {\n throw `Invalid attribute: incorrect binding syntax.`;\n }\n }\n static parseBindingAttribute(attr, element) {\n // loose syntax {{ ... }}\n let expression = CustomElementUtils.extractBindingAttributeExpression(attr);\n const arr = /,\\s*(twoway|once)\\s*$/.exec(expression), mode = arr && arr.length > 1 && arr[1];\n if (!Utils.isNullOrEmpty(mode)) {\n expression = expression.substr(0, expression.lastIndexOf(','));\n }\n var expr = Expression.parse(expression, element);\n (expr && expr.dependencies).forEach(d => {\n switch (mode) {\n case 'twoway':\n d.mode = (d.twowayAllowed && expr.dependencies.length == 1) ? 'twoway' : undefined;\n break;\n case 'once':\n d.mode = mode;\n break;\n }\n });\n return expr;\n }\n static ensureMember(o, name, attributes) {\n let original = Object.getOwnPropertyDescriptor(o, name);\n if (original != undefined)\n return original;\n Object.defineProperty(o, name, attributes);\n return Object.getOwnPropertyDescriptor(o, name);\n }\n /**\n * Strips all the observed attributes of an element and its descendants, in order to seal that dom branch and to avoid bindings evaluation.\n * @param element Input element\n */\n static stripObservedAttributes(element) {\n avoidObservedAttributes(element, false);\n }\n /**\n * Freezes all the observed attributes of an element and its descendants, in order to seal that dom branch and to avoid bindings evaluation.\n * @param element Input element\n */\n static freezeObservedAttributes(element) {\n avoidObservedAttributes(element);\n }\n}\nfunction avoidObservedAttributes(element, freeze = true) {\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT);\n do {\n var node = walker.currentNode;\n if (node instanceof HTMLElement) {\n const attrs = node.constructor['observedAttributes'];\n if (!Utils.isNull(attrs)) {\n CustomElementUtils.deleteAttachedPropertyValue(node, INSTANCE_BINDINGS_VAR);\n let revertFn = function (v) {\n if (Utils.isArray(v)) {\n return '[' + v.map(revertFn).join(',') + ']';\n }\n if (v instanceof Element) {\n const vid = v.id = v.id || ('_' + Utils.uniqueCode());\n return `#${vid}`;\n }\n else {\n return `${Utils.Json.stringify(v)}`;\n }\n };\n for (var attr of attrs) {\n if (attr in node.attributes) {\n let prop;\n let val;\n if (freeze && !Utils.isNull(val = node[prop = CustomElementUtils.kebabToCamel(attr)])) {\n let reverted = revertFn(val);\n node.setAttribute(attr, `{{ ${reverted} }}`);\n }\n else\n node.removeAttribute(attr);\n }\n }\n }\n }\n } while (walker.nextNode());\n}\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst REPEATERITEM_PLACEHOLDER = 'pacem:repeater-item';\nexport class Repeater {\n /**\n * Seeks for a PacemRepeaterItem element upwards through the DOM tree, given a starting element and the number of nesting levels.\n * @param element {HTMLElement} Element to start the upward search from\n * @param Optional upLevels {Number} 0-based nesting level\n */\n static findItemContext(element, upLevels = 0, logFn = console.warn) {\n let retval = RepeaterItem.findUpwards(element, upLevels, logFn);\n if (retval == null && logFn && element instanceof HTMLElement && element['isConnected']) {\n logFn(`Couldn't find a ${RepeaterItem.name} up ${upLevels} level${((upLevels === 1) ? \"\" : \"s\")} from element \"${element.constructor.name}\".`);\n }\n return retval;\n }\n}\nexport class RepeaterItem {\n static findUpwards(element, upLevels = 0, logFn = console.warn) {\n if (Utils.isNull(element) || element.localName === 'template' || element instanceof /* template-like element? */ TemplateElement) {\n return null;\n }\n let item = null;\n let predicate = (node) => !Utils.isNull(item = RepeaterItem.getRepeaterItem(node));\n let retval = CustomElementUtils.findPreviousSiblingOrAncestor(element, predicate, upLevels);\n if (retval == null && logFn && element instanceof HTMLElement && element['isConnected']) {\n logFn(`Couldn't find a ${RepeaterItem.name} up ${upLevels} level${((upLevels === 1) ? \"\" : \"s\")} from element \"${element.constructor.name}\".`);\n }\n return item;\n }\n static isRepeaterItem(node) {\n return !Utils.isNull(GET_VAL(node, REPEATERITEM_PLACEHOLDER));\n }\n static getRepeaterItem(node) {\n return GET_VAL(node, REPEATERITEM_PLACEHOLDER);\n }\n constructor(_placeholder) {\n this._placeholder = _placeholder;\n SET_VAL(_placeholder, REPEATERITEM_PLACEHOLDER, this);\n }\n get placeholder() {\n return this._placeholder;\n }\n}\n// }\n","/// <reference path=\"types.ts\" />\n/// <reference path=\"utils.ts\" />\n/// <reference path=\"utils-customelement.ts\" />\nimport { DeferPromise } from './promise';\nimport { Utils } from './utils';\nimport { CustomElementUtils, Repeater } from './utils-customelement';\nconst CONTEXT_PREFIX = '__context_pacem';\n/** the following pattern matches:\n * -------------------------------\n * ciao \"a tutti \\\"quanti\\\" voi\" -> \"a tutti \\\"quanti\\\" voi\"\n * ciao 'a tutti \"quanti\" voi'+ mysel.value + 'e a nessun\\' altra' -> 'a tutti \"quanti\" voi'\n * 'e a nessun\\' altra'\n */\nconst stringPattern = /'(\\\\'|[^'])*[^\\\\]?'|\"(\\\\\"|[^\"])*[^\\\\]?\"/g;\n/** the following pattern matches:\n * -------------------------------\n * var l = new Date(); -> new\n * window.eval( -> window.\n * eval( -> eval(\n * eval ( -> eval (\n */\nconst safetyPattern = /[^\\w]new\\s|[^\\w]window\\s*[\\.\\[]|[^\\w]document\\s*\\.|[^\\w]eval\\s*\\(/;\n/** the following pattern matches:\n * -------------------------------\n * ^^^item.ciao -> ^^^item\n * !ciao.value -> !ciao.\n * :host.value -> :host.\n * ::child.prop -> ::child.\n * _connectTo(me.value) -> (me.\n * 009.ciao ->\n * this[that.value] -> [that.\n */\nconst variablePattern = /(^|[\\s\\(\\[\\+\\-\\*\\/!])(:host\\.|\\^+item[\\s\\.,;\\)\\]]|\\^+item$|\\^+index[^\\w\\.]|\\^+index$|\\$?this[\\.\\s$]?|#[a-zA-Z_][\\w]*|::[a-zA-Z_][\\w]*)/g;\n///** the following pattern tests:\n// * -------------------------------\n// * __context.$this.myself.value -> true\n// * !__context.myelem.value -> false\n// * fn(myelem.value) -> false\n// * $this == that -> false\n// * ...\n// */\n//const purePropertyPathPattern = /^[\\w\\.\\$]+/; \nexport class Expression {\n constructor() {\n this._pending = false;\n this._independent = false;\n }\n get dependencies() {\n return this._dependencies;\n }\n get functionBody() {\n return this._fnBody;\n }\n get voidBody() {\n return this._voidBody;\n }\n get pending() {\n return this._pending;\n }\n get independent() {\n return this._independent;\n }\n evaluate() {\n if (!this._fn) {\n this._fn = new Function('$pacem', CONTEXT_PREFIX, this._fnBody);\n }\n return this._fn.apply(null, [Utils.core, this._args]);\n }\n evaluateAsync() {\n const deferred = DeferPromise.defer();\n if (!this._fn) {\n this._fn = new Function('$pacem', CONTEXT_PREFIX, this._fnBody);\n }\n deferred.resolve(this._fn.apply(null, [Utils.core, this._args]));\n return deferred.promise;\n }\n evaluatePlus(args = {}) {\n if (!this._fn) {\n let argNames = [CONTEXT_PREFIX];\n for (var prop in args)\n argNames.push(prop);\n argNames.push('$pacem');\n this._fn = new Function(argNames.join(', '), this._voidBody);\n }\n let argValues = [].concat(this._args);\n for (var prop in args)\n argValues.push(args[prop]);\n argValues.push(Utils.core);\n return this._fn.apply(null, argValues);\n }\n static { this._pendingExpression = null; }\n static _getPendingExpressionSingleton() {\n if (Expression._pendingExpression == null) {\n let xpr = new Expression();\n xpr._pending = true;\n xpr._dependencies = [];\n Expression._pendingExpression = xpr;\n }\n return Expression._pendingExpression;\n }\n static parse(expression, element) {\n var context = CustomElementUtils.findScopeContext(element);\n var args = { '$this': element };\n var dependencies = [];\n var expr = '';\n var independent = true;\n //1. remove strings\n var strings = [], stringMatches, index = 0, trunks = [];\n while ((stringMatches = stringPattern.exec(expression)) != null) {\n trunks.push(expression.substr(index, stringMatches.index - index));\n let length = stringMatches[0].length;\n strings.push({ start: stringMatches.index, length: length });\n index = stringMatches.index + length;\n }\n if (index < expression.length)\n trunks.push(expression.substr(index, expression.length - index));\n //2. loop non string trunks\n // trunks.length >= strings.length (more precisely, the following statemente is always `true`:\n // trunks.length === strings.length || trunks.length === strings.length+1;\n for (var j = 0; j < trunks.length; j++) {\n let trunk = trunks[j];\n if (safetyPattern.test(trunk))\n throw `Unsafe expression detected: \"${trunk}\".`;\n if (context == null) {\n // context is null, means viewActivated event still to be fired.\n // check whether this is a constant expression (then no need to instantiate actual binding listeners)\n // or not.\n if (new RegExp(variablePattern).test(trunk) === true) {\n independent = false;\n break;\n }\n }\n else {\n let processedTrunk = trunk.replace(variablePattern, (mwhole, mstart, melem, index, input) => {\n independent = false;\n const cmpRef = `__host_pacem`;\n // default initialization := assumes `this`\n let retval = CONTEXT_PREFIX + '.$this' + (melem.endsWith('.') ? '.' : ''), el = element, dotIndex = input.indexOf('.', index), furtherParts = dotIndex > index ? input.substr(dotIndex + 1).trim() : '', pathRegexArray = /^[\\w\\.\\$]+/.exec(furtherParts), path = pathRegexArray && pathRegexArray.length > 0 && pathRegexArray[0], propArray, prop = path && (propArray = path.split('.')).length > 0 && propArray[0];\n if (melem === ':host.') {\n el = args[cmpRef] = args[cmpRef] || CustomElementUtils.findHostContext(element);\n retval = `${CONTEXT_PREFIX}.${cmpRef}.`;\n }\n else if (melem.endsWith('^item') || melem.substr(0, melem.length - 1).endsWith('^item')) {\n let lastChar = melem.endsWith('^item') ? '' : melem.substr(melem.length - 1, 1);\n let upLevels = melem.length - (lastChar.length > 0 ? 6 : 5); // 5 = 'item'.length + 1 (zero-based)\n let itemRef = `__item_${upLevels}_up_pacem`;\n let item = Repeater.findItemContext(element, upLevels);\n el = args[itemRef] = args[itemRef] || (item && item.placeholder);\n path = 'item' + (path ? ('.' + path) : '');\n prop = 'item';\n retval = `${CONTEXT_PREFIX}.${itemRef}.item${lastChar}`;\n }\n else if (melem.endsWith('^index') || melem.substr(0, melem.length - 1).endsWith('^index')) {\n let lastChar = melem.endsWith('^index') ? '' : melem.substr(melem.length - 1, 1);\n let upLevels = melem.length - (lastChar.length > 0 ? 7 : 6); // 6 = 'index'.length + 1 (zero-based)\n let itemRef = `__item_${upLevels}_up_pacem`;\n let item = Repeater.findItemContext(element, upLevels);\n el = args[itemRef] = args[itemRef] || (item && item.placeholder);\n path = 'index';\n prop = 'index';\n retval = `${CONTEXT_PREFIX}.${itemRef}.index${lastChar}`;\n }\n else if (melem.startsWith('::')) {\n let melem0 = melem.substr(2, melem.length - 2);\n let host = args[cmpRef] = args[cmpRef] || CustomElementUtils.findHostContext(element);\n if (!Utils.isNull(host)) {\n el = host[melem0];\n }\n else {\n el = null;\n }\n retval = `${CONTEXT_PREFIX}.${cmpRef}.${melem0}`;\n }\n else if (melem.startsWith('#')) {\n let melem0 = melem.substr(1, melem.length - 1);\n el = args[melem0] = args[melem0] || context.querySelector('#' + melem0);\n retval = `${CONTEXT_PREFIX}.${melem0}`;\n }\n // merge dependencies\n if (prop && el && prop in el\n // && it is not a direct method call (which means that the 'prop' isn't in fact a 'func')\n && typeof el[prop] !== 'function' //!isMethodCall \n // && does not already exist as a dependency\n && dependencies.find(d => d.element === el && d.property == prop) == null) {\n dependencies.push({ element: el, property: prop, path: path, twowayAllowed: false });\n }\n // return value\n return mstart + retval;\n });\n expr += processedTrunk;\n if (j < strings.length) {\n const s = strings[j];\n expr += expression.substr(s.start, s.length);\n }\n }\n }\n if (independent) {\n // constant expression\n var constexpr = new Expression();\n constexpr._independent = true;\n constexpr._fnBody = `return ${expression};`;\n constexpr._voidBody = expression;\n constexpr._dependencies = [];\n return constexpr;\n }\n if (context == null) {\n return this._getPendingExpressionSingleton();\n }\n // if some dependency elements aren't available yet, then postpone...\n for (var elem in args) {\n if (args[elem] == null)\n return Expression._getPendingExpressionSingleton();\n }\n if (dependencies.length == 1\n // := && trimmed expression contains only letters, figures, underscores, dots, and '$'...\n && /[^\\w\\.\\$]+/.test(expr.trim()) !== true) {\n // ...then 'twoway' binding might be applied/accepted\n dependencies[0].twowayAllowed = true;\n }\n var retexpr = new Expression();\n retexpr._args = args;\n retexpr._fnBody = `try{ var ___$$$r = ${expr}; return ___$$$r; }catch(e){ }`;\n retexpr._voidBody = `try{ ${expr} }catch(e){ }`;\n retexpr._dependencies = dependencies;\n return retexpr;\n }\n}\n// }\n","//namespace Pacem.Logging {\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"Trace\"] = \"trace\";\n LogLevel[\"Debug\"] = \"debug\";\n LogLevel[\"Warn\"] = \"warn\";\n LogLevel[\"Error\"] = \"error\";\n LogLevel[\"Info\"] = \"info\";\n LogLevel[\"Log\"] = \"log\";\n})(LogLevel || (LogLevel = {}));\n//}\n","/// <reference path=\"utils.ts\" />\nimport { Utils } from \"./utils\";\nimport { Point, Size, Rect } from '@pacem/pacem-foundation';\n;\nconst NonePropertyConverter = { convert: (attr) => undefined };\nconst StringPropertyConverter = {\n convert: (attr) => attr, convertBack: (prop) => prop\n};\nconst StringArrayPropertyConverter = {\n convert: (attr) => attr && attr.trim().split(/[ ,]+/), convertBack: (prop) => Utils.isArray(prop) && prop.join(' ') || ''\n};\nconst NumberPropertyConverter = {\n convert: (attr) => parseFloat(attr), convertBack: (prop) => prop.toString()\n};\nconst BooleanPropertyConverter = {\n convert: (attr) => !Utils.isNullOrEmpty(attr) && (attr !== '0') && (attr !== 'false'),\n convertBack: (prop) => (!!prop).toString()\n};\nconst BooleanStrictPropertyConverter = {\n convert: (attr) => attr === 'true' || attr === '1',\n convertBack: (prop) => (!!prop).toString()\n};\nconst DateTimePropertyConverter = {\n convert: (attr) => Utils.parseDate(attr),\n convertBack: (prop) => Utils.parseDate(prop).toISOString()\n};\nconst DatePropertyConverter = DateTimePropertyConverter;\nconst JsonPropertyConverter = {\n convert: (attr) => Utils.Json.parse(attr),\n convertBack: (prop) => Utils.Json.stringify(prop)\n};\nconst EvalPropertyConverter = {\n convert: (attr) => Function(`return ${attr};`).apply(null),\n convertBack: (prop) => undefined //JSON.stringify(prop)\n};\nconst ElementPropertyConverter = {\n convert: (attr) => document.querySelector(attr),\n convertBack: (prop) => (prop instanceof Element && prop.id) ? ('#' + prop.id) : undefined,\n retryConversionWhenReady: true\n};\nconst PointPropertyConverter = {\n convert: (attr) => Point.parse(attr),\n convertBack: (prop) => `${prop.x || 0} ${prop.y || 0}`\n};\nconst SizePropertyConverter = {\n convert: (attr) => Size.parse(attr),\n convertBack: (prop) => `${prop.width || 0} ${prop.height || 0}`\n};\nconst RectPropertyConverter = {\n convert: (attr) => Rect.parse(attr),\n convertBack: (prop) => `${prop.x || 0} ${prop.y || 0} ${prop.width || 0} ${prop.height || 0}`\n};\nexport const PropertyConverters /*: { [name: string]: PropertyConverter }*/ = {\n None: NonePropertyConverter,\n String: StringPropertyConverter,\n StringArray: StringArrayPropertyConverter,\n Number: NumberPropertyConverter,\n Boolean: BooleanPropertyConverter,\n BooleanStrict: BooleanStrictPropertyConverter,\n Date: DatePropertyConverter,\n Datetime: DateTimePropertyConverter,\n Json: JsonPropertyConverter,\n Eval: EvalPropertyConverter,\n Element: ElementPropertyConverter,\n // geom\n Point: PointPropertyConverter,\n Rect: RectPropertyConverter,\n Size: SizePropertyConverter,\n};\n//}\n","import { Utils } from './utils';\n/**\n * Default, and essentially ONLY, property comparer for equalitycheck\n * @param old value 1\n * @param val value 2\n */\nexport const DefaultComparer = (old, val) => Utils.areSemanticallyEqual(old, val);\n//}\n","import { WATCH_PROPS_VAR, INSTANCE_BINDINGS_VAR, INSTANCE_HOST_VAR } from './types';\nimport { P } from './prefix';\nimport { Utils } from './utils';\nimport { PropertyChangeEventName, PropertyChangeEvent, AttributeChangeEvent } from './events';\nimport { CustomElementUtils } from './utils-customelement';\nimport { Expression } from './expression';\nimport { DeferPromise } from './promise';\nimport { Http } from './net/http';\nimport { PropertyConverters } from './converters';\nimport { DefaultComparer } from './comparers';\n// #region CUSTOM ELEMENT\n//export const ViewActivatedEventName: string = 'viewactivate';\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst WATCH_PROP_PREFIX = 'pacem:property:';\nconst WATCH_VERS_PROP = 'pacem:version';\nconst WATCH_BIND_PREFIX = 'pacem:binding:';\n//const WATCH_THROTTLE_PREFIX: string = 'pacem:throttle:';\nconst INSTANCE_CHILDREN_VAR = 'pacem:view-children';\nconst HAS_BIND_PREFIX = 'pacem:has-binding:';\nconst HAS_TEMPLATE_VAR = 'pacem:custom-element:has-template';\nconst HASBEEN_TEMPLATED_VAR = 'pacem:custom-element:has-templated';\nconst INSTANCE_PROMISE_VAR = 'pacem:custom-element:promise';\nconst INSTANCE_READY_VAR = 'pacem:custom-element:ready';\nconst INSTANCE_ONREADY_VAR = 'pacem:custom-element:startup';\n//const TYPE_OPTIONS_VAR = 'pacem:custom-element:options';\nfunction processBinding(element, property, binding) {\n var _this = element;\n const prop = property;\n const value = binding;\n // reset previous dependencies\n var deps = GET_VAL(_this, WATCH_BIND_PREFIX + prop);\n //var handleName = WATCH_THROTTLE_PREFIX + prop;\n deps && // reset previous dependencies\n deps.forEach(i => {\n //cancelAnimationFrame(GET_VAL(_this, handleName));\n i.dep.element.removeEventListener(PropertyChangeEventName, i.callback, false);\n });\n if (Utils.isNull(value) || GET_VAL(element, INSTANCE_READY_VAR) !== true) {\n DEL_VAL(_this, WATCH_BIND_PREFIX + prop);\n DEL_VAL(_this, HAS_BIND_PREFIX + prop);\n }\n else {\n if (value.pending) {\n SET_VAL(_this, WATCH_BIND_PREFIX + prop, []);\n }\n else {\n let mode = 'oneway'; // default\n switch (value.dependencies && value.dependencies.length && value.dependencies[0].mode) {\n case 'twoway':\n if ( /* extra-safety here: */value.dependencies.length == 1)\n mode = 'twoway';\n break;\n case 'once':\n mode = 'once';\n }\n SET_VAL(_this, HAS_BIND_PREFIX + prop, mode);\n const mapped = value.dependencies.map(d => {\n // gather changes and evaluate at `next frame` (?)\n var retval = {\n dep: d, callback: function (evt) {\n if (evt.detail.propertyName === d.property) {\n //cancelAnimationFrame(_this[handleName]);\n //_this[handleName] = requestAnimationFrame(() => {\n _this[prop] = value.evaluate /*Async*/() /*.then(val => {\n _this[prop] = val;\n })*/;\n //});\n }\n }\n };\n //try {\n d.element.addEventListener(PropertyChangeEventName, retval.callback, false);\n //} catch (ex) {\n // console.log(_this.outerHTML + '\\n' + d.property);\n // throw (ex);\n //}\n return retval;\n });\n SET_VAL(_this, WATCH_BIND_PREFIX + prop, mapped);\n _this[prop] = value.evaluate();\n }\n }\n}\nfunction retrieveTemplateAndWaitForDOMReady(config) {\n var deferred = DeferPromise.defer();\n const on_load = (tmpl) => {\n if (Utils.isDOMReady()) {\n deferred.resolve(tmpl);\n }\n else {\n Utils.onDOMReady((evt) => {\n deferred.resolve(tmpl);\n });\n }\n };\n //\n if (config.template) {\n on_load(config.template);\n }\n else if (config.templateUrl) {\n let http = new Http();\n http.get(config.templateUrl).success(r => {\n let tmpl = config.template = r.text;\n on_load(tmpl);\n return r;\n }).error(err => {\n console.error(err.message);\n on_load(null);\n });\n }\n else {\n on_load(null);\n }\n //\n return deferred.promise;\n}\nfunction retrieveDescendantTemplateActivationPromises(host, root) {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);\n var promises = [];\n while (walker.nextNode()) {\n var node = walker.currentNode;\n if (true === GET_VAL(node.constructor, HAS_TEMPLATE_VAR)) {\n var deferred = GET_VAL(node, INSTANCE_PROMISE_VAR, DeferPromise.defer());\n promises.push(deferred.promise);\n }\n }\n return promises;\n}\nexport const CustomElement = (config) => {\n return (target) => {\n // might be already registered\n if (Utils.customElements.get(config.tagName)) {\n console.warn(`${config.tagName} registration skipped, since already defined.`);\n return;\n }\n // retrieved watched properties (inherited included)\n var properties = CustomElementUtils.getWatchedProperties(target, true);\n SET_VAL(target, HAS_TEMPLATE_VAR, !(Utils.isNullOrEmpty(config.template) && Utils.isNullOrEmpty(config.templateUrl)));\n if (properties && properties.length > 0) {\n // attribute change whitelist\n const OBS_ATTR_PROP = 'observedAttributes';\n var extraObserved = [];\n if (target.hasOwnProperty(OBS_ATTR_PROP)) {\n extraObserved = target[OBS_ATTR_PROP].slice();\n delete target[OBS_ATTR_PROP];\n }\n // attributes to watch\n let attrs = extraObserved;\n for (var p of properties) {\n let a = CustomElementUtils.camelToKebab(p.name);\n attrs.unshift(a);\n }\n // set static `observedAttributes` property\n Object.defineProperty(target, OBS_ATTR_PROP, {\n get: function () {\n return attrs;\n },\n enumerable: true,\n configurable: false\n });\n }\n {\n const proto = target.prototype;\n // connectedCallback override\n const originalConnectedCallback = Object.getOwnPropertyDescriptor(proto, 'connectedCallback') || proto.connectedCallback;\n const originalViewActivatedCallback = Object.getOwnPropertyDescriptor(proto, 'viewActivatedCallback') || proto.viewActivatedCallback;\n Object.defineProperty(proto, 'connectedCallback', {\n value: function connectedCallback() {\n const _this = this;\n //console.log(`${_this.localName} connected.`);\n _this.setAttribute('pacem', '');\n _this.setAttribute('cloak', '');\n // reset INSTANCE_CHILDREN_VAR at connectedCallback\n DEL_VAL(_this, INSTANCE_CHILDREN_VAR);\n // ready to fire\n if (originalConnectedCallback && originalConnectedCallback.value)\n originalConnectedCallback.value.apply(_this, []);\n else if (typeof originalConnectedCallback == 'function')\n originalConnectedCallback.apply(_this);\n /*\n There's no guarantee that at this point in the element lifecycle its inner DOM has been processed.\n On the contrary, it is fairly likely it hasn't.\n If the element is statically declared on the page after the class declaration (.js file), then its innerHTML is empty for sure.\n **Any template relevant logic must be moved at a point in time when the DOM is fully loaded!**\n */\n retrieveTemplateAndWaitForDOMReady(config).then(tmpl => {\n // still connected?\n // check first!\n if (!_this.isConnected) {\n return;\n }\n var promises = [];\n // apply the template if not already applied(!!)...\n if (GET_VAL(_this, INSTANCE_READY_VAR) !== true\n // ...and if any.\n && !Utils.isNullOrEmpty(tmpl)\n && GET_VAL(_this, HASBEEN_TEMPLATED_VAR) != true) {\n SET_VAL(_this, HASBEEN_TEMPLATED_VAR, true);\n const element = _this, useShadowDOM = config.shadow, originalContent = document.createElement('template').content, currentContent = document.createElement('template'); // config.originalContent === true;\n if (!useShadowDOM) {\n for (var j = element.childNodes.length - 1; j >= 0; j--) {\n originalContent.insertBefore(element.childNodes.item(j), originalContent.firstChild);\n }\n }\n currentContent.innerHTML = tmpl;\n // use pacem-content as a placeholder, then `insertBefore`, then remove.\n const placeholders = currentContent.content.querySelectorAll(P + '-content');\n // assign host and create view activation promise\n CustomElementUtils.assignHostContext(_this, currentContent);\n // placeholder replacement.\n if (placeholders.length == 1) {\n const placeholder = placeholders.item(0);\n var ph = placeholder.nextSibling;\n const parent = placeholder.parentElement || currentContent.content;\n const nodes = originalContent.childNodes;\n parent.removeChild(placeholder);\n while (nodes.length > 0) {\n try {\n let node = nodes.item(0);\n parent.insertBefore(node, ph);\n //ph = node;\n }\n catch (e) {\n console.error(e.toString());\n }\n }\n }\n else if (placeholders.length > 1) {\n throw `There can only be at most 1 content placeholder inside a template.`;\n }\n var root;\n if (config.shadow) {\n root = element.attachShadow({ mode: 'open' /*, slotAssignment: 'named' (default) */ });\n root.appendChild(currentContent.content);\n }\n else {\n root = element;\n var currentChildren = currentContent.content.children;\n while (currentChildren.length > 0) {\n root.append(currentChildren.item(0));\n }\n }\n promises = retrieveDescendantTemplateActivationPromises(_this, root);\n }\n // flag as ready\n SET_VAL(_this, INSTANCE_READY_VAR, true);\n // retry with unresolved properties\n for (let property of properties) {\n const prop = property.name;\n const config = property.config;\n if (!config.converter.retryConversionWhenReady || !Utils.isNull(_this[prop])) {\n continue;\n }\n // check attr\n const attrName = CustomElementUtils.camelToKebab(prop), attr = _this.getAttribute(attrName);\n if (!Utils.isNullOrEmpty(attr) && !CustomElementUtils.isBindingAttribute(attr)) {\n // retry conversion\n _this[prop] = config.converter.convert(attr, _this);\n }\n }\n // execute todos (aka `reflect-backs` of prop values onto attr string values)\n const todos = (GET_VAL(_this, INSTANCE_ONREADY_VAR) || []);\n todos.forEach(todo => {\n todo.apply(_this);\n });\n //\n const pendingBindings = (evt) => {\n // re-evaluate pending expressions...\n var bindings = (GET_VAL(_this, INSTANCE_BINDINGS_VAR) || []);\n bindings.forEach(attrName => {\n const attrNameBind = attrName;\n if (!(attrNameBind in _this.attributes)) {\n throw `Howcome? ${attrNameBind} not in ${_this.constructor.name} attributes!?...`;\n }\n const attrValueBind = _this.attributes[attrNameBind].value;\n // still a binding attribute? (might have changed its shape while pending...)\n if (CustomElementUtils.isBindingAttribute(attrValueBind)) {\n var expr = CustomElementUtils.parseBindingAttribute(attrValueBind, _this);\n processBinding(_this, CustomElementUtils.kebabToCamel(attrName), expr);\n }\n });\n };\n //...now that the document is ready:\n pendingBindings();\n const fireViewActivated = (evt) => {\n //(<HTMLElement>_this).dispatchEvent(new Event(ViewActivatedEventName));\n if (originalViewActivatedCallback && originalViewActivatedCallback.value)\n originalViewActivatedCallback.value.apply(_this, []);\n else if (typeof originalViewActivatedCallback == 'function')\n originalViewActivatedCallback.apply(_this);\n var deferred = GET_VAL(_this, INSTANCE_PROMISE_VAR);\n if (!Utils.isNull(deferred))\n deferred.resolve();\n };\n _this.removeAttribute('cloak');\n //...now that the document is ready:\n // fire original viewActivatedCallback\n // when all the descendant templated elements have already fired\n Promise.all(promises)\n .then(_ => fireViewActivated());\n });\n }, configurable: true, enumerable: true\n });\n // disconnectedCallback override\n const originalDisconnectedCallback = Object.getOwnPropertyDescriptor(proto, 'disconnectedCallback') || proto.disconnectedCallback;\n Object.defineProperty(proto, 'disconnectedCallback', {\n value: function disconnectedCallback() {\n const _this = this;\n // 1. dispose as of dev's desires\n if (originalDisconnectedCallback && originalDisconnectedCallback.value)\n originalDisconnectedCallback.value.apply(_this, []);\n else if (typeof originalDisconnectedCallback === 'function')\n originalDisconnectedCallback.apply(_this, []);\n // 2. dismantle everything\n SET_VAL(_this, INSTANCE_READY_VAR, false);\n // re-evaluate pending expressions (in order to dismiss them, having the element `disconnected`)\n const bindings = (GET_VAL(_this, INSTANCE_BINDINGS_VAR) || []);\n bindings.forEach(attrName => {\n processBinding(_this, CustomElementUtils.kebabToCamel(attrName) /*, expr*/);\n });\n }, configurable: true, enumerable: true\n });\n // watchify attributes\n const originalAttributeChangedCallback = Object.getOwnPropertyDescriptor(proto, 'attributeChangedCallback') || proto.attributeChangedCallback;\n Object.defineProperty(proto, 'attributeChangedCallback', {\n value: function attributeChangedCallback(name, old, val) {\n const _this = this;\n const ready = GET_VAL(_this, INSTANCE_READY_VAR) === true;\n /*\n attributeChangedCallback has to fire BEFORE propertyChangedCallback IN THIS CASE\n */\n if (originalAttributeChangedCallback && originalAttributeChangedCallback.value)\n originalAttributeChangedCallback.value.apply(_this, [name, old, val]);\n else if (typeof originalAttributeChangedCallback === 'function')\n originalAttributeChangedCallback.apply(_this, [name, old, val]);\n // dispatch custom event 'attributechange'\n const evt = new AttributeChangeEvent({ attributeName: name, oldValue: old, currentValue: val, firstChange: !ready });\n _this.dispatchEvent(evt);\n // binding attribute?\n const binding = CustomElementUtils.isBindingAttribute(val);\n const plainAttrName = name;\n const prop = CustomElementUtils.kebabToCamel(plainAttrName);\n // when module scripts (esm) are involved you're at risk trying to process bindings too early, causing errors when - for instance - global variables are referenced.\n // nevertheless, setting moduleProofBindings to `true` prevents early attribute evaluation with startup issues\n // let's keep it false (legacy bheavior)\n const moduleProofBindings = false; // TODO: allow to configure\n if (binding) {\n let value = CustomElementUtils.parseBindingAttribute(val, _this);\n if (value instanceof Expression) {\n if (value.independent && !moduleProofBindings) {\n // constant expression, just assign its value\n _this[prop] = value.evaluate();\n processBinding(_this, prop /* remove eventual old bindings */);\n }\n else {\n var bindings = GET_VAL(_this, INSTANCE_BINDINGS_VAR, []);\n bindings.push(plainAttrName);\n if (!value.pending) {\n processBinding(_this, prop, value);\n }\n }\n }\n else {\n throw `Howcome? ${val} misinterpreted as ${plainAttrName} binding...`;\n }\n }\n else {\n // retrieve property type and cast coherently...\n var property = properties.find(p => p.name === prop);\n if (!Utils.isNull(property)) {\n processBinding(_this, prop /* remove eventual old bindings */);\n // eventual retry at Ln.289\n _this[prop] = property.config.converter.convert(val, _this);\n }\n }\n }, configurable: true, enumerable: true\n });\n // watchify properties\n const originalPropertyChangedCallback = Object.getOwnPropertyDescriptor(proto, 'propertyChangedCallback') || proto.propertyChangedCallback;\n Object.defineProperty(proto, 'propertyChangedCallback', {\n value: function propertyChangedCallback(name, old, val, firstChange, options) {\n const _this = this;\n const ready = GET_VAL(_this, INSTANCE_READY_VAR) === true;\n const todo = () => {\n const bindingType = GET_VAL(_this, HAS_BIND_PREFIX + name);\n /*\n propertyChangedCallback has to fire BEFORE attributeChangedCallback in this case\n */\n if (originalPropertyChangedCallback && originalPropertyChangedCallback.value)\n originalPropertyChangedCallback.value.apply(_this, [name, old, val, !ready]);\n else if (typeof originalPropertyChangedCallback === 'function')\n originalPropertyChangedCallback.apply(_this, [name, old, val, !ready]);\n // dispatch custom event 'propertychange'\n if (!options || options.emit !== false) {\n const evt = new PropertyChangeEvent({ propertyName: name, oldValue: old, currentValue: val, firstChange: !ready });\n _this.dispatchEvent(evt);\n }\n if (Utils.isNullOrEmpty(bindingType) /* reflect to attribute only if this is not a binding property... */) {\n var property = properties.find(p => p.name === name);\n if (options\n && options.reflectBack === true\n && /* not polyfilled */ !CustomElementUtils.polyfilling) {\n var attrName = CustomElementUtils.camelToKebab(name), attr = _this.attributes.getNamedItem(attrName);\n // reflectBack only when ready (or you'll lose eventual bindings for attributes with default non-undefined value):\n // e.g. see `autofetch` property for `PacemFetchElement`\n if (ready\n // Allow to reflectBack proprties onto attributes also if the element isn't ready yet,\n // put proved to have relevant attribute empty. (e.g. some widget utils like `PacemWidgetFetchParameterElement` need this)\n || Utils.isNullOrEmpty(attr)) {\n var config;\n if (val === undefined || val === null) {\n _this.removeAttribute(attrName);\n }\n else if (property && (config = property.config) && typeof config.converter.convertBack === 'function') {\n const sval = config.converter.convertBack(val, _this);\n /* ...and the values are different */\n if (attr == null || sval !== attr.value)\n _this.setAttribute(attrName, sval);\n }\n }\n }\n }\n else if (bindingType === 'twoway') {\n const binding = GET_VAL(_this, WATCH_BIND_PREFIX + name)[0].dep;\n CustomElementUtils.set(binding.element, binding.path, val);\n }\n else if (bindingType === 'once') {\n // remove the binding\n processBinding(_this, name /*, null*/);\n }\n };\n // the following filter is needed in order to avoid attribute reflect-back and error:\n // `Uncaught DOMException: Failed to construct 'CustomElement': The result must not have attributes`\n if (ready) {\n todo.apply(_this);\n }\n else {\n var todos = GET_VAL(_this, INSTANCE_ONREADY_VAR, []);\n todos.push(todo);\n }\n }, configurable: true, enumerable: true\n });\n }\n Utils.customElements.define(config.tagName, target, config.options);\n Utils.customElements.whenDefined(config.tagName).then(() => {\n //console.log(`${config.tagName} defined.`);\n });\n };\n};\n// #endregion\n// #region WATCH PROPERTIES\nconst DefaultPropertyConverter = PropertyConverters.None;\nexport function Watch(config) {\n return (target, prop, descriptor) => {\n var watchableProperties = GET_VAL(target.constructor, WATCH_PROPS_VAR, []);\n watchableProperties.push({\n name: prop, config: Utils.extend({ emit: true, converter: DefaultPropertyConverter }, config)\n });\n // comparer\n const comparer = DefaultComparer;\n // original setter?\n const setter = descriptor && descriptor.set;\n // backing field value\n const propref = WATCH_PROP_PREFIX + prop; // <- pacem:property:'prop'\n const ver = WATCH_VERS_PROP; // <- pacem:version\n const propver = WATCH_VERS_PROP + ':' + prop; // <- pacem:version:'prop'\n // getter\n function getter() {\n const _this = this;\n return GET_VAL(_this, propref);\n }\n ;\n function onChange(key, oldValue, currentValue) {\n const _this = this;\n const debounce = config && config.debounce;\n // does it implement OnPropertyChanged?\n let propertyChangedCallback;\n if (typeof (propertyChangedCallback = _this['propertyChangedCallback']) === 'function') {\n let fn = () => propertyChangedCallback.apply(_this, [key, oldValue, GET_VAL(_this, propref), false /* dummy */, config]);\n if (typeof debounce === 'number' && debounce > 0) {\n clearTimeout(this['_handle_' + prop]);\n this['_handle_' + prop] = setTimeout(fn, debounce);\n }\n else if (debounce === true) {\n cancelAnimationFrame(this['_handle_' + prop]);\n this['_handle_' + prop] = requestAnimationFrame(fn);\n }\n else {\n fn();\n }\n }\n }\n ;\n function decorateArray(instance) {\n const _this = this;\n instance = instance || _this[prop];\n if ( /* already decorated? */GET_VAL(instance, 'pacem:array:decorated') === true) {\n return;\n }\n SET_VAL(instance, 'pacem:array:decorated', true);\n const proto = Array.prototype;\n const methods = {\n splice: proto.splice,\n pop: proto.pop,\n copyWithin: proto.copyWithin,\n push: proto.push,\n shift: proto.shift,\n unshift: proto.unshift\n };\n for (let name in methods) {\n let fn = name; // < closure\n instance[fn] = function (...args) {\n const retval = methods[fn].apply(this, args);\n // TODO?: specifically notify which items have changed.\n // .length property risks to not be affected, fire it as well.\n SET_VAL(this, ver, Date.now());\n onChange.call(_this, prop, this, this);\n return retval;\n };\n }\n }\n function setterCore(oldVal, newVal) {\n const _this = this, isArray = Utils.isArray(newVal);\n // different?\n const diffrent = !comparer(oldVal, newVal);\n if (diffrent || (isArray && GET_VAL(newVal, ver) !== GET_VAL(_this, propver))) {\n SET_VAL(_this, propref, newVal);\n if (isArray) {\n SET_VAL(_this, propver, GET_VAL(newVal, ver));\n decorateArray.call(_this, newVal);\n }\n onChange.call(_this, prop, oldVal, newVal);\n }\n }\n // setter\n if (setter) {\n descriptor.set = function (v) {\n const _this = this, oldVal = _this[prop];\n setter.call(_this, v);\n const newVal = _this[prop];\n //\n setterCore.call(_this, oldVal, newVal);\n };\n }\n else {\n //#region this is needed when creating property at runtime.\n try {\n // TODO: find better way!\n if (target.ownerDocument) {\n target[propref] = target[prop];\n }\n }\n catch (e) { /*Illegal invocation*/ }\n //#endregion\n if (delete target[prop]) {\n Object.defineProperty(target, prop, {\n get: function () {\n return getter.call(this);\n },\n set: function (newVal) {\n const _this = this;\n const oldVal = GET_VAL(_this, propref);\n //\n setterCore.call(_this, oldVal, newVal);\n },\n enumerable: true,\n configurable: true\n });\n }\n }\n };\n}\nexport function ViewChild(selector) {\n return (target, prop, descriptor) => {\n const key = `${prop}_${Utils.uniqueCode()}`;\n function findElement() {\n const _this = this, nodelist = (_this.shadowRoot || _this).querySelectorAll(selector);\n for (let i = 0; i < nodelist.length; i++) {\n let item = nodelist.item(i);\n if (GET_VAL(item, INSTANCE_HOST_VAR) === _this) {\n return item;\n }\n }\n return null;\n }\n function getter() {\n const _this = this;\n // reset INSTANCE_CHILDREN_VAR on connectedCallback!\n const dict = GET_VAL(_this, INSTANCE_CHILDREN_VAR, {});\n return dict[key] = dict[key] || findElement.call(_this);\n }\n if (delete target[prop]) {\n Object.defineProperty(target, prop, {\n get: function () {\n return getter.call(this);\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n}\n// #endregion\n// #region CONCURRENT/DEBOUNCE EXECUTION\nexport function Concurrent() {\n function isPromiseLike(obj) {\n return obj && typeof obj.then === 'function';\n }\n return function (target /* type, actually */, key, descriptor) {\n const originalMethod = descriptor.value;\n const bufferKey = `pacem:concurrent-buffer:${key}`, lockKey = `pacem:concurrent-running:${key}`;\n descriptor.value = function (...args) {\n var _this = this;\n var buffer = CustomElementUtils.getAttachedPropertyValue(_this, bufferKey, []);\n var locked = CustomElementUtils.getAttachedPropertyValue(_this, lockKey, false);\n if (locked) {\n // previous process still going: \n // save args for later use,\n let deferred = DeferPromise.defer();\n //let logFn = console && console.debug;\n //if (typeof logFn === 'function')\n // logFn(`Method ${key} is busy. Procrastinating args '${JSON.stringify(args)}'...`);\n args.push(deferred);\n buffer.push(args);\n // and exit.\n return deferred.promise;\n }\n var result = originalMethod.apply(_this, args);\n if (isPromiseLike(result)) {\n let deferred = args && args.length > 0 && args[args.length - 1];\n if (deferred && deferred.promise instanceof DeferPromise)\n args.pop();\n else\n deferred = DeferPromise.defer();\n // hi-jack only if promise-like...\n CustomElementUtils.setAttachedPropertyValue(_this, lockKey, true);\n result.then(r => {\n deferred.resolve(r);\n CustomElementUtils.setAttachedPropertyValue(_this, lockKey, false);\n // warning: here's a possibly sneaky point (TODO: strengthen the lock)\n if (buffer.length > 0)\n originalMethod.apply(_this, buffer.shift());\n }, err => {\n CustomElementUtils.setAttachedPropertyValue(_this, lockKey, false);\n deferred.reject(err);\n });\n return deferred.promise;\n }\n // ...otherwise return the - hopefully - safe single-threaded result.\n else\n return result;\n };\n };\n}\nexport function Debounce(msecs = 50, keyFactory = (key, ...args) => `pacem:debouncer:${key}`) {\n return function (target /* type, actually */, key, descriptor) {\n const originalMethod = descriptor.value;\n if (msecs === true) {\n descriptor.value = function (...args) {\n const handleKey = keyFactory(key, ...args);\n var _this = this;\n cancelAnimationFrame(GET_VAL(_this, handleKey));\n SET_VAL(_this, handleKey, requestAnimationFrame(() => {\n originalMethod.apply(_this, args);\n }));\n };\n }\n else if (msecs > 0) {\n descriptor.value = function (...args) {\n const handleKey = keyFactory(key, ...args);\n var _this = this;\n clearTimeout(GET_VAL(_this, handleKey, 0));\n SET_VAL(_this, handleKey, setTimeout(() => {\n originalMethod.apply(_this, args);\n }, msecs));\n };\n }\n };\n}\nexport function Throttle(msecs = 50, keyFactory = (key, ...args) => `pacem:throttler:${key}`) {\n return function (target /* type, actually */, key, descriptor) {\n const originalMethod = descriptor.value;\n descriptor.value = function (...args) {\n const handleKey = keyFactory(key, ...args);\n const argsKey = `${handleKey}:args`;\n const _this = this, reset = () => {\n DEL_VAL(_this, handleKey);\n const lastArgs = GET_VAL(_this, argsKey);\n DEL_VAL(_this, argsKey);\n if (lastArgs) {\n originalMethod.apply(_this, args);\n }\n };\n // guard: the presence of an handleKey\n // indicates a too-close call => exit\n if (!Utils.isNull(GET_VAL(_this, handleKey))) {\n SET_VAL(_this, argsKey, args ?? ['pacem']);\n return;\n }\n SET_VAL(_this, handleKey, 1);\n originalMethod.apply(_this, args);\n if (msecs === true) {\n requestAnimationFrame(reset);\n }\n else if (msecs > 0) {\n setTimeout(reset, msecs);\n }\n };\n };\n}\n// #endregion\n// #region TRANSFORMS\nclass Transforms {\n static register(name, fn) {\n let _set = Utils.core;\n const segments = (name || fn.name).split('.');\n for (let segment of segments.slice(0, -1)) {\n _set = _set[segment] || (_set[segment] = {});\n }\n const methodName = segments[segments.length - 1] || fn.name;\n if (!Utils.isNull(_set[methodName])) {\n console.warn(`A transform named ${methodName} already exists in this set.`);\n }\n else {\n _set[methodName] = fn;\n }\n }\n}\nexport function Transformer(name) {\n return function (target, key, descriptor) {\n const method = descriptor.value;\n Transforms.register(name, method);\n };\n}\n","/// <reference path=\"converters.ts\" />\n/// <reference path=\"decorators.ts\" />\n/// <reference path=\"logger.ts\" />\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Expression } from './expression';\nimport { LogLevel } from './logger';\nimport { INSTANCE_SCOPE_VAR } from './types';\nimport { Utils } from './utils';\nimport { CustomElementUtils } from './utils-customelement';\nimport { Watch } from './decorators';\nimport { PropertyConverters } from './converters';\n//namespace Pacem.Components {\nexport class PacemEventTarget extends HTMLElement {\n constructor() {\n super();\n this._isReady = false;\n this.emitHandler = (evt) => {\n // no handlers processed if the element is disabled.\n if (!this.disabled) {\n this.emit(evt);\n }\n };\n }\n /**\n * Executes the relevant handler defined in the `on-{evt.type}` attribute, if any.\n * @param evt {Event} the event to be fired\n */\n emit(evt) {\n if (evt.defaultPrevented) {\n // skip if evt was canceled\n return;\n }\n this._emitCore(evt);\n }\n _emitCore(evt) {\n var attrName = `on-${evt.type.toLowerCase()}`;\n if (attrName in this.attributes) {\n this.log(LogLevel.Debug, `Calling ${attrName} handler for event ${evt.type}`);\n var attrBody = this.attributes[attrName].value;\n var expression = Expression.parse(attrBody, this);\n if (!Utils.isNull(expression) && expression.pending !== true) {\n expression.evaluatePlus({ '$event': evt });\n }\n }\n }\n handle(evt, detail) {\n if (typeof evt === 'string') {\n evt = Utils.isNull(detail) ? new Event(evt, { cancelable: false }) : new CustomEvent(evt, { cancelable: false, detail });\n }\n this.emit(evt);\n }\n /** Gets whether the element has been completely loaded alongside with the other pieces of the DOM. */\n get isReady() {\n return this._isReady;\n }\n connectedCallback() {\n CustomElementUtils.setAttachedPropertyValue(this, INSTANCE_SCOPE_VAR, CustomElementUtils.findScopeContext(this));\n this.log(LogLevel.Debug, `Connected.`);\n }\n disconnectedCallback() {\n this._isReady = false;\n this.dispatchEvent(new Event('unload'));\n CustomElementUtils.deleteAttachedPropertyValue(this, INSTANCE_SCOPE_VAR);\n this.log(LogLevel.Debug, `Disconnected.`);\n }\n viewActivatedCallback() {\n this._isReady = true;\n this.log(LogLevel.Debug, `Loaded (view activated).`);\n this.dispatchEvent(new Event('load'));\n }\n /**\n * Manages the value change of a watched property.\n * @param name {string} property name\n * @param old {any} former property value\n * @param val {any} new/current property value\n * @param first {boolean} whether is the first change (right before view activation) or not\n */\n propertyChangedCallback(name, old, val, first) {\n if (first)\n this.log(LogLevel.Log, `Property \"${name}\" changed at start-up`);\n else\n this.log(LogLevel.Log, `Property \"${name}\" changed from ${old} to ${val}`);\n }\n /**\n * Wraps the native dispatchEvent in order to emit `on-{evt-type}` handler, if any.\n * @param evt {Event} the event to be fired\n */\n dispatchEvent(evt) {\n // no events dispatched if the element is disabled.\n if (this.disabled) {\n return false;\n }\n this.log(LogLevel.Log, `Dispatching event \"${evt.type}\"`);\n const ret = super.dispatchEvent(evt);\n this.emit(evt);\n return ret;\n }\n /**\n * Logs a message if a logger is available.\n * @param level {LogLevel} Level of log\n * @param message {String} Content\n * @param category {String} Grouping category\n */\n log(level, message, category = this.localName + (this.id ? '#' + this.id : '')) {\n this.logger && typeof this.logger.log === 'function' && this.logger.log(level, message, category);\n }\n /** Refreshes all the properties corresponding to explicit binding attributes. */\n refreshBindings() {\n // refresh all the bindings\n for (let j = 0; j < this.attributes.length; j++) {\n let attr = this.attributes.item(j), isBinding = CustomElementUtils.isBindingAttribute(attr.value);\n if (!isBinding)\n continue;\n let prop = CustomElementUtils.kebabToCamel(attr.name);\n let binding = CustomElementUtils.parseBindingAttribute(attr.value, this);\n this[prop] = binding.evaluate();\n }\n }\n}\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemEventTarget.prototype, \"disabled\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemEventTarget.prototype, \"logger\", void 0);\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Utils } from '../../utils';\nimport { CustomTypedEvent } from '../../events';\nimport { PacemEventTarget } from '../../eventtarget';\nimport { PCSS } from '../../prefix';\nimport { Watch } from '../../decorators';\nimport { PropertyConverters } from '../../converters';\nexport const RepeaterItemCreateEventName = 'repeateritemcreate';\nexport const RepeaterItemRemoveEventName = 'repeateritemremove';\nexport class RepeaterItemEvent extends CustomTypedEvent {\n constructor(name, args) {\n super(name, args);\n }\n}\nexport class RepeaterItemCreateEvent extends RepeaterItemEvent {\n constructor(args) {\n super(RepeaterItemCreateEventName, args);\n }\n}\nexport class RepeaterItemRemoveEvent extends RepeaterItemEvent {\n constructor(args) {\n super(RepeaterItemRemoveEventName, args);\n }\n}\nconst STD_EVENTS = ['keydown', 'keyup', 'click', 'focus', 'blur', 'dblclick', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'mousemove', 'contextmenu', 'wheel'];\nclass ElementAriaAttributes {\n constructor(_element, ariaAttrs) {\n this._element = _element;\n this._aria = Utils.extend({}, ariaAttrs || {});\n }\n toObject() {\n return Utils.extend({}, this._aria);\n }\n set(name, value) {\n this._aria[name] = value;\n const el = this._element;\n if (el.isConnected) {\n el.setAttribute('aria-' + name, value);\n }\n }\n remove(name) {\n delete this._aria[name];\n const el = this._element;\n if (el.isConnected) {\n el.removeAttribute('aria-' + name);\n }\n }\n}\nclass ElementAria {\n constructor(_element, role, attrs) {\n this._element = _element;\n this._aria = { role: role, attrs: new ElementAriaAttributes(_element, attrs) };\n }\n get role() {\n return this._aria.role;\n }\n /** Remarks: when set to an empty string AFTER the element gets connected to the DOM, this will remove the `role` attribute. */\n set role(role) {\n this._aria.role = role;\n const el = this._element;\n if (el.isConnected) {\n Utils.isNullOrEmpty(role) ? el.removeAttribute('role') : el.setAttribute('role', role);\n }\n }\n get attributes() {\n return this._aria.attrs;\n }\n}\nexport class PacemElement extends PacemEventTarget {\n constructor(role, aria) {\n super();\n this.#cssBag = [];\n this.#parts = [];\n this._tabIndex = -1;\n this.behaviors = [];\n this._aria = new ElementAria(this, role, aria);\n }\n // #region ARIA\n get aria() { return this._aria; }\n // #endregion\n static #stdEvtsMemoizer = null;\n static get emittedEventTypes() {\n return this.#stdEvtsMemoizer ??= Utils.readonlyCopy(STD_EVENTS);\n }\n #cssBag;\n #parts;\n connectedCallback() {\n super.connectedCallback();\n if (!Utils.isNullOrEmpty(this._aria.role)) {\n this.setAttribute('role', this._aria.role);\n }\n let ariaAttrs = this._aria.attributes.toObject();\n if (!Utils.isNullOrEmpty(ariaAttrs)) {\n for (let name in ariaAttrs) {\n this.setAttribute('aria-' + name, ariaAttrs[name]);\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n STD_EVENTS.forEach(e => {\n this.addEventListener(e, this.emitHandler, false);\n });\n for (var behavior of this.behaviors || []) {\n behavior.register(this);\n }\n }\n disconnectedCallback() {\n for (var behavior of this.behaviors || []) {\n behavior.unregister(this);\n }\n STD_EVENTS.forEach(e => {\n this.removeEventListener(e, this.emitHandler, false);\n });\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'css':\n for (var css in this.css) {\n this.style.setProperty(css, this.css[css]);\n }\n break;\n case 'cssClass':\n if (Utils.isArray(this.cssClass)) {\n const newBag = this.cssClass;\n for (let css of this.#cssBag.splice(0)) {\n Utils.removeClass(this, css);\n }\n for (let css of newBag) {\n this.#cssBag.push(css);\n Utils.addClass(this, css);\n }\n }\n else\n for (let css in this.cssClass) {\n Utils.toggleClass(this, css, this.cssClass[css]);\n }\n break;\n case 'cssPart':\n const cssPart = this.cssPart, bag = this.#parts;\n if (Utils.isArray(cssPart)) {\n const newBag = cssPart;\n for (let partName of bag.splice(0)) {\n Utils.removePart(this, partName);\n }\n for (let partName of newBag) {\n bag.push(partName);\n Utils.addPart(this, partName);\n }\n }\n else\n for (let partName in cssPart) {\n Utils.togglePart(this, partName, cssPart[partName]);\n }\n break;\n case \"hide\":\n const hidingCss = (PCSS + '-hiding');\n if (val) {\n const el = this, animCss = PCSS + '-anim', callback = () => {\n el.setAttribute('hidden', '');\n el.aria.attributes.set('hidden', 'true');\n };\n if (Utils.hasClass(el, animCss) && !Utils.isNull(old)) {\n Utils.removeClass(el, animCss);\n requestAnimationFrame(() => {\n Utils.addClass(el, hidingCss);\n Utils.addClass(el, animCss);\n Utils.waitForAnimationEnd(el, 250).then(_ => {\n if (el.hide) {\n callback();\n }\n Utils.removeClass(el, hidingCss);\n });\n });\n }\n else\n callback();\n }\n else {\n Utils.removeClass(this, hidingCss);\n this.removeAttribute('hidden');\n this.aria.attributes.remove('hidden');\n }\n break;\n case 'tooltip':\n this.title = val;\n Utils.isNullOrEmpty(val) ? this.aria.attributes.remove('label') : this.aria.attributes.set('label', val);\n break;\n case 'tabOrder':\n this._tabIndex = val;\n if (!this.disabled) {\n this.tabIndex = val;\n }\n break;\n case 'behaviors':\n if (!Utils.isNullOrEmpty(old)) {\n for (let behavior of old) {\n behavior.unregister(this);\n }\n }\n if (!Utils.isNullOrEmpty(val) && !first) {\n for (let behavior of val) {\n behavior.register(this);\n }\n }\n break;\n case 'disabled':\n let cssDis = PCSS + '-' + name;\n if (!!val) {\n this._tabIndex = this.tabIndex;\n this.tabIndex = -1;\n Utils.addClass(this, cssDis);\n }\n else {\n this.tabIndex = this._tabIndex;\n Utils.removeClass(this, cssDis);\n }\n break;\n case 'culture':\n if (Utils.isNullOrEmpty(val)) {\n this.removeAttribute('lang');\n }\n else {\n this.setAttribute('lang', val);\n }\n if (!first) {\n this.refreshBindings();\n }\n break;\n }\n }\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json /* when declared plainly assume array of strings */ })\n], PacemElement.prototype, \"cssClass\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemElement.prototype, \"cssPart\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemElement.prototype, \"css\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemElement.prototype, \"hide\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemElement.prototype, \"tooltip\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemElement.prototype, \"tabOrder\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemElement.prototype, \"culture\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemElement.prototype, \"behaviors\", void 0);\nexport class PacemContentElement extends PacemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'content' && !first) {\n this._fillContent(val);\n }\n }\n _isContentNullOrEmpty(content = this.content) {\n return Utils.isNullOrEmpty(content) || (content instanceof DocumentFragment && content.childElementCount === 0);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._original = Array.from(this.children);\n if (!this._isContentNullOrEmpty()) {\n this._fillContent();\n }\n }\n disconnectedCallback() {\n if (!Utils.isNullOrEmpty(this._original)) {\n this.innerHTML = '';\n Element.prototype.append.apply(this, this._original);\n }\n super.disconnectedCallback();\n }\n _fillContent(val = this.content) {\n const output = this.sanitize(val);\n if (Utils.isNullOrEmpty(output)) {\n this.innerHTML = '';\n }\n else {\n if (output instanceof Node) {\n this.innerHTML = '';\n this.append(output);\n }\n else {\n this.innerHTML = output;\n }\n }\n }\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemContentElement.prototype, \"content\", void 0);\nexport class PacemUnsafeContentElement extends PacemContentElement {\n sanitize(html) {\n return html;\n }\n}\nexport class PacemSafeContentElement extends PacemContentElement {\n _sanitizeLegacy(html) {\n if (Utils.isNullOrEmpty(html)) {\n return html;\n }\n if (html instanceof Node) {\n for (let i = html.childNodes.length - 1; i >= 0; i--) {\n const node = html.childNodes.item(i);\n if (node instanceof HTMLScriptElement) {\n node.remove();\n }\n else {\n this.sanitize(node);\n }\n }\n return html;\n }\n else {\n const scriptBlockPattern = /<script.+<\\/script>/g;\n // TODO: remove onclick, onload, onkey*, ... attributes\n return (html || '').toString().replace(scriptBlockPattern, '');\n }\n }\n sanitize(html) {\n // TODO: implement by using (when available in dom library)\n // https://developer.mozilla.org/en-US/docs/Web/API/Sanitizer/Sanitizer\n return this._sanitizeLegacy(html);\n }\n}\n//}\n","import { CurrentIndexChangeEvent } from '../../adapter';\nimport { Utils } from '../../utils';\nimport { PropertyChangeEventName } from '../../events';\nimport { PacemEventTarget } from '../../eventtarget';\nimport { PacemElement } from './types';\nexport class PacemAdapter extends PacemElement {\n constructor() {\n super(...arguments);\n this._propertyChangeHandler = (evt) => {\n this.masterPropertyChangedCallback(evt.detail.propertyName, evt.detail.oldValue, evt.detail.currentValue, evt.detail.firstChange);\n };\n }\n /** Gets the adapted element. */\n get master() {\n return this._element;\n }\n /** Gets whether this adapter has been initialized or not. */\n get initialized() {\n return !Utils.isNull(this._element);\n }\n /**\n * Handles the property changes for the master element.\n * @param name Name of the property that has changed\n * @param old Previous value\n * @param val Current value\n * @param first Is it the startup change?\n */\n masterPropertyChangedCallback(name, old, val, first) {\n switch (name) {\n case 'items':\n this._adjustFocusIndex();\n break;\n case 'index':\n this._element.dispatchEvent(new CurrentIndexChangeEvent({ currentIndex: val, previousIndex: old }));\n break;\n }\n }\n /**\n * Handles the property changes for item elements.\n * @param index Index of the element among the items\n * @param name Name of the property that has changed\n * @param old Previous value\n * @param val Current value\n * @param first Is it the startup change?\n */\n itemPropertyChangedCallback(index, name, old, val, first) {\n // empty implementation\n }\n /** Called righat after the adapter 'initialize'. */\n initializeCallback() {\n // empty implementation\n }\n destroyCallback() {\n // empty implementation\n }\n initialize(adapted) {\n if (this._element != null) {\n this.destroy();\n //throw `Cannot initialize an adapter twice.`;\n }\n if (adapted != null) {\n this._element = adapted;\n this._element.addEventListener(PropertyChangeEventName, this._propertyChangeHandler, false);\n }\n this.initializeCallback();\n }\n destroy() {\n if (this._element != null)\n this._element.removeEventListener(PropertyChangeEventName, this._propertyChangeHandler, false);\n this.destroyCallback();\n }\n disconnectedCallback() {\n this.destroy();\n super.disconnectedCallback();\n }\n _adjustFocusIndex() {\n let items = this._element.items;\n const index = this._element.index;\n const length = items && items.length;\n const ndxStart = length ? Math.max(0, Math.min(length - 1, index)) : -1;\n const ndx = this._getAvailable(ndxStart);\n this._element.index = ndx;\n }\n _getNextAvailable(ndxStart) {\n return this._getAvailable(ndxStart, 1);\n }\n _getPreviousAvailable(ndxStart) {\n return this._getAvailable(Math.max(0, ndxStart), -1);\n }\n _getAvailable(ndxStart = this._element && this._element.index, step = 0) {\n let items = this._element.items, length;\n if (!(items && (length = items.length) > 0))\n return -1;\n ndxStart = ndxStart % length;\n let ndx = (ndxStart + step + length) % length;\n let item;\n step = step || -1;\n while ((item = items[ndx]) instanceof PacemEventTarget && item.disabled === true\n || (item instanceof PacemElement && item.hide === true)) {\n ndx = (ndx + step + length) % length;\n if (ndx == ndxStart) {\n // loop completed\n return -1;\n }\n }\n return ndx;\n }\n /**\n * Returns whether the provided index is close (adjacent or equal) to the current one in focus.\n * @param ndx index to be checked\n */\n isClose(ndx) {\n const current = this._getAvailable();\n return ndx === current\n || ndx === this._getPreviousAvailable(current)\n || ndx === this._getNextAvailable(current);\n }\n /**\n * Returns whether the provided index is adjacent (previous on the list) to the current one in focus.\n * @param ndx index to be checked\n */\n isPrevious(ndx) {\n const current = this._getAvailable();\n return ndx === this._getPreviousAvailable(current);\n }\n /**\n * Returns whether the provided index is adjacent (next on the list) to the current one in focus.\n * @param ndx index to be checked\n */\n isNext(ndx) {\n const current = this._getAvailable();\n return ndx === this._getNextAvailable(current);\n }\n select(ndx) {\n this._element.index = this._getAvailable(ndx);\n }\n previous(loop = true) {\n var prev = this._getPreviousAvailable(this._element.index);\n if (prev >= 0 && (loop || this._element.index > prev))\n this._element.index = prev;\n }\n next(loop = true) {\n var next = this._getNextAvailable(this._element.index);\n if (next >= 0 && (loop || this._element.index < next))\n this._element.index = next;\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemAnnihilatorElement = class PacemAnnihilatorElement extends HTMLElement {\n constructor() {\n super();\n }\n connectedCallback() {\n this.remove();\n }\n};\nPacemAnnihilatorElement = __decorate([\n CustomElement({ tagName: P + '-annihilator' })\n], PacemAnnihilatorElement);\nexport { PacemAnnihilatorElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemBeforeunloadElement = class PacemBeforeunloadElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._unloadingHandler = (evt) => {\n const msg = this.message;\n if (!this.active || this.disabled) {\n return;\n }\n if (evt.type === 'beforeunload') {\n evt.preventDefault();\n evt.returnValue = msg || '';\n }\n else if (!confirm(msg || 'Leave page?')) {\n evt.preventDefault();\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n window.addEventListener('navigating', this._unloadingHandler, false);\n window.addEventListener('beforeunload', this._unloadingHandler, false);\n }\n disconnectedCallback() {\n window.removeEventListener('navigating', this._unloadingHandler, false);\n window.removeEventListener('beforeunload', this._unloadingHandler, false);\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBeforeunloadElement.prototype, \"message\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemBeforeunloadElement.prototype, \"active\", void 0);\nPacemBeforeunloadElement = __decorate([\n CustomElement({ tagName: P + '-beforeunload' })\n], PacemBeforeunloadElement);\nexport { PacemBeforeunloadElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemBroadcastChannelProxyElement = class PacemBroadcastChannelProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this.autosend = true;\n this._messageHandler = (evt) => {\n this.result = evt.data;\n this.dispatchEvent(new CustomEvent('receive', { detail: evt.data, bubbles: false, cancelable: false }));\n };\n this._errorHandler = (evt) => {\n this.dispatchEvent(new CustomEvent('error', { detail: evt.data, bubbles: false, cancelable: false }));\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._initializeChannel();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'src':\n this._disposeChannel();\n this._initializeChannel(val);\n break;\n case 'autosend':\n case 'disabled':\n case 'message':\n if (this.autosend) {\n this.send(this.message);\n }\n break;\n }\n }\n }\n disconnectedCallback() {\n this._disposeChannel();\n super.disconnectedCallback();\n }\n send(message = this.message) {\n if (this.disabled) {\n return;\n }\n const channel = this.#channel;\n if (!Utils.isNull(channel)) {\n channel.postMessage(message);\n }\n }\n #channel;\n _initializeChannel(name = this.channelName) {\n if (!Utils.isNullOrEmpty(name)) {\n const channel = this.#channel = new BroadcastChannel(name);\n channel.addEventListener('message', this._messageHandler, false);\n channel.addEventListener('messageerror', this._errorHandler, false);\n if (this.autosend && !Utils.isNull(this.message)) {\n this.send();\n }\n }\n }\n _disposeChannel(channel = this.#channel) {\n if (!Utils.isNull(channel)) {\n channel.removeEventListener('messageerror', this._errorHandler, false);\n channel.removeEventListener('message', this._messageHandler, false);\n channel.close();\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBroadcastChannelProxyElement.prototype, \"message\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemBroadcastChannelProxyElement.prototype, \"result\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBroadcastChannelProxyElement.prototype, \"channelName\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemBroadcastChannelProxyElement.prototype, \"autosend\", void 0);\nPacemBroadcastChannelProxyElement = __decorate([\n CustomElement({ tagName: P + '-broadcastchannel-proxy' })\n], PacemBroadcastChannelProxyElement);\nexport { PacemBroadcastChannelProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { detect } from '@pacem/pacem-foundation';\nimport { CustomElement, Watch } from '../../decorators';\nimport { P } from '../../prefix';\nimport { PropertyConverters } from '../../converters';\nimport { PropertyChangeEvent } from '../../events';\nimport { PacemEventTarget } from '../../eventtarget';\n//namespace Pacem.Components {\nlet PacemBrowserDetectElement = class PacemBrowserDetectElement extends PacemEventTarget {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._detect();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'userAgent') {\n this._detect(val);\n }\n }\n #browser;\n #version;\n get browser() {\n return this.#browser;\n }\n get version() {\n return this.#version;\n }\n _detect(userAgent = this.userAgent) {\n const { version, name } = detect(userAgent);\n const { browser: oldName, version: oldVersion } = this;\n if (name != oldName) {\n this.#browser = name;\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'browser', currentValue: name, oldValue: oldName }));\n }\n if (version != oldVersion) {\n this.#version = version;\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'version', currentValue: version, oldValue: oldVersion }));\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBrowserDetectElement.prototype, \"userAgent\", void 0);\nPacemBrowserDetectElement = __decorate([\n CustomElement({ tagName: P + '-browser-detect' })\n], PacemBrowserDetectElement);\nexport { PacemBrowserDetectElement };\n//}\n","import { Utils } from './utils';\n//namespace Pacem {\nconst EXPIRATION_FIELD = '_exp';\nexport class Storage {\n _getStorage(persistent) {\n return !!persistent ? window.localStorage : window.sessionStorage;\n }\n _parseValue(storage, name) {\n const value = storage.getItem(name);\n if (Utils.isNullOrEmpty(value)) {\n return null;\n }\n const output = Utils.Json.parse(value);\n if (!Object.hasOwnProperty(EXPIRATION_FIELD)) {\n return output;\n }\n const exp = output[EXPIRATION_FIELD];\n if (exp < Date.now()) {\n storage.removeItem(name);\n return null;\n }\n return output['value'];\n }\n setPropertyValue(name, value, persistent) {\n var storage = this._getStorage(persistent === true || (typeof persistent === 'number' && persistent > 0));\n var storedValue = value;\n // set cache timeout\n if (typeof persistent === 'number' && persistent > 0) {\n const exp = Date.now() + 1000 * persistent;\n storedValue = { value: value };\n storedValue[EXPIRATION_FIELD] = exp;\n }\n storage.setItem(name, Utils.Json.stringify(storedValue));\n // delete omonymy\n storage = this._getStorage(!persistent);\n storage.removeItem(name);\n }\n getPropertyValue(name) {\n return this._parseValue(this._getStorage(false), name)\n || this._parseValue(this._getStorage(true), name);\n }\n clear() {\n var storage = this._getStorage(true);\n storage.clear();\n storage = this._getStorage(false);\n storage.clear();\n }\n ;\n removeProperty(name) {\n var storage = this._getStorage(true);\n storage.removeItem(name);\n storage = this._getStorage(false);\n storage.removeItem(name);\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { Storage } from '../../storage';\nimport { PropertyChangeEvent } from '../../events';\n//namespace Pacem.Components {\nlet PacemDataElement = class PacemDataElement extends PacemEventTarget {\n constructor(storage = new Storage()) {\n super();\n this.storage = storage;\n this._handle = 0;\n this._flag = false;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'persistAs':\n if (!Utils.isNullOrEmpty(old)) {\n this.storage.removeProperty(old);\n }\n if (first === true && !Utils.isNullOrEmpty(val)) {\n this.model = this.storage.getPropertyValue(val) ?? this.model;\n }\n break;\n case 'model':\n const debounce = this.debounce, throttle = this.throttle, emit = () => {\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: name, oldValue: old, currentValue: val, firstChange: first }));\n };\n if (debounce > 0 && !first) {\n if (throttle) {\n if (this._flag)\n return;\n this._flag = true;\n emit();\n this._handle = window.setTimeout(() => { this._flag = false; }, debounce);\n }\n else {\n clearTimeout(this._handle);\n this._handle = window.setTimeout(emit, debounce);\n }\n }\n else {\n emit();\n }\n // persist\n if (!first && !Utils.isNullOrEmpty(this.persistAs)) {\n if (Utils.isNull(val))\n this.storage.removeProperty(this.persistAs);\n else\n this.storage.setPropertyValue(this.persistAs, val, true);\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false /* in order to debounce the propertychange emit */, converter: PropertyConverters.Eval })\n], PacemDataElement.prototype, \"model\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDataElement.prototype, \"persistAs\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataElement.prototype, \"debounce\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.BooleanStrict })\n], PacemDataElement.prototype, \"throttle\", void 0);\nPacemDataElement = __decorate([\n CustomElement({ tagName: P + '-data' })\n], PacemDataElement);\nexport { PacemDataElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, PCSS } from './_default-imports';\nimport { TweenService } from '../../animations/tween-service';\nimport { Easings } from '../../animations/easings';\nimport { LogLevel } from '../../logger';\nimport { CustomElementUtils } from '../../utils-customelement';\n//namespace Pacem.Components {\nexport var DockMode;\n(function (DockMode) {\n DockMode[\"Top\"] = \"top\";\n DockMode[\"Bottom\"] = \"bottom\";\n})(DockMode || (DockMode = {}));\n/** @deprecated */\nlet PacemDockElement = class PacemDockElement extends PacemEventTarget {\n constructor(_tweener = new TweenService()) {\n super();\n this._tweener = _tweener;\n this.mode = DockMode.Top;\n this.transitionDuration = 300 /* msecs */;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'dock' && (!Utils.isNull(old) || val != false))\n this._doDock();\n else if (name === 'mode' && this.dock === true)\n this._doDock();\n }\n _animate(from, to) {\n var transition = this.transitionDuration;\n if (!(transition > 0))\n transition = 300;\n //\n return this._tweener.run(from, to, transition, this.delay, Easings.sineInOut, (time, value) => {\n this._setOffset(value);\n }).then(() => {\n this._resetOffset();\n });\n }\n _setOffset(value) {\n this.style.transform = 'translateY(' + value + 'px)';\n }\n _resetOffset() {\n this.style.transform = '';\n }\n _compute() {\n const offset = Utils.offset(this);\n const css = getComputedStyle(this);\n const scrollTop = Utils.scrollTop;\n switch (this.mode) {\n case DockMode.Bottom:\n const marginBottom = parseInt(css.marginBottom);\n const bottom = offset.top;\n const deltaBottom = Utils.windowSize.height - (bottom - scrollTop + this.offsetHeight);\n return { delta: deltaBottom + marginBottom };\n case DockMode.Top:\n const marginTop = parseInt(css.marginTop);\n const top = offset.top;\n const delta = top - scrollTop;\n return { delta: -(delta + marginTop) };\n }\n }\n _doDock() {\n const docked = this.dock;\n if (docked) {\n const cmp = this._compute();\n if (Utils.isNull(cmp))\n return;\n //\n // adding the css classes first...\n Utils.addClass(this, PCSS + '-dock');\n switch (this.mode) {\n case DockMode.Bottom:\n Utils.removeClass(this, PCSS + '-dock-top');\n Utils.addClass(this, PCSS + '-dock-bottom');\n break;\n case DockMode.Top:\n Utils.removeClass(this, PCSS + '-dock-bottom');\n Utils.addClass(this, PCSS + '-dock-top');\n break;\n }\n // ...so have to flip `from` and `to` \n const from = -cmp.delta;\n const to = 0;\n const state = CustomElementUtils.getAttachedPropertyValue(this, 'pacem-dock:state') || 0;\n CustomElementUtils.setAttachedPropertyValue(this, 'pacem-dock:state', -from + state);\n this.log(LogLevel.Info, `animating from ${from}px to ${to}px`);\n //\n this._animate(from, to) /*.then(() => { })*/;\n }\n else {\n // removing the css classes first then animating\n const from = CustomElementUtils.getAttachedPropertyValue(this, 'pacem-dock:state');\n CustomElementUtils.deleteAttachedPropertyValue(this, 'pacem-dock:state');\n const to = 0;\n this.log(LogLevel.Info, `animating back from ${from}px to ${to}px`);\n Utils.removeClass(this, `${PCSS}-dock ${PCSS}-dock-top ${PCSS}-dock-bottom`);\n this._animate(from, to);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDockElement.prototype, \"mode\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemDockElement.prototype, \"dock\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemDockElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDockElement.prototype, \"delay\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDockElement.prototype, \"transitionDuration\", void 0);\nPacemDockElement = __decorate([\n CustomElement({\n tagName: P + '-dock'\n })\n], PacemDockElement);\nexport { PacemDockElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { CustomElementUtils } from '../../utils-customelement';\n//namespace Pacem.Components {\nexport class PacemTransferProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._dom = [];\n this._children = [];\n }\n get dom() {\n return this._children;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.moveContent(this.proxy);\n }\n moveContent(to) {\n if (!Utils.isNull(to)) {\n if (Utils.isNullOrEmpty(this._dom)) {\n this._dom = Utils.moveItems(this.childNodes, to);\n this._children = this._dom.filter(e => e instanceof Element);\n }\n else {\n Utils.moveItems(this._children, to);\n }\n }\n }\n disconnectedCallback() {\n for (let item of (this._dom || []).splice(0)) {\n item.remove();\n }\n super.disconnectedCallback();\n }\n}\n/** Moves its content to the document body and eventually removes it when disconnected. */\nlet PacemBodyProxyElement = class PacemBodyProxyElement extends PacemTransferProxyElement {\n get proxy() {\n return document.body;\n }\n};\nPacemBodyProxyElement = __decorate([\n CustomElement({\n tagName: P + '-body-proxy'\n })\n], PacemBodyProxyElement);\nexport { PacemBodyProxyElement };\n/** Moves its content to the closest shell and eventually removes it when disconnected. */\nlet PacemShellProxyElement = class PacemShellProxyElement extends PacemTransferProxyElement {\n get proxy() {\n return CustomElementUtils.findAncestorShell(this);\n }\n};\nPacemShellProxyElement = __decorate([\n CustomElement({\n tagName: P + '-shell-proxy'\n })\n], PacemShellProxyElement);\nexport { PacemShellProxyElement };\n/** Moves its content to the provided target element. */\nlet PacemElementProxyElement = class PacemElementProxyElement extends PacemTransferProxyElement {\n get proxy() {\n return this.target;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'target' && !first) {\n this.moveContent(this.proxy);\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemElementProxyElement.prototype, \"target\", void 0);\nPacemElementProxyElement = __decorate([\n CustomElement({\n tagName: P + '-element-proxy'\n })\n], PacemElementProxyElement);\nexport { PacemElementProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nclass EmitEvent extends Event {\n constructor(_originalEvent) {\n super('emit');\n this._originalEvent = _originalEvent;\n }\n get originalEvent() {\n return this._originalEvent;\n }\n}\nconst ElementOrWindowConverter = {\n convert: function (attr, element) {\n if (attr === '$window') {\n return window;\n }\n return PropertyConverters.Element.convert(attr, element);\n },\n convertBack: (prop, element) => {\n if (prop === window) {\n return '$window';\n }\n return PropertyConverters.Element.convertBack(prop, element);\n }\n};\nlet PacemEventProxyElement = class PacemEventProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._emitHandler = (evt) => {\n var event = new EmitEvent(evt);\n this.dispatchEvent(event);\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._observe();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'target':\n this._unobserve(old, this.event, this.capture);\n this._observe();\n break;\n case 'event':\n this._unobserve(this.target, old, this.capture);\n this._observe();\n break;\n case 'capture':\n this._unobserve(this.target, this.event, old);\n this._observe();\n break;\n }\n }\n }\n disconnectedCallback() {\n this._unobserve();\n super.disconnectedCallback();\n }\n _unobserve(target = this.target, event = this.event, capture = this.capture) {\n if (Utils.isNull(target) || Utils.isNullOrEmpty(event)) {\n return;\n }\n target.removeEventListener(event, this._emitHandler, { capture });\n }\n _observe(target = this.target, event = this.event, capture = this.capture) {\n if (Utils.isNull(target) || Utils.isNullOrEmpty(event)) {\n return;\n }\n target.addEventListener(event, this._emitHandler, { capture });\n }\n};\n__decorate([\n Watch({ emit: false, converter: ElementOrWindowConverter })\n], PacemEventProxyElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemEventProxyElement.prototype, \"event\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemEventProxyElement.prototype, \"capture\", void 0);\nPacemEventProxyElement = __decorate([\n CustomElement({\n tagName: P + '-event-proxy'\n })\n], PacemEventProxyElement);\nexport { PacemEventProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, LogLevel } from './_default-imports';\nimport { Fetcher, HttpMethod, FetchSuccessEventName, FetchErrorEventName, FetchResultEventName } from '../../net/fetcher';\n//namespace Pacem.Components {\nconst ABORT_MESSAGE = \"New incoming request overrides the ongoing one. Aborting.\";\nlet PacemFetchElement = class PacemFetchElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n /** Gets or sets whether to trigger a fetch whenever a significant property has changed (default: true). */\n this.autofetch = true;\n this.debounce = 100;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._delayAndConditionallyFetch();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // parameters/headers -> in order to avoid unnecessary fetches don't compare byref but term by term in the json\n switch (name) {\n case 'url':\n case 'method':\n case 'type':\n case 'as':\n case 'mode':\n case 'credentials':\n case 'disabled':\n case 'autofetch':\n this._delayAndConditionallyFetch();\n break;\n case 'parameters':\n case 'headers':\n if (!this.diffByValues\n // spare round-trips: compare stringified values.\n // state might be changed, by it's up to the dev to unlock this\n // (i.e. just by calling 'fetch()' directly)\n || Utils.jsonSortStringify(old) != Utils.jsonSortStringify(val)) {\n this._delayAndConditionallyFetch();\n }\n break;\n }\n }\n _delayAndConditionallyFetch() {\n clearTimeout(this._handle);\n if (this.disabled) {\n this._abortPending();\n }\n else if (this.autofetch) {\n this._handle = setTimeout(() => {\n this.fetch();\n }, this.debounce || 0);\n }\n }\n _abortPending() {\n if (this.#aborter) {\n this.#aborter.abort(ABORT_MESSAGE);\n this.#aborter = null;\n }\n }\n #aborter;\n #ongoing;\n /** Returns a promise to a request having an already-consumed response body. */\n fetch() {\n if (this.throttle && this.fetching) {\n // exit\n return this.#ongoing;\n }\n return this.#ongoing = new Promise((resolve, reject) => {\n var url = this.url;\n // any reason to exit now?\n if (!this.isReady || Utils.isNullOrEmpty(url) || this.disabled) {\n resolve(null);\n return;\n }\n // go on...\n let _me = this;\n _me.fetching = true;\n const type = _me.type || 'json';\n let contentType = 'application/json';\n switch (type) {\n case 'raw':\n contentType = 'application/x-www-form-urlencoded';\n break;\n }\n const method = (_me.method || HttpMethod.Get).toUpperCase();\n let options = {\n headers: Utils.extend({ 'Content-Type': contentType }, _me.headers),\n method,\n mode: _me.mode || 'cors',\n credentials: _me.credentials || 'same-origin',\n cache: _me.cache || 'default'\n };\n const parameters = Utils.clone(_me.parameters ?? {});\n // complete a templated url, just in case (and remove params)\n // Note: templated urls might sound pleonastic where you can simply concatenate pieces of string.\n // They become handly in non-controllable autogenerated scenarios (e.g. autogenerated forms) where REST templated urls are involved.\n url = Utils.URIs.format(url, parameters, /* remove matched params if... */ method == \"GET\");\n if (!Utils.isNullOrEmpty(parameters)) {\n switch (method) {\n case 'GET':\n url = Utils.URIs.appendQuery(url, parameters);\n break;\n case 'PUT':\n case 'POST':\n case 'PATCH':\n switch (_me.type) {\n case 'raw':\n let searchParams = new URLSearchParams();\n for (let key in parameters) {\n searchParams.set(key, parameters[key]);\n }\n options.body = searchParams;\n break;\n default:\n options.body = Utils.Json.stringify(parameters);\n break;\n }\n break;\n }\n }\n // mandatory tmpl segments left over?\n if (Utils.URIs.hasMandatoryTemplateSegments(url)) {\n // exit\n resolve(null);\n return;\n }\n this._abortPending();\n const { signal } = this.#aborter = new AbortController();\n options.signal = signal;\n fetch(url, options).then(r => {\n this.#aborter = null;\n _me.fetching = false;\n if (r.ok) {\n this.dispatchEvent(new CustomEvent(FetchSuccessEventName, { detail: r }));\n const empty = Fetcher.isEmpty(r);\n if (empty) {\n switch (_me.as) {\n case 'blob':\n case 'image':\n _me.result = null;\n break;\n case 'text':\n _me.result = null;\n break;\n default:\n _me.result = null;\n break;\n }\n resolve(r);\n }\n else {\n switch (_me.as) {\n case 'blob':\n case 'image':\n r.blob().then(b => {\n if (_me.as === 'image') {\n Utils.blobToDataURL(b).then(i => {\n _me._acceptFetchResult(i);\n });\n }\n else {\n _me._acceptFetchResult(b);\n }\n resolve(r);\n }, _ => {\n this.log(LogLevel.Warn, `Couldn't parse a ${_me.as}. ${_}`);\n resolve(null);\n });\n break;\n case 'text':\n r.text().then(t => {\n _me._acceptFetchResult(t);\n resolve(r);\n });\n break;\n default:\n r.json().then(j => {\n _me._acceptFetchResult(j);\n resolve(r);\n }, _ => {\n this.log(LogLevel.Warn, `Couldn't parse a ${_me.as}. ${_}`);\n resolve(null);\n });\n break;\n }\n }\n }\n else {\n this.dispatchEvent(new CustomEvent(FetchErrorEventName, { detail: r }));\n reject(r);\n }\n }, (reason) => {\n if (typeof reason === 'string' && reason === ABORT_MESSAGE) {\n this.log(LogLevel.Info, reason);\n resolve(null);\n }\n else {\n reject(reason);\n }\n });\n });\n }\n _acceptFetchResult(val) {\n this.dispatchEvent(new CustomEvent(FetchResultEventName, { detail: val }));\n this.result = val;\n }\n};\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemFetchElement.prototype, \"parameters\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemFetchElement.prototype, \"headers\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"credentials\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"mode\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"cache\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.BooleanStrict })\n], PacemFetchElement.prototype, \"fetching\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemFetchElement.prototype, \"autofetch\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"as\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"type\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Number })\n], PacemFetchElement.prototype, \"debounce\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemFetchElement.prototype, \"throttle\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemFetchElement.prototype, \"diffByValues\", void 0);\n__decorate([\n Watch()\n], PacemFetchElement.prototype, \"result\", void 0);\nPacemFetchElement = __decorate([\n CustomElement({ tagName: P + '-fetch' })\n], PacemFetchElement);\nexport { PacemFetchElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, LogLevel } from './_default-imports';\nimport { DefaultComparer } from '../../comparers';\nimport { HistoryService } from '@pacem/pacem-foundation';\nexport class StateEvent extends CustomEvent {\n constructor(type, detail) {\n super(type, { detail });\n }\n}\nlet PacemHistoryElement = class PacemHistoryElement extends PacemEventTarget {\n #history;\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'state':\n this._handleStateChange(val);\n break;\n case 'maxlength':\n const h = this.#history;\n if (!Utils.isNull(h)) {\n h.maxlength = val;\n }\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._handleStateChange();\n }\n _handleStateChange(val = this.state) {\n const history = this.#history;\n if (!Utils.isNull(history)) {\n if (DefaultComparer(history.current, val) !== true) {\n history.push(val);\n this.log(LogLevel.Log, 'Pushed state.');\n this._synchronize('push');\n }\n }\n else {\n this.#history = new HistoryService(val, this.maxlength);\n }\n }\n redo() {\n const h = this.#history;\n if (!Utils.isNull(h)) {\n h.redo();\n this.log(LogLevel.Log, 'Redone state.');\n this._synchronize('redo');\n }\n }\n reset() {\n const h = this.#history;\n if (!Utils.isNull(h)) {\n h.reset();\n this.log(LogLevel.Log, 'Reset state.');\n this._synchronize('reset');\n }\n }\n undo() {\n const h = this.#history;\n if (!Utils.isNull(h)) {\n h.undo();\n this.log(LogLevel.Log, 'Undone state.');\n this._synchronize('undo');\n }\n }\n _synchronize(type) {\n const h = this.#history;\n this.canUndo = h.canUndo;\n this.canRedo = h.canRedo;\n this.state = h.current;\n const { canRedo, canUndo, current: state } = h;\n this.dispatchEvent(new StateEvent(type, { canRedo, canUndo, state }));\n }\n};\n__decorate([\n Watch({ emit: true, converter: PropertyConverters.Json })\n], PacemHistoryElement.prototype, \"state\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemHistoryElement.prototype, \"maxlength\", void 0);\n__decorate([\n Watch({ emit: true, converter: PropertyConverters.Boolean })\n], PacemHistoryElement.prototype, \"canUndo\", void 0);\n__decorate([\n Watch({ emit: true, converter: PropertyConverters.Boolean })\n], PacemHistoryElement.prototype, \"canRedo\", void 0);\nPacemHistoryElement = __decorate([\n CustomElement({ tagName: P + '-history' })\n], PacemHistoryElement);\nexport { PacemHistoryElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemHtmlProxyElement = class PacemHtmlProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._html = document.documentElement;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'attr' && old) {\n this._html.removeAttribute(old);\n }\n this._update();\n }\n _update() {\n const key = this.attr;\n if (Utils.isNullOrEmpty(key) || this.disabled) {\n // No key means do nothing\n return;\n }\n const value = this.value;\n const html = this._html;\n if (Utils.isNullOrEmpty(value)) {\n html.removeAttribute(key);\n }\n else {\n html.setAttribute(key, value);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHtmlProxyElement.prototype, \"attr\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHtmlProxyElement.prototype, \"value\", void 0);\nPacemHtmlProxyElement = __decorate([\n CustomElement({\n tagName: P + '-html-proxy'\n })\n], PacemHtmlProxyElement);\nexport { PacemHtmlProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemIfElement = class PacemIfElement extends HTMLElement {\n #innerHTML;\n propertyChangedCallback(name, old, val, first) {\n // setup lazily\n if (Utils.isNullOrEmpty(this.#innerHTML)) {\n this.#innerHTML = this.innerHTML;\n }\n if (!val) {\n this.innerHTML = '';\n }\n else {\n this.innerHTML = this.#innerHTML;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemIfElement.prototype, \"match\", void 0);\nPacemIfElement = __decorate([\n CustomElement({ tagName: P + '-if' })\n], PacemIfElement);\nexport { PacemIfElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, Utils, LogLevel } from './_default-imports';\nimport { PacemElement } from './types';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { CustomTypedEvent } from '../../events';\n//namespace Pacem.Components {\nexport class PacemItemElement extends PacemElement {\n get container() {\n return this._container;\n }\n /** @overridable */\n findContainer() {\n return CustomElementUtils.findAncestor(this, n => n instanceof PacemItemsContainerElement);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this._container = this.findContainer();\n if (!Utils.isNull(container)) {\n container.register(this);\n }\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._container)) {\n this._container.unregister(this);\n }\n super.disconnectedCallback();\n }\n}\nexport function isItemsContainer(object) {\n return 'items' in object\n && (Utils.isNull(object.items) || Utils.isArray(object.items))\n && typeof object.register === 'function'\n && typeof object.unregister === 'function';\n}\nexport const ItemRegisterEventName = \"itemregister\";\nexport const ItemUnregisterEventName = \"itemunregister\";\nexport class ItemRegisterEvent extends CustomTypedEvent {\n constructor(item, eventInit) {\n super(ItemRegisterEventName, item, eventInit);\n }\n}\nexport class ItemUnregisterEvent extends CustomTypedEvent {\n constructor(item, eventInit) {\n super(ItemUnregisterEventName, item, eventInit);\n }\n}\nclass ItemsContainerRegistrar {\n constructor(_container) {\n this._container = _container;\n if (_container == null || !(_container instanceof PacemItemsContainerElement || _container instanceof PacemCrossItemsContainerElement)) {\n throw `Must provide a valid itemscontainer.`;\n }\n }\n register(item) {\n const container = this._container;\n var retval = false;\n if (!container.validate(item)) {\n container.logger && container.logger.log(LogLevel.Debug, `${(item && item.localName)} element couldn't be registered in a ${container.localName} element.`);\n }\n else {\n if (Utils.isNull(container.items)) {\n container.items = [item];\n retval = true;\n }\n else if (container.items.indexOf(item) === -1) {\n container.items.push(item);\n retval = true;\n }\n }\n if (retval) {\n container.dispatchEvent(new ItemRegisterEvent(item));\n }\n return retval;\n }\n unregister(item) {\n const container = this._container;\n if (!Utils.isNull(container.items)) {\n const ndx = container.items.indexOf(item);\n if (ndx >= 0) {\n let item = container.items.splice(ndx, 1);\n container.dispatchEvent(new ItemUnregisterEvent(item[0]));\n return true;\n }\n }\n return false;\n }\n}\n/** Element that can be used both as ItemElement and ItemsContainer. */\nexport class PacemCrossItemsContainerElement extends PacemItemElement {\n constructor(role, aria) {\n super(role, aria);\n this._registrar = new ItemsContainerRegistrar(this);\n }\n /**\n * Registers a new item among the items.\n * @param item {TItem} Item to be enrolled\n */\n register(item) {\n return this._registrar.register(item);\n }\n /**\n * Removes an existing element from the items.\n * @param item {TItem} Item to be removed\n */\n unregister(item) {\n return this._registrar.unregister(item);\n }\n}\n__decorate([\n Watch( /* can only be databound or assigned at runtime */)\n], PacemCrossItemsContainerElement.prototype, \"items\", void 0);\nexport class PacemItemsContainerElement extends PacemElement {\n constructor(role, aria) {\n super(role, aria);\n this._registrar = new ItemsContainerRegistrar(this);\n }\n /**\n * Registers a new item among the items.\n * @param item {TItem} Item to be enrolled\n */\n register(item) {\n return this._registrar.register(item);\n }\n /**\n * Removes an existing element from the items.\n * @param item {TItem} Item to be removed\n */\n unregister(item) {\n return this._registrar.unregister(item);\n }\n}\n__decorate([\n Watch( /* can only be databound or assigned at runtime */)\n], PacemItemsContainerElement.prototype, \"items\", void 0);\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Utils, Watch, PropertyConverters } from './_default-imports';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { PacemItemElement, PacemItemsContainerElement } from './items-container';\n//namespace Pacem.Components {\nexport class PacemIterableElement extends PacemItemElement {\n /** @overrides */\n findContainer() {\n return CustomElementUtils.findAncestor(this, n => n instanceof PacemIterativeElement);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n const iter = this.container;\n const index = (iter && iter.items || []).indexOf(this);\n index >= 0\n && iter\n && iter.adapter\n && iter.adapter.itemPropertyChangedCallback(index, name, old, val, first);\n }\n}\nexport class PacemIterativeElement extends PacemItemsContainerElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // notify the adapter, if any.\n this.adapter && this.adapter.masterPropertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'adapter':\n if (!Utils.isNull(old)) {\n old.destroy();\n }\n if (!Utils.isNull(val)) {\n this.adapter.initialize(this);\n }\n break;\n case 'items':\n if (this.isReady /* connected and DOM-ready */) {\n this._checkIndex();\n }\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._checkIndex();\n }\n _checkIndex() {\n let ndx = 0;\n if (!Utils.isNullOrEmpty(this.items)) {\n if (this.index < this.items.length) {\n ndx = this.index;\n }\n }\n this.index = ndx;\n }\n disconnectedCallback() {\n if (!Utils.isNull(this.adapter))\n this.adapter.destroy();\n super.disconnectedCallback();\n }\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemIterativeElement.prototype, \"adapter\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemIterativeElement.prototype, \"index\", void 0);\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { CustomElementUtils } from '../../utils-customelement';\n//namespace Pacem.Components {\nconst REMOVE_VALUE = 'false';\nconst EMPTY_VALUE = 'true';\nlet PacemLayoutProxyElement = class PacemLayoutProxyElement extends PacemEventTarget {\n #shell;\n connectedCallback() {\n super.connectedCallback();\n this.#shell = CustomElementUtils.findAncestorShell(this);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n this._update();\n }\n disconnectedCallback() {\n const attr = this.attr;\n if (!Utils.isNullOrEmpty(attr)) {\n this._update(attr, REMOVE_VALUE, false);\n }\n super.disconnectedCallback();\n }\n _update(key = this.attr, value = this.value?.toString(), disabled = this.disabled) {\n if (Utils.isNullOrEmpty(key) || disabled) {\n // No key means do nothing\n return;\n }\n const layout = this.#shell;\n if (!Utils.isNull(layout)) {\n if (Utils.isNullOrEmpty(value) || value === REMOVE_VALUE) {\n layout.removeAttribute(key);\n }\n else {\n layout.setAttribute(key, value === EMPTY_VALUE ? '' : value);\n }\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemLayoutProxyElement.prototype, \"attr\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemLayoutProxyElement.prototype, \"value\", void 0);\nPacemLayoutProxyElement = __decorate([\n CustomElement({\n tagName: P + '-layout-proxy'\n })\n], PacemLayoutProxyElement);\nexport { PacemLayoutProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { Debounce } from '../../decorators';\n//namespace Pacem.Components {\nlet PacemMetaProxyElement = class PacemMetaProxyElement extends PacemEventTarget {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n this._update();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._update();\n }\n _update() {\n const value = this.content;\n const nameBased = !Utils.isNullOrEmpty(this.name);\n const key = nameBased ? this.name : this.itemprop;\n if (Utils.isNullOrEmpty(key) || this.disabled) {\n // No key means do nothing\n return;\n }\n const escapedKey = Utils.cssEscape(key);\n const query = nameBased ? `meta[name='${escapedKey}']` : `meta[itemprop='${escapedKey}']`;\n var meta = document.head.querySelector(query);\n if (Utils.isNull(meta)) {\n meta = document.createElement('meta');\n document.head.appendChild(meta);\n }\n else if (Utils.isNullOrEmpty(value)) {\n // Empty `content` means \"remove the element\".\n meta.remove();\n return;\n }\n // set\n meta.setAttribute(\"content\", value);\n meta.setAttribute(nameBased ? \"name\" : \"itemprop\", key);\n meta.removeAttribute(nameBased ? \"itemprop\" : \"name\");\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMetaProxyElement.prototype, \"name\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMetaProxyElement.prototype, \"itemprop\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMetaProxyElement.prototype, \"content\", void 0);\n__decorate([\n Debounce(true)\n], PacemMetaProxyElement.prototype, \"_update\", null);\nPacemMetaProxyElement = __decorate([\n CustomElement({\n tagName: P + '-meta-proxy'\n })\n], PacemMetaProxyElement);\nexport { PacemMetaProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemOnlineStatusElement = class PacemOnlineStatusElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._onlineHandler = (evt) => {\n if (!Utils.isNull(evt)) {\n this.online = evt.type === 'online';\n }\n else {\n this.online = navigator.onLine || false;\n }\n };\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('online', this._onlineHandler, false);\n window.addEventListener('offline', this._onlineHandler, false);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._onlineHandler();\n }\n disconnectedCallback() {\n window.removeEventListener('online', this._onlineHandler, false);\n window.removeEventListener('offline', this._onlineHandler, false);\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemOnlineStatusElement.prototype, \"online\", void 0);\nPacemOnlineStatusElement = __decorate([\n CustomElement({ tagName: P + '-online-status' })\n], PacemOnlineStatusElement);\nexport { PacemOnlineStatusElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P } from './_default-imports';\nimport { PacemSafeContentElement } from './types';\n//namespace Pacem.Components {\nlet PacemPanelElement = class PacemPanelElement extends PacemSafeContentElement {\n};\nPacemPanelElement = __decorate([\n CustomElement({ tagName: P + '-panel' })\n], PacemPanelElement);\nexport { PacemPanelElement };\n//}\n","/// <reference path=\"events.ts\" />\nimport { CustomTypedEvent } from './events';\n//namespace Pacem {\nexport const CommandEventName = 'command';\nexport class CommandEvent extends CustomTypedEvent {\n constructor(args) {\n super(CommandEventName, args, { bubbles: true, cancelable: true });\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters } from './_default-imports';\nimport { TemplateElement } from '../../template';\n//namespace Pacem.Components {\nlet PacemTemplateProxyElement = class PacemTemplateProxyElement extends /*PacemEventTarget*/ /*PacemEventTarget*/ TemplateElement {\n propertyChangedCallback(name, old, val, first) {\n // super.propertyChangedCallback(name, old, val, first);\n if (name === 'target') {\n this.dispatchEvent(new Event('templatechange'));\n }\n }\n addEventListener(type, listener, options) {\n super.addEventListener(type, listener, options);\n }\n removeEventListener(type, listener, options) {\n super.removeEventListener(type, listener, options);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemTemplateProxyElement.prototype, \"target\", void 0);\nPacemTemplateProxyElement = __decorate([\n CustomElement({ tagName: P + '-template-proxy' })\n], PacemTemplateProxyElement);\nexport { PacemTemplateProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PacemRepeaterElement_1;\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, LogLevel } from './_default-imports';\nimport { CustomElementUtils, RepeaterItem as RepeaterItemBase } from '../../utils-customelement';\nimport { CustomTypedEvent, PropertyChangeEvent } from '../../events';\nimport { INSTANCE_HOST_VAR } from '../../types';\nimport { CommandEventName } from '../../command';\nimport { RepeaterItemCreateEvent, RepeaterItemRemoveEvent } from './types';\nimport { PacemTemplateProxyElement } from './template-proxy';\n//namespace Pacem.Components {\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nclass ItemEvent extends CustomTypedEvent {\n constructor(type, args, _originalEvent) {\n super(type, args, { bubbles: false, cancelable: true });\n this._originalEvent = _originalEvent;\n }\n /** Gets the bubbling item's Event. */\n get srcEvent() {\n return this._originalEvent;\n }\n}\nexport class ItemCommandEvent extends ItemEvent {\n constructor(evt) {\n super(\"item\" + CommandEventName, evt.detail, evt);\n }\n}\nexport class CustomItemCommandEvent extends ItemEvent {\n constructor(evt) {\n super(\"item\" + evt.detail.commandName.toLowerCase(), evt.detail.commandArgument, evt);\n }\n}\n//\n/**\n * <pacem-repeater datasource=\"[{id:'first', items:['a','b','c']}, ...]\">\n * <ol>\n * <li>\n * <template>\n * <pacem-repeater datasource={{ ^item.items }}>\n * <template>\n * <pacem-span text=\"{{ ^^item.id+': ': ^item.toUpperCase() }}\"></pacem-span>\n * </template>\n * </pacem-repeater>\n * </template>\n * </li>\n * </ol>\n * </pacem-repeater>\n */\nlet PacemRepeaterElement = PacemRepeaterElement_1 = class PacemRepeaterElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._childItems = [];\n this._fragment = document.createDocumentFragment();\n this._setupItem = (item, index, entity) => {\n // FIRST set index on PacemRepeaterItemElement...\n item.index = index;\n // ...THEN the item entity itself.\n item.item = entity;\n };\n this._refreshItemTemplateHandler = (evt) => {\n const proxy = evt.target;\n this._itemTemplate = proxy.target;\n this._databind();\n };\n }\n removeItem(index) {\n this._removeItems(index, index);\n }\n _setItem(item, index, frag) {\n const items = this._childItems;\n let _item;\n if (index >= items.length) {\n _item = new RepeaterItem(this, this._itemTemplate, frag, this._childTemplatePlaceholder);\n this._setupItem(_item, index, item);\n items.push(_item);\n _item.append();\n }\n else {\n _item = items[index];\n this._setupItem(_item, index, item);\n _item.redrawEventually(this._itemTemplate, frag);\n }\n this.dispatchEvent(new RepeaterItemCreateEvent(_item));\n }\n _removeItems(fromIndex, toIndex) {\n const items = this._childItems;\n let exceeding = items.splice(fromIndex, toIndex + 1 - fromIndex);\n for (var i = exceeding.length - 1; i >= 0; i--) {\n let item = exceeding[i];\n this.dispatchEvent(new RepeaterItemRemoveEvent(item));\n item.remove();\n }\n }\n databind() {\n this._databind();\n }\n // @Debounce(true)\n _databind(datasource = this.datasource) {\n // not connected to the DOM? exit\n if (!this.isConnected) {\n return;\n }\n // no template? fail.\n let tmpl = this._itemTemplate, holder = this._childTemplatePlaceholder;\n if (tmpl == null) {\n throw `Missing template element in ${PacemRepeaterElement_1.name}.`;\n }\n // fill up\n let items = this._childItems, index = 0;\n try {\n for (var entity of datasource || []) {\n this._setItem(entity, index, this._fragment);\n index++;\n }\n }\n catch (e) {\n this.log(LogLevel.Error, e);\n }\n if (index < items.length) {\n this._removeItems(index, items.length - 1);\n }\n else if (!Utils.isNull(holder && holder.parentNode)) {\n // flush added items\n holder.parentNode.insertBefore(this._fragment, holder);\n }\n }\n _onCommand(evt) {\n // DO NOT stop bubbling! Might be 'handy' in autogenerated forms...\n // Pacem.stopPropagationHandler(evt);\n // ...But might lead to unwanted behaviors in nested repeaters.\n // Thus include the 'originalEvent' in the outscoped one as a read-only property.\n // 'itemcommand' event fires first\n this.dispatchEvent(new ItemCommandEvent(/* 'originalEvent' */ evt));\n // custom 'item<cmd>' event fires next\n this.dispatchEvent(new CustomItemCommandEvent(/* 'originalEvent' */ evt));\n }\n _buildupItemTemplate() {\n let tmpl = CustomElementUtils.findFirstDescendant(this, n => n instanceof HTMLTemplateElement || n instanceof PacemTemplateProxyElement);\n if (tmpl instanceof PacemTemplateProxyElement) {\n tmpl.addEventListener('templatechange', this._refreshItemTemplateHandler, false);\n this._childTemplatePlaceholder = tmpl;\n return this._itemTemplate = tmpl.target;\n }\n else {\n return this._itemTemplate = this._childTemplatePlaceholder = tmpl;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.addEventListener(CommandEventName, this._onCommand, false);\n if (this._buildupItemTemplate()) {\n this._databind();\n }\n }\n disconnectedCallback() {\n const oldPlaceholder = this._childTemplatePlaceholder;\n if (!Utils.isNull(oldPlaceholder) && oldPlaceholder instanceof PacemTemplateProxyElement) {\n oldPlaceholder.removeEventListener('templatechange', this._refreshItemTemplateHandler, false);\n }\n this.removeEventListener(CommandEventName, this._onCommand, false);\n this.datasource = [];\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'datasource':\n if (!Utils.isNull(this._itemTemplate)) {\n this._databind(val);\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Eval })\n], PacemRepeaterElement.prototype, \"datasource\", void 0);\nPacemRepeaterElement = PacemRepeaterElement_1 = __decorate([\n CustomElement({ tagName: P + '-repeater' })\n], PacemRepeaterElement);\nexport { PacemRepeaterElement };\nexport class RepeaterItem extends RepeaterItemBase {\n constructor(_repeater, _template, _fragment, _holder) {\n super(document.createComment('pacem-repeater-item'));\n this._repeater = _repeater;\n this._template = _template;\n this._fragment = _fragment;\n this._holder = _holder;\n this._alterEgos = [];\n const FIELD_PREFIX = '_';\n function _setScopeValue(name, v) {\n var owner = this, fieldName = FIELD_PREFIX + name;\n if (v !== owner[fieldName]) {\n var old = owner[fieldName];\n owner[fieldName] = v;\n var evt = new PropertyChangeEvent({ propertyName: name, oldValue: old, currentValue: v });\n owner.dispatchEvent(evt);\n }\n }\n // placeholder on roids:\n let placeholder = this.placeholder;\n Object.defineProperties(placeholder, {\n 'item': {\n get: function () {\n return this[FIELD_PREFIX + 'item'];\n },\n set: function (v) {\n _setScopeValue.apply(placeholder, ['item', v]);\n }, configurable: true\n },\n 'index': {\n get: function () {\n const val = this[FIELD_PREFIX + 'index'];\n return Utils.isNull(val) ? -1 : val;\n },\n set: function (v) {\n _setScopeValue.apply(placeholder, ['index', v]);\n }, configurable: true\n }\n });\n }\n /** @internal */\n append() {\n const tmplRef = this._template, tmplParent = this._fragment;\n this._alterEgos.push(tmplParent.appendChild(this.placeholder));\n const clonedTmpl = tmplRef.cloneNode(true);\n var host;\n if (!Utils.isNull(host = GET_VAL(this._repeater, INSTANCE_HOST_VAR))) {\n CustomElementUtils.assignHostContext(host, clonedTmpl);\n }\n var dom = clonedTmpl.content. /*children*/childNodes;\n Array.prototype.push.apply(this._alterEgos, dom);\n tmplParent.appendChild(clonedTmpl.content);\n }\n /** @internal */\n redrawEventually(tmpl, frag) {\n if (tmpl === this._template) {\n return;\n }\n this._fragment = frag;\n this._template = tmpl;\n const tmplParent = this._holder.parentElement, dom = this._alterEgos;\n while (dom.length > 0) {\n tmplParent.removeChild(dom.pop());\n }\n this.append();\n }\n get dom() {\n return this._alterEgos.filter(n => !(n instanceof Comment || n instanceof Text));\n }\n get repeater() {\n return this._repeater;\n }\n /** @internal */\n remove() {\n let tmplParent = this._holder.parentElement;\n for (var alterEgo of this._alterEgos) {\n if (alterEgo.parentElement === tmplParent && !Utils.isNull(tmplParent)) {\n tmplParent.removeChild(alterEgo);\n }\n }\n }\n get index() {\n return this.placeholder['index'];\n }\n set index(v) {\n this.placeholder['index'] = v;\n }\n get item() {\n return this.placeholder['item'];\n }\n set item(v) {\n this.placeholder['item'] = v;\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, LogLevel } from './_default-imports';\nimport { CustomTypedEvent } from '../../events';\n//namespace Pacem.Components {\nexport const ResizeEventName = 'resize';\nexport class ResizeEvent extends CustomTypedEvent {\n constructor(args) {\n super(ResizeEventName, args);\n }\n}\nconst BORDER_BOX = { box: 'border-box' };\nlet PacemResizeElement = class PacemResizeElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._checkSizeHandler = () => {\n this._assignSizeDebounced();\n };\n }\n get _target() {\n return this.target || this;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'disabled':\n this._start();\n break;\n case 'target':\n if (!Utils.isNull(this._observer)) {\n var oldTarget = old || this;\n this._observer.unobserve(oldTarget);\n }\n case 'watchPosition':\n var newTarget = this.target || this;\n if (!Utils.isNull(this._observer)) {\n this._observer.observe(newTarget, BORDER_BOX);\n }\n break;\n }\n }\n _start() {\n // disabled? switch to stop\n if (this.disabled) {\n this._stop();\n return;\n }\n if (this.watchPosition) {\n this._startWatchIntensively();\n }\n else {\n // native ResizeObserver\n this._observer = new ResizeObserver(entries => {\n var changed = false;\n for (let entry of entries) {\n if (entry.target !== this._target) {\n continue;\n }\n if (entry.contentRect) {\n changed = true;\n break;\n }\n }\n if (changed) {\n // ResizeObserverEntry pieces of info aren't accurate,\n // but useful enough to let punctually debounce\n // the expensive request\n this._assignSizeDebounced();\n }\n });\n this._observer.observe(this._target, BORDER_BOX);\n }\n window.addEventListener('resize', this._checkSizeHandler, false);\n }\n _stop() {\n window.cancelAnimationFrame(this._handle);\n window.removeEventListener('resize', this._checkSizeHandler, false);\n if (!Utils.isNull(this._observer)) {\n this._observer.disconnect();\n this._observer = null;\n }\n }\n _startWatchIntensively() {\n this._checkSize();\n this._handle = window.requestAnimationFrame(() => {\n this._startWatchIntensively();\n });\n }\n //@Throttle(true)\n _assignSizeDebounced() {\n this._checkSize();\n }\n _checkSize() {\n this.log(LogLevel.Log, 'Resize flow triggered.');\n let el = this._target;\n const rect = Utils.offset(el);\n let height = rect.height;\n let width = rect.width;\n if (height != this._previousHeight\n || width != this._previousWidth\n || (this.watchPosition &&\n (rect.left != this._previousLeft\n || rect.top != this._previousTop))) {\n this._previousHeight = height;\n this._previousWidth = width;\n this._previousLeft = rect.left;\n this._previousTop = rect.top;\n this._dispatchResize();\n }\n }\n get currentSize() {\n var args = { height: this._previousHeight, width: this._previousWidth };\n if (this.watchPosition) {\n args.left = this._previousLeft;\n args.top = this._previousTop;\n }\n return args;\n }\n _dispatchResize() {\n this.dispatchEvent(new ResizeEvent(this.currentSize));\n }\n connectedCallback() {\n super.connectedCallback();\n this._start();\n }\n disconnectedCallback() {\n this._stop();\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemResizeElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemResizeElement.prototype, \"watchPosition\", void 0);\nPacemResizeElement = __decorate([\n CustomElement({ tagName: P + '-resize' })\n], PacemResizeElement);\nexport { PacemResizeElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, PacemEventTarget, Watch, P, PropertyConverters, Utils } from './_default-imports';\nimport { CustomTypedEvent } from '../../events';\n//namespace Pacem {\nexport const RouterNavigatingEventName = 'navigating';\nexport const RouterNavigateEventName = 'navigate';\nexport class RouterNavigateEvent extends CustomTypedEvent {\n constructor(path) {\n super(RouterNavigateEventName, typeof path === 'string' ? { path } : path, { cancelable: false, bubbles: false });\n }\n}\nexport class RouterNavigatingEvent extends CustomTypedEvent {\n constructor(path) {\n super(RouterNavigatingEventName, path, { cancelable: true, bubbles: false });\n }\n}\n//}\n//namespace Pacem.Components {\nconst CHECK_PATTERN = /^([\\w\\.]:)?\\/\\/[^\\/]+/;\nlet PacemRouterElement = class PacemRouterElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._onPopState = (evt) => {\n if (!Utils.isNull(evt.state) && !this.#cancelingNavigation) {\n this.path = evt.state.$path;\n }\n };\n }\n #cancelingNavigation;\n #template;\n parseState(state = {}) {\n const path = this._stringifyMergedState(state);\n const segments = this._segmentateUrl(path);\n return this._parseState(segments.path + segments.query + segments.hash, segments.path, segments.query, segments.hash);\n }\n navigate(path, title) {\n if (this.disabled || Utils.isNullOrEmpty(path)) {\n return;\n }\n if (typeof path === 'object') {\n path = this._stringifyMergedState(path);\n }\n else {\n // ease state reutilization\n path = Utils.URIs.format(path, this.state);\n }\n if (path != this.path) {\n this.path = path;\n return;\n }\n const l = document.location;\n if (CHECK_PATTERN.test(path)) {\n if (!path.startsWith(l.protocol + '//' + l.host)) {\n throw `Only same-origin navigation is currently supported. \"${path}\" is not a valid path.`;\n }\n }\n if (!this.#cancelingNavigation) {\n // coming from path...\n const from = this.state && this.state.$path || void 0;\n // processing new segments and state\n const segments = this._segmentateUrl(path), state = this._parseState(segments.path + segments.query + segments.hash, segments.path, segments.query, segments.hash);\n // popping state? aka history.back()/.forward()/.go(...)?\n // means that the URL is already in the target fashion\n const poppingState = (l.pathname + l.search + l.hash) === segments.path + segments.query + segments.hash;\n const evt = new RouterNavigatingEvent(path);\n window.dispatchEvent(evt);\n if (this.#cancelingNavigation = evt.defaultPrevented) {\n // this will cut the history stack, no better option tho...\n if (poppingState) {\n // re-push current state\n window.history.pushState(this.state, title, from);\n }\n this.path = from;\n // exiting\n return;\n }\n // this one actually does trigger the navigation in the outer world\n this.state = state;\n if (poppingState) {\n window.history.scrollRestoration = 'manual';\n window.history.replaceState(state, title);\n }\n else {\n window.history.pushState(state, title, path);\n }\n if (!Utils.isNullOrEmpty(title)) {\n document.title = title;\n }\n window.dispatchEvent(new RouterNavigateEvent({ path, referrer: from, title }));\n }\n this.#cancelingNavigation = false;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'template':\n this.#template = null;\n break;\n case 'path':\n this.navigate(val);\n break;\n }\n }\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('popstate', this._onPopState, false);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const p = this.path;\n if (!Utils.isNullOrEmpty(p)) {\n this.navigate(p);\n }\n }\n disconnectedCallback() {\n window.removeEventListener('popstate', this._onPopState, false);\n super.disconnectedCallback();\n }\n /**\n * Merged to provided state into the current one and returns the resulting path (including current querystring and hash).\n * @param state Piece of new state to be merged\n */\n _stringifyMergedState(state) {\n const stateCopy = Utils.extend({}, state);\n const newState = Utils.extend({}, this.state, stateCopy);\n const tmpl = this.template;\n let retval = '' + tmpl;\n for (let item of this._parseTemplate(tmpl)) {\n const prop = item.name;\n const pattern = new RegExp(\"\\/\\{\" + prop + \"\\\\??\\}\");\n const value = newState[prop];\n delete stateCopy[prop];\n retval = retval.replace(pattern, Utils.isNullOrEmpty(value) ? '' : ('/' + value));\n }\n // leftovers appended as query parameters\n const q = Utils.extend({}, this.state.$query);\n for (let prop in stateCopy) {\n q[prop] = stateCopy[prop];\n }\n const { hash } = this._segmentateUrl(this.path);\n return Utils.URIs.appendQuery(retval, q, true) + hash;\n }\n _parseTemplate(tmpl = this.template) {\n if (!Utils.isNullOrEmpty(this.#template)) {\n return this.#template;\n }\n return this.#template = Utils.URIs.parseRoute(tmpl);\n }\n _segmentateUrl(url) {\n const retval = Utils.URIs.split(url);\n if (Utils.isNullOrEmpty(retval.path)) {\n return null;\n }\n return retval;\n }\n _parseState(fullPath, path, query, hash) {\n const tmpl = this._parseTemplate();\n return Utils.URIs.parseState(tmpl, fullPath, path, query, hash);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemRouterElement.prototype, \"template\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemRouterElement.prototype, \"state\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemRouterElement.prototype, \"path\", void 0);\nPacemRouterElement = __decorate([\n CustomElement({ tagName: P + '-router' })\n], PacemRouterElement);\nexport { PacemRouterElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { CustomTypedEvent } from '../../events';\n//namespace Pacem.Components {\nexport const ScrollEventName = 'scroll';\nexport class ScrollEvent extends CustomTypedEvent {\n constructor(args) {\n super(ScrollEventName, args);\n }\n}\n// see also viewport-aware\nclass PacemScrollOrchestrator {\n constructor(global) {\n this.global = global;\n this.scrollers = [];\n this.scrollHandler = (evt) => {\n this._scroll(evt);\n };\n }\n register(vport) {\n const scrlls = this.scrollers;\n if (scrlls.indexOf(vport) === -1) {\n scrlls.push(vport);\n if (scrlls.length === 1) {\n this.global.addEventListener('scroll', this.scrollHandler, false);\n }\n this._scroll();\n }\n }\n unregister(vport) {\n var ndx;\n const scrlls = this.scrollers;\n if ((ndx = scrlls.indexOf(vport)) !== -1) {\n scrlls.splice(ndx, 1);\n if (scrlls.length === 0) {\n this.global.removeEventListener('scroll', this.scrollHandler, false);\n }\n }\n }\n _scroll(_) {\n for (var scroller of this.scrollers) {\n if (Utils.isNull(scroller.target)) {\n const top = Utils.scrollTop, left = Utils.scrollLeft;\n scroller.offset = { top, left };\n }\n else {\n const top = scroller.target.scrollTop, left = scroller.target.scrollLeft;\n scroller.offset = { top, left };\n }\n scroller.dispatchEvent(new ScrollEvent(scroller.offset));\n }\n }\n}\nconst ORCHESTRATOR = new PacemScrollOrchestrator(window);\n/**\n * Manages scrolling interactions firing self-referenced ad-hoc events.\n */\nlet PacemScrollAwareElement = class PacemScrollAwareElement extends PacemEventTarget {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n //\n ORCHESTRATOR.register(this);\n }\n disconnectedCallback() {\n ORCHESTRATOR.unregister(this);\n //\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemScrollAwareElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemScrollAwareElement.prototype, \"offset\", void 0);\nPacemScrollAwareElement = __decorate([\n CustomElement({\n tagName: P + '-scroll-aware'\n })\n], PacemScrollAwareElement);\nexport { PacemScrollAwareElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nfunction base64ToUint8Array(base64) {\n const padding = '='.repeat((4 - base64.length % 4) % 4);\n base64 = (base64 + /*ensure correct length*/ padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n const rawData = window.atob(base64);\n const output = new Uint8Array(rawData.length);\n for (var i = 0; i < rawData.length; i++) {\n output[i] = rawData.charCodeAt(i);\n }\n return output;\n}\nlet PacemServiceWorkerProxyElement = class PacemServiceWorkerProxyElement extends PacemEventTarget {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._tryRegister();\n }\n disconnectedCallback() {\n this._tryUnregister();\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'pushSubscription':\n if (!Utils.isNull(old)) {\n this.dispatchEvent(new CustomEvent('unsubscribe', { detail: old }));\n }\n if (!Utils.isNull(val)) {\n this.dispatchEvent(new CustomEvent('subscribe', { detail: val }));\n }\n break;\n case 'registration':\n if (!Utils.isNull(old)) {\n this.dispatchEvent(new CustomEvent('unregister', { detail: old }));\n }\n if (!Utils.isNull(val)) {\n this.dispatchEvent(new CustomEvent('register', { detail: val }));\n }\n break;\n }\n }\n _tryUnregister(reg = this.registration) {\n if (!Utils.isNull(reg)) {\n return reg.unregister();\n }\n return Promise.resolve(true);\n }\n _tryRegister(src = this.src) {\n this._tryUnregister().then(_ => {\n // register new sw\n if (!Utils.isNullOrEmpty(src) && 'serviceWorker' in navigator) {\n navigator.serviceWorker.register(src)\n .then(reg => {\n this.registration = reg;\n if ('PushManager' in window) {\n reg.pushManager.getSubscription().then(sub => {\n this.pushSubscription = sub;\n });\n }\n });\n }\n });\n }\n unsubscribe(subscription = this.pushSubscription) {\n return new Promise((resolve, reject) => {\n if (!Utils.isNull(subscription)) {\n const refresh = subscription === this.pushSubscription;\n subscription.unsubscribe().then(result => {\n if (refresh) {\n // triggers 'unsubscribe' event\n this.pushSubscription = null;\n }\n resolve(result);\n });\n }\n else {\n resolve(false);\n }\n });\n }\n subscribe(publicKey = this.publicKey) {\n return new Promise((resolve, reject) => {\n if (typeof publicKey === 'string') {\n publicKey = base64ToUint8Array(publicKey);\n }\n const push = this.registration?.pushManager;\n if (!Utils.isNull(push)) {\n push.subscribe({\n userVisibleOnly: true,\n applicationServerKey: publicKey\n }).then(subscription => {\n if (Notification.permission === 'denied') {\n resolve(this.pushSubscription = null);\n }\n else {\n resolve(/* triggers 'subscribe' event */ this.pushSubscription = subscription);\n }\n });\n }\n else {\n // no PushManager available\n resolve(null);\n }\n });\n }\n};\n__decorate([\n Watch()\n], PacemServiceWorkerProxyElement.prototype, \"registration\", void 0);\n__decorate([\n Watch()\n], PacemServiceWorkerProxyElement.prototype, \"pushSubscription\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServiceWorkerProxyElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServiceWorkerProxyElement.prototype, \"publicKey\", void 0);\nPacemServiceWorkerProxyElement = __decorate([\n CustomElement({ tagName: P + '-serviceworker-proxy' })\n], PacemServiceWorkerProxyElement);\nexport { PacemServiceWorkerProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { avoidHandler } from '../../utils';\nimport { CustomEventUtils } from '../../utils-customevent';\n//namespace Pacem.Components {\nconst KEYEVT = \"keydown\";\nfunction matchesKeyCombination(evt, combo, accumulator = []) {\n if (Utils.isNullOrEmpty(combo)) {\n return false;\n }\n const modifierPattern = /(\\w+)\\s*\\+/;\n const modifiers = [];\n let regExc;\n while (!Utils.isNullOrEmpty(regExc = modifierPattern.exec(combo))) {\n combo = combo.substr(regExc.index + regExc[0].length);\n modifiers.push(regExc[1]);\n }\n if (!CustomEventUtils.matchModifiers(evt, modifiers)) {\n return false;\n }\n const pieces = combo.split(',').map(p => p.trim().toLowerCase());\n if (Utils.isNullOrEmpty(pieces)) {\n // bad combination format\n return false;\n }\n var char = evt.key.toLowerCase();\n if (charEquals(char, pieces[accumulator.length])) {\n accumulator.push(char);\n return accumulator.length == pieces.length ? true : \"ongoing\";\n }\n return false;\n}\nfunction charEquals(key, piece) {\n return key === piece\n // adjust some aliases\n || (key === \"escape\" && piece === \"esc\")\n || (key === \"backspace\" && piece === \"back\")\n || (key === \"control\" && piece === \"ctrl\")\n || (key === \"delete\" && (piece === \"del\" || piece === \"canc\"))\n || (/^arrow/.test(key) && (piece === key.substr(5)));\n}\nexport const KeyboardShortcutExecuteEventName = \"execute\";\nlet PacemShortcutElement = class PacemShortcutElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._accumulator = [];\n this._shortcutHandler = (evt) => {\n const result = (matchesKeyCombination(evt, this.combination, this._accumulator));\n switch (result) {\n case true:\n avoidHandler(evt);\n this.dispatchEvent(new Event(KeyboardShortcutExecuteEventName, { bubbles: false, cancelable: false }));\n // let flow below...\n case false:\n this._accumulator.splice(0);\n break;\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._addHandler();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'target' && !first) {\n this._removeHandler(old);\n this._addHandler(val);\n }\n }\n disconnectedCallback() {\n this._removeHandler();\n super.disconnectedCallback();\n }\n _removeHandler(target = this.target) {\n (target || window).removeEventListener(KEYEVT, this._shortcutHandler, false);\n }\n _addHandler(target = this.target) {\n (target || window).addEventListener(KEYEVT, this._shortcutHandler, false);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemShortcutElement.prototype, \"combination\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemShortcutElement.prototype, \"target\", void 0);\nPacemShortcutElement = __decorate([\n CustomElement({ tagName: P + '-shortcut' })\n], PacemShortcutElement);\nexport { PacemShortcutElement };\n;\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { PacemSafeContentElement } from './types';\n//namespace Pacem.Components {\nlet PacemSpanElement = class PacemSpanElement extends PacemSafeContentElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'text' && !first) {\n this.textContent = val;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (!Utils.isNull(this.text)) {\n this.textContent = this.text;\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemSpanElement.prototype, \"text\", void 0);\nPacemSpanElement = __decorate([\n CustomElement({ tagName: P + '-span' })\n], PacemSpanElement);\nexport { PacemSpanElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils, PacemEventTarget } from './_default-imports';\nimport { CustomElementUtils } from '../../utils-customelement';\n//namespace Pacem.Components {\nlet PacemStyleProxyElement = class PacemStyleProxyElement extends PacemEventTarget {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'cssText':\n if (!Utils.isNull(this._style)) {\n this.cssReady = false;\n this._style.textContent = val;\n if (Utils.isNullOrEmpty(val)) {\n this.cssReady = true;\n }\n else {\n this._idleWhileReady();\n }\n }\n break;\n case 'disabled':\n case 'src':\n this._fetch();\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const style = this._style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n document.head.appendChild(style);\n this._fetch();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._style)) {\n this._style.remove();\n }\n super.disconnectedCallback();\n }\n _idleWhileReady() {\n let css = this._style.sheet;\n let fn = () => {\n try {\n if (css.cssRules.length > 0) {\n clearInterval(handle);\n CustomElementUtils.Theme.importWebFonts().then(_ => {\n this.cssReady = true;\n this.dispatchEvent(new Event('cssready'));\n });\n }\n }\n catch (e) { }\n };\n let handle = setInterval(fn, 100);\n }\n _fetch() {\n const src = this.src, style = this._style;\n if (this.disabled || Utils.isNull(style)) {\n return;\n }\n if (Utils.isNullOrEmpty(src)) {\n style.textContent = this.cssText || '';\n }\n else {\n // fetching\n this.cssReady = false;\n fetch(src).then(resp => {\n resp.text().then(css => {\n style.textContent = css;\n this._idleWhileReady();\n }, _ => {\n // error\n this.cssReady = true;\n });\n }, _ => {\n // error\n this.cssReady = true;\n });\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemStyleProxyElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemStyleProxyElement.prototype, \"cssText\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemStyleProxyElement.prototype, \"cssReady\", void 0);\nPacemStyleProxyElement = __decorate([\n CustomElement({\n tagName: P + '-style-proxy'\n })\n], PacemStyleProxyElement);\nexport { PacemStyleProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemTextElement = class PacemTextElement extends HTMLElement {\n constructor() {\n super();\n }\n connectedCallback() {\n if (this.childNodes.length == 0) {\n this.innerHTML = '&nbsp;';\n }\n this._text = this.childNodes.item(0);\n }\n propertyChangedCallback(name, old, val, first) {\n if (Utils.isNull(val) && first === true)\n return;\n this._text.nodeValue = val;\n }\n};\n__decorate([\n Watch({ emit: false /*, debounce: true*/, converter: PropertyConverters.String })\n], PacemTextElement.prototype, \"text\", void 0);\nPacemTextElement = __decorate([\n CustomElement({ tagName: P + '-text' })\n], PacemTextElement);\nexport { PacemTextElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemTimerElement = class PacemTimerElement extends PacemEventTarget {\n constructor() {\n super();\n this._handle = 0;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'interval':\n case 'disabled':\n this._restart();\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._restart();\n }\n disconnectedCallback() {\n window.clearInterval(this._handle);\n super.disconnectedCallback();\n }\n _restart() {\n clearInterval(this._handle);\n if (!this.disabled && this.interval > 0) {\n this._handle = window.setInterval(() => {\n this.dispatchEvent(new Event(\"tick\", { bubbles: false, cancelable: false }));\n }, this.interval);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTimerElement.prototype, \"interval\", void 0);\nPacemTimerElement = __decorate([\n CustomElement({ tagName: P + '-timer' })\n], PacemTimerElement);\nexport { PacemTimerElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemTitleProxyElement = class PacemTitleProxyElement extends PacemEventTarget {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n this._update();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._update();\n }\n _update() {\n const value = this.value;\n if (Utils.isNullOrEmpty(value) || this.disabled) {\n // No key means do nothing\n return;\n }\n document.title = value;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemTitleProxyElement.prototype, \"value\", void 0);\nPacemTitleProxyElement = __decorate([\n CustomElement({\n tagName: P + '-title-proxy'\n })\n], PacemTitleProxyElement);\nexport { PacemTitleProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget, LogLevel } from './_default-imports';\nimport { TweenService } from '../../animations/tween-service';\nimport { AnimationEvent as PacemAnimationEvent, AnimationStartEvent, AnimationEndEvent } from '../../animations/events';\n//namespace Pacem.Components {\nlet PacemTweenElement = class PacemTweenElement extends PacemEventTarget {\n constructor(_tweener = new TweenService()) {\n super();\n this._tweener = _tweener;\n this.duration = 1000;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'start') {\n if (val === true && this.disabled != true)\n this._animate();\n }\n }\n run() {\n return this._animate();\n }\n _animate() {\n var started = false;\n return this._tweener.run(this.from, this.to, this.duration, this.delay, this.easing, (time, value) => {\n started = started == false && this.dispatchEvent(new AnimationStartEvent());\n this.dispatchEvent(new PacemAnimationEvent({ time: time, value: this.value = value }));\n this.log(LogLevel.Info, 'value: ' + this.value);\n if (time == 1.0) {\n this.dispatchEvent(new AnimationEndEvent());\n // reset start property\n this.start = false; // <- will trigger the animation the next time that will be set to true\n }\n });\n }\n};\n__decorate([\n Watch({ emit: false })\n], PacemTweenElement.prototype, \"easing\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"to\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"duration\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"delay\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemTweenElement.prototype, \"start\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"value\", void 0);\nPacemTweenElement = __decorate([\n CustomElement({ tagName: P + '-tween' })\n], PacemTweenElement);\nexport { PacemTweenElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget, Utils, PCSS } from './_default-imports';\nimport { Debounce } from '../../decorators';\n//namespace Pacem.Components {\n// TODO: go native with IntersectionObserver \n// https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n// TODO: elementify the concept of an ochestrator\n// see also scroll-aware\n/** @deprecated */\nclass PacemViewportOrchestrator {\n constructor(_global) {\n this._global = _global;\n this.viewports = [];\n this._checkHandler = (evt) => {\n this._oncheck(evt);\n };\n }\n register(vport) {\n const vports = this.viewports, win = this._global;\n if (vports.indexOf(vport) === -1) {\n vports.push(vport);\n if (vports.length === 1) {\n // TODO: check against overflow: 'auto' | 'scroll' elements with constrained heights/widths...\n win.addEventListener('resize', this._checkHandler, false);\n win.addEventListener('scroll', this._checkHandler, false);\n win.addEventListener('transitionend', this._checkHandler, false);\n win.addEventListener('animationend', this._checkHandler, false);\n }\n this._oncheck();\n }\n }\n unregister(vport) {\n var ndx;\n const vports = this.viewports, win = this._global;\n if ((ndx = vports.indexOf(vport)) !== -1) {\n vports.splice(ndx, 1);\n if (vports.length === 0) {\n win.removeEventListener('resize', this._checkHandler, false);\n win.removeEventListener('scroll', this._checkHandler, false);\n win.removeEventListener('transitionend', this._checkHandler, false);\n win.removeEventListener('animationend', this._checkHandler, false);\n }\n this._oncheck();\n }\n }\n isElementVisible(el, ignoreHorizontal) {\n const vportSize = Utils.windowSize;\n var doc = this._global.document, rect = el.getBoundingClientRect(), vWidth = vportSize.width, vHeight = vportSize.height, efp = function (x, y) { return document.elementFromPoint(x, y); };\n return rect.bottom > 0 && rect.top < (0 + vHeight)\n && (ignoreHorizontal || (rect.left < (vWidth + 0) && rect.right > 0));\n }\n _oncheck(evt) {\n for (var el of this.viewports) {\n const tget = el.target || el;\n const newviz = this.isElementVisible(tget, el.ignoreHorizontal);\n if (newviz !== el.visible) {\n var visible = el.visible = newviz;\n if (visible)\n Utils.addClass(tget, PCSS + '-in-viewport');\n else\n Utils.removeClass(tget, PCSS + '-in-viewport');\n }\n }\n }\n}\n__decorate([\n Debounce(100)\n], PacemViewportOrchestrator.prototype, \"_oncheck\", null);\nconst ORCHESTRATOR = new PacemViewportOrchestrator(window);\n/** @deprecated */\nlet PacemViewportAwareElement = class PacemViewportAwareElement extends PacemEventTarget {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n //\n ORCHESTRATOR.register(this);\n }\n disconnectedCallback() {\n ORCHESTRATOR.unregister(this);\n //\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemViewportAwareElement.prototype, \"visible\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemViewportAwareElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemViewportAwareElement.prototype, \"ignoreHorizontal\", void 0);\nPacemViewportAwareElement = __decorate([\n CustomElement({ tagName: P + '-viewport-aware' })\n], PacemViewportAwareElement);\nexport { PacemViewportAwareElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemWebWorkerProxyElement = class PacemWebWorkerProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this.autosend = true;\n this._messageHandler = (evt) => {\n this.result = evt.data;\n this.dispatchEvent(new CustomEvent('receive', { detail: evt.data, bubbles: false, cancelable: false }));\n };\n this._errorHandler = (evt) => {\n this.dispatchEvent(new CustomEvent('error', { detail: evt.error, bubbles: false, cancelable: false }));\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._initializeWorker();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'src':\n this._disposeWorker();\n this._initializeWorker(val);\n break;\n case 'autosend':\n case 'disabled':\n case 'message':\n if (this.autosend) {\n this.send(this.message);\n }\n break;\n }\n }\n }\n disconnectedCallback() {\n this._disposeWorker();\n super.disconnectedCallback();\n }\n send(message = this.message) {\n if (this.disabled) {\n return;\n }\n const worker = this._worker;\n if (!Utils.isNull(worker)) {\n worker.postMessage(message);\n }\n }\n _initializeWorker(src = this.src) {\n if (!Utils.isNullOrEmpty(src)) {\n const worker = this._worker = new Worker(src);\n worker.addEventListener('message', this._messageHandler, false);\n worker.addEventListener('error', this._errorHandler, false);\n if (this.autosend && !Utils.isNull(this.message)) {\n this.send();\n }\n }\n }\n _disposeWorker(worker = this._worker) {\n if (!Utils.isNull(worker)) {\n worker.removeEventListener('error', this._errorHandler, false);\n worker.removeEventListener('message', this._messageHandler, false);\n worker.terminate();\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemWebWorkerProxyElement.prototype, \"message\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemWebWorkerProxyElement.prototype, \"result\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemWebWorkerProxyElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemWebWorkerProxyElement.prototype, \"autosend\", void 0);\nPacemWebWorkerProxyElement = __decorate([\n CustomElement({ tagName: P + '-webworker-proxy' })\n], PacemWebWorkerProxyElement);\nexport { PacemWebWorkerProxyElement };\n//}\n","import { PacemEventTarget } from '../eventtarget';\n//namespace Pacem.Behaviors{\nexport class PacemBehavior extends PacemEventTarget {\n #items = new WeakSet();\n register(element) {\n var container = this.#items;\n if (!container.has(element)) {\n container.add(element);\n this.decorate(element);\n }\n }\n unregister(element) {\n var container = this.#items;\n if (container.has(element)) {\n this.undecorate(element);\n container.delete(element);\n }\n }\n has(element) {\n return this.#items.has(element);\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Matrix2D } from '@pacem/pacem-foundation';\nimport { Utils, avoidHandler } from '../../utils';\nimport { CustomElementUtils, Repeater, RepeaterItem } from '../../utils-customelement';\nimport { CustomEventUtils } from '../../utils-customevent';\nimport { LogLevel } from '../../logger';\nimport { PropertyConverters } from '../../converters';\nimport { CustomElement, Watch } from '../../decorators';\nimport { P, PCSS } from '../../prefix';\nimport { PacemBehavior } from '../behavior';\nimport { DragDataMode, DropBehavior, DragDropEvent, DragDropEventArgsClass, DragDropInitEventArgsClass, DropTargetMissedBehavior, DragDropEventType } from '../../ui/drag-drop';\nimport { PacemRepeaterElement, RepeaterItem as PacemRepeaterItem } from '../basic/repeater';\n//namespace Pacem.Components {\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst MOUSE_DOWN = 'pacem:dragdrop:mousedown';\nconst DRAGGING = 'pacem:dragdrop:info';\nconst DELEGATE = 'pacem:dragdrop:delegate';\n/**\n * Class to whom delegate the window-relevant events (in a possible future, distopic, multi-pointer scenario)\n */\nclass DragElementDelegate {\n constructor(initArgs, _logFn) {\n this._logFn = _logFn;\n this._started = false;\n // #endregion\n this._enterHandler = (evt) => {\n this._currentTarget = evt.target;\n };\n this._leaveHandler = (evt) => {\n this._currentTarget = null;\n };\n this._revertTrackedTarget = null;\n this._moveHandler = (evt) => {\n if (evt.type !== 'wheel') {\n avoidHandler(evt);\n }\n var el = this._element, dragger = this._dragDropper, currentPosition, args = GET_VAL(el, DRAGGING);\n //\n function getCurrentPosition() {\n return currentPosition = currentPosition || (evt instanceof MouseEvent ? { x: evt.pageX, y: evt.pageY } : { x: evt.touches[0].pageX, y: evt.touches[0].pageY });\n }\n // start\n if (!this._started) {\n this._logFn(LogLevel.Info, 'Dragging act started');\n this._started = true;\n // starting from a container/drop-target?\n if (dragger.dropBehavior === DropBehavior.InsertChild) {\n var container = el;\n do {\n // could have nested containers,\n // keep navigating up the dom tree\n container = container.parentElement;\n } while (container && dragger.dropTargets.indexOf(container) == -1);\n this._currentTarget = container;\n }\n dragger.dispatchEvent(new DragDropEvent(DragDropEventType.Start, DragDropEventArgsClass.fromArgs(args), {}, evt));\n }\n // move\n if (!Utils.isNull(args)) {\n this._logFn(LogLevel.Debug, 'Dragging act ongoing');\n const isMouseFlag = evt instanceof MouseEvent;\n //if (evt.type !== 'wheel')\n // Pacem.avoidHandler(evt);\n Utils.addClass(CustomElementUtils.findAncestorShell(el), PCSS + '-dragging');\n const pos = args.currentPosition = getCurrentPosition();\n let floater = args.floater;\n let moveEvt = new DragDropEvent(DragDropEventType.Drag, DragDropEventArgsClass.fromArgs(args), { cancelable: true }, evt);\n // dispatch move event\n dragger.dispatchEvent(moveEvt);\n if (!moveEvt.defaultPrevented // obey the - eventual - canceling feedback\n && (floater instanceof HTMLElement || floater instanceof SVGElement)) {\n // move\n let delta = { x: moveEvt.detail.delta.x, y: moveEvt.detail.delta.y };\n floater.style.transform = `translate3d(${delta.x}px, ${delta.y}px, 0)`;\n }\n // what am I over?\n var hover = this._currentTarget;\n if (!isMouseFlag && dragger.dropTargets.length > 0) {\n hover = document\n .elementsFromPoint(args.currentPosition.x - Utils.scrollLeft, args.currentPosition.y - Utils.scrollTop)\n .find(e => dragger.dropTargets.indexOf(e) >= 0);\n }\n // changed hover element since last time?\n var oldTarget = args.target;\n if (hover !== oldTarget) {\n if (!Utils.isNull(oldTarget)) {\n Utils.removeClass(oldTarget, PCSS + '-dropping');\n dragger.dispatchEvent(new DragDropEvent(DragDropEventType.Out, DragDropEventArgsClass.fromArgs(args), {}, evt));\n this._logFn(LogLevel.Info, `Drop area left (${(oldTarget['id'] || oldTarget.constructor.name)})`);\n }\n if (dragger.dropTargets.indexOf(hover) != -1) {\n args.target = hover;\n this._logFn(LogLevel.Info, `Drop area entering (${(args.target['id'] || args.target.constructor.name)})`);\n let evt0 = new DragDropEvent(DragDropEventType.Over, DragDropEventArgsClass.fromArgs(args), { cancelable: true }, evt);\n dragger.dispatchEvent(evt0);\n if (evt0.defaultPrevented) {\n delete args.target;\n }\n else {\n Utils.addClass(args.target, PCSS + '-dropping');\n this._logFn(LogLevel.Info, `Drop area entered (${(args.target['id'] || args.target.constructor.name)})`);\n }\n }\n else {\n delete args.target;\n }\n }\n this._revertTrackedTarget = args.target || oldTarget;\n // positioning\n if (!Utils.isNull(args.target) && dragger.dropBehavior === DropBehavior.InsertChild) {\n this._insertChild(hover, args);\n }\n else \n // if spilling out from a drop target, avoid undesired `copy` of an element.\n if (Utils.isNull(args.target) && dragger.mode === DragDataMode.Copy) {\n const ph = args.placeholder;\n if (ph instanceof Element)\n ph.remove();\n }\n }\n };\n this._endHandler = (evt) => {\n var el = this._element, shell = CustomElementUtils.findAncestorShell(el), dragger = this._dragDropper, args;\n if (!Utils.isNull(args = GET_VAL(el, DRAGGING))) {\n if (evt instanceof MouseEvent)\n avoidHandler(evt);\n // #region dispose fn\n let fnDispose = () => {\n let floater = args.floater;\n if (floater instanceof HTMLElement || floater instanceof SVGElement) {\n floater.style.pointerEvents = '';\n }\n if (dragger.mode !== DragDataMode.Self) {\n args.floater.remove();\n }\n Utils.removeClass(el, PCSS + '-dragging');\n Utils.removeClass(el, PCSS + '-drag-lock');\n DEL_VAL(el, DRAGGING);\n if (!Utils.isNull(args.placeholder)) {\n Utils.removeClass(args.placeholder, PCSS + '-dragging');\n Utils.removeClass(args.placeholder, 'drag-placeholder');\n Utils.removeClass(args.placeholder, PCSS + '-drag-lock');\n DEL_VAL(args.placeholder, DRAGGING);\n }\n // === drop\n const dropping = !Utils.isNull(args.target);\n if (dropping) {\n dragger.dispatchEvent(new DragDropEvent(DragDropEventType.Drop, DragDropEventArgsClass.fromArgs(args), {}, evt));\n Utils.removeClass(args.target, PCSS + '-dropping');\n }\n // === cleanup\n const data = args.data, dropTargets = dragger.dropTargets, placeholder = args.placeholder, repItem = this._repeaterItem, sourceRepeater = this._sourceRepeater, isDraggingRepeaterItem = !Utils.isNull(repItem), targetRepItem = placeholder && this._findTargetRepeaterItem(args.placeholder.parentElement, args.placeholder.nextElementSibling), targetRepeater = targetRepItem && targetRepItem.repeater, isCopying = dragger.mode === DragDataMode.Copy, \n // is dropping onto a repeater item?\n // true if\n // - is effectively dropping onto a repeater\n // - AND the target repeater doesn't equal the source one when a whole repeaterItem is involved.\n isDroppingRepeaterItem = dropping && !Utils.isNull(targetRepeater) && !(Utils.isNull(repItem) && sourceRepeater === targetRepeater);\n // refresh origin datasource and, eventually, target datasource\n if (isDraggingRepeaterItem && !isCopying && dropping) {\n sourceRepeater.removeItem(repItem.index);\n }\n if (isDroppingRepeaterItem) {\n args.placeholder.remove();\n if (targetRepeater === sourceRepeater && !isCopying) {\n let from = repItem.index, to = targetRepItem.index;\n if (to > from) {\n // tweak\n to--;\n }\n sourceRepeater.datasource.moveWithin(from, to);\n }\n else {\n if (!isCopying) {\n sourceRepeater && sourceRepeater.datasource.splice(repItem.index, 1);\n }\n targetRepeater && (targetRepeater.datasource = targetRepeater.datasource || []).splice(targetRepItem.index, 0, data);\n }\n }\n // Check spill behavior\n if (!dropping\n && !Utils.isNullOrEmpty(dragger.dropTargets)\n && dragger.spillBehavior === DropTargetMissedBehavior.Remove\n // if mode is 'copy' then don't remove the source\n && !isCopying) {\n if (isDraggingRepeaterItem) {\n sourceRepeater.datasource.splice(repItem.index, 1);\n }\n else {\n el.remove();\n }\n }\n // === end\n dragger.dispatchEvent(new DragDropEvent(DragDropEventType.End, DragDropEventArgsClass.fromArgs(args), {}, evt));\n //\n Utils.removeClass(shell, PCSS + '-dragging');\n };\n // #endregion\n // animate to target position\n const drag = args.placeholder || args.element;\n if (args.floater != drag) {\n let floater = args.floater;\n var m = Utils.deserializeTransform(getComputedStyle(floater));\n // dropping or reverting?\n if (!Utils.isNull(args.target)\n || dragger.spillBehavior === DropTargetMissedBehavior.Revert\n || (dragger.dropBehavior === DropBehavior.InsertChild && dragger.spillBehavior !== DropTargetMissedBehavior.Remove)) {\n // overlap to placeholder\n const tgetPos = Utils.offset(drag), srcPos = Utils.offset(floater);\n floater.style.transition = 'transform .2s ease-in-out';\n m = Matrix2D.translate(m, { x: tgetPos.left - srcPos.left, y: tgetPos.top - srcPos.top });\n }\n else {\n floater.style.transition = 'transform .2s ease-in, opacity .2s linear';\n // scale down to 0\n m = Matrix2D.scale(m, 0.1);\n floater.style.opacity = '0';\n }\n Utils.addAnimationEndCallback(floater, fnDispose, 300);\n floater.style.transform = `matrix(${m.a},${m.b},${m.c},${m.d},${m.e},${m.f})`;\n }\n else {\n fnDispose();\n }\n }\n Utils.removeClass(el, PCSS + '-drag-lock');\n // dispose\n this.dispose();\n this._logFn(LogLevel.Info, 'Dragging act disposed');\n };\n this._dragDropper = initArgs.dragDrop;\n Utils.addClass(this._element = initArgs.element, PCSS + '-drag-lock');\n window.addEventListener('mouseup', this._endHandler, false);\n window.addEventListener('touchend', this._endHandler, false);\n window.addEventListener('mousemove', this._moveHandler, false);\n document.addEventListener('wheel', this._moveHandler, false);\n window.addEventListener('touchmove', this._moveHandler, { capture: true, passive: false });\n this._dragDropper.dropTargets.forEach(t => {\n t.addEventListener('mouseenter', this._enterHandler, false);\n t.addEventListener('mouseleave', this._leaveHandler, false);\n });\n // is `_element` a dynamic one belonging to a repeater item?\n var repItem = Repeater.findItemContext(this._element, 0, null);\n if (repItem) {\n if (repItem.dom && repItem.dom.length === 1 && repItem.dom[0] === this._element) {\n this._repeaterItem = repItem;\n }\n this._sourceRepeater = repItem.repeater;\n }\n //\n this._bootstrap(initArgs.placeholder, initArgs.data);\n }\n // #region PRIVATE UTILS\n _getLogicalData(node) {\n if (node instanceof RepeaterItem)\n return node.item;\n if (node instanceof HTMLElement)\n return node.dataset;\n return node;\n }\n _getPhysicalData(node) {\n if (node instanceof PacemRepeaterItem)\n return node.dom;\n return [node];\n }\n _createFloater(src, origin) {\n const dragger = this._dragDropper;\n let floater = src;\n if (dragger.mode != DragDataMode.Self) {\n floater = floater.cloneNode(true);\n CustomElementUtils.stripObservedAttributes(floater);\n if (floater instanceof HTMLElement || floater instanceof SVGElement) {\n Utils.addClass(floater, PCSS + '-drag-floater');\n CustomElementUtils.findAncestorShell(this._element).appendChild(floater);\n floater.style.position = 'absolute';\n let pos = { left: origin.x + floater.clientWidth / 2, top: origin.y - floater.clientHeight / 2 };\n // if cloned the original element then preserve dimensions\n if (src === this._element || src.classList.contains('drag-floater-resize')) {\n let size = Utils.offset(this._element);\n floater.style.boxSizing = 'border-box';\n floater.style.width = size.width + 'px';\n floater.style.height = size.height + 'px';\n pos = { left: size.left, top: size.top };\n }\n // positioning\n floater.style.left = `${pos.left}px`;\n floater.style.top = `${pos.top}px`;\n }\n }\n if (floater instanceof HTMLElement || floater instanceof SVGElement) {\n floater.style.pointerEvents = 'none';\n }\n return floater;\n }\n _findTargetRepeaterItem(dropTarget, nextSibling) {\n var repItem = Repeater.findItemContext(nextSibling, 0, null);\n if (!Utils.isNull(repItem)) {\n return { repeater: repItem.repeater, index: repItem.index };\n }\n else {\n var repeater = null, index = -1;\n //\n if (dropTarget instanceof PacemRepeaterElement)\n repeater = dropTarget;\n else\n repeater = CustomElementUtils.findAncestorOfType(dropTarget, PacemRepeaterElement);\n //\n if (!Utils.isNull(repeater))\n return { repeater: repeater, index: (repeater.datasource && repeater.datasource.length) || 0 };\n }\n return null;\n }\n /**\n * Finds the physical next sibling given a container and dragging event arguments.\n * @param target Container\n * @param args Event arguments\n */\n _findNextSibling(target, args) {\n var lastX = 0, lastY = 0;\n const children = Array.from(target.children), length = children.length;\n // first hit tested element\n const hover = document.elementFromPoint(args.currentPosition.x - Utils.scrollLeft, args.currentPosition.y - Utils.scrollTop);\n // hit tested sibling (to spot)\n let hoverElement;\n // 1. hit tested element is the drop target (container)\n if (hover === target) {\n this._currentHover = hoverElement = args.placeholder;\n return hoverElement.parentElement === target ? hoverElement.nextElementSibling : null;\n }\n // loop until the parent element is the drop target\n var hoverSibling = hover;\n while (hoverSibling.parentElement != target && hoverSibling.parentElement != null) {\n hoverSibling = hoverSibling.parentElement;\n }\n // 2. hit tested element is the moving placeholder or is outside a drop target\n if (hoverSibling.parentElement != target || hoverSibling === args.placeholder) {\n this._currentHover = hoverElement = args.placeholder;\n return hoverElement.nextElementSibling;\n }\n // 3. hit tested element has changed\n if (hoverSibling != this._currentHover) {\n hoverElement = this._currentHover;\n const from = children.indexOf(hoverElement), to = children.indexOf(hoverSibling);\n this._currentHover = hoverSibling;\n return from > to ? hoverSibling : hoverSibling.nextElementSibling;\n }\n // 4. just return something\n return hoverSibling;\n }\n /**\n * This method is computationally heavy due to forced reflow!\n */\n _insertChild(targetContainer, args) {\n const drag = args.placeholder || args.element, drop = args.target, nextSibling = this._findNextSibling(drop, args);\n if (drag.nextSibling != nextSibling || drag.parentElement != drop) {\n if (Utils.isNull(nextSibling) || nextSibling.parentElement == targetContainer) {\n // TODO: change logic (try to move elements around with css transforms)\n targetContainer.insertBefore(drag, nextSibling);\n this._logFn(LogLevel.Info, `Positioned before ${(nextSibling && (nextSibling.id || nextSibling.constructor.name)) || \"null\"} for drop`);\n }\n }\n }\n _bootstrap(placeholder, dataObj) {\n var el = this._element, dragger = this._dragDropper, origin, args;\n if (!Utils.isNull(origin = GET_VAL(el, MOUSE_DOWN))) {\n this._started = false;\n DEL_VAL(el, MOUSE_DOWN);\n Utils.addClass(el, PCSS + '-dragging');\n let style = getComputedStyle(el), initialDelta = { x: 0, y: 0 }, css = Utils.deserializeTransform(style);\n //\n initialDelta.x += css.e;\n initialDelta.y += css.f;\n // === floater (first)\n let floater = this._createFloater(dragger.floater || el, origin);\n // === placeholder (then)\n if (Utils.isNull(placeholder)) {\n switch (dragger.mode) {\n case DragDataMode.Alias:\n placeholder = el;\n break;\n case DragDataMode.Copy:\n placeholder = el.cloneNode(true);\n break;\n }\n }\n // add peculiar css class\n if (!Utils.isNull(placeholder)) {\n Utils.addClass(placeholder, 'drag-placeholder');\n }\n // inside a repeater? freeze the item\n if (!Utils.isNull(this._repeaterItem) && !Utils.isNull(placeholder)) {\n CustomElementUtils.freezeObservedAttributes(placeholder);\n }\n const data = dataObj || this._getLogicalData(this._repeaterItem || el);\n // setup args\n args = {\n element: el,\n placeholder: placeholder || el,\n data,\n startTime: Date.now(),\n origin,\n initialDelta,\n currentPosition: origin,\n floater\n };\n SET_VAL(el, DRAGGING, args);\n }\n }\n dispose() {\n this._dragDropper.dropTargets.forEach(t => {\n t.removeEventListener('mouseenter', this._enterHandler, false);\n t.removeEventListener('mouseleave', this._leaveHandler, false);\n });\n window.removeEventListener('mouseup', this._endHandler, false);\n window.removeEventListener('touchend', this._endHandler, false);\n window.removeEventListener('mousemove', this._moveHandler, false);\n document.removeEventListener('wheel', this._moveHandler, false);\n window.removeEventListener('touchmove', this._moveHandler, { capture: true });\n }\n}\n/**\n * Pacem Drag & Drop element adapter.\n */\nlet PacemDragDropElement = class PacemDragDropElement extends PacemBehavior {\n constructor() {\n super(...arguments);\n this._startHandler = (evt) => {\n // sudden exit when disabled\n if (this.disabled) {\n return;\n }\n // only events with trusted interaction\n if (!evt.isTrusted) {\n return;\n }\n // check the handle selector\n if (!Utils.isNullOrEmpty(this.handleSelector)\n && evt.currentTarget.querySelector(this.handleSelector) !== evt.target) {\n return;\n }\n const el = evt.currentTarget, coords = CustomEventUtils.getEventCoordinates(evt), origin = coords.page;\n let element = el;\n let args = DragDropInitEventArgsClass.fromArgs({\n element: element,\n placeholder: null,\n currentPosition: origin,\n origin: origin,\n initialDelta: { x: 0, y: 0 },\n startTime: null,\n floater: null,\n data: null\n });\n // init event might be prevented\n const initEvent = new DragDropEvent(DragDropEventType.Init, args, { cancelable: true }, evt);\n this.dispatchEvent(initEvent);\n if (initEvent.defaultPrevented) {\n return;\n }\n // fair to go...\n // stop propagation\n avoidHandler(evt);\n const lockFn = () => {\n el.removeEventListener('mouseup', unlockFn, false);\n el.removeEventListener('touchend', unlockFn, false);\n this.log(LogLevel.Info, 'Drag locked!');\n SET_VAL(el, MOUSE_DOWN, origin);\n SET_VAL(el, DELEGATE, new DragElementDelegate({\n element: element, dragDrop: this, placeholder: args.placeholder, data: args.data,\n }, (level, message, category) => this.log.apply(this, [level, message, category])));\n };\n const unlockFn = (evt) => {\n this.log(LogLevel.Info, 'Drag avoided!');\n clearTimeout(toHandle);\n };\n const toHandle = setTimeout(lockFn, this.lockTimeout);\n el.addEventListener('mouseup', unlockFn, false);\n el.addEventListener('touchend', unlockFn, false);\n };\n /** Gets or sets the amount of milliseconds to wait, while pressing on the draggable object, until the object itself must be considered \"locked to drag\". */\n this.lockTimeout = 100;\n /** Gets or sets the drop targets (array of elements). */\n this.dropTargets = [];\n /** Gets or sets the drag mode (\"self\", \"alias\", \"copy\"). */\n this.mode = DragDataMode.Self;\n }\n decorate(element) {\n const options = { capture: false, passive: false };\n // TODO: add special effects starting the drag process after a while (timeout) the element is pressed. \n element.addEventListener('mousedown', this._startHandler, false);\n element.addEventListener('touchstart', this._startHandler, options);\n }\n undecorate(element) {\n const options = { capture: false, passive: false };\n element.removeEventListener('mousedown', this._startHandler, false);\n element.removeEventListener('touchstart', this._startHandler, options);\n }\n addEventListener(type, listener, useCapture) {\n super.addEventListener(type, listener, useCapture);\n }\n removeEventListener(type, listener, useCapture) {\n super.removeEventListener(type, listener, useCapture);\n }\n dispatchEvent(evt) {\n if (evt.type === DragDropEventType.End) {\n DEL_VAL(evt.detail.element, MOUSE_DOWN);\n DEL_VAL(evt.detail.element, DELEGATE);\n }\n return super.dispatchEvent(evt);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDragDropElement.prototype, \"lockTimeout\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemDragDropElement.prototype, \"dropTargets\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDragDropElement.prototype, \"mode\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemDragDropElement.prototype, \"floater\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDragDropElement.prototype, \"dropBehavior\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDragDropElement.prototype, \"spillBehavior\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDragDropElement.prototype, \"handleSelector\", void 0);\nPacemDragDropElement = __decorate([\n CustomElement({ tagName: P + '-drag-drop' })\n], PacemDragDropElement);\nexport { PacemDragDropElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LogLevel, Utils, P, PCSS, CustomElement, Watch, PropertyConverters } from './_default-imports';\nimport { Point } from '@pacem/pacem-foundation';\nimport { RescaleEventType, RescaleEvent, RescaleEventArgsClass, RescaleHandle } from '../../ui/rescale';\nimport { PacemBehavior } from '../behavior';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { CustomEventUtils } from '../../utils-customevent';\nimport { avoidHandler } from '../../utils';\n//namespace Pacem.Components {\nclass RescaleElementDelegate {\n constructor(_element, _type, _rescaler, _logFn) {\n this._element = _element;\n this._type = _type;\n this._rescaler = _rescaler;\n this._logFn = _logFn;\n this._startTime = Date.now();\n this._moveHandler = (evt) => {\n evt.stopPropagation();\n const el = this._element, origin = this._origin, rescaler = this._rescaler, handle = this._type, keepProportions = rescaler.keepProportions, minWidth = rescaler.minWidth || 0, minHeight = rescaler.minHeight || 0, maxWidth = rescaler.maxWidth || Number.MAX_SAFE_INTEGER, maxHeight = rescaler.maxHeight || Number.MAX_SAFE_INTEGER, currentPosition = (evt instanceof MouseEvent ? { x: evt.pageX, y: evt.pageY } : { x: evt.touches[0].pageX, y: evt.touches[0].pageY }), position = { x: currentPosition.x, y: currentPosition.y }, origRect = this._rect;\n switch (handle) {\n case 'top':\n case 'bottom':\n position.x = origin.x;\n break;\n case 'left':\n case 'right':\n position.y = origin.y;\n break;\n }\n this._position = position;\n const delta = { x: position.x - origin.x, y: position.y - origin.y };\n var desiredRect;\n if (keepProportions) {\n const A = { x: origRect.x, y: origRect.y }, B = { x: origRect.x + origRect.width, y: origRect.y }, C = { x: origRect.x + origRect.width, y: origRect.y + origRect.height }, D = { x: origRect.x, y: origRect.y + origRect.height }, cos = Point.distance(C, D) / Point.distance(C, A), sin = Point.distance(A, D) / Point.distance(C, A), AC = Point.distance(A, C), proj = (v1, v2) => (v1.x * v2.x + v1.y * v2.y) / AC;\n switch (handle) {\n case \"topleft\":\n const vCA = Point.subtract(C, A);\n const dotCA = proj(Point.subtract(C, position), vCA);\n const topLeft = { x: C.x - dotCA * cos, y: C.y - dotCA * sin };\n desiredRect = { x: topLeft.x, y: topLeft.y, width: C.x - topLeft.x, height: C.y - topLeft.y };\n break;\n case \"topright\":\n const vDB = Point.subtract(D, B);\n const dotDB = proj(Point.subtract(D, position), vDB);\n const topRight = { x: D.x + dotDB * cos, y: D.y - dotDB * sin };\n desiredRect = { x: D.x, y: topRight.y, width: topRight.x - D.x, height: D.y - topRight.y };\n break;\n case \"bottomleft\":\n const vBD = Point.subtract(B, D);\n const dotBD = proj(Point.subtract(B, position), vBD);\n const bottomLeft = { x: B.x - dotBD * cos, y: B.y + dotBD * sin };\n desiredRect = { x: bottomLeft.x, y: B.y, width: B.x - bottomLeft.x, height: bottomLeft.y - B.y };\n break;\n default:\n const vAC = Point.subtract(A, C);\n const dotAC = proj(Point.subtract(A, position), vAC);\n const bottomRight = { x: A.x + dotAC * cos, y: A.y + dotAC * sin };\n desiredRect = { x: A.x, y: A.y, width: bottomRight.x - A.x, height: bottomRight.y - A.y };\n break;\n }\n }\n else {\n // compute bottomright as default\n desiredRect = { x: this._rect.x, y: this._rect.y, width: this._rect.width + delta.x, height: this._rect.height + delta.y };\n if (handle.startsWith('top')) {\n desiredRect.y = this._rect.y + delta.y;\n desiredRect.height = this._rect.height - delta.y;\n }\n if (handle.endsWith('left')) {\n desiredRect.x = this._rect.x + delta.x;\n desiredRect.width = this._rect.width - delta.x;\n }\n }\n this._logFn(LogLevel.Log, `handle: ${handle}, origin: ${JSON.stringify(origin)}, currentPosition: ${JSON.stringify(currentPosition)}`, `Rescaling`);\n this._logFn(LogLevel.Log, `delta: ${JSON.stringify(delta)}, position: ${JSON.stringify(position)}`, `Rescaling`);\n this._logFn(LogLevel.Log, `from: ${JSON.stringify(this._rect)}, to: ${JSON.stringify(desiredRect)}`, `Rescaling`);\n // check constraints\n let horizontally = desiredRect.width >= minWidth && desiredRect.width <= maxWidth, vertically = desiredRect.height >= minHeight && desiredRect.height <= maxHeight;\n // if proportions are constrained and one fails, then both fail\n if (keepProportions && (!horizontally || !vertically)) {\n horizontally = vertically = false;\n }\n if (!horizontally) {\n // reset to the last valid horizontal configuration\n desiredRect.x = this._targetRect.x;\n desiredRect.width = this._targetRect.width;\n }\n if (!vertically) {\n // reset to the last valid vertical configuration\n desiredRect.y = this._targetRect.y;\n desiredRect.height = this._targetRect.height;\n }\n if (horizontally || vertically) {\n // dispatch\n const args = {\n currentPosition: position, element: el,\n handle: handle, origin: origin, targetRect: desiredRect, startTime: this._startTime\n };\n let rescaleEvt = new RescaleEvent(RescaleEventType.Rescale, RescaleEventArgsClass.fromArgs(args), { cancelable: true }, evt);\n rescaler.dispatchEvent(rescaleEvt);\n if (!rescaleEvt.defaultPrevented) {\n // render resize\n const m = this._originalTransform;\n el.style.transform = `matrix(${m.a},${m.b},${m.c},${m.d},${(m.e + desiredRect.x - this._rect.x)},${(m.f + desiredRect.y - this._rect.y)})`;\n el.style.width = desiredRect.width + 'px';\n el.style.height = desiredRect.height + 'px';\n }\n // store targetRect\n this._targetRect = desiredRect;\n }\n };\n this._endHandler = (e) => {\n e.stopPropagation();\n const handle = this._type;\n let evt = new RescaleEvent(RescaleEventType.End, RescaleEventArgsClass.fromArgs({\n element: this._element, origin: this._origin,\n handle: handle, startTime: this._startTime, currentPosition: this._position, targetRect: this._targetRect\n }), {}, e);\n // body\n Utils.removeClass(document.body, PCSS + '-rescaling rescale-' + handle);\n this._rescaler.dispatchEvent(evt);\n DEL_VAL(this._element, DELEGATE);\n window.removeEventListener('mouseup', this._endHandler, false);\n window.removeEventListener('touchend', this._endHandler, false);\n window.removeEventListener('mousemove', this._moveHandler, false);\n window.removeEventListener('touchmove', this._moveHandler, false);\n };\n window.addEventListener('mouseup', this._endHandler, false);\n window.addEventListener('touchend', this._endHandler, false);\n window.addEventListener('mousemove', this._moveHandler, false);\n window.addEventListener('touchmove', this._moveHandler, false);\n this._origin =\n this._position =\n GET_VAL(_element, MOUSE_DOWN);\n this._rect =\n this._targetRect =\n Utils.offsetRect(_element);\n //\n this._originalTransform = Utils.deserializeTransform(getComputedStyle(_element));\n // body\n Utils.addClass(document.body, PCSS + '-rescaling rescale-' + _type);\n }\n}\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst HANDLES = 'top right bottom left topleft topright bottomright bottomleft'.split(' ');\nconst RESCALE_FRAME = 'pacem:rescale:frame';\nconst MOUSE_DOWN = 'pacem:rescale:origin';\nconst DELEGATE = 'pacem:rescale:delegate';\nlet PacemRescaleElement = class PacemRescaleElement extends PacemBehavior {\n constructor() {\n super(...arguments);\n this._bag = [];\n this._startHandler = (evt) => {\n evt.stopPropagation();\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const el = evt.currentTarget, origin = coords.page;\n const type = /rescale-(.+)/.exec(el['className'])[1];\n // start\n const target = el.parentElement;\n const initEvent = new RescaleEvent(RescaleEventType.Start, RescaleEventArgsClass.fromArgs({\n currentPosition: origin,\n origin: origin, element: target, handle: type, startTime: Date.now()\n }), { cancelable: true }, evt);\n this.dispatchEvent(initEvent);\n // canceled?\n if (initEvent.defaultPrevented) {\n return;\n }\n // stop evt propagation (may cause page reload on touch/mobile devices)\n avoidHandler(evt);\n SET_VAL(target, MOUSE_DOWN, origin);\n SET_VAL(target, DELEGATE, new RescaleElementDelegate(target, type, this, \n /* logging */ (level, message, category) => this.log.apply(this, [level, message, category])));\n };\n }\n decorate(element) {\n const el = element, css = getComputedStyle(el);\n Utils.addClass(el, PCSS + '-rescalable');\n this._setFrame(el);\n }\n undecorate(element) {\n const el = element;\n Utils.removeClass(el, PCSS + '-rescalable');\n //\n this._removeFrame(el);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._syncHandles();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'disabled':\n case 'handles':\n case 'keepProportions':\n this._syncHandles();\n break;\n }\n }\n _syncHandles() {\n const handles = this.handles || [RescaleHandle.All];\n const all = handles.find(h => h === RescaleHandle.All) != null;\n const disabled = this.disabled;\n const keepProportions = this.keepProportions;\n for (let el of this._bag) {\n let frame = GET_VAL(el, RESCALE_FRAME);\n frame.top.hidden = disabled || (!all && handles.find(h => h === RescaleHandle.Top) == null);\n frame.bottom.hidden = disabled || (!all && handles.find(h => h === RescaleHandle.Bottom) == null);\n frame.left.hidden = disabled || (!all && handles.find(h => h === RescaleHandle.Left) == null);\n frame.right.hidden = disabled || (!all && handles.find(h => h === RescaleHandle.Right) == null);\n frame.topleft.hidden = frame.top.hidden || frame.left.hidden;\n frame.topright.hidden = frame.top.hidden || frame.right.hidden;\n frame.bottomleft.hidden = frame.bottom.hidden || frame.left.hidden;\n frame.bottomright.hidden = frame.bottom.hidden || frame.right.hidden;\n if (keepProportions) {\n frame.top.hidden =\n frame.bottom.hidden =\n frame.left.hidden =\n frame.right.hidden = true;\n }\n }\n }\n _setFrame(el) {\n let frame = {};\n for (let type of HANDLES) {\n const handle = frame[type] = document.createElement('div');\n Utils.addClass(handle, PCSS + '-rescale rescale-' + type);\n el.setAttribute('pacem', '');\n el.appendChild(handle);\n handle.addEventListener('mousedown', this._startHandler, false);\n handle.addEventListener('touchstart', this._startHandler, { capture: false, passive: true });\n }\n SET_VAL(el, RESCALE_FRAME, frame);\n this._bag.push(el);\n this._syncHandles();\n }\n _removeFrame(el) {\n const frame = GET_VAL(el, RESCALE_FRAME);\n for (var type in frame) {\n const handle = frame[type];\n handle.removeEventListener('mousedown', this._startHandler, false);\n handle.removeEventListener('touchstart', this._startHandler, { capture: false });\n handle.remove();\n }\n DEL_VAL(el, RESCALE_FRAME);\n this._bag.splice(this._bag.indexOf(el), 1);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.StringArray })\n], PacemRescaleElement.prototype, \"handles\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRescaleElement.prototype, \"minWidth\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRescaleElement.prototype, \"maxWidth\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRescaleElement.prototype, \"minHeight\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRescaleElement.prototype, \"maxHeight\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemRescaleElement.prototype, \"keepProportions\", void 0);\nPacemRescaleElement = __decorate([\n CustomElement({ tagName: P + '-rescale' })\n], PacemRescaleElement);\nexport { PacemRescaleElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LogLevel, Utils, P, PCSS, CustomElement, Watch, PropertyConverters } from './_default-imports';\nimport { Matrix2D, Angle, Numbers } from '@pacem/pacem-foundation';\nimport { RotateEvent, RotateEventArgsClass, RotateEventType } from '../../ui/rotate';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { CustomEventUtils } from '../../utils-customevent';\nimport { avoidHandler } from '../../utils';\nimport { PacemBehavior } from '../behavior';\n//namespace Pacem.Components {\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst MOUSE_DOWN = 'pacem:rotate:origin';\nconst DELEGATE = 'pacem:rotate:delegate';\nconst OFFSET = 'pacem:rotate:offset';\nconst PIVOT = 'pacem:rotate:center';\nconst TWO_PI = 2 * Math.PI;\nclass RotateElementDelegate {\n constructor(_element, _rotator, _logFn) {\n this._element = _element;\n this._rotator = _rotator;\n this._logFn = _logFn;\n this._startTime = Date.now();\n this._moveHandler = (evt) => {\n evt.stopPropagation();\n const el = this._element, previousPosition = this._previousPosition, rotator = this._rotator, minRotation = rotator.minRotation, maxRotation = rotator.maxRotation, currentPosition = (evt instanceof MouseEvent ? { x: evt.pageX, y: evt.pageY } : { x: evt.touches[0].pageX, y: evt.touches[0].pageY }), pivot = this._pivot;\n var currentAngle = this._computeAngle(pivot, currentPosition, previousPosition) + this._previousAngle;\n var renderedAngle = this._constraintAngle(currentAngle, rotator.step);\n this._logFn(LogLevel.Log, `previousPosition: ${JSON.stringify(previousPosition)}, currentPosition: ${JSON.stringify(currentPosition)}`, `Rotating`);\n if (currentAngle > maxRotation) {\n currentAngle = maxRotation;\n }\n while (renderedAngle > maxRotation && rotator.step > 0) {\n this._logFn(LogLevel.Log, `angle: ${renderedAngle} constrained to max: ${maxRotation}`, `Rotating`);\n renderedAngle -= rotator.step;\n }\n if (currentAngle < minRotation) {\n currentAngle = minRotation;\n }\n while (renderedAngle < minRotation && rotator.step > 0) {\n this._logFn(LogLevel.Log, `angle: ${renderedAngle} constrained to min: ${minRotation}`, `Rotating`);\n renderedAngle += rotator.step;\n }\n this._logFn(LogLevel.Log, `angle: ${renderedAngle}, origin: ${JSON.stringify(this._originalPosition)}, current: ${JSON.stringify(currentPosition)}`, `Rotating`);\n if (renderedAngle != this._previousRenderedAngle) {\n let evtRot = new RotateEvent(RotateEventType.Rotate, RotateEventArgsClass.fromArgs({\n element: this._element, origin: this._originalPosition, startTime: this._startTime, currentPosition: currentPosition, rotation: renderedAngle, center: this._pivot\n }), { cancelable: true }, evt);\n this._rotator.dispatchEvent(evtRot);\n if (!evtRot.defaultPrevented) {\n const m0 = this._originalTransform;\n const m = Matrix2D.rotate(m0, renderedAngle - this._originalAngle);\n el.style.transform = `matrix(${m.a}, ${m.b}, ${m.c}, ${m.d}, ${m.e}, ${m.f})`;\n SET_VAL(this._element, OFFSET, renderedAngle);\n }\n this._previousRenderedAngle = renderedAngle;\n }\n // step\n this._previousPosition = currentPosition;\n this._previousAngle = currentAngle;\n };\n this._endHandler = (e) => {\n e.stopPropagation();\n let evt = new RotateEvent(RotateEventType.End, RotateEventArgsClass.fromArgs({\n element: this._element, origin: this._originalPosition, startTime: this._startTime, currentPosition: this._previousPosition, rotation: this._previousAngle, center: this._pivot\n }), {}, e);\n // body\n this._rotator.dispatchEvent(evt);\n DEL_VAL(this._element, DELEGATE);\n window.removeEventListener('mouseup', this._endHandler, false);\n window.removeEventListener('touchend', this._endHandler, false);\n window.removeEventListener('mousemove', this._moveHandler, false);\n window.removeEventListener('touchmove', this._moveHandler, false);\n };\n window.addEventListener('mouseup', this._endHandler, false);\n window.addEventListener('touchend', this._endHandler, false);\n window.addEventListener('mousemove', this._moveHandler, false);\n window.addEventListener('touchmove', this._moveHandler, false);\n this._originalPosition = this._previousPosition = GET_VAL(_element, MOUSE_DOWN);\n this._originalAngle = this._previousAngle = this._previousRenderedAngle = GET_VAL(_element, OFFSET, 0);\n this._pivot = GET_VAL(_element, PIVOT);\n //\n this._originalTransform = Utils.Css.deserializeTransform(_element);\n }\n _computeAngle(pivot, start, current) {\n return Angle.angleBetween(pivot, start, current);\n }\n _constraintAngle(x, step) {\n if (step > 0) {\n return Numbers.round(x, step);\n }\n return x;\n }\n}\nlet PacemRotateElement = class PacemRotateElement extends PacemBehavior {\n constructor() {\n super(...arguments);\n this._startHandler = (evt) => {\n if (this.disabled) {\n return;\n }\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const el = evt.currentTarget, origin = coords.page;\n const bbox = Utils.offsetRect(el), w2 = bbox.width / 2.0, h2 = bbox.height / 2.0;\n var pivot = this.center;\n if (Utils.isNull(pivot)) {\n pivot = { x: bbox.x + w2, y: bbox.y + h2 };\n el.style.transformOrigin = '50% 50%';\n }\n else {\n const offX = bbox.x + w2 - pivot.x, offY = bbox.y + h2 - pivot.y;\n el.style.transformOrigin = `${-offX}px ${-offY}px`;\n }\n // start\n const initEvent = new RotateEvent(RotateEventType.Start, RotateEventArgsClass.fromArgs({\n currentPosition: origin, rotation: GET_VAL(el, OFFSET, 0), center: pivot,\n origin: origin, element: el, startTime: Date.now()\n }), { cancelable: true }, evt);\n this.dispatchEvent(initEvent);\n // canceled?\n if (initEvent.defaultPrevented) {\n return;\n }\n // stop evt propagation (may cause page reload on touch/mobile devices)\n avoidHandler(evt);\n SET_VAL(el, MOUSE_DOWN, origin);\n SET_VAL(el, PIVOT, pivot);\n SET_VAL(el, DELEGATE, new RotateElementDelegate(el, this, \n /* logging */ (level, message, category) => this.log.apply(this, [level, message, category])));\n };\n }\n decorate(element) {\n const el = element;\n Utils.addClass(el, PCSS + '-rotatable');\n const options = { capture: false, passive: false };\n element.addEventListener('mousedown', this._startHandler, false);\n element.addEventListener('touchstart', this._startHandler, options);\n }\n undecorate(element) {\n const el = element;\n Utils.removeClass(el, PCSS + '-rotatable');\n const options = { capture: false, passive: false };\n element.removeEventListener('mousedown', this._startHandler, false);\n element.removeEventListener('touchstart', this._startHandler, options);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRotateElement.prototype, \"step\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRotateElement.prototype, \"minRotation\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRotateElement.prototype, \"maxRotation\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Point })\n], PacemRotateElement.prototype, \"center\", void 0);\nPacemRotateElement = __decorate([\n CustomElement({ tagName: P + '-rotate' })\n], PacemRotateElement);\nexport { PacemRotateElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Utils, P, PCSS, CustomElement, Watch, PropertyConverters } from './_default-imports';\nimport { Matrix2D } from '@pacem/pacem-foundation';\nimport { SwipeEvent, SwipeEventArgsClass, SwipeEventType } from '../../ui/swipe';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { CustomEventUtils } from '../../utils-customevent';\nimport { PacemBehavior } from '../behavior';\n//namespace Pacem.Components {\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst PREPARING_LABEL = 'pacem:swipe:preparing';\nconst DELEGATE_LABEL = 'pacem:swipe:delegate';\nconst DEFAULT_OPTIONS = { fling: 400, inertia: 8, start: 32, autoresetSpans: false, bouncy: true };\nclass SwipeElementDelegate {\n constructor(_element, _swiper, _init, _logFn) {\n this._element = _element;\n this._swiper = _swiper;\n this._init = _init;\n this._logFn = _logFn;\n this._moveHandler = (evt) => {\n const samples = this.#samples;\n const state = this._buildStateFromUiEvent(evt);\n samples.push(this.#state = state);\n while (samples.length > 0\n && state.timestamp - samples[0].timestamp > 100) {\n samples.shift();\n }\n const args = this._buildSwipeArgsFromState(state); // SwipeEventArgsClass.fromArgs({ position: state.position, element: this._element, t0: this._init, timestamp: state.timestamp });\n const swipeEvt = new SwipeEvent(SwipeEventType.Pan, args, { cancelable: true, bubbles: false });\n const swiper = this._swiper;\n swiper.dispatchEvent(swipeEvt);\n if (!swipeEvt.defaultPrevented) {\n let { delta } = this._delta(this._init, state);\n if (!swiper.options.bouncy) {\n // clamp delta just in case\n const snaps = swiper.snaps.slice().sort();\n const snapFirst = snaps[0], snapLast = snaps[snaps.length - 1];\n const dir = this._swiper.direction;\n const { x, y } = delta;\n const deltaX = x.clamp(snapFirst, snapLast), deltaY = y.clamp(snapFirst, snapLast);\n delta = dir === 'vertical'\n ? { x: 0, y: deltaY }\n : { x: deltaX, y: 0 };\n }\n this._animateOffsetBy(delta, 0);\n }\n };\n this._endHandler = (evt) => {\n // detach move listener\n window.removeEventListener('pointermove', this._moveHandler);\n // estimate goal\n if (Utils.isNull(this.#state)) {\n console.log('How come?!');\n }\n else {\n const args = this._buildSwipeArgsFromState();\n const swipeEvt = new SwipeEvent(SwipeEventType.Swipe, args, { cancelable: true, bubbles: false });\n const swiper = this._swiper;\n swiper.dispatchEvent(swipeEvt);\n if (!swipeEvt.defaultPrevented) {\n const swipe1Evt = new SwipeEvent((\"swipe\" + args.direction), args, { cancelable: true, bubbles: false });\n swiper.dispatchEvent(swipe1Evt);\n if (!swipe1Evt.defaultPrevented) {\n // if the predicted distance is greater than the original position + half the distance to the nearest snap,\n const snaps = swiper.snaps ?? [0.0];\n snaps.sort();\n const target = swiper.options.bouncy ? args.predictedDelta : args.predictedDelta.clamp(snaps[0], snaps[snaps.length - 1]);\n // then animate toward that target,\n // otherwise bounce back\n const snap = snaps.reduce((acc, v) => {\n const distance = Math.abs(v - target);\n const current = Math.abs(acc - target);\n return distance < current ? v : acc;\n }, 0);\n const vertical = swiper.direction === 'vertical';\n const duration = args.predictedDuration;\n const delta0 = vertical ? { x: 0, y: target } : { x: target, y: 0 };\n // centralized swipeanimationend dispatcher\n const swipeAnimationEnd = () => {\n const swipe2Evt = new SwipeEvent(SwipeEventType.SwipeAnimationEnd, args, { cancelable: false, bubbles: false });\n if (swiper.dispatchEvent(swipe2Evt)) {\n return swipe2Evt;\n }\n return null;\n };\n if (snap.isCloseTo(0)) {\n this._animateOffsetBy(delta0, duration).then(() => {\n this._animateOffsetBy({ x: 0, y: 0 }, .3, 'cubic-bezier(.37,-0.01,.34,1.43)').then(() => swipeAnimationEnd());\n });\n }\n else {\n // animation to reach the predicted offset (if does not exceed the target snap, then void)\n const doesNotExceed = (snap - target) * (snap - args.delta) >= 0;\n const delta1 = vertical ? { x: 0, y: snap } : { x: snap, y: 0 };\n // animation that reaches the correct snap\n const animation = () => this._animateOffsetBy(delta1, doesNotExceed ? duration : .2, 'cubic-bezier(0,0,0,1)');\n const promise = () => doesNotExceed ? Promise.resolve() : this._animateOffsetBy(delta0, duration);\n promise().then(() => animation().then(() => {\n // generic \n swipeAnimationEnd();\n // specific\n const swipe3Evt = new SwipeEvent((\"swipe\" + args.direction + \"animationend\"), args, { cancelable: false, bubbles: false });\n swiper.dispatchEvent(swipe3Evt);\n }));\n }\n if (this.#options.autoresetSpans) {\n this._swiper.snaps = snaps.map(s => s - snap);\n }\n }\n }\n }\n this.dispose();\n };\n this.#samples = [];\n const el = _element;\n this.#options = Utils.extend({}, DEFAULT_OPTIONS, _swiper.options ?? {});\n this.#originalTransform = Utils.deserializeTransform(getComputedStyle(el));\n window.addEventListener('pointermove', this._moveHandler, false);\n window.addEventListener('pointerup', this._endHandler, false);\n window.addEventListener('pointercancel', this._endHandler, false);\n }\n _serializeTransformMatrix(m) {\n return `matrix3d(${m.a},${m.b},0,0,${m.c},${m.d},0,0,0,0,1,0,${m.e},${m.f},0,1)`;\n }\n _animateOffsetBy(delta, seconds, easing = Utils.Css.getVariableValue(`--${PCSS}-easing-out-sine`)) {\n const m = Matrix2D.translate(this.#originalTransform, delta);\n const time = Math.min(.3, seconds) * 1000;\n const element = this._element;\n const t = this._serializeTransformMatrix(m);\n return new Promise((resolve, _) => {\n const animation = element.animate([\n { transform: t }\n ], {\n fill: 'forwards',\n duration: time, easing\n });\n const callback = (e) => {\n animation.removeEventListener('finish', callback);\n animation.commitStyles();\n animation.cancel();\n resolve();\n };\n animation.addEventListener('finish', callback, false);\n });\n }\n _buildStateFromUiEvent(evt) {\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const now = performance.now();\n const state = {\n position: coords.client,\n timestamp: now,\n };\n return state;\n }\n _buildSwipeArgsFromState(state = this.#state) {\n const options = this.#options;\n const speed = this.speed;\n const dir = this._swiper.direction;\n const vertical = dir === 'vertical';\n const horizontalspeed = vertical ? 0 : speed, verticalspeed = vertical ? speed : 0;\n // console.log(\"state:\");\n // console.log(state.position);\n // console.log(\"init:\");\n // console.log(this._init);\n // console.log(`vertical: ${vertical}`);\n // console.log(`h speed: ${horizontalspeed}`);\n // console.log(`v speed: ${verticalspeed}`);\n const args = SwipeEventArgsClass.fromArgs({\n position: state.position, element: this._element, t0: this._init, timestamp: state.timestamp, inertia: options.inertia, fling: options.fling,\n horizontalspeed, verticalspeed, vertical\n });\n //console.log(args);\n return args;\n }\n _delta(s0, s1) {\n const { position: { x: x0, y: y0 }, timestamp: t0 } = s0;\n const { position: { x: x1, y: y1 }, timestamp: t1 } = s1;\n const dir = this._swiper.direction;\n const delta = dir === 'vertical'\n ? { x: 0, y: y1 - y0 }\n : { x: x1 - x0, y: 0 };\n return { delta, time: t1 - t0 };\n }\n /** pixels/second */\n get speed() {\n const samples = this.#samples;\n if (samples.length < 2) {\n return 0;\n }\n const s0 = samples[0], s1 = samples[samples.length - 1];\n const { delta, time } = this._delta(s0, s1);\n const dt = time / 1000;\n const ds = delta.x + delta.y /* either x or y is 0, then this is a legit (and convenient) way to compute the magnitude */;\n return dt > 0 ? ds / dt : 0;\n }\n #options;\n #samples;\n #originalTransform;\n #state;\n dispose() {\n const el = this._element;\n DEL_VAL(el, DELEGATE_LABEL);\n window.removeEventListener('pointercancel', this._endHandler);\n window.removeEventListener('pointerup', this._endHandler);\n }\n}\nlet PacemSwipeElement = class PacemSwipeElement extends PacemBehavior {\n constructor() {\n super(...arguments);\n this._prepareHandler = (evt) => {\n if (this.disabled) {\n return;\n }\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const el = evt.currentTarget, origin = coords.client;\n // check the handle selector\n const hs = this.handleSelector;\n if (!Utils.isNullOrEmpty(hs)\n && el.querySelector(hs) !== evt.target) {\n return;\n }\n evt.stopPropagation();\n SET_VAL(el, PREPARING_LABEL, { position: origin, timestamp: performance.now() });\n SET_VAL(window, PREPARING_LABEL, el);\n window.addEventListener('pointermove', this._startHandler, false);\n window.addEventListener('pointerup', this._undoHandler, false);\n };\n this._startHandler = (evt) => {\n const el = GET_VAL(window, PREPARING_LABEL); // evt.currentTarget; // wrong! targets Window!\n const init = GET_VAL(el, PREPARING_LABEL);\n if (Utils.isNull(init)) {\n this._undo(el);\n return;\n }\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const { x, y } = coords.client;\n const { position: { x: x0, y: y0 } } = init;\n const direction = this.direction || 'horizontal';\n const vertical = direction === 'vertical';\n const delta = vertical\n ? y - y0\n : x - x0;\n const options = this.#options, { start: threshold } = options;\n if (Math.abs(delta) > threshold) {\n // reset detection handlers\n // and remove attached data\n this._undo(el);\n // attach actual swipe delegate\n const swiper = this;\n const delegate = new SwipeElementDelegate(el, swiper, init, (level, message, category) => { swiper.log(level, message, category); });\n SET_VAL(el, DELEGATE_LABEL, delegate);\n }\n };\n this._undoHandler = (evt) => {\n const el = evt.currentTarget;\n this._undo(el);\n };\n }\n decorate(element) {\n // https://docs.microsoft.com/en-us/microsoft-edge/dev-guide/dom/pointer-events\n if (element instanceof HTMLElement || element instanceof SVGElement) {\n Utils.addClass(element, PCSS + '-swipe');\n }\n element.addEventListener('pointerdown', this._prepareHandler, false);\n }\n undecorate(element) {\n if (element instanceof HTMLElement || element instanceof SVGElement) {\n Utils.removeClass(element, PCSS + '-swipe');\n }\n element.removeEventListener('pointerdown', this._prepareHandler, false);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setOptions();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'options':\n this._setOptions(val);\n break;\n }\n }\n #options;\n _setOptions(options = this.options) {\n this.#options = Utils.extend({}, DEFAULT_OPTIONS, options ?? {});\n }\n _undo(el) {\n window.removeEventListener('pointermove', this._startHandler);\n window.removeEventListener('pointerup', this._undoHandler);\n DEL_VAL(el, PREPARING_LABEL);\n DEL_VAL(window, PREPARING_LABEL);\n }\n};\n__decorate([\n Watch({\n emit: false, reflectBack: true, converter: {\n convert: (attr, _) => attr.match(/[-+]?[\\d\\.]+/g).map(i => parseFloat(i)),\n convertBack: (prop, _) => prop?.join(' ')\n }\n })\n], PacemSwipeElement.prototype, \"snaps\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String, reflectBack: true })\n], PacemSwipeElement.prototype, \"direction\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemSwipeElement.prototype, \"options\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String, reflectBack: true })\n], PacemSwipeElement.prototype, \"handleSelector\", void 0);\nPacemSwipeElement = __decorate([\n CustomElement({ tagName: P + '-swipe' })\n], PacemSwipeElement);\nexport { PacemSwipeElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { TweenService, Easings } from '../../animations';\nimport { PropertyConverters } from '../../converters';\nimport { PacemItemElement } from '../basic';\nimport { Watch } from '../../decorators';\n//namespace Pacem.Components {\nconst EasingConverter = {\n convert: (attr) => Easings[attr] ?? Easings.linear\n};\nexport class AnimationElement extends PacemItemElement {\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], AnimationElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], AnimationElement.prototype, \"property\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], AnimationElement.prototype, \"delay\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], AnimationElement.prototype, \"duration\", void 0);\n__decorate([\n Watch({ emit: false, converter: EasingConverter })\n], AnimationElement.prototype, \"easing\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], AnimationElement.prototype, \"iterations\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], AnimationElement.prototype, \"direction\", void 0);\nexport class TweenAnimationElement extends AnimationElement {\n constructor(_tweener = new TweenService()) {\n super();\n this._tweener = _tweener;\n }\n get tweener() {\n return this._tweener;\n }\n #cancelToken = false;\n startAnimation() {\n this.#cancelToken = false;\n return new Promise((resolve, _) => {\n this._tweener\n .run(.0, 1.0, this.duration ?? 0, this.delay ?? 0, this.easing ?? Easings.linear, (t, v) => {\n if (!this.#cancelToken) {\n this.target[this.property] = this.tweenInterpolationCallback(t, v);\n }\n })\n .then(resolve);\n });\n }\n cancelAnimation() {\n this.#cancelToken = true;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Colors } from '@pacem/pacem-foundation';\nimport { Utils } from '../../utils';\nimport { PropertyConverters } from '../../converters';\nimport { Watch, CustomElement } from '../../decorators';\nimport { P } from '../../prefix';\nimport { TweenAnimationElement } from './animation';\n//namespace Pacem.Components {\nconst DEFAULT_FROM = { h: 0, l: 0, s: 0.5, a: 1 };\nconst DEFAULT_TO = { h: 0, l: 1, s: 0.5, a: 1 };\nlet PacemColorAnimationElement = class PacemColorAnimationElement extends TweenAnimationElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'from':\n this._precomputeFrom(val);\n break;\n case 'to':\n this._precomputeTo(val);\n break;\n }\n }\n }\n #from = DEFAULT_FROM;\n #to = DEFAULT_TO;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._precomputeColors();\n }\n _precomputeColors() {\n this._precomputeFrom();\n this._precomputeTo();\n }\n _precomputeFrom(v = this.from) {\n this.#from = this._precomputeColor(v) ?? DEFAULT_FROM;\n }\n _precomputeTo(v = this.to) {\n this.#to = this._precomputeColor(v) ?? DEFAULT_FROM;\n }\n _precomputeColor(clr) {\n if (!Utils.isNullOrEmpty(clr)) {\n try {\n return this._parseColor(clr);\n }\n catch {\n return null;\n }\n }\n }\n _parseColor(clr) {\n return Colors.hsl(Colors.parse(clr));\n }\n tweenInterpolationCallback(time, progress) {\n const from = this.#from, to = this.#to;\n const hsla = {\n h: (to.h - from.h) * progress + from.h,\n s: (to.s - from.s) * progress + from.s,\n l: (to.l - from.l) * progress + from.l,\n a: (to.a - from.a) * progress + from.a\n };\n return Colors.stringify(hsla);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemColorAnimationElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemColorAnimationElement.prototype, \"to\", void 0);\nPacemColorAnimationElement = __decorate([\n CustomElement({ tagName: P + '-color-animation' })\n], PacemColorAnimationElement);\nexport { PacemColorAnimationElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PropertyConverters } from '../../converters';\nimport { Watch, CustomElement } from '../../decorators';\nimport { P } from '../../prefix';\nimport { TweenAnimationElement } from './animation';\n//namespace Pacem.Components {\nconst DEFAULT_FROM = 0;\nconst DEFAULT_TO = 1;\nlet PacemNumberAnimationElement = class PacemNumberAnimationElement extends TweenAnimationElement {\n tweenInterpolationCallback(time, progress) {\n const to = this.to ?? DEFAULT_TO, from = this.from ?? DEFAULT_FROM;\n return (to - from) * progress + from;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemNumberAnimationElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemNumberAnimationElement.prototype, \"to\", void 0);\nPacemNumberAnimationElement = __decorate([\n CustomElement({ tagName: P + '-number-animation' })\n], PacemNumberAnimationElement);\nexport { PacemNumberAnimationElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PropertyConverters } from '../../converters';\nimport { Watch, CustomElement } from '../../decorators';\nimport { P } from '../../prefix';\nimport { TweenAnimationElement } from './animation';\n//namespace Pacem.Components {\nconst DEFAULT_FROM = { x: 0, y: 0 };\nconst DEFAULT_TO = { x: 1, y: 1 };\nlet PacemPointAnimationElement = class PacemPointAnimationElement extends TweenAnimationElement {\n tweenInterpolationCallback(time, progress) {\n const to = this.to ?? DEFAULT_TO, from = this.from ?? DEFAULT_FROM;\n return {\n x: (to.x - from.x) * progress + from.x,\n y: (to.y - from.y) * progress + from.y\n };\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Point })\n], PacemPointAnimationElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Point })\n], PacemPointAnimationElement.prototype, \"to\", void 0);\nPacemPointAnimationElement = __decorate([\n CustomElement({ tagName: P + '-point-animation' })\n], PacemPointAnimationElement);\nexport { PacemPointAnimationElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Utils } from '../../utils';\nimport { PropertyConverters } from '../../converters';\nimport { PacemItemsContainerElement } from '../basic';\nimport { Watch, CustomElement } from '../../decorators';\nimport { P } from '../../prefix';\nimport { AnimationElement } from './animation';\n//namespace Pacem.Components {\nlet PacemStoryboardElement = class PacemStoryboardElement extends PacemItemsContainerElement {\n validate(item) {\n return item instanceof AnimationElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._animate();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'datasource':\n this._buildDatasourceFromDatasource(val);\n break;\n case 'items':\n this._buildDatasourceFromItems(val);\n break;\n case '_adaptedDatasource':\n case 'autostart':\n this._animate();\n break;\n }\n }\n }\n _buildDatasourceFromItems(items = this.items) {\n this._adaptedDatasource = items || [];\n }\n _buildDatasourceFromDatasource(ds = this.datasource) {\n this._adaptedDatasource = ds || [];\n }\n _animate(start = this.autostart) {\n const ds = this._adaptedDatasource;\n const promises = [];\n if (start && !Utils.isNullOrEmpty(ds)) {\n for (let timeline of ds) {\n promises.push(timeline.startAnimation());\n }\n }\n return Promise.all(promises);\n }\n cancelAnimation() {\n const ds = this._adaptedDatasource || [];\n for (let timeline of ds) {\n timeline.cancelAnimation();\n }\n }\n startAnimation() {\n return this._animate(true);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemStoryboardElement.prototype, \"autostart\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemStoryboardElement.prototype, \"duration\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemStoryboardElement.prototype, \"datasource\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemStoryboardElement.prototype, \"_adaptedDatasource\", void 0);\nPacemStoryboardElement = __decorate([\n CustomElement({ tagName: P + '-storyboard' })\n], PacemStoryboardElement);\nexport { PacemStoryboardElement };\n","//namespace Pacem {\nexport const Defaults = {\n USE_SHADOW_ROOT: /*'attachShadow' in Element.prototype &&*/ false /* <- wait until html-imports */\n};\n//}\n","//namespace Pacem.RegularExpressions {\nexport const EMPTY_MATCHER = /a^/;\nexport class Regex {\n /**\n * Splits an input string into segments based on a matching pattern.\n * @param input Input string\n * @param pattern RegExp pattern\n */\n static split(input, pattern) {\n var matches, index = 0, trunks = [];\n while ((matches = pattern.exec(input)) != null) {\n trunks.push({ value: input.substr(index, matches.index - index), match: false, index: index });\n let length = matches[0].length;\n trunks.push({ value: input.substr(matches.index, length), match: true, index: matches.index });\n index = matches.index + length;\n }\n if (index < input.length)\n trunks.push({ value: input.substr(index, input.length - index), match: false, index: index });\n return trunks;\n }\n}\n//}\n","/// <reference path=\"decorators.ts\" />\n//namespace Pacem {\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PCSS } from './prefix';\nimport { Utils } from './utils';\nimport { CustomElementUtils } from './utils-customelement';\nimport { Transformer } from './decorators';\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nfunction buildDiffOptions(modeOrOutput, outputOrCssAdd, cssAddOrRemove, cssRemoveIfAny) {\n let mode = 'char';\n let output = 'full';\n let cssAdd;\n let cssRemove;\n if (['line', 'word', 'char'].includes(modeOrOutput)) {\n mode = modeOrOutput;\n output = outputOrCssAdd;\n cssAdd = cssAddOrRemove;\n cssRemove = cssRemoveIfAny;\n }\n else {\n output = modeOrOutput;\n cssAdd = outputOrCssAdd;\n cssRemove = cssAddOrRemove;\n }\n return {\n mode,\n output,\n cssAdd: cssAdd ?? 'fill-green-container',\n cssRemove: cssRemove ?? 'fill-red-container',\n };\n}\nclass Transforms {\n static highlight(src, query, css = PCSS + '-highlight') {\n if (!query || !src)\n return src;\n let output = src.substring(0);\n const trunks = query.substring(0).split(' ');\n for (var j = 0; j < trunks.length; j++) {\n const trunk = escapeRegExp(trunks[j]);\n const regex = new RegExp('(?![^<>]*>)' + trunk, 'gi');\n output = output.replace(regex, function (piece, index, whole) {\n var startTagNdx, endTagIndex;\n if ((startTagNdx = whole.indexOf('<', index)) != (endTagIndex = whole.indexOf('</', index)) || startTagNdx == -1)\n return '<span class=\"' + css + '\">' + piece + '</span>';\n return piece;\n });\n }\n return output;\n }\n static diff(a, b, modeOrOutput = 'full', outputOrCssAdd, cssAddOrRemove, cssRemoveIfAny) {\n const { mode, output, cssAdd, cssRemove } = buildDiffOptions(modeOrOutput, outputOrCssAdd, cssAddOrRemove, cssRemoveIfAny);\n const tokens = Utils.diff(a, b, mode);\n return tokens.reduce((acc, token) => {\n const t = token.type;\n if (t === '=') {\n acc += token.value;\n }\n else if (t === '+' && output !== 'left' || t === '-' && output !== 'right') {\n const lines = token.value.split(/\\r?\\n/);\n const lUpperBound = lines.length - 1;\n for (let l = 0; l <= lUpperBound; l++) {\n const line = lines[l];\n if (!Utils.isNullOrEmpty(line) || l < lUpperBound) {\n const css = t === '-' ? cssRemove : cssAdd;\n acc += `<span class=\"${PCSS}-token ${css} text-prewrap\">${line || ' '}</span>`;\n }\n if (l < lUpperBound) {\n acc += '\\n';\n }\n }\n }\n return acc;\n }, '');\n }\n static padleft(src, length, pad) {\n return Utils.leftPad('' + src, length, pad);\n }\n static size(src) {\n // TODO: use logarithms\n if (!(src > 0))\n return '-';\n if (src < 1024 /* 1kB */)\n return src + ' B';\n if (src < 1_048_576 /* 1MB */)\n return (src / 1024).toFixed(2) + ' kB';\n if (src < 1_073_741_824 /* 1GB */)\n return (src / 1_048_576).toFixed(2) + ' MB';\n return (src / 1_073_741_824).toFixed(2) + ' GB';\n }\n static decToDeg(src, degSeparator = '° ', minSeparator = '\\' ', secSeparator = '\"') {\n const sign = Math.sign(src);\n src = Math.abs(src);\n const deg = Math.floor(src), min0 = (src - deg) * 60, min = Math.floor(min0), sec0 = (min0 - min) * 60, sec = Math.floor(sec0);\n return (sign < 0 ? '-' : '') + deg + degSeparator + min + minSeparator + sec + secSeparator;\n }\n static date(src, format, culture) {\n var date = Utils.parseDate(src), lang = culture || navigator.language;\n if (Utils.isNull(format) || typeof format === 'string') {\n switch (format) {\n case 'iso':\n return date.toISOString();\n case 'isodate':\n return date.toISOString().substring(0, 10);\n case 'localdate':\n return `${date.getFullYear()}-${Utils.leftPad(date.getMonth() + 1, 2, '0')}-${Utils.leftPad(date.getDate(), 2, '0')}`;\n case 'time':\n case 'localtime':\n return date.toLocaleTimeString(lang, { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false });\n case 'full':\n const offset = -(date.getTimezoneOffset() / 60);\n var utc = '';\n if (offset != 0)\n utc = ' (UTC' + ((offset > 0 ? '+' : '-') + Math.abs(offset).toLocaleString()) + ')';\n return date.toLocaleString(lang) + utc;\n default:\n return date.toLocaleDateString(lang);\n }\n }\n else {\n return date.toLocaleString(culture, format);\n }\n }\n static timespan(start, end, format, culture) {\n const startDate = Utils.parseDate(start), endDate = Utils.parseDate(end), span = endDate.valueOf() - startDate.valueOf(), sign = span < 0 ? '-' : '', elapsed = Math.abs(span);\n if (typeof format === 'object') {\n const adj = { timeZone: 'UTC', hour12: false }, tweakedFormat = Utils.extend(adj, format);\n return (sign || (format.sign ? '+' : '')) + Intl.DateTimeFormat(culture ?? navigator.language, tweakedFormat).format(elapsed);\n }\n // legacy output\n const msecsPerDay = 86400000, msecsPerHr = 3600000, msecsPerMin = 60000, days = Math.floor(elapsed / msecsPerDay), hrs = Math.floor((elapsed % msecsPerDay) / msecsPerHr), mins = Math.floor((elapsed % msecsPerHr) / msecsPerMin), secs = Math.floor((elapsed % msecsPerMin) / 1000), msecs = Math.floor(elapsed % 1000);\n return `${sign}${days}d ${hrs}h ${mins}m ${secs}s ${msecs}ms`;\n }\n static currency(src, currency, culture) {\n return new Intl.NumberFormat(culture ?? navigator.language, { style: 'currency', currency: currency }).format(src);\n }\n static number(src, formatOrCulture, culture) {\n if (typeof formatOrCulture === 'string') {\n return new Intl.NumberFormat(formatOrCulture || navigator.language).format(src);\n }\n return new Intl.NumberFormat(culture ?? navigator.language, formatOrCulture).format(src);\n }\n static filter(src, filter) {\n return src.filter(filter);\n }\n static orderby(src, prop) {\n return src.sort((a, b) => {\n if (!Utils.isNullOrEmpty(prop)) {\n a = a[prop];\n b = b[prop];\n }\n return a > b ? 1 : (a < b ? -1 : 0);\n });\n }\n // #region RegExp\n static isMatch(input, pattern, flags) {\n return new RegExp(pattern, flags).test(input);\n }\n // #endregion\n // #region shortcuts from 'Utils'\n static isEmpty(obj) {\n return Utils.isEmpty(obj);\n }\n static isNull(obj) {\n return Utils.isNull(obj);\n }\n static isNullOrEmpty(obj) {\n return Utils.isNullOrEmpty(obj);\n }\n static getCssVariable(name) {\n return Utils.Css.getVariableValue(name);\n }\n static getQuerystring(name) {\n return Utils.URIs.parseQuery()[name];\n }\n // #endregion\n // #region shortcuts from 'CustomElementUtils'\n static importThemeWebFonts() {\n return CustomElementUtils.Theme.importWebFonts();\n }\n static findHostContext(element) {\n return CustomElementUtils.findHostContext(element);\n }\n}\n__decorate([\n Transformer()\n], Transforms, \"highlight\", null);\n__decorate([\n Transformer()\n], Transforms, \"diff\", null);\n__decorate([\n Transformer()\n], Transforms, \"padleft\", null);\n__decorate([\n Transformer()\n], Transforms, \"size\", null);\n__decorate([\n Transformer()\n], Transforms, \"decToDeg\", null);\n__decorate([\n Transformer()\n], Transforms, \"date\", null);\n__decorate([\n Transformer()\n], Transforms, \"timespan\", null);\n__decorate([\n Transformer()\n], Transforms, \"currency\", null);\n__decorate([\n Transformer()\n], Transforms, \"number\", null);\n__decorate([\n Transformer()\n], Transforms, \"filter\", null);\n__decorate([\n Transformer()\n], Transforms, \"orderby\", null);\n__decorate([\n Transformer('regex.')\n], Transforms, \"isMatch\", null);\n__decorate([\n Transformer()\n], Transforms, \"isEmpty\", null);\n__decorate([\n Transformer()\n], Transforms, \"isNull\", null);\n__decorate([\n Transformer()\n], Transforms, \"isNullOrEmpty\", null);\n__decorate([\n Transformer('cssvar')\n], Transforms, \"getCssVariable\", null);\n__decorate([\n Transformer('querystring')\n], Transforms, \"getQuerystring\", null);\n__decorate([\n Transformer()\n], Transforms, \"importThemeWebFonts\", null);\n__decorate([\n Transformer('host')\n], Transforms, \"findHostContext\", null);\n//}\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["Keys","Dates","Colors","Strings","Blobs","Imaging","detect","NullChecker","Point","RepeaterItem","GET_VAL","SET_VAL","Size","Rect","DEL_VAL","Transforms","__decorate","this","HistoryService","RepeaterItemBase","ORCHESTRATOR","PacemAnimationEvent","MOUSE_DOWN","DELEGATE","Matrix2D","PacemRepeaterItem","Angle","Numbers","DEFAULT_FROM","DEFAULT_TO","DeepMerger"],"mappings":"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"}
1
+ {"version":3,"file":"pacem-core.js","sources":["../esm/animations/easings.js","../esm/trees/deepcloner.js","../esm/trees/json.js","../esm/promise.js","../esm/utils.js","../esm/utils-customevent.js","../esm/events.js","../esm/animations/events.js","../esm/animations/tween-service.js","../esm/animations/timer.js","../esm/net/fetcher.js","../esm/net/http.js","../esm/ui/drag-drop.js","../esm/ui/rescale.js","../esm/ui/rotate.js","../esm/ui/swipe.js","../esm/adapter.js","../esm/types.js","../esm/prefix.js","../esm/template.js","../esm/utils-customelement.js","../esm/expression.js","../esm/logger.js","../esm/converters.js","../esm/comparers.js","../esm/decorators.js","../esm/eventtarget.js","../esm/components/basic/types.js","../esm/components/basic/adapter.js","../esm/components/basic/annihilator.js","../esm/components/basic/beforeunload.js","../esm/components/basic/broadcastchannel-proxy.js","../esm/components/basic/browser.js","../esm/storage.js","../esm/components/basic/data.js","../esm/components/basic/dock.js","../esm/components/basic/element-proxies.js","../esm/components/basic/event-proxy.js","../esm/components/basic/fetcher.js","../esm/components/basic/history.js","../esm/components/basic/html-proxy.js","../esm/components/basic/if.js","../esm/components/basic/items-container.js","../esm/components/basic/iterative.js","../esm/components/basic/layout-proxy.js","../esm/components/basic/meta-proxy.js","../esm/components/basic/online-status.js","../esm/components/basic/panel.js","../esm/command.js","../esm/components/basic/template-proxy.js","../esm/components/basic/repeater.js","../esm/components/basic/resize.js","../esm/components/basic/router.js","../esm/components/basic/scroll-aware.js","../esm/components/basic/serviceworker-proxy.js","../esm/components/basic/shortcut.js","../esm/components/basic/span.js","../esm/components/basic/style-proxy.js","../esm/components/basic/text.js","../esm/components/basic/timer.js","../esm/components/basic/title-proxy.js","../esm/components/basic/tweener.js","../esm/components/basic/viewport-aware.js","../esm/components/basic/webworker-proxy.js","../esm/components/behavior.js","../esm/components/behaviors/drag-drop.js","../esm/components/behaviors/rescale.js","../esm/components/behaviors/rotate.js","../esm/components/behaviors/swipe.js","../esm/components/animations/animation.js","../esm/components/animations/color-animation.js","../esm/components/animations/number-animation.js","../esm/components/animations/point-animation.js","../esm/components/animations/storyboard.js","../esm/defaults.js","../esm/regex.js","../esm/transforms.js","../esm/index-iife.js"],"sourcesContent":["// namespace Pacem.Animations {\n// TODO: Bezier\nconst pi_half = Math.PI * .5;\nconst EASINGS = {\n // t: normalized `current time` [0,1]\n linear: t => t,\n sineIn: t => Math.sin(t * pi_half - pi_half) + 1.0,\n sineOut: t => Math.sin(t * pi_half),\n sineInOut: t => .5 * Math.sin(t * Math.PI - pi_half) + .5,\n expoIn: t => (Math.pow(Math.E, t) - 1.0) / (Math.E - 1.0),\n expoOut: t => Math.log(t * (Math.E - 1.0) + 1.0),\n expoInOut: t => t < .5 ? .5 * Easings.expoIn(t * 2) : .5 * (1 + Easings.expoOut(t * 2 - 1.0))\n};\nfunction assembleEasing(fn, css) {\n const output = (t) => fn(t);\n output['css'] = css;\n return output;\n}\nexport const Easings = {\n linear: assembleEasing(EASINGS.linear, \"linear\"),\n sineIn: assembleEasing(EASINGS.sineIn, 'cubic-bezier(0.12, 0, 0.39, 0)'),\n sineOut: assembleEasing(EASINGS.sineOut, 'cubic-bezier(0.61, 1, 0.88, 1)'),\n sineInOut: assembleEasing(EASINGS.sineInOut, 'cubic-bezier(0.37, 0, 0.63, 1)'),\n // TODO: set correct pairing\n expoIn: assembleEasing(EASINGS.expoIn, 'cubic-bezier(0.7, 0, 0.84, 0)'),\n expoOut: assembleEasing(EASINGS.expoOut, 'cubic-bezier(0.16, 1, 0.3, 1)'),\n expoInOut: assembleEasing(EASINGS.expoInOut, 'cubic-bezier(0.87, 0, 0.13, 1)'),\n};\n//}\n","// namespace Pacem {\nexport class DeepCloner {\n constructor() {\n }\n static clone(obj) {\n return new DeepCloner()._clone(obj);\n }\n _clone(obj) {\n let seen = new WeakMap();\n function clone(obj) {\n if (typeof obj === 'object' && obj !== null\n && /* DOM elements won't be deep-cloned */ !(obj instanceof Element)\n && /* FileSystem API interfaces and File objects won't be deep-cloned */ !(obj instanceof FileSystemHandle) && !(obj instanceof File)) {\n if (Array.isArray(obj)) {\n return obj.map(clone);\n }\n else if (obj instanceof Date) {\n return new Date(obj.valueOf());\n }\n else if (obj instanceof RegExp) {\n return new RegExp(obj);\n }\n else {\n if (seen.has(obj)) {\n return seen.get(obj);\n }\n else {\n let shallow2Deep = Object.assign({}, obj);\n seen.set(obj, shallow2Deep);\n Object.keys(shallow2Deep).forEach(k => { shallow2Deep[k] = clone(obj[k]); });\n return shallow2Deep;\n }\n }\n }\n return obj;\n }\n return clone(obj);\n }\n}\n//}\n","import { DeepCloner } from './deepcloner';\nimport { Keys } from '@pacem/pacem-foundation';\n// namespace Pacem {\nconst REF_ID = '$refId';\n/** How functions get serialized. */\nexport var JsonFunctionConversion;\n(function (JsonFunctionConversion) {\n /** Skip functions (default). */\n JsonFunctionConversion[JsonFunctionConversion[\"Ignore\"] = 0] = \"Ignore\";\n /** Functions get referenced from a state in the current DOM. Not suitable for backups or long-term dehydrations. */\n JsonFunctionConversion[\"Reference\"] = \"reference\";\n /** Function gets stringified and then eval(uated) while dehydrating. Functions with a state (impure) might not working properly when used on the dehydrated side. */\n JsonFunctionConversion[\"Plain\"] = \"plain\";\n})(JsonFunctionConversion || (JsonFunctionConversion = {}));\n;\nclass JsonFnStore {\n static { this._jsonFnWeakMap = new WeakMap(); }\n static { this._jsonFnMap = new Map(); }\n static store(fn) {\n const weak = this._jsonFnWeakMap;\n if (!weak.has(fn)) {\n const key = Keys.uniqueCode();\n weak.set(fn, key);\n this._jsonFnMap.set(key, fn);\n }\n return weak.get(fn);\n }\n static retrieve(key) {\n return this._jsonFnMap.get(key);\n }\n static remove(key) {\n const fn = this.retrieve(key);\n this._jsonFnMap.delete(key);\n this._jsonFnWeakMap.delete(fn);\n }\n}\nexport class Json {\n constructor(_options) {\n this._options = _options;\n }\n static serialize(obj, options) {\n return new Json(options)._serialize(obj);\n }\n static deserialize(json) {\n return new Json()._deserialize(json);\n }\n _serialize(obj) {\n let clone = DeepCloner.clone(obj);\n let keys = [REF_ID];\n let flat = this._flatten(clone, 0, null, keys);\n return JSON.stringify(flat, keys.sort());\n }\n _deserialize(json) {\n let hasRefs = false;\n let obj = JSON.parse(json, (key, value) => {\n const elPattern = /^\\$<#(.+)>$/, fnPattern = /^\\$<fn:([^\\x05]+)>$/, // <- Firefox workaround for missing 's' flag implementation\n // fnPattern = /^\\$<fn:(.+)>$/s,\n regexPattern = /^\\$<regex:(.+)>$/, fnRefPattern = /^\\$<fn#(.+)>$/;\n let arr;\n if (key === REF_ID) {\n hasRefs = true;\n }\n else if (typeof value === 'string') {\n // regex?\n if ((arr = regexPattern.exec(value)) && arr.length > 1) {\n const regex = arr[1], lastPipe = regex.lastIndexOf('|');\n return new RegExp(regex.substr(0, lastPipe), regex.substr(lastPipe + 1));\n }\n // element?\n else if ((arr = elPattern.exec(value)) && arr.length > 1) {\n return document.getElementById(arr[1]);\n }\n else \n // function (flat)\n if ((arr = fnPattern.exec(value)) && arr.length > 1) {\n return eval(arr[1]);\n }\n else \n // function (ref)\n if ((arr = fnRefPattern.exec(value)) && arr.length > 1) {\n return JsonFnStore.retrieve(arr[1]);\n }\n }\n return value;\n });\n if (hasRefs) {\n return this._revive(obj);\n }\n return obj;\n }\n _flatten(obj, increment = 0, seen, keys) {\n seen = seen || new WeakSet();\n keys = keys || [];\n if (obj instanceof Element) {\n if (!obj.id) {\n return;\n }\n return `$<#${obj.id}>`;\n }\n else if (obj instanceof RegExp) {\n return `$<regex:${obj.source}|${obj.flags}>`;\n }\n else if (typeof obj === 'object' && obj != null && !(obj instanceof Date)) {\n if (Array.isArray(obj)) {\n return obj.map(i => this._flatten(i, increment, seen, keys));\n }\n else {\n // very object\n if (seen.has(obj)) {\n return (obj[REF_ID] = obj[REF_ID] || ('$#ref_' + (increment++)));\n }\n else {\n seen.add(obj);\n Object.keys(obj).forEach(k => {\n if (keys.indexOf(k) === -1) {\n keys.push(k);\n }\n obj[k] = this._flatten(obj[k], increment, seen, keys);\n });\n return obj;\n }\n }\n }\n else if (typeof obj === 'function') {\n switch (this._options?.functions) {\n case JsonFunctionConversion.Reference:\n const key = JsonFnStore.store(obj);\n return '$<fn#' + key + '>';\n case JsonFunctionConversion.Plain:\n return '$<fn:' + obj + '>';\n default:\n return undefined;\n }\n }\n return obj;\n }\n _revive(obj) {\n let hashTable = {};\n const refPattern = /^\\$#ref_(.+)$/;\n function revive(entity) {\n if (typeof entity === 'object' && entity !== null) {\n if (Array.isArray(entity)) {\n return entity.map(revive);\n }\n else {\n if (REF_ID in entity) {\n hashTable[entity[REF_ID]] = entity;\n delete entity[REF_ID];\n }\n Object.keys(entity).forEach(k => {\n entity[k] = revive(entity[k]);\n });\n }\n }\n else if (typeof entity === 'string' && refPattern.test(entity)) {\n let arr = refPattern.exec(entity);\n return hashTable[arr[0]];\n }\n return entity;\n }\n return revive(obj);\n }\n}\n//}\n","//namespace Pacem {\nexport class DeferPromise {\n constructor() {\n this.deferred = null;\n var me = this;\n me.promise = new Promise(function (resolve, reject) {\n me.deferred = { 'resolve': resolve, 'reject': reject, 'promise': me };\n });\n }\n then(onCompleted, onFailed) {\n return this.promise.then(onCompleted, onFailed);\n }\n /**\n * Occurs whenever the promise concludes (either after completion or error).\n * @param {Function } callback\n */\n finally(callback) {\n this.promise.then(callback, callback);\n return this;\n }\n success(callback) {\n this.promise.then(callback, null);\n return this;\n }\n error(callback) {\n this.promise.then(null, callback);\n return this;\n }\n static defer() {\n var q = new DeferPromise();\n return q.deferred;\n }\n}\n//}\n","import { Keys, Dates, Colors, Strings, Blobs, Imaging, NullChecker, detect } from '@pacem/pacem-foundation';\nimport { Json } from './trees/json';\nimport { DeepCloner } from './trees/deepcloner';\nimport { DeferPromise } from './promise';\n// namespace Pacem {\nconst PACEM_CORE_DEFAULT = 'pacem';\nconst DEFAULT_DOWNLOAD_FILENAME = 'download';\nexport const stopPropagationHandler = (evt) => {\n evt.stopPropagation();\n};\nexport const preventDefaultHandler = (evt) => {\n evt.preventDefault();\n};\nexport const avoidHandler = (evt) => {\n evt.preventDefault();\n evt.stopPropagation();\n};\nconst SEGMENT_PATTERN = /^\\/[^\\/]+/;\nconst ROUTE_SEGMENT_PATTERN = /\\/\\{([a-z\\$_][\\w]*)\\??\\}/;\nexport class Utils {\n static get core() {\n const root = window['Pacem'];\n var id = (root && root.Configuration && root.Configuration.core) || PACEM_CORE_DEFAULT;\n return window[id] = window[id] || {};\n }\n static get customElements() {\n return window['customElements'];\n }\n // #region GENERAL\n static uniqueId() {\n return Keys.uniqueId();\n }\n static uniqueCode() {\n return Keys.uniqueCode();\n }\n static randomString(length) {\n return Keys.randomString(length);\n }\n static parseDate(input) {\n return Dates.parse(input);\n }\n static copyToClipboard(input) {\n if (navigator.clipboard) {\n return navigator.clipboard.writeText(input);\n }\n // deprecated code branch\n return new Promise((resolve, reject) => {\n const el = document.createElement('textarea');\n el.value = input;\n el.style.opacity = \"0\";\n document.body.appendChild(el);\n try {\n el.select();\n document.execCommand('copy');\n el.remove();\n resolve();\n }\n catch (e) {\n reject(e);\n }\n });\n }\n // json-dedicated\n static { this.Json = {\n stringify: Json.serialize,\n parse: Json.deserialize\n }; }\n // dates-dedicated (moved to foundations, kept for backwards compat)\n static { this.Dates = {\n now: () => Utils.parseDate(Date.now()),\n parse: Utils.parseDate,\n isLeapYear: Dates.isLeapYear,\n daysInMonth: Dates.daysInMonth,\n /**\n * Gets whether a date is an `Invalid Date` or not.\n * @param date\n */\n isDate: Dates.isDate,\n dateOnly: Dates.dateOnly,\n addMonths: Dates.addMonths,\n addDays: Dates.addDays,\n daysBetween: Dates.daysBetween,\n }; }\n static colorize(elementOrRgb, rgb) {\n const hsl0 = /*Colors.hsl(Colors.parse('#000'))*/ { h: 38, s: .245, l: .6 };\n var realRgb, rgba, filter, element;\n if (elementOrRgb instanceof HTMLElement) {\n realRgb = rgb;\n }\n else {\n realRgb = elementOrRgb;\n }\n // rgba\n if (typeof realRgb === 'string') {\n rgba = Colors.parse(realRgb);\n }\n else {\n rgba = { r: realRgb[0], g: realRgb[1], b: realRgb[2] };\n }\n const hsl = Colors.hsl(rgba);\n filter = `brightness(50%) sepia(1) hue-rotate(${(hsl.h - hsl0.h)}deg) saturate(${(1.0 + (hsl.s - hsl0.s))}) brightness(${(1.0 + (hsl.l - hsl0.l))})`;\n if (realRgb === rgb) {\n element.style.filter = filter;\n }\n else {\n return filter;\n }\n }\n static cssEscape(input) {\n return escape(input).replace('%', '\\\\');\n }\n // css-dedicated\n static { this.Css = {\n colorize: Utils.colorize,\n escape: Utils.cssEscape,\n getVariableValue(name) {\n return getComputedStyle(document.documentElement).getPropertyValue(name);\n },\n setVariable(name, value) {\n getComputedStyle(document.documentElement).setProperty(name, value);\n },\n /**\n * Naive O(n^2) implementation for an actual css class presence (definition) in the current DOM.\n * @param name CSS class name\n */\n isClassDefined(name) {\n const pattern = new RegExp('\\.' + name + '($|[\\s\\.,])');\n for (let j = 0; j < document.styleSheets.length; j++) {\n const sheet = document.styleSheets.item(j);\n try {\n const rules = sheet.cssRules;\n for (let i = 0; i < rules.length; i++) {\n const rule = sheet.cssRules.item(i);\n if (pattern.test(rule.selectorText)) {\n return true;\n }\n }\n }\n catch (e) {\n if (e instanceof DOMException) {\n console.warn('Couldn\\'t access cssRules of stylesheet \"' + sheet.href + '\".');\n // console.error(e);\n }\n }\n }\n return false;\n },\n deserializeTransform(element) {\n const style = element instanceof Element ? getComputedStyle(element) : element;\n let a = 1, b = 0, c = 0, d = 1, x = 0, y = 0, matches = /^matrix\\((.*)\\)$/.exec(style.transform), mij;\n //matrix(1, 0, 0, 1, 2, 4) \n if (matches && matches.length > 1 && (mij = matches[1].split(',')).length == 6) {\n // scale + rot\n a = parseFloat(mij[0]);\n b = parseFloat(mij[1]);\n c = parseFloat(mij[2]);\n d = parseFloat(mij[3]);\n // transl\n x += parseFloat(mij[4]);\n y += parseFloat(mij[5]);\n }\n return { a: a, b: b, c: c, d: d, e: x, f: y };\n }\n }; }\n // #region strings\n // legacy\n static { this.leftPad = Strings.leftPad; }\n static { this.formatString = Strings.format; }\n static { this.diff = Strings.diff; }\n static { this.Strings = {\n leftPad: Strings.leftPad,\n format: Strings.format,\n diff: Strings.diff,\n stripHTML: (html) => {\n let doc = new DOMParser().parseFromString(html, 'text/html');\n return doc.body.textContent || '';\n }\n }; }\n // #endregion\n // #endregion\n // #region blob/files...\n static { this.Blobs = {\n toDataURL: Blobs.blobToDataURL,\n fromDataURL: Blobs.dataURLToBlob,\n toText: Blobs.blobToText,\n fromText: Blobs.textToBlob\n }; }\n static { this.Images = {\n load: Imaging.loadImage,\n resize: Imaging.resizeImage\n }; }\n static loadImage(src) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.src = src;\n if (img.complete) {\n resolve(img);\n }\n else {\n img.onload = (evt) => {\n resolve(img);\n };\n img.onerror = (evt) => {\n reject();\n };\n }\n });\n }\n static blobToDataURL(blob) {\n return Utils.Blobs.toDataURL(blob);\n }\n static dataURLToBlob(dataURL) {\n return Utils.Blobs.fromDataURL(dataURL);\n }\n static blobToText(blob, encoding) {\n return Utils.Blobs.toText(blob, encoding);\n }\n static textToBlob(content, type = 'text/plain') {\n return Utils.Blobs.fromText(content, type);\n }\n /** @deprecated Use {Utils.Images.resize}, instead.\n * Resizes an image when exceeding the provided size constraints.\n * @param img {Blob} Input image\n * @param maxWidth {number} Width constraint\n * @param maxHeight {number} Height constraint\n */\n static resizeImage(img, maxWidth, maxHeight, quality) {\n var deferred = DeferPromise.defer();\n Utils.blobToDataURL(img)\n .then(Utils.loadImage)\n .then(el => {\n const origWidth = el.width, origHeight = el.height;\n let cnv = document.createElement('canvas');\n cnv.width = origWidth;\n cnv.height = origHeight;\n let ctx = cnv.getContext('2d');\n //ctx.drawImage(el, 0, 0);\n if (origWidth > maxWidth\n || origHeight > maxHeight) {\n const origRatio = origWidth / origHeight, targetRatio = maxWidth / maxHeight;\n let targetHeight, targetWidth;\n if (targetRatio < origRatio) {\n targetWidth = maxWidth;\n targetHeight = maxWidth / origRatio;\n }\n else {\n targetHeight = maxHeight;\n targetWidth = maxHeight * origRatio;\n }\n cnv.width = targetWidth;\n cnv.height = targetHeight;\n const jpeg = quality > 0 && quality <= 1;\n if (jpeg) {\n ctx.fillStyle = '#000';\n ctx.fillRect(0, 0, cnv.width, cnv.height);\n }\n Utils.cropImageOntoCanvas(el, ctx);\n let newUrl;\n if (jpeg)\n newUrl = ctx.canvas.toDataURL(\"image/jpeg\", quality);\n else\n newUrl = ctx.canvas.toDataURL();\n deferred.resolve(Utils.dataURLToBlob(newUrl));\n }\n else {\n deferred.resolve(img);\n }\n }, _ => {\n // image loading error caught...\n });\n return deferred.promise;\n }\n /** @deprecated Use {Utils.Images.resize}, instead.\n * Crops an image having the provided url (might be a dataURL) into another having the provided size\n * @param url\n * @param width\n * @param height\n * @param ctx\n */\n static cropImage(url, width, height, quality) {\n var deferred = DeferPromise.defer();\n let el = new Image();\n el.crossOrigin = 'anonymous';\n el.onload = function (ev) {\n let cnv = document.createElement('canvas');\n let ctx = cnv.getContext('2d');\n if (width)\n cnv.width = width;\n if (height)\n cnv.height = height;\n //\n const jpeg = quality > 0 && quality <= 1;\n if (jpeg) {\n ctx.fillStyle = '#000';\n ctx.fillRect(0, 0, cnv.width, cnv.height);\n }\n Utils.cropImageOntoCanvas(el, ctx);\n deferred.resolve(jpeg ? cnv.toDataURL('image/jpeg', quality) : cnv.toDataURL());\n };\n el.src = url;\n return deferred.promise;\n }\n static getUserMediaFunctions() {\n var _getUserMedia = [];\n let methods = [navigator['getUserMedia'], navigator['webkitGetUserMedia'], navigator['msGetUserMedia'], navigator['mozGetUserMedia']];\n let fns = methods.filter(function (fn, j) { return typeof fn == 'function'; });\n if (fns.length)\n _getUserMedia = fns;\n return _getUserMedia;\n }\n /**\n * Crops the snapshot of a drawable element onto a provided canvas context. It gets centered in the area and cropped (`cover`-like behavior).\n * @param el drawable element\n * @param ctx canvas context\n * @param sourceWidth forced source width\n * @param sourceHeight forced source height\n */\n static cropImageOntoCanvas(el, ctx, sourceWidth, sourceHeight) {\n ctx.imageSmoothingEnabled =\n ctx['mozImageSmoothingEnabled'] =\n ctx['oImageSmoothingEnabled'] =\n ctx['webkitImageSmoothingEnabled'] =\n true;\n //\n let tgetW = ctx.canvas.width /*= parseFloat(scope.thumbWidth)*/;\n let tgetH = ctx.canvas.height /*= parseFloat(scope.thumbHeight)*/;\n let cnvW = tgetW, cnvH = tgetH;\n let w = sourceWidth || 1.0 * el.width, h = sourceHeight || 1.0 * el.height;\n //console.log('img original size: ' + w + 'x' + h);\n var ratio = w / h;\n var tgetRatio = tgetW / tgetH;\n if (tgetRatio > ratio) {\n // crop vertically\n var f = tgetW / w;\n tgetH = f * h;\n ctx.drawImage(el, 0, .5 * (-tgetH + cnvH), cnvW, tgetH);\n }\n else {\n // crop horizontally\n var f = tgetH / h;\n tgetW = f * w;\n ctx.drawImage(el, -Math.abs(.5 * (-tgetW + cnvW)), 0, tgetW, cnvH);\n }\n }\n static get _domURL() {\n return window.URL || window['webkitURL'] || window;\n }\n /**\n * Snapshots a DOM element and returns its blob image representation.\n * @param el Element to snapshot\n * @param background Background color to replace the original\n * @param type Output mimetype (image/png, image/jpeg, images/webp, ...)\n * @param quality Quality ratio between 0..1\n */\n static snapshotElement(el, background, type = 'image/png', quality) {\n function drawCanvas(img) {\n return new Promise((resolve, reject) => {\n const canvas = document.createElement('canvas'), width = img.width, height = img.height;\n if (!(width > 0)) {\n reject('Image has width zero.');\n }\n else if (!(height > 0)) {\n reject('Image has height zero.');\n }\n else {\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n if (!Utils.isNullOrEmpty(background)) {\n ctx.fillStyle = background;\n ctx.fillRect(0, 0, width, height);\n }\n ctx.drawImage(img, 0, 0);\n canvas.toBlob(b => {\n resolve(b);\n }, type, quality);\n }\n });\n }\n if (el instanceof HTMLCanvasElement) {\n return drawCanvas(el);\n }\n return new Promise((resolve, _) => {\n const loadPromises = [];\n //#region utils functions\n function addLoadPromise(img) {\n const p = new Promise((resolve0, _) => {\n const getSrc = () => {\n return img instanceof HTMLImageElement ? img.src : img.href.baseVal;\n };\n const setSrc = (src) => {\n if (img instanceof HTMLImageElement)\n img.src = src;\n else {\n img.setAttribute('href', src);\n }\n };\n fetch(getSrc())\n .then(r => r.blob())\n .then(blob => Utils.blobToDataURL(blob))\n .then(url => {\n setSrc(url);\n resolve0();\n });\n });\n loadPromises.push(p);\n }\n function copyCanvas(copy, srcCanvas) {\n const p = new Promise((resolve0, _) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.width = srcCanvas.width;\n img.height = srcCanvas.height;\n img.style.cssText = copy.style.cssText;\n img.onload = () => {\n copy.replaceWith(img);\n resolve0();\n };\n img.src = srcCanvas.toDataURL();\n });\n loadPromises.push(p);\n }\n function applyCss(copy, src) {\n const css = getComputedStyle(src);\n for (let j = 0; j < css.length; j++) {\n const item = css.item(j);\n copy.style[item] = css[item];\n }\n }\n function recSetupCopy(copy, src) {\n // assign css text\n applyCss(copy, src);\n // bitmaps\n if (copy instanceof HTMLImageElement || copy instanceof SVGImageElement) {\n addLoadPromise(copy);\n }\n else if (copy instanceof HTMLCanvasElement) {\n copyCanvas(copy, src);\n }\n // recursion\n const childLength = copy.children.length;\n for (let i = 0; i < childLength; i++) {\n const copy1 = copy.children.item(i), src1 = src.children.item(i);\n if (copy1.tagName === src1.tagName) {\n recSetupCopy(copy1, src1);\n }\n }\n }\n //#endregion\n const isSvg = el instanceof SVGElement;\n if (!isSvg) {\n var doc = document.implementation.createHTMLDocument('');\n doc.write(el.outerHTML);\n doc.documentElement.setAttribute('xmlns', doc.documentElement.namespaceURI);\n const xpath = document.evaluate(\".//\" + el.localName, doc.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n const node = xpath;\n node.setAttribute('xmlns', doc.documentElement.namespaceURI);\n recSetupCopy(node, el);\n Promise.all(loadPromises).then(_ => {\n // Get well-formed markup\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", 'svg');\n const size = Utils.offset(el);\n svg.setAttribute('viewBox', `0 0 ${size.width} ${size.height}`);\n svg.setAttribute('width', size.width.toString());\n svg.setAttribute('height', size.height.toString());\n svg.innerHTML = `<foreignObject width=\"${size.width}\" height=\"${size.height}\">${node.outerHTML}</foreignObject>`;\n el = svg;\n execute();\n });\n }\n else {\n const svg = el.cloneNode(true);\n recSetupCopy(svg, el);\n Promise.all(loadPromises).then(_ => {\n el = svg;\n execute();\n });\n }\n function execute() {\n const data = new XMLSerializer().serializeToString(el);\n const img = new Image();\n img.crossOrigin = 'anonymous';\n // switching from blob to data url (see: https://bugs.chromium.org/p/chromium/issues/detail?id=294129)\n //const domURL = this._domURL;\n //var svg = new Blob([data], { type: 'image/svg+xml' });\n //var url = domURL.createObjectURL(svg);\n const url = 'data:image/svg+xml;charset=utf8,' + encodeURIComponent(data);\n img.onload = () => {\n drawCanvas(img).then(resolve);\n //domURL.revokeObjectURL(url);\n };\n img.src = url;\n }\n });\n }\n static async download(arg0, arg1, mime = \"application/download\") {\n if (typeof arg0 === 'string') {\n const url = arg0;\n let options = {}, filename;\n if (!Utils.isNullOrEmpty(arg1)) {\n if (typeof arg1 === 'object') {\n options = { credentials: arg1.credentials, headers: arg1.headers };\n filename = arg1.filename || filename;\n mime = arg1.mime || mime;\n }\n else {\n filename = arg1;\n }\n }\n var response = await fetch(url, options);\n if (response.ok) {\n if (Utils.isNullOrEmpty(filename)) {\n const headerName = 'Content-Disposition';\n if (response.headers.has(headerName)) {\n const header = response.headers.get(headerName), results = /^attachment; filename=\\\"?([^;\\\"]+)\\\"?(;|$)/.exec(header);\n if (results.length > 1) {\n filename = results[1];\n }\n }\n else {\n filename = DEFAULT_DOWNLOAD_FILENAME;\n }\n }\n var blob = await response.blob();\n const fn = filename.split(/[\\\\\\/]/g).join('_');\n return Utils.download(blob, fn);\n }\n {\n const reason = await response.text();\n throw new Error(reason);\n }\n }\n else {\n const content = arg0, filename = (typeof arg1 === 'string' && arg1) || DEFAULT_DOWNLOAD_FILENAME, fanchor = document.createElement('a');\n fanchor.setAttribute('href', Utils._domURL.createObjectURL(content));\n fanchor.setAttribute('download', filename);\n if (document.createEvent) {\n var event = document.createEvent('MouseEvents');\n event.initEvent('click', true, true);\n fanchor.dispatchEvent(event);\n }\n else {\n fanchor.click();\n }\n }\n }\n // #endregion\n // #region DOM\n static isDOMReady() {\n // Must exclude 'interactive' state since module script haven't been processed yet.\n return /* document.readyState === 'interactive' ||*/ document.readyState === 'complete';\n }\n static onDOMReady(listener) {\n //window.addEventListener('DOMContentLoaded', listener, false);\n // window 'load' event fires after 'DOMCOntentLoaded' since includes images load.\n window.addEventListener('load', listener, false);\n }\n /**\n * Moves all the source element children to the target element and returns them as an array of nodes.\n * @param source Source element.\n * @param target Target element.\n */\n static moveChildren(source, target) {\n return Utils.moveItems(source.childNodes, target);\n }\n /**\n * Moves specific nodes to the target element and returns them as an array of nodes.\n * @param nodes Nodes to move.\n * @param target Target element.\n */\n static moveItems(nodes, target) {\n let dom = [], ref;\n for (let j = nodes.length - 1; j >= 0; j--) {\n let item = nodes instanceof NodeList ? nodes.item(j) : nodes[j];\n target.insertBefore(item, ref);\n dom.unshift(item);\n ref = item;\n }\n return dom;\n }\n static is(el, selector) {\n return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector)\n .call(el, selector);\n }\n static lang(el) {\n return el.lang || document.documentElement.lang || navigator.language;\n }\n static jsonSortStringify(obj) {\n if (Utils.isNull(obj)) {\n return obj;\n }\n return Utils.Json.stringify(obj);\n }\n static { this.Browsers = {\n detect\n }; }\n static cookies(cookie) {\n const cookies = (cookie ?? document.cookie).split(';'), retval = {};\n for (var pair of cookies) {\n const keyval = pair.split('=');\n if (keyval.length < 2) {\n continue;\n }\n const key = (keyval[0] || '').trim(), value = (keyval[1] || '').trim();\n Object.defineProperty(retval, key, {\n configurable: false, enumerable: true, writable: false,\n value: decodeURIComponent(value.split('+').join(' '))\n });\n }\n return retval;\n }\n static { this.Cookies = {\n getAll: async (cookieName) => {\n const store = 'cookieStore' in window ? window.cookieStore : null;\n const retval = [];\n if (Utils.isNull(store)) {\n const nameValues = Utils.cookies();\n for (let name in nameValues) {\n if (!Utils.isNullOrEmpty(cookieName) && cookieName !== name) {\n continue;\n }\n retval.push({ name, value: nameValues[name] });\n }\n return retval;\n }\n else {\n return await store.getAll(cookieName);\n }\n },\n stringify: (data) => {\n let retval = `${data.name}=${encodeURIComponent(data.value ?? '')}`;\n if (!Utils.isNullOrEmpty(data.domain)) {\n retval += `; domain=${encodeURIComponent(data.domain)}`;\n }\n if (!Utils.isNullOrEmpty(data.path)) {\n retval += `; path=${encodeURIComponent(data.path)}`;\n }\n if (data.maxAge > 0) {\n retval += `; max-age=${data.maxAge.toFixed(0)}`;\n }\n if (!Utils.isNullOrEmpty(data.expires)) {\n retval += `; expires=${data.expires}`;\n }\n if (data.partitioned) {\n retval += '; Partitioned';\n }\n if (!Utils.isNullOrEmpty(data.sameSite)) {\n retval += `; SameSite=${encodeURIComponent(data.sameSite)}`;\n }\n if (data.secure) {\n retval += '; Secure';\n }\n return retval;\n }\n }; }\n static isVisible(el) {\n if ('checkVisibility' in el) {\n return el.checkVisibility({ checkOpacity: true, checkVisibilityCSS: true });\n }\n return getComputedStyle(el).visibility !== 'hidden' && (el.clientWidth > 0 || el.clientHeight > 0);\n }\n //#region classList DOMTokenList (css)\n static hasClass(el, className) {\n if (el.classList) {\n return el.classList.contains(className);\n }\n else {\n return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);\n }\n }\n static addClass(el, className) {\n const css = className.trim();\n if (el.classList) {\n DOMTokenList.prototype.add.apply(el.classList, css.split(' '));\n }\n else {\n el.setAttribute('class', el.className + ' ' + css);\n }\n }\n static removeClass(el, className) {\n const css = className.trim();\n if (el.classList) {\n DOMTokenList.prototype.remove.apply(el.classList, css.split(' '));\n }\n else {\n el.setAttribute('class', el.className.replace(new RegExp('(^|\\\\b)' + css.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' '));\n }\n }\n static toggleClass(el, className, on) {\n if (on) {\n Utils.addClass(el, className);\n }\n else {\n Utils.removeClass(el, className);\n }\n }\n //#endregion\n //#region part DOMTokenList (shadow-DOM)\n static hasPart(el, partName) {\n return el.part.contains(partName);\n }\n static addPart(el, partName) {\n DOMTokenList.prototype.add.apply(el.part, partName.trim().split(' '));\n }\n static removePart(el, partName) {\n DOMTokenList.prototype.remove.apply(el.part, partName.trim().split(' '));\n }\n static togglePart(el, partName, on) {\n if (on) {\n Utils.addPart(el, partName);\n }\n else {\n Utils.removePart(el, partName);\n }\n }\n //#endregion\n /**\n * Retrieve the bounding box of the provided element as of its rendered appearance on the stage (takes transformations into account).\n * @param el The element.\n */\n static offset(el) {\n var rect = el.getBoundingClientRect();\n return {\n top: Math.round(rect.top) + Utils.scrollTop,\n left: Math.round(rect.left) + Utils.scrollLeft,\n width: Math.round(rect.width),\n height: Math.round(rect.height)\n };\n }\n /**\n * Retrieve the bounding box of the provided element as of its rendered appearance on the stage (takes transformations into account).\n * @param el The element.\n */\n static offsetRect(el) {\n var rect = this.offset(el);\n return {\n y: rect.top,\n x: rect.left,\n width: rect.width,\n height: rect.height\n };\n }\n static naturalOffsetTop(el) {\n return (el?.offsetTop ?? 0) + ((el?.offsetParent && el.offsetParent instanceof HTMLElement) ? this.naturalOffsetTop(el.offsetParent) : 0);\n }\n static naturalOffsetLeft(el) {\n return (el?.offsetTop ?? 0) + ((el?.offsetParent && el.offsetParent instanceof HTMLElement) ? this.naturalOffsetLeft(el.offsetParent) : 0);\n }\n /**\n * Retrieve the natural bounding box of the provided element (does not takes transformations into account).\n * @param el {HTMLElement} The element.\n */\n static naturalOffset(el) {\n return { left: this.naturalOffsetLeft(el), top: this.naturalOffsetTop(el), width: el?.offsetWidth ?? 0, height: el?.offsetHeight ?? 0 };\n }\n /**\n * Retrieve the natural bounding box of the provided element (does not takes transformations into account).\n * @param el {HTMLElement} The element.\n */\n static naturalOffsetRect(el) {\n var rect = this.naturalOffset(el);\n return {\n y: rect.top,\n x: rect.left,\n width: rect.width,\n height: rect.height\n };\n }\n /** @deprecated */\n static deserializeTransform(obj) {\n return Utils.Css.deserializeTransform(obj);\n }\n static set scrollTop(y) {\n window.scrollTo(Utils.scrollLeft, y);\n }\n static set scrollLeft(x) {\n window.scrollTo(x, Utils.scrollTop);\n }\n static get scrollTop() {\n return window.scrollY /*window.pageYOffset*/ || document.documentElement.scrollTop || document.body.scrollTop || 0;\n }\n static get scrollLeft() {\n return window.scrollX /*window.pageXOffset*/ || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n }\n static get windowSize() {\n let win = window;\n return {\n width: win.innerWidth || win.document.documentElement.clientWidth || win.document.body.clientWidth || 0,\n height: win.innerHeight || win.document.documentElement.clientHeight || win.document.body.clientHeight || 0\n };\n }\n /**\n * Adds a callback at the end of a CSS animation/transition for a given element (execute once).\n * @param element The very element that has to trigger the animation/transitionend event.\n * @param callback Then callback.\n * @param timeout Fallback timeout (ms) in case the animation/transitionend event won't fire.\n */\n static addAnimationEndCallback(element, callback, timeout = 500) {\n const fn = (e) => {\n if (!e || e.target == element) {\n clearTimeout(handle);\n element.removeEventListener('animationend', fn, false);\n element.removeEventListener('transitionend', fn, false);\n callback.apply(this, [element]);\n }\n };\n element.addEventListener('animationend', fn, false);\n element.addEventListener('transitionend', fn, false);\n // fallback in case animation is missing\n const handle = setTimeout(fn, timeout);\n }\n /**\n * Promisifies the addAnimationEndCallback function.\n * @param element The very element that has to trigger the animation/transitionend event.\n * @param timeout Fallback timeout (ms) in case the animation/transitionend event won't fire.\n */\n static waitForAnimationEnd(element, timeout = 500) {\n return new Promise((resolve, _) => {\n Utils.addAnimationEndCallback(element, () => {\n resolve();\n }, timeout);\n });\n }\n /**\n * Waits until the provided timespan elapses.\n * @param msecs timespan in milliseconds\n */\n static idle(msecs) {\n return new Promise((resolve, _) => {\n setTimeout(() => resolve(), msecs);\n });\n }\n /**\n * Increases a callback loop call until cancelation is called.\n * @param callback Callback looped.\n * @param interval First callback call delay in ms (default 500).\n * @param pace Acceleration in ms per loop (default 5).\n * @param min Minimum loop rate in ms (default 20).\n *\n * Use case/example: while keeping a button pressed, the related callback execution increases in frequency.\n */\n static accelerateCallback(callback, interval = 500, pace = 5, min = 20) {\n let token = { cancel: false }, int = interval, last = pace + min;\n let fn = () => {\n callback(token);\n if (!token.cancel) {\n setTimeout(fn, int);\n if (int < last) {\n int = min;\n }\n else {\n int -= pace;\n }\n }\n };\n fn();\n }\n // #endregion\n // #region other\n static isEmpty(obj) {\n return NullChecker.isEmpty(obj) && !(obj instanceof Node);\n }\n static isNull(obj) {\n return NullChecker.isNull(obj);\n }\n // legacy\n static isArray(val) {\n return Array.isArray(val);\n }\n static isNullOrEmpty(val) {\n return Utils.isNull(val) || Utils.isEmpty(val);\n }\n /**\n * It is a `valueOf()` based comparison.\n * @param v1 term 1\n * @param v2 term 2\n */\n static areSemanticallyEqual(v1, v2) {\n // undefined and null are semantically equal\n v1 ??= null;\n v2 ??= null;\n const sv1 = v1 && v1.valueOf && v1.valueOf();\n const sv2 = v2 && v2.valueOf && v2.valueOf();\n return sv1 === sv2;\n }\n /** Legacy alias for Object.assign(). */\n static { this.extend = Object.assign; }\n static clone(obj) {\n if (obj === undefined)\n return undefined;\n return DeepCloner.clone(obj);\n }\n /** Legacy alias for Promise.resolve(). */\n static fromResult(v) {\n return Promise.resolve(v);\n }\n static fromResultAsync(task) {\n return new Promise(resolve => requestAnimationFrame(() => resolve(task())));\n }\n static readonlyCopy(obj) {\n if (Utils.isNull(obj)) {\n return null;\n }\n if (Utils.isArray(obj)) {\n const output = obj.slice(0);\n Object.freeze(output);\n return output;\n }\n else {\n const output = {};\n for (let name in obj) {\n output[name] = obj[name];\n }\n Object.freeze(output);\n return output;\n }\n }\n //#endregion\n //#region Net\n static { this.URIs = {\n format: function (url, parameters, removeMatchedParameters) {\n // replace segments\n for (let name in parameters || {}) {\n let tmpl = new RegExp(\"(^|\\\\/)\\\\{\" + name + \"\\\\??\\\\}(\\\\/|$)\");\n let arr = tmpl.exec(url);\n if (arr && arr.length) {\n let rpl = new RegExp(\"\\\\{\" + name + \"\\\\??\\\\}\"), ndx = arr.index;\n url = url.substring(0, ndx) + url.substring(ndx).replace(rpl, encodeURIComponent(parameters[name]));\n if (removeMatchedParameters) {\n delete parameters[name];\n }\n }\n }\n // clean-up optional\n const optPattern = /(^|\\/)\\{[\\w]+\\?\\}(\\/|$)/;\n var optArr;\n while ((optArr = optPattern.exec(url)) && optArr.length > 0) {\n let wholeMatch = optArr[0];\n url = url.replace(wholeMatch, wholeMatch.endsWith('/') ? \"/\" : \"\");\n }\n return url;\n },\n appendQuery: function (url, parameters, removeNullEntries = false, hash = false) {\n const char = hash ? '#' : '?', pattern = hash ? /#/ : /\\?/;\n const query = (pattern.test(url) ? '&' : char) +\n Object.keys(parameters)\n .filter(k => !Utils.isNull(parameters[k]) || !removeNullEntries)\n .map(k => encodeURIComponent(k) + '=' + encodeURIComponent(parameters[k] ?? '')).join('&');\n return url + (query.length > 1 ? query : '');\n },\n parseQuery: (query = window.location) => {\n if (typeof query !== 'string') {\n query = query.search;\n }\n const obj = {};\n new URLSearchParams(query).forEach((value, name) => {\n Object.defineProperty(obj, name, { enumerable: true, value });\n });\n return obj;\n },\n hasMandatoryTemplateSegments: function (url) {\n return /(^|\\/)\\{\\.*\\}(\\/|$)/.test(url);\n },\n parseRoute: function (pathTemplate) {\n let tmpl = pathTemplate;\n const trunks = [];\n if (!Utils.isNullOrEmpty(tmpl)) {\n let res;\n let j = 0;\n while ((res = SEGMENT_PATTERN.exec(tmpl)) != null) {\n const item = res[0];\n const res1 = ROUTE_SEGMENT_PATTERN.exec(item);\n if (!Utils.isNullOrEmpty(res1)) {\n const prop = res1[1];\n trunks.push({ name: prop, optional: item.charAt(item.length - 2) === '?', index: j });\n }\n tmpl = tmpl.substring(res.index + item.length);\n j++;\n }\n }\n return trunks;\n },\n split: function (url) {\n const URL_PATTERN = /^((https?:)?\\/\\/[^\\/]+)?([^\\?#]+)(\\?[^#]*)?(#[^#]*)?$/;\n const regArr = URL_PATTERN.exec(url);\n if (!regArr /*|| regArr.length <= 3*/) {\n return null;\n }\n return { domain: regArr[2] ?? '', protocol: regArr[1] ?? '', path: regArr[3] ?? '', query: regArr[4] ?? '', hash: regArr[5] ?? '' };\n },\n parseState: function (metadata, url, path, query, hash) {\n let fullPath = url;\n if (Utils.isNullOrEmpty(path)) {\n const split = Utils.URIs.split(url);\n path = split.path;\n if (Utils.isNullOrEmpty(query)) {\n query = split.query ?? '';\n }\n if (Utils.isNullOrEmpty(hash)) {\n hash = split.hash ?? '';\n }\n fullPath = path + query + hash;\n }\n const parseHash = (hash) => {\n const ndx = hash.indexOf('#');\n if (ndx !== 0) {\n return null;\n }\n return hash.substring(ndx + 1);\n };\n const parseQuery = (search) => {\n const ndx = search.indexOf('?');\n if (ndx === 0) {\n return Utils.URIs.parseQuery(search.substring(ndx + 1));\n }\n return {};\n };\n let obj = {\n $path: fullPath,\n $pathname: path,\n $querystring: query.length > 0 ? query.substring(1) : query,\n $query: parseQuery(query),\n $hash: parseHash(hash)\n }, i = 0;\n const tmpl = metadata.slice();\n if (!Utils.isNullOrEmpty(tmpl)) {\n let res;\n while ((res = SEGMENT_PATTERN.exec(path)) != null) {\n const v = res[0];\n const tmplIndex = tmpl.findIndex(t => t.index === i);\n if (tmplIndex >= 0) {\n const tmplItem = tmpl[tmplIndex];\n const { name: prop } = tmplItem;\n Object.defineProperty(obj, prop, { enumerable: true, value: v.substring(1) });\n // remove used value\n tmpl.splice(tmplIndex, 1);\n }\n i++;\n path = path.substring(res.index + v.length);\n }\n }\n for (let k = 0; k < tmpl.length; k++) {\n if (!tmpl[k].optional) {\n throw `Must provide \"${tmpl[k].name}\" route value.`;\n }\n }\n return obj;\n }\n }; }\n /**\n * Ensures the proper parsing of Web API results, including deprecated/legacy Pacem wrapped results.\n */\n static getApiResult(json) {\n if (typeof json === 'object'\n && !Utils.isNull(json)\n && json.hasOwnProperty('success')) {\n switch (json.success) {\n case true:\n if (json.hasOwnProperty('result')) {\n return json.result;\n }\n break;\n case false:\n if (json.hasOwnProperty('error')) {\n return null;\n }\n break;\n }\n }\n return json;\n }\n}\n// }\n","import { Utils } from './utils';\nexport var EventKeyModifier;\n(function (EventKeyModifier) {\n EventKeyModifier[\"AltKey\"] = \"Alt\";\n EventKeyModifier[\"CtrlKey\"] = \"Ctrl\";\n EventKeyModifier[\"ShiftKey\"] = \"Shift\";\n EventKeyModifier[\"MetaKey\"] = \"Cmd\";\n})(EventKeyModifier || (EventKeyModifier = {}));\nexport class CustomEventUtils {\n static isInstanceOf(evt, type) {\n return evt instanceof type;\n // || CustomElementUtils.getAttachedPropertyValue(evt, 'pacem:custom-event') === evt.type;\n }\n static getEventCoordinates(evt) {\n var src;\n if ('touches' in evt) {\n if (!Utils.isNullOrEmpty(evt.touches)) {\n src = evt.touches[0];\n }\n else if (!Utils.isNullOrEmpty(evt.changedTouches)) {\n src = evt.changedTouches[0];\n }\n }\n else {\n src = evt;\n }\n return {\n page: { x: src.pageX, y: src.pageY },\n screen: { x: src.screenX, y: src.screenY },\n client: { x: src.clientX, y: src.clientY }\n };\n }\n static getEventKeyModifiers(evt) {\n var which = evt.which;\n if (evt instanceof MouseEvent) {\n which = evt.button;\n }\n return {\n which: which, shiftKey: evt.shiftKey, altKey: evt.altKey, ctrlKey: evt.ctrlKey, metaKey: evt.metaKey\n };\n }\n static matchModifiers(evt, ...args) {\n const modifiers = !Utils.isNull(args) && (args.length === 1 && Utils.isArray(args[0]) ? args[0] : Array.from(args).filter(i => !Utils.isNullOrEmpty(i))), lowerCaseModifiers = (modifiers || []).map(i => i.toLowerCase());\n const altKey = lowerCaseModifiers.indexOf('alt') >= 0 || lowerCaseModifiers.indexOf('option') >= 0, shiftKey = lowerCaseModifiers.indexOf('shift') >= 0, ctrlKey = lowerCaseModifiers.indexOf('ctrl') >= 0, metaKey = lowerCaseModifiers.indexOf('win') >= 0 || lowerCaseModifiers.indexOf('cmd') >= 0;\n if (altKey !== evt.altKey\n || shiftKey !== evt.shiftKey\n || metaKey !== evt.metaKey\n || ctrlKey !== evt.ctrlKey) {\n return false;\n }\n return true;\n }\n static fixEdgeCustomEventSubClassInstance(evt, type) {\n // this an optimistic BUGGED workaround due to a damn' Edge bug: https://github.com/Microsoft/ChakraCore/issues/3952\n if (!(evt instanceof type)) {\n Object.setPrototypeOf(evt, type);\n }\n }\n}\n//}\n","/// <reference path=\"utils-customevent.ts\" />\nimport { Utils } from './utils';\nimport { CustomEventUtils } from './utils-customevent';\n// namespace Pacem {\nexport class CustomTypedEvent extends CustomEvent /* new in TypeScript v2.7.1 -> */ {\n constructor(type, detail, eventInit) {\n super(type, Utils.extend({ detail: detail }, eventInit || {}));\n CustomEventUtils.fixEdgeCustomEventSubClassInstance(this, this.constructor);\n }\n}\nfunction isEventInit(obj) {\n if ('detail' in obj) {\n // must provide a detail\n for (let prop in obj) {\n if (prop !== 'bubbles' && prop !== 'cancelable' && prop !== 'composed' && prop !== 'detail') {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n// TODO: make inherit from CustomTypedEvent\nexport class CustomUIEvent extends CustomEvent {\n constructor(type, detail, eventInit, orig) {\n super(type, Utils.extend((isEventInit(detail || {}) ? detail : { detail: detail }), (!(eventInit instanceof Event) && eventInit) || {}));\n const originalEvent = orig || eventInit;\n if (originalEvent instanceof Event) {\n this.#originalEvent = originalEvent;\n this.#modifiers = CustomEventUtils.getEventKeyModifiers(originalEvent);\n if (originalEvent instanceof MouseEvent || originalEvent instanceof TouchEvent) {\n this.#coords = CustomEventUtils.getEventCoordinates(originalEvent);\n }\n }\n CustomEventUtils.fixEdgeCustomEventSubClassInstance(this, this.constructor);\n }\n #originalEvent;\n #modifiers;\n #coords;\n get originalEvent() {\n return this.#originalEvent;\n }\n get which() {\n return this.#modifiers?.which;\n }\n get altKey() {\n return this.#modifiers?.altKey;\n }\n get shiftKey() {\n return this.#modifiers?.shiftKey;\n }\n get ctrlKey() {\n return this.#modifiers?.ctrlKey;\n }\n get metaKey() {\n return this.#modifiers?.metaKey;\n }\n get pageX() {\n return this.#coords?.page.x;\n }\n get pageY() {\n return this.#coords?.page.y;\n }\n get clientX() {\n return this.#coords?.client.x;\n }\n get clientY() {\n return this.#coords?.client.y;\n }\n get screenX() {\n return this.#coords?.screen.x;\n }\n get screenY() {\n return this.#coords?.screen.y;\n }\n}\nexport const AttributeChangeEventName = 'attributechange';\nexport class AttributeChangeEvent extends CustomTypedEvent {\n constructor(args) {\n super(AttributeChangeEventName, args);\n }\n}\nexport const PropertyChangeEventName = 'propertychange';\nexport class PropertyChangeEvent extends CustomTypedEvent {\n constructor(args) {\n super(PropertyChangeEventName, args);\n }\n}\n//}\n","import { CustomTypedEvent } from '../events';\nexport class AnimationEvent extends CustomTypedEvent {\n constructor(args) {\n super(\"step\", args);\n }\n}\nexport class AnimationEndEvent extends CustomEvent {\n constructor() {\n super('end');\n }\n}\nexport class AnimationStartEvent extends CustomEvent {\n constructor() {\n super('start');\n }\n}\n//}\n","//namespace Pacem.Animations {\nimport { Easings } from './easings';\nexport class TweenService {\n run(from, to, duration, delay = 0, easing = Easings.linear, callback = null) {\n return new Promise((resolve, _) => {\n const now = (performance && performance.now()) || Date.now();\n const start = now + Math.abs(delay || 0);\n const end = start + Math.abs(duration || 0);\n //\n const fn = () => {\n const t = (performance && performance.now()) || Date.now();\n if (t >= start && t < end) {\n const ct = (t - start) / duration;\n const v = from + (easing || Easings.linear)(ct) * (to - from);\n if (callback) {\n callback(ct, v);\n }\n }\n if (t < end) {\n requestAnimationFrame(fn);\n }\n else {\n if (callback) {\n callback(1.0, to);\n }\n resolve();\n }\n };\n fn();\n });\n }\n}\n//}\n","// namespace Pacem.Animations {\nexport class Timer {\n #fps;\n #callback;\n #handle;\n constructor(callback, fps) {\n this.#then = 0;\n this._run = (t) => {\n this.#handle = requestAnimationFrame(this._run);\n const now = performance.now(), fps = this.#fps;\n const delta = now - this.#then;\n if (delta >= fps) {\n this.#then = now - (delta % fps);\n this.#callback(t);\n }\n };\n this.#fps = 1000 / fps;\n this.#callback = callback;\n this.#handle = requestAnimationFrame(this._run);\n }\n #then;\n static run(callback, fps = 60) {\n return new Timer(callback, fps);\n }\n stop() {\n cancelAnimationFrame(this.#handle);\n }\n}\n;\n// }\n","//namespace Pacem.Net {\nexport var HttpMethod;\n(function (HttpMethod) {\n HttpMethod[\"Get\"] = \"GET\";\n HttpMethod[\"Post\"] = \"POST\";\n HttpMethod[\"Put\"] = \"PUT\";\n HttpMethod[\"Delete\"] = \"DELETE\";\n HttpMethod[\"Options\"] = \"OPTIONS\";\n HttpMethod[\"Head\"] = \"HEAD\";\n HttpMethod[\"Patch\"] = \"PATCH\";\n HttpMethod[\"Connect\"] = \"CONNECT\";\n HttpMethod[\"Trace\"] = \"TRACE\";\n})(HttpMethod || (HttpMethod = {}));\nexport const FetchResultEventName = 'fetchresult';\nexport const FetchErrorEventName = 'error';\nexport const FetchSuccessEventName = 'success';\nexport class Fetcher {\n static isEmpty(r) {\n return r.status === 204 || r.headers.get(\"Content-Length\") === \"0\";\n }\n}\n//}\n","/// <reference path=\"../promise.ts\" />\nimport { DeferPromise } from '../promise';\nimport { HttpMethod } from './fetcher';\n// namespace Pacem.Net {\nconst noop = () => { };\nexport class StatusCodeError extends Error {\n constructor(statusCode, statusText) {\n super(statusText);\n this.statusCode = statusCode;\n }\n get status() {\n return this.statusCode;\n }\n}\n/** @deprecated */\nexport class Response {\n constructor(req, processTime) {\n if (!req)\n return;\n this._status = req.status;\n this._body = req.response;\n this._text = req.responseText;\n this._type = req.responseType;\n this._allHeadersRaw = req.getAllResponseHeaders();\n this._processTime = processTime;\n }\n get processTime() {\n return this._processTime;\n }\n get headers() {\n if (this._headers === undefined && this._allHeadersRaw)\n this._parseHeaders();\n return this._headers;\n }\n get size() {\n return +this.headers['Content-Length'];\n }\n get mime() {\n return this.headers['Content-Type'];\n }\n get date() {\n return new Date(Date.parse(this.headers['Date']));\n }\n _parseHeaders() {\n let headers = {}, rows = this._allHeadersRaw.split('\\r\\n');\n rows.forEach(r => {\n if (r && r.length) {\n let index = r.indexOf(':');\n let key = r.substr(0, index).trim();\n let value = r.substr(index + 1).trim();\n headers[key] = value;\n }\n });\n this._headers = headers;\n }\n get status() { return this._status; }\n get text() { return this._text; }\n get content() { return this._body; }\n get type() { return this._type; }\n /**\n * Short-hand utility for getting or parsing json content (if any).\n */\n get json() {\n if (this._type === 'json')\n return this._body;\n else\n try {\n return JSON.parse(this._text);\n }\n catch (e) {\n return undefined;\n }\n }\n}\n/** @deprecated */\nexport class Http {\n constructor() { }\n /**\n * Executes an asynchronous XMLHttpRequest over the net.\n * @param {String} url - Base url to be requested.\n * @param {Object} [options] - Options for the request.\n * @param {Object} [options.data] - Data to be sent along.\n * @param {String} [options.method=GET] - HTTP Verb to be used.\n * @param {Object} [options.headers] - Key-value pairs of strings.\n * @param {Function} [options.progress] - Callback on retrieval progress.\n */\n request(url, options) {\n var _this = this;\n let deferred = DeferPromise.defer();\n options = options || { method: HttpMethod.Get };\n var method = options.method || HttpMethod.Get;\n var data = options.data || {};\n var progress = options.progress || noop;\n var headers = options.headers || {};\n if (_this.accessToken)\n headers['Authorization'] = 'Bearer ' + _this.accessToken;\n var req = new XMLHttpRequest();\n // send cookies?\n req.withCredentials = false;\n //\n req.addEventListener(\"progress\", (evt) => {\n if (evt.lengthComputable) {\n var pct = evt.loaded / evt.total;\n // callback\n if (typeof progress === 'function')\n progress.apply(_this, [pct]);\n }\n }, false);\n req.addEventListener(\"error\", (err) => {\n // Network error occurred\n deferred.reject(new StatusCodeError(500, err['message'] || 'Unknown error'));\n }, false);\n //req.addEventListener(\"abort\", transferCanceled, false);\n var stopWatch;\n req.addEventListener('load', () => {\n if (req.status >= 200 && req.status < 300) {\n // Resolve the promise with the response\n var response = new Response(req, Date.now() - stopWatch);\n deferred.resolve(response);\n }\n else\n deferred.reject(new StatusCodeError(req.status, req.statusText));\n }, false);\n var params;\n switch (method.toUpperCase()) {\n case HttpMethod.Get:\n url += (/\\?/.test(url) ? '&' : '?') + (typeof data == 'string' ? data : Object.keys(data).map(function (k) { return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]); }).join('&'));\n break;\n case HttpMethod.Post:\n params = JSON.stringify(data);\n }\n //\n req.open(method, url, true);\n switch (method.toUpperCase()) {\n case HttpMethod.Get:\n req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n break;\n case HttpMethod.Post:\n req.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n req.setRequestHeader('Content-Type', 'application/json');\n break;\n }\n for (var kvp in headers) {\n req.setRequestHeader(kvp, headers[kvp]);\n }\n //\n stopWatch = Date.now();\n req.send(params);\n return deferred.promise;\n }\n /**\n * Short-hand for 'GET' requests.\n */\n get(url, data, headers) {\n return this.request(url, { 'method': HttpMethod.Get, 'data': data, 'headers': headers || {} });\n }\n /**\n * Short-hand for 'POST' requests (content provided as json).\n */\n post(url, data, headers) {\n return this.request(url, { 'method': HttpMethod.Post, 'data': data, 'headers': headers || {} });\n }\n}\n//}\n","import { Point } from '@pacem/pacem-foundation';\nimport { Utils } from '../utils';\nimport { CustomUIEvent } from '../events';\n//namespace Pacem.UI {\nexport var DragDataMode;\n(function (DragDataMode) {\n /** Source element is dragged around (floater is the element itself so is the data). */\n DragDataMode[\"Self\"] = \"self\";\n /** The floater is an element clone, while data is the element itself. */\n DragDataMode[\"Alias\"] = \"alias\";\n /** The floater is a clone of the element, while data is a copy of it. */\n DragDataMode[\"Copy\"] = \"copy\";\n})(DragDataMode || (DragDataMode = {}));\nexport var DropBehavior;\n(function (DropBehavior) {\n /** Drag & drop task is meant to sort or swap items around. */\n DropBehavior[\"InsertChild\"] = \"insert\";\n /** Drag & drop task has no logical meaning. Event listeners might be in charge for a specific scenario. */\n DropBehavior[\"None\"] = \"none\";\n})(DropBehavior || (DropBehavior = {}));\nexport var DropTargetMissedBehavior;\n(function (DropTargetMissedBehavior) {\n /** Reverts to the last tracked spot. */\n DropTargetMissedBehavior[\"Revert\"] = \"revert\";\n /** Deletes item on spill-out. */\n DropTargetMissedBehavior[\"Remove\"] = \"remove\";\n /** No explicit behavior, might fallback to 'revert' when drop behavior is 'insert'. */\n DropTargetMissedBehavior[\"None\"] = \"none\";\n})(DropTargetMissedBehavior || (DropTargetMissedBehavior = {}));\nexport var DragDropEventType;\n(function (DragDropEventType) {\n /** Initial state change before first dragging act. */\n DragDropEventType[\"Init\"] = \"draginit\";\n /** First dragging act. */\n DragDropEventType[\"Start\"] = \"dragstart\";\n /** Any dragging act. */\n DragDropEventType[\"Drag\"] = \"drag\";\n /** Dropping act. */\n DragDropEventType[\"Drop\"] = \"drop\";\n /** Hovering a drop target. */\n DragDropEventType[\"Over\"] = \"dragover\";\n /** Exiting a drop target. */\n DragDropEventType[\"Out\"] = \"dragout\";\n /** Terminating the drag-drop activities. */\n DragDropEventType[\"End\"] = \"dragend\";\n})(DragDropEventType || (DragDropEventType = {}));\nclass DragDropEventArgsBaseClass {\n constructor(_builder) {\n this._builder = _builder;\n this.currentPosition = _builder.currentPosition;\n this.target = _builder.target;\n }\n get element() {\n return this._builder.element;\n }\n get origin() {\n return this._builder.origin;\n }\n get initialDelta() {\n return this._builder.initialDelta;\n }\n get startTime() {\n return this._builder.startTime;\n }\n get floater() {\n return this._builder.floater;\n }\n get delta() {\n var args = this;\n return Point.add(args.initialDelta, /* included in `initialDelta` for perf sake => { x: this._builder.scroll.left, y: this._builder.scroll.top },*/ Point.subtract(args.origin, args.currentPosition));\n }\n}\nexport class DragDropInitEventArgsClass extends DragDropEventArgsBaseClass {\n constructor(_builder) {\n super(_builder);\n this.placeholder = _builder.placeholder;\n this.data = _builder.data;\n }\n static fromArgs(builder) {\n return new DragDropInitEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class DragDropEventArgsClass extends DragDropEventArgsBaseClass {\n constructor(_builder, _placeholder = _builder.placeholder, _data = _builder.data) {\n super(_builder);\n this._placeholder = _placeholder;\n this._data = _data;\n }\n get placeholder() {\n return this._placeholder;\n }\n get data() {\n return this._data;\n }\n static fromArgs(builder) {\n return new DragDropEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class DragDropEvent extends CustomUIEvent {\n constructor(type, args, eventInit, evt) {\n super(type, args, eventInit, evt);\n }\n}\n//}\n","import { Utils } from '../utils';\nimport { CustomUIEvent } from '../events';\n//namespace Pacem.UI {\nexport var RescaleHandle;\n(function (RescaleHandle) {\n RescaleHandle[\"All\"] = \"all\";\n RescaleHandle[\"Top\"] = \"top\";\n RescaleHandle[\"Left\"] = \"left\";\n RescaleHandle[\"Right\"] = \"right\";\n RescaleHandle[\"Bottom\"] = \"bottom\";\n})(RescaleHandle || (RescaleHandle = {}));\nexport var RescaleEventType;\n(function (RescaleEventType) {\n RescaleEventType[\"Start\"] = \"rescalestart\";\n RescaleEventType[\"Rescale\"] = \"rescale\";\n RescaleEventType[\"End\"] = \"rescaleend\";\n})(RescaleEventType || (RescaleEventType = {}));\nexport class RescaleEventArgsClass {\n constructor(_builder) {\n this._builder = _builder;\n }\n get currentPosition() {\n return this._builder.currentPosition;\n }\n get targetRect() {\n return this._builder.targetRect;\n }\n get element() {\n return this._builder.element;\n }\n get handle() {\n return this._builder.handle;\n }\n static fromArgs(builder) {\n return new RescaleEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class RescaleEvent extends CustomUIEvent {\n constructor(type, args, eventInit, evt) {\n super(type, args, eventInit, evt);\n }\n}\n//}\n","import { Utils } from '../utils';\nimport { CustomUIEvent } from '../events';\nexport var RotateEventType;\n(function (RotateEventType) {\n RotateEventType[\"Start\"] = \"rotatestart\";\n RotateEventType[\"Rotate\"] = \"rotate\";\n RotateEventType[\"End\"] = \"rotateend\";\n})(RotateEventType || (RotateEventType = {}));\nexport class RotateEventArgsClass {\n constructor(_builder) {\n this._builder = _builder;\n }\n get currentPosition() {\n return this._builder.currentPosition;\n }\n get rotation() {\n return this._builder.rotation;\n }\n get element() {\n return this._builder.element;\n }\n get center() {\n return this._builder.center;\n }\n static fromArgs(builder) {\n return new RotateEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class RotateEvent extends CustomUIEvent {\n constructor(type, args, eventInit, evt) {\n super(type, args, eventInit, evt);\n }\n}\n//}\n","import { Utils } from '../utils';\nimport { CustomTypedEvent } from '../events';\nexport var SwipeEventType;\n(function (SwipeEventType) {\n SwipeEventType[\"Swipe\"] = \"swipe\";\n SwipeEventType[\"Pan\"] = \"pan\";\n SwipeEventType[\"SwipeLeft\"] = \"swipeleft\";\n SwipeEventType[\"SwipeRight\"] = \"swiperight\";\n SwipeEventType[\"SwipeUp\"] = \"swipeup\";\n SwipeEventType[\"SwipeDown\"] = \"swipedown\";\n // end of swipe animation\n SwipeEventType[\"SwipeAnimationEnd\"] = \"swipeanimationend\";\n SwipeEventType[\"SwipeLeftAnimationEnd\"] = \"swipeleftanimationend\";\n SwipeEventType[\"SwipeRightAnimationEnd\"] = \"swiperightanimationend\";\n SwipeEventType[\"SwipeUpAnimationEnd\"] = \"swipeupanimationend\";\n SwipeEventType[\"SwipeDownAnimationEnd\"] = \"swipedownanimationend\";\n})(SwipeEventType || (SwipeEventType = {}));\nexport class SwipeEventArgsClass {\n constructor(_builder) {\n this._builder = _builder;\n }\n get #isVertical() {\n const { verticalspeed, horizontalspeed, vertical } = this._builder;\n const isVertical = vertical ?? (Math.abs(horizontalspeed) < Math.abs(verticalspeed));\n return isVertical;\n }\n get direction() {\n return this.#isVertical\n ? (this._builder.verticalspeed > 0 ? 'down' : 'up')\n : (this._builder.horizontalspeed > 0 ? 'right' : 'left');\n }\n /** Speed in pixels/second, with sign. */\n get speed() {\n const { verticalspeed, horizontalspeed } = this._builder;\n return this.#isVertical ? verticalspeed : horizontalspeed;\n }\n /** Current offset relative to element's original position. */\n get delta() {\n const { position: { x, y }, t0: { position: { x: x0, y: y0 } } } = this._builder;\n return this.#isVertical\n ? y - y0\n : x - x0;\n }\n get flinging() {\n const { fling } = this._builder;\n return fling > 0 && Math.abs(this.speed) > fling;\n }\n /** Final offset (relative to element's original position) that takes release velocity into account. */\n get predictedDelta() {\n const inertia = this._builder.inertia ?? 8;\n return this.delta + this.speed / inertia;\n }\n /** Seconds to reach the final predicted position. */\n get predictedDuration() {\n const inertia = this._builder.inertia ?? 8;\n return -Math.log(.01 /* v/v0 where v ~ 0 <=> 1% of v0 */) / inertia;\n }\n get element() {\n return this._builder.element;\n }\n static fromArgs(builder) {\n return new SwipeEventArgsClass(Utils.extend({}, builder));\n }\n}\nexport class SwipeEvent extends CustomTypedEvent {\n constructor(type, args, eventInit) {\n super(type, args, eventInit);\n }\n}\n//}\n","import { CustomTypedEvent } from './events';\nexport class CurrentIndexChangeEvent extends CustomTypedEvent {\n constructor(args) {\n super('currentindexchange', args);\n }\n}\n//}\n","/// <reference path=\"events.ts\" />\nexport const Type = Function;\n;\n// #region CONSTS\nexport const WATCH_PROPS_VAR = 'pacem:properties';\nexport const INSTANCE_BINDINGS_VAR = 'pacem:custom-element:bindings';\nexport const INSTANCE_HOST_VAR = 'pacem:custom-element:host';\nexport const INSTANCE_SCOPE_VAR = 'pacem:custom-element:scope';\n// #endregion\n//}\n","//namespace Pacem {\nvar root;\n/** the overall customelement prefix */\nexport const P = (root = window['Pacem'])?.Configuration?.prefix ?? 'pacem';\nexport const PCSS = root?.Configuration?.css ?? P;\n//}\n","//namespace Pacem {\nexport class TemplateElement extends HTMLElement {\n}\n//}\n","/// <reference path=\"expression.ts\" />\n/// <reference path=\"promise.ts\" />\n/// <reference path=\"prefix.ts\" />\n/// <reference path=\"trees/json.ts\" />\n/// <reference path=\"utils.ts\" />\nimport { Utils } from './utils';\nimport { INSTANCE_SCOPE_VAR, WATCH_PROPS_VAR, INSTANCE_HOST_VAR, INSTANCE_BINDINGS_VAR } from './types';\nimport { PCSS } from './prefix';\nimport { Expression } from './expression';\nimport { TemplateElement } from './template';\n// namespace Pacem {\nconst PACEM_BAG = '__pacem__';\n// {{ binding.expression }}\nconst bindingPattern = /^\\{\\{(.|\\n)+\\}\\}$/;\n// TODO: CSP-proof binding (no unsafe-eval)\n// binding syntax example: `{ binding: { source: ^item.property.path, binder: $pacem.func, parameters: [ ^index, 'foo', : host._baz], mode: 'twoway' } }`\nexport class CustomElementUtils {\n static get polyfilling() {\n return customElements instanceof window['CustomElementRegistry'];\n }\n static camelToKebab(camelCased) {\n return camelCased && camelCased.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n static kebabToCamel(kebabCased) {\n return kebabCased && kebabCased.replace(/(-[a-z])/g, (m) => {\n return m[1].toUpperCase();\n });\n }\n static getWatchedProperties(target, includeInherited = true) {\n var properties = [];\n var chain = target instanceof HTMLElement ? target.constructor : target;\n do {\n let additional = this.getAttachedPropertyValue(chain, WATCH_PROPS_VAR) || [];\n let pblic = additional.filter(p => !p.name.startsWith('_'));\n Array.prototype.splice.apply(properties, [0, 0].concat(pblic));\n } while (includeInherited && (chain = Object.getPrototypeOf(chain)));\n return properties;\n }\n static getWatchedProperty(target, name) {\n return this.getWatchedProperties(target, true).find(p => p.name === name);\n }\n static importjs(src, integrity = null, crossorigin = false) {\n var attrs = { 'type': 'text\\/javascript', 'src': src };\n if (!Utils.isNullOrEmpty(integrity))\n Utils.extend(attrs, { integrity: integrity });\n if (crossorigin)\n Utils.extend(attrs, { 'crossorigin': '' });\n return CustomElementUtils.import(src, 'script', attrs, (document.head || document.getElementsByTagName(\"head\")[0]));\n }\n static importcss(src, integrity = null, crossorigin = false) {\n var attrs = { 'rel': 'stylesheet', 'href': src };\n if (!Utils.isNullOrEmpty(integrity))\n Utils.extend(attrs, { integrity: integrity });\n if (crossorigin)\n Utils.extend(attrs, { 'crossorigin': 'anonymous' });\n return CustomElementUtils.import(src, 'link', attrs, (document.head || document.getElementsByTagName(\"head\")[0]));\n }\n static import(key, tagName, attrs, appendTo = document.body) {\n const _p = Utils.core;\n var _imports = _p['imports'] = _p['imports'] || {};\n return _imports[key] = _imports[key] || new Promise((resolve, reject) => {\n // try to find the equivalent element in the DOM\n var selector = tagName;\n for (let attr in attrs || {}) {\n selector += `[${attr}=\"${attrs[attr]}\"]`;\n }\n var script = document.querySelector(selector);\n if (!Utils.isNull(script)) {\n // best guess: since element was already there, it is hopefully fully loaded\n resolve(script);\n }\n else {\n script = document.createElement(tagName);\n script.onerror = e => {\n reject(e);\n };\n script.onload = () => {\n resolve(script);\n };\n for (var attr in (attrs || {})) {\n script.setAttribute(attr, attrs[attr]);\n }\n appendTo.appendChild(script);\n }\n });\n }\n static { this.Theme = {\n importWebFonts() {\n function cleanupQuotes(input) {\n // check if the string is wrapped around quotes to escape ';' chars\n if (/^('|\").*\\1$/.test(input)) {\n return input.substring(1, input.length - 1);\n }\n return input;\n }\n function downloadFont(fontFace) {\n return Utils.isNullOrEmpty(fontFace) ? Promise.resolve() : document.fonts.load('1rem ' + fontFace);\n }\n const promises = ['icons', 'std', 'main', 'tech', 'btn'].map(f => {\n const fontFace = Utils.Css.getVariableValue(`--${PCSS}-font-${f}`).split(',')[0];\n const url = cleanupQuotes(Utils.Css.getVariableValue(`--${PCSS}-font-${f}-api-url`));\n if (Utils.isNullOrEmpty(url)) {\n return downloadFont(fontFace);\n }\n else {\n return CustomElementUtils.importcss(url).then(_ => downloadFont(fontFace));\n }\n });\n const atLeast1FontFaceReady = new Promise((resolve) => {\n function check(count = 0) {\n // size against the specs: https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet/size#specifications\n if (count > 4 || !('size' in document.fonts) || typeof document.fonts.size === 'number' && document.fonts.size > 0) {\n document.fonts.ready.then(resolve);\n }\n else {\n setTimeout(check, 250, count++);\n }\n }\n check();\n });\n promises.push(atLeast1FontFaceReady);\n return Promise.all(promises);\n }\n }; }\n static setAttachedPropertyValue(target, name, value) {\n /*(target[PACEM_BAG] = target[PACEM_BAG] || {})[name] = value;*/\n if (Utils.isNull(target))\n return;\n const propKey = Object.getOwnPropertyDescriptor(target, PACEM_BAG);\n const bag = (propKey && propKey.value)\n || Object.defineProperty(target, PACEM_BAG, {\n value: {}, enumerable: false, writable: false, configurable: false\n })[PACEM_BAG];\n if (Utils.isNull(value))\n delete bag[name];\n else\n bag[name] = value;\n }\n static deleteAttachedPropertyValue(target, name) {\n CustomElementUtils.setAttachedPropertyValue(target, name, undefined);\n }\n static getAttachedPropertyValue(target, name, ensureValue) {\n const propKey = Object.getOwnPropertyDescriptor(target, PACEM_BAG), bag = propKey && propKey.value;\n if (Utils.isNull(bag && bag[name]) && !Utils.isNull(ensureValue)) {\n CustomElementUtils.setAttachedPropertyValue(target, name, ensureValue);\n return ensureValue;\n }\n return bag && bag[name];\n }\n /**\n * Resolves a dotted path into actual values.\n * @param path Dotted path\n * @param scope Root of the path\n */\n static resolvePath(path, scope) {\n if (!path || !scope)\n return undefined;\n if (/[\\(\\)\\{\\}]/.test(path))\n throw `Security alert: not allowed to process paths like ${path}.`;\n const trunks = path.split('.');\n var root = scope, ref = root, parent, core = trunks[0];\n trunks.forEach((t, i) => {\n var trunksSq = t.split('[');\n trunksSq.forEach((t2, j) => {\n parent = ref;\n if (/\\]$/.test(t2)) {\n t2 = t2.substring(0, t2.length - 1);\n if (/^('|\").+[^\\\\]\\1$/.test(t2)) {\n t2 = t2.substr(1, t2.length - 2);\n }\n }\n ref = ref[t2];\n });\n });\n var name, ndx;\n if (/\\]$/.test(path)) {\n ndx = path.lastIndexOf('[');\n name = path.substring(ndx + 1);\n name = name.substring(0, name.length - 1);\n }\n else {\n ndx = path.lastIndexOf('.');\n name = path.substring(ndx + 1);\n }\n return { target: { value: ref, name: name }, parent: { value: parent || scope, path: path.substring(0, ndx) }, root: { value: root, property: core } };\n }\n static set(element, path, value) {\n var obj = CustomElementUtils.resolvePath(path, element);\n var current = obj.target.value;\n if (current !== value) {\n if (obj.parent.value != obj.root.value /* nested property scenario */\n && !(obj.parent.value instanceof HTMLElement) /* and not targeting an HTMLElement (which will eventually fire autonomously) */) {\n // 1. set new value (won't fire 'propertychange' since it's a nested property)\n obj.parent.value[obj.target.name] = value;\n // 2. clone the resulting object (will be set as the new one at 4.)\n const set_val = Utils.clone(obj.root.value[obj.root.property]);\n // 3. reset to previous value (so that when 4. will trigger the 'propertychange' we'll have meaningful arguments)\n obj.parent.value[obj.target.name] = current;\n // repeater-item?\n let repItem;\n if (obj.root.property === 'item' && !Utils.isNull(repItem = RepeaterItem.getRepeaterItem(obj.root.value))) {\n // kind of ugly solution, I know. it works however...\n // trigger array update\n repItem.repeater && repItem.repeater.datasource && repItem.repeater.datasource.splice(repItem.index, 1, repItem.item = set_val);\n }\n else {\n // 4. force root property change\n obj.root.value[obj.root.property] = set_val;\n }\n }\n else {\n // parent === root, property change event fires automatically\n obj.parent.value[obj.target.name] = value;\n }\n }\n }\n static get(element, path) {\n var obj = CustomElementUtils.resolvePath(path, element);\n return obj && obj.target && obj.target.value;\n }\n /**\n * Works for unit-test contexts.\n * @param element\n */\n static _findScopeContextLegacy(element) {\n // old impl...\n let el = element;\n let retval;\n do {\n el = el.parentNode;\n } while (el != null && (el != (retval = element.ownerDocument) || (el instanceof HTMLElement && (retval = el.shadowRoot) != null)));\n //let logFn: (message?: string) => void;\n //if (retval == null && console && (logFn = console.debug))\n // logFn(`Element \"${element.constructor.name}\" isn't attached to any context yet.`);\n return retval;\n }\n static findScopeContext(element) {\n let retval = (element.isConnected) ?\n element.getRootNode()\n : CustomElementUtils.getAttachedPropertyValue(element, INSTANCE_SCOPE_VAR);\n return retval ?? /* in Jasmine TESTS `element.isConnected` always returns false (attached to #document-fragment) */ CustomElementUtils._findScopeContextLegacy(element);\n }\n static findAncestor(element, predicate) {\n let el = element;\n let retval;\n while (el && (el = el.parentNode || el.getRootNode()?.host) != null) {\n if (el['host'] instanceof HTMLElement)\n el = el['host'];\n if (predicate.apply(el, [el])) {\n retval = el;\n break;\n }\n }\n return retval;\n }\n static findAncestorShell(element) {\n return CustomElementUtils.findAncestor(element, el => Utils.is(el, `.${PCSS}-body`) || el === document.body);\n }\n static findAncestorOfType(element, ctor) {\n return CustomElementUtils.findAncestor(element, el => el instanceof ctor);\n }\n static findDescendants(element, predicate, firstOnly = false) {\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT);\n var retval = [];\n while (walker.nextNode()) {\n let n = walker.currentNode;\n if (predicate(n) === true) {\n retval.push(n);\n if (firstOnly) {\n return retval;\n }\n }\n }\n return retval;\n }\n static findFirstDescendant(element, predicate) {\n const any = CustomElementUtils.findDescendants(element, predicate, true);\n return Utils.isNullOrEmpty(any) ? void 0 : any[0];\n }\n static findAll(selector = '[pacem]', filter = (e) => true) {\n const retval = [];\n document.querySelectorAll(selector).forEach((e, i, arr) => {\n if (filter(e) === true) {\n retval.push(e);\n }\n });\n return retval;\n }\n /**\n * To be used back again when Edge will allow Comment subclassing\n * https://github.com/Microsoft/ChakraCore/issues/2999 and https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12080908/\n * @param element\n * @param ctor\n * @param upLevels\n */\n static findPreviousSiblingOrAncestorOfType(element, ctor, upLevels = 0) {\n let el = element;\n let retval = null;\n let levels = 0;\n do {\n el = el.previousSibling || el.parentNode;\n if (el instanceof ctor) {\n if (levels >= upLevels) {\n retval = el;\n break;\n }\n else {\n el = el.parentNode;\n }\n levels++;\n }\n } while (el != null);\n return retval;\n }\n /**\n * To be removed when Edge will allow Comment subclassing\n * https://github.com/Microsoft/ChakraCore/issues/2999 and https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12080908/\n * @param element\n * @param predicate\n * @param upLevels\n */\n static findPreviousSiblingOrAncestor(element, predicate, upLevels = 0) {\n let el = element;\n let retval = null;\n let levels = 0;\n do {\n el = el.previousSibling || el.parentNode;\n if (el && predicate.apply(el, [el])) {\n if (levels >= upLevels) {\n retval = el;\n break;\n }\n else {\n el = el.parentNode;\n }\n levels++;\n }\n } while (el != null);\n return retval;\n }\n static assignHostContext(host, template) {\n // navigate through the DOM hierarchy\n const walker = document.createTreeWalker(template.content, NodeFilter.SHOW_ELEMENT + /* traverse templates' content */ NodeFilter.SHOW_DOCUMENT_FRAGMENT);\n while (walker.nextNode()) {\n var node = walker.currentNode;\n /*if (node instanceof HTMLTemplateElement)\n CustomElementUtils.assignHostContext(host, node);\n else*/ if (Utils.isNull(CustomElementUtils.getAttachedPropertyValue(node, INSTANCE_HOST_VAR))) {\n CustomElementUtils.setAttachedPropertyValue(node, INSTANCE_HOST_VAR, host);\n }\n }\n }\n static findHostContext(element) {\n let el = element;\n let retval;\n // not connected to the DOM? then exit and return undefined\n if (!el.isConnected) {\n return retval;\n }\n /*const root = element.getRootNode({ composed: false });\n if (root instanceof ShadowRoot) {\n return root.host as HTMLElement;\n }*/\n while (el != null) {\n retval = CustomElementUtils.getAttachedPropertyValue(el, INSTANCE_HOST_VAR);\n if (retval instanceof HTMLElement)\n break;\n el = el.parentElement;\n }\n let logFn;\n if (retval == null && console && (logFn = console.warn))\n logFn(`Element \"${element.constructor.name}\" isn't a descendant of a templated component.`);\n return retval;\n }\n static isBindingAttribute(attr) {\n /*if (/^\\s*\\{\\s*binding\\s+.*\\}\\s*$/.test(attr)) {\n\n // { binding ... } syntax\n var fn = attr.replace('binding', '').trim();\n fn = fn.substring(1, fn.length - 1);\n let twoway = /,\\s*twoway\\s*=\\s*true\\s*$/.test(fn);\n let commaNdx = fn.indexOf(',');\n if (commaNdx == -1)\n commaNdx = fn.length;\n var expression = Expression.parse(fn.substr(0, commaNdx), element);\n (expression && expression.dependencies).forEach(d => {\n d.twoway = d.twowayAllowed && twoway && expression.dependencies.length == 1;\n });\n return expression;\n }\n else*/\n return bindingPattern.test(attr);\n }\n static extractBindingAttributeExpression(attr) {\n if (CustomElementUtils.isBindingAttribute(attr)) {\n return attr.substr(2, attr.length - 4);\n }\n else {\n throw `Invalid attribute: incorrect binding syntax.`;\n }\n }\n static parseBindingAttribute(attr, element) {\n // loose syntax {{ ... }}\n let expression = CustomElementUtils.extractBindingAttributeExpression(attr);\n const arr = /,\\s*(twoway|once)\\s*$/.exec(expression), mode = arr && arr.length > 1 && arr[1];\n if (!Utils.isNullOrEmpty(mode)) {\n expression = expression.substr(0, expression.lastIndexOf(','));\n }\n var expr = Expression.parse(expression, element);\n (expr && expr.dependencies).forEach(d => {\n switch (mode) {\n case 'twoway':\n d.mode = (d.twowayAllowed && expr.dependencies.length == 1) ? 'twoway' : undefined;\n break;\n case 'once':\n d.mode = mode;\n break;\n }\n });\n return expr;\n }\n static ensureMember(o, name, attributes) {\n let original = Object.getOwnPropertyDescriptor(o, name);\n if (original != undefined)\n return original;\n Object.defineProperty(o, name, attributes);\n return Object.getOwnPropertyDescriptor(o, name);\n }\n /**\n * Strips all the observed attributes of an element and its descendants, in order to seal that dom branch and to avoid bindings evaluation.\n * @param element Input element\n */\n static stripObservedAttributes(element) {\n avoidObservedAttributes(element, false);\n }\n /**\n * Freezes all the observed attributes of an element and its descendants, in order to seal that dom branch and to avoid bindings evaluation.\n * @param element Input element\n */\n static freezeObservedAttributes(element) {\n avoidObservedAttributes(element);\n }\n}\nfunction avoidObservedAttributes(element, freeze = true) {\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT);\n do {\n var node = walker.currentNode;\n if (node instanceof HTMLElement) {\n const attrs = node.constructor['observedAttributes'];\n if (!Utils.isNull(attrs)) {\n CustomElementUtils.deleteAttachedPropertyValue(node, INSTANCE_BINDINGS_VAR);\n let revertFn = function (v) {\n if (Utils.isArray(v)) {\n return '[' + v.map(revertFn).join(',') + ']';\n }\n if (v instanceof Element) {\n const vid = v.id = v.id || ('_' + Utils.uniqueCode());\n return `#${vid}`;\n }\n else {\n return `${Utils.Json.stringify(v)}`;\n }\n };\n for (var attr of attrs) {\n if (attr in node.attributes) {\n let prop;\n let val;\n if (freeze && !Utils.isNull(val = node[prop = CustomElementUtils.kebabToCamel(attr)])) {\n let reverted = revertFn(val);\n node.setAttribute(attr, `{{ ${reverted} }}`);\n }\n else\n node.removeAttribute(attr);\n }\n }\n }\n }\n } while (walker.nextNode());\n}\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst REPEATERITEM_PLACEHOLDER = 'pacem:repeater-item';\nexport class Repeater {\n /**\n * Seeks for a PacemRepeaterItem element upwards through the DOM tree, given a starting element and the number of nesting levels.\n * @param element {HTMLElement} Element to start the upward search from\n * @param Optional upLevels {Number} 0-based nesting level\n */\n static findItemContext(element, upLevels = 0, logFn = console.warn) {\n let retval = RepeaterItem.findUpwards(element, upLevels, logFn);\n if (retval == null && logFn && element instanceof HTMLElement && element['isConnected']) {\n logFn(`Couldn't find a ${RepeaterItem.name} up ${upLevels} level${((upLevels === 1) ? \"\" : \"s\")} from element \"${element.constructor.name}\".`);\n }\n return retval;\n }\n}\nexport class RepeaterItem {\n static findUpwards(element, upLevels = 0, logFn = console.warn) {\n if (Utils.isNull(element) || element.localName === 'template' || element instanceof /* template-like element? */ TemplateElement) {\n return null;\n }\n let item = null;\n let predicate = (node) => !Utils.isNull(item = RepeaterItem.getRepeaterItem(node));\n let retval = CustomElementUtils.findPreviousSiblingOrAncestor(element, predicate, upLevels);\n if (retval == null && logFn && element instanceof HTMLElement && element['isConnected']) {\n logFn(`Couldn't find a ${RepeaterItem.name} up ${upLevels} level${((upLevels === 1) ? \"\" : \"s\")} from element \"${element.constructor.name}\".`);\n }\n return item;\n }\n static isRepeaterItem(node) {\n return !Utils.isNull(GET_VAL(node, REPEATERITEM_PLACEHOLDER));\n }\n static getRepeaterItem(node) {\n return GET_VAL(node, REPEATERITEM_PLACEHOLDER);\n }\n constructor(_placeholder) {\n this._placeholder = _placeholder;\n SET_VAL(_placeholder, REPEATERITEM_PLACEHOLDER, this);\n }\n get placeholder() {\n return this._placeholder;\n }\n}\n// }\n","/// <reference path=\"types.ts\" />\n/// <reference path=\"utils.ts\" />\n/// <reference path=\"utils-customelement.ts\" />\nimport { DeferPromise } from './promise';\nimport { Utils } from './utils';\nimport { CustomElementUtils, Repeater } from './utils-customelement';\nconst CONTEXT_PREFIX = '__context_pacem';\n/** the following pattern matches:\n * -------------------------------\n * ciao \"a tutti \\\"quanti\\\" voi\" -> \"a tutti \\\"quanti\\\" voi\"\n * ciao 'a tutti \"quanti\" voi'+ mysel.value + 'e a nessun\\' altra' -> 'a tutti \"quanti\" voi'\n * 'e a nessun\\' altra'\n */\nconst stringPattern = /'(\\\\'|[^'])*[^\\\\]?'|\"(\\\\\"|[^\"])*[^\\\\]?\"/g;\n/** the following pattern matches:\n * -------------------------------\n * var l = new Date(); -> new\n * window.eval( -> window.\n * eval( -> eval(\n * eval ( -> eval (\n */\nconst safetyPattern = /[^\\w]new\\s|[^\\w]window\\s*[\\.\\[]|[^\\w]document\\s*\\.|[^\\w]eval\\s*\\(/;\n/** the following pattern matches:\n * -------------------------------\n * ^^^item.ciao -> ^^^item\n * !ciao.value -> !ciao.\n * :host.value -> :host.\n * ::child.prop -> ::child.\n * _connectTo(me.value) -> (me.\n * 009.ciao ->\n * this[that.value] -> [that.\n */\nconst variablePattern = /(^|[\\s\\(\\[\\+\\-\\*\\/!])(:host\\.|\\^+item[\\s\\.,;\\)\\]]|\\^+item$|\\^+index[^\\w\\.]|\\^+index$|\\$?this[\\.\\s$]?|#[a-zA-Z_][\\w]*|::[a-zA-Z_][\\w]*)/g;\n///** the following pattern tests:\n// * -------------------------------\n// * __context.$this.myself.value -> true\n// * !__context.myelem.value -> false\n// * fn(myelem.value) -> false\n// * $this == that -> false\n// * ...\n// */\n//const purePropertyPathPattern = /^[\\w\\.\\$]+/; \nexport class Expression {\n constructor() {\n this._pending = false;\n this._independent = false;\n }\n get dependencies() {\n return this._dependencies;\n }\n get functionBody() {\n return this._fnBody;\n }\n get voidBody() {\n return this._voidBody;\n }\n get pending() {\n return this._pending;\n }\n get independent() {\n return this._independent;\n }\n evaluate() {\n if (!this._fn) {\n this._fn = new Function('$pacem', CONTEXT_PREFIX, this._fnBody);\n }\n return this._fn.apply(null, [Utils.core, this._args]);\n }\n evaluateAsync() {\n const deferred = DeferPromise.defer();\n if (!this._fn) {\n this._fn = new Function('$pacem', CONTEXT_PREFIX, this._fnBody);\n }\n deferred.resolve(this._fn.apply(null, [Utils.core, this._args]));\n return deferred.promise;\n }\n evaluatePlus(args = {}) {\n if (!this._fn) {\n let argNames = [CONTEXT_PREFIX];\n for (var prop in args)\n argNames.push(prop);\n argNames.push('$pacem');\n this._fn = new Function(argNames.join(', '), this._voidBody);\n }\n let argValues = [].concat(this._args);\n for (var prop in args)\n argValues.push(args[prop]);\n argValues.push(Utils.core);\n return this._fn.apply(null, argValues);\n }\n static { this._pendingExpression = null; }\n static _getPendingExpressionSingleton() {\n if (Expression._pendingExpression == null) {\n let xpr = new Expression();\n xpr._pending = true;\n xpr._dependencies = [];\n Expression._pendingExpression = xpr;\n }\n return Expression._pendingExpression;\n }\n static parse(expression, element) {\n var context = CustomElementUtils.findScopeContext(element);\n var args = { '$this': element };\n var dependencies = [];\n var expr = '';\n var independent = true;\n //1. remove strings\n var strings = [], stringMatches, index = 0, trunks = [];\n while ((stringMatches = stringPattern.exec(expression)) != null) {\n trunks.push(expression.substr(index, stringMatches.index - index));\n let length = stringMatches[0].length;\n strings.push({ start: stringMatches.index, length: length });\n index = stringMatches.index + length;\n }\n if (index < expression.length)\n trunks.push(expression.substr(index, expression.length - index));\n //2. loop non string trunks\n // trunks.length >= strings.length (more precisely, the following statemente is always `true`:\n // trunks.length === strings.length || trunks.length === strings.length+1;\n for (var j = 0; j < trunks.length; j++) {\n let trunk = trunks[j];\n if (safetyPattern.test(trunk))\n throw `Unsafe expression detected: \"${trunk}\".`;\n if (context == null) {\n // context is null, means viewActivated event still to be fired.\n // check whether this is a constant expression (then no need to instantiate actual binding listeners)\n // or not.\n if (new RegExp(variablePattern).test(trunk) === true) {\n independent = false;\n break;\n }\n }\n else {\n let processedTrunk = trunk.replace(variablePattern, (mwhole, mstart, melem, index, input) => {\n independent = false;\n const cmpRef = `__host_pacem`;\n // default initialization := assumes `this`\n let retval = CONTEXT_PREFIX + '.$this' + (melem.endsWith('.') ? '.' : ''), el = element, dotIndex = input.indexOf('.', index), furtherParts = dotIndex > index ? input.substr(dotIndex + 1).trim() : '', pathRegexArray = /^[\\w\\.\\$]+/.exec(furtherParts), path = pathRegexArray && pathRegexArray.length > 0 && pathRegexArray[0], propArray, prop = path && (propArray = path.split('.')).length > 0 && propArray[0];\n if (melem === ':host.') {\n el = args[cmpRef] = args[cmpRef] || CustomElementUtils.findHostContext(element);\n retval = `${CONTEXT_PREFIX}.${cmpRef}.`;\n }\n else if (melem.endsWith('^item') || melem.substr(0, melem.length - 1).endsWith('^item')) {\n let lastChar = melem.endsWith('^item') ? '' : melem.substr(melem.length - 1, 1);\n let upLevels = melem.length - (lastChar.length > 0 ? 6 : 5); // 5 = 'item'.length + 1 (zero-based)\n let itemRef = `__item_${upLevels}_up_pacem`;\n let item = Repeater.findItemContext(element, upLevels);\n el = args[itemRef] = args[itemRef] || (item && item.placeholder);\n path = 'item' + (path ? ('.' + path) : '');\n prop = 'item';\n retval = `${CONTEXT_PREFIX}.${itemRef}.item${lastChar}`;\n }\n else if (melem.endsWith('^index') || melem.substr(0, melem.length - 1).endsWith('^index')) {\n let lastChar = melem.endsWith('^index') ? '' : melem.substr(melem.length - 1, 1);\n let upLevels = melem.length - (lastChar.length > 0 ? 7 : 6); // 6 = 'index'.length + 1 (zero-based)\n let itemRef = `__item_${upLevels}_up_pacem`;\n let item = Repeater.findItemContext(element, upLevels);\n el = args[itemRef] = args[itemRef] || (item && item.placeholder);\n path = 'index';\n prop = 'index';\n retval = `${CONTEXT_PREFIX}.${itemRef}.index${lastChar}`;\n }\n else if (melem.startsWith('::')) {\n let melem0 = melem.substr(2, melem.length - 2);\n let host = args[cmpRef] = args[cmpRef] || CustomElementUtils.findHostContext(element);\n if (!Utils.isNull(host)) {\n el = host[melem0];\n }\n else {\n el = null;\n }\n retval = `${CONTEXT_PREFIX}.${cmpRef}.${melem0}`;\n }\n else if (melem.startsWith('#')) {\n let melem0 = melem.substr(1, melem.length - 1);\n el = args[melem0] = args[melem0] || context.querySelector('#' + melem0);\n retval = `${CONTEXT_PREFIX}.${melem0}`;\n }\n // merge dependencies\n if (prop && el && prop in el\n // && it is not a direct method call (which means that the 'prop' isn't in fact a 'func')\n && typeof el[prop] !== 'function' //!isMethodCall \n // && does not already exist as a dependency\n && dependencies.find(d => d.element === el && d.property == prop) == null) {\n dependencies.push({ element: el, property: prop, path: path, twowayAllowed: false });\n }\n // return value\n return mstart + retval;\n });\n expr += processedTrunk;\n if (j < strings.length) {\n const s = strings[j];\n expr += expression.substr(s.start, s.length);\n }\n }\n }\n if (independent) {\n // constant expression\n var constexpr = new Expression();\n constexpr._independent = true;\n constexpr._fnBody = `return ${expression};`;\n constexpr._voidBody = expression;\n constexpr._dependencies = [];\n return constexpr;\n }\n if (context == null) {\n return this._getPendingExpressionSingleton();\n }\n // if some dependency elements aren't available yet, then postpone...\n for (var elem in args) {\n if (args[elem] == null)\n return Expression._getPendingExpressionSingleton();\n }\n if (dependencies.length == 1\n // := && trimmed expression contains only letters, figures, underscores, dots, and '$'...\n && /[^\\w\\.\\$]+/.test(expr.trim()) !== true) {\n // ...then 'twoway' binding might be applied/accepted\n dependencies[0].twowayAllowed = true;\n }\n var retexpr = new Expression();\n retexpr._args = args;\n retexpr._fnBody = `try{ var ___$$$r = ${expr}; return ___$$$r; }catch(e){ }`;\n retexpr._voidBody = `try{ ${expr} }catch(e){ }`;\n retexpr._dependencies = dependencies;\n return retexpr;\n }\n}\n// }\n","//namespace Pacem.Logging {\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"Trace\"] = \"trace\";\n LogLevel[\"Debug\"] = \"debug\";\n LogLevel[\"Warn\"] = \"warn\";\n LogLevel[\"Error\"] = \"error\";\n LogLevel[\"Info\"] = \"info\";\n LogLevel[\"Log\"] = \"log\";\n})(LogLevel || (LogLevel = {}));\n//}\n","/// <reference path=\"utils.ts\" />\nimport { Utils } from \"./utils\";\nimport { Point, Size, Rect } from '@pacem/pacem-foundation';\n;\nconst NonePropertyConverter = { convert: (attr) => undefined };\nconst StringPropertyConverter = {\n convert: (attr) => attr, convertBack: (prop) => prop\n};\nconst StringArrayPropertyConverter = {\n convert: (attr) => attr && attr.trim().split(/[ ,]+/), convertBack: (prop) => Utils.isArray(prop) && prop.join(' ') || ''\n};\nconst NumberPropertyConverter = {\n convert: (attr) => parseFloat(attr), convertBack: (prop) => prop.toString()\n};\nconst BooleanPropertyConverter = {\n convert: (attr) => !Utils.isNullOrEmpty(attr) && (attr !== '0') && (attr !== 'false'),\n convertBack: (prop) => (!!prop).toString()\n};\nconst BooleanStrictPropertyConverter = {\n convert: (attr) => attr === 'true' || attr === '1',\n convertBack: (prop) => (!!prop).toString()\n};\nconst DateTimePropertyConverter = {\n convert: (attr) => Utils.parseDate(attr),\n convertBack: (prop) => Utils.parseDate(prop).toISOString()\n};\nconst DatePropertyConverter = DateTimePropertyConverter;\nconst JsonPropertyConverter = {\n convert: (attr) => Utils.Json.parse(attr),\n convertBack: (prop) => Utils.Json.stringify(prop)\n};\nconst EvalPropertyConverter = {\n convert: (attr) => Function(`return ${attr};`).apply(null),\n convertBack: (prop) => undefined //JSON.stringify(prop)\n};\nconst ElementPropertyConverter = {\n convert: (attr) => document.querySelector(attr),\n convertBack: (prop) => (prop instanceof Element && prop.id) ? ('#' + prop.id) : undefined,\n retryConversionWhenReady: true\n};\nconst PointPropertyConverter = {\n convert: (attr) => Point.parse(attr),\n convertBack: (prop) => `${prop.x || 0} ${prop.y || 0}`\n};\nconst SizePropertyConverter = {\n convert: (attr) => Size.parse(attr),\n convertBack: (prop) => `${prop.width || 0} ${prop.height || 0}`\n};\nconst RectPropertyConverter = {\n convert: (attr) => Rect.parse(attr),\n convertBack: (prop) => `${prop.x || 0} ${prop.y || 0} ${prop.width || 0} ${prop.height || 0}`\n};\nexport const PropertyConverters /*: { [name: string]: PropertyConverter }*/ = {\n None: NonePropertyConverter,\n String: StringPropertyConverter,\n StringArray: StringArrayPropertyConverter,\n Number: NumberPropertyConverter,\n Boolean: BooleanPropertyConverter,\n BooleanStrict: BooleanStrictPropertyConverter,\n Date: DatePropertyConverter,\n Datetime: DateTimePropertyConverter,\n Json: JsonPropertyConverter,\n Eval: EvalPropertyConverter,\n Element: ElementPropertyConverter,\n // geom\n Point: PointPropertyConverter,\n Rect: RectPropertyConverter,\n Size: SizePropertyConverter,\n};\n//}\n","import { Utils } from './utils';\n/**\n * Default, and essentially ONLY, property comparer for equalitycheck\n * @param old value 1\n * @param val value 2\n */\nexport const DefaultComparer = (old, val) => Utils.areSemanticallyEqual(old, val);\n//}\n","import { WATCH_PROPS_VAR, INSTANCE_BINDINGS_VAR, INSTANCE_HOST_VAR } from './types';\nimport { P } from './prefix';\nimport { Utils } from './utils';\nimport { PropertyChangeEventName, PropertyChangeEvent, AttributeChangeEvent } from './events';\nimport { CustomElementUtils } from './utils-customelement';\nimport { Expression } from './expression';\nimport { DeferPromise } from './promise';\nimport { Http } from './net/http';\nimport { PropertyConverters } from './converters';\nimport { DefaultComparer } from './comparers';\n// #region CUSTOM ELEMENT\n//export const ViewActivatedEventName: string = 'viewactivate';\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst WATCH_PROP_PREFIX = 'pacem:property:';\nconst WATCH_VERS_PROP = 'pacem:version';\nconst WATCH_BIND_PREFIX = 'pacem:binding:';\n//const WATCH_THROTTLE_PREFIX: string = 'pacem:throttle:';\nconst INSTANCE_CHILDREN_VAR = 'pacem:view-children';\nconst HAS_BIND_PREFIX = 'pacem:has-binding:';\nconst HAS_TEMPLATE_VAR = 'pacem:custom-element:has-template';\nconst HASBEEN_TEMPLATED_VAR = 'pacem:custom-element:has-templated';\nconst INSTANCE_PROMISE_VAR = 'pacem:custom-element:promise';\nconst INSTANCE_READY_VAR = 'pacem:custom-element:ready';\nconst INSTANCE_ONREADY_VAR = 'pacem:custom-element:startup';\n//const TYPE_OPTIONS_VAR = 'pacem:custom-element:options';\nfunction processBinding(element, property, binding) {\n var _this = element;\n const prop = property;\n const value = binding;\n // reset previous dependencies\n var deps = GET_VAL(_this, WATCH_BIND_PREFIX + prop);\n //var handleName = WATCH_THROTTLE_PREFIX + prop;\n deps && // reset previous dependencies\n deps.forEach(i => {\n //cancelAnimationFrame(GET_VAL(_this, handleName));\n i.dep.element.removeEventListener(PropertyChangeEventName, i.callback, false);\n });\n if (Utils.isNull(value) || GET_VAL(element, INSTANCE_READY_VAR) !== true) {\n DEL_VAL(_this, WATCH_BIND_PREFIX + prop);\n DEL_VAL(_this, HAS_BIND_PREFIX + prop);\n }\n else {\n if (value.pending) {\n SET_VAL(_this, WATCH_BIND_PREFIX + prop, []);\n }\n else {\n let mode = 'oneway'; // default\n switch (value.dependencies && value.dependencies.length && value.dependencies[0].mode) {\n case 'twoway':\n if ( /* extra-safety here: */value.dependencies.length == 1)\n mode = 'twoway';\n break;\n case 'once':\n mode = 'once';\n }\n SET_VAL(_this, HAS_BIND_PREFIX + prop, mode);\n const mapped = value.dependencies.map(d => {\n // gather changes and evaluate at `next frame` (?)\n var retval = {\n dep: d, callback: function (evt) {\n if (evt.detail.propertyName === d.property) {\n //cancelAnimationFrame(_this[handleName]);\n //_this[handleName] = requestAnimationFrame(() => {\n _this[prop] = value.evaluate /*Async*/() /*.then(val => {\n _this[prop] = val;\n })*/;\n //});\n }\n }\n };\n //try {\n d.element.addEventListener(PropertyChangeEventName, retval.callback, false);\n //} catch (ex) {\n // console.log(_this.outerHTML + '\\n' + d.property);\n // throw (ex);\n //}\n return retval;\n });\n SET_VAL(_this, WATCH_BIND_PREFIX + prop, mapped);\n _this[prop] = value.evaluate();\n }\n }\n}\nfunction retrieveTemplateAndWaitForDOMReady(config) {\n var deferred = DeferPromise.defer();\n const on_load = (tmpl) => {\n if (Utils.isDOMReady()) {\n deferred.resolve(tmpl);\n }\n else {\n Utils.onDOMReady((evt) => {\n deferred.resolve(tmpl);\n });\n }\n };\n //\n if (config.template) {\n on_load(config.template);\n }\n else if (config.templateUrl) {\n let http = new Http();\n http.get(config.templateUrl).success(r => {\n let tmpl = config.template = r.text;\n on_load(tmpl);\n return r;\n }).error(err => {\n console.error(err.message);\n on_load(null);\n });\n }\n else {\n on_load(null);\n }\n //\n return deferred.promise;\n}\nfunction retrieveDescendantTemplateActivationPromises(host, root) {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);\n var promises = [];\n while (walker.nextNode()) {\n var node = walker.currentNode;\n if (true === GET_VAL(node.constructor, HAS_TEMPLATE_VAR)) {\n var deferred = GET_VAL(node, INSTANCE_PROMISE_VAR, DeferPromise.defer());\n promises.push(deferred.promise);\n }\n }\n return promises;\n}\nexport const CustomElement = (config) => {\n return (target) => {\n // might be already registered\n if (Utils.customElements.get(config.tagName)) {\n console.warn(`${config.tagName} registration skipped, since already defined.`);\n return;\n }\n // retrieved watched properties (inherited included)\n var properties = CustomElementUtils.getWatchedProperties(target, true);\n SET_VAL(target, HAS_TEMPLATE_VAR, !(Utils.isNullOrEmpty(config.template) && Utils.isNullOrEmpty(config.templateUrl)));\n if (properties && properties.length > 0) {\n // attribute change whitelist\n const OBS_ATTR_PROP = 'observedAttributes';\n var extraObserved = [];\n if (target.hasOwnProperty(OBS_ATTR_PROP)) {\n extraObserved = target[OBS_ATTR_PROP].slice();\n delete target[OBS_ATTR_PROP];\n }\n // attributes to watch\n let attrs = extraObserved;\n for (var p of properties) {\n let a = CustomElementUtils.camelToKebab(p.name);\n attrs.unshift(a);\n }\n // set static `observedAttributes` property\n Object.defineProperty(target, OBS_ATTR_PROP, {\n get: function () {\n return attrs;\n },\n enumerable: true,\n configurable: false\n });\n }\n {\n const proto = target.prototype;\n // connectedCallback override\n const originalConnectedCallback = Object.getOwnPropertyDescriptor(proto, 'connectedCallback') || proto.connectedCallback;\n const originalViewActivatedCallback = Object.getOwnPropertyDescriptor(proto, 'viewActivatedCallback') || proto.viewActivatedCallback;\n Object.defineProperty(proto, 'connectedCallback', {\n value: function connectedCallback() {\n const _this = this;\n //console.log(`${_this.localName} connected.`);\n _this.setAttribute('pacem', '');\n _this.setAttribute('cloak', '');\n // reset INSTANCE_CHILDREN_VAR at connectedCallback\n DEL_VAL(_this, INSTANCE_CHILDREN_VAR);\n // ready to fire\n if (originalConnectedCallback && originalConnectedCallback.value)\n originalConnectedCallback.value.apply(_this, []);\n else if (typeof originalConnectedCallback == 'function')\n originalConnectedCallback.apply(_this);\n /*\n There's no guarantee that at this point in the element lifecycle its inner DOM has been processed.\n On the contrary, it is fairly likely it hasn't.\n If the element is statically declared on the page after the class declaration (.js file), then its innerHTML is empty for sure.\n **Any template relevant logic must be moved at a point in time when the DOM is fully loaded!**\n */\n retrieveTemplateAndWaitForDOMReady(config).then(tmpl => {\n // still connected?\n // check first!\n if (!_this.isConnected) {\n return;\n }\n var promises = [];\n // apply the template if not already applied(!!)...\n if (GET_VAL(_this, INSTANCE_READY_VAR) !== true\n // ...and if any.\n && !Utils.isNullOrEmpty(tmpl)\n && GET_VAL(_this, HASBEEN_TEMPLATED_VAR) != true) {\n SET_VAL(_this, HASBEEN_TEMPLATED_VAR, true);\n const element = _this, useShadowDOM = config.shadow, originalContent = document.createElement('template').content, currentContent = document.createElement('template'); // config.originalContent === true;\n if (!useShadowDOM) {\n for (var j = element.childNodes.length - 1; j >= 0; j--) {\n originalContent.insertBefore(element.childNodes.item(j), originalContent.firstChild);\n }\n }\n currentContent.innerHTML = tmpl;\n // use pacem-content as a placeholder, then `insertBefore`, then remove.\n const placeholders = currentContent.content.querySelectorAll(P + '-content');\n // assign host and create view activation promise\n CustomElementUtils.assignHostContext(_this, currentContent);\n // placeholder replacement.\n if (placeholders.length == 1) {\n const placeholder = placeholders.item(0);\n var ph = placeholder.nextSibling;\n const parent = placeholder.parentElement || currentContent.content;\n const nodes = originalContent.childNodes;\n parent.removeChild(placeholder);\n while (nodes.length > 0) {\n try {\n let node = nodes.item(0);\n parent.insertBefore(node, ph);\n //ph = node;\n }\n catch (e) {\n console.error(e.toString());\n }\n }\n }\n else if (placeholders.length > 1) {\n throw `There can only be at most 1 content placeholder inside a template.`;\n }\n var root;\n if (config.shadow) {\n root = element.attachShadow({ mode: 'open' /*, slotAssignment: 'named' (default) */ });\n root.appendChild(currentContent.content);\n }\n else {\n root = element;\n var currentChildren = currentContent.content.children;\n while (currentChildren.length > 0) {\n root.append(currentChildren.item(0));\n }\n }\n promises = retrieveDescendantTemplateActivationPromises(_this, root);\n }\n // flag as ready\n SET_VAL(_this, INSTANCE_READY_VAR, true);\n // retry with unresolved properties\n for (let property of properties) {\n const prop = property.name;\n const config = property.config;\n if (!config.converter.retryConversionWhenReady || !Utils.isNull(_this[prop])) {\n continue;\n }\n // check attr\n const attrName = CustomElementUtils.camelToKebab(prop), attr = _this.getAttribute(attrName);\n if (!Utils.isNullOrEmpty(attr) && !CustomElementUtils.isBindingAttribute(attr)) {\n // retry conversion\n _this[prop] = config.converter.convert(attr, _this);\n }\n }\n // execute todos (aka `reflect-backs` of prop values onto attr string values)\n const todos = (GET_VAL(_this, INSTANCE_ONREADY_VAR) || []);\n todos.forEach(todo => {\n todo.apply(_this);\n });\n //\n const pendingBindings = (evt) => {\n // re-evaluate pending expressions...\n var bindings = (GET_VAL(_this, INSTANCE_BINDINGS_VAR) || []);\n bindings.forEach(attrName => {\n const attrNameBind = attrName;\n if (!(attrNameBind in _this.attributes)) {\n throw `Howcome? ${attrNameBind} not in ${_this.constructor.name} attributes!?...`;\n }\n const attrValueBind = _this.attributes[attrNameBind].value;\n // still a binding attribute? (might have changed its shape while pending...)\n if (CustomElementUtils.isBindingAttribute(attrValueBind)) {\n var expr = CustomElementUtils.parseBindingAttribute(attrValueBind, _this);\n processBinding(_this, CustomElementUtils.kebabToCamel(attrName), expr);\n }\n });\n };\n //...now that the document is ready:\n pendingBindings();\n const fireViewActivated = (evt) => {\n //(<HTMLElement>_this).dispatchEvent(new Event(ViewActivatedEventName));\n if (originalViewActivatedCallback && originalViewActivatedCallback.value)\n originalViewActivatedCallback.value.apply(_this, []);\n else if (typeof originalViewActivatedCallback == 'function')\n originalViewActivatedCallback.apply(_this);\n var deferred = GET_VAL(_this, INSTANCE_PROMISE_VAR);\n if (!Utils.isNull(deferred))\n deferred.resolve();\n };\n _this.removeAttribute('cloak');\n //...now that the document is ready:\n // fire original viewActivatedCallback\n // when all the descendant templated elements have already fired\n Promise.all(promises)\n .then(_ => fireViewActivated());\n });\n }, configurable: true, enumerable: true\n });\n // disconnectedCallback override\n const originalDisconnectedCallback = Object.getOwnPropertyDescriptor(proto, 'disconnectedCallback') || proto.disconnectedCallback;\n Object.defineProperty(proto, 'disconnectedCallback', {\n value: function disconnectedCallback() {\n const _this = this;\n // 1. dispose as of dev's desires\n if (originalDisconnectedCallback && originalDisconnectedCallback.value)\n originalDisconnectedCallback.value.apply(_this, []);\n else if (typeof originalDisconnectedCallback === 'function')\n originalDisconnectedCallback.apply(_this, []);\n // 2. dismantle everything\n SET_VAL(_this, INSTANCE_READY_VAR, false);\n // re-evaluate pending expressions (in order to dismiss them, having the element `disconnected`)\n const bindings = (GET_VAL(_this, INSTANCE_BINDINGS_VAR) || []);\n bindings.forEach(attrName => {\n processBinding(_this, CustomElementUtils.kebabToCamel(attrName) /*, expr*/);\n });\n }, configurable: true, enumerable: true\n });\n // watchify attributes\n const originalAttributeChangedCallback = Object.getOwnPropertyDescriptor(proto, 'attributeChangedCallback') || proto.attributeChangedCallback;\n Object.defineProperty(proto, 'attributeChangedCallback', {\n value: function attributeChangedCallback(name, old, val) {\n const _this = this;\n const ready = GET_VAL(_this, INSTANCE_READY_VAR) === true;\n /*\n attributeChangedCallback has to fire BEFORE propertyChangedCallback IN THIS CASE\n */\n if (originalAttributeChangedCallback && originalAttributeChangedCallback.value)\n originalAttributeChangedCallback.value.apply(_this, [name, old, val]);\n else if (typeof originalAttributeChangedCallback === 'function')\n originalAttributeChangedCallback.apply(_this, [name, old, val]);\n // dispatch custom event 'attributechange'\n const evt = new AttributeChangeEvent({ attributeName: name, oldValue: old, currentValue: val, firstChange: !ready });\n _this.dispatchEvent(evt);\n // binding attribute?\n const binding = CustomElementUtils.isBindingAttribute(val);\n const plainAttrName = name;\n const prop = CustomElementUtils.kebabToCamel(plainAttrName);\n // when module scripts (esm) are involved you're at risk trying to process bindings too early, causing errors when - for instance - global variables are referenced.\n // nevertheless, setting moduleProofBindings to `true` prevents early attribute evaluation with startup issues\n // let's keep it false (legacy behavior)\n const moduleProofBindings = false; // TODO: allow to configure\n if (binding) {\n let value = CustomElementUtils.parseBindingAttribute(val, _this);\n if (value instanceof Expression) {\n const executeRightAway = () => {\n _this[prop] = value.evaluate();\n processBinding(_this, prop /* remove eventual old bindings */);\n };\n const executeDelayed = () => {\n var bindings = GET_VAL(_this, INSTANCE_BINDINGS_VAR, []);\n bindings.push(plainAttrName);\n if (!value.pending) {\n processBinding(_this, prop, value);\n }\n };\n if (value.independent && !moduleProofBindings) {\n try {\n // constant expression, just assign its value\n executeRightAway();\n }\n catch (e) {\n // there might be problems between loading and execution of the code\n // let's give it another chance\n console.warn(`Error occurred in early binding evaluation:\\n${val}\\n${e.message ?? e}`);\n executeDelayed();\n }\n }\n else {\n executeDelayed();\n }\n }\n else {\n throw `Howcome? ${val} misinterpreted as ${plainAttrName} binding...`;\n }\n }\n else {\n // retrieve property type and cast coherently...\n var property = properties.find(p => p.name === prop);\n if (!Utils.isNull(property)) {\n processBinding(_this, prop /* remove eventual old bindings */);\n // eventual retry at Ln.289\n _this[prop] = property.config.converter.convert(val, _this);\n }\n }\n }, configurable: true, enumerable: true\n });\n // watchify properties\n const originalPropertyChangedCallback = Object.getOwnPropertyDescriptor(proto, 'propertyChangedCallback') || proto.propertyChangedCallback;\n Object.defineProperty(proto, 'propertyChangedCallback', {\n value: function propertyChangedCallback(name, old, val, firstChange, options) {\n const _this = this;\n const ready = GET_VAL(_this, INSTANCE_READY_VAR) === true;\n const todo = () => {\n const bindingType = GET_VAL(_this, HAS_BIND_PREFIX + name);\n /*\n propertyChangedCallback has to fire BEFORE attributeChangedCallback in this case\n */\n if (originalPropertyChangedCallback && originalPropertyChangedCallback.value)\n originalPropertyChangedCallback.value.apply(_this, [name, old, val, !ready]);\n else if (typeof originalPropertyChangedCallback === 'function')\n originalPropertyChangedCallback.apply(_this, [name, old, val, !ready]);\n // dispatch custom event 'propertychange'\n if (!options || options.emit !== false) {\n const evt = new PropertyChangeEvent({ propertyName: name, oldValue: old, currentValue: val, firstChange: !ready });\n _this.dispatchEvent(evt);\n }\n if (Utils.isNullOrEmpty(bindingType) /* reflect to attribute only if this is not a binding property... */) {\n var property = properties.find(p => p.name === name);\n if (options\n && options.reflectBack === true\n && /* not polyfilled */ !CustomElementUtils.polyfilling) {\n var attrName = CustomElementUtils.camelToKebab(name), attr = _this.attributes.getNamedItem(attrName);\n // reflectBack only when ready (or you'll lose eventual bindings for attributes with default non-undefined value):\n // e.g. see `autofetch` property for `PacemFetchElement`\n if (ready\n // Allow to reflectBack proprties onto attributes also if the element isn't ready yet,\n // put proved to have relevant attribute empty. (e.g. some widget utils like `PacemWidgetFetchParameterElement` need this)\n || Utils.isNullOrEmpty(attr)) {\n var config;\n if (val === undefined || val === null) {\n _this.removeAttribute(attrName);\n }\n else if (property && (config = property.config) && typeof config.converter.convertBack === 'function') {\n const sval = config.converter.convertBack(val, _this);\n /* ...and the values are different */\n if (attr == null || sval !== attr.value)\n _this.setAttribute(attrName, sval);\n }\n }\n }\n }\n else if (bindingType === 'twoway') {\n const binding = GET_VAL(_this, WATCH_BIND_PREFIX + name)[0].dep;\n CustomElementUtils.set(binding.element, binding.path, val);\n }\n else if (bindingType === 'once') {\n // remove the binding\n processBinding(_this, name /*, null*/);\n }\n };\n // the following filter is needed in order to avoid attribute reflect-back and error:\n // `Uncaught DOMException: Failed to construct 'CustomElement': The result must not have attributes`\n if (ready) {\n todo.apply(_this);\n }\n else {\n var todos = GET_VAL(_this, INSTANCE_ONREADY_VAR, []);\n todos.push(todo);\n }\n }, configurable: true, enumerable: true\n });\n }\n Utils.customElements.define(config.tagName, target, config.options);\n Utils.customElements.whenDefined(config.tagName).then(() => {\n //console.log(`${config.tagName} defined.`);\n });\n };\n};\n// #endregion\n// #region WATCH PROPERTIES\nconst DefaultPropertyConverter = PropertyConverters.None;\nexport function Watch(config) {\n return (target, prop, descriptor) => {\n var watchableProperties = GET_VAL(target.constructor, WATCH_PROPS_VAR, []);\n watchableProperties.push({\n name: prop, config: Utils.extend({ emit: true, converter: DefaultPropertyConverter }, config)\n });\n // comparer\n const comparer = DefaultComparer;\n // original setter?\n const setter = descriptor && descriptor.set;\n // backing field value\n const propref = WATCH_PROP_PREFIX + prop; // <- pacem:property:'prop'\n const ver = WATCH_VERS_PROP; // <- pacem:version\n const propver = WATCH_VERS_PROP + ':' + prop; // <- pacem:version:'prop'\n // getter\n function getter() {\n const _this = this;\n return GET_VAL(_this, propref);\n }\n ;\n function onChange(key, oldValue, currentValue) {\n const _this = this;\n const debounce = config && config.debounce;\n // does it implement OnPropertyChanged?\n let propertyChangedCallback;\n if (typeof (propertyChangedCallback = _this['propertyChangedCallback']) === 'function') {\n let fn = () => propertyChangedCallback.apply(_this, [key, oldValue, GET_VAL(_this, propref), false /* dummy */, config]);\n if (typeof debounce === 'number' && debounce > 0) {\n clearTimeout(this['_handle_' + prop]);\n this['_handle_' + prop] = setTimeout(fn, debounce);\n }\n else if (debounce === true) {\n cancelAnimationFrame(this['_handle_' + prop]);\n this['_handle_' + prop] = requestAnimationFrame(fn);\n }\n else {\n fn();\n }\n }\n }\n ;\n function decorateArray(instance) {\n const _this = this;\n instance = instance || _this[prop];\n if ( /* already decorated? */GET_VAL(instance, 'pacem:array:decorated') === true) {\n return;\n }\n SET_VAL(instance, 'pacem:array:decorated', true);\n const proto = Array.prototype;\n const methods = {\n splice: proto.splice,\n pop: proto.pop,\n copyWithin: proto.copyWithin,\n push: proto.push,\n shift: proto.shift,\n unshift: proto.unshift\n };\n for (let name in methods) {\n let fn = name; // < closure\n instance[fn] = function (...args) {\n const retval = methods[fn].apply(this, args);\n // TODO?: specifically notify which items have changed.\n // .length property risks to not be affected, fire it as well.\n SET_VAL(this, ver, Date.now());\n onChange.call(_this, prop, this, this);\n return retval;\n };\n }\n }\n function setterCore(oldVal, newVal) {\n const _this = this, isArray = Utils.isArray(newVal);\n // different?\n const diffrent = !comparer(oldVal, newVal);\n if (diffrent || (isArray && GET_VAL(newVal, ver) !== GET_VAL(_this, propver))) {\n SET_VAL(_this, propref, newVal);\n if (isArray) {\n SET_VAL(_this, propver, GET_VAL(newVal, ver));\n decorateArray.call(_this, newVal);\n }\n onChange.call(_this, prop, oldVal, newVal);\n }\n }\n // setter\n if (setter) {\n descriptor.set = function (v) {\n const _this = this, oldVal = _this[prop];\n setter.call(_this, v);\n const newVal = _this[prop];\n //\n setterCore.call(_this, oldVal, newVal);\n };\n }\n else {\n //#region this is needed when creating property at runtime.\n try {\n // TODO: find better way!\n if (target.ownerDocument) {\n target[propref] = target[prop];\n }\n }\n catch (e) { /*Illegal invocation*/ }\n //#endregion\n if (delete target[prop]) {\n Object.defineProperty(target, prop, {\n get: function () {\n return getter.call(this);\n },\n set: function (newVal) {\n const _this = this;\n const oldVal = GET_VAL(_this, propref);\n //\n setterCore.call(_this, oldVal, newVal);\n },\n enumerable: true,\n configurable: true\n });\n }\n }\n };\n}\nexport function ViewChild(selector) {\n return (target, prop, descriptor) => {\n const key = `${prop}_${Utils.uniqueCode()}`;\n function findElement() {\n const _this = this, nodelist = (_this.shadowRoot || _this).querySelectorAll(selector);\n for (let i = 0; i < nodelist.length; i++) {\n let item = nodelist.item(i);\n if (GET_VAL(item, INSTANCE_HOST_VAR) === _this) {\n return item;\n }\n }\n return null;\n }\n function getter() {\n const _this = this;\n // reset INSTANCE_CHILDREN_VAR on connectedCallback!\n const dict = GET_VAL(_this, INSTANCE_CHILDREN_VAR, {});\n return dict[key] = dict[key] || findElement.call(_this);\n }\n if (delete target[prop]) {\n Object.defineProperty(target, prop, {\n get: function () {\n return getter.call(this);\n },\n enumerable: true,\n configurable: true\n });\n }\n };\n}\n// #endregion\n// #region CONCURRENT/DEBOUNCE EXECUTION\nexport function Concurrent() {\n function isPromiseLike(obj) {\n return obj && typeof obj.then === 'function';\n }\n return function (target /* type, actually */, key, descriptor) {\n const originalMethod = descriptor.value;\n const bufferKey = `pacem:concurrent-buffer:${key}`, lockKey = `pacem:concurrent-running:${key}`;\n descriptor.value = function (...args) {\n var _this = this;\n var buffer = CustomElementUtils.getAttachedPropertyValue(_this, bufferKey, []);\n var locked = CustomElementUtils.getAttachedPropertyValue(_this, lockKey, false);\n if (locked) {\n // previous process still going: \n // save args for later use,\n let deferred = DeferPromise.defer();\n //let logFn = console && console.debug;\n //if (typeof logFn === 'function')\n // logFn(`Method ${key} is busy. Procrastinating args '${JSON.stringify(args)}'...`);\n args.push(deferred);\n buffer.push(args);\n // and exit.\n return deferred.promise;\n }\n var result = originalMethod.apply(_this, args);\n if (isPromiseLike(result)) {\n let deferred = args && args.length > 0 && args[args.length - 1];\n if (deferred && deferred.promise instanceof DeferPromise)\n args.pop();\n else\n deferred = DeferPromise.defer();\n // hi-jack only if promise-like...\n CustomElementUtils.setAttachedPropertyValue(_this, lockKey, true);\n result.then(r => {\n deferred.resolve(r);\n CustomElementUtils.setAttachedPropertyValue(_this, lockKey, false);\n // warning: here's a possibly sneaky point (TODO: strengthen the lock)\n if (buffer.length > 0)\n originalMethod.apply(_this, buffer.shift());\n }, err => {\n CustomElementUtils.setAttachedPropertyValue(_this, lockKey, false);\n deferred.reject(err);\n });\n return deferred.promise;\n }\n // ...otherwise return the - hopefully - safe single-threaded result.\n else\n return result;\n };\n };\n}\nexport function Debounce(msecs = 50, keyFactory = (key, ...args) => `pacem:debouncer:${key}`) {\n return function (target /* type, actually */, key, descriptor) {\n const originalMethod = descriptor.value;\n if (msecs === true) {\n descriptor.value = function (...args) {\n const handleKey = keyFactory(key, ...args);\n var _this = this;\n cancelAnimationFrame(GET_VAL(_this, handleKey));\n SET_VAL(_this, handleKey, requestAnimationFrame(() => {\n originalMethod.apply(_this, args);\n }));\n };\n }\n else if (msecs > 0) {\n descriptor.value = function (...args) {\n const handleKey = keyFactory(key, ...args);\n var _this = this;\n clearTimeout(GET_VAL(_this, handleKey, 0));\n SET_VAL(_this, handleKey, setTimeout(() => {\n originalMethod.apply(_this, args);\n }, msecs));\n };\n }\n };\n}\nexport function Throttle(msecs = 50, keyFactory = (key, ...args) => `pacem:throttler:${key}`) {\n return function (target /* type, actually */, key, descriptor) {\n const originalMethod = descriptor.value;\n descriptor.value = function (...args) {\n const handleKey = keyFactory(key, ...args);\n const argsKey = `${handleKey}:args`;\n const _this = this, reset = () => {\n DEL_VAL(_this, handleKey);\n const lastArgs = GET_VAL(_this, argsKey);\n DEL_VAL(_this, argsKey);\n if (lastArgs) {\n originalMethod.apply(_this, args);\n }\n };\n // guard: the presence of an handleKey\n // indicates a too-close call => exit\n if (!Utils.isNull(GET_VAL(_this, handleKey))) {\n SET_VAL(_this, argsKey, args ?? ['pacem']);\n return;\n }\n SET_VAL(_this, handleKey, 1);\n originalMethod.apply(_this, args);\n if (msecs === true) {\n requestAnimationFrame(reset);\n }\n else if (msecs > 0) {\n setTimeout(reset, msecs);\n }\n };\n };\n}\n// #endregion\n// #region TRANSFORMS\nclass Transforms {\n static register(name, fn) {\n let _set = Utils.core;\n const segments = (name || fn.name).split('.');\n for (let segment of segments.slice(0, -1)) {\n _set = _set[segment] || (_set[segment] = {});\n }\n const methodName = segments[segments.length - 1] || fn.name;\n if (!Utils.isNull(_set[methodName])) {\n console.warn(`A transform named ${methodName} already exists in this set.`);\n }\n else {\n _set[methodName] = fn;\n }\n }\n}\nexport function Transformer(name) {\n return function (target, key, descriptor) {\n const method = descriptor.value;\n Transforms.register(name, method);\n };\n}\n","/// <reference path=\"converters.ts\" />\n/// <reference path=\"decorators.ts\" />\n/// <reference path=\"logger.ts\" />\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Expression } from './expression';\nimport { LogLevel } from './logger';\nimport { INSTANCE_SCOPE_VAR } from './types';\nimport { Utils } from './utils';\nimport { CustomElementUtils } from './utils-customelement';\nimport { Watch } from './decorators';\nimport { PropertyConverters } from './converters';\n//namespace Pacem.Components {\nexport class PacemEventTarget extends HTMLElement {\n constructor() {\n super();\n this._isReady = false;\n this.emitHandler = (evt) => {\n // no handlers processed if the element is disabled.\n if (!this.disabled) {\n this.emit(evt);\n }\n };\n }\n /**\n * Executes the relevant handler defined in the `on-{evt.type}` attribute, if any.\n * @param evt {Event} the event to be fired\n */\n emit(evt) {\n if (evt.defaultPrevented) {\n // skip if evt was canceled\n return;\n }\n this._emitCore(evt);\n }\n _emitCore(evt) {\n var attrName = `on-${evt.type.toLowerCase()}`;\n if (attrName in this.attributes) {\n this.log(LogLevel.Debug, `Calling ${attrName} handler for event ${evt.type}`);\n var attrBody = this.attributes[attrName].value;\n var expression = Expression.parse(attrBody, this);\n if (!Utils.isNull(expression) && expression.pending !== true) {\n expression.evaluatePlus({ '$event': evt });\n }\n }\n }\n handle(evt, detail) {\n if (typeof evt === 'string') {\n evt = Utils.isNull(detail) ? new Event(evt, { cancelable: false }) : new CustomEvent(evt, { cancelable: false, detail });\n }\n this.emit(evt);\n }\n /** Gets whether the element has been completely loaded alongside with the other pieces of the DOM. */\n get isReady() {\n return this._isReady;\n }\n connectedCallback() {\n CustomElementUtils.setAttachedPropertyValue(this, INSTANCE_SCOPE_VAR, CustomElementUtils.findScopeContext(this));\n this.log(LogLevel.Debug, `Connected.`);\n }\n disconnectedCallback() {\n this._isReady = false;\n this.dispatchEvent(new Event('unload'));\n CustomElementUtils.deleteAttachedPropertyValue(this, INSTANCE_SCOPE_VAR);\n this.log(LogLevel.Debug, `Disconnected.`);\n }\n viewActivatedCallback() {\n this._isReady = true;\n this.log(LogLevel.Debug, `Loaded (view activated).`);\n this.dispatchEvent(new Event('load'));\n }\n /**\n * Manages the value change of a watched property.\n * @param name {string} property name\n * @param old {any} former property value\n * @param val {any} new/current property value\n * @param first {boolean} whether is the first change (right before view activation) or not\n */\n propertyChangedCallback(name, old, val, first) {\n if (first)\n this.log(LogLevel.Log, `Property \"${name}\" changed at start-up`);\n else\n this.log(LogLevel.Log, `Property \"${name}\" changed from ${old} to ${val}`);\n }\n /**\n * Wraps the native dispatchEvent in order to emit `on-{evt-type}` handler, if any.\n * @param evt {Event} the event to be fired\n */\n dispatchEvent(evt) {\n // no events dispatched if the element is disabled.\n if (this.disabled) {\n return false;\n }\n this.log(LogLevel.Log, `Dispatching event \"${evt.type}\"`);\n const ret = super.dispatchEvent(evt);\n this.emit(evt);\n return ret;\n }\n /**\n * Logs a message if a logger is available.\n * @param level {LogLevel} Level of log\n * @param message {String} Content\n * @param category {String} Grouping category\n */\n log(level, message, category = this.localName + (this.id ? '#' + this.id : '')) {\n this.logger && typeof this.logger.log === 'function' && this.logger.log(level, message, category);\n }\n /** Refreshes all the properties corresponding to explicit binding attributes. */\n refreshBindings() {\n // refresh all the bindings\n for (let j = 0; j < this.attributes.length; j++) {\n let attr = this.attributes.item(j), isBinding = CustomElementUtils.isBindingAttribute(attr.value);\n if (!isBinding)\n continue;\n let prop = CustomElementUtils.kebabToCamel(attr.name);\n let binding = CustomElementUtils.parseBindingAttribute(attr.value, this);\n this[prop] = binding.evaluate();\n }\n }\n}\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemEventTarget.prototype, \"disabled\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemEventTarget.prototype, \"logger\", void 0);\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Utils } from '../../utils';\nimport { CustomTypedEvent } from '../../events';\nimport { PacemEventTarget } from '../../eventtarget';\nimport { PCSS } from '../../prefix';\nimport { Watch } from '../../decorators';\nimport { PropertyConverters } from '../../converters';\nexport const RepeaterItemCreateEventName = 'repeateritemcreate';\nexport const RepeaterItemRemoveEventName = 'repeateritemremove';\nexport class RepeaterItemEvent extends CustomTypedEvent {\n constructor(name, args) {\n super(name, args);\n }\n}\nexport class RepeaterItemCreateEvent extends RepeaterItemEvent {\n constructor(args) {\n super(RepeaterItemCreateEventName, args);\n }\n}\nexport class RepeaterItemRemoveEvent extends RepeaterItemEvent {\n constructor(args) {\n super(RepeaterItemRemoveEventName, args);\n }\n}\nconst STD_EVENTS = ['keydown', 'keyup', 'click', 'focus', 'blur', 'dblclick', 'mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'mousemove', 'contextmenu', 'wheel'];\nclass ElementAriaAttributes {\n constructor(_element, ariaAttrs) {\n this._element = _element;\n this._aria = Utils.extend({}, ariaAttrs || {});\n }\n toObject() {\n return Utils.extend({}, this._aria);\n }\n set(name, value) {\n this._aria[name] = value;\n const el = this._element;\n if (el.isConnected) {\n el.setAttribute('aria-' + name, value);\n }\n }\n remove(name) {\n delete this._aria[name];\n const el = this._element;\n if (el.isConnected) {\n el.removeAttribute('aria-' + name);\n }\n }\n}\nclass ElementAria {\n constructor(_element, role, attrs) {\n this._element = _element;\n this._aria = { role: role, attrs: new ElementAriaAttributes(_element, attrs) };\n }\n get role() {\n return this._aria.role;\n }\n /** Remarks: when set to an empty string AFTER the element gets connected to the DOM, this will remove the `role` attribute. */\n set role(role) {\n this._aria.role = role;\n const el = this._element;\n if (el.isConnected) {\n Utils.isNullOrEmpty(role) ? el.removeAttribute('role') : el.setAttribute('role', role);\n }\n }\n get attributes() {\n return this._aria.attrs;\n }\n}\nexport class PacemElement extends PacemEventTarget {\n constructor(role, aria) {\n super();\n this.#cssBag = [];\n this.#parts = [];\n this._tabIndex = -1;\n this.behaviors = [];\n this._aria = new ElementAria(this, role, aria);\n }\n // #region ARIA\n get aria() { return this._aria; }\n // #endregion\n static #stdEvtsMemoizer = null;\n static get emittedEventTypes() {\n return this.#stdEvtsMemoizer ??= Utils.readonlyCopy(STD_EVENTS);\n }\n #cssBag;\n #parts;\n connectedCallback() {\n super.connectedCallback();\n if (!Utils.isNullOrEmpty(this._aria.role)) {\n this.setAttribute('role', this._aria.role);\n }\n let ariaAttrs = this._aria.attributes.toObject();\n if (!Utils.isNullOrEmpty(ariaAttrs)) {\n for (let name in ariaAttrs) {\n this.setAttribute('aria-' + name, ariaAttrs[name]);\n }\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n STD_EVENTS.forEach(e => {\n this.addEventListener(e, this.emitHandler, false);\n });\n for (var behavior of this.behaviors || []) {\n behavior.register(this);\n }\n }\n disconnectedCallback() {\n for (var behavior of this.behaviors || []) {\n behavior.unregister(this);\n }\n STD_EVENTS.forEach(e => {\n this.removeEventListener(e, this.emitHandler, false);\n });\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'css':\n for (var css in this.css) {\n this.style.setProperty(css, this.css[css]);\n }\n break;\n case 'cssClass':\n if (Utils.isArray(this.cssClass)) {\n const newBag = this.cssClass;\n for (let css of this.#cssBag.splice(0)) {\n Utils.removeClass(this, css);\n }\n for (let css of newBag) {\n this.#cssBag.push(css);\n Utils.addClass(this, css);\n }\n }\n else\n for (let css in this.cssClass) {\n Utils.toggleClass(this, css, this.cssClass[css]);\n }\n break;\n case 'cssPart':\n const cssPart = this.cssPart, bag = this.#parts;\n if (Utils.isArray(cssPart)) {\n const newBag = cssPart;\n for (let partName of bag.splice(0)) {\n Utils.removePart(this, partName);\n }\n for (let partName of newBag) {\n bag.push(partName);\n Utils.addPart(this, partName);\n }\n }\n else\n for (let partName in cssPart) {\n Utils.togglePart(this, partName, cssPart[partName]);\n }\n break;\n case \"hide\":\n const hidingCss = (PCSS + '-hiding');\n if (val) {\n const el = this, animCss = PCSS + '-anim', callback = () => {\n el.setAttribute('hidden', '');\n el.aria.attributes.set('hidden', 'true');\n };\n if (Utils.hasClass(el, animCss) && !Utils.isNull(old)) {\n Utils.removeClass(el, animCss);\n requestAnimationFrame(() => {\n Utils.addClass(el, hidingCss);\n Utils.addClass(el, animCss);\n Utils.waitForAnimationEnd(el, 250).then(_ => {\n if (el.hide) {\n callback();\n }\n Utils.removeClass(el, hidingCss);\n });\n });\n }\n else\n callback();\n }\n else {\n Utils.removeClass(this, hidingCss);\n this.removeAttribute('hidden');\n this.aria.attributes.remove('hidden');\n }\n break;\n case 'tooltip':\n this.title = val;\n Utils.isNullOrEmpty(val) ? this.aria.attributes.remove('label') : this.aria.attributes.set('label', val);\n break;\n case 'tabOrder':\n this._tabIndex = val;\n if (!this.disabled) {\n this.tabIndex = val;\n }\n break;\n case 'behaviors':\n if (!Utils.isNullOrEmpty(old)) {\n for (let behavior of old) {\n behavior.unregister(this);\n }\n }\n if (!Utils.isNullOrEmpty(val) && !first) {\n for (let behavior of val) {\n behavior.register(this);\n }\n }\n break;\n case 'disabled':\n let cssDis = PCSS + '-' + name;\n if (!!val) {\n this._tabIndex = this.tabIndex;\n this.tabIndex = -1;\n Utils.addClass(this, cssDis);\n }\n else {\n this.tabIndex = this._tabIndex;\n Utils.removeClass(this, cssDis);\n }\n break;\n case 'culture':\n if (Utils.isNullOrEmpty(val)) {\n this.removeAttribute('lang');\n }\n else {\n this.setAttribute('lang', val);\n }\n if (!first) {\n this.refreshBindings();\n }\n break;\n }\n }\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json /* when declared plainly assume array of strings */ })\n], PacemElement.prototype, \"cssClass\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemElement.prototype, \"cssPart\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemElement.prototype, \"css\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemElement.prototype, \"hide\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemElement.prototype, \"tooltip\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemElement.prototype, \"tabOrder\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemElement.prototype, \"culture\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemElement.prototype, \"behaviors\", void 0);\nexport class PacemContentElement extends PacemElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'content' && !first) {\n this._fillContent(val);\n }\n }\n _isContentNullOrEmpty(content = this.content) {\n return Utils.isNullOrEmpty(content) || (content instanceof DocumentFragment && content.childElementCount === 0);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._original = Array.from(this.children);\n if (!this._isContentNullOrEmpty()) {\n this._fillContent();\n }\n }\n disconnectedCallback() {\n if (!Utils.isNullOrEmpty(this._original)) {\n this.innerHTML = '';\n Element.prototype.append.apply(this, this._original);\n }\n super.disconnectedCallback();\n }\n _fillContent(val = this.content) {\n const output = this.sanitize(val);\n if (Utils.isNullOrEmpty(output)) {\n this.innerHTML = '';\n }\n else {\n if (output instanceof Node) {\n this.innerHTML = '';\n this.append(output);\n }\n else {\n this.innerHTML = output;\n }\n }\n }\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemContentElement.prototype, \"content\", void 0);\nexport class PacemUnsafeContentElement extends PacemContentElement {\n sanitize(html) {\n return html;\n }\n}\nexport class PacemSafeContentElement extends PacemContentElement {\n _sanitizeLegacy(html) {\n if (Utils.isNullOrEmpty(html)) {\n return html;\n }\n if (html instanceof Node) {\n for (let i = html.childNodes.length - 1; i >= 0; i--) {\n const node = html.childNodes.item(i);\n if (node instanceof HTMLScriptElement) {\n node.remove();\n }\n else {\n this.sanitize(node);\n }\n }\n return html;\n }\n else {\n const scriptBlockPattern = /<script.+<\\/script>/g;\n // TODO: remove onclick, onload, onkey*, ... attributes\n return (html || '').toString().replace(scriptBlockPattern, '');\n }\n }\n sanitize(html) {\n // TODO: implement by using (when available in dom library)\n // https://developer.mozilla.org/en-US/docs/Web/API/Sanitizer/Sanitizer\n return this._sanitizeLegacy(html);\n }\n}\n//}\n","import { CurrentIndexChangeEvent } from '../../adapter';\nimport { Utils } from '../../utils';\nimport { PropertyChangeEventName } from '../../events';\nimport { PacemEventTarget } from '../../eventtarget';\nimport { PacemElement } from './types';\nexport class PacemAdapter extends PacemElement {\n constructor() {\n super(...arguments);\n this._propertyChangeHandler = (evt) => {\n this.masterPropertyChangedCallback(evt.detail.propertyName, evt.detail.oldValue, evt.detail.currentValue, evt.detail.firstChange);\n };\n }\n /** Gets the adapted element. */\n get master() {\n return this._element;\n }\n /** Gets whether this adapter has been initialized or not. */\n get initialized() {\n return !Utils.isNull(this._element);\n }\n /**\n * Handles the property changes for the master element.\n * @param name Name of the property that has changed\n * @param old Previous value\n * @param val Current value\n * @param first Is it the startup change?\n */\n masterPropertyChangedCallback(name, old, val, first) {\n switch (name) {\n case 'items':\n this._adjustFocusIndex();\n break;\n case 'index':\n this._element.dispatchEvent(new CurrentIndexChangeEvent({ currentIndex: val, previousIndex: old }));\n break;\n }\n }\n /**\n * Handles the property changes for item elements.\n * @param index Index of the element among the items\n * @param name Name of the property that has changed\n * @param old Previous value\n * @param val Current value\n * @param first Is it the startup change?\n */\n itemPropertyChangedCallback(index, name, old, val, first) {\n // empty implementation\n }\n /** Called righat after the adapter 'initialize'. */\n initializeCallback() {\n // empty implementation\n }\n destroyCallback() {\n // empty implementation\n }\n initialize(adapted) {\n if (this._element != null) {\n this.destroy();\n //throw `Cannot initialize an adapter twice.`;\n }\n if (adapted != null) {\n this._element = adapted;\n this._element.addEventListener(PropertyChangeEventName, this._propertyChangeHandler, false);\n }\n this.initializeCallback();\n }\n destroy() {\n if (this._element != null)\n this._element.removeEventListener(PropertyChangeEventName, this._propertyChangeHandler, false);\n this.destroyCallback();\n }\n disconnectedCallback() {\n this.destroy();\n super.disconnectedCallback();\n }\n _adjustFocusIndex() {\n let items = this._element.items;\n const index = this._element.index;\n const length = items && items.length;\n const ndxStart = length ? Math.max(0, Math.min(length - 1, index)) : -1;\n const ndx = this._getAvailable(ndxStart);\n this._element.index = ndx;\n }\n _getNextAvailable(ndxStart) {\n return this._getAvailable(ndxStart, 1);\n }\n _getPreviousAvailable(ndxStart) {\n return this._getAvailable(Math.max(0, ndxStart), -1);\n }\n _getAvailable(ndxStart = this._element && this._element.index, step = 0) {\n let items = this._element.items, length;\n if (!(items && (length = items.length) > 0))\n return -1;\n ndxStart = ndxStart % length;\n let ndx = (ndxStart + step + length) % length;\n let item;\n step = step || -1;\n while ((item = items[ndx]) instanceof PacemEventTarget && item.disabled === true\n || (item instanceof PacemElement && item.hide === true)) {\n ndx = (ndx + step + length) % length;\n if (ndx == ndxStart) {\n // loop completed\n return -1;\n }\n }\n return ndx;\n }\n /**\n * Returns whether the provided index is close (adjacent or equal) to the current one in focus.\n * @param ndx index to be checked\n */\n isClose(ndx) {\n const current = this._getAvailable();\n return ndx === current\n || ndx === this._getPreviousAvailable(current)\n || ndx === this._getNextAvailable(current);\n }\n /**\n * Returns whether the provided index is adjacent (previous on the list) to the current one in focus.\n * @param ndx index to be checked\n */\n isPrevious(ndx) {\n const current = this._getAvailable();\n return ndx === this._getPreviousAvailable(current);\n }\n /**\n * Returns whether the provided index is adjacent (next on the list) to the current one in focus.\n * @param ndx index to be checked\n */\n isNext(ndx) {\n const current = this._getAvailable();\n return ndx === this._getNextAvailable(current);\n }\n select(ndx) {\n this._element.index = this._getAvailable(ndx);\n }\n previous(loop = true) {\n var prev = this._getPreviousAvailable(this._element.index);\n if (prev >= 0 && (loop || this._element.index > prev))\n this._element.index = prev;\n }\n next(loop = true) {\n var next = this._getNextAvailable(this._element.index);\n if (next >= 0 && (loop || this._element.index < next))\n this._element.index = next;\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemAnnihilatorElement = class PacemAnnihilatorElement extends HTMLElement {\n constructor() {\n super();\n }\n connectedCallback() {\n this.remove();\n }\n};\nPacemAnnihilatorElement = __decorate([\n CustomElement({ tagName: P + '-annihilator' })\n], PacemAnnihilatorElement);\nexport { PacemAnnihilatorElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemBeforeunloadElement = class PacemBeforeunloadElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._unloadingHandler = (evt) => {\n const msg = this.message;\n if (!this.active || this.disabled) {\n return;\n }\n if (evt.type === 'beforeunload') {\n evt.preventDefault();\n evt.returnValue = msg || '';\n }\n else if (!confirm(msg || 'Leave page?')) {\n evt.preventDefault();\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n window.addEventListener('navigating', this._unloadingHandler, false);\n window.addEventListener('beforeunload', this._unloadingHandler, false);\n }\n disconnectedCallback() {\n window.removeEventListener('navigating', this._unloadingHandler, false);\n window.removeEventListener('beforeunload', this._unloadingHandler, false);\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBeforeunloadElement.prototype, \"message\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemBeforeunloadElement.prototype, \"active\", void 0);\nPacemBeforeunloadElement = __decorate([\n CustomElement({ tagName: P + '-beforeunload' })\n], PacemBeforeunloadElement);\nexport { PacemBeforeunloadElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemBroadcastChannelProxyElement = class PacemBroadcastChannelProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this.autosend = true;\n this._messageHandler = (evt) => {\n this.result = evt.data;\n this.dispatchEvent(new CustomEvent('receive', { detail: evt.data, bubbles: false, cancelable: false }));\n };\n this._errorHandler = (evt) => {\n this.dispatchEvent(new CustomEvent('error', { detail: evt.data, bubbles: false, cancelable: false }));\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._initializeChannel();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'src':\n this._disposeChannel();\n this._initializeChannel(val);\n break;\n case 'autosend':\n case 'disabled':\n case 'message':\n if (this.autosend) {\n this.send(this.message);\n }\n break;\n }\n }\n }\n disconnectedCallback() {\n this._disposeChannel();\n super.disconnectedCallback();\n }\n send(message = this.message) {\n if (this.disabled) {\n return;\n }\n const channel = this.#channel;\n if (!Utils.isNull(channel)) {\n channel.postMessage(message);\n }\n }\n #channel;\n _initializeChannel(name = this.channelName) {\n if (!Utils.isNullOrEmpty(name)) {\n const channel = this.#channel = new BroadcastChannel(name);\n channel.addEventListener('message', this._messageHandler, false);\n channel.addEventListener('messageerror', this._errorHandler, false);\n if (this.autosend && !Utils.isNull(this.message)) {\n this.send();\n }\n }\n }\n _disposeChannel(channel = this.#channel) {\n if (!Utils.isNull(channel)) {\n channel.removeEventListener('messageerror', this._errorHandler, false);\n channel.removeEventListener('message', this._messageHandler, false);\n channel.close();\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBroadcastChannelProxyElement.prototype, \"message\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemBroadcastChannelProxyElement.prototype, \"result\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBroadcastChannelProxyElement.prototype, \"channelName\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemBroadcastChannelProxyElement.prototype, \"autosend\", void 0);\nPacemBroadcastChannelProxyElement = __decorate([\n CustomElement({ tagName: P + '-broadcastchannel-proxy' })\n], PacemBroadcastChannelProxyElement);\nexport { PacemBroadcastChannelProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { detect } from '@pacem/pacem-foundation';\nimport { CustomElement, Watch } from '../../decorators';\nimport { P } from '../../prefix';\nimport { PropertyConverters } from '../../converters';\nimport { PropertyChangeEvent } from '../../events';\nimport { PacemEventTarget } from '../../eventtarget';\n//namespace Pacem.Components {\nlet PacemBrowserDetectElement = class PacemBrowserDetectElement extends PacemEventTarget {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._detect();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'userAgent') {\n this._detect(val);\n }\n }\n #browser;\n #version;\n get browser() {\n return this.#browser;\n }\n get version() {\n return this.#version;\n }\n _detect(userAgent = this.userAgent) {\n const { version, name } = detect(userAgent);\n const { browser: oldName, version: oldVersion } = this;\n if (name != oldName) {\n this.#browser = name;\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'browser', currentValue: name, oldValue: oldName }));\n }\n if (version != oldVersion) {\n this.#version = version;\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: 'version', currentValue: version, oldValue: oldVersion }));\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemBrowserDetectElement.prototype, \"userAgent\", void 0);\nPacemBrowserDetectElement = __decorate([\n CustomElement({ tagName: P + '-browser-detect' })\n], PacemBrowserDetectElement);\nexport { PacemBrowserDetectElement };\n//}\n","import { Utils } from './utils';\n//namespace Pacem {\nconst EXPIRATION_FIELD = '_exp';\nexport class Storage {\n _getStorage(persistent) {\n return !!persistent ? window.localStorage : window.sessionStorage;\n }\n _parseValue(storage, name) {\n const value = storage.getItem(name);\n if (Utils.isNullOrEmpty(value)) {\n return null;\n }\n const output = Utils.Json.parse(value);\n if (!Object.hasOwnProperty(EXPIRATION_FIELD)) {\n return output;\n }\n const exp = output[EXPIRATION_FIELD];\n if (exp < Date.now()) {\n storage.removeItem(name);\n return null;\n }\n return output['value'];\n }\n setPropertyValue(name, value, persistent) {\n var storage = this._getStorage(persistent === true || (typeof persistent === 'number' && persistent > 0));\n var storedValue = value;\n // set cache timeout\n if (typeof persistent === 'number' && persistent > 0) {\n const exp = Date.now() + 1000 * persistent;\n storedValue = { value: value };\n storedValue[EXPIRATION_FIELD] = exp;\n }\n storage.setItem(name, Utils.Json.stringify(storedValue));\n // delete omonymy\n storage = this._getStorage(!persistent);\n storage.removeItem(name);\n }\n getPropertyValue(name) {\n return this._parseValue(this._getStorage(false), name)\n || this._parseValue(this._getStorage(true), name);\n }\n clear() {\n var storage = this._getStorage(true);\n storage.clear();\n storage = this._getStorage(false);\n storage.clear();\n }\n ;\n removeProperty(name) {\n var storage = this._getStorage(true);\n storage.removeItem(name);\n storage = this._getStorage(false);\n storage.removeItem(name);\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { Storage } from '../../storage';\nimport { PropertyChangeEvent } from '../../events';\n//namespace Pacem.Components {\nlet PacemDataElement = class PacemDataElement extends PacemEventTarget {\n constructor(storage = new Storage()) {\n super();\n this.storage = storage;\n this._handle = 0;\n this._flag = false;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'persistAs':\n if (!Utils.isNullOrEmpty(old)) {\n this.storage.removeProperty(old);\n }\n if (first === true && !Utils.isNullOrEmpty(val)) {\n this.model = this.storage.getPropertyValue(val) ?? this.model;\n }\n break;\n case 'model':\n const debounce = this.debounce, throttle = this.throttle, emit = () => {\n this.dispatchEvent(new PropertyChangeEvent({ propertyName: name, oldValue: old, currentValue: val, firstChange: first }));\n };\n if (debounce > 0 && !first) {\n if (throttle) {\n if (this._flag)\n return;\n this._flag = true;\n emit();\n this._handle = window.setTimeout(() => { this._flag = false; }, debounce);\n }\n else {\n clearTimeout(this._handle);\n this._handle = window.setTimeout(emit, debounce);\n }\n }\n else {\n emit();\n }\n // persist\n if (!first && !Utils.isNullOrEmpty(this.persistAs)) {\n if (Utils.isNull(val))\n this.storage.removeProperty(this.persistAs);\n else\n this.storage.setPropertyValue(this.persistAs, val, true);\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false /* in order to debounce the propertychange emit */, converter: PropertyConverters.Eval })\n], PacemDataElement.prototype, \"model\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDataElement.prototype, \"persistAs\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDataElement.prototype, \"debounce\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.BooleanStrict })\n], PacemDataElement.prototype, \"throttle\", void 0);\nPacemDataElement = __decorate([\n CustomElement({ tagName: P + '-data' })\n], PacemDataElement);\nexport { PacemDataElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, PCSS } from './_default-imports';\nimport { TweenService } from '../../animations/tween-service';\nimport { Easings } from '../../animations/easings';\nimport { LogLevel } from '../../logger';\nimport { CustomElementUtils } from '../../utils-customelement';\n//namespace Pacem.Components {\nexport var DockMode;\n(function (DockMode) {\n DockMode[\"Top\"] = \"top\";\n DockMode[\"Bottom\"] = \"bottom\";\n})(DockMode || (DockMode = {}));\n/** @deprecated */\nlet PacemDockElement = class PacemDockElement extends PacemEventTarget {\n constructor(_tweener = new TweenService()) {\n super();\n this._tweener = _tweener;\n this.mode = DockMode.Top;\n this.transitionDuration = 300 /* msecs */;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'dock' && (!Utils.isNull(old) || val != false))\n this._doDock();\n else if (name === 'mode' && this.dock === true)\n this._doDock();\n }\n _animate(from, to) {\n var transition = this.transitionDuration;\n if (!(transition > 0))\n transition = 300;\n //\n return this._tweener.run(from, to, transition, this.delay, Easings.sineInOut, (time, value) => {\n this._setOffset(value);\n }).then(() => {\n this._resetOffset();\n });\n }\n _setOffset(value) {\n this.style.transform = 'translateY(' + value + 'px)';\n }\n _resetOffset() {\n this.style.transform = '';\n }\n _compute() {\n const offset = Utils.offset(this);\n const css = getComputedStyle(this);\n const scrollTop = Utils.scrollTop;\n switch (this.mode) {\n case DockMode.Bottom:\n const marginBottom = parseInt(css.marginBottom);\n const bottom = offset.top;\n const deltaBottom = Utils.windowSize.height - (bottom - scrollTop + this.offsetHeight);\n return { delta: deltaBottom + marginBottom };\n case DockMode.Top:\n const marginTop = parseInt(css.marginTop);\n const top = offset.top;\n const delta = top - scrollTop;\n return { delta: -(delta + marginTop) };\n }\n }\n _doDock() {\n const docked = this.dock;\n if (docked) {\n const cmp = this._compute();\n if (Utils.isNull(cmp))\n return;\n //\n // adding the css classes first...\n Utils.addClass(this, PCSS + '-dock');\n switch (this.mode) {\n case DockMode.Bottom:\n Utils.removeClass(this, PCSS + '-dock-top');\n Utils.addClass(this, PCSS + '-dock-bottom');\n break;\n case DockMode.Top:\n Utils.removeClass(this, PCSS + '-dock-bottom');\n Utils.addClass(this, PCSS + '-dock-top');\n break;\n }\n // ...so have to flip `from` and `to` \n const from = -cmp.delta;\n const to = 0;\n const state = CustomElementUtils.getAttachedPropertyValue(this, 'pacem-dock:state') || 0;\n CustomElementUtils.setAttachedPropertyValue(this, 'pacem-dock:state', -from + state);\n this.log(LogLevel.Info, `animating from ${from}px to ${to}px`);\n //\n this._animate(from, to) /*.then(() => { })*/;\n }\n else {\n // removing the css classes first then animating\n const from = CustomElementUtils.getAttachedPropertyValue(this, 'pacem-dock:state');\n CustomElementUtils.deleteAttachedPropertyValue(this, 'pacem-dock:state');\n const to = 0;\n this.log(LogLevel.Info, `animating back from ${from}px to ${to}px`);\n Utils.removeClass(this, `${PCSS}-dock ${PCSS}-dock-top ${PCSS}-dock-bottom`);\n this._animate(from, to);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDockElement.prototype, \"mode\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemDockElement.prototype, \"dock\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemDockElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDockElement.prototype, \"delay\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDockElement.prototype, \"transitionDuration\", void 0);\nPacemDockElement = __decorate([\n CustomElement({\n tagName: P + '-dock'\n })\n], PacemDockElement);\nexport { PacemDockElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { CustomElementUtils } from '../../utils-customelement';\n//namespace Pacem.Components {\nexport class PacemTransferProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._dom = [];\n this._children = [];\n }\n get dom() {\n return this._children;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.moveContent(this.proxy);\n }\n moveContent(to) {\n if (!Utils.isNull(to)) {\n if (Utils.isNullOrEmpty(this._dom)) {\n this._dom = Utils.moveItems(this.childNodes, to);\n this._children = this._dom.filter(e => e instanceof Element);\n }\n else {\n Utils.moveItems(this._children, to);\n }\n }\n }\n disconnectedCallback() {\n for (let item of (this._dom || []).splice(0)) {\n item.remove();\n }\n super.disconnectedCallback();\n }\n}\n/** Moves its content to the document body and eventually removes it when disconnected. */\nlet PacemBodyProxyElement = class PacemBodyProxyElement extends PacemTransferProxyElement {\n get proxy() {\n return document.body;\n }\n};\nPacemBodyProxyElement = __decorate([\n CustomElement({\n tagName: P + '-body-proxy'\n })\n], PacemBodyProxyElement);\nexport { PacemBodyProxyElement };\n/** Moves its content to the closest shell and eventually removes it when disconnected. */\nlet PacemShellProxyElement = class PacemShellProxyElement extends PacemTransferProxyElement {\n get proxy() {\n return CustomElementUtils.findAncestorShell(this);\n }\n};\nPacemShellProxyElement = __decorate([\n CustomElement({\n tagName: P + '-shell-proxy'\n })\n], PacemShellProxyElement);\nexport { PacemShellProxyElement };\n/** Moves its content to the provided target element. */\nlet PacemElementProxyElement = class PacemElementProxyElement extends PacemTransferProxyElement {\n get proxy() {\n return this.target;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'target' && !first) {\n this.moveContent(this.proxy);\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemElementProxyElement.prototype, \"target\", void 0);\nPacemElementProxyElement = __decorate([\n CustomElement({\n tagName: P + '-element-proxy'\n })\n], PacemElementProxyElement);\nexport { PacemElementProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nclass EmitEvent extends Event {\n constructor(_originalEvent) {\n super('emit');\n this._originalEvent = _originalEvent;\n }\n get originalEvent() {\n return this._originalEvent;\n }\n}\nconst ElementOrWindowConverter = {\n convert: function (attr, element) {\n if (attr === '$window') {\n return window;\n }\n return PropertyConverters.Element.convert(attr, element);\n },\n convertBack: (prop, element) => {\n if (prop === window) {\n return '$window';\n }\n return PropertyConverters.Element.convertBack(prop, element);\n }\n};\nlet PacemEventProxyElement = class PacemEventProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._emitHandler = (evt) => {\n var event = new EmitEvent(evt);\n this.dispatchEvent(event);\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._observe();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'target':\n this._unobserve(old, this.event, this.capture);\n this._observe();\n break;\n case 'event':\n this._unobserve(this.target, old, this.capture);\n this._observe();\n break;\n case 'capture':\n this._unobserve(this.target, this.event, old);\n this._observe();\n break;\n }\n }\n }\n disconnectedCallback() {\n this._unobserve();\n super.disconnectedCallback();\n }\n _unobserve(target = this.target, event = this.event, capture = this.capture) {\n if (Utils.isNull(target) || Utils.isNullOrEmpty(event)) {\n return;\n }\n target.removeEventListener(event, this._emitHandler, { capture });\n }\n _observe(target = this.target, event = this.event, capture = this.capture) {\n if (Utils.isNull(target) || Utils.isNullOrEmpty(event)) {\n return;\n }\n target.addEventListener(event, this._emitHandler, { capture });\n }\n};\n__decorate([\n Watch({ emit: false, converter: ElementOrWindowConverter })\n], PacemEventProxyElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemEventProxyElement.prototype, \"event\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemEventProxyElement.prototype, \"capture\", void 0);\nPacemEventProxyElement = __decorate([\n CustomElement({\n tagName: P + '-event-proxy'\n })\n], PacemEventProxyElement);\nexport { PacemEventProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, LogLevel } from './_default-imports';\nimport { Fetcher, HttpMethod, FetchSuccessEventName, FetchErrorEventName, FetchResultEventName } from '../../net/fetcher';\n//namespace Pacem.Components {\nconst ABORT_MESSAGE = \"New incoming request overrides the ongoing one. Aborting.\";\nlet PacemFetchElement = class PacemFetchElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n /** Gets or sets whether to trigger a fetch whenever a significant property has changed (default: true). */\n this.autofetch = true;\n this.debounce = 100;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._delayAndConditionallyFetch();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // parameters/headers -> in order to avoid unnecessary fetches don't compare byref but term by term in the json\n switch (name) {\n case 'url':\n case 'method':\n case 'type':\n case 'as':\n case 'mode':\n case 'credentials':\n case 'disabled':\n case 'autofetch':\n this._delayAndConditionallyFetch();\n break;\n case 'parameters':\n case 'headers':\n if (!this.diffByValues\n // spare round-trips: compare stringified values.\n // state might be changed, by it's up to the dev to unlock this\n // (i.e. just by calling 'fetch()' directly)\n || Utils.jsonSortStringify(old) != Utils.jsonSortStringify(val)) {\n this._delayAndConditionallyFetch();\n }\n break;\n }\n }\n _delayAndConditionallyFetch() {\n clearTimeout(this._handle);\n if (this.disabled) {\n this._abortPending();\n }\n else if (this.autofetch) {\n this._handle = setTimeout(() => {\n this.fetch();\n }, this.debounce || 0);\n }\n }\n _abortPending() {\n if (this.#aborter) {\n this.#aborter.abort(ABORT_MESSAGE);\n this.#aborter = null;\n }\n }\n #aborter;\n #ongoing;\n /** Returns a promise to a request having an already-consumed response body. */\n fetch() {\n if (this.throttle && this.fetching) {\n // exit\n return this.#ongoing;\n }\n return this.#ongoing = new Promise((resolve, reject) => {\n var url = this.url;\n // any reason to exit now?\n if (!this.isReady || Utils.isNullOrEmpty(url) || this.disabled) {\n resolve(null);\n return;\n }\n // go on...\n let _me = this;\n _me.fetching = true;\n const type = _me.type || 'json';\n let contentType = 'application/json';\n switch (type) {\n case 'raw':\n contentType = 'application/x-www-form-urlencoded';\n break;\n }\n const method = (_me.method || HttpMethod.Get).toUpperCase();\n let options = {\n headers: Utils.extend({ 'Content-Type': contentType }, _me.headers),\n method,\n mode: _me.mode || 'cors',\n credentials: _me.credentials || 'same-origin',\n cache: _me.cache || 'default'\n };\n const parameters = Utils.clone(_me.parameters ?? {});\n // complete a templated url, just in case (and remove params)\n // Note: templated urls might sound pleonastic where you can simply concatenate pieces of string.\n // They become handly in non-controllable autogenerated scenarios (e.g. autogenerated forms) where REST templated urls are involved.\n url = Utils.URIs.format(url, parameters, /* remove matched params if... */ method == \"GET\");\n if (!Utils.isNullOrEmpty(parameters)) {\n switch (method) {\n case 'GET':\n url = Utils.URIs.appendQuery(url, parameters);\n break;\n case 'PUT':\n case 'POST':\n case 'PATCH':\n switch (_me.type) {\n case 'raw':\n let searchParams = new URLSearchParams();\n for (let key in parameters) {\n searchParams.set(key, parameters[key]);\n }\n options.body = searchParams;\n break;\n default:\n options.body = Utils.Json.stringify(parameters);\n break;\n }\n break;\n }\n }\n // mandatory tmpl segments left over?\n if (Utils.URIs.hasMandatoryTemplateSegments(url)) {\n // exit\n resolve(null);\n return;\n }\n this._abortPending();\n const { signal } = this.#aborter = new AbortController();\n options.signal = signal;\n fetch(url, options).then(r => {\n this.#aborter = null;\n _me.fetching = false;\n if (r.ok) {\n this.dispatchEvent(new CustomEvent(FetchSuccessEventName, { detail: r }));\n const empty = Fetcher.isEmpty(r);\n if (empty) {\n switch (_me.as) {\n case 'blob':\n case 'image':\n _me.result = null;\n break;\n case 'text':\n _me.result = null;\n break;\n default:\n _me.result = null;\n break;\n }\n resolve(r);\n }\n else {\n switch (_me.as) {\n case 'blob':\n case 'image':\n r.blob().then(b => {\n if (_me.as === 'image') {\n Utils.blobToDataURL(b).then(i => {\n _me._acceptFetchResult(i);\n });\n }\n else {\n _me._acceptFetchResult(b);\n }\n resolve(r);\n }, _ => {\n this.log(LogLevel.Warn, `Couldn't parse a ${_me.as}. ${_}`);\n resolve(null);\n });\n break;\n case 'text':\n r.text().then(t => {\n _me._acceptFetchResult(t);\n resolve(r);\n });\n break;\n default:\n r.json().then(j => {\n _me._acceptFetchResult(j);\n resolve(r);\n }, _ => {\n this.log(LogLevel.Warn, `Couldn't parse a ${_me.as}. ${_}`);\n resolve(null);\n });\n break;\n }\n }\n }\n else {\n this.dispatchEvent(new CustomEvent(FetchErrorEventName, { detail: r }));\n reject(r);\n }\n }, (reason) => {\n if (typeof reason === 'string' && reason === ABORT_MESSAGE) {\n this.log(LogLevel.Info, reason);\n resolve(null);\n }\n else {\n reject(reason);\n }\n });\n });\n }\n _acceptFetchResult(val) {\n this.dispatchEvent(new CustomEvent(FetchResultEventName, { detail: val }));\n this.result = val;\n }\n};\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"url\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"method\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemFetchElement.prototype, \"parameters\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemFetchElement.prototype, \"headers\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"credentials\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"mode\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"cache\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.BooleanStrict })\n], PacemFetchElement.prototype, \"fetching\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemFetchElement.prototype, \"autofetch\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"as\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemFetchElement.prototype, \"type\", void 0);\n__decorate([\n Watch({ reflectBack: true, converter: PropertyConverters.Number })\n], PacemFetchElement.prototype, \"debounce\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemFetchElement.prototype, \"throttle\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemFetchElement.prototype, \"diffByValues\", void 0);\n__decorate([\n Watch()\n], PacemFetchElement.prototype, \"result\", void 0);\nPacemFetchElement = __decorate([\n CustomElement({ tagName: P + '-fetch' })\n], PacemFetchElement);\nexport { PacemFetchElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, LogLevel } from './_default-imports';\nimport { DefaultComparer } from '../../comparers';\nimport { HistoryService } from '@pacem/pacem-foundation';\nexport class StateEvent extends CustomEvent {\n constructor(type, detail) {\n super(type, { detail });\n }\n}\nlet PacemHistoryElement = class PacemHistoryElement extends PacemEventTarget {\n #history;\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'state':\n this._handleStateChange(val);\n break;\n case 'maxlength':\n const h = this.#history;\n if (!Utils.isNull(h)) {\n h.maxlength = val;\n }\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._handleStateChange();\n }\n _handleStateChange(val = this.state) {\n const history = this.#history;\n if (!Utils.isNull(history)) {\n if (DefaultComparer(history.current, val) !== true) {\n history.push(val);\n this.log(LogLevel.Log, 'Pushed state.');\n this._synchronize('push');\n }\n }\n else {\n this.#history = new HistoryService(val, this.maxlength);\n }\n }\n redo() {\n const h = this.#history;\n if (!Utils.isNull(h)) {\n h.redo();\n this.log(LogLevel.Log, 'Redone state.');\n this._synchronize('redo');\n }\n }\n reset() {\n const h = this.#history;\n if (!Utils.isNull(h)) {\n h.reset();\n this.log(LogLevel.Log, 'Reset state.');\n this._synchronize('reset');\n }\n }\n undo() {\n const h = this.#history;\n if (!Utils.isNull(h)) {\n h.undo();\n this.log(LogLevel.Log, 'Undone state.');\n this._synchronize('undo');\n }\n }\n _synchronize(type) {\n const h = this.#history;\n this.canUndo = h.canUndo;\n this.canRedo = h.canRedo;\n this.state = h.current;\n const { canRedo, canUndo, current: state } = h;\n this.dispatchEvent(new StateEvent(type, { canRedo, canUndo, state }));\n }\n};\n__decorate([\n Watch({ emit: true, converter: PropertyConverters.Json })\n], PacemHistoryElement.prototype, \"state\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemHistoryElement.prototype, \"maxlength\", void 0);\n__decorate([\n Watch({ emit: true, converter: PropertyConverters.Boolean })\n], PacemHistoryElement.prototype, \"canUndo\", void 0);\n__decorate([\n Watch({ emit: true, converter: PropertyConverters.Boolean })\n], PacemHistoryElement.prototype, \"canRedo\", void 0);\nPacemHistoryElement = __decorate([\n CustomElement({ tagName: P + '-history' })\n], PacemHistoryElement);\nexport { PacemHistoryElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemHtmlProxyElement = class PacemHtmlProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._html = document.documentElement;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'attr' && old) {\n this._html.removeAttribute(old);\n }\n this._update();\n }\n _update() {\n const key = this.attr;\n if (Utils.isNullOrEmpty(key) || this.disabled) {\n // No key means do nothing\n return;\n }\n const value = this.value;\n const html = this._html;\n if (Utils.isNullOrEmpty(value)) {\n html.removeAttribute(key);\n }\n else {\n html.setAttribute(key, value);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHtmlProxyElement.prototype, \"attr\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemHtmlProxyElement.prototype, \"value\", void 0);\nPacemHtmlProxyElement = __decorate([\n CustomElement({\n tagName: P + '-html-proxy'\n })\n], PacemHtmlProxyElement);\nexport { PacemHtmlProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemIfElement = class PacemIfElement extends HTMLElement {\n #innerHTML;\n propertyChangedCallback(name, old, val, first) {\n // setup lazily\n if (Utils.isNullOrEmpty(this.#innerHTML)) {\n this.#innerHTML = this.innerHTML;\n }\n if (!val) {\n this.innerHTML = '';\n }\n else {\n this.innerHTML = this.#innerHTML;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemIfElement.prototype, \"match\", void 0);\nPacemIfElement = __decorate([\n CustomElement({ tagName: P + '-if' })\n], PacemIfElement);\nexport { PacemIfElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Watch, Utils, LogLevel } from './_default-imports';\nimport { PacemElement } from './types';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { CustomTypedEvent } from '../../events';\n//namespace Pacem.Components {\nexport class PacemItemElement extends PacemElement {\n get container() {\n return this._container;\n }\n /** @overridable */\n findContainer() {\n return CustomElementUtils.findAncestor(this, n => n instanceof PacemItemsContainerElement);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const container = this._container = this.findContainer();\n if (!Utils.isNull(container)) {\n container.register(this);\n }\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._container)) {\n this._container.unregister(this);\n }\n super.disconnectedCallback();\n }\n}\nexport function isItemsContainer(object) {\n return 'items' in object\n && (Utils.isNull(object.items) || Utils.isArray(object.items))\n && typeof object.register === 'function'\n && typeof object.unregister === 'function';\n}\nexport const ItemRegisterEventName = \"itemregister\";\nexport const ItemUnregisterEventName = \"itemunregister\";\nexport class ItemRegisterEvent extends CustomTypedEvent {\n constructor(item, eventInit) {\n super(ItemRegisterEventName, item, eventInit);\n }\n}\nexport class ItemUnregisterEvent extends CustomTypedEvent {\n constructor(item, eventInit) {\n super(ItemUnregisterEventName, item, eventInit);\n }\n}\nclass ItemsContainerRegistrar {\n constructor(_container) {\n this._container = _container;\n if (_container == null || !(_container instanceof PacemItemsContainerElement || _container instanceof PacemCrossItemsContainerElement)) {\n throw `Must provide a valid itemscontainer.`;\n }\n }\n register(item) {\n const container = this._container;\n var retval = false;\n if (!container.validate(item)) {\n container.logger && container.logger.log(LogLevel.Debug, `${(item && item.localName)} element couldn't be registered in a ${container.localName} element.`);\n }\n else {\n if (Utils.isNull(container.items)) {\n container.items = [item];\n retval = true;\n }\n else if (container.items.indexOf(item) === -1) {\n container.items.push(item);\n retval = true;\n }\n }\n if (retval) {\n container.dispatchEvent(new ItemRegisterEvent(item));\n }\n return retval;\n }\n unregister(item) {\n const container = this._container;\n if (!Utils.isNull(container.items)) {\n const ndx = container.items.indexOf(item);\n if (ndx >= 0) {\n let item = container.items.splice(ndx, 1);\n container.dispatchEvent(new ItemUnregisterEvent(item[0]));\n return true;\n }\n }\n return false;\n }\n}\n/** Element that can be used both as ItemElement and ItemsContainer. */\nexport class PacemCrossItemsContainerElement extends PacemItemElement {\n constructor(role, aria) {\n super(role, aria);\n this._registrar = new ItemsContainerRegistrar(this);\n }\n /**\n * Registers a new item among the items.\n * @param item {TItem} Item to be enrolled\n */\n register(item) {\n return this._registrar.register(item);\n }\n /**\n * Removes an existing element from the items.\n * @param item {TItem} Item to be removed\n */\n unregister(item) {\n return this._registrar.unregister(item);\n }\n}\n__decorate([\n Watch( /* can only be databound or assigned at runtime */)\n], PacemCrossItemsContainerElement.prototype, \"items\", void 0);\nexport class PacemItemsContainerElement extends PacemElement {\n constructor(role, aria) {\n super(role, aria);\n this._registrar = new ItemsContainerRegistrar(this);\n }\n /**\n * Registers a new item among the items.\n * @param item {TItem} Item to be enrolled\n */\n register(item) {\n return this._registrar.register(item);\n }\n /**\n * Removes an existing element from the items.\n * @param item {TItem} Item to be removed\n */\n unregister(item) {\n return this._registrar.unregister(item);\n }\n}\n__decorate([\n Watch( /* can only be databound or assigned at runtime */)\n], PacemItemsContainerElement.prototype, \"items\", void 0);\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Utils, Watch, PropertyConverters } from './_default-imports';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { PacemItemElement, PacemItemsContainerElement } from './items-container';\n//namespace Pacem.Components {\nexport class PacemIterableElement extends PacemItemElement {\n /** @overrides */\n findContainer() {\n return CustomElementUtils.findAncestor(this, n => n instanceof PacemIterativeElement);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n const iter = this.container;\n const index = (iter && iter.items || []).indexOf(this);\n index >= 0\n && iter\n && iter.adapter\n && iter.adapter.itemPropertyChangedCallback(index, name, old, val, first);\n }\n}\nexport class PacemIterativeElement extends PacemItemsContainerElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n // notify the adapter, if any.\n this.adapter && this.adapter.masterPropertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'adapter':\n if (!Utils.isNull(old)) {\n old.destroy();\n }\n if (!Utils.isNull(val)) {\n this.adapter.initialize(this);\n }\n break;\n case 'items':\n if (this.isReady /* connected and DOM-ready */) {\n this._checkIndex();\n }\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._checkIndex();\n }\n _checkIndex() {\n let ndx = 0;\n if (!Utils.isNullOrEmpty(this.items)) {\n if (this.index < this.items.length) {\n ndx = this.index;\n }\n }\n this.index = ndx;\n }\n disconnectedCallback() {\n if (!Utils.isNull(this.adapter))\n this.adapter.destroy();\n super.disconnectedCallback();\n }\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemIterativeElement.prototype, \"adapter\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemIterativeElement.prototype, \"index\", void 0);\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { CustomElementUtils } from '../../utils-customelement';\n//namespace Pacem.Components {\nconst REMOVE_VALUE = 'false';\nconst EMPTY_VALUE = 'true';\nlet PacemLayoutProxyElement = class PacemLayoutProxyElement extends PacemEventTarget {\n #shell;\n connectedCallback() {\n super.connectedCallback();\n this.#shell = CustomElementUtils.findAncestorShell(this);\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n this._update();\n }\n disconnectedCallback() {\n const attr = this.attr;\n if (!Utils.isNullOrEmpty(attr)) {\n this._update(attr, REMOVE_VALUE, false);\n }\n super.disconnectedCallback();\n }\n _update(key = this.attr, value = this.value?.toString(), disabled = this.disabled) {\n if (Utils.isNullOrEmpty(key) || disabled) {\n // No key means do nothing\n return;\n }\n const layout = this.#shell;\n if (!Utils.isNull(layout)) {\n if (Utils.isNullOrEmpty(value) || value === REMOVE_VALUE) {\n layout.removeAttribute(key);\n }\n else {\n layout.setAttribute(key, value === EMPTY_VALUE ? '' : value);\n }\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemLayoutProxyElement.prototype, \"attr\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemLayoutProxyElement.prototype, \"value\", void 0);\nPacemLayoutProxyElement = __decorate([\n CustomElement({\n tagName: P + '-layout-proxy'\n })\n], PacemLayoutProxyElement);\nexport { PacemLayoutProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { Debounce } from '../../decorators';\n//namespace Pacem.Components {\nlet PacemMetaProxyElement = class PacemMetaProxyElement extends PacemEventTarget {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n this._update();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._update();\n }\n _update() {\n const value = this.content;\n const nameBased = !Utils.isNullOrEmpty(this.name);\n const key = nameBased ? this.name : this.itemprop;\n if (Utils.isNullOrEmpty(key) || this.disabled) {\n // No key means do nothing\n return;\n }\n const escapedKey = Utils.cssEscape(key);\n const query = nameBased ? `meta[name='${escapedKey}']` : `meta[itemprop='${escapedKey}']`;\n var meta = document.head.querySelector(query);\n if (Utils.isNull(meta)) {\n meta = document.createElement('meta');\n document.head.appendChild(meta);\n }\n else if (Utils.isNullOrEmpty(value)) {\n // Empty `content` means \"remove the element\".\n meta.remove();\n return;\n }\n // set\n meta.setAttribute(\"content\", value);\n meta.setAttribute(nameBased ? \"name\" : \"itemprop\", key);\n meta.removeAttribute(nameBased ? \"itemprop\" : \"name\");\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMetaProxyElement.prototype, \"name\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMetaProxyElement.prototype, \"itemprop\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemMetaProxyElement.prototype, \"content\", void 0);\n__decorate([\n Debounce(true)\n], PacemMetaProxyElement.prototype, \"_update\", null);\nPacemMetaProxyElement = __decorate([\n CustomElement({\n tagName: P + '-meta-proxy'\n })\n], PacemMetaProxyElement);\nexport { PacemMetaProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemOnlineStatusElement = class PacemOnlineStatusElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._onlineHandler = (evt) => {\n if (!Utils.isNull(evt)) {\n this.online = evt.type === 'online';\n }\n else {\n this.online = navigator.onLine || false;\n }\n };\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('online', this._onlineHandler, false);\n window.addEventListener('offline', this._onlineHandler, false);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._onlineHandler();\n }\n disconnectedCallback() {\n window.removeEventListener('online', this._onlineHandler, false);\n window.removeEventListener('offline', this._onlineHandler, false);\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemOnlineStatusElement.prototype, \"online\", void 0);\nPacemOnlineStatusElement = __decorate([\n CustomElement({ tagName: P + '-online-status' })\n], PacemOnlineStatusElement);\nexport { PacemOnlineStatusElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P } from './_default-imports';\nimport { PacemSafeContentElement } from './types';\n//namespace Pacem.Components {\nlet PacemPanelElement = class PacemPanelElement extends PacemSafeContentElement {\n};\nPacemPanelElement = __decorate([\n CustomElement({ tagName: P + '-panel' })\n], PacemPanelElement);\nexport { PacemPanelElement };\n//}\n","/// <reference path=\"events.ts\" />\nimport { CustomTypedEvent } from './events';\n//namespace Pacem {\nexport const CommandEventName = 'command';\nexport class CommandEvent extends CustomTypedEvent {\n constructor(args) {\n super(CommandEventName, args, { bubbles: true, cancelable: true });\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters } from './_default-imports';\nimport { TemplateElement } from '../../template';\n//namespace Pacem.Components {\nlet PacemTemplateProxyElement = class PacemTemplateProxyElement extends /*PacemEventTarget*/ /*PacemEventTarget*/ TemplateElement {\n propertyChangedCallback(name, old, val, first) {\n // super.propertyChangedCallback(name, old, val, first);\n if (name === 'target') {\n this.dispatchEvent(new Event('templatechange'));\n }\n }\n addEventListener(type, listener, options) {\n super.addEventListener(type, listener, options);\n }\n removeEventListener(type, listener, options) {\n super.removeEventListener(type, listener, options);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemTemplateProxyElement.prototype, \"target\", void 0);\nPacemTemplateProxyElement = __decorate([\n CustomElement({ tagName: P + '-template-proxy' })\n], PacemTemplateProxyElement);\nexport { PacemTemplateProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PacemRepeaterElement_1;\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, LogLevel } from './_default-imports';\nimport { CustomElementUtils, RepeaterItem as RepeaterItemBase } from '../../utils-customelement';\nimport { CustomTypedEvent, PropertyChangeEvent } from '../../events';\nimport { INSTANCE_HOST_VAR } from '../../types';\nimport { CommandEventName } from '../../command';\nimport { RepeaterItemCreateEvent, RepeaterItemRemoveEvent } from './types';\nimport { PacemTemplateProxyElement } from './template-proxy';\n//namespace Pacem.Components {\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nclass ItemEvent extends CustomTypedEvent {\n constructor(type, args, _originalEvent) {\n super(type, args, { bubbles: false, cancelable: true });\n this._originalEvent = _originalEvent;\n }\n /** Gets the bubbling item's Event. */\n get srcEvent() {\n return this._originalEvent;\n }\n}\nexport class ItemCommandEvent extends ItemEvent {\n constructor(evt) {\n super(\"item\" + CommandEventName, evt.detail, evt);\n }\n}\nexport class CustomItemCommandEvent extends ItemEvent {\n constructor(evt) {\n super(\"item\" + evt.detail.commandName.toLowerCase(), evt.detail.commandArgument, evt);\n }\n}\n//\n/**\n * <pacem-repeater datasource=\"[{id:'first', items:['a','b','c']}, ...]\">\n * <ol>\n * <li>\n * <template>\n * <pacem-repeater datasource={{ ^item.items }}>\n * <template>\n * <pacem-span text=\"{{ ^^item.id+': ': ^item.toUpperCase() }}\"></pacem-span>\n * </template>\n * </pacem-repeater>\n * </template>\n * </li>\n * </ol>\n * </pacem-repeater>\n */\nlet PacemRepeaterElement = PacemRepeaterElement_1 = class PacemRepeaterElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._childItems = [];\n this._fragment = document.createDocumentFragment();\n this._setupItem = (item, index, entity) => {\n // FIRST set index on PacemRepeaterItemElement...\n item.index = index;\n // ...THEN the item entity itself.\n item.item = entity;\n };\n this._refreshItemTemplateHandler = (evt) => {\n const proxy = evt.target;\n this._itemTemplate = proxy.target;\n this._databind();\n };\n }\n removeItem(index) {\n this._removeItems(index, index);\n }\n _setItem(item, index, frag) {\n const items = this._childItems;\n let _item;\n if (index >= items.length) {\n _item = new RepeaterItem(this, this._itemTemplate, frag, this._childTemplatePlaceholder);\n this._setupItem(_item, index, item);\n items.push(_item);\n _item.append();\n }\n else {\n _item = items[index];\n this._setupItem(_item, index, item);\n _item.redrawEventually(this._itemTemplate, frag);\n }\n this.dispatchEvent(new RepeaterItemCreateEvent(_item));\n }\n _removeItems(fromIndex, toIndex) {\n const items = this._childItems;\n let exceeding = items.splice(fromIndex, toIndex + 1 - fromIndex);\n for (var i = exceeding.length - 1; i >= 0; i--) {\n let item = exceeding[i];\n this.dispatchEvent(new RepeaterItemRemoveEvent(item));\n item.remove();\n }\n }\n databind() {\n this._databind();\n }\n // @Debounce(true)\n _databind(datasource = this.datasource) {\n // not connected to the DOM? exit\n if (!this.isConnected) {\n return;\n }\n // no template? fail.\n let tmpl = this._itemTemplate, holder = this._childTemplatePlaceholder;\n if (tmpl == null) {\n throw `Missing template element in ${PacemRepeaterElement_1.name}.`;\n }\n // fill up\n let items = this._childItems, index = 0;\n try {\n for (var entity of datasource || []) {\n this._setItem(entity, index, this._fragment);\n index++;\n }\n }\n catch (e) {\n this.log(LogLevel.Error, e);\n }\n if (index < items.length) {\n this._removeItems(index, items.length - 1);\n }\n else if (!Utils.isNull(holder && holder.parentNode)) {\n // flush added items\n holder.parentNode.insertBefore(this._fragment, holder);\n }\n }\n _onCommand(evt) {\n // DO NOT stop bubbling! Might be 'handy' in autogenerated forms...\n // Pacem.stopPropagationHandler(evt);\n // ...But might lead to unwanted behaviors in nested repeaters.\n // Thus include the 'originalEvent' in the outscoped one as a read-only property.\n // 'itemcommand' event fires first\n this.dispatchEvent(new ItemCommandEvent(/* 'originalEvent' */ evt));\n // custom 'item<cmd>' event fires next\n this.dispatchEvent(new CustomItemCommandEvent(/* 'originalEvent' */ evt));\n }\n _buildupItemTemplate() {\n let tmpl = CustomElementUtils.findFirstDescendant(this, n => n instanceof HTMLTemplateElement || n instanceof PacemTemplateProxyElement);\n if (tmpl instanceof PacemTemplateProxyElement) {\n tmpl.addEventListener('templatechange', this._refreshItemTemplateHandler, false);\n this._childTemplatePlaceholder = tmpl;\n return this._itemTemplate = tmpl.target;\n }\n else {\n return this._itemTemplate = this._childTemplatePlaceholder = tmpl;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this.addEventListener(CommandEventName, this._onCommand, false);\n if (this._buildupItemTemplate()) {\n this._databind();\n }\n }\n disconnectedCallback() {\n const oldPlaceholder = this._childTemplatePlaceholder;\n if (!Utils.isNull(oldPlaceholder) && oldPlaceholder instanceof PacemTemplateProxyElement) {\n oldPlaceholder.removeEventListener('templatechange', this._refreshItemTemplateHandler, false);\n }\n this.removeEventListener(CommandEventName, this._onCommand, false);\n this.datasource = [];\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'datasource':\n if (!Utils.isNull(this._itemTemplate)) {\n this._databind(val);\n }\n break;\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Eval })\n], PacemRepeaterElement.prototype, \"datasource\", void 0);\nPacemRepeaterElement = PacemRepeaterElement_1 = __decorate([\n CustomElement({ tagName: P + '-repeater' })\n], PacemRepeaterElement);\nexport { PacemRepeaterElement };\nexport class RepeaterItem extends RepeaterItemBase {\n constructor(_repeater, _template, _fragment, _holder) {\n super(document.createComment('pacem-repeater-item'));\n this._repeater = _repeater;\n this._template = _template;\n this._fragment = _fragment;\n this._holder = _holder;\n this._alterEgos = [];\n const FIELD_PREFIX = '_';\n function _setScopeValue(name, v) {\n var owner = this, fieldName = FIELD_PREFIX + name;\n if (v !== owner[fieldName]) {\n var old = owner[fieldName];\n owner[fieldName] = v;\n var evt = new PropertyChangeEvent({ propertyName: name, oldValue: old, currentValue: v });\n owner.dispatchEvent(evt);\n }\n }\n // placeholder on roids:\n let placeholder = this.placeholder;\n Object.defineProperties(placeholder, {\n 'item': {\n get: function () {\n return this[FIELD_PREFIX + 'item'];\n },\n set: function (v) {\n _setScopeValue.apply(placeholder, ['item', v]);\n }, configurable: true\n },\n 'index': {\n get: function () {\n const val = this[FIELD_PREFIX + 'index'];\n return Utils.isNull(val) ? -1 : val;\n },\n set: function (v) {\n _setScopeValue.apply(placeholder, ['index', v]);\n }, configurable: true\n }\n });\n }\n /** @internal */\n append() {\n const tmplRef = this._template, tmplParent = this._fragment;\n this._alterEgos.push(tmplParent.appendChild(this.placeholder));\n const clonedTmpl = tmplRef.cloneNode(true);\n var host;\n if (!Utils.isNull(host = GET_VAL(this._repeater, INSTANCE_HOST_VAR))) {\n CustomElementUtils.assignHostContext(host, clonedTmpl);\n }\n var dom = clonedTmpl.content. /*children*/childNodes;\n Array.prototype.push.apply(this._alterEgos, dom);\n tmplParent.appendChild(clonedTmpl.content);\n }\n /** @internal */\n redrawEventually(tmpl, frag) {\n if (tmpl === this._template) {\n return;\n }\n this._fragment = frag;\n this._template = tmpl;\n const tmplParent = this._holder.parentElement, dom = this._alterEgos;\n while (dom.length > 0) {\n tmplParent.removeChild(dom.pop());\n }\n this.append();\n }\n get dom() {\n return this._alterEgos.filter(n => !(n instanceof Comment || n instanceof Text));\n }\n get repeater() {\n return this._repeater;\n }\n /** @internal */\n remove() {\n let tmplParent = this._holder.parentElement;\n for (var alterEgo of this._alterEgos) {\n if (alterEgo.parentElement === tmplParent && !Utils.isNull(tmplParent)) {\n tmplParent.removeChild(alterEgo);\n }\n }\n }\n get index() {\n return this.placeholder['index'];\n }\n set index(v) {\n this.placeholder['index'] = v;\n }\n get item() {\n return this.placeholder['item'];\n }\n set item(v) {\n this.placeholder['item'] = v;\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils, LogLevel } from './_default-imports';\nimport { CustomTypedEvent } from '../../events';\n//namespace Pacem.Components {\nexport const ResizeEventName = 'resize';\nexport class ResizeEvent extends CustomTypedEvent {\n constructor(args) {\n super(ResizeEventName, args);\n }\n}\nconst BORDER_BOX = { box: 'border-box' };\nlet PacemResizeElement = class PacemResizeElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._checkSizeHandler = () => {\n this._assignSizeDebounced();\n };\n }\n get _target() {\n return this.target || this;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'disabled':\n this._start();\n break;\n case 'target':\n if (!Utils.isNull(this._observer)) {\n var oldTarget = old || this;\n this._observer.unobserve(oldTarget);\n }\n case 'watchPosition':\n var newTarget = this.target || this;\n if (!Utils.isNull(this._observer)) {\n this._observer.observe(newTarget, BORDER_BOX);\n }\n break;\n }\n }\n _start() {\n // disabled? switch to stop\n if (this.disabled) {\n this._stop();\n return;\n }\n if (this.watchPosition) {\n this._startWatchIntensively();\n }\n else {\n // native ResizeObserver\n this._observer = new ResizeObserver(entries => {\n var changed = false;\n for (let entry of entries) {\n if (entry.target !== this._target) {\n continue;\n }\n if (entry.contentRect) {\n changed = true;\n break;\n }\n }\n if (changed) {\n // ResizeObserverEntry pieces of info aren't accurate,\n // but useful enough to let punctually debounce\n // the expensive request\n this._assignSizeDebounced();\n }\n });\n this._observer.observe(this._target, BORDER_BOX);\n }\n window.addEventListener('resize', this._checkSizeHandler, false);\n }\n _stop() {\n window.cancelAnimationFrame(this._handle);\n window.removeEventListener('resize', this._checkSizeHandler, false);\n if (!Utils.isNull(this._observer)) {\n this._observer.disconnect();\n this._observer = null;\n }\n }\n _startWatchIntensively() {\n this._checkSize();\n this._handle = window.requestAnimationFrame(() => {\n this._startWatchIntensively();\n });\n }\n //@Throttle(true)\n _assignSizeDebounced() {\n this._checkSize();\n }\n _checkSize() {\n this.log(LogLevel.Log, 'Resize flow triggered.');\n let el = this._target;\n const rect = Utils.offset(el);\n let height = rect.height;\n let width = rect.width;\n if (height != this._previousHeight\n || width != this._previousWidth\n || (this.watchPosition &&\n (rect.left != this._previousLeft\n || rect.top != this._previousTop))) {\n this._previousHeight = height;\n this._previousWidth = width;\n this._previousLeft = rect.left;\n this._previousTop = rect.top;\n this._dispatchResize();\n }\n }\n get currentSize() {\n var args = { height: this._previousHeight, width: this._previousWidth };\n if (this.watchPosition) {\n args.left = this._previousLeft;\n args.top = this._previousTop;\n }\n return args;\n }\n _dispatchResize() {\n this.dispatchEvent(new ResizeEvent(this.currentSize));\n }\n connectedCallback() {\n super.connectedCallback();\n this._start();\n }\n disconnectedCallback() {\n this._stop();\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemResizeElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemResizeElement.prototype, \"watchPosition\", void 0);\nPacemResizeElement = __decorate([\n CustomElement({ tagName: P + '-resize' })\n], PacemResizeElement);\nexport { PacemResizeElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, PacemEventTarget, Watch, P, PropertyConverters, Utils } from './_default-imports';\nimport { CustomTypedEvent } from '../../events';\n//namespace Pacem {\nexport const RouterNavigatingEventName = 'navigating';\nexport const RouterNavigateEventName = 'navigate';\nexport class RouterNavigateEvent extends CustomTypedEvent {\n constructor(path) {\n super(RouterNavigateEventName, typeof path === 'string' ? { path } : path, { cancelable: false, bubbles: false });\n }\n}\nexport class RouterNavigatingEvent extends CustomTypedEvent {\n constructor(path) {\n super(RouterNavigatingEventName, path, { cancelable: true, bubbles: false });\n }\n}\n//}\n//namespace Pacem.Components {\nconst CHECK_PATTERN = /^([\\w\\.]:)?\\/\\/[^\\/]+/;\nlet PacemRouterElement = class PacemRouterElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._onPopState = (evt) => {\n if (!Utils.isNull(evt.state) && !this.#cancelingNavigation) {\n this.path = evt.state.$path;\n }\n };\n }\n #cancelingNavigation;\n #template;\n parseState(state = {}) {\n const path = this._stringifyMergedState(state);\n const segments = this._segmentateUrl(path);\n return this._parseState(segments.path + segments.query + segments.hash, segments.path, segments.query, segments.hash);\n }\n navigate(path, title) {\n if (this.disabled || Utils.isNullOrEmpty(path)) {\n return;\n }\n if (typeof path === 'object') {\n path = this._stringifyMergedState(path);\n }\n else {\n // ease state reutilization\n path = Utils.URIs.format(path, this.state);\n }\n if (path != this.path) {\n this.path = path;\n return;\n }\n const l = document.location;\n if (CHECK_PATTERN.test(path)) {\n if (!path.startsWith(l.protocol + '//' + l.host)) {\n throw `Only same-origin navigation is currently supported. \"${path}\" is not a valid path.`;\n }\n }\n if (!this.#cancelingNavigation) {\n // coming from path...\n const from = this.state && this.state.$path || void 0;\n // processing new segments and state\n const segments = this._segmentateUrl(path), state = this._parseState(segments.path + segments.query + segments.hash, segments.path, segments.query, segments.hash);\n // popping state? aka history.back()/.forward()/.go(...)?\n // means that the URL is already in the target fashion\n const poppingState = (l.pathname + l.search + l.hash) === segments.path + segments.query + segments.hash;\n const evt = new RouterNavigatingEvent(path);\n window.dispatchEvent(evt);\n if (this.#cancelingNavigation = evt.defaultPrevented) {\n // this will cut the history stack, no better option tho...\n if (poppingState) {\n // re-push current state\n window.history.pushState(this.state, title, from);\n }\n this.path = from;\n // exiting\n return;\n }\n // this one actually does trigger the navigation in the outer world\n this.state = state;\n if (poppingState) {\n window.history.scrollRestoration = 'manual';\n window.history.replaceState(state, title);\n }\n else {\n window.history.pushState(state, title, path);\n }\n if (!Utils.isNullOrEmpty(title)) {\n document.title = title;\n }\n window.dispatchEvent(new RouterNavigateEvent({ path, referrer: from, title }));\n }\n this.#cancelingNavigation = false;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'template':\n this.#template = null;\n break;\n case 'path':\n this.navigate(val);\n break;\n }\n }\n }\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('popstate', this._onPopState, false);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const p = this.path;\n if (!Utils.isNullOrEmpty(p)) {\n this.navigate(p);\n }\n }\n disconnectedCallback() {\n window.removeEventListener('popstate', this._onPopState, false);\n super.disconnectedCallback();\n }\n /**\n * Merged to provided state into the current one and returns the resulting path (including current querystring and hash).\n * @param state Piece of new state to be merged\n */\n _stringifyMergedState(state) {\n const stateCopy = Utils.extend({}, state);\n const newState = Utils.extend({}, this.state, stateCopy);\n const tmpl = this.template;\n let retval = '' + tmpl;\n for (let item of this._parseTemplate(tmpl)) {\n const prop = item.name;\n const pattern = new RegExp(\"\\/\\{\" + prop + \"\\\\??\\}\");\n const value = newState[prop];\n delete stateCopy[prop];\n retval = retval.replace(pattern, Utils.isNullOrEmpty(value) ? '' : ('/' + value));\n }\n // leftovers appended as query parameters\n const q = Utils.extend({}, this.state.$query);\n for (let prop in stateCopy) {\n q[prop] = stateCopy[prop];\n }\n const { hash } = this._segmentateUrl(this.path);\n return Utils.URIs.appendQuery(retval, q, true) + hash;\n }\n _parseTemplate(tmpl = this.template) {\n if (!Utils.isNullOrEmpty(this.#template)) {\n return this.#template;\n }\n return this.#template = Utils.URIs.parseRoute(tmpl);\n }\n _segmentateUrl(url) {\n const retval = Utils.URIs.split(url);\n if (Utils.isNullOrEmpty(retval.path)) {\n return null;\n }\n return retval;\n }\n _parseState(fullPath, path, query, hash) {\n const tmpl = this._parseTemplate();\n return Utils.URIs.parseState(tmpl, fullPath, path, query, hash);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemRouterElement.prototype, \"template\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Eval })\n], PacemRouterElement.prototype, \"state\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemRouterElement.prototype, \"path\", void 0);\nPacemRouterElement = __decorate([\n CustomElement({ tagName: P + '-router' })\n], PacemRouterElement);\nexport { PacemRouterElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { CustomTypedEvent } from '../../events';\n//namespace Pacem.Components {\nexport const ScrollEventName = 'scroll';\nexport class ScrollEvent extends CustomTypedEvent {\n constructor(args) {\n super(ScrollEventName, args);\n }\n}\n// see also viewport-aware\nclass PacemScrollOrchestrator {\n constructor(global) {\n this.global = global;\n this.scrollers = [];\n this.scrollHandler = (evt) => {\n this._scroll(evt);\n };\n }\n register(vport) {\n const scrlls = this.scrollers;\n if (scrlls.indexOf(vport) === -1) {\n scrlls.push(vport);\n if (scrlls.length === 1) {\n this.global.addEventListener('scroll', this.scrollHandler, false);\n }\n this._scroll();\n }\n }\n unregister(vport) {\n var ndx;\n const scrlls = this.scrollers;\n if ((ndx = scrlls.indexOf(vport)) !== -1) {\n scrlls.splice(ndx, 1);\n if (scrlls.length === 0) {\n this.global.removeEventListener('scroll', this.scrollHandler, false);\n }\n }\n }\n _scroll(_) {\n for (var scroller of this.scrollers) {\n if (Utils.isNull(scroller.target)) {\n const top = Utils.scrollTop, left = Utils.scrollLeft;\n scroller.offset = { top, left };\n }\n else {\n const top = scroller.target.scrollTop, left = scroller.target.scrollLeft;\n scroller.offset = { top, left };\n }\n scroller.dispatchEvent(new ScrollEvent(scroller.offset));\n }\n }\n}\nconst ORCHESTRATOR = new PacemScrollOrchestrator(window);\n/**\n * Manages scrolling interactions firing self-referenced ad-hoc events.\n */\nlet PacemScrollAwareElement = class PacemScrollAwareElement extends PacemEventTarget {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n //\n ORCHESTRATOR.register(this);\n }\n disconnectedCallback() {\n ORCHESTRATOR.unregister(this);\n //\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Element })\n], PacemScrollAwareElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Json })\n], PacemScrollAwareElement.prototype, \"offset\", void 0);\nPacemScrollAwareElement = __decorate([\n CustomElement({\n tagName: P + '-scroll-aware'\n })\n], PacemScrollAwareElement);\nexport { PacemScrollAwareElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nfunction base64ToUint8Array(base64) {\n const padding = '='.repeat((4 - base64.length % 4) % 4);\n base64 = (base64 + /*ensure correct length*/ padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n const rawData = window.atob(base64);\n const output = new Uint8Array(rawData.length);\n for (var i = 0; i < rawData.length; i++) {\n output[i] = rawData.charCodeAt(i);\n }\n return output;\n}\nlet PacemServiceWorkerProxyElement = class PacemServiceWorkerProxyElement extends PacemEventTarget {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._tryRegister();\n }\n disconnectedCallback() {\n this._tryUnregister();\n super.disconnectedCallback();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'pushSubscription':\n if (!Utils.isNull(old)) {\n this.dispatchEvent(new CustomEvent('unsubscribe', { detail: old }));\n }\n if (!Utils.isNull(val)) {\n this.dispatchEvent(new CustomEvent('subscribe', { detail: val }));\n }\n break;\n case 'registration':\n if (!Utils.isNull(old)) {\n this.dispatchEvent(new CustomEvent('unregister', { detail: old }));\n }\n if (!Utils.isNull(val)) {\n this.dispatchEvent(new CustomEvent('register', { detail: val }));\n }\n break;\n }\n }\n _tryUnregister(reg = this.registration) {\n if (!Utils.isNull(reg)) {\n return reg.unregister();\n }\n return Promise.resolve(true);\n }\n _tryRegister(src = this.src) {\n this._tryUnregister().then(_ => {\n // register new sw\n if (!Utils.isNullOrEmpty(src) && 'serviceWorker' in navigator) {\n navigator.serviceWorker.register(src)\n .then(reg => {\n this.registration = reg;\n if ('PushManager' in window) {\n reg.pushManager.getSubscription().then(sub => {\n this.pushSubscription = sub;\n });\n }\n });\n }\n });\n }\n unsubscribe(subscription = this.pushSubscription) {\n return new Promise((resolve, reject) => {\n if (!Utils.isNull(subscription)) {\n const refresh = subscription === this.pushSubscription;\n subscription.unsubscribe().then(result => {\n if (refresh) {\n // triggers 'unsubscribe' event\n this.pushSubscription = null;\n }\n resolve(result);\n });\n }\n else {\n resolve(false);\n }\n });\n }\n subscribe(publicKey = this.publicKey) {\n return new Promise((resolve, reject) => {\n if (typeof publicKey === 'string') {\n publicKey = base64ToUint8Array(publicKey);\n }\n const push = this.registration?.pushManager;\n if (!Utils.isNull(push)) {\n push.subscribe({\n userVisibleOnly: true,\n applicationServerKey: publicKey\n }).then(subscription => {\n if (Notification.permission === 'denied') {\n resolve(this.pushSubscription = null);\n }\n else {\n resolve(/* triggers 'subscribe' event */ this.pushSubscription = subscription);\n }\n });\n }\n else {\n // no PushManager available\n resolve(null);\n }\n });\n }\n};\n__decorate([\n Watch()\n], PacemServiceWorkerProxyElement.prototype, \"registration\", void 0);\n__decorate([\n Watch()\n], PacemServiceWorkerProxyElement.prototype, \"pushSubscription\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServiceWorkerProxyElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemServiceWorkerProxyElement.prototype, \"publicKey\", void 0);\nPacemServiceWorkerProxyElement = __decorate([\n CustomElement({ tagName: P + '-serviceworker-proxy' })\n], PacemServiceWorkerProxyElement);\nexport { PacemServiceWorkerProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { avoidHandler } from '../../utils';\nimport { CustomEventUtils } from '../../utils-customevent';\n//namespace Pacem.Components {\nconst KEYEVT = \"keydown\";\nfunction matchesKeyCombination(evt, combo, accumulator = []) {\n if (Utils.isNullOrEmpty(combo)) {\n return false;\n }\n const modifierPattern = /(\\w+)\\s*\\+/;\n const modifiers = [];\n let regExc;\n while (!Utils.isNullOrEmpty(regExc = modifierPattern.exec(combo))) {\n combo = combo.substr(regExc.index + regExc[0].length);\n modifiers.push(regExc[1]);\n }\n if (!CustomEventUtils.matchModifiers(evt, modifiers)) {\n return false;\n }\n const pieces = combo.split(',').map(p => p.trim().toLowerCase());\n if (Utils.isNullOrEmpty(pieces)) {\n // bad combination format\n return false;\n }\n var char = evt.key.toLowerCase();\n if (charEquals(char, pieces[accumulator.length])) {\n accumulator.push(char);\n return accumulator.length == pieces.length ? true : \"ongoing\";\n }\n return false;\n}\nfunction charEquals(key, piece) {\n return key === piece\n // adjust some aliases\n || (key === \"escape\" && piece === \"esc\")\n || (key === \"backspace\" && piece === \"back\")\n || (key === \"control\" && piece === \"ctrl\")\n || (key === \"delete\" && (piece === \"del\" || piece === \"canc\"))\n || (/^arrow/.test(key) && (piece === key.substr(5)));\n}\nexport const KeyboardShortcutExecuteEventName = \"execute\";\nlet PacemShortcutElement = class PacemShortcutElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this._accumulator = [];\n this._shortcutHandler = (evt) => {\n const result = (matchesKeyCombination(evt, this.combination, this._accumulator));\n switch (result) {\n case true:\n avoidHandler(evt);\n this.dispatchEvent(new Event(KeyboardShortcutExecuteEventName, { bubbles: false, cancelable: false }));\n // let flow below...\n case false:\n this._accumulator.splice(0);\n break;\n }\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._addHandler();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'target' && !first) {\n this._removeHandler(old);\n this._addHandler(val);\n }\n }\n disconnectedCallback() {\n this._removeHandler();\n super.disconnectedCallback();\n }\n _removeHandler(target = this.target) {\n (target || window).removeEventListener(KEYEVT, this._shortcutHandler, false);\n }\n _addHandler(target = this.target) {\n (target || window).addEventListener(KEYEVT, this._shortcutHandler, false);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemShortcutElement.prototype, \"combination\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemShortcutElement.prototype, \"target\", void 0);\nPacemShortcutElement = __decorate([\n CustomElement({ tagName: P + '-shortcut' })\n], PacemShortcutElement);\nexport { PacemShortcutElement };\n;\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils } from './_default-imports';\nimport { PacemSafeContentElement } from './types';\n//namespace Pacem.Components {\nlet PacemSpanElement = class PacemSpanElement extends PacemSafeContentElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'text' && !first) {\n this.textContent = val;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n if (!Utils.isNull(this.text)) {\n this.textContent = this.text;\n }\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemSpanElement.prototype, \"text\", void 0);\nPacemSpanElement = __decorate([\n CustomElement({ tagName: P + '-span' })\n], PacemSpanElement);\nexport { PacemSpanElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils, PacemEventTarget } from './_default-imports';\nimport { CustomElementUtils } from '../../utils-customelement';\n//namespace Pacem.Components {\nlet PacemStyleProxyElement = class PacemStyleProxyElement extends PacemEventTarget {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'cssText':\n if (!Utils.isNull(this._style)) {\n this.cssReady = false;\n this._style.textContent = val;\n if (Utils.isNullOrEmpty(val)) {\n this.cssReady = true;\n }\n else {\n this._idleWhileReady();\n }\n }\n break;\n case 'disabled':\n case 'src':\n this._fetch();\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n const style = this._style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n document.head.appendChild(style);\n this._fetch();\n }\n disconnectedCallback() {\n if (!Utils.isNull(this._style)) {\n this._style.remove();\n }\n super.disconnectedCallback();\n }\n _idleWhileReady() {\n let css = this._style.sheet;\n let fn = () => {\n try {\n if (css.cssRules.length > 0) {\n clearInterval(handle);\n CustomElementUtils.Theme.importWebFonts().then(_ => {\n this.cssReady = true;\n this.dispatchEvent(new Event('cssready'));\n });\n }\n }\n catch (e) { }\n };\n let handle = setInterval(fn, 100);\n }\n _fetch() {\n const src = this.src, style = this._style;\n if (this.disabled || Utils.isNull(style)) {\n return;\n }\n if (Utils.isNullOrEmpty(src)) {\n style.textContent = this.cssText || '';\n }\n else {\n // fetching\n this.cssReady = false;\n fetch(src).then(resp => {\n resp.text().then(css => {\n style.textContent = css;\n this._idleWhileReady();\n }, _ => {\n // error\n this.cssReady = true;\n });\n }, _ => {\n // error\n this.cssReady = true;\n });\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemStyleProxyElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemStyleProxyElement.prototype, \"cssText\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemStyleProxyElement.prototype, \"cssReady\", void 0);\nPacemStyleProxyElement = __decorate([\n CustomElement({\n tagName: P + '-style-proxy'\n })\n], PacemStyleProxyElement);\nexport { PacemStyleProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemTextElement = class PacemTextElement extends HTMLElement {\n constructor() {\n super();\n }\n connectedCallback() {\n if (this.childNodes.length == 0) {\n this.innerHTML = '&nbsp;';\n }\n this._text = this.childNodes.item(0);\n }\n propertyChangedCallback(name, old, val, first) {\n if (Utils.isNull(val) && first === true)\n return;\n this._text.nodeValue = val;\n }\n};\n__decorate([\n Watch({ emit: false /*, debounce: true*/, converter: PropertyConverters.String })\n], PacemTextElement.prototype, \"text\", void 0);\nPacemTextElement = __decorate([\n CustomElement({ tagName: P + '-text' })\n], PacemTextElement);\nexport { PacemTextElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemTimerElement = class PacemTimerElement extends PacemEventTarget {\n constructor() {\n super();\n this._handle = 0;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'interval':\n case 'disabled':\n this._restart();\n break;\n }\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._restart();\n }\n disconnectedCallback() {\n window.clearInterval(this._handle);\n super.disconnectedCallback();\n }\n _restart() {\n clearInterval(this._handle);\n if (!this.disabled && this.interval > 0) {\n this._handle = window.setInterval(() => {\n this.dispatchEvent(new Event(\"tick\", { bubbles: false, cancelable: false }));\n }, this.interval);\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTimerElement.prototype, \"interval\", void 0);\nPacemTimerElement = __decorate([\n CustomElement({ tagName: P + '-timer' })\n], PacemTimerElement);\nexport { PacemTimerElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemTitleProxyElement = class PacemTitleProxyElement extends PacemEventTarget {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n this._update();\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._update();\n }\n _update() {\n const value = this.value;\n if (Utils.isNullOrEmpty(value) || this.disabled) {\n // No key means do nothing\n return;\n }\n document.title = value;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemTitleProxyElement.prototype, \"value\", void 0);\nPacemTitleProxyElement = __decorate([\n CustomElement({\n tagName: P + '-title-proxy'\n })\n], PacemTitleProxyElement);\nexport { PacemTitleProxyElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget, LogLevel } from './_default-imports';\nimport { TweenService } from '../../animations/tween-service';\nimport { AnimationEvent as PacemAnimationEvent, AnimationStartEvent, AnimationEndEvent } from '../../animations/events';\n//namespace Pacem.Components {\nlet PacemTweenElement = class PacemTweenElement extends PacemEventTarget {\n constructor(_tweener = new TweenService()) {\n super();\n this._tweener = _tweener;\n this.duration = 1000;\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (name === 'start') {\n if (val === true && this.disabled != true)\n this._animate();\n }\n }\n run() {\n return this._animate();\n }\n _animate() {\n var started = false;\n return this._tweener.run(this.from, this.to, this.duration, this.delay, this.easing, (time, value) => {\n started = started == false && this.dispatchEvent(new AnimationStartEvent());\n this.dispatchEvent(new PacemAnimationEvent({ time: time, value: this.value = value }));\n this.log(LogLevel.Info, 'value: ' + this.value);\n if (time == 1.0) {\n this.dispatchEvent(new AnimationEndEvent());\n // reset start property\n this.start = false; // <- will trigger the animation the next time that will be set to true\n }\n });\n }\n};\n__decorate([\n Watch({ emit: false })\n], PacemTweenElement.prototype, \"easing\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"to\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"duration\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"delay\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemTweenElement.prototype, \"start\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.Number })\n], PacemTweenElement.prototype, \"value\", void 0);\nPacemTweenElement = __decorate([\n CustomElement({ tagName: P + '-tween' })\n], PacemTweenElement);\nexport { PacemTweenElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, Watch, PropertyConverters, PacemEventTarget, Utils, PCSS } from './_default-imports';\nimport { Debounce } from '../../decorators';\n//namespace Pacem.Components {\n// TODO: go native with IntersectionObserver \n// https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n// TODO: elementify the concept of an ochestrator\n// see also scroll-aware\n/** @deprecated */\nclass PacemViewportOrchestrator {\n constructor(_global) {\n this._global = _global;\n this.viewports = [];\n this._checkHandler = (evt) => {\n this._oncheck(evt);\n };\n }\n register(vport) {\n const vports = this.viewports, win = this._global;\n if (vports.indexOf(vport) === -1) {\n vports.push(vport);\n if (vports.length === 1) {\n // TODO: check against overflow: 'auto' | 'scroll' elements with constrained heights/widths...\n win.addEventListener('resize', this._checkHandler, false);\n win.addEventListener('scroll', this._checkHandler, false);\n win.addEventListener('transitionend', this._checkHandler, false);\n win.addEventListener('animationend', this._checkHandler, false);\n }\n this._oncheck();\n }\n }\n unregister(vport) {\n var ndx;\n const vports = this.viewports, win = this._global;\n if ((ndx = vports.indexOf(vport)) !== -1) {\n vports.splice(ndx, 1);\n if (vports.length === 0) {\n win.removeEventListener('resize', this._checkHandler, false);\n win.removeEventListener('scroll', this._checkHandler, false);\n win.removeEventListener('transitionend', this._checkHandler, false);\n win.removeEventListener('animationend', this._checkHandler, false);\n }\n this._oncheck();\n }\n }\n isElementVisible(el, ignoreHorizontal) {\n const vportSize = Utils.windowSize;\n var doc = this._global.document, rect = el.getBoundingClientRect(), vWidth = vportSize.width, vHeight = vportSize.height, efp = function (x, y) { return document.elementFromPoint(x, y); };\n return rect.bottom > 0 && rect.top < (0 + vHeight)\n && (ignoreHorizontal || (rect.left < (vWidth + 0) && rect.right > 0));\n }\n _oncheck(evt) {\n for (var el of this.viewports) {\n const tget = el.target || el;\n const newviz = this.isElementVisible(tget, el.ignoreHorizontal);\n if (newviz !== el.visible) {\n var visible = el.visible = newviz;\n if (visible)\n Utils.addClass(tget, PCSS + '-in-viewport');\n else\n Utils.removeClass(tget, PCSS + '-in-viewport');\n }\n }\n }\n}\n__decorate([\n Debounce(100)\n], PacemViewportOrchestrator.prototype, \"_oncheck\", null);\nconst ORCHESTRATOR = new PacemViewportOrchestrator(window);\n/** @deprecated */\nlet PacemViewportAwareElement = class PacemViewportAwareElement extends PacemEventTarget {\n viewActivatedCallback() {\n super.viewActivatedCallback();\n //\n ORCHESTRATOR.register(this);\n }\n disconnectedCallback() {\n ORCHESTRATOR.unregister(this);\n //\n super.disconnectedCallback();\n }\n};\n__decorate([\n Watch({ converter: PropertyConverters.Boolean })\n], PacemViewportAwareElement.prototype, \"visible\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemViewportAwareElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemViewportAwareElement.prototype, \"ignoreHorizontal\", void 0);\nPacemViewportAwareElement = __decorate([\n CustomElement({ tagName: P + '-viewport-aware' })\n], PacemViewportAwareElement);\nexport { PacemViewportAwareElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { CustomElement, P, PacemEventTarget, Watch, PropertyConverters, Utils } from './_default-imports';\n//namespace Pacem.Components {\nlet PacemWebWorkerProxyElement = class PacemWebWorkerProxyElement extends PacemEventTarget {\n constructor() {\n super(...arguments);\n this.autosend = true;\n this._messageHandler = (evt) => {\n this.result = evt.data;\n this.dispatchEvent(new CustomEvent('receive', { detail: evt.data, bubbles: false, cancelable: false }));\n };\n this._errorHandler = (evt) => {\n this.dispatchEvent(new CustomEvent('error', { detail: evt.error, bubbles: false, cancelable: false }));\n };\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._initializeWorker();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'src':\n this._disposeWorker();\n this._initializeWorker(val);\n break;\n case 'autosend':\n case 'disabled':\n case 'message':\n if (this.autosend) {\n this.send(this.message);\n }\n break;\n }\n }\n }\n disconnectedCallback() {\n this._disposeWorker();\n super.disconnectedCallback();\n }\n send(message = this.message) {\n if (this.disabled) {\n return;\n }\n const worker = this._worker;\n if (!Utils.isNull(worker)) {\n worker.postMessage(message);\n }\n }\n _initializeWorker(src = this.src) {\n if (!Utils.isNullOrEmpty(src)) {\n const worker = this._worker = new Worker(src);\n worker.addEventListener('message', this._messageHandler, false);\n worker.addEventListener('error', this._errorHandler, false);\n if (this.autosend && !Utils.isNull(this.message)) {\n this.send();\n }\n }\n }\n _disposeWorker(worker = this._worker) {\n if (!Utils.isNull(worker)) {\n worker.removeEventListener('error', this._errorHandler, false);\n worker.removeEventListener('message', this._messageHandler, false);\n worker.terminate();\n }\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemWebWorkerProxyElement.prototype, \"message\", void 0);\n__decorate([\n Watch({ converter: PropertyConverters.String })\n], PacemWebWorkerProxyElement.prototype, \"result\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemWebWorkerProxyElement.prototype, \"src\", void 0);\n__decorate([\n Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })\n], PacemWebWorkerProxyElement.prototype, \"autosend\", void 0);\nPacemWebWorkerProxyElement = __decorate([\n CustomElement({ tagName: P + '-webworker-proxy' })\n], PacemWebWorkerProxyElement);\nexport { PacemWebWorkerProxyElement };\n//}\n","import { PacemEventTarget } from '../eventtarget';\n//namespace Pacem.Behaviors{\nexport class PacemBehavior extends PacemEventTarget {\n #items = new WeakSet();\n register(element) {\n var container = this.#items;\n if (!container.has(element)) {\n container.add(element);\n this.decorate(element);\n }\n }\n unregister(element) {\n var container = this.#items;\n if (container.has(element)) {\n this.undecorate(element);\n container.delete(element);\n }\n }\n has(element) {\n return this.#items.has(element);\n }\n}\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Matrix2D } from '@pacem/pacem-foundation';\nimport { Utils, avoidHandler } from '../../utils';\nimport { CustomElementUtils, Repeater, RepeaterItem } from '../../utils-customelement';\nimport { CustomEventUtils } from '../../utils-customevent';\nimport { LogLevel } from '../../logger';\nimport { PropertyConverters } from '../../converters';\nimport { CustomElement, Watch } from '../../decorators';\nimport { P, PCSS } from '../../prefix';\nimport { PacemBehavior } from '../behavior';\nimport { DragDataMode, DropBehavior, DragDropEvent, DragDropEventArgsClass, DragDropInitEventArgsClass, DropTargetMissedBehavior, DragDropEventType } from '../../ui/drag-drop';\nimport { PacemRepeaterElement, RepeaterItem as PacemRepeaterItem } from '../basic/repeater';\n//namespace Pacem.Components {\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst MOUSE_DOWN = 'pacem:dragdrop:mousedown';\nconst DRAGGING = 'pacem:dragdrop:info';\nconst DELEGATE = 'pacem:dragdrop:delegate';\n/**\n * Class to whom delegate the window-relevant events (in a possible future, distopic, multi-pointer scenario)\n */\nclass DragElementDelegate {\n constructor(initArgs, _logFn) {\n this._logFn = _logFn;\n this._started = false;\n // #endregion\n this._enterHandler = (evt) => {\n this._currentTarget = evt.target;\n };\n this._leaveHandler = (evt) => {\n this._currentTarget = null;\n };\n this._revertTrackedTarget = null;\n this._moveHandler = (evt) => {\n if (evt.type !== 'wheel') {\n avoidHandler(evt);\n }\n var el = this._element, dragger = this._dragDropper, currentPosition, args = GET_VAL(el, DRAGGING);\n //\n function getCurrentPosition() {\n return currentPosition = currentPosition || (evt instanceof MouseEvent ? { x: evt.pageX, y: evt.pageY } : { x: evt.touches[0].pageX, y: evt.touches[0].pageY });\n }\n // start\n if (!this._started) {\n this._logFn(LogLevel.Info, 'Dragging act started');\n this._started = true;\n // starting from a container/drop-target?\n if (dragger.dropBehavior === DropBehavior.InsertChild) {\n var container = el;\n do {\n // could have nested containers,\n // keep navigating up the dom tree\n container = container.parentElement;\n } while (container && dragger.dropTargets.indexOf(container) == -1);\n this._currentTarget = container;\n }\n dragger.dispatchEvent(new DragDropEvent(DragDropEventType.Start, DragDropEventArgsClass.fromArgs(args), {}, evt));\n }\n // move\n if (!Utils.isNull(args)) {\n this._logFn(LogLevel.Debug, 'Dragging act ongoing');\n const isMouseFlag = evt instanceof MouseEvent;\n //if (evt.type !== 'wheel')\n // Pacem.avoidHandler(evt);\n Utils.addClass(CustomElementUtils.findAncestorShell(el), PCSS + '-dragging');\n const pos = args.currentPosition = getCurrentPosition();\n let floater = args.floater;\n let moveEvt = new DragDropEvent(DragDropEventType.Drag, DragDropEventArgsClass.fromArgs(args), { cancelable: true }, evt);\n // dispatch move event\n dragger.dispatchEvent(moveEvt);\n if (!moveEvt.defaultPrevented // obey the - eventual - canceling feedback\n && (floater instanceof HTMLElement || floater instanceof SVGElement)) {\n // move\n let delta = { x: moveEvt.detail.delta.x, y: moveEvt.detail.delta.y };\n floater.style.transform = `translate3d(${delta.x}px, ${delta.y}px, 0)`;\n }\n // what am I over?\n var hover = this._currentTarget;\n if (!isMouseFlag && dragger.dropTargets.length > 0) {\n hover = document\n .elementsFromPoint(args.currentPosition.x - Utils.scrollLeft, args.currentPosition.y - Utils.scrollTop)\n .find(e => dragger.dropTargets.indexOf(e) >= 0);\n }\n // changed hover element since last time?\n var oldTarget = args.target;\n if (hover !== oldTarget) {\n if (!Utils.isNull(oldTarget)) {\n Utils.removeClass(oldTarget, PCSS + '-dropping');\n dragger.dispatchEvent(new DragDropEvent(DragDropEventType.Out, DragDropEventArgsClass.fromArgs(args), {}, evt));\n this._logFn(LogLevel.Info, `Drop area left (${(oldTarget['id'] || oldTarget.constructor.name)})`);\n }\n if (dragger.dropTargets.indexOf(hover) != -1) {\n args.target = hover;\n this._logFn(LogLevel.Info, `Drop area entering (${(args.target['id'] || args.target.constructor.name)})`);\n let evt0 = new DragDropEvent(DragDropEventType.Over, DragDropEventArgsClass.fromArgs(args), { cancelable: true }, evt);\n dragger.dispatchEvent(evt0);\n if (evt0.defaultPrevented) {\n delete args.target;\n }\n else {\n Utils.addClass(args.target, PCSS + '-dropping');\n this._logFn(LogLevel.Info, `Drop area entered (${(args.target['id'] || args.target.constructor.name)})`);\n }\n }\n else {\n delete args.target;\n }\n }\n this._revertTrackedTarget = args.target || oldTarget;\n // positioning\n if (!Utils.isNull(args.target) && dragger.dropBehavior === DropBehavior.InsertChild) {\n this._insertChild(hover, args);\n }\n else \n // if spilling out from a drop target, avoid undesired `copy` of an element.\n if (Utils.isNull(args.target) && dragger.mode === DragDataMode.Copy) {\n const ph = args.placeholder;\n if (ph instanceof Element)\n ph.remove();\n }\n }\n };\n this._endHandler = (evt) => {\n var el = this._element, shell = CustomElementUtils.findAncestorShell(el), dragger = this._dragDropper, args;\n if (!Utils.isNull(args = GET_VAL(el, DRAGGING))) {\n if (evt instanceof MouseEvent)\n avoidHandler(evt);\n // #region dispose fn\n let fnDispose = () => {\n let floater = args.floater;\n if (floater instanceof HTMLElement || floater instanceof SVGElement) {\n floater.style.pointerEvents = '';\n }\n if (dragger.mode !== DragDataMode.Self) {\n args.floater.remove();\n }\n Utils.removeClass(el, PCSS + '-dragging');\n Utils.removeClass(el, PCSS + '-drag-lock');\n DEL_VAL(el, DRAGGING);\n if (!Utils.isNull(args.placeholder)) {\n Utils.removeClass(args.placeholder, PCSS + '-dragging');\n Utils.removeClass(args.placeholder, 'drag-placeholder');\n Utils.removeClass(args.placeholder, PCSS + '-drag-lock');\n DEL_VAL(args.placeholder, DRAGGING);\n }\n // === drop\n const dropping = !Utils.isNull(args.target);\n if (dropping) {\n dragger.dispatchEvent(new DragDropEvent(DragDropEventType.Drop, DragDropEventArgsClass.fromArgs(args), {}, evt));\n Utils.removeClass(args.target, PCSS + '-dropping');\n }\n // === cleanup\n const data = args.data, dropTargets = dragger.dropTargets, placeholder = args.placeholder, repItem = this._repeaterItem, sourceRepeater = this._sourceRepeater, isDraggingRepeaterItem = !Utils.isNull(repItem), targetRepItem = placeholder && this._findTargetRepeaterItem(args.placeholder.parentElement, args.placeholder.nextElementSibling), targetRepeater = targetRepItem && targetRepItem.repeater, isCopying = dragger.mode === DragDataMode.Copy, \n // is dropping onto a repeater item?\n // true if\n // - is effectively dropping onto a repeater\n // - AND the target repeater doesn't equal the source one when a whole repeaterItem is involved.\n isDroppingRepeaterItem = dropping && !Utils.isNull(targetRepeater) && !(Utils.isNull(repItem) && sourceRepeater === targetRepeater);\n // refresh origin datasource and, eventually, target datasource\n if (isDraggingRepeaterItem && !isCopying && dropping) {\n sourceRepeater.removeItem(repItem.index);\n }\n if (isDroppingRepeaterItem) {\n args.placeholder.remove();\n if (targetRepeater === sourceRepeater && !isCopying) {\n let from = repItem.index, to = targetRepItem.index;\n if (to > from) {\n // tweak\n to--;\n }\n sourceRepeater.datasource.moveWithin(from, to);\n }\n else {\n if (!isCopying) {\n sourceRepeater && sourceRepeater.datasource.splice(repItem.index, 1);\n }\n targetRepeater && (targetRepeater.datasource = targetRepeater.datasource || []).splice(targetRepItem.index, 0, data);\n }\n }\n // Check spill behavior\n if (!dropping\n && !Utils.isNullOrEmpty(dragger.dropTargets)\n && dragger.spillBehavior === DropTargetMissedBehavior.Remove\n // if mode is 'copy' then don't remove the source\n && !isCopying) {\n if (isDraggingRepeaterItem) {\n sourceRepeater.datasource.splice(repItem.index, 1);\n }\n else {\n el.remove();\n }\n }\n // === end\n dragger.dispatchEvent(new DragDropEvent(DragDropEventType.End, DragDropEventArgsClass.fromArgs(args), {}, evt));\n //\n Utils.removeClass(shell, PCSS + '-dragging');\n };\n // #endregion\n // animate to target position\n const drag = args.placeholder || args.element;\n if (args.floater != drag) {\n let floater = args.floater;\n var m = Utils.deserializeTransform(getComputedStyle(floater));\n // dropping or reverting?\n if (!Utils.isNull(args.target)\n || dragger.spillBehavior === DropTargetMissedBehavior.Revert\n || (dragger.dropBehavior === DropBehavior.InsertChild && dragger.spillBehavior !== DropTargetMissedBehavior.Remove)) {\n // overlap to placeholder\n const tgetPos = Utils.offset(drag), srcPos = Utils.offset(floater);\n floater.style.transition = 'transform .2s ease-in-out';\n m = Matrix2D.translate(m, { x: tgetPos.left - srcPos.left, y: tgetPos.top - srcPos.top });\n }\n else {\n floater.style.transition = 'transform .2s ease-in, opacity .2s linear';\n // scale down to 0\n m = Matrix2D.scale(m, 0.1);\n floater.style.opacity = '0';\n }\n Utils.addAnimationEndCallback(floater, fnDispose, 300);\n floater.style.transform = `matrix(${m.a},${m.b},${m.c},${m.d},${m.e},${m.f})`;\n }\n else {\n fnDispose();\n }\n }\n Utils.removeClass(el, PCSS + '-drag-lock');\n // dispose\n this.dispose();\n this._logFn(LogLevel.Info, 'Dragging act disposed');\n };\n this._dragDropper = initArgs.dragDrop;\n Utils.addClass(this._element = initArgs.element, PCSS + '-drag-lock');\n window.addEventListener('mouseup', this._endHandler, false);\n window.addEventListener('touchend', this._endHandler, false);\n window.addEventListener('mousemove', this._moveHandler, false);\n document.addEventListener('wheel', this._moveHandler, false);\n window.addEventListener('touchmove', this._moveHandler, { capture: true, passive: false });\n this._dragDropper.dropTargets.forEach(t => {\n t.addEventListener('mouseenter', this._enterHandler, false);\n t.addEventListener('mouseleave', this._leaveHandler, false);\n });\n // is `_element` a dynamic one belonging to a repeater item?\n var repItem = Repeater.findItemContext(this._element, 0, null);\n if (repItem) {\n if (repItem.dom && repItem.dom.length === 1 && repItem.dom[0] === this._element) {\n this._repeaterItem = repItem;\n }\n this._sourceRepeater = repItem.repeater;\n }\n //\n this._bootstrap(initArgs.placeholder, initArgs.data);\n }\n // #region PRIVATE UTILS\n _getLogicalData(node) {\n if (node instanceof RepeaterItem)\n return node.item;\n if (node instanceof HTMLElement)\n return node.dataset;\n return node;\n }\n _getPhysicalData(node) {\n if (node instanceof PacemRepeaterItem)\n return node.dom;\n return [node];\n }\n _createFloater(src, origin) {\n const dragger = this._dragDropper;\n let floater = src;\n if (dragger.mode != DragDataMode.Self) {\n floater = floater.cloneNode(true);\n CustomElementUtils.stripObservedAttributes(floater);\n if (floater instanceof HTMLElement || floater instanceof SVGElement) {\n Utils.addClass(floater, PCSS + '-drag-floater');\n CustomElementUtils.findAncestorShell(this._element).appendChild(floater);\n floater.style.position = 'absolute';\n let pos = { left: origin.x + floater.clientWidth / 2, top: origin.y - floater.clientHeight / 2 };\n // if cloned the original element then preserve dimensions\n if (src === this._element || src.classList.contains('drag-floater-resize')) {\n let size = Utils.offset(this._element);\n floater.style.boxSizing = 'border-box';\n floater.style.width = size.width + 'px';\n floater.style.height = size.height + 'px';\n pos = { left: size.left, top: size.top };\n }\n // positioning\n floater.style.left = `${pos.left}px`;\n floater.style.top = `${pos.top}px`;\n }\n }\n if (floater instanceof HTMLElement || floater instanceof SVGElement) {\n floater.style.pointerEvents = 'none';\n }\n return floater;\n }\n _findTargetRepeaterItem(dropTarget, nextSibling) {\n var repItem = Repeater.findItemContext(nextSibling, 0, null);\n if (!Utils.isNull(repItem)) {\n return { repeater: repItem.repeater, index: repItem.index };\n }\n else {\n var repeater = null, index = -1;\n //\n if (dropTarget instanceof PacemRepeaterElement)\n repeater = dropTarget;\n else\n repeater = CustomElementUtils.findAncestorOfType(dropTarget, PacemRepeaterElement);\n //\n if (!Utils.isNull(repeater))\n return { repeater: repeater, index: (repeater.datasource && repeater.datasource.length) || 0 };\n }\n return null;\n }\n /**\n * Finds the physical next sibling given a container and dragging event arguments.\n * @param target Container\n * @param args Event arguments\n */\n _findNextSibling(target, args) {\n var lastX = 0, lastY = 0;\n const children = Array.from(target.children), length = children.length;\n // first hit tested element\n const hover = document.elementFromPoint(args.currentPosition.x - Utils.scrollLeft, args.currentPosition.y - Utils.scrollTop);\n // hit tested sibling (to spot)\n let hoverElement;\n // 1. hit tested element is the drop target (container)\n if (hover === target) {\n this._currentHover = hoverElement = args.placeholder;\n return hoverElement.parentElement === target ? hoverElement.nextElementSibling : null;\n }\n // loop until the parent element is the drop target\n var hoverSibling = hover;\n while (hoverSibling.parentElement != target && hoverSibling.parentElement != null) {\n hoverSibling = hoverSibling.parentElement;\n }\n // 2. hit tested element is the moving placeholder or is outside a drop target\n if (hoverSibling.parentElement != target || hoverSibling === args.placeholder) {\n this._currentHover = hoverElement = args.placeholder;\n return hoverElement.nextElementSibling;\n }\n // 3. hit tested element has changed\n if (hoverSibling != this._currentHover) {\n hoverElement = this._currentHover;\n const from = children.indexOf(hoverElement), to = children.indexOf(hoverSibling);\n this._currentHover = hoverSibling;\n return from > to ? hoverSibling : hoverSibling.nextElementSibling;\n }\n // 4. just return something\n return hoverSibling;\n }\n /**\n * This method is computationally heavy due to forced reflow!\n */\n _insertChild(targetContainer, args) {\n const drag = args.placeholder || args.element, drop = args.target, nextSibling = this._findNextSibling(drop, args);\n if (drag.nextSibling != nextSibling || drag.parentElement != drop) {\n if (Utils.isNull(nextSibling) || nextSibling.parentElement == targetContainer) {\n // TODO: change logic (try to move elements around with css transforms)\n targetContainer.insertBefore(drag, nextSibling);\n this._logFn(LogLevel.Info, `Positioned before ${(nextSibling && (nextSibling.id || nextSibling.constructor.name)) || \"null\"} for drop`);\n }\n }\n }\n _bootstrap(placeholder, dataObj) {\n var el = this._element, dragger = this._dragDropper, origin, args;\n if (!Utils.isNull(origin = GET_VAL(el, MOUSE_DOWN))) {\n this._started = false;\n DEL_VAL(el, MOUSE_DOWN);\n Utils.addClass(el, PCSS + '-dragging');\n let style = getComputedStyle(el), initialDelta = { x: 0, y: 0 }, css = Utils.deserializeTransform(style);\n //\n initialDelta.x += css.e;\n initialDelta.y += css.f;\n // === floater (first)\n let floater = this._createFloater(dragger.floater || el, origin);\n // === placeholder (then)\n if (Utils.isNull(placeholder)) {\n switch (dragger.mode) {\n case DragDataMode.Alias:\n placeholder = el;\n break;\n case DragDataMode.Copy:\n placeholder = el.cloneNode(true);\n break;\n }\n }\n // add peculiar css class\n if (!Utils.isNull(placeholder)) {\n Utils.addClass(placeholder, 'drag-placeholder');\n }\n // inside a repeater? freeze the item\n if (!Utils.isNull(this._repeaterItem) && !Utils.isNull(placeholder)) {\n CustomElementUtils.freezeObservedAttributes(placeholder);\n }\n const data = dataObj || this._getLogicalData(this._repeaterItem || el);\n // setup args\n args = {\n element: el,\n placeholder: placeholder || el,\n data,\n startTime: Date.now(),\n origin,\n initialDelta,\n currentPosition: origin,\n floater\n };\n SET_VAL(el, DRAGGING, args);\n }\n }\n dispose() {\n this._dragDropper.dropTargets.forEach(t => {\n t.removeEventListener('mouseenter', this._enterHandler, false);\n t.removeEventListener('mouseleave', this._leaveHandler, false);\n });\n window.removeEventListener('mouseup', this._endHandler, false);\n window.removeEventListener('touchend', this._endHandler, false);\n window.removeEventListener('mousemove', this._moveHandler, false);\n document.removeEventListener('wheel', this._moveHandler, false);\n window.removeEventListener('touchmove', this._moveHandler, { capture: true });\n }\n}\n/**\n * Pacem Drag & Drop element adapter.\n */\nlet PacemDragDropElement = class PacemDragDropElement extends PacemBehavior {\n constructor() {\n super(...arguments);\n this._startHandler = (evt) => {\n // sudden exit when disabled\n if (this.disabled) {\n return;\n }\n // only events with trusted interaction\n if (!evt.isTrusted) {\n return;\n }\n // check the handle selector\n if (!Utils.isNullOrEmpty(this.handleSelector)\n && evt.currentTarget.querySelector(this.handleSelector) !== evt.target) {\n return;\n }\n const el = evt.currentTarget, coords = CustomEventUtils.getEventCoordinates(evt), origin = coords.page;\n let element = el;\n let args = DragDropInitEventArgsClass.fromArgs({\n element: element,\n placeholder: null,\n currentPosition: origin,\n origin: origin,\n initialDelta: { x: 0, y: 0 },\n startTime: null,\n floater: null,\n data: null\n });\n // init event might be prevented\n const initEvent = new DragDropEvent(DragDropEventType.Init, args, { cancelable: true }, evt);\n this.dispatchEvent(initEvent);\n if (initEvent.defaultPrevented) {\n return;\n }\n // fair to go...\n // stop propagation\n avoidHandler(evt);\n const lockFn = () => {\n el.removeEventListener('mouseup', unlockFn, false);\n el.removeEventListener('touchend', unlockFn, false);\n this.log(LogLevel.Info, 'Drag locked!');\n SET_VAL(el, MOUSE_DOWN, origin);\n SET_VAL(el, DELEGATE, new DragElementDelegate({\n element: element, dragDrop: this, placeholder: args.placeholder, data: args.data,\n }, (level, message, category) => this.log.apply(this, [level, message, category])));\n };\n const unlockFn = (evt) => {\n this.log(LogLevel.Info, 'Drag avoided!');\n clearTimeout(toHandle);\n };\n const toHandle = setTimeout(lockFn, this.lockTimeout);\n el.addEventListener('mouseup', unlockFn, false);\n el.addEventListener('touchend', unlockFn, false);\n };\n /** Gets or sets the amount of milliseconds to wait, while pressing on the draggable object, until the object itself must be considered \"locked to drag\". */\n this.lockTimeout = 100;\n /** Gets or sets the drop targets (array of elements). */\n this.dropTargets = [];\n /** Gets or sets the drag mode (\"self\", \"alias\", \"copy\"). */\n this.mode = DragDataMode.Self;\n }\n decorate(element) {\n const options = { capture: false, passive: false };\n // TODO: add special effects starting the drag process after a while (timeout) the element is pressed. \n element.addEventListener('mousedown', this._startHandler, false);\n element.addEventListener('touchstart', this._startHandler, options);\n }\n undecorate(element) {\n const options = { capture: false, passive: false };\n element.removeEventListener('mousedown', this._startHandler, false);\n element.removeEventListener('touchstart', this._startHandler, options);\n }\n addEventListener(type, listener, useCapture) {\n super.addEventListener(type, listener, useCapture);\n }\n removeEventListener(type, listener, useCapture) {\n super.removeEventListener(type, listener, useCapture);\n }\n dispatchEvent(evt) {\n if (evt.type === DragDropEventType.End) {\n DEL_VAL(evt.detail.element, MOUSE_DOWN);\n DEL_VAL(evt.detail.element, DELEGATE);\n }\n return super.dispatchEvent(evt);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemDragDropElement.prototype, \"lockTimeout\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemDragDropElement.prototype, \"dropTargets\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDragDropElement.prototype, \"mode\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], PacemDragDropElement.prototype, \"floater\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDragDropElement.prototype, \"dropBehavior\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDragDropElement.prototype, \"spillBehavior\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemDragDropElement.prototype, \"handleSelector\", void 0);\nPacemDragDropElement = __decorate([\n CustomElement({ tagName: P + '-drag-drop' })\n], PacemDragDropElement);\nexport { PacemDragDropElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LogLevel, Utils, P, PCSS, CustomElement, Watch, PropertyConverters } from './_default-imports';\nimport { Point } from '@pacem/pacem-foundation';\nimport { RescaleEventType, RescaleEvent, RescaleEventArgsClass, RescaleHandle } from '../../ui/rescale';\nimport { PacemBehavior } from '../behavior';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { CustomEventUtils } from '../../utils-customevent';\nimport { avoidHandler } from '../../utils';\n//namespace Pacem.Components {\nclass RescaleElementDelegate {\n constructor(_element, _type, _rescaler, _logFn) {\n this._element = _element;\n this._type = _type;\n this._rescaler = _rescaler;\n this._logFn = _logFn;\n this._startTime = Date.now();\n this._moveHandler = (evt) => {\n evt.stopPropagation();\n const el = this._element, origin = this._origin, rescaler = this._rescaler, handle = this._type, keepProportions = rescaler.keepProportions, minWidth = rescaler.minWidth || 0, minHeight = rescaler.minHeight || 0, maxWidth = rescaler.maxWidth || Number.MAX_SAFE_INTEGER, maxHeight = rescaler.maxHeight || Number.MAX_SAFE_INTEGER, currentPosition = (evt instanceof MouseEvent ? { x: evt.pageX, y: evt.pageY } : { x: evt.touches[0].pageX, y: evt.touches[0].pageY }), position = { x: currentPosition.x, y: currentPosition.y }, origRect = this._rect;\n switch (handle) {\n case 'top':\n case 'bottom':\n position.x = origin.x;\n break;\n case 'left':\n case 'right':\n position.y = origin.y;\n break;\n }\n this._position = position;\n const delta = { x: position.x - origin.x, y: position.y - origin.y };\n var desiredRect;\n if (keepProportions) {\n const A = { x: origRect.x, y: origRect.y }, B = { x: origRect.x + origRect.width, y: origRect.y }, C = { x: origRect.x + origRect.width, y: origRect.y + origRect.height }, D = { x: origRect.x, y: origRect.y + origRect.height }, cos = Point.distance(C, D) / Point.distance(C, A), sin = Point.distance(A, D) / Point.distance(C, A), AC = Point.distance(A, C), proj = (v1, v2) => (v1.x * v2.x + v1.y * v2.y) / AC;\n switch (handle) {\n case \"topleft\":\n const vCA = Point.subtract(C, A);\n const dotCA = proj(Point.subtract(C, position), vCA);\n const topLeft = { x: C.x - dotCA * cos, y: C.y - dotCA * sin };\n desiredRect = { x: topLeft.x, y: topLeft.y, width: C.x - topLeft.x, height: C.y - topLeft.y };\n break;\n case \"topright\":\n const vDB = Point.subtract(D, B);\n const dotDB = proj(Point.subtract(D, position), vDB);\n const topRight = { x: D.x + dotDB * cos, y: D.y - dotDB * sin };\n desiredRect = { x: D.x, y: topRight.y, width: topRight.x - D.x, height: D.y - topRight.y };\n break;\n case \"bottomleft\":\n const vBD = Point.subtract(B, D);\n const dotBD = proj(Point.subtract(B, position), vBD);\n const bottomLeft = { x: B.x - dotBD * cos, y: B.y + dotBD * sin };\n desiredRect = { x: bottomLeft.x, y: B.y, width: B.x - bottomLeft.x, height: bottomLeft.y - B.y };\n break;\n default:\n const vAC = Point.subtract(A, C);\n const dotAC = proj(Point.subtract(A, position), vAC);\n const bottomRight = { x: A.x + dotAC * cos, y: A.y + dotAC * sin };\n desiredRect = { x: A.x, y: A.y, width: bottomRight.x - A.x, height: bottomRight.y - A.y };\n break;\n }\n }\n else {\n // compute bottomright as default\n desiredRect = { x: this._rect.x, y: this._rect.y, width: this._rect.width + delta.x, height: this._rect.height + delta.y };\n if (handle.startsWith('top')) {\n desiredRect.y = this._rect.y + delta.y;\n desiredRect.height = this._rect.height - delta.y;\n }\n if (handle.endsWith('left')) {\n desiredRect.x = this._rect.x + delta.x;\n desiredRect.width = this._rect.width - delta.x;\n }\n }\n this._logFn(LogLevel.Log, `handle: ${handle}, origin: ${JSON.stringify(origin)}, currentPosition: ${JSON.stringify(currentPosition)}`, `Rescaling`);\n this._logFn(LogLevel.Log, `delta: ${JSON.stringify(delta)}, position: ${JSON.stringify(position)}`, `Rescaling`);\n this._logFn(LogLevel.Log, `from: ${JSON.stringify(this._rect)}, to: ${JSON.stringify(desiredRect)}`, `Rescaling`);\n // check constraints\n let horizontally = desiredRect.width >= minWidth && desiredRect.width <= maxWidth, vertically = desiredRect.height >= minHeight && desiredRect.height <= maxHeight;\n // if proportions are constrained and one fails, then both fail\n if (keepProportions && (!horizontally || !vertically)) {\n horizontally = vertically = false;\n }\n if (!horizontally) {\n // reset to the last valid horizontal configuration\n desiredRect.x = this._targetRect.x;\n desiredRect.width = this._targetRect.width;\n }\n if (!vertically) {\n // reset to the last valid vertical configuration\n desiredRect.y = this._targetRect.y;\n desiredRect.height = this._targetRect.height;\n }\n if (horizontally || vertically) {\n // dispatch\n const args = {\n currentPosition: position, element: el,\n handle: handle, origin: origin, targetRect: desiredRect, startTime: this._startTime\n };\n let rescaleEvt = new RescaleEvent(RescaleEventType.Rescale, RescaleEventArgsClass.fromArgs(args), { cancelable: true }, evt);\n rescaler.dispatchEvent(rescaleEvt);\n if (!rescaleEvt.defaultPrevented) {\n // render resize\n const m = this._originalTransform;\n el.style.transform = `matrix(${m.a},${m.b},${m.c},${m.d},${(m.e + desiredRect.x - this._rect.x)},${(m.f + desiredRect.y - this._rect.y)})`;\n el.style.width = desiredRect.width + 'px';\n el.style.height = desiredRect.height + 'px';\n }\n // store targetRect\n this._targetRect = desiredRect;\n }\n };\n this._endHandler = (e) => {\n e.stopPropagation();\n const handle = this._type;\n let evt = new RescaleEvent(RescaleEventType.End, RescaleEventArgsClass.fromArgs({\n element: this._element, origin: this._origin,\n handle: handle, startTime: this._startTime, currentPosition: this._position, targetRect: this._targetRect\n }), {}, e);\n // body\n Utils.removeClass(document.body, PCSS + '-rescaling rescale-' + handle);\n this._rescaler.dispatchEvent(evt);\n DEL_VAL(this._element, DELEGATE);\n window.removeEventListener('mouseup', this._endHandler, false);\n window.removeEventListener('touchend', this._endHandler, false);\n window.removeEventListener('mousemove', this._moveHandler, false);\n window.removeEventListener('touchmove', this._moveHandler, false);\n };\n window.addEventListener('mouseup', this._endHandler, false);\n window.addEventListener('touchend', this._endHandler, false);\n window.addEventListener('mousemove', this._moveHandler, false);\n window.addEventListener('touchmove', this._moveHandler, false);\n this._origin =\n this._position =\n GET_VAL(_element, MOUSE_DOWN);\n this._rect =\n this._targetRect =\n Utils.offsetRect(_element);\n //\n this._originalTransform = Utils.deserializeTransform(getComputedStyle(_element));\n // body\n Utils.addClass(document.body, PCSS + '-rescaling rescale-' + _type);\n }\n}\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst HANDLES = 'top right bottom left topleft topright bottomright bottomleft'.split(' ');\nconst RESCALE_FRAME = 'pacem:rescale:frame';\nconst MOUSE_DOWN = 'pacem:rescale:origin';\nconst DELEGATE = 'pacem:rescale:delegate';\nlet PacemRescaleElement = class PacemRescaleElement extends PacemBehavior {\n constructor() {\n super(...arguments);\n this._bag = [];\n this._startHandler = (evt) => {\n evt.stopPropagation();\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const el = evt.currentTarget, origin = coords.page;\n const type = /rescale-(.+)/.exec(el['className'])[1];\n // start\n const target = el.parentElement;\n const initEvent = new RescaleEvent(RescaleEventType.Start, RescaleEventArgsClass.fromArgs({\n currentPosition: origin,\n origin: origin, element: target, handle: type, startTime: Date.now()\n }), { cancelable: true }, evt);\n this.dispatchEvent(initEvent);\n // canceled?\n if (initEvent.defaultPrevented) {\n return;\n }\n // stop evt propagation (may cause page reload on touch/mobile devices)\n avoidHandler(evt);\n SET_VAL(target, MOUSE_DOWN, origin);\n SET_VAL(target, DELEGATE, new RescaleElementDelegate(target, type, this, \n /* logging */ (level, message, category) => this.log.apply(this, [level, message, category])));\n };\n }\n decorate(element) {\n const el = element, css = getComputedStyle(el);\n Utils.addClass(el, PCSS + '-rescalable');\n this._setFrame(el);\n }\n undecorate(element) {\n const el = element;\n Utils.removeClass(el, PCSS + '-rescalable');\n //\n this._removeFrame(el);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._syncHandles();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n switch (name) {\n case 'disabled':\n case 'handles':\n case 'keepProportions':\n this._syncHandles();\n break;\n }\n }\n _syncHandles() {\n const handles = this.handles || [RescaleHandle.All];\n const all = handles.find(h => h === RescaleHandle.All) != null;\n const disabled = this.disabled;\n const keepProportions = this.keepProportions;\n for (let el of this._bag) {\n let frame = GET_VAL(el, RESCALE_FRAME);\n frame.top.hidden = disabled || (!all && handles.find(h => h === RescaleHandle.Top) == null);\n frame.bottom.hidden = disabled || (!all && handles.find(h => h === RescaleHandle.Bottom) == null);\n frame.left.hidden = disabled || (!all && handles.find(h => h === RescaleHandle.Left) == null);\n frame.right.hidden = disabled || (!all && handles.find(h => h === RescaleHandle.Right) == null);\n frame.topleft.hidden = frame.top.hidden || frame.left.hidden;\n frame.topright.hidden = frame.top.hidden || frame.right.hidden;\n frame.bottomleft.hidden = frame.bottom.hidden || frame.left.hidden;\n frame.bottomright.hidden = frame.bottom.hidden || frame.right.hidden;\n if (keepProportions) {\n frame.top.hidden =\n frame.bottom.hidden =\n frame.left.hidden =\n frame.right.hidden = true;\n }\n }\n }\n _setFrame(el) {\n let frame = {};\n for (let type of HANDLES) {\n const handle = frame[type] = document.createElement('div');\n Utils.addClass(handle, PCSS + '-rescale rescale-' + type);\n el.setAttribute('pacem', '');\n el.appendChild(handle);\n handle.addEventListener('mousedown', this._startHandler, false);\n handle.addEventListener('touchstart', this._startHandler, { capture: false, passive: true });\n }\n SET_VAL(el, RESCALE_FRAME, frame);\n this._bag.push(el);\n this._syncHandles();\n }\n _removeFrame(el) {\n const frame = GET_VAL(el, RESCALE_FRAME);\n for (var type in frame) {\n const handle = frame[type];\n handle.removeEventListener('mousedown', this._startHandler, false);\n handle.removeEventListener('touchstart', this._startHandler, { capture: false });\n handle.remove();\n }\n DEL_VAL(el, RESCALE_FRAME);\n this._bag.splice(this._bag.indexOf(el), 1);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.StringArray })\n], PacemRescaleElement.prototype, \"handles\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRescaleElement.prototype, \"minWidth\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRescaleElement.prototype, \"maxWidth\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRescaleElement.prototype, \"minHeight\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRescaleElement.prototype, \"maxHeight\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemRescaleElement.prototype, \"keepProportions\", void 0);\nPacemRescaleElement = __decorate([\n CustomElement({ tagName: P + '-rescale' })\n], PacemRescaleElement);\nexport { PacemRescaleElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LogLevel, Utils, P, PCSS, CustomElement, Watch, PropertyConverters } from './_default-imports';\nimport { Matrix2D, Angle, Numbers } from '@pacem/pacem-foundation';\nimport { RotateEvent, RotateEventArgsClass, RotateEventType } from '../../ui/rotate';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { CustomEventUtils } from '../../utils-customevent';\nimport { avoidHandler } from '../../utils';\nimport { PacemBehavior } from '../behavior';\n//namespace Pacem.Components {\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst MOUSE_DOWN = 'pacem:rotate:origin';\nconst DELEGATE = 'pacem:rotate:delegate';\nconst OFFSET = 'pacem:rotate:offset';\nconst PIVOT = 'pacem:rotate:center';\nconst TWO_PI = 2 * Math.PI;\nclass RotateElementDelegate {\n constructor(_element, _rotator, _logFn) {\n this._element = _element;\n this._rotator = _rotator;\n this._logFn = _logFn;\n this._startTime = Date.now();\n this._moveHandler = (evt) => {\n evt.stopPropagation();\n const el = this._element, previousPosition = this._previousPosition, rotator = this._rotator, minRotation = rotator.minRotation, maxRotation = rotator.maxRotation, currentPosition = (evt instanceof MouseEvent ? { x: evt.pageX, y: evt.pageY } : { x: evt.touches[0].pageX, y: evt.touches[0].pageY }), pivot = this._pivot;\n var currentAngle = this._computeAngle(pivot, currentPosition, previousPosition) + this._previousAngle;\n var renderedAngle = this._constraintAngle(currentAngle, rotator.step);\n this._logFn(LogLevel.Log, `previousPosition: ${JSON.stringify(previousPosition)}, currentPosition: ${JSON.stringify(currentPosition)}`, `Rotating`);\n if (currentAngle > maxRotation) {\n currentAngle = maxRotation;\n }\n while (renderedAngle > maxRotation && rotator.step > 0) {\n this._logFn(LogLevel.Log, `angle: ${renderedAngle} constrained to max: ${maxRotation}`, `Rotating`);\n renderedAngle -= rotator.step;\n }\n if (currentAngle < minRotation) {\n currentAngle = minRotation;\n }\n while (renderedAngle < minRotation && rotator.step > 0) {\n this._logFn(LogLevel.Log, `angle: ${renderedAngle} constrained to min: ${minRotation}`, `Rotating`);\n renderedAngle += rotator.step;\n }\n this._logFn(LogLevel.Log, `angle: ${renderedAngle}, origin: ${JSON.stringify(this._originalPosition)}, current: ${JSON.stringify(currentPosition)}`, `Rotating`);\n if (renderedAngle != this._previousRenderedAngle) {\n let evtRot = new RotateEvent(RotateEventType.Rotate, RotateEventArgsClass.fromArgs({\n element: this._element, origin: this._originalPosition, startTime: this._startTime, currentPosition: currentPosition, rotation: renderedAngle, center: this._pivot\n }), { cancelable: true }, evt);\n this._rotator.dispatchEvent(evtRot);\n if (!evtRot.defaultPrevented) {\n const m0 = this._originalTransform;\n const m = Matrix2D.rotate(m0, renderedAngle - this._originalAngle);\n el.style.transform = `matrix(${m.a}, ${m.b}, ${m.c}, ${m.d}, ${m.e}, ${m.f})`;\n SET_VAL(this._element, OFFSET, renderedAngle);\n }\n this._previousRenderedAngle = renderedAngle;\n }\n // step\n this._previousPosition = currentPosition;\n this._previousAngle = currentAngle;\n };\n this._endHandler = (e) => {\n e.stopPropagation();\n let evt = new RotateEvent(RotateEventType.End, RotateEventArgsClass.fromArgs({\n element: this._element, origin: this._originalPosition, startTime: this._startTime, currentPosition: this._previousPosition, rotation: this._previousAngle, center: this._pivot\n }), {}, e);\n // body\n this._rotator.dispatchEvent(evt);\n DEL_VAL(this._element, DELEGATE);\n window.removeEventListener('mouseup', this._endHandler, false);\n window.removeEventListener('touchend', this._endHandler, false);\n window.removeEventListener('mousemove', this._moveHandler, false);\n window.removeEventListener('touchmove', this._moveHandler, false);\n };\n window.addEventListener('mouseup', this._endHandler, false);\n window.addEventListener('touchend', this._endHandler, false);\n window.addEventListener('mousemove', this._moveHandler, false);\n window.addEventListener('touchmove', this._moveHandler, false);\n this._originalPosition = this._previousPosition = GET_VAL(_element, MOUSE_DOWN);\n this._originalAngle = this._previousAngle = this._previousRenderedAngle = GET_VAL(_element, OFFSET, 0);\n this._pivot = GET_VAL(_element, PIVOT);\n //\n this._originalTransform = Utils.Css.deserializeTransform(_element);\n }\n _computeAngle(pivot, start, current) {\n return Angle.angleBetween(pivot, start, current);\n }\n _constraintAngle(x, step) {\n if (step > 0) {\n return Numbers.round(x, step);\n }\n return x;\n }\n}\nlet PacemRotateElement = class PacemRotateElement extends PacemBehavior {\n constructor() {\n super(...arguments);\n this._startHandler = (evt) => {\n if (this.disabled) {\n return;\n }\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const el = evt.currentTarget, origin = coords.page;\n const bbox = Utils.offsetRect(el), w2 = bbox.width / 2.0, h2 = bbox.height / 2.0;\n var pivot = this.center;\n if (Utils.isNull(pivot)) {\n pivot = { x: bbox.x + w2, y: bbox.y + h2 };\n el.style.transformOrigin = '50% 50%';\n }\n else {\n const offX = bbox.x + w2 - pivot.x, offY = bbox.y + h2 - pivot.y;\n el.style.transformOrigin = `${-offX}px ${-offY}px`;\n }\n // start\n const initEvent = new RotateEvent(RotateEventType.Start, RotateEventArgsClass.fromArgs({\n currentPosition: origin, rotation: GET_VAL(el, OFFSET, 0), center: pivot,\n origin: origin, element: el, startTime: Date.now()\n }), { cancelable: true }, evt);\n this.dispatchEvent(initEvent);\n // canceled?\n if (initEvent.defaultPrevented) {\n return;\n }\n // stop evt propagation (may cause page reload on touch/mobile devices)\n avoidHandler(evt);\n SET_VAL(el, MOUSE_DOWN, origin);\n SET_VAL(el, PIVOT, pivot);\n SET_VAL(el, DELEGATE, new RotateElementDelegate(el, this, \n /* logging */ (level, message, category) => this.log.apply(this, [level, message, category])));\n };\n }\n decorate(element) {\n const el = element;\n Utils.addClass(el, PCSS + '-rotatable');\n const options = { capture: false, passive: false };\n element.addEventListener('mousedown', this._startHandler, false);\n element.addEventListener('touchstart', this._startHandler, options);\n }\n undecorate(element) {\n const el = element;\n Utils.removeClass(el, PCSS + '-rotatable');\n const options = { capture: false, passive: false };\n element.removeEventListener('mousedown', this._startHandler, false);\n element.removeEventListener('touchstart', this._startHandler, options);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRotateElement.prototype, \"step\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRotateElement.prototype, \"minRotation\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemRotateElement.prototype, \"maxRotation\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Point })\n], PacemRotateElement.prototype, \"center\", void 0);\nPacemRotateElement = __decorate([\n CustomElement({ tagName: P + '-rotate' })\n], PacemRotateElement);\nexport { PacemRotateElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Utils, P, PCSS, CustomElement, Watch, PropertyConverters } from './_default-imports';\nimport { Matrix2D } from '@pacem/pacem-foundation';\nimport { SwipeEvent, SwipeEventArgsClass, SwipeEventType } from '../../ui/swipe';\nimport { CustomElementUtils } from '../../utils-customelement';\nimport { CustomEventUtils } from '../../utils-customevent';\nimport { PacemBehavior } from '../behavior';\n//namespace Pacem.Components {\nconst GET_VAL = CustomElementUtils.getAttachedPropertyValue;\nconst SET_VAL = CustomElementUtils.setAttachedPropertyValue;\nconst DEL_VAL = CustomElementUtils.deleteAttachedPropertyValue;\nconst PREPARING_LABEL = 'pacem:swipe:preparing';\nconst DELEGATE_LABEL = 'pacem:swipe:delegate';\nconst DEFAULT_OPTIONS = { fling: 400, inertia: 8, start: 32, autoresetSpans: false, bouncy: true };\nclass SwipeElementDelegate {\n constructor(_element, _swiper, _init, _logFn) {\n this._element = _element;\n this._swiper = _swiper;\n this._init = _init;\n this._logFn = _logFn;\n this._moveHandler = (evt) => {\n const samples = this.#samples;\n const state = this._buildStateFromUiEvent(evt);\n samples.push(this.#state = state);\n while (samples.length > 0\n && state.timestamp - samples[0].timestamp > 100) {\n samples.shift();\n }\n const args = this._buildSwipeArgsFromState(state); // SwipeEventArgsClass.fromArgs({ position: state.position, element: this._element, t0: this._init, timestamp: state.timestamp });\n const swipeEvt = new SwipeEvent(SwipeEventType.Pan, args, { cancelable: true, bubbles: false });\n const swiper = this._swiper;\n swiper.dispatchEvent(swipeEvt);\n if (!swipeEvt.defaultPrevented) {\n let { delta } = this._delta(this._init, state);\n if (!swiper.options.bouncy) {\n // clamp delta just in case\n const snaps = swiper.snaps.slice().sort();\n const snapFirst = snaps[0], snapLast = snaps[snaps.length - 1];\n const dir = this._swiper.direction;\n const { x, y } = delta;\n const deltaX = x.clamp(snapFirst, snapLast), deltaY = y.clamp(snapFirst, snapLast);\n delta = dir === 'vertical'\n ? { x: 0, y: deltaY }\n : { x: deltaX, y: 0 };\n }\n this._animateOffsetBy(delta, 0);\n }\n };\n this._endHandler = (evt) => {\n // detach move listener\n window.removeEventListener('pointermove', this._moveHandler);\n // estimate goal\n if (Utils.isNull(this.#state)) {\n console.log('How come?!');\n }\n else {\n const args = this._buildSwipeArgsFromState();\n const swipeEvt = new SwipeEvent(SwipeEventType.Swipe, args, { cancelable: true, bubbles: false });\n const swiper = this._swiper;\n swiper.dispatchEvent(swipeEvt);\n if (!swipeEvt.defaultPrevented) {\n const swipe1Evt = new SwipeEvent((\"swipe\" + args.direction), args, { cancelable: true, bubbles: false });\n swiper.dispatchEvent(swipe1Evt);\n if (!swipe1Evt.defaultPrevented) {\n // if the predicted distance is greater than the original position + half the distance to the nearest snap,\n const snaps = swiper.snaps ?? [0.0];\n snaps.sort();\n const target = swiper.options.bouncy ? args.predictedDelta : args.predictedDelta.clamp(snaps[0], snaps[snaps.length - 1]);\n // then animate toward that target,\n // otherwise bounce back\n const snap = snaps.reduce((acc, v) => {\n const distance = Math.abs(v - target);\n const current = Math.abs(acc - target);\n return distance < current ? v : acc;\n }, 0);\n const vertical = swiper.direction === 'vertical';\n const duration = args.predictedDuration;\n const delta0 = vertical ? { x: 0, y: target } : { x: target, y: 0 };\n // centralized swipeanimationend dispatcher\n const swipeAnimationEnd = () => {\n const swipe2Evt = new SwipeEvent(SwipeEventType.SwipeAnimationEnd, args, { cancelable: false, bubbles: false });\n if (swiper.dispatchEvent(swipe2Evt)) {\n return swipe2Evt;\n }\n return null;\n };\n if (snap.isCloseTo(0)) {\n this._animateOffsetBy(delta0, duration).then(() => {\n this._animateOffsetBy({ x: 0, y: 0 }, .3, 'cubic-bezier(.37,-0.01,.34,1.43)').then(() => swipeAnimationEnd());\n });\n }\n else {\n // animation to reach the predicted offset (if does not exceed the target snap, then void)\n const doesNotExceed = (snap - target) * (snap - args.delta) >= 0;\n const delta1 = vertical ? { x: 0, y: snap } : { x: snap, y: 0 };\n // animation that reaches the correct snap\n const animation = () => this._animateOffsetBy(delta1, doesNotExceed ? duration : .2, 'cubic-bezier(0,0,0,1)');\n const promise = () => doesNotExceed ? Promise.resolve() : this._animateOffsetBy(delta0, duration);\n promise().then(() => animation().then(() => {\n // generic \n swipeAnimationEnd();\n // specific\n const swipe3Evt = new SwipeEvent((\"swipe\" + args.direction + \"animationend\"), args, { cancelable: false, bubbles: false });\n swiper.dispatchEvent(swipe3Evt);\n }));\n }\n if (this.#options.autoresetSpans) {\n this._swiper.snaps = snaps.map(s => s - snap);\n }\n }\n }\n }\n this.dispose();\n };\n this.#samples = [];\n const el = _element;\n this.#options = Utils.extend({}, DEFAULT_OPTIONS, _swiper.options ?? {});\n this.#originalTransform = Utils.deserializeTransform(getComputedStyle(el));\n window.addEventListener('pointermove', this._moveHandler, false);\n window.addEventListener('pointerup', this._endHandler, false);\n window.addEventListener('pointercancel', this._endHandler, false);\n }\n _serializeTransformMatrix(m) {\n return `matrix3d(${m.a},${m.b},0,0,${m.c},${m.d},0,0,0,0,1,0,${m.e},${m.f},0,1)`;\n }\n _animateOffsetBy(delta, seconds, easing = Utils.Css.getVariableValue(`--${PCSS}-easing-out-sine`)) {\n const m = Matrix2D.translate(this.#originalTransform, delta);\n const time = Math.min(.3, seconds) * 1000;\n const element = this._element;\n const t = this._serializeTransformMatrix(m);\n return new Promise((resolve, _) => {\n const animation = element.animate([\n { transform: t }\n ], {\n fill: 'forwards',\n duration: time, easing\n });\n const callback = (e) => {\n animation.removeEventListener('finish', callback);\n animation.commitStyles();\n animation.cancel();\n resolve();\n };\n animation.addEventListener('finish', callback, false);\n });\n }\n _buildStateFromUiEvent(evt) {\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const now = performance.now();\n const state = {\n position: coords.client,\n timestamp: now,\n };\n return state;\n }\n _buildSwipeArgsFromState(state = this.#state) {\n const options = this.#options;\n const speed = this.speed;\n const dir = this._swiper.direction;\n const vertical = dir === 'vertical';\n const horizontalspeed = vertical ? 0 : speed, verticalspeed = vertical ? speed : 0;\n // console.log(\"state:\");\n // console.log(state.position);\n // console.log(\"init:\");\n // console.log(this._init);\n // console.log(`vertical: ${vertical}`);\n // console.log(`h speed: ${horizontalspeed}`);\n // console.log(`v speed: ${verticalspeed}`);\n const args = SwipeEventArgsClass.fromArgs({\n position: state.position, element: this._element, t0: this._init, timestamp: state.timestamp, inertia: options.inertia, fling: options.fling,\n horizontalspeed, verticalspeed, vertical\n });\n //console.log(args);\n return args;\n }\n _delta(s0, s1) {\n const { position: { x: x0, y: y0 }, timestamp: t0 } = s0;\n const { position: { x: x1, y: y1 }, timestamp: t1 } = s1;\n const dir = this._swiper.direction;\n const delta = dir === 'vertical'\n ? { x: 0, y: y1 - y0 }\n : { x: x1 - x0, y: 0 };\n return { delta, time: t1 - t0 };\n }\n /** pixels/second */\n get speed() {\n const samples = this.#samples;\n if (samples.length < 2) {\n return 0;\n }\n const s0 = samples[0], s1 = samples[samples.length - 1];\n const { delta, time } = this._delta(s0, s1);\n const dt = time / 1000;\n const ds = delta.x + delta.y /* either x or y is 0, then this is a legit (and convenient) way to compute the magnitude */;\n return dt > 0 ? ds / dt : 0;\n }\n #options;\n #samples;\n #originalTransform;\n #state;\n dispose() {\n const el = this._element;\n DEL_VAL(el, DELEGATE_LABEL);\n window.removeEventListener('pointercancel', this._endHandler);\n window.removeEventListener('pointerup', this._endHandler);\n }\n}\nlet PacemSwipeElement = class PacemSwipeElement extends PacemBehavior {\n constructor() {\n super(...arguments);\n this._prepareHandler = (evt) => {\n if (this.disabled) {\n return;\n }\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const el = evt.currentTarget, origin = coords.client;\n // check the handle selector\n const hs = this.handleSelector;\n if (!Utils.isNullOrEmpty(hs)\n && el.querySelector(hs) !== evt.target) {\n return;\n }\n evt.stopPropagation();\n SET_VAL(el, PREPARING_LABEL, { position: origin, timestamp: performance.now() });\n SET_VAL(window, PREPARING_LABEL, el);\n window.addEventListener('pointermove', this._startHandler, false);\n window.addEventListener('pointerup', this._undoHandler, false);\n };\n this._startHandler = (evt) => {\n const el = GET_VAL(window, PREPARING_LABEL); // evt.currentTarget; // wrong! targets Window!\n const init = GET_VAL(el, PREPARING_LABEL);\n if (Utils.isNull(init)) {\n this._undo(el);\n return;\n }\n const coords = CustomEventUtils.getEventCoordinates(evt);\n const { x, y } = coords.client;\n const { position: { x: x0, y: y0 } } = init;\n const direction = this.direction || 'horizontal';\n const vertical = direction === 'vertical';\n const delta = vertical\n ? y - y0\n : x - x0;\n const options = this.#options, { start: threshold } = options;\n if (Math.abs(delta) > threshold) {\n // reset detection handlers\n // and remove attached data\n this._undo(el);\n // attach actual swipe delegate\n const swiper = this;\n const delegate = new SwipeElementDelegate(el, swiper, init, (level, message, category) => { swiper.log(level, message, category); });\n SET_VAL(el, DELEGATE_LABEL, delegate);\n }\n };\n this._undoHandler = (evt) => {\n const el = evt.currentTarget;\n this._undo(el);\n };\n }\n decorate(element) {\n // https://docs.microsoft.com/en-us/microsoft-edge/dev-guide/dom/pointer-events\n if (element instanceof HTMLElement || element instanceof SVGElement) {\n Utils.addClass(element, PCSS + '-swipe');\n }\n element.addEventListener('pointerdown', this._prepareHandler, false);\n }\n undecorate(element) {\n if (element instanceof HTMLElement || element instanceof SVGElement) {\n Utils.removeClass(element, PCSS + '-swipe');\n }\n element.removeEventListener('pointerdown', this._prepareHandler, false);\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._setOptions();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (first) {\n return;\n }\n switch (name) {\n case 'options':\n this._setOptions(val);\n break;\n }\n }\n #options;\n _setOptions(options = this.options) {\n this.#options = Utils.extend({}, DEFAULT_OPTIONS, options ?? {});\n }\n _undo(el) {\n window.removeEventListener('pointermove', this._startHandler);\n window.removeEventListener('pointerup', this._undoHandler);\n DEL_VAL(el, PREPARING_LABEL);\n DEL_VAL(window, PREPARING_LABEL);\n }\n};\n__decorate([\n Watch({\n emit: false, reflectBack: true, converter: {\n convert: (attr, _) => attr.match(/[-+]?[\\d\\.]+/g).map(i => parseFloat(i)),\n convertBack: (prop, _) => prop?.join(' ')\n }\n })\n], PacemSwipeElement.prototype, \"snaps\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String, reflectBack: true })\n], PacemSwipeElement.prototype, \"direction\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Json })\n], PacemSwipeElement.prototype, \"options\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String, reflectBack: true })\n], PacemSwipeElement.prototype, \"handleSelector\", void 0);\nPacemSwipeElement = __decorate([\n CustomElement({ tagName: P + '-swipe' })\n], PacemSwipeElement);\nexport { PacemSwipeElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { TweenService, Easings } from '../../animations';\nimport { PropertyConverters } from '../../converters';\nimport { PacemItemElement } from '../basic';\nimport { Watch } from '../../decorators';\n//namespace Pacem.Components {\nconst EasingConverter = {\n convert: (attr) => Easings[attr] ?? Easings.linear\n};\nexport class AnimationElement extends PacemItemElement {\n}\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Element })\n], AnimationElement.prototype, \"target\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], AnimationElement.prototype, \"property\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], AnimationElement.prototype, \"delay\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], AnimationElement.prototype, \"duration\", void 0);\n__decorate([\n Watch({ emit: false, converter: EasingConverter })\n], AnimationElement.prototype, \"easing\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], AnimationElement.prototype, \"iterations\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], AnimationElement.prototype, \"direction\", void 0);\nexport class TweenAnimationElement extends AnimationElement {\n constructor(_tweener = new TweenService()) {\n super();\n this._tweener = _tweener;\n }\n get tweener() {\n return this._tweener;\n }\n #cancelToken = false;\n startAnimation() {\n this.#cancelToken = false;\n return new Promise((resolve, _) => {\n this._tweener\n .run(.0, 1.0, this.duration ?? 0, this.delay ?? 0, this.easing ?? Easings.linear, (t, v) => {\n if (!this.#cancelToken) {\n this.target[this.property] = this.tweenInterpolationCallback(t, v);\n }\n })\n .then(resolve);\n });\n }\n cancelAnimation() {\n this.#cancelToken = true;\n }\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Colors } from '@pacem/pacem-foundation';\nimport { Utils } from '../../utils';\nimport { PropertyConverters } from '../../converters';\nimport { Watch, CustomElement } from '../../decorators';\nimport { P } from '../../prefix';\nimport { TweenAnimationElement } from './animation';\n//namespace Pacem.Components {\nconst DEFAULT_FROM = { h: 0, l: 0, s: 0.5, a: 1 };\nconst DEFAULT_TO = { h: 0, l: 1, s: 0.5, a: 1 };\nlet PacemColorAnimationElement = class PacemColorAnimationElement extends TweenAnimationElement {\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'from':\n this._precomputeFrom(val);\n break;\n case 'to':\n this._precomputeTo(val);\n break;\n }\n }\n }\n #from = DEFAULT_FROM;\n #to = DEFAULT_TO;\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._precomputeColors();\n }\n _precomputeColors() {\n this._precomputeFrom();\n this._precomputeTo();\n }\n _precomputeFrom(v = this.from) {\n this.#from = this._precomputeColor(v) ?? DEFAULT_FROM;\n }\n _precomputeTo(v = this.to) {\n this.#to = this._precomputeColor(v) ?? DEFAULT_FROM;\n }\n _precomputeColor(clr) {\n if (!Utils.isNullOrEmpty(clr)) {\n try {\n return this._parseColor(clr);\n }\n catch {\n return null;\n }\n }\n }\n _parseColor(clr) {\n return Colors.hsl(Colors.parse(clr));\n }\n tweenInterpolationCallback(time, progress) {\n const from = this.#from, to = this.#to;\n const hsla = {\n h: (to.h - from.h) * progress + from.h,\n s: (to.s - from.s) * progress + from.s,\n l: (to.l - from.l) * progress + from.l,\n a: (to.a - from.a) * progress + from.a\n };\n return Colors.stringify(hsla);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemColorAnimationElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.String })\n], PacemColorAnimationElement.prototype, \"to\", void 0);\nPacemColorAnimationElement = __decorate([\n CustomElement({ tagName: P + '-color-animation' })\n], PacemColorAnimationElement);\nexport { PacemColorAnimationElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PropertyConverters } from '../../converters';\nimport { Watch, CustomElement } from '../../decorators';\nimport { P } from '../../prefix';\nimport { TweenAnimationElement } from './animation';\n//namespace Pacem.Components {\nconst DEFAULT_FROM = 0;\nconst DEFAULT_TO = 1;\nlet PacemNumberAnimationElement = class PacemNumberAnimationElement extends TweenAnimationElement {\n tweenInterpolationCallback(time, progress) {\n const to = this.to ?? DEFAULT_TO, from = this.from ?? DEFAULT_FROM;\n return (to - from) * progress + from;\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemNumberAnimationElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemNumberAnimationElement.prototype, \"to\", void 0);\nPacemNumberAnimationElement = __decorate([\n CustomElement({ tagName: P + '-number-animation' })\n], PacemNumberAnimationElement);\nexport { PacemNumberAnimationElement };\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PropertyConverters } from '../../converters';\nimport { Watch, CustomElement } from '../../decorators';\nimport { P } from '../../prefix';\nimport { TweenAnimationElement } from './animation';\n//namespace Pacem.Components {\nconst DEFAULT_FROM = { x: 0, y: 0 };\nconst DEFAULT_TO = { x: 1, y: 1 };\nlet PacemPointAnimationElement = class PacemPointAnimationElement extends TweenAnimationElement {\n tweenInterpolationCallback(time, progress) {\n const to = this.to ?? DEFAULT_TO, from = this.from ?? DEFAULT_FROM;\n return {\n x: (to.x - from.x) * progress + from.x,\n y: (to.y - from.y) * progress + from.y\n };\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Point })\n], PacemPointAnimationElement.prototype, \"from\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Point })\n], PacemPointAnimationElement.prototype, \"to\", void 0);\nPacemPointAnimationElement = __decorate([\n CustomElement({ tagName: P + '-point-animation' })\n], PacemPointAnimationElement);\nexport { PacemPointAnimationElement };\n//}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Utils } from '../../utils';\nimport { PropertyConverters } from '../../converters';\nimport { PacemItemsContainerElement } from '../basic';\nimport { Watch, CustomElement } from '../../decorators';\nimport { P } from '../../prefix';\nimport { AnimationElement } from './animation';\n//namespace Pacem.Components {\nlet PacemStoryboardElement = class PacemStoryboardElement extends PacemItemsContainerElement {\n validate(item) {\n return item instanceof AnimationElement;\n }\n viewActivatedCallback() {\n super.viewActivatedCallback();\n this._animate();\n }\n propertyChangedCallback(name, old, val, first) {\n super.propertyChangedCallback(name, old, val, first);\n if (!first) {\n switch (name) {\n case 'datasource':\n this._buildDatasourceFromDatasource(val);\n break;\n case 'items':\n this._buildDatasourceFromItems(val);\n break;\n case '_adaptedDatasource':\n case 'autostart':\n this._animate();\n break;\n }\n }\n }\n _buildDatasourceFromItems(items = this.items) {\n this._adaptedDatasource = items || [];\n }\n _buildDatasourceFromDatasource(ds = this.datasource) {\n this._adaptedDatasource = ds || [];\n }\n _animate(start = this.autostart) {\n const ds = this._adaptedDatasource;\n const promises = [];\n if (start && !Utils.isNullOrEmpty(ds)) {\n for (let timeline of ds) {\n promises.push(timeline.startAnimation());\n }\n }\n return Promise.all(promises);\n }\n cancelAnimation() {\n const ds = this._adaptedDatasource || [];\n for (let timeline of ds) {\n timeline.cancelAnimation();\n }\n }\n startAnimation() {\n return this._animate(true);\n }\n};\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Boolean })\n], PacemStoryboardElement.prototype, \"autostart\", void 0);\n__decorate([\n Watch({ emit: false, converter: PropertyConverters.Number })\n], PacemStoryboardElement.prototype, \"duration\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemStoryboardElement.prototype, \"datasource\", void 0);\n__decorate([\n Watch({ emit: false })\n], PacemStoryboardElement.prototype, \"_adaptedDatasource\", void 0);\nPacemStoryboardElement = __decorate([\n CustomElement({ tagName: P + '-storyboard' })\n], PacemStoryboardElement);\nexport { PacemStoryboardElement };\n","//namespace Pacem {\nexport const Defaults = {\n USE_SHADOW_ROOT: /*'attachShadow' in Element.prototype &&*/ false /* <- wait until html-imports */\n};\n//}\n","//namespace Pacem.RegularExpressions {\nexport const EMPTY_MATCHER = /a^/;\nexport class Regex {\n /**\n * Splits an input string into segments based on a matching pattern.\n * @param input Input string\n * @param pattern RegExp pattern\n */\n static split(input, pattern) {\n var matches, index = 0, trunks = [];\n while ((matches = pattern.exec(input)) != null) {\n trunks.push({ value: input.substr(index, matches.index - index), match: false, index: index });\n let length = matches[0].length;\n trunks.push({ value: input.substr(matches.index, length), match: true, index: matches.index });\n index = matches.index + length;\n }\n if (index < input.length)\n trunks.push({ value: input.substr(index, input.length - index), match: false, index: index });\n return trunks;\n }\n}\n//}\n","/// <reference path=\"decorators.ts\" />\n//namespace Pacem {\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { PCSS } from './prefix';\nimport { Utils } from './utils';\nimport { CustomElementUtils } from './utils-customelement';\nimport { Transformer } from './decorators';\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nfunction buildDiffOptions(modeOrOutput, outputOrCssAdd, cssAddOrRemove, cssRemoveIfAny) {\n let mode = 'char';\n let output = 'full';\n let cssAdd;\n let cssRemove;\n if (['line', 'word', 'char'].includes(modeOrOutput)) {\n mode = modeOrOutput;\n output = outputOrCssAdd;\n cssAdd = cssAddOrRemove;\n cssRemove = cssRemoveIfAny;\n }\n else {\n output = modeOrOutput;\n cssAdd = outputOrCssAdd;\n cssRemove = cssAddOrRemove;\n }\n return {\n mode,\n output,\n cssAdd: cssAdd ?? 'fill-green-container',\n cssRemove: cssRemove ?? 'fill-red-container',\n };\n}\nclass Transforms {\n static highlight(src, query, css = PCSS + '-highlight') {\n if (!query || !src)\n return src;\n let output = src.substring(0);\n const trunks = query.substring(0).split(' ');\n for (var j = 0; j < trunks.length; j++) {\n const trunk = escapeRegExp(trunks[j]);\n const regex = new RegExp('(?![^<>]*>)' + trunk, 'gi');\n output = output.replace(regex, function (piece, index, whole) {\n var startTagNdx, endTagIndex;\n if ((startTagNdx = whole.indexOf('<', index)) != (endTagIndex = whole.indexOf('</', index)) || startTagNdx == -1)\n return '<span class=\"' + css + '\">' + piece + '</span>';\n return piece;\n });\n }\n return output;\n }\n static diff(a, b, modeOrOutput = 'full', outputOrCssAdd, cssAddOrRemove, cssRemoveIfAny) {\n const { mode, output, cssAdd, cssRemove } = buildDiffOptions(modeOrOutput, outputOrCssAdd, cssAddOrRemove, cssRemoveIfAny);\n const tokens = Utils.diff(a, b, mode);\n return tokens.reduce((acc, token) => {\n const t = token.type;\n if (t === '=') {\n acc += token.value;\n }\n else if (t === '+' && output !== 'left' || t === '-' && output !== 'right') {\n const lines = token.value.split(/\\r?\\n/);\n const lUpperBound = lines.length - 1;\n for (let l = 0; l <= lUpperBound; l++) {\n const line = lines[l];\n if (!Utils.isNullOrEmpty(line) || l < lUpperBound) {\n const css = t === '-' ? cssRemove : cssAdd;\n acc += `<span class=\"${PCSS}-token ${css} text-prewrap\">${line || ' '}</span>`;\n }\n if (l < lUpperBound) {\n acc += '\\n';\n }\n }\n }\n return acc;\n }, '');\n }\n static padleft(src, length, pad) {\n return Utils.leftPad('' + src, length, pad);\n }\n static size(src) {\n // TODO: use logarithms\n if (!(src > 0))\n return '-';\n if (src < 1024 /* 1kB */)\n return src + ' B';\n if (src < 1_048_576 /* 1MB */)\n return (src / 1024).toFixed(2) + ' kB';\n if (src < 1_073_741_824 /* 1GB */)\n return (src / 1_048_576).toFixed(2) + ' MB';\n return (src / 1_073_741_824).toFixed(2) + ' GB';\n }\n static decToDeg(src, degSeparator = '° ', minSeparator = '\\' ', secSeparator = '\"') {\n const sign = Math.sign(src);\n src = Math.abs(src);\n const deg = Math.floor(src), min0 = (src - deg) * 60, min = Math.floor(min0), sec0 = (min0 - min) * 60, sec = Math.floor(sec0);\n return (sign < 0 ? '-' : '') + deg + degSeparator + min + minSeparator + sec + secSeparator;\n }\n static date(src, format, culture) {\n var date = Utils.parseDate(src), lang = culture || navigator.language;\n if (Utils.isNull(format) || typeof format === 'string') {\n switch (format) {\n case 'iso':\n return date.toISOString();\n case 'isodate':\n return date.toISOString().substring(0, 10);\n case 'localdate':\n return `${date.getFullYear()}-${Utils.leftPad(date.getMonth() + 1, 2, '0')}-${Utils.leftPad(date.getDate(), 2, '0')}`;\n case 'time':\n case 'localtime':\n return date.toLocaleTimeString(lang, { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false });\n case 'full':\n const offset = -(date.getTimezoneOffset() / 60);\n var utc = '';\n if (offset != 0)\n utc = ' (UTC' + ((offset > 0 ? '+' : '-') + Math.abs(offset).toLocaleString()) + ')';\n return date.toLocaleString(lang) + utc;\n default:\n return date.toLocaleDateString(lang);\n }\n }\n else {\n return date.toLocaleString(culture, format);\n }\n }\n static timespan(start, end, format, culture) {\n const startDate = Utils.parseDate(start), endDate = Utils.parseDate(end), span = endDate.valueOf() - startDate.valueOf(), sign = span < 0 ? '-' : '', elapsed = Math.abs(span);\n if (typeof format === 'object') {\n const adj = { timeZone: 'UTC', hour12: false }, tweakedFormat = Utils.extend(adj, format);\n return (sign || (format.sign ? '+' : '')) + Intl.DateTimeFormat(culture ?? navigator.language, tweakedFormat).format(elapsed);\n }\n // legacy output\n const msecsPerDay = 86400000, msecsPerHr = 3600000, msecsPerMin = 60000, days = Math.floor(elapsed / msecsPerDay), hrs = Math.floor((elapsed % msecsPerDay) / msecsPerHr), mins = Math.floor((elapsed % msecsPerHr) / msecsPerMin), secs = Math.floor((elapsed % msecsPerMin) / 1000), msecs = Math.floor(elapsed % 1000);\n return `${sign}${days}d ${hrs}h ${mins}m ${secs}s ${msecs}ms`;\n }\n static currency(src, currency, culture) {\n return new Intl.NumberFormat(culture ?? navigator.language, { style: 'currency', currency: currency }).format(src);\n }\n static number(src, formatOrCulture, culture) {\n if (typeof formatOrCulture === 'string') {\n return new Intl.NumberFormat(formatOrCulture || navigator.language).format(src);\n }\n return new Intl.NumberFormat(culture ?? navigator.language, formatOrCulture).format(src);\n }\n static filter(src, filter) {\n return src.filter(filter);\n }\n static orderby(src, prop) {\n return src.sort((a, b) => {\n if (!Utils.isNullOrEmpty(prop)) {\n a = a[prop];\n b = b[prop];\n }\n return a > b ? 1 : (a < b ? -1 : 0);\n });\n }\n // #region RegExp\n static isMatch(input, pattern, flags) {\n return new RegExp(pattern, flags).test(input);\n }\n // #endregion\n // #region shortcuts from 'Utils'\n static isEmpty(obj) {\n return Utils.isEmpty(obj);\n }\n static isNull(obj) {\n return Utils.isNull(obj);\n }\n static isNullOrEmpty(obj) {\n return Utils.isNullOrEmpty(obj);\n }\n static getCssVariable(name) {\n return Utils.Css.getVariableValue(name);\n }\n static getQuerystring(name) {\n return Utils.URIs.parseQuery()[name];\n }\n // #endregion\n // #region shortcuts from 'CustomElementUtils'\n static importThemeWebFonts() {\n return CustomElementUtils.Theme.importWebFonts();\n }\n static findHostContext(element) {\n return CustomElementUtils.findHostContext(element);\n }\n}\n__decorate([\n Transformer()\n], Transforms, \"highlight\", null);\n__decorate([\n Transformer()\n], Transforms, \"diff\", null);\n__decorate([\n Transformer()\n], Transforms, \"padleft\", null);\n__decorate([\n Transformer()\n], Transforms, \"size\", null);\n__decorate([\n Transformer()\n], Transforms, \"decToDeg\", null);\n__decorate([\n Transformer()\n], Transforms, \"date\", null);\n__decorate([\n Transformer()\n], Transforms, \"timespan\", null);\n__decorate([\n Transformer()\n], Transforms, \"currency\", null);\n__decorate([\n Transformer()\n], Transforms, \"number\", null);\n__decorate([\n Transformer()\n], Transforms, \"filter\", null);\n__decorate([\n Transformer()\n], Transforms, \"orderby\", null);\n__decorate([\n Transformer('regex.')\n], Transforms, \"isMatch\", null);\n__decorate([\n Transformer()\n], Transforms, \"isEmpty\", null);\n__decorate([\n Transformer()\n], Transforms, \"isNull\", null);\n__decorate([\n Transformer()\n], Transforms, \"isNullOrEmpty\", null);\n__decorate([\n Transformer('cssvar')\n], Transforms, \"getCssVariable\", null);\n__decorate([\n Transformer('querystring')\n], Transforms, \"getQuerystring\", null);\n__decorate([\n Transformer()\n], Transforms, \"importThemeWebFonts\", null);\n__decorate([\n Transformer('host')\n], Transforms, \"findHostContext\", null);\n//}\n","import { DeepMerger } from '@pacem/pacem-foundation';\nimport * as Output from './index';\nDeepMerger.merge(Output);\n"],"names":["Keys","Dates","Colors","Strings","Blobs","Imaging","detect","NullChecker","Point","RepeaterItem","GET_VAL","SET_VAL","Size","Rect","DEL_VAL","Transforms","__decorate","this","HistoryService","RepeaterItemBase","ORCHESTRATOR","PacemAnimationEvent","MOUSE_DOWN","DELEGATE","Matrix2D","PacemRepeaterItem","Angle","Numbers","DEFAULT_FROM","DEFAULT_TO","DeepMerger"],"mappings":"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"}