@oiz/stzh-components 3.3.0-beta4 → 3.3.0-beta6

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 (118) hide show
  1. package/dist/cjs/{app-globals-add1c2c1.js → app-globals-2cd4f46b.js} +2 -2
  2. package/dist/cjs/{app-globals-add1c2c1.js.map → app-globals-2cd4f46b.js.map} +1 -1
  3. package/dist/cjs/{arrow-16638ece.js → arrow-6135123b.js} +116 -49
  4. package/dist/cjs/arrow-6135123b.js.map +1 -0
  5. package/dist/cjs/index.cjs.js.map +1 -1
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/stzh-app-nav.cjs.entry.js +9 -1
  8. package/dist/cjs/stzh-app-nav.cjs.entry.js.map +1 -1
  9. package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
  10. package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
  11. package/dist/cjs/stzh-components.cjs.js +2 -2
  12. package/dist/cjs/stzh-header.cjs.entry.js +23 -13
  13. package/dist/cjs/stzh-header.cjs.entry.js.map +1 -1
  14. package/dist/cjs/stzh-popover_2.cjs.entry.js +21 -9
  15. package/dist/cjs/stzh-popover_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/stzh-row.cjs.entry.js +1 -1
  17. package/dist/cjs/stzh-row.cjs.entry.js.map +1 -1
  18. package/dist/cjs/stzh-tooltip.cjs.entry.js +20 -8
  19. package/dist/cjs/stzh-tooltip.cjs.entry.js.map +1 -1
  20. package/dist/cjs/stzh-upload.cjs.entry.js +1 -1
  21. package/dist/cjs/stzh-upload.cjs.entry.js.map +1 -1
  22. package/dist/collection/components/stzh-app-nav/stzh-app-nav.js +32 -1
  23. package/dist/collection/components/stzh-app-nav/stzh-app-nav.js.map +1 -1
  24. package/dist/collection/components/stzh-app-nav/stzh-app-nav.stories.js +1 -1
  25. package/dist/collection/components/stzh-button/stzh-button.css +3 -2
  26. package/dist/collection/components/stzh-header/stzh-header.js +34 -20
  27. package/dist/collection/components/stzh-header/stzh-header.js.map +1 -1
  28. package/dist/collection/components/stzh-header/stzh-header.stories.js +9 -9
  29. package/dist/collection/components/stzh-popover/stzh-popover.js +20 -8
  30. package/dist/collection/components/stzh-popover/stzh-popover.js.map +1 -1
  31. package/dist/collection/components/stzh-row/stzh-row.css +240 -184
  32. package/dist/collection/components/stzh-tooltip/stzh-tooltip.js +19 -7
  33. package/dist/collection/components/stzh-tooltip/stzh-tooltip.js.map +1 -1
  34. package/dist/collection/components/stzh-upload/stzh-upload.js +1 -1
  35. package/dist/collection/components/stzh-upload/stzh-upload.js.map +1 -1
  36. package/dist/collection/index.js.map +1 -1
  37. package/dist/components/arrow.js +115 -48
  38. package/dist/components/arrow.js.map +1 -1
  39. package/dist/components/index.js +1 -1
  40. package/dist/components/index2.js.map +1 -1
  41. package/dist/components/stzh-app-nav2.js +10 -2
  42. package/dist/components/stzh-app-nav2.js.map +1 -1
  43. package/dist/components/stzh-button2.js +1 -1
  44. package/dist/components/stzh-button2.js.map +1 -1
  45. package/dist/components/stzh-header.js +27 -16
  46. package/dist/components/stzh-header.js.map +1 -1
  47. package/dist/components/stzh-popover2.js +20 -8
  48. package/dist/components/stzh-popover2.js.map +1 -1
  49. package/dist/components/stzh-row.js +1 -1
  50. package/dist/components/stzh-row.js.map +1 -1
  51. package/dist/components/stzh-tooltip2.js +19 -7
  52. package/dist/components/stzh-tooltip2.js.map +1 -1
  53. package/dist/components/stzh-upload.js +1 -1
  54. package/dist/components/stzh-upload.js.map +1 -1
  55. package/dist/esm/{app-globals-7f5414ca.js → app-globals-0aad39a2.js} +2 -2
  56. package/dist/esm/{app-globals-7f5414ca.js.map → app-globals-0aad39a2.js.map} +1 -1
  57. package/dist/esm/{arrow-fc956b24.js → arrow-8f47d7ea.js} +116 -49
  58. package/dist/esm/arrow-8f47d7ea.js.map +1 -0
  59. package/dist/esm/index.js.map +1 -1
  60. package/dist/esm/loader.js +2 -2
  61. package/dist/esm/stzh-app-nav.entry.js +10 -2
  62. package/dist/esm/stzh-app-nav.entry.js.map +1 -1
  63. package/dist/esm/stzh-badge_3.entry.js +1 -1
  64. package/dist/esm/stzh-badge_3.entry.js.map +1 -1
  65. package/dist/esm/stzh-components.js +2 -2
  66. package/dist/esm/stzh-header.entry.js +23 -13
  67. package/dist/esm/stzh-header.entry.js.map +1 -1
  68. package/dist/esm/stzh-popover_2.entry.js +21 -9
  69. package/dist/esm/stzh-popover_2.entry.js.map +1 -1
  70. package/dist/esm/stzh-row.entry.js +1 -1
  71. package/dist/esm/stzh-row.entry.js.map +1 -1
  72. package/dist/esm/stzh-tooltip.entry.js +20 -8
  73. package/dist/esm/stzh-tooltip.entry.js.map +1 -1
  74. package/dist/esm/stzh-upload.entry.js +1 -1
  75. package/dist/esm/stzh-upload.entry.js.map +1 -1
  76. package/dist/stzh-components/index.esm.js.map +1 -1
  77. package/dist/stzh-components/{p-4f7f4362.entry.js → p-16581003.entry.js} +2 -2
  78. package/dist/stzh-components/p-16581003.entry.js.map +1 -0
  79. package/dist/stzh-components/{p-6009632f.js → p-49fcbbfb.js} +2 -2
  80. package/dist/stzh-components/p-7423c6c2.js +2 -0
  81. package/dist/stzh-components/p-7423c6c2.js.map +1 -0
  82. package/dist/stzh-components/{p-d1aa8602.entry.js → p-8202e541.entry.js} +2 -2
  83. package/dist/stzh-components/p-8202e541.entry.js.map +1 -0
  84. package/dist/stzh-components/p-ab6cc68f.entry.js +2 -0
  85. package/dist/stzh-components/p-ab6cc68f.entry.js.map +1 -0
  86. package/dist/stzh-components/p-b047262a.entry.js +2 -0
  87. package/dist/stzh-components/p-b047262a.entry.js.map +1 -0
  88. package/dist/stzh-components/{p-288fd6f7.entry.js → p-bb4dea97.entry.js} +2 -2
  89. package/dist/stzh-components/{p-288fd6f7.entry.js.map → p-bb4dea97.entry.js.map} +1 -1
  90. package/dist/stzh-components/p-dc4f385d.entry.js +2 -0
  91. package/dist/stzh-components/p-dc4f385d.entry.js.map +1 -0
  92. package/dist/stzh-components/p-ecbac5ca.entry.js +2 -0
  93. package/dist/stzh-components/p-ecbac5ca.entry.js.map +1 -0
  94. package/dist/stzh-components/stzh-components.esm.js +1 -1
  95. package/dist/stzh-components/stzh-components.esm.js.map +1 -1
  96. package/dist/types/components/stzh-app-nav/stzh-app-nav.d.ts +5 -1
  97. package/dist/types/components/stzh-header/stzh-header.d.ts +7 -5
  98. package/dist/types/components/stzh-popover/stzh-popover.d.ts +3 -0
  99. package/dist/types/components/stzh-tooltip/stzh-tooltip.d.ts +3 -0
  100. package/dist/types/components.d.ts +22 -14
  101. package/dist/types/index.d.ts +5 -0
  102. package/dist/vscode-data.json +9 -5
  103. package/package.json +2 -2
  104. package/dist/cjs/arrow-16638ece.js.map +0 -1
  105. package/dist/esm/arrow-fc956b24.js.map +0 -1
  106. package/dist/stzh-components/p-4f7f4362.entry.js.map +0 -1
  107. package/dist/stzh-components/p-6a1d65ce.entry.js +0 -2
  108. package/dist/stzh-components/p-6a1d65ce.entry.js.map +0 -1
  109. package/dist/stzh-components/p-a2da1df4.js +0 -2
  110. package/dist/stzh-components/p-a2da1df4.js.map +0 -1
  111. package/dist/stzh-components/p-d1aa8602.entry.js.map +0 -1
  112. package/dist/stzh-components/p-e9933daa.entry.js +0 -2
  113. package/dist/stzh-components/p-e9933daa.entry.js.map +0 -1
  114. package/dist/stzh-components/p-f0887c02.entry.js +0 -2
  115. package/dist/stzh-components/p-f0887c02.entry.js.map +0 -1
  116. package/dist/stzh-components/p-f42f6787.entry.js +0 -2
  117. package/dist/stzh-components/p-f42f6787.entry.js.map +0 -1
  118. /package/dist/stzh-components/{p-6009632f.js.map → p-49fcbbfb.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-tooltip.js","sourceRoot":"","sources":["../../../../src/components/stzh-tooltip/stzh-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\";\n\nimport {\n StzhTooltipClosedEvent,\n StzhTooltipCloseEvent,\n StzhTooltipOpenedEvent,\n StzhTooltipOpenEvent,\n} from \"../../index\";\n\nimport { arrow, autoUpdate, computePosition, flip, MiddlewareData, offset, Placement, shift } from \"@floating-ui/dom\";\n\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\nimport { isStzhElement } from \"../../utils/utils\";\nimport { waitForEvent } from \"../../utils/event-utils\";\nimport { animateTo, stopAnimations } from \"../../utils/animation-utils\";\n\nimport { StzhTooltipLocalizedText } from \"./stzh-tooltip.localization\";\n\nimport Arrow from \"./assets/arrow.svg\";\n\nconst ANIMATION_SHOW = {\n keyframes: [{ opacity: \"0\" }, { opacity: \"1\" }],\n options: { duration: 100, easing: \"linear\" },\n};\n\nconst ANIMATION_HIDE = {\n keyframes: [{ opacity: \"1\" }, { opacity: \"0\" }],\n options: { duration: 200, easing: \"linear\" },\n};\n\nconst keyCode = {\n ESC: 27,\n};\n\nlet tooltipCounter = 0;\n\n/**\n * @slot Trigger element inside\n * @slot content - Content of tooltip\n */\n@Component({\n tag: \"stzh-tooltip\",\n styleUrl: \"stzh-tooltip.scss\",\n scoped: true,\n})\nexport class StzhTooltip {\n /** Whether tooltip should be open */\n @Prop({ mutable: true }) open: boolean = false;\n\n /** Label of tooltip (used for screenreaders) */\n @Prop() label: string = \"\";\n\n /** Content of tooltip (use instead of content slot) */\n @Prop() content: string = \"\";\n\n /** Default placement of tooltip relative to trigger element */\n @Prop() placement: Placement = \"bottom\";\n\n /** Position strategy */\n @Prop() strategy: \"absolute\" | \"fixed\" = \"absolute\";\n\n /** Visual type */\n @Prop({ reflect: true }) type: \"overlay\" | \"button\" = \"overlay\";\n\n /** Shifting of tooltip content */\n @Prop({ reflect: true }) size: \"default\" | \"small\" = \"default\";\n\n /** Shifting of tooltip content */\n @Prop() skidding: number = 0;\n\n /** Distance from tooltip content to trigger (default: arrow height (8px) + spacing (4px) = 12) */\n @Prop() distance: number = 12;\n\n /** Whether tooltip is interactive */\n @Prop() interactive: boolean = false;\n\n /**\n * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\n * options can be passed by separating them with a space. When manual is used, the tooltip must be activated\n * programmatically.\n */\n @Prop() trigger: string = \"hover focus\";\n private _trigger: string[];\n\n /** Translation strings */\n @Prop() localization: StzhTooltipLocalizedText;\n\n @Element() element: HTMLStzhTooltipElement;\n\n /** Tooltip open event */\n @Event() stzhOpen: EventEmitter<StzhTooltipOpenEvent>;\n\n /** Tooltip opened event (after animation) */\n @Event() stzhOpened: EventEmitter<StzhTooltipOpenedEvent>;\n\n /** Tooltip close event */\n @Event() stzhClose: EventEmitter<StzhTooltipCloseEvent>;\n\n /** Tooltip closed event (after animation) */\n @Event() stzhClosed: EventEmitter<StzhTooltipClosedEvent>;\n\n /** Show tooltip content */\n @Method()\n async show() {\n if (this.open) {\n return;\n }\n\n this.toggledByMethod = true;\n this.open = true;\n return waitForEvent(this.element, \"stzhOpened\");\n }\n\n /** Hide tooltip content */\n @Method()\n async hide() {\n if (!this.open) {\n return;\n }\n\n this.toggledByMethod = true;\n this.open = false;\n return waitForEvent(this.element, \"stzhClosed\");\n }\n\n /** Toggle tooltip content */\n @Method()\n async toggle() {\n if (this.open) {\n return await this.hide();\n } else {\n return await this.show();\n }\n }\n\n @Method()\n async update() {\n return await this.computePosition();\n }\n\n @Watch(\"open\")\n async openWatcher(newValue: boolean) {\n if (!this.contentElement) {\n return;\n }\n\n if (newValue) {\n if (this.toggledByMethod) {\n this.stzhOpen.emit({\n component: \"stzh-tooltip\",\n });\n }\n\n await stopAnimations(this.contentElement);\n\n // safari seems to need will-change,\n // otherwise it has problems animating the element with the drop shadow\n this.contentElement.style.willChange = \"transform, opacity, position, top, left, bottom, right\";\n this.contentElement.hidden = false;\n\n await animateTo(this.contentElement, ANIMATION_SHOW.keyframes, ANIMATION_SHOW.options);\n\n if (this.toggledByMethod) {\n this.stzhOpened.emit({\n component: \"stzh-tooltip\",\n });\n }\n } else {\n if (this.toggledByMethod) {\n this.stzhClose.emit({\n component: \"stzh-tooltip\",\n });\n }\n\n await stopAnimations(this.contentElement);\n await animateTo(this.contentElement, ANIMATION_HIDE.keyframes, ANIMATION_HIDE.options);\n\n this.contentElement.hidden = true;\n this.contentElement.style.willChange = \"auto\";\n\n if (this.toggledByMethod) {\n this.stzhClosed.emit({\n component: \"stzh-tooltip\",\n });\n }\n }\n\n this.toggledByMethod = false;\n }\n\n @Watch(\"trigger\")\n triggerWatcher(newValue: string) {\n this._trigger = newValue.split(\" \");\n }\n\n @Listen(\"click\", { target: \"document\", capture: true })\n handleDocumentClick(event: MouseEvent) {\n if (!this.open) {\n return;\n }\n\n const isClickOutside =\n event.target !== this.contentElement && this.contentElement.contains(event.target as HTMLElement) === false;\n\n const isClickTrigger =\n event.target === this.triggerElement || this.triggerElement.contains(event.target as HTMLElement);\n\n if (isClickOutside && !isClickTrigger && this.hasTrigger(\"click\")) {\n this.hide();\n }\n }\n\n @State() computedPlacement: Placement;\n\n private observer: MutationObserver;\n\n private toggledByMethod: boolean = false;\n private middlewareData: MiddlewareData;\n private triggerElement: HTMLElement;\n private triggerFirstElement: HTMLElement;\n private contentElement: HTMLElement;\n private arrowElement: HTMLElement;\n private autoUpdateCleanup: Function;\n private id: string;\n private trap: FocusTrap;\n private isHovering: boolean = false;\n\n private hasTrigger(trigger: string) {\n return this._trigger.indexOf(trigger) > -1;\n }\n\n private onEscKey = (event: KeyboardEvent) => {\n if (event.keyCode === keyCode.ESC) {\n this.hide();\n }\n };\n\n private computePosition = async () => {\n if (!this.open) {\n return;\n }\n\n const {\n x = 0,\n y = 0,\n strategy = \"absolute\",\n placement,\n middlewareData,\n } = await computePosition(this.triggerFirstElement, this.contentElement, {\n strategy: this.strategy,\n placement: this.placement,\n middleware: [\n offset({\n mainAxis: this.distance,\n crossAxis: this.skidding,\n }),\n flip({\n padding: 5,\n }),\n shift({\n padding: 5,\n }),\n arrow({\n element: this.arrowElement,\n padding: 5,\n }),\n ],\n });\n\n this.middlewareData = middlewareData;\n this.computedPlacement = placement;\n\n Object.assign(this.contentElement.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n });\n\n Object.assign(this.arrowElement.style, {\n left: x != null ? `${middlewareData.arrow.x}px` : \"\",\n top: y != null ? `${middlewareData.arrow.y}px` : \"\",\n });\n };\n\n private onClickTrigger = () => {\n if (this.hasTrigger(\"click\")) {\n this.toggle();\n }\n };\n\n private onMouseEnterTrigger = () => {\n if (this.hasTrigger(\"hover\")) {\n this.isHovering = true;\n this.show();\n }\n };\n\n private onMouseLeaveTrigger = () => {\n if (this.hasTrigger(\"hover\")) {\n this.isHovering = false;\n document.addEventListener(\"mousemove\", this.onMouseMoveDocument);\n }\n };\n\n private onFocusTrigger = () => {\n if (this.hasTrigger(\"focus\")) {\n this.show();\n }\n };\n\n private onBlurTrigger = () => {\n if (this.hasTrigger(\"focus\")) {\n this.hide();\n }\n };\n\n private onMouseMoveDocument = (event: MouseEvent) => {\n const { clientX, clientY } = event;\n\n if (!this.computedPlacement) {\n return true;\n }\n\n const basePlacement = this.computedPlacement.split(\"-\")[0];\n const offsetData = this.middlewareData.offset;\n const popperRect = this.contentElement.getBoundingClientRect();\n\n if (!offsetData) {\n return true;\n }\n\n const topDistance = basePlacement === \"bottom\" ? offsetData.y : 0;\n const bottomDistance = basePlacement === \"top\" ? offsetData.y : 0;\n const leftDistance = basePlacement === \"right\" ? offsetData.x : 0;\n const rightDistance = basePlacement === \"left\" ? offsetData.x : 0;\n\n const exceedsTop = popperRect.top - clientY > topDistance;\n const exceedsBottom = clientY - popperRect.bottom > bottomDistance;\n const exceedsLeft = popperRect.left - clientX > leftDistance;\n const exceedsRight = clientX - popperRect.right > rightDistance;\n\n if (exceedsTop || exceedsBottom || exceedsLeft || exceedsRight) {\n document.removeEventListener(\"mousemove\", this.onMouseMoveDocument);\n\n if (!this.isHovering) {\n this.hide();\n }\n }\n };\n\n private init = () => {\n let trigger = this.triggerElement?.firstElementChild as HTMLElement;\n\n if (!trigger) {\n const defaultSlot = Array.from(this.element.children).find(child => !child.hasAttribute(\"slot\")) as HTMLElement;\n\n trigger = defaultSlot;\n }\n\n if (trigger) {\n this.triggerFirstElement = trigger;\n trigger.addEventListener(\"click\", this.onClickTrigger);\n trigger.addEventListener(\"mouseenter\", this.onMouseEnterTrigger);\n trigger.addEventListener(\"mouseleave\", this.onMouseLeaveTrigger);\n trigger.addEventListener(\"focusin\", this.onFocusTrigger);\n trigger.addEventListener(\"focusout\", this.onBlurTrigger);\n }\n };\n\n async componentWillLoad() {\n this.id = `stzh-tooltip-${tooltipCounter++}`;\n\n this.triggerWatcher(this.trigger);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"tooltip\");\n }\n }\n\n componentDidRender() {\n this.computePosition();\n\n const isStzh = isStzhElement(this.triggerFirstElement);\n\n if (this.hasTrigger(\"click\")) {\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-expanded\" : \"aria-expanded\", this.open ? \"true\" : \"false\");\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-describedby\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-describedby\"))\n ) {\n this.triggerFirstElement.setAttribute(\n isStzh ? \"a11y-describedby\" : \"aria-describedby\",\n `${this.id}-trigger-description`\n );\n }\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-label\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-label\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", this.label);\n }\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"analytics-id\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"s-object-id\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", this.label);\n }\n } else {\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-describedby\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-describedby\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${this.id}-content`);\n }\n }\n\n if (this.trap) {\n this.open ? this.trap.activate() : this.trap.deactivate();\n }\n }\n\n componentDidUpdate() {\n if (this.trap) {\n this.trap.updateContainerElements(this.contentElement);\n }\n }\n\n componentDidLoad() {\n this.autoUpdateCleanup = autoUpdate(this.element, this.contentElement, this.computePosition);\n\n if (this.interactive) {\n this.trap = createFocusTrap(this.contentElement, {\n fallbackFocus: this.contentElement,\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: true,\n });\n\n if (this.open) {\n this.trap.activate();\n }\n }\n\n this.contentElement.hidden = !this.open;\n }\n\n connectedCallback() {\n this.init();\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n\n if (this.autoUpdateCleanup) {\n this.autoUpdateCleanup();\n }\n\n if (this.triggerFirstElement) {\n this.triggerFirstElement.removeEventListener(\"click\", this.onClickTrigger);\n this.triggerFirstElement.removeEventListener(\"mouseenter\", this.onMouseEnterTrigger);\n this.triggerFirstElement.removeEventListener(\"mouseleave\", this.onMouseLeaveTrigger);\n this.triggerFirstElement.removeEventListener(\"focusin\", this.onFocusTrigger);\n this.triggerFirstElement.removeEventListener(\"focusout\", this.onBlurTrigger);\n }\n }\n\n render() {\n const classes = {\n \"stzh-tooltip\": true,\n [`stzh-tooltip--type-${this.type}`]: true,\n [`stzh-tooltip--open`]: this.open,\n [`stzh-tooltip--placement-${this.computedPlacement}`]: !!this.computedPlacement,\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"stzh-tooltip__trigger\" ref={el => (this.triggerElement = el as HTMLDivElement)}>\n <slot></slot>\n </div>\n {this.hasTrigger(\"click\") && (\n <div class=\"stzh-tooltip__vhidden\" id={`${this.id}-trigger-description`}>\n {this.localization.open}\n </div>\n )}\n <div\n class=\"stzh-tooltip__content\"\n id={`${this.id}-content`}\n ref={el => (this.contentElement = el as HTMLDivElement)}\n tabindex=\"-1\"\n aria-labelledby={this.label ? `${this.id}-label` : null}\n aria-hidden={this.open ? \"false\" : \"true\"}\n onKeyDown={this.onEscKey}\n onMouseEnter={this.onMouseEnterTrigger}\n onMouseLeave={this.onMouseLeaveTrigger}\n onFocusin={this.onFocusTrigger}\n onFocusout={this.onBlurTrigger}\n >\n <div\n class=\"stzh-tooltip__arrow\"\n ref={el => (this.arrowElement = el as HTMLDivElement)}\n innerHTML={Arrow}\n ></div>\n {this.label && (\n <h2 id={`${this.id}-label`} class=\"stzh-tooltip__vhidden\">\n {this.label}\n </h2>\n )}\n {this.hasTrigger(\"click\") && (\n <button class=\"stzh-tooltip__close\" onClick={() => this.hide()} type=\"button\">\n <stzh-icon name=\"close\" class=\"stzh-tooltip__icon\"></stzh-icon>\n <span class=\"stzh-tooltip__vhidden\">{this.localization.close}</span>\n </button>\n )}\n <stzh-text\n curve={this.type === \"overlay\" ? \"none\" : \"caption\"}\n {...(this.type === \"button\" ? { font: \"heavy\" } : {})}\n class=\"stzh-tooltip__content-slot\"\n >\n {this.content ? this.content : <slot name=\"content\"></slot>}\n </stzh-text>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-tooltip.js","sourceRoot":"","sources":["../../../../src/components/stzh-tooltip/stzh-tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Listen, Method, Prop, State, Watch } from \"@stencil/core\";\n\nimport {\n StzhTooltipClosedEvent,\n StzhTooltipCloseEvent,\n StzhTooltipOpenedEvent,\n StzhTooltipOpenEvent,\n} from \"../../index\";\n\nimport { arrow, autoUpdate, computePosition, flip, MiddlewareData, offset, Placement, shift } from \"@floating-ui/dom\";\n\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\nimport { isStzhElement } from \"../../utils/utils\";\nimport { waitForEvent } from \"../../utils/event-utils\";\nimport { animateTo, stopAnimations } from \"../../utils/animation-utils\";\n\nimport { StzhTooltipLocalizedText } from \"./stzh-tooltip.localization\";\n\nimport Arrow from \"./assets/arrow.svg\";\n\nconst ANIMATION_SHOW = {\n keyframes: [{ opacity: \"0\" }, { opacity: \"1\" }],\n options: { duration: 100, easing: \"linear\" },\n};\n\nconst ANIMATION_HIDE = {\n keyframes: [{ opacity: \"1\" }, { opacity: \"0\" }],\n options: { duration: 200, easing: \"linear\" },\n};\n\nconst keyCode = {\n ESC: 27,\n};\n\nlet tooltipCounter = 0;\n\n/**\n * @slot Trigger element inside\n * @slot content - Content of tooltip\n */\n@Component({\n tag: \"stzh-tooltip\",\n styleUrl: \"stzh-tooltip.scss\",\n scoped: true,\n})\nexport class StzhTooltip {\n /** Whether tooltip should be open */\n @Prop({ mutable: true }) open: boolean = false;\n\n /** Label of tooltip (used for screenreaders) */\n @Prop() label: string = \"\";\n\n /** Content of tooltip (use instead of content slot) */\n @Prop() content: string = \"\";\n\n /** Default placement of tooltip relative to trigger element */\n @Prop() placement: Placement = \"bottom\";\n\n /** Position strategy */\n @Prop() strategy: \"absolute\" | \"fixed\" = \"absolute\";\n\n /** Visual type */\n @Prop({ reflect: true }) type: \"overlay\" | \"button\" = \"overlay\";\n\n /** Shifting of tooltip content */\n @Prop({ reflect: true }) size: \"default\" | \"small\" = \"default\";\n\n /** Shifting of tooltip content */\n @Prop() skidding: number = 0;\n\n /** Distance from tooltip content to trigger (default: arrow height (8px) + spacing (4px) = 12) */\n @Prop() distance: number = 12;\n\n /** Whether tooltip is interactive */\n @Prop() interactive: boolean = false;\n\n /**\n * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\n * options can be passed by separating them with a space. When manual is used, the tooltip must be activated\n * programmatically.\n */\n @Prop() trigger: string = \"hover focus\";\n private _trigger: string[];\n\n /** Translation strings */\n @Prop() localization: StzhTooltipLocalizedText;\n\n @Element() element: HTMLStzhTooltipElement;\n\n /** Tooltip open event */\n @Event() stzhOpen: EventEmitter<StzhTooltipOpenEvent>;\n\n /** Tooltip opened event (after animation) */\n @Event() stzhOpened: EventEmitter<StzhTooltipOpenedEvent>;\n\n /** Tooltip close event */\n @Event() stzhClose: EventEmitter<StzhTooltipCloseEvent>;\n\n /** Tooltip closed event (after animation) */\n @Event() stzhClosed: EventEmitter<StzhTooltipClosedEvent>;\n\n /** Show tooltip content */\n @Method()\n async show() {\n if (this.open) {\n return;\n }\n\n this.toggledByMethod = true;\n this.open = true;\n return waitForEvent(this.element, \"stzhOpened\");\n }\n\n /** Hide tooltip content */\n @Method()\n async hide() {\n if (!this.open) {\n return;\n }\n\n this.toggledByMethod = true;\n this.open = false;\n return waitForEvent(this.element, \"stzhClosed\");\n }\n\n /** Toggle tooltip content */\n @Method()\n async toggle() {\n if (this.open) {\n return await this.hide();\n } else {\n return await this.show();\n }\n }\n\n @Method()\n async update() {\n return await this.computePosition();\n }\n\n @Watch(\"open\")\n async openWatcher(newValue: boolean) {\n if (!this.contentElement) {\n return;\n }\n\n if (newValue) {\n if (this.toggledByMethod) {\n this.stzhOpen.emit({\n component: \"stzh-tooltip\",\n });\n }\n\n await stopAnimations(this.contentElement);\n\n // safari seems to need will-change,\n // otherwise it has problems animating the element with the drop shadow\n this.contentElement.style.willChange = \"transform, opacity, position, top, left, bottom, right\";\n this.contentElement.hidden = false;\n\n await animateTo(this.contentElement, ANIMATION_SHOW.keyframes, ANIMATION_SHOW.options);\n\n if (this.toggledByMethod) {\n this.stzhOpened.emit({\n component: \"stzh-tooltip\",\n });\n }\n } else {\n if (this.toggledByMethod) {\n this.stzhClose.emit({\n component: \"stzh-tooltip\",\n });\n }\n\n await stopAnimations(this.contentElement);\n await animateTo(this.contentElement, ANIMATION_HIDE.keyframes, ANIMATION_HIDE.options);\n\n this.contentElement.hidden = true;\n this.contentElement.style.willChange = \"auto\";\n\n if (this.toggledByMethod) {\n this.stzhClosed.emit({\n component: \"stzh-tooltip\",\n });\n }\n }\n\n this.toggledByMethod = false;\n }\n\n @Watch(\"trigger\")\n triggerWatcher(newValue: string) {\n this._trigger = newValue.split(\" \");\n }\n\n @Listen(\"click\", { target: \"document\", capture: true })\n handleDocumentClick(event: MouseEvent) {\n if (!this.open) {\n return;\n }\n\n const isClickOutside =\n event.target !== this.contentElement && this.contentElement.contains(event.target as HTMLElement) === false;\n\n const isClickTrigger =\n event.target === this.triggerElement || this.triggerElement.contains(event.target as HTMLElement);\n\n if (isClickOutside && !isClickTrigger && this.hasTrigger(\"click\")) {\n this.hide();\n }\n }\n\n @State() computedPlacement: Placement;\n\n private observer: MutationObserver;\n\n private toggledByMethod: boolean = false;\n private middlewareData: MiddlewareData;\n private triggerElement: HTMLElement;\n private triggerFirstElement: HTMLElement;\n private contentElement: HTMLElement;\n private arrowElement: HTMLElement;\n private autoUpdateCleanup: Function;\n private id: string;\n private trap: FocusTrap;\n private isHovering: boolean = false;\n\n private hasTrigger(trigger: string) {\n return this._trigger.indexOf(trigger) > -1;\n }\n\n private onEscKey = (event: KeyboardEvent) => {\n if (event.keyCode === keyCode.ESC) {\n this.hide();\n }\n };\n\n private computePosition = async () => {\n if (!this.open) {\n return;\n }\n\n const {\n x = 0,\n y = 0,\n strategy = \"absolute\",\n placement,\n middlewareData,\n } = await computePosition(this.triggerFirstElement, this.contentElement, {\n strategy: this.strategy,\n placement: this.placement,\n middleware: [\n offset({\n mainAxis: this.distance,\n crossAxis: this.skidding,\n }),\n flip({\n padding: 5,\n }),\n shift({\n padding: 5,\n }),\n arrow({\n element: this.arrowElement,\n padding: 5,\n }),\n ],\n });\n\n this.middlewareData = middlewareData;\n this.computedPlacement = placement;\n\n Object.assign(this.contentElement.style, {\n position: strategy,\n left: `${x}px`,\n top: `${y}px`,\n });\n\n Object.assign(this.arrowElement.style, {\n left: x != null ? `${middlewareData.arrow.x}px` : \"\",\n top: y != null ? `${middlewareData.arrow.y}px` : \"\",\n });\n };\n\n private onClickTrigger = () => {\n if (this.hasTrigger(\"click\")) {\n this.toggle();\n }\n };\n\n private onMouseEnterTrigger = () => {\n if (this.hasTrigger(\"hover\")) {\n this.isHovering = true;\n this.show();\n }\n };\n\n private onMouseLeaveTrigger = () => {\n if (this.hasTrigger(\"hover\")) {\n this.isHovering = false;\n document.addEventListener(\"mousemove\", this.onMouseMoveDocument);\n }\n };\n\n private onFocusTrigger = () => {\n if (this.hasTrigger(\"focus\")) {\n this.show();\n }\n };\n\n private onBlurTrigger = () => {\n if (this.hasTrigger(\"focus\")) {\n this.hide();\n }\n };\n\n private onMouseMoveDocument = (event: MouseEvent) => {\n const { clientX, clientY } = event;\n\n if (!this.computedPlacement) {\n return true;\n }\n\n const basePlacement = this.computedPlacement.split(\"-\")[0];\n const offsetData = this.middlewareData.offset;\n const popperRect = this.contentElement.getBoundingClientRect();\n\n if (!offsetData) {\n return true;\n }\n\n const topDistance = basePlacement === \"bottom\" ? offsetData.y : 0;\n const bottomDistance = basePlacement === \"top\" ? offsetData.y : 0;\n const leftDistance = basePlacement === \"right\" ? offsetData.x : 0;\n const rightDistance = basePlacement === \"left\" ? offsetData.x : 0;\n\n const exceedsTop = popperRect.top - clientY > topDistance;\n const exceedsBottom = clientY - popperRect.bottom > bottomDistance;\n const exceedsLeft = popperRect.left - clientX > leftDistance;\n const exceedsRight = clientX - popperRect.right > rightDistance;\n\n if (exceedsTop || exceedsBottom || exceedsLeft || exceedsRight) {\n document.removeEventListener(\"mousemove\", this.onMouseMoveDocument);\n\n if (!this.isHovering) {\n this.hide();\n }\n }\n };\n\n private init = () => {\n let trigger = this.triggerElement?.firstElementChild as HTMLElement;\n\n if (!trigger) {\n const defaultSlot = Array.from(this.element.children).find(child => !child.hasAttribute(\"slot\")) as HTMLElement;\n\n trigger = defaultSlot;\n }\n\n if (trigger) {\n this.triggerFirstElement = trigger;\n trigger.addEventListener(\"click\", this.onClickTrigger);\n trigger.addEventListener(\"mouseenter\", this.onMouseEnterTrigger);\n trigger.addEventListener(\"mouseleave\", this.onMouseLeaveTrigger);\n trigger.addEventListener(\"focusin\", this.onFocusTrigger);\n trigger.addEventListener(\"focusout\", this.onBlurTrigger);\n }\n };\n\n async componentWillLoad() {\n this.id = `stzh-tooltip-${tooltipCounter++}`;\n\n this.triggerWatcher(this.trigger);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"tooltip\");\n }\n }\n\n componentDidRender() {\n const isStzh = isStzhElement(this.triggerFirstElement);\n\n if (this.hasTrigger(\"click\")) {\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-expanded\" : \"aria-expanded\", this.open ? \"true\" : \"false\");\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-describedby\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-describedby\"))\n ) {\n this.triggerFirstElement.setAttribute(\n isStzh ? \"a11y-describedby\" : \"aria-describedby\",\n `${this.id}-trigger-description`\n );\n }\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-label\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-label\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", this.label);\n }\n\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"analytics-id\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"s-object-id\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", this.label);\n }\n } else {\n if (\n (isStzh && !this.triggerFirstElement.getAttribute(\"a11y-describedby\")) ||\n (!isStzh && !this.triggerFirstElement.getAttribute(\"aria-describedby\"))\n ) {\n this.triggerFirstElement.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${this.id}-content`);\n }\n }\n\n if (this.trap) {\n this.open ? this.trap.activate() : this.trap.deactivate();\n }\n }\n\n private initializedTooltip = false\n\n componentDidUpdate() {\n if (this.open && !this.initializedTooltip) {\n this.initializeAutoUpdate();\n this.initializeFocusTrap();\n this.initializedTooltip = true\n }\n\n if (this.initializedTooltip) {\n this.computePosition();\n if (this.trap) {\n this.trap.updateContainerElements(this.contentElement);\n }\n }\n }\n\n initializeAutoUpdate() {\n this.autoUpdateCleanup = autoUpdate(this.element, this.contentElement, this.computePosition);\n }\n\n initializeFocusTrap() {\n if (this.interactive) {\n this.trap = createFocusTrap(this.contentElement, {\n fallbackFocus: this.contentElement,\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: true,\n });\n }\n }\n\n componentDidLoad() {\n this.contentElement.hidden = !this.open;\n if (this.open && this.trap) {\n this.trap.activate();\n }\n }\n\n connectedCallback() {\n this.init();\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n\n if (this.autoUpdateCleanup) {\n this.autoUpdateCleanup();\n }\n\n if (this.triggerFirstElement) {\n this.triggerFirstElement.removeEventListener(\"click\", this.onClickTrigger);\n this.triggerFirstElement.removeEventListener(\"mouseenter\", this.onMouseEnterTrigger);\n this.triggerFirstElement.removeEventListener(\"mouseleave\", this.onMouseLeaveTrigger);\n this.triggerFirstElement.removeEventListener(\"focusin\", this.onFocusTrigger);\n this.triggerFirstElement.removeEventListener(\"focusout\", this.onBlurTrigger);\n }\n }\n\n render() {\n const classes = {\n \"stzh-tooltip\": true,\n [`stzh-tooltip--type-${this.type}`]: true,\n [`stzh-tooltip--open`]: this.open,\n [`stzh-tooltip--placement-${this.computedPlacement}`]: !!this.computedPlacement,\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"stzh-tooltip__trigger\" ref={el => (this.triggerElement = el as HTMLDivElement)}>\n <slot></slot>\n </div>\n {this.hasTrigger(\"click\") && (\n <div class=\"stzh-tooltip__vhidden\" id={`${this.id}-trigger-description`}>\n {this.localization.open}\n </div>\n )}\n <div\n class=\"stzh-tooltip__content\"\n id={`${this.id}-content`}\n ref={el => (this.contentElement = el as HTMLDivElement)}\n tabindex=\"-1\"\n aria-labelledby={this.label ? `${this.id}-label` : null}\n aria-hidden={this.open ? \"false\" : \"true\"}\n onKeyDown={this.onEscKey}\n onMouseEnter={this.onMouseEnterTrigger}\n onMouseLeave={this.onMouseLeaveTrigger}\n onFocusin={this.onFocusTrigger}\n onFocusout={this.onBlurTrigger}\n >\n <div\n class=\"stzh-tooltip__arrow\"\n ref={el => (this.arrowElement = el as HTMLDivElement)}\n innerHTML={Arrow}\n ></div>\n {this.label && (\n <h2 id={`${this.id}-label`} class=\"stzh-tooltip__vhidden\">\n {this.label}\n </h2>\n )}\n {this.hasTrigger(\"click\") && (\n <button class=\"stzh-tooltip__close\" onClick={() => this.hide()} type=\"button\">\n <stzh-icon name=\"close\" class=\"stzh-tooltip__icon\"></stzh-icon>\n <span class=\"stzh-tooltip__vhidden\">{this.localization.close}</span>\n </button>\n )}\n <stzh-text\n curve={this.type === \"overlay\" ? \"none\" : \"caption\"}\n {...(this.type === \"button\" ? { font: \"heavy\" } : {})}\n class=\"stzh-tooltip__content-slot\"\n >\n {this.content ? this.content : <slot name=\"content\"></slot>}\n </stzh-text>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -754,7 +754,7 @@ export class StzhUpload {
754
754
  const description = this.description ? this.description : this.localization.description;
755
755
  return (h(Host, { "is-invalid": this.invalid || errorUsed }, h("div", { class: classes, ref: el => (this.dropzoneElement = el) }, h("div", { ref: el => (this.hiddenInputContainerElement = el) }), h("div", { id: `${this.uploadId}-label` }, this.label && h("div", { class: "stzh-upload__label" }, this.label)), h("div", { class: "stzh-upload__clickarea", ref: el => (this.clickareaElement = el) }, h("div", { class: "stzh-upload__heading-wrapper" }, h("div", { class: "stzh-upload__heading-inner-wrapper" }, h("div", { class: "stzh-upload__heading" }, this.heading ? this.heading : this.localization.heading), h("div", { class: "stzh-upload__buttons-wrapper" }, h("stzh-button", { class: "stzh-upload__button", variant: "secondary", size: "small", ref: el => (this.linkElement = el), label: this.button ? this.button : tc(this.localization.button, this.maxFiles), a11yDescribedby: `${this.uploadId}-label ${this.uploadId}-instruction ${this.uploadId}-description`, disabled: this.disabled, a11yControls: `${this.uploadId}-previews` }, h("stzh-icon", { slot: "icon", name: "upload" })), this.isPhotographingAvailable && (h("stzh-button", { class: "stzh-upload__button-scan", variant: "secondary", size: "small", label: this.buttonScan ? this.buttonScan : tc(this.localization.buttonScan, this.maxFiles), onClick: this.onButtonScanClick }, h("stzh-icon", { slot: "icon", name: "camera" })))), h("div", { class: "stzh-upload__hint-wrapper" }, h("span", null, this.localization.buttonIntro)))), h("div", { class: "stzh-upload__instructions", id: `${this.uploadId}-instruction` }, description
756
756
  .replace("{{fileformats}}", this.acceptedFiles ? this.acceptedFiles : "Alle")
757
- .replace("{{filesize}}", `${this.maxFilesize}`))), ((_b = this._error) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h(StzhInputDescription, { classPrefix: "stzh-upload", id: `${this.uploadId}-description`, error: this._error })), h("div", { id: `${this.uploadId}-previews`, class: "stzh-upload__previews-wrapper" }, h("div", { class: "stzh-upload__previews-inner-wrapper" }, h("div", { class: "stzh-upload__errors", ref: el => (this.errorsElement = el) }), h("div", { class: "stzh-upload__previews dropzone-previews", ref: el => (this.previewsElement = el) })))), h("stzh-dialog", { ref: el => (this.photographingOverlayElement = el), onStzhClose: this.closePhotographingWebsocketConnection }, h("stzh-button", { class: "stzh-upload-photographing__back-button", icon: "arrow-left", size: "small", variant: "tertiary-plain", "no-padding-left": "true", "no-padding-right": "true", onClick: this.closePhotographingOverlay }, this.localization.back), this.isPhotographingAvailable && (h(Fragment, null, h("div", { class: "stzh-upload-photographing__info" }, h("stzh-heading", { level: "3" }, this.localization.photographingTitle1), h("div", { class: "stzh-upload-photographing__text-qrcode" }, h("div", null, h("stzh-text", null, this.localization.photographingText1), !!this.photographingUrlDetails && (h("stzh-link", { class: "stzh-upload-photographing-link", href: this.photographingUrlDetails.url, target: "_blank" }, this.photographingUrlDetails.url))), h("canvas", { class: "stzh-upload-photographing-qrcode", ref: el => (this.photographingQrcodeElement = el) }))), h("div", { class: "stzh-upload-photographing__info" }, h("stzh-heading", { level: "3" }, this.localization.photographingTitle2), h("stzh-text", null, this.localization.photographingText2)))))));
757
+ .replace("{{filesize}}", `${this.maxFilesize}`))), h("div", { class: "stzh-upload__description-wrapper" }, ((_b = this._error) === null || _b === void 0 ? void 0 : _b.length) > 0 && (h(StzhInputDescription, { classPrefix: "stzh-upload", id: `${this.uploadId}-description`, error: this._error }))), h("div", { id: `${this.uploadId}-previews`, class: "stzh-upload__previews-wrapper" }, h("div", { class: "stzh-upload__previews-inner-wrapper" }, h("div", { class: "stzh-upload__errors", ref: el => (this.errorsElement = el) }), h("div", { class: "stzh-upload__previews dropzone-previews", ref: el => (this.previewsElement = el) })))), h("stzh-dialog", { ref: el => (this.photographingOverlayElement = el), onStzhClose: this.closePhotographingWebsocketConnection }, h("stzh-button", { class: "stzh-upload-photographing__back-button", icon: "arrow-left", size: "small", variant: "tertiary-plain", "no-padding-left": "true", "no-padding-right": "true", onClick: this.closePhotographingOverlay }, this.localization.back), this.isPhotographingAvailable && (h(Fragment, null, h("div", { class: "stzh-upload-photographing__info" }, h("stzh-heading", { level: "3" }, this.localization.photographingTitle1), h("div", { class: "stzh-upload-photographing__text-qrcode" }, h("div", null, h("stzh-text", null, this.localization.photographingText1), !!this.photographingUrlDetails && (h("stzh-link", { class: "stzh-upload-photographing-link", href: this.photographingUrlDetails.url, target: "_blank" }, this.photographingUrlDetails.url))), h("canvas", { class: "stzh-upload-photographing-qrcode", ref: el => (this.photographingQrcodeElement = el) }))), h("div", { class: "stzh-upload-photographing__info" }, h("stzh-heading", { level: "3" }, this.localization.photographingTitle2), h("stzh-text", null, this.localization.photographingText2)))))));
758
758
  }
759
759
  static get is() { return "stzh-upload"; }
760
760
  static get originalStyleUrls() {
@@ -1 +1 @@
1
- {"version":3,"file":"stzh-upload.js","sourceRoot":"","sources":["../../../../src/components/stzh-upload/stzh-upload.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Fragment,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n StzhUploadCanceledEvent,\n StzhUploadCanceledMultipleEvent,\n StzhUploadCompleteEvent,\n StzhUploadCompleteMultipleEvent,\n StzhUploadErrorEvent,\n StzhUploadErrorMultipleEvent,\n StzhUploadFile,\n StzhUploadFileAddedEvent,\n StzhUploadFileRemovedEvent,\n StzhUploadFileRemoveEvent,\n StzhUploadFilesAddedEvent,\n StzhUploadFilesItem,\n StzhUploadProcessingEvent,\n StzhUploadProcessingMultipleEvent,\n StzhUploadProgressEvent,\n StzhUploadProgressTotalEvent,\n StzhUploadSendingEvent,\n StzhUploadSendingMultipleEvent,\n StzhUploadSuccessEvent,\n StzhUploadSuccessMultipleEvent,\n} from \"../../index\";\n\nimport { getStzhEnvironment, hasSlot, isStzhElement, StzhEnvironmentEnum } from \"../../utils/utils\";\nimport { tc } from \"../../utils/translation-utils\";\nimport { StzhUploadLocalizedText } from \"./stzh-upload.localization\";\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nimport \"../../libraries/dropzone/dropzone\";\nimport { StzhPhotographingUrlDetailsDto } from \"./models/stzh-photographing-url-details.dto\";\nimport { StzhPhotographingConfigurationDto } from \"./models/stzh-photographing-configuration.dto\";\nimport QRCode from \"qrcode\";\nimport { StzhPhotographingPdfFileDto } from \"./models/stzh-photographing-pdf-file.dto\";\n\nwindow.Dropzone.autoDiscover = false;\n\nconst ATTR_NAME = \"data-dz-name\";\nconst ATTR_TYPE = \"data-dz-type\";\nconst ATTR_SIZE = \"data-dz-size\";\nconst ATTR_LINK = \"data-dz-link\";\nconst ATTR_EXTENSION = \"data-dz-extension\";\nconst ATTR_META_ID = \"data-dz-meta-id\";\nconst ATTR_ERROR_MESSAGE_ID = \"data-dz-error-message-id\";\nconst ATTR_PROGRESS_TEXT = \"data-dz-progress-text\";\nconst ATTR_REMOVE = \"data-dz-remove\";\n\nlet uploadCounter = 0;\nlet previewCounter = 0;\n\n// Most properties taken over from:\n// https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js\n\n// Possible events to listen to:\n// https://github.com/dropzone/dropzone/blob/v5.9.3/src/dropzone.js#L17\n\n/**\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-upload\",\n styleUrl: \"stzh-upload.scss\",\n})\nexport class StzhUpload {\n /**\n * Initially pre existing files (e.g. already uploaded by the user).\n * Array of objects that must at least include `name` and `size` attribute:\n * `[{\"name\":\"file1.txt\", \"size\": 12345}, {\"name\":\"file2.txt\", \"size\": 12345}]`\n */\n @Prop() existingFiles: StzhUploadFilesItem[] | string = [];\n private _existingFiles: StzhUploadFilesItem[] = [];\n\n /** Name of hidden input field */\n @Prop() name: string = \"\";\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Instructions heading */\n @Prop() heading: string = \"\";\n\n /** Instructions description */\n @Prop() description: string = \"\";\n\n /** Button text */\n @Prop() button: string = \"\";\n\n /** Scan Button text */\n @Prop() buttonScan: string = \"\";\n\n /** Scan Button text */\n @Prop({ mutable: true }) photographingEnabled: boolean = false;\n\n /**\n * URL the files are processed to.\n *\n * You can also provide a function that will be called with `files` and\n * `dataBlocks` and must return the url as string.\n */\n @Prop() url: string | Function = \"\";\n\n /**\n * Can be changed to `\"put\"` if necessary. You can also provide a function\n * that will be called with `files` and must return the method.\n */\n @Prop() method: \"post\" | \"put\" | Function = \"post\";\n\n /**\n * Will be set on the XHRequest.\n */\n @Prop() withCredentials: boolean = false;\n\n /**\n * Whether the upload is disabled or not.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether the upload is marked as invalid.\n */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Whether download functionality should be disabled. */\n @Prop() downloadDisabled: boolean = false;\n\n /** Whether download functionality should only be shown to completed files. */\n @Prop() downloadDisabledWhileProcessing: boolean = false;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /**\n * The default implementation of `accept` checks the file's mime type or\n * extension against this list. This is a comma separated list of mime\n * types or file extensions.\n *\n * Eg.: `image/*,application/pdf,.psd`\n *\n * This option will also be used as\n * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n * parameter on the hidden file input as well.\n */\n @Prop() acceptedFiles: string | null = null;\n\n /**\n * If false, files will be added to the queue but the queue will not be\n * processed automatically.\n * This can be useful if you need some additional user input before sending\n * files (or if you want want all files sent at once).\n * If you're ready to send the file simply call `element.processQueue()`.\n */\n @Prop() autoProcessQueue: boolean = true;\n\n /**\n * Hide progress (bars and text).\n */\n @Prop() hideProgress: boolean = false;\n\n /**\n * Hide progress (bars) only while idle (will show them as soon as upload starts).\n * Can be used together with `autoProcessQueue`, e.g. if files are uploaded at form submit to prevent showing empty progressbar.\n */\n @Prop() hideProgressWhileIdle: boolean = false;\n\n /**\n * If not `null` defines how many files this dropzone handles. If it exceeds,\n * the event `stzhMaxfilesexceeded` will be called.\n */\n @Prop() maxFiles: number | null = null;\n\n /**\n * The maximum filesize (in MiB) that is allowed to be uploaded.\n */\n @Prop() maxFilesize: number = 25;\n\n /**\n * How many file uploads to process in parallel.\n */\n @Prop() parallelUploads: number = 2;\n\n /**\n * Whether to send multiple files in one request. If\n * this it set to true, then the fallback file input element will\n * have the `multiple` attribute as well. This option will\n * also trigger additional events (like `stzhSuccessMultiple`). See the events\n * documentation section for more information.\n */\n @Prop() uploadMultiple: boolean = false;\n\n /**\n * Whether you want files to be uploaded in chunks to your server. This can't be\n * used in combination with `uploadMultiple`.\n *\n * See `chunksUploaded` prop for the callback to finalise an upload.\n */\n @Prop() chunking: boolean = false;\n\n /**\n * If `chunking` is enabled, this defines whether **every** file should be chunked,\n * even if the file size is below chunkSize. This means, that the additional chunk\n * form data will be submitted and the `chunksUploaded` callback will be invoked.\n */\n @Prop() forceChunking: boolean = false;\n\n /**\n * If `chunking` is `true`, then this defines the chunk size in bytes.\n */\n @Prop() chunkSize: number = 2 * 1024 * 1024;\n\n /**\n * If `true`, the individual chunks of a file are being uploaded simultaneously.\n */\n @Prop() parallelChunkUploads: boolean = false;\n\n /**\n * Whether a chunk should be retried if it fails.\n */\n @Prop() retryChunks: boolean = false;\n\n /**\n * If `retryChunks` is true, how many times should it be retried.\n */\n @Prop() retryChunksLimit: number = 3;\n\n /**\n * The base that is used to calculate the **displayed** filesize. You can\n * change this to 1024 if you would rather display kibibytes, mebibytes,\n * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n * not `1 kilobyte`. You can change this to `1024` if you don't care about\n * validity.\n */\n @Prop() filesizeBase: number = 1024;\n\n /**\n * An optional object to send additional headers to the server. Eg:\n * `{ \"My-Awesome-Header\": \"header value\" }`\n *\n * Can also be set as function returning the headers object dynamically.\n */\n @Prop() headers: object | ((Dropzone: any) => { [key: string]: string }) | null = null;\n\n /**\n * Should the default headers be set or not?\n * Accept: application/json <- for requesting json response\n * Cache-Control: no-cache <- Request shouldnt be cached\n * X-Requested-With: XMLHttpRequest <- We sent the request via XMLHttpRequest\n */\n @Prop() defaultHeaders: boolean = true;\n\n /**\n * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n * and a `done` function as parameters.\n *\n * If the done function is invoked without arguments, the file is \"accepted\" and will\n * be processed. If you pass an error message, the file is rejected, and the error\n * message will be displayed.\n * This function will not be called if the file is too big or doesn't match the mime types.\n */\n @Prop() accept: Function = function (_file, done) {\n return done();\n };\n\n /**\n * The callback that will be invoked when all chunks have been uploaded for a file.\n * It gets the file for which the chunks have been uploaded as the first parameter,\n * and the `done` function as second. `done()` needs to be invoked when everything\n * needed to finish the upload process is done.\n */\n @Prop() chunksUploaded: Function = function (_file, done) {\n done();\n };\n\n /**\n * This is the element the hidden input field (which is used when clicking on the\n * dropzone to trigger file selection) will be appended to. This might\n * be important in case you use frameworks to switch the content of your page.\n *\n * Can be a selector string, or an element directly. Will be rendered into element by default.\n */\n @Prop() hiddenInputContainer: string | HTMLElement;\n\n /**\n * Prevent clearing hidden input after adding a new file.\n * (use if you want to send the hidden input field with native form instead of ajax)\n */\n @Prop() preventHiddenInputClear: boolean = false;\n\n /** Translation strings. */\n @Prop() localization: StzhUploadLocalizedText;\n\n @State() environment: StzhEnvironmentEnum | undefined;\n\n @Element() element: HTMLStzhUploadElement;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Watch(\"name\")\n nameWatcher(newValue: string) {\n const input = this.hiddenInputContainerElement?.querySelector(\"input\");\n\n if (input) {\n input.setAttribute(\"name\", newValue);\n }\n }\n\n @Watch(\"maxFiles\")\n maxFilesWatcher(newMaxFiles: number | null) {\n this.dropzone.options.maxFiles = newMaxFiles;\n }\n\n @Watch(\"maxFilesize\")\n maxFilesizeWatcher(newMaxFilesize: number) {\n this.dropzone.options.maxFilesize = newMaxFilesize;\n }\n\n @Watch(\"existingFiles\")\n existingFilesWatcher(newValue: StzhUploadFilesItem[] | string) {\n if (typeof newValue === \"string\") {\n this._existingFiles = JSON.parse(newValue);\n } else {\n this._existingFiles = newValue;\n }\n }\n\n @Watch(\"disabled\")\n disabledWatcher() {\n if (!this.dropzone) {\n return;\n }\n\n if (this.disabled) {\n this.dropzone.disable();\n } else {\n this.dropzone.enable();\n }\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n /** File added */\n @Event() stzhFileAdded: EventEmitter<StzhUploadFileAddedEvent>;\n\n /** Files added (multiple) */\n @Event() stzhFilesAdded: EventEmitter<StzhUploadFilesAddedEvent>;\n\n /** File remove (before, cancelable) */\n @Event() stzhFileRemove: EventEmitter<StzhUploadFileRemoveEvent>;\n\n /** File removed */\n @Event() stzhFileRemoved: EventEmitter<StzhUploadFileRemovedEvent>;\n\n /** Before sending file (add additional data before request if necessary) */\n @Event() stzhSending: EventEmitter<StzhUploadSendingEvent>;\n\n /** Before sending multiple files (add additional data before request if necessary) */\n @Event() stzhSendingMultiple: EventEmitter<StzhUploadSendingMultipleEvent>;\n\n /** Files starting to get processed */\n @Event() stzhProcessing: EventEmitter<StzhUploadProcessingEvent>;\n\n /** Files starting to get processed (multiple) */\n @Event() stzhProcessingMultiple: EventEmitter<StzhUploadProcessingMultipleEvent>;\n\n /** Upload file progress during upload */\n @Event() stzhProgress: EventEmitter<StzhUploadProgressEvent>;\n\n /** Upload total file progress during upload */\n @Event() stzhProgressTotal: EventEmitter<StzhUploadProgressTotalEvent>;\n\n /** File error */\n @Event() stzhError: EventEmitter<StzhUploadErrorEvent>;\n\n /** Files error (multiple files) */\n @Event() stzhErrorMultiple: EventEmitter<StzhUploadErrorMultipleEvent>;\n\n /** File successfully uploaded */\n @Event() stzhSuccess: EventEmitter<StzhUploadSuccessEvent>;\n\n /** Files successfully uploaded (multiple files) */\n @Event() stzhSuccessMultiple: EventEmitter<StzhUploadSuccessMultipleEvent>;\n\n /** Canceled file upload */\n @Event() stzhCanceled: EventEmitter<StzhUploadCanceledEvent>;\n\n /** Canceled file upload (multiple files) */\n @Event() stzhCanceledMultiple: EventEmitter<StzhUploadCanceledMultipleEvent>;\n\n /** Completed upload (successfully or with error) */\n @Event() stzhComplete: EventEmitter<StzhUploadCompleteEvent>;\n\n /** Completed upload (successfully or with error, multiple files) */\n @Event() stzhCompleteMultiple: EventEmitter<StzhUploadCompleteMultipleEvent>;\n\n @Method()\n async processQueue() {\n return this.dropzone.processQueue();\n }\n\n @Method()\n async removeFile(file, force = false) {\n return this.dropzone.removeFile(file, force);\n }\n\n @Method()\n async removeAllFiles(cancelIfNecessary = false, force = false) {\n return this.dropzone.removeAllFiles(cancelIfNecessary, force);\n }\n\n private dropzone: any;\n private dropzoneElement: HTMLElement;\n private linkElement: HTMLStzhButtonElement;\n private clickareaElement: HTMLElement;\n private previewsElement: HTMLElement;\n private errorsElement: HTMLElement;\n private hiddenInputContainerElement: HTMLElement;\n private uploadId: string;\n\n /* Photographing */\n private photographingOverlayElement: HTMLStzhOverlayElement;\n private photographingQrcodeElement: HTMLCanvasElement;\n private PHOTOGRAPHING_BASE_URL = \"/appl/mobiscan/rs\";\n private PHOTOGRAPHING_ENDPOINTS = {\n PING: \"/ping\",\n URL: \"/url\",\n IMAGE: \"/image\",\n CONFIG: \"/config\",\n AUTH: \"/auth\",\n };\n @State() isPhotographingAvailable: boolean = false;\n @State() photographingUrlDetails: StzhPhotographingUrlDetailsDto | undefined;\n @State() photographingHost: string;\n @State() photographingConfig: StzhPhotographingConfigurationDto | undefined;\n @State() photographingWebsocket: WebSocket | undefined;\n @State() photographingToken: { access_token: string; expires_in: number } | undefined;\n\n private handleReset = () => {\n this.removeAllFiles(true);\n };\n\n private async getToken() {\n if (\n this.photographingToken &&\n this.photographingToken.access_token &&\n Date.now() < this.photographingToken.expires_in\n ) {\n return this.photographingToken;\n } else {\n return await this.requestPhotographingToken();\n }\n }\n\n private async requestPhotographingToken() {\n try {\n const response = await fetch(\n `${this.photographingHost}${this.PHOTOGRAPHING_BASE_URL}${this.PHOTOGRAPHING_ENDPOINTS.AUTH}`\n );\n if (!response.ok) {\n throw new Error(\"Token retrieval failed\");\n }\n const parsedResponse = await response.json();\n this.photographingToken = {\n access_token: parsedResponse.access_token,\n expires_in: Date.now() + parsedResponse.expires_in * 1000,\n };\n return this.photographingToken;\n } catch (error) {\n console.error(\"Token retrieval failed\", error);\n throw new Error(\"Token retrieval failed\");\n }\n }\n\n private async initializePhotographingWithEnvironment(environment: StzhEnvironmentEnum) {\n this.photographingHost = this.getPhotographingHostForEnvironment(environment);\n await this.setPhotographingConfig();\n if (this.photographingConfig) {\n await this.checkPhotographingAvailability();\n }\n }\n\n private async startPhotographingUserSession() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.URL}`,\n await this.getPhotographingHttpOptionsWithToken()\n );\n if (!response.ok) {\n // Nothing to do here. Just don't show the photographing button.\n } else {\n const url: StzhPhotographingUrlDetailsDto = await response.json();\n const urlObject = new URL(url.url);\n const params = new URLSearchParams(urlObject.search);\n this.photographingUrlDetails = {\n url: url.url,\n userId: params.get(\"id\"),\n };\n try {\n await QRCode.toCanvas(this.photographingQrcodeElement, url.url);\n } catch (error) {\n console.error(\"Error generating QR code:\", error);\n }\n await this.establishPhotographingWebsocketConnection();\n }\n } catch (startPhotographingUserSessionException) {\n console.error(\n `StzhUpload.startPhotographingUserSession() - startPhotographingUserSessionException:`,\n startPhotographingUserSessionException\n );\n }\n }\n\n private async retreivePhotographingPdf() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.IMAGE}/retreive-pdf?id=${this.photographingUrlDetails.userId}`,\n await this.getPhotographingHttpOptionsWithToken()\n );\n if (!response.ok) {\n console.error(`StzhUpload.retreivePhotographingPdf() - HTTP error! status: ${response.status}`);\n } else {\n const parsedResponse: StzhPhotographingPdfFileDto = await response.json();\n const file = await this.fetchFile(parsedResponse.downloadLink);\n this.dropzone.addFile(file);\n await this.closePhotographingOverlay();\n }\n } catch (retreivePhotographingPdfException) {\n console.error(\n `StzhUpload.retreivePhotographingPdf() - retreivePhotographingPdfException:`,\n retreivePhotographingPdfException\n );\n }\n }\n\n private async fetchFile(url) {\n const response = await fetch(url);\n const blob = await response.blob();\n const fileName = url.split(\"/\").pop();\n const cleanFileName: string = fileName.split(\"?\")[0];\n if (blob.type === \"application/octet-stream\") {\n return new File([blob], cleanFileName, { type: \"application/pdf\" });\n }\n return new File([blob], cleanFileName, { type: blob.type });\n }\n\n private async establishPhotographingWebsocketConnection() {\n this.photographingWebsocket = new WebSocket(\n `${this.photographingConfig.wsClientUrl}${this.photographingUrlDetails.userId}`,\n [\"chat\", (await this.getToken()).access_token]\n );\n\n this.photographingWebsocket.onopen = () => {\n setInterval(() => {\n this.sendPhotographingWebsocketMessage(\"Ping\");\n }, 20000);\n };\n\n this.photographingWebsocket.onmessage = async event => {\n const message = event.data;\n\n if (message === \"retreivePdf\") {\n await this.retreivePhotographingPdf();\n }\n };\n\n this.photographingWebsocket.onerror = error => {\n console.error(\"WebSocket error: \", error);\n };\n }\n\n private closePhotographingWebsocketConnection = () => {\n this.photographingWebsocket.close();\n };\n\n private sendPhotographingWebsocketMessage(message: any) {\n this.photographingWebsocket.send(message);\n }\n\n private async getPhotographingHttpOptionsWithToken() {\n const token = await this.getToken();\n return {\n headers: {\n Authorization: `Bearer ${token.access_token}`,\n },\n };\n }\n\n private async checkPhotographingAvailability() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.PING}`,\n await this.getPhotographingHttpOptionsWithToken()\n );\n if (!response.ok) {\n console.error(`StzhUpload.isAvailable() - HTTP error! status: ${response.status}`);\n this.isPhotographingAvailable = false;\n } else {\n this.isPhotographingAvailable = true;\n }\n } catch (isAvailableException) {\n console.error(`StzhUpload.isAvailable() - isAvailableException:`, isAvailableException);\n this.isPhotographingAvailable = false;\n }\n }\n\n private async setPhotographingConfig() {\n try {\n const response = await fetch(\n `${this.photographingHost}${this.PHOTOGRAPHING_BASE_URL}${this.PHOTOGRAPHING_ENDPOINTS.CONFIG}`\n );\n if (!response.ok) {\n console.error(`StzhUpload.getConfig() - HTTP error! status: ${response.status}`);\n } else {\n this.photographingConfig = await response.json();\n }\n } catch (getConfigException) {\n console.error(`StzhUpload.getConfig() - getConfigException:`, getConfigException);\n }\n }\n\n private getPhotographingHostForEnvironment(environment: \"DEV\" | \"UAT\" | \"PROD\" | \"UNKNOWN\") {\n switch (environment) {\n case \"DEV\":\n return \"https://www.test.stadt-zuerich.loc\";\n case \"UAT\":\n return \"https://www.integ.stadt-zuerich.ch\";\n case \"PROD\":\n return \"https://www.stadt-zuerich.ch\";\n case \"UNKNOWN\":\n this.PHOTOGRAPHING_BASE_URL = `/stzh-components/assets/mock${this.PHOTOGRAPHING_BASE_URL}`;\n return `${window.location.origin}`;\n }\n }\n\n private onButtonScanClick = event => {\n event.preventDefault();\n event.stopPropagation();\n this.photographingOverlayElement.show().then();\n if (this.isPhotographingAvailable) {\n this.startPhotographingUserSession()\n .then()\n .catch(photographingUserSessionException => {\n console.error(\"photographingUserSessionException\", photographingUserSessionException);\n });\n }\n };\n\n private closePhotographingOverlay = async () => {\n this.photographingOverlayElement.hide().catch();\n };\n\n private filesize = function (size) {\n let selectedSize = 0;\n let selectedUnit = \"b\";\n\n if (size > 0) {\n let units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n for (let i = 0; i < units.length; i++) {\n let unit = units[i];\n let cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n\n selectedSize = Math.round(selectedSize * 100) / 100; // Cutting of digits\n }\n\n return `<strong>${selectedSize}</strong> ${this.options.dictFileSizeUnits[selectedUnit]}`;\n };\n\n private filePreviewId = function (file): string {\n return `${this.uploadId}-${file._id}`;\n };\n\n async componentWillLoad() {\n this.uploadId = `stzh-upload-${uploadCounter++}`;\n\n this.existingFilesWatcher(this.existingFiles);\n this.errorWatcher(this.error);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"upload\");\n }\n\n this.environment = getStzhEnvironment();\n if (this.photographingEnabled) {\n this.initializePhotographingWithEnvironment(this.environment).catch(\n initializePhotographingWithEnvironmentException => {\n console.error(\n \"initializePhotographingWithEnvironmentException\",\n initializePhotographingWithEnvironmentException\n );\n }\n );\n }\n }\n\n componentDidRender() {\n if (this.dropzone) {\n return;\n }\n\n const self = this;\n\n function enableDownload(file) {\n let fileHref = file.url || \"\";\n\n if (file.upload) {\n fileHref = URL.createObjectURL(file);\n }\n\n if (fileHref) {\n for (var node of file.previewElement.querySelectorAll(`[${ATTR_LINK}]`)) {\n node.setAttribute(\"href\", fileHref);\n node.setAttribute(\"download\", file.name);\n\n const isStzh = isStzhElement(node);\n const fileId = self.filePreviewId(file);\n\n node.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", `${self.localization.downloadFile} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", `${self.localization.downloadFile} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${fileId}-error-message ${fileId}-meta`);\n }\n }\n }\n\n this.dropzone = new window.Dropzone(this.dropzoneElement, {\n previewsContainer: this.previewsElement,\n url: this.url,\n method: this.method,\n preventHiddenInputClear: this.preventHiddenInputClear,\n withCredentials: this.withCredentials,\n clickable: [this.clickareaElement],\n acceptedFiles: this.acceptedFiles,\n accept: this.accept,\n maxFiles: this.maxFiles,\n maxFilesize: this.maxFilesize,\n filesizeBase: this.filesizeBase,\n parallelUploads: this.parallelUploads,\n uploadMultiple: this.uploadMultiple,\n autoProcessQueue: this.autoProcessQueue,\n headers: this.headers,\n defaultHeaders: this.defaultHeaders,\n chunking: this.chunking,\n chunkSize: this.chunkSize,\n chunksUploaded: this.chunksUploaded,\n forceChunking: this.forceChunking,\n parallelChunkUploads: this.parallelChunkUploads,\n retryChunks: this.retryChunks,\n retryChunksLimit: this.retryChunksLimit,\n createImageThumbnails: false,\n hiddenInputContainer: this.hiddenInputContainer ? this.hiddenInputContainer : this.hiddenInputContainerElement,\n dictFileSizeUnits: { tb: \"TiB\", gb: \"GiB\", mb: \"MiB\", kb: \"KiB\", b: \"b\" },\n dictRemoveFileConfirmation: null,\n dictMaxFilesExceeded: this.localization.maxFilesExceeded,\n dictRemoveFile: this.localization.removeFile,\n dictDeleteFile: this.localization.deleteFile,\n dictCancelUploadConfirmation: this.localization.cancelUploadConfirmation,\n dictUploadCanceled: this.localization.uploadCanceled,\n dictCancelUpload: this.localization.cancelUpload,\n dictResponseError: this.localization.responseError,\n dictInvalidFileType: this.localization.invalidFileType,\n dictFileTooBig: this.localization.fileTooBig,\n // Called when a file is dropped to the dropzone\n // Receives `event`\n drop: e => {\n // Merge files in hidden input.\n if (this.preventHiddenInputClear) {\n const hiddenFileInput = this.hiddenInputContainerElement?.querySelector(\"input\");\n const dataTransfer = new DataTransfer();\n for (let i = 0; i < hiddenFileInput.files.length; i++) {\n dataTransfer.items.add(hiddenFileInput.files[i]);\n }\n for (const file of e.dataTransfer.files) {\n dataTransfer.items.add(file);\n }\n hiddenFileInput.files = dataTransfer.files;\n }\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n // Called when a file is added to the queue\n // Receives `file`\n // Taken from https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L594\n addedfile(file) {\n file._id = previewCounter++;\n\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n\n if (this.previewsContainer && !this.options.disablePreviews) {\n file.previewElement = window.Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewTemplate = file.previewElement; // Backwards compatibility\n this.previewsContainer.appendChild(file.previewElement);\n\n if (!file.size) {\n file.previewElement.classList.add(\"dz-empty\");\n }\n\n for (var node of file.previewElement.querySelectorAll(`[${ATTR_NAME}]`)) {\n node.textContent = file.name;\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_SIZE}]`)) {\n node.innerHTML = self.filesize.call(this, file.size);\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_META_ID}]`)) {\n node.setAttribute(\"id\", `${self.filePreviewId(file)}-meta`);\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_ERROR_MESSAGE_ID}]`)) {\n node.setAttribute(\"id\", `${self.filePreviewId(file)}-error-message`);\n }\n\n if (this.options.addRemoveLinks) {\n file._removeLink = window.Dropzone.createElement(\n `<a class=\"dz-remove\" href=\"javascript:undefined;\" ${ATTR_REMOVE}>\n ${this.options.dictRemoveFile}\n </a>`\n );\n file.previewElement.appendChild(file._removeLink);\n }\n\n let removeFileEvent = e => {\n e.preventDefault();\n e.stopPropagation();\n if (file.status === window.Dropzone.UPLOADING) {\n return window.Dropzone.confirm(this.options.dictCancelUploadConfirmation, () => this.removeFile(file));\n } else {\n if (this.options.dictRemoveFileConfirmation) {\n return window.Dropzone.confirm(this.options.dictRemoveFileConfirmation, () => this.removeFile(file));\n } else {\n return this.removeFile(file);\n }\n }\n };\n\n for (let removeLink of file.previewElement.querySelectorAll(`[${ATTR_REMOVE}]`)) {\n removeLink.addEventListener(\"click\", removeFileEvent);\n\n const isStzh = isStzhElement(removeLink);\n const fileId = self.filePreviewId(file);\n\n removeLink.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", `${this.options.dictRemoveFile}`);\n removeLink.setAttribute(\n isStzh ? \"a11y-label\" : \"aria-label\",\n `${this.options.dictRemoveFile} ${file.name}`\n );\n removeLink.setAttribute(\n isStzh ? \"a11y-describedby\" : \"aria-describedby\",\n `${fileId}-error-message ${fileId}-meta`\n );\n }\n\n if (!self.downloadDisabled && !self.downloadDisabledWhileProcessing) {\n enableDownload(file);\n }\n }\n },\n // When the upload is finished, either with success or an error.\n // Taken from https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L752\n complete(file) {\n for (let node of file.previewElement.querySelectorAll(`[${ATTR_REMOVE}]`)) {\n const hasErrorState = file.status === \"error\";\n const removeOrDeleteLabel = hasErrorState ? this.options.dictRemoveFile : this.options.dictDeleteFile;\n const isStzh = isStzhElement(node);\n const fileId = self.filePreviewId(file);\n\n node.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", `${removeOrDeleteLabel} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${fileId}-error-message ${fileId}-meta`);\n }\n\n // move file uploads with errors to another element, so they are grouped together\n if (file.status === \"error\") {\n self.errorsElement.appendChild(file.previewElement);\n } else if (!self.downloadDisabled && self.downloadDisabledWhileProcessing) {\n enableDownload(file);\n }\n\n if (file._removeLink) {\n file._removeLink.innerHTML = this.options.dictRemoveFile;\n }\n\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n // Called whenever a file is removed.\n // Taken fom https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L649\n removedfile(file) {\n if (file.previewElement != null && file.previewElement.parentNode != null) {\n file.previewElement.parentNode.removeChild(file.previewElement);\n }\n\n // set focus to upload\n self.linkElement.focus();\n\n return this._updateMaxFilesReachedClass();\n },\n error(file, message, xhr) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n\n if (typeof message !== \"string\" && message.error) {\n message = message.error;\n } else if (xhr) {\n if (xhr.status === 401 || xhr.status === 403) {\n message = self.localization.accessError;\n } else if (xhr.status === 413) {\n message = self.localization.fileTooBigServer;\n } else if (xhr.status === 415) {\n message = self.localization.invalidFileType;\n } else if (xhr.status >= 500) {\n message = self.localization.serverError;\n } else {\n const defaultError = self.localization.responseError.replace(\"{{statusCode}}\", xhr.status);\n\n message = defaultError;\n }\n }\n\n for (let node of file.previewElement.querySelectorAll(\"[data-dz-errormessage]\")) {\n node.textContent = message;\n }\n }\n },\n previewTemplate: `\n <div class=\"stzh-upload__preview\">\n <div class=\"stzh-upload__image\">\n <img data-dz-thumbnail />\n </div>\n\n <div class=\"stzh-upload__details\">\n <div class=\"stzh-upload__info-wrapper\">\n <div class=\"stzh-upload__info-wrapper-processing\">\n <div class=\"stzh-upload__infos\">\n <div class=\"stzh-upload__subtitle\">\n <a class=\"stzh-upload__link\" ${ATTR_NAME} ${ATTR_LINK}></a>\n </div>\n <div class=\"stzh-upload__progress-text\">\n <span ${ATTR_PROGRESS_TEXT}></span>\n </div>\n </div>\n <div class=\"stzh-upload__meta\">\n <span class=\"stzh-upload__extension\" ${ATTR_EXTENSION}></span>\n <span class=\"stzh-upload__separator\"></span>\n <span class=\"stzh-upload__size\" ${ATTR_SIZE}></span>\n </div>\n <div class=\"stzh-upload__progress\">\n <span class=\"stzh-upload__progress-bar\" data-dz-uploadprogress></span>\n </div>\n </div>\n <div class=\"stzh-upload__info-wrapper-complete\">\n <div class=\"stzh-upload__title\">\n <a class=\"stzh-upload__link\" ${ATTR_NAME} ${ATTR_LINK}></a>\n </div>\n <div class=\"stzh-upload__meta\" ${ATTR_META_ID}>\n <span class=\"stzh-upload__extension\" ${ATTR_EXTENSION}></span>\n <span class=\"stzh-upload__separator\"></span>\n <span class=\"stzh-upload__size\" ${ATTR_SIZE}></span>\n </div>\n <div class=\"stzh-upload__error-message\" ${ATTR_ERROR_MESSAGE_ID}>\n <span data-dz-errormessage></span>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload__actions\">\n <!-- <stzh-button variant=\"tertiary\" size=\"small\" icon-only icon=\"download\" class=\"stzh-upload__download\" ${ATTR_LINK}></stzh-button> -->\n <stzh-button variant=\"tertiary\" size=\"small\" icon-only class=\"stzh-upload__delete\" ${ATTR_REMOVE}>\n <stzh-icon slot=\"icon\" class=\"stzh-upload__delete-icon\" name=\"delete\"></stzh-icon>\n <stzh-icon slot=\"icon\" class=\"stzh-upload__delete-icon-error\" name=\"close\"></stzh-icon>\n </stzh-button>\n </div>\n </div>\n </div>\n `,\n });\n\n this.nameWatcher(this.name);\n this.disabledWatcher();\n\n this.dropzone.on(\"addedfile\", (file: StzhUploadFile) =>\n this.stzhFileAdded.emit({\n component: \"stzh-upload\",\n file,\n })\n );\n\n this.dropzone.on(\"addedfiles\", (files: StzhUploadFile[]) =>\n this.stzhFilesAdded.emit({\n component: \"stzh-upload\",\n files,\n })\n );\n\n this.dropzone.on(\n \"removefile\",\n (file: StzhUploadFile) =>\n this.stzhFileRemove.emit({\n component: \"stzh-upload\",\n file,\n }).defaultPrevented === false\n );\n\n this.dropzone.on(\"removedfile\", (file: StzhUploadFile, force: boolean) =>\n this.stzhFileRemoved.emit({\n component: \"stzh-upload\",\n file,\n force,\n })\n );\n\n this.dropzone.on(\"sending\", (file: StzhUploadFile, xhr: XMLHttpRequest, formData: FormData) =>\n this.stzhSending.emit({\n component: \"stzh-upload\",\n file,\n xhr,\n formData,\n })\n );\n\n this.dropzone.on(\"sendingmultiple\", (files: StzhUploadFile[], xhr: XMLHttpRequest, formData: FormData) =>\n this.stzhSendingMultiple.emit({\n component: \"stzh-upload\",\n files,\n xhr,\n formData,\n })\n );\n\n this.dropzone.on(\"processing\", (file: StzhUploadFile) =>\n this.stzhProcessing.emit({\n component: \"stzh-upload\",\n file,\n })\n );\n\n this.dropzone.on(\"processingmultiple\", (files: StzhUploadFile[]) =>\n this.stzhProcessingMultiple.emit({\n component: \"stzh-upload\",\n files,\n })\n );\n\n this.dropzone.on(\"uploadprogress\", (file: StzhUploadFile, progress: number, bytesSent: number) =>\n this.stzhProgress.emit({\n component: \"stzh-upload\",\n file,\n progress,\n bytesSent,\n })\n );\n\n this.dropzone.on(\"totaluploadprogress\", (totalUploadProgress: number, totalBytes: number, totalBytesSent: number) =>\n this.stzhProgressTotal.emit({\n component: \"stzh-upload\",\n totalUploadProgress,\n totalBytes,\n totalBytesSent,\n })\n );\n\n this.dropzone.on(\"error\", (file: StzhUploadFile, message: string, xhr: XMLHttpRequest) =>\n this.stzhError.emit({\n component: \"stzh-upload\",\n file,\n message,\n xhr,\n })\n );\n\n this.dropzone.on(\"errormultiple\", (files: StzhUploadFile[], message: string, xhr: XMLHttpRequest) =>\n this.stzhErrorMultiple.emit({\n component: \"stzh-upload\",\n files,\n message,\n xhr,\n })\n );\n\n this.dropzone.on(\"success\", (file: StzhUploadFile, responseText: string, event: ProgressEvent) =>\n this.stzhSuccess.emit({\n component: \"stzh-upload\",\n file,\n responseText,\n event,\n })\n );\n\n this.dropzone.on(\"successmultiple\", (files: StzhUploadFile[], responseText: string, event: ProgressEvent) =>\n this.stzhSuccessMultiple.emit({\n component: \"stzh-upload\",\n files,\n responseText,\n event,\n })\n );\n\n this.dropzone.on(\"canceled\", (file: StzhUploadFile) =>\n this.stzhCanceled.emit({\n component: \"stzh-upload\",\n file,\n })\n );\n\n this.dropzone.on(\"canceledmultiple\", (files: StzhUploadFile[]) =>\n this.stzhCanceledMultiple.emit({\n component: \"stzh-upload\",\n files,\n })\n );\n\n this.dropzone.on(\"complete\", (file: StzhUploadFile) =>\n this.stzhComplete.emit({\n component: \"stzh-upload\",\n file,\n })\n );\n\n this.dropzone.on(\"completemultiple\", (files: StzhUploadFile[]) =>\n this.stzhCompleteMultiple.emit({\n component: \"stzh-upload\",\n files,\n })\n );\n\n this.dropzone.on(\"addedfile\", (file: StzhUploadFile) => {\n file.previewElement.querySelectorAll(`[${ATTR_NAME}]`).forEach((name: HTMLElement) => {\n name.setAttribute(\"title\", file.name);\n });\n\n file.previewElement.querySelectorAll(`[${ATTR_TYPE}]`).forEach((type: HTMLElement) => {\n type.innerText = file.type;\n });\n\n file.previewElement.querySelectorAll(`[${ATTR_EXTENSION}]`).forEach((extension: HTMLElement) => {\n extension.innerText = file.name.split(\".\").pop();\n });\n });\n\n this.dropzone.on(\"uploadprogress\", (file: StzhUploadFile, progress: number) => {\n file.previewElement.querySelectorAll(`[${ATTR_PROGRESS_TEXT}]`).forEach((progressText: HTMLElement) => {\n progressText.innerText = `${progress.toString()}%`;\n });\n });\n\n this._existingFiles.forEach(file => {\n this.dropzone.displayExistingFile(file, null, null, null, null);\n });\n }\n\n disconnectedCallback() {\n if (this.dropzone) {\n this.dropzone.destroy();\n this.dropzone = null;\n }\n }\n\n render() {\n const errorUsed = hasSlot(this.element, \"error\") || this._error?.length > 0;\n\n const classes = {\n \"stzh-upload\": true,\n \"stzh-upload--is-invalid\": this.invalid || errorUsed,\n \"stzh-upload--is-disabled\": this.disabled,\n \"stzh-upload--has-hidden-progress\": this.hideProgress,\n \"stzh-upload--has-hidden-progress-while-idle\": this.hideProgressWhileIdle,\n \"stzh-upload--has-error\": errorUsed,\n \"stzh-upload--has-instructions\": !!this.description || !!this.localization.description,\n };\n\n const description = this.description ? this.description : this.localization.description;\n\n return (\n <Host is-invalid={this.invalid || errorUsed}>\n <div class={classes} ref={el => (this.dropzoneElement = el as HTMLDivElement)}>\n <div ref={el => (this.hiddenInputContainerElement = el as HTMLElement)}></div>\n\n <div id={`${this.uploadId}-label`}>{this.label && <div class=\"stzh-upload__label\">{this.label}</div>}</div>\n\n <div class=\"stzh-upload__clickarea\" ref={el => (this.clickareaElement = el as HTMLDivElement)}>\n <div class=\"stzh-upload__heading-wrapper\">\n <div class=\"stzh-upload__heading-inner-wrapper\">\n <div class=\"stzh-upload__heading\">{this.heading ? this.heading : this.localization.heading}</div>\n <div class=\"stzh-upload__buttons-wrapper\">\n <stzh-button\n class=\"stzh-upload__button\"\n variant=\"secondary\"\n size=\"small\"\n ref={el => (this.linkElement = el as HTMLStzhButtonElement)}\n label={this.button ? this.button : tc(this.localization.button, this.maxFiles)}\n a11yDescribedby={`${this.uploadId}-label ${this.uploadId}-instruction ${this.uploadId}-description`}\n disabled={this.disabled}\n a11yControls={`${this.uploadId}-previews`}\n >\n <stzh-icon slot=\"icon\" name=\"upload\"></stzh-icon>\n </stzh-button>\n {this.isPhotographingAvailable && (\n <stzh-button\n class=\"stzh-upload__button-scan\"\n variant=\"secondary\"\n size=\"small\"\n label={this.buttonScan ? this.buttonScan : tc(this.localization.buttonScan, this.maxFiles)}\n onClick={this.onButtonScanClick}\n >\n <stzh-icon slot=\"icon\" name=\"camera\"></stzh-icon>\n </stzh-button>\n )}\n </div>\n <div class=\"stzh-upload__hint-wrapper\">\n <span>{this.localization.buttonIntro}</span>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload__instructions\" id={`${this.uploadId}-instruction`}>\n {description\n .replace(\"{{fileformats}}\", this.acceptedFiles ? this.acceptedFiles : \"Alle\")\n .replace(\"{{filesize}}\", `${this.maxFilesize}`)}\n </div>\n </div>\n\n {this._error?.length > 0 && (\n <StzhInputDescription classPrefix=\"stzh-upload\" id={`${this.uploadId}-description`} error={this._error} />\n )}\n\n <div id={`${this.uploadId}-previews`} class=\"stzh-upload__previews-wrapper\">\n <div class=\"stzh-upload__previews-inner-wrapper\">\n <div class=\"stzh-upload__errors\" ref={el => (this.errorsElement = el as HTMLElement)}></div>\n <div\n class=\"stzh-upload__previews dropzone-previews\"\n ref={el => (this.previewsElement = el as HTMLElement)}\n ></div>\n </div>\n </div>\n </div>\n\n <stzh-dialog\n ref={el => (this.photographingOverlayElement = el as HTMLStzhOverlayElement)}\n onStzhClose={this.closePhotographingWebsocketConnection}\n >\n <stzh-button\n class=\"stzh-upload-photographing__back-button\"\n icon=\"arrow-left\"\n size=\"small\"\n variant=\"tertiary-plain\"\n no-padding-left=\"true\"\n no-padding-right=\"true\"\n onClick={this.closePhotographingOverlay}\n >\n {this.localization.back}\n </stzh-button>\n {this.isPhotographingAvailable && (\n <Fragment>\n <div class=\"stzh-upload-photographing__info\">\n <stzh-heading level=\"3\">{this.localization.photographingTitle1}</stzh-heading>\n <div class=\"stzh-upload-photographing__text-qrcode\">\n <div>\n <stzh-text>{this.localization.photographingText1}</stzh-text>\n {!!this.photographingUrlDetails && (\n <stzh-link\n class=\"stzh-upload-photographing-link\"\n href={this.photographingUrlDetails.url}\n target=\"_blank\"\n >\n {this.photographingUrlDetails.url}\n </stzh-link>\n )}\n </div>\n <canvas\n class=\"stzh-upload-photographing-qrcode\"\n ref={el => (this.photographingQrcodeElement = el as HTMLCanvasElement)}\n ></canvas>\n </div>\n </div>\n <div class=\"stzh-upload-photographing__info\">\n <stzh-heading level=\"3\">{this.localization.photographingTitle2}</stzh-heading>\n <stzh-text>{this.localization.photographingText2}</stzh-text>\n </div>\n </Fragment>\n )}\n </stzh-dialog>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"stzh-upload.js","sourceRoot":"","sources":["../../../../src/components/stzh-upload/stzh-upload.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,QAAQ,EACR,CAAC,EACD,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,GACN,MAAM,eAAe,CAAC;AAyBvB,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,EAAE,EAAE,MAAM,+BAA+B,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,mCAAmC,CAAC;AAG3C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC;AAErC,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAC3C,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AACzD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,mCAAmC;AACnC,kEAAkE;AAElE,gCAAgC;AAChC,uEAAuE;AAEvE;;GAEG;AAKH,MAAM,OAAO,UAAU;;IAOb,mBAAc,GAA0B,EAAE,CAAC;IAuX3C,2BAAsB,GAAG,mBAAmB,CAAC;IAC7C,4BAAuB,GAAG;MAChC,IAAI,EAAE,OAAO;MACb,GAAG,EAAE,MAAM;MACX,KAAK,EAAE,QAAQ;MACf,MAAM,EAAE,SAAS;MACjB,IAAI,EAAE,OAAO;KACd,CAAC;IAQM,gBAAW,GAAG,GAAG,EAAE;MACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAmIM,0CAAqC,GAAG,GAAG,EAAE;MACnD,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC,CAAC;IA8DM,sBAAiB,GAAG,KAAK,CAAC,EAAE;MAClC,KAAK,CAAC,cAAc,EAAE,CAAC;MACvB,KAAK,CAAC,eAAe,EAAE,CAAC;MACxB,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;MAC/C,IAAI,IAAI,CAAC,wBAAwB,EAAE;QACjC,IAAI,CAAC,6BAA6B,EAAE;WACjC,IAAI,EAAE;WACN,KAAK,CAAC,iCAAiC,CAAC,EAAE;UACzC,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,iCAAiC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;OACN;IACH,CAAC,CAAC;IAEM,8BAAyB,GAAG,KAAK,IAAI,EAAE;MAC7C,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IAClD,CAAC,CAAC;IAEM,aAAQ,GAAG,UAAU,IAAI;MAC/B,IAAI,YAAY,GAAG,CAAC,CAAC;MACrB,IAAI,YAAY,GAAG,GAAG,CAAC;MAEvB,IAAI,IAAI,GAAG,CAAC,EAAE;QACZ,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UACrC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;UACpB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;UAE7D,IAAI,IAAI,IAAI,MAAM,EAAE;YAClB,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACjE,YAAY,GAAG,IAAI,CAAC;YACpB,MAAM;WACP;SACF;QAED,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,oBAAoB;OAC1E;MAED,OAAO,WAAW,YAAY,aAAa,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC5F,CAAC,CAAC;IAEM,kBAAa,GAAG,UAAU,IAAI;MACpC,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,CAAC,CAAC;yBAvnBsD,EAAE;gBAInC,EAAE;iBAGD,EAAE;mBAGA,EAAE;uBAGE,EAAE;kBAGP,EAAE;sBAGE,EAAE;gCAG0B,KAAK;eAQ7B,EAAE;kBAMS,MAAM;2BAKf,KAAK;oBAKK,KAAK;mBAKN,KAAK;4BAGb,KAAK;2CAGU,KAAK;;yBAiBjB,IAAI;4BASP,IAAI;wBAKR,KAAK;iCAMI,KAAK;oBAMZ,IAAI;uBAKR,EAAE;2BAKE,CAAC;0BASD,KAAK;oBAQX,KAAK;yBAOA,KAAK;qBAKV,CAAC,GAAG,IAAI,GAAG,IAAI;gCAKH,KAAK;uBAKd,KAAK;4BAKD,CAAC;wBASL,IAAI;mBAQ+C,IAAI;0BAQpD,IAAI;kBAWX,UAAU,KAAK,EAAE,IAAI;MAC9C,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;0BAQkC,UAAU,KAAK,EAAE,IAAI;MACtD,IAAI,EAAE,CAAC;IACT,CAAC;;mCAe0C,KAAK;;;oCAuKH,KAAK;;;;;;;EA7JlD,aAAa,CAAC,KAAY;IACxB,IAAK,KAAK,CAAC,MAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;MACxD,qBAAqB,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;MACrB,CAAC,CAAC,CAAC;KACJ;EACH,CAAC;EAGD,WAAW,CAAC,QAAgB;;IAC1B,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,2BAA2B,0CAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvE,IAAI,KAAK,EAAE;MACT,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KACtC;EACH,CAAC;EAGD,eAAe,CAAC,WAA0B;IACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC;EAC/C,CAAC;EAGD,kBAAkB,CAAC,cAAsB;IACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,cAAc,CAAC;EACrD,CAAC;EAGD,oBAAoB,CAAC,QAAwC;IAC3D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;MAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC5C;SAAM;MACL,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;KAChC;EACH,CAAC;EAGD,eAAe;IACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;MAClB,OAAO;KACR;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;KACzB;SAAM;MACL,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACxB;EACH,CAAC;EAGD,YAAY,CAAC,QAA2B;IACtC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;MAChC,IAAI;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;OACpC;MAAC,OAAO,CAAC,EAAE;QACV,IAAI,QAAQ,EAAE;UACZ,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC1B;aAAM;UACL,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;SAClB;OACF;KACF;SAAM,IAAI,QAAQ,EAAE;MACnB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;KACxB;SAAM;MACL,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;KAClB;EACH,CAAC;EAyDD,KAAK,CAAC,YAAY;IAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;EACtC,CAAC;EAGD,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;EAC/C,CAAC;EAGD,KAAK,CAAC,cAAc,CAAC,iBAAiB,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK;IAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;EAChE,CAAC;EAiCO,KAAK,CAAC,QAAQ;IACpB,IACE,IAAI,CAAC,kBAAkB;MACvB,IAAI,CAAC,kBAAkB,CAAC,YAAY;MACpC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAC/C;MACA,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;SAAM;MACL,OAAO,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAC/C;EACH,CAAC;EAEO,KAAK,CAAC,yBAAyB;IACrC,IAAI;MACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAC9F,CAAC;MACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;OAC3C;MACD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;MAC7C,IAAI,CAAC,kBAAkB,GAAG;QACxB,YAAY,EAAE,cAAc,CAAC,YAAY;QACzC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,UAAU,GAAG,IAAI;OAC1D,CAAC;MACF,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;IAAC,OAAO,KAAK,EAAE;MACd,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;MAC/C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC3C;EACH,CAAC;EAEO,KAAK,CAAC,sCAAsC,CAAC,WAAgC;IACnF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kCAAkC,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACpC,IAAI,IAAI,CAAC,mBAAmB,EAAE;MAC5B,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;KAC7C;EACH,CAAC;EAEO,KAAK,CAAC,6BAA6B;IACzC,IAAI;MACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,EAC/E,MAAM,IAAI,CAAC,oCAAoC,EAAE,CAClD,CAAC;MACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,gEAAgE;OACjE;WAAM;QACL,MAAM,GAAG,GAAmC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,uBAAuB,GAAG;UAC7B,GAAG,EAAE,GAAG,CAAC,GAAG;UACZ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;SACzB,CAAC;QACF,IAAI;UACF,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;SACjE;QAAC,OAAO,KAAK,EAAE;UACd,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;SACnD;QACD,MAAM,IAAI,CAAC,yCAAyC,EAAE,CAAC;OACxD;KACF;IAAC,OAAO,sCAAsC,EAAE;MAC/C,OAAO,CAAC,KAAK,CACX,sFAAsF,EACtF,sCAAsC,CACvC,CAAC;KACH;EACH,CAAC;EAEO,KAAK,CAAC,wBAAwB;IACpC,IAAI;MACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,oBAAoB,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,EACxI,MAAM,IAAI,CAAC,oCAAoC,EAAE,CAClD,CAAC;MACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,+DAA+D,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;OACjG;WAAM;QACL,MAAM,cAAc,GAAgC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;OACxC;KACF;IAAC,OAAO,iCAAiC,EAAE;MAC1C,OAAO,CAAC,KAAK,CACX,4EAA4E,EAC5E,iCAAiC,CAClC,CAAC;KACH;EACH,CAAC;EAEO,KAAK,CAAC,SAAS,CAAC,GAAG;IACzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,aAAa,GAAW,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,IAAI,KAAK,0BAA0B,EAAE;MAC5C,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;KACrE;IACD,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;EAC9D,CAAC;EAEO,KAAK,CAAC,yCAAyC;IACrD,IAAI,CAAC,sBAAsB,GAAG,IAAI,SAAS,CACzC,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAC/E,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAC/C,CAAC;IAEF,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,GAAG,EAAE;MACxC,WAAW,CAAC,GAAG,EAAE;QACf,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC;MACjD,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAC;IAEF,IAAI,CAAC,sBAAsB,CAAC,SAAS,GAAG,KAAK,EAAC,KAAK,EAAC,EAAE;MACpD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;MAE3B,IAAI,OAAO,KAAK,aAAa,EAAE;QAC7B,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;OACvC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,sBAAsB,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;MAC5C,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC;EACJ,CAAC;EAMO,iCAAiC,CAAC,OAAY;IACpD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAC5C,CAAC;EAEO,KAAK,CAAC,oCAAoC;IAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpC,OAAO;MACL,OAAO,EAAE;QACP,aAAa,EAAE,UAAU,KAAK,CAAC,YAAY,EAAE;OAC9C;KACF,CAAC;EACJ,CAAC;EAEO,KAAK,CAAC,8BAA8B;IAC1C,IAAI;MACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAChF,MAAM,IAAI,CAAC,oCAAoC,EAAE,CAClD,CAAC;MACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,kDAAkD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;OACvC;WAAM;QACL,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;OACtC;KACF;IAAC,OAAO,oBAAoB,EAAE;MAC7B,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,oBAAoB,CAAC,CAAC;MACxF,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;KACvC;EACH,CAAC;EAEO,KAAK,CAAC,sBAAsB;IAClC,IAAI;MACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAChG,CAAC;MACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,gDAAgD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;OAClF;WAAM;QACL,IAAI,CAAC,mBAAmB,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;OAClD;KACF;IAAC,OAAO,kBAAkB,EAAE;MAC3B,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,kBAAkB,CAAC,CAAC;KACnF;EACH,CAAC;EAEO,kCAAkC,CAAC,WAA+C;IACxF,QAAQ,WAAW,EAAE;MACnB,KAAK,KAAK;QACR,OAAO,oCAAoC,CAAC;MAC9C,KAAK,KAAK;QACR,OAAO,oCAAoC,CAAC;MAC9C,KAAK,MAAM;QACT,OAAO,8BAA8B,CAAC;MACxC,KAAK,SAAS;QACZ,IAAI,CAAC,sBAAsB,GAAG,+BAA+B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3F,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACtC;EACH,CAAC;EA+CD,KAAK,CAAC,iBAAiB;IACrB,IAAI,CAAC,QAAQ,GAAG,eAAe,aAAa,EAAE,EAAE,CAAC;IAEjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;MACtB,IAAI,CAAC,YAAY,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KACjG;IAED,IAAI,CAAC,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACxC,IAAI,IAAI,CAAC,oBAAoB,EAAE;MAC7B,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CACjE,+CAA+C,CAAC,EAAE;QAChD,OAAO,CAAC,KAAK,CACX,iDAAiD,EACjD,+CAA+C,CAChD,CAAC;MACJ,CAAC,CACF,CAAC;KACH;EACH,CAAC;EAED,kBAAkB;IAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,OAAO;KACR;IAED,MAAM,IAAI,GAAG,IAAI,CAAC;IAElB,SAAS,cAAc,CAAC,IAAI;MAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;MAE9B,IAAI,IAAI,CAAC,MAAM,EAAE;QACf,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;OACtC;MAED,IAAI,QAAQ,EAAE;QACZ,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;UACvE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;UACpC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;UAEzC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;UACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;UAExC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;UAC7G,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;UAC1G,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,MAAM,kBAAkB,MAAM,OAAO,CAAC,CAAC;SAC/G;OACF;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE;MACxD,iBAAiB,EAAE,IAAI,CAAC,eAAe;MACvC,GAAG,EAAE,IAAI,CAAC,GAAG;MACb,MAAM,EAAE,IAAI,CAAC,MAAM;MACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;MACrD,eAAe,EAAE,IAAI,CAAC,eAAe;MACrC,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;MAClC,aAAa,EAAE,IAAI,CAAC,aAAa;MACjC,MAAM,EAAE,IAAI,CAAC,MAAM;MACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,WAAW,EAAE,IAAI,CAAC,WAAW;MAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;MAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;MACrC,cAAc,EAAE,IAAI,CAAC,cAAc;MACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;MACvC,OAAO,EAAE,IAAI,CAAC,OAAO;MACrB,cAAc,EAAE,IAAI,CAAC,cAAc;MACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACvB,SAAS,EAAE,IAAI,CAAC,SAAS;MACzB,cAAc,EAAE,IAAI,CAAC,cAAc;MACnC,aAAa,EAAE,IAAI,CAAC,aAAa;MACjC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;MAC/C,WAAW,EAAE,IAAI,CAAC,WAAW;MAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;MACvC,qBAAqB,EAAE,KAAK;MAC5B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B;MAC9G,iBAAiB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE;MACzE,0BAA0B,EAAE,IAAI;MAChC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB;MACxD,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;MAC5C,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;MAC5C,4BAA4B,EAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB;MACxE,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc;MACpD,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY;MAChD,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa;MAClD,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe;MACtD,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;MAC5C,gDAAgD;MAChD,mBAAmB;MACnB,IAAI,EAAE,CAAC,CAAC,EAAE;;QACR,+BAA+B;QAC/B,IAAI,IAAI,CAAC,uBAAuB,EAAE;UAChC,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,2BAA2B,0CAAE,aAAa,CAAC,OAAO,CAAC,CAAC;UACjF,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;UACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;WAClD;UACD,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;YACvC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;WAC9B;UACD,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;MACxD,CAAC;MACD,2CAA2C;MAC3C,kBAAkB;MAClB,kFAAkF;MAClF,SAAS,CAAC,IAAI;QACZ,IAAI,CAAC,GAAG,GAAG,cAAc,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,iBAAiB,EAAE;UAC3C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAC1C;QAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;UAC3D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;UACzF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,0BAA0B;UACtE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;UAExD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;WAC/C;UAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;YACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;WAC9B;UAED,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;YACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;WACtD;UAED,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE;YACtE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;WAC7D;UAED,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,GAAG,CAAC,EAAE;YAC/E,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;WACtE;UAED,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9C,qDAAqD,WAAW;kBAC5D,IAAI,CAAC,OAAO,CAAC,cAAc;mBAC1B,CACN,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;WACnD;UAED,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE;YACxB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;cAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;aACxG;iBAAM;cACL,IAAI,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE;gBAC3C,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;eACtG;mBAAM;gBACL,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;eAC9B;aACF;UACH,CAAC,CAAC;UAEF,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;YAC/E,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAEtD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAExC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;YACnG,UAAU,CAAC,YAAY,CACrB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EACpC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,EAAE,CAC9C,CAAC;YACF,UAAU,CAAC,YAAY,CACrB,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAChD,GAAG,MAAM,kBAAkB,MAAM,OAAO,CACzC,CAAC;WACH;UAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE;YACnE,cAAc,CAAC,IAAI,CAAC,CAAC;WACtB;SACF;MACH,CAAC;MACD,gEAAgE;MAChE,kFAAkF;MAClF,QAAQ,CAAC,IAAI;QACX,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;UACzE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;UAC9C,MAAM,mBAAmB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;UACtG,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;UACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;UAExC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,mBAAmB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;UAC/F,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,MAAM,kBAAkB,MAAM,OAAO,CAAC,CAAC;SAC/G;QAED,iFAAiF;QACjF,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;UAC3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACrD;aAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,+BAA+B,EAAE;UACzE,cAAc,CAAC,IAAI,CAAC,CAAC;SACtB;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;UACpB,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;SAC1D;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;UACvB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SACzD;MACH,CAAC;MACD,qCAAqC;MACrC,iFAAiF;MACjF,WAAW,CAAC,IAAI;QACd,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,EAAE;UACzE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACjE;QAED,sBAAsB;QACtB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC,2BAA2B,EAAE,CAAC;MAC5C,CAAC;MACD,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG;QACtB,IAAI,IAAI,CAAC,cAAc,EAAE;UACvB,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;UAE9C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE;YAChD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;WACzB;eAAM,IAAI,GAAG,EAAE;YACd,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;cAC5C,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;aACzC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;cAC7B,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;aAC9C;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;cAC7B,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;aAC7C;iBAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;cAC5B,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;aACzC;iBAAM;cACL,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;cAE3F,OAAO,GAAG,YAAY,CAAC;aACxB;WACF;UAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE;YAC/E,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;WAC5B;SACF;MACH,CAAC;MACD,eAAe,EAAE;;;;;;;;;;;iDAW0B,SAAS,IAAI,SAAS;;;0BAG7C,kBAAkB;;;;uDAIW,cAAc;;kDAEnB,SAAS;;;;;;;;+CAQZ,SAAS,IAAI,SAAS;;+CAEtB,YAAY;uDACJ,cAAc;;kDAEnB,SAAS;;wDAEH,qBAAqB;;;;;;wHAM2C,SAAS;iGAChC,WAAW;;;;;;;OAOrG;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IAEvB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAoB,EAAE,EAAE,CACrD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;MACtB,SAAS,EAAE,aAAa;MACxB,IAAI;KACL,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,KAAuB,EAAE,EAAE,CACzD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;MACvB,SAAS,EAAE,aAAa;MACxB,KAAK;KACN,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CACd,YAAY,EACZ,CAAC,IAAoB,EAAE,EAAE,CACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;MACvB,SAAS,EAAE,aAAa;MACxB,IAAI;KACL,CAAC,CAAC,gBAAgB,KAAK,KAAK,CAChC,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,IAAoB,EAAE,KAAc,EAAE,EAAE,CACvE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;MACxB,SAAS,EAAE,aAAa;MACxB,IAAI;MACJ,KAAK;KACN,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAoB,EAAE,GAAmB,EAAE,QAAkB,EAAE,EAAE,CAC5F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;MACpB,SAAS,EAAE,aAAa;MACxB,IAAI;MACJ,GAAG;MACH,QAAQ;KACT,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAuB,EAAE,GAAmB,EAAE,QAAkB,EAAE,EAAE,CACvG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;MAC5B,SAAS,EAAE,aAAa;MACxB,KAAK;MACL,GAAG;MACH,QAAQ;KACT,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAoB,EAAE,EAAE,CACtD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;MACvB,SAAS,EAAE,aAAa;MACxB,IAAI;KACL,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAuB,EAAE,EAAE,CACjE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;MAC/B,SAAS,EAAE,aAAa;MACxB,KAAK;KACN,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAoB,EAAE,QAAgB,EAAE,SAAiB,EAAE,EAAE,CAC/F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;MACrB,SAAS,EAAE,aAAa;MACxB,IAAI;MACJ,QAAQ;MACR,SAAS;KACV,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,mBAA2B,EAAE,UAAkB,EAAE,cAAsB,EAAE,EAAE,CAClH,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;MAC1B,SAAS,EAAE,aAAa;MACxB,mBAAmB;MACnB,UAAU;MACV,cAAc;KACf,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAoB,EAAE,OAAe,EAAE,GAAmB,EAAE,EAAE,CACvF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;MAClB,SAAS,EAAE,aAAa;MACxB,IAAI;MACJ,OAAO;MACP,GAAG;KACJ,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,KAAuB,EAAE,OAAe,EAAE,GAAmB,EAAE,EAAE,CAClG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;MAC1B,SAAS,EAAE,aAAa;MACxB,KAAK;MACL,OAAO;MACP,GAAG;KACJ,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAoB,EAAE,YAAoB,EAAE,KAAoB,EAAE,EAAE,CAC/F,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;MACpB,SAAS,EAAE,aAAa;MACxB,IAAI;MACJ,YAAY;MACZ,KAAK;KACN,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAuB,EAAE,YAAoB,EAAE,KAAoB,EAAE,EAAE,CAC1G,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;MAC5B,SAAS,EAAE,aAAa;MACxB,KAAK;MACL,YAAY;MACZ,KAAK;KACN,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAAoB,EAAE,EAAE,CACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;MACrB,SAAS,EAAE,aAAa;MACxB,IAAI;KACL,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAuB,EAAE,EAAE,CAC/D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;MAC7B,SAAS,EAAE,aAAa;MACxB,KAAK;KACN,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAAoB,EAAE,EAAE,CACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;MACrB,SAAS,EAAE,aAAa;MACxB,IAAI;KACL,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAuB,EAAE,EAAE,CAC/D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;MAC7B,SAAS,EAAE,aAAa;MACxB,KAAK;KACN,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAoB,EAAE,EAAE;MACrD,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,EAAE;QACnF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;MACxC,CAAC,CAAC,CAAC;MAEH,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,EAAE;QACnF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;MAC7B,CAAC,CAAC,CAAC;MAEH,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,SAAsB,EAAE,EAAE;QAC7F,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;MACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAoB,EAAE,QAAgB,EAAE,EAAE;MAC5E,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,kBAAkB,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,YAAyB,EAAE,EAAE;QACpG,YAAY,CAAC,SAAS,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;MACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;MACjC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;EACL,CAAC;EAED,oBAAoB;IAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;MACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB;EACH,CAAC;EAED,MAAM;;IACJ,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,IAAG,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAG;MACd,aAAa,EAAE,IAAI;MACnB,yBAAyB,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;MACpD,0BAA0B,EAAE,IAAI,CAAC,QAAQ;MACzC,kCAAkC,EAAE,IAAI,CAAC,YAAY;MACrD,6CAA6C,EAAE,IAAI,CAAC,qBAAqB;MACzE,wBAAwB,EAAE,SAAS;MACnC,+BAA+B,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW;KACvF,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;IAExF,OAAO,CACL,EAAC,IAAI,kBAAa,IAAI,CAAC,OAAO,IAAI,SAAS;MACzC,WAAK,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,EAAoB,CAAC;QAC3E,WAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAAiB,CAAC,GAAQ;QAE9E,WAAK,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,QAAQ,IAAG,IAAI,CAAC,KAAK,IAAI,WAAK,KAAK,EAAC,oBAAoB,IAAE,IAAI,CAAC,KAAK,CAAO,CAAO;QAE3G,WAAK,KAAK,EAAC,wBAAwB,EAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,EAAoB,CAAC;UAC3F,WAAK,KAAK,EAAC,8BAA8B;YACvC,WAAK,KAAK,EAAC,oCAAoC;cAC7C,WAAK,KAAK,EAAC,sBAAsB,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAO;cACjG,WAAK,KAAK,EAAC,8BAA8B;gBACvC,mBACE,KAAK,EAAC,qBAAqB,EAC3B,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,EAA2B,CAAC,EAC3D,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAC9E,eAAe,EAAE,GAAG,IAAI,CAAC,QAAQ,UAAU,IAAI,CAAC,QAAQ,gBAAgB,IAAI,CAAC,QAAQ,cAAc,EACnG,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,WAAW;kBAEzC,iBAAW,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,GAAa,CACrC;gBACb,IAAI,CAAC,wBAAwB,IAAI,CAChC,mBACE,KAAK,EAAC,0BAA0B,EAChC,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAC1F,OAAO,EAAE,IAAI,CAAC,iBAAiB;kBAE/B,iBAAW,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,GAAa,CACrC,CACf,CACG;cACN,WAAK,KAAK,EAAC,2BAA2B;gBACpC,gBAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAQ,CACxC,CACF,CACF;UACN,WAAK,KAAK,EAAC,2BAA2B,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,cAAc,IACtE,WAAW;aACT,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;aAC5E,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAC7C,CACF;QAEN,WAAK,KAAK,EAAC,kCAAkC,IAC1C,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,IAAG,CAAC,IAAI,CAC1B,EAAC,oBAAoB,IAAC,WAAW,EAAC,aAAa,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,GAAI,CAC3G,CACG;QAEN,WAAK,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,WAAW,EAAE,KAAK,EAAC,+BAA+B;UACzE,WAAK,KAAK,EAAC,qCAAqC;YAC9C,WAAK,KAAK,EAAC,qBAAqB,EAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,EAAiB,CAAC,GAAQ;YAC5F,WACE,KAAK,EAAC,yCAAyC,EAC/C,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,EAAiB,CAAC,GAChD,CACH,CACF,CACF;MAEN,mBACE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAA4B,CAAC,EAC5E,WAAW,EAAE,IAAI,CAAC,qCAAqC;QAEvD,mBACE,KAAK,EAAC,wCAAwC,EAC9C,IAAI,EAAC,YAAY,EACjB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,gBAAgB,qBACR,MAAM,sBACL,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,yBAAyB,IAEtC,IAAI,CAAC,YAAY,CAAC,IAAI,CACX;QACb,IAAI,CAAC,wBAAwB,IAAI,CAChC,EAAC,QAAQ;UACP,WAAK,KAAK,EAAC,iCAAiC;YAC1C,oBAAc,KAAK,EAAC,GAAG,IAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAgB;YAC9E,WAAK,KAAK,EAAC,wCAAwC;cACjD;gBACE,qBAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAa;gBAC5D,CAAC,CAAC,IAAI,CAAC,uBAAuB,IAAI,CACjC,iBACE,KAAK,EAAC,gCAAgC,EACtC,IAAI,EAAE,IAAI,CAAC,uBAAuB,CAAC,GAAG,EACtC,MAAM,EAAC,QAAQ,IAEd,IAAI,CAAC,uBAAuB,CAAC,GAAG,CACvB,CACb,CACG;cACN,cACE,KAAK,EAAC,kCAAkC,EACxC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,GAAG,EAAuB,CAAC,GAC9D,CACN,CACF;UACN,WAAK,KAAK,EAAC,iCAAiC;YAC1C,oBAAc,KAAK,EAAC,GAAG,IAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAgB;YAC9E,qBAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAa,CACzD,CACG,CACZ,CACW,CACT,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Fragment,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n StzhUploadCanceledEvent,\n StzhUploadCanceledMultipleEvent,\n StzhUploadCompleteEvent,\n StzhUploadCompleteMultipleEvent,\n StzhUploadErrorEvent,\n StzhUploadErrorMultipleEvent,\n StzhUploadFile,\n StzhUploadFileAddedEvent,\n StzhUploadFileRemovedEvent,\n StzhUploadFileRemoveEvent,\n StzhUploadFilesAddedEvent,\n StzhUploadFilesItem,\n StzhUploadProcessingEvent,\n StzhUploadProcessingMultipleEvent,\n StzhUploadProgressEvent,\n StzhUploadProgressTotalEvent,\n StzhUploadSendingEvent,\n StzhUploadSendingMultipleEvent,\n StzhUploadSuccessEvent,\n StzhUploadSuccessMultipleEvent,\n} from \"../../index\";\n\nimport { getStzhEnvironment, hasSlot, isStzhElement, StzhEnvironmentEnum } from \"../../utils/utils\";\nimport { tc } from \"../../utils/translation-utils\";\nimport { StzhUploadLocalizedText } from \"./stzh-upload.localization\";\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nimport \"../../libraries/dropzone/dropzone\";\nimport { StzhPhotographingUrlDetailsDto } from \"./models/stzh-photographing-url-details.dto\";\nimport { StzhPhotographingConfigurationDto } from \"./models/stzh-photographing-configuration.dto\";\nimport QRCode from \"qrcode\";\nimport { StzhPhotographingPdfFileDto } from \"./models/stzh-photographing-pdf-file.dto\";\n\nwindow.Dropzone.autoDiscover = false;\n\nconst ATTR_NAME = \"data-dz-name\";\nconst ATTR_TYPE = \"data-dz-type\";\nconst ATTR_SIZE = \"data-dz-size\";\nconst ATTR_LINK = \"data-dz-link\";\nconst ATTR_EXTENSION = \"data-dz-extension\";\nconst ATTR_META_ID = \"data-dz-meta-id\";\nconst ATTR_ERROR_MESSAGE_ID = \"data-dz-error-message-id\";\nconst ATTR_PROGRESS_TEXT = \"data-dz-progress-text\";\nconst ATTR_REMOVE = \"data-dz-remove\";\n\nlet uploadCounter = 0;\nlet previewCounter = 0;\n\n// Most properties taken over from:\n// https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js\n\n// Possible events to listen to:\n// https://github.com/dropzone/dropzone/blob/v5.9.3/src/dropzone.js#L17\n\n/**\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-upload\",\n styleUrl: \"stzh-upload.scss\",\n})\nexport class StzhUpload {\n /**\n * Initially pre existing files (e.g. already uploaded by the user).\n * Array of objects that must at least include `name` and `size` attribute:\n * `[{\"name\":\"file1.txt\", \"size\": 12345}, {\"name\":\"file2.txt\", \"size\": 12345}]`\n */\n @Prop() existingFiles: StzhUploadFilesItem[] | string = [];\n private _existingFiles: StzhUploadFilesItem[] = [];\n\n /** Name of hidden input field */\n @Prop() name: string = \"\";\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Instructions heading */\n @Prop() heading: string = \"\";\n\n /** Instructions description */\n @Prop() description: string = \"\";\n\n /** Button text */\n @Prop() button: string = \"\";\n\n /** Scan Button text */\n @Prop() buttonScan: string = \"\";\n\n /** Scan Button text */\n @Prop({ mutable: true }) photographingEnabled: boolean = false;\n\n /**\n * URL the files are processed to.\n *\n * You can also provide a function that will be called with `files` and\n * `dataBlocks` and must return the url as string.\n */\n @Prop() url: string | Function = \"\";\n\n /**\n * Can be changed to `\"put\"` if necessary. You can also provide a function\n * that will be called with `files` and must return the method.\n */\n @Prop() method: \"post\" | \"put\" | Function = \"post\";\n\n /**\n * Will be set on the XHRequest.\n */\n @Prop() withCredentials: boolean = false;\n\n /**\n * Whether the upload is disabled or not.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether the upload is marked as invalid.\n */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Whether download functionality should be disabled. */\n @Prop() downloadDisabled: boolean = false;\n\n /** Whether download functionality should only be shown to completed files. */\n @Prop() downloadDisabledWhileProcessing: boolean = false;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /**\n * The default implementation of `accept` checks the file's mime type or\n * extension against this list. This is a comma separated list of mime\n * types or file extensions.\n *\n * Eg.: `image/*,application/pdf,.psd`\n *\n * This option will also be used as\n * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n * parameter on the hidden file input as well.\n */\n @Prop() acceptedFiles: string | null = null;\n\n /**\n * If false, files will be added to the queue but the queue will not be\n * processed automatically.\n * This can be useful if you need some additional user input before sending\n * files (or if you want want all files sent at once).\n * If you're ready to send the file simply call `element.processQueue()`.\n */\n @Prop() autoProcessQueue: boolean = true;\n\n /**\n * Hide progress (bars and text).\n */\n @Prop() hideProgress: boolean = false;\n\n /**\n * Hide progress (bars) only while idle (will show them as soon as upload starts).\n * Can be used together with `autoProcessQueue`, e.g. if files are uploaded at form submit to prevent showing empty progressbar.\n */\n @Prop() hideProgressWhileIdle: boolean = false;\n\n /**\n * If not `null` defines how many files this dropzone handles. If it exceeds,\n * the event `stzhMaxfilesexceeded` will be called.\n */\n @Prop() maxFiles: number | null = null;\n\n /**\n * The maximum filesize (in MiB) that is allowed to be uploaded.\n */\n @Prop() maxFilesize: number = 25;\n\n /**\n * How many file uploads to process in parallel.\n */\n @Prop() parallelUploads: number = 2;\n\n /**\n * Whether to send multiple files in one request. If\n * this it set to true, then the fallback file input element will\n * have the `multiple` attribute as well. This option will\n * also trigger additional events (like `stzhSuccessMultiple`). See the events\n * documentation section for more information.\n */\n @Prop() uploadMultiple: boolean = false;\n\n /**\n * Whether you want files to be uploaded in chunks to your server. This can't be\n * used in combination with `uploadMultiple`.\n *\n * See `chunksUploaded` prop for the callback to finalise an upload.\n */\n @Prop() chunking: boolean = false;\n\n /**\n * If `chunking` is enabled, this defines whether **every** file should be chunked,\n * even if the file size is below chunkSize. This means, that the additional chunk\n * form data will be submitted and the `chunksUploaded` callback will be invoked.\n */\n @Prop() forceChunking: boolean = false;\n\n /**\n * If `chunking` is `true`, then this defines the chunk size in bytes.\n */\n @Prop() chunkSize: number = 2 * 1024 * 1024;\n\n /**\n * If `true`, the individual chunks of a file are being uploaded simultaneously.\n */\n @Prop() parallelChunkUploads: boolean = false;\n\n /**\n * Whether a chunk should be retried if it fails.\n */\n @Prop() retryChunks: boolean = false;\n\n /**\n * If `retryChunks` is true, how many times should it be retried.\n */\n @Prop() retryChunksLimit: number = 3;\n\n /**\n * The base that is used to calculate the **displayed** filesize. You can\n * change this to 1024 if you would rather display kibibytes, mebibytes,\n * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n * not `1 kilobyte`. You can change this to `1024` if you don't care about\n * validity.\n */\n @Prop() filesizeBase: number = 1024;\n\n /**\n * An optional object to send additional headers to the server. Eg:\n * `{ \"My-Awesome-Header\": \"header value\" }`\n *\n * Can also be set as function returning the headers object dynamically.\n */\n @Prop() headers: object | ((Dropzone: any) => { [key: string]: string }) | null = null;\n\n /**\n * Should the default headers be set or not?\n * Accept: application/json <- for requesting json response\n * Cache-Control: no-cache <- Request shouldnt be cached\n * X-Requested-With: XMLHttpRequest <- We sent the request via XMLHttpRequest\n */\n @Prop() defaultHeaders: boolean = true;\n\n /**\n * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n * and a `done` function as parameters.\n *\n * If the done function is invoked without arguments, the file is \"accepted\" and will\n * be processed. If you pass an error message, the file is rejected, and the error\n * message will be displayed.\n * This function will not be called if the file is too big or doesn't match the mime types.\n */\n @Prop() accept: Function = function (_file, done) {\n return done();\n };\n\n /**\n * The callback that will be invoked when all chunks have been uploaded for a file.\n * It gets the file for which the chunks have been uploaded as the first parameter,\n * and the `done` function as second. `done()` needs to be invoked when everything\n * needed to finish the upload process is done.\n */\n @Prop() chunksUploaded: Function = function (_file, done) {\n done();\n };\n\n /**\n * This is the element the hidden input field (which is used when clicking on the\n * dropzone to trigger file selection) will be appended to. This might\n * be important in case you use frameworks to switch the content of your page.\n *\n * Can be a selector string, or an element directly. Will be rendered into element by default.\n */\n @Prop() hiddenInputContainer: string | HTMLElement;\n\n /**\n * Prevent clearing hidden input after adding a new file.\n * (use if you want to send the hidden input field with native form instead of ajax)\n */\n @Prop() preventHiddenInputClear: boolean = false;\n\n /** Translation strings. */\n @Prop() localization: StzhUploadLocalizedText;\n\n @State() environment: StzhEnvironmentEnum | undefined;\n\n @Element() element: HTMLStzhUploadElement;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Watch(\"name\")\n nameWatcher(newValue: string) {\n const input = this.hiddenInputContainerElement?.querySelector(\"input\");\n\n if (input) {\n input.setAttribute(\"name\", newValue);\n }\n }\n\n @Watch(\"maxFiles\")\n maxFilesWatcher(newMaxFiles: number | null) {\n this.dropzone.options.maxFiles = newMaxFiles;\n }\n\n @Watch(\"maxFilesize\")\n maxFilesizeWatcher(newMaxFilesize: number) {\n this.dropzone.options.maxFilesize = newMaxFilesize;\n }\n\n @Watch(\"existingFiles\")\n existingFilesWatcher(newValue: StzhUploadFilesItem[] | string) {\n if (typeof newValue === \"string\") {\n this._existingFiles = JSON.parse(newValue);\n } else {\n this._existingFiles = newValue;\n }\n }\n\n @Watch(\"disabled\")\n disabledWatcher() {\n if (!this.dropzone) {\n return;\n }\n\n if (this.disabled) {\n this.dropzone.disable();\n } else {\n this.dropzone.enable();\n }\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n /** File added */\n @Event() stzhFileAdded: EventEmitter<StzhUploadFileAddedEvent>;\n\n /** Files added (multiple) */\n @Event() stzhFilesAdded: EventEmitter<StzhUploadFilesAddedEvent>;\n\n /** File remove (before, cancelable) */\n @Event() stzhFileRemove: EventEmitter<StzhUploadFileRemoveEvent>;\n\n /** File removed */\n @Event() stzhFileRemoved: EventEmitter<StzhUploadFileRemovedEvent>;\n\n /** Before sending file (add additional data before request if necessary) */\n @Event() stzhSending: EventEmitter<StzhUploadSendingEvent>;\n\n /** Before sending multiple files (add additional data before request if necessary) */\n @Event() stzhSendingMultiple: EventEmitter<StzhUploadSendingMultipleEvent>;\n\n /** Files starting to get processed */\n @Event() stzhProcessing: EventEmitter<StzhUploadProcessingEvent>;\n\n /** Files starting to get processed (multiple) */\n @Event() stzhProcessingMultiple: EventEmitter<StzhUploadProcessingMultipleEvent>;\n\n /** Upload file progress during upload */\n @Event() stzhProgress: EventEmitter<StzhUploadProgressEvent>;\n\n /** Upload total file progress during upload */\n @Event() stzhProgressTotal: EventEmitter<StzhUploadProgressTotalEvent>;\n\n /** File error */\n @Event() stzhError: EventEmitter<StzhUploadErrorEvent>;\n\n /** Files error (multiple files) */\n @Event() stzhErrorMultiple: EventEmitter<StzhUploadErrorMultipleEvent>;\n\n /** File successfully uploaded */\n @Event() stzhSuccess: EventEmitter<StzhUploadSuccessEvent>;\n\n /** Files successfully uploaded (multiple files) */\n @Event() stzhSuccessMultiple: EventEmitter<StzhUploadSuccessMultipleEvent>;\n\n /** Canceled file upload */\n @Event() stzhCanceled: EventEmitter<StzhUploadCanceledEvent>;\n\n /** Canceled file upload (multiple files) */\n @Event() stzhCanceledMultiple: EventEmitter<StzhUploadCanceledMultipleEvent>;\n\n /** Completed upload (successfully or with error) */\n @Event() stzhComplete: EventEmitter<StzhUploadCompleteEvent>;\n\n /** Completed upload (successfully or with error, multiple files) */\n @Event() stzhCompleteMultiple: EventEmitter<StzhUploadCompleteMultipleEvent>;\n\n @Method()\n async processQueue() {\n return this.dropzone.processQueue();\n }\n\n @Method()\n async removeFile(file, force = false) {\n return this.dropzone.removeFile(file, force);\n }\n\n @Method()\n async removeAllFiles(cancelIfNecessary = false, force = false) {\n return this.dropzone.removeAllFiles(cancelIfNecessary, force);\n }\n\n private dropzone: any;\n private dropzoneElement: HTMLElement;\n private linkElement: HTMLStzhButtonElement;\n private clickareaElement: HTMLElement;\n private previewsElement: HTMLElement;\n private errorsElement: HTMLElement;\n private hiddenInputContainerElement: HTMLElement;\n private uploadId: string;\n\n /* Photographing */\n private photographingOverlayElement: HTMLStzhOverlayElement;\n private photographingQrcodeElement: HTMLCanvasElement;\n private PHOTOGRAPHING_BASE_URL = \"/appl/mobiscan/rs\";\n private PHOTOGRAPHING_ENDPOINTS = {\n PING: \"/ping\",\n URL: \"/url\",\n IMAGE: \"/image\",\n CONFIG: \"/config\",\n AUTH: \"/auth\",\n };\n @State() isPhotographingAvailable: boolean = false;\n @State() photographingUrlDetails: StzhPhotographingUrlDetailsDto | undefined;\n @State() photographingHost: string;\n @State() photographingConfig: StzhPhotographingConfigurationDto | undefined;\n @State() photographingWebsocket: WebSocket | undefined;\n @State() photographingToken: { access_token: string; expires_in: number } | undefined;\n\n private handleReset = () => {\n this.removeAllFiles(true);\n };\n\n private async getToken() {\n if (\n this.photographingToken &&\n this.photographingToken.access_token &&\n Date.now() < this.photographingToken.expires_in\n ) {\n return this.photographingToken;\n } else {\n return await this.requestPhotographingToken();\n }\n }\n\n private async requestPhotographingToken() {\n try {\n const response = await fetch(\n `${this.photographingHost}${this.PHOTOGRAPHING_BASE_URL}${this.PHOTOGRAPHING_ENDPOINTS.AUTH}`\n );\n if (!response.ok) {\n throw new Error(\"Token retrieval failed\");\n }\n const parsedResponse = await response.json();\n this.photographingToken = {\n access_token: parsedResponse.access_token,\n expires_in: Date.now() + parsedResponse.expires_in * 1000,\n };\n return this.photographingToken;\n } catch (error) {\n console.error(\"Token retrieval failed\", error);\n throw new Error(\"Token retrieval failed\");\n }\n }\n\n private async initializePhotographingWithEnvironment(environment: StzhEnvironmentEnum) {\n this.photographingHost = this.getPhotographingHostForEnvironment(environment);\n await this.setPhotographingConfig();\n if (this.photographingConfig) {\n await this.checkPhotographingAvailability();\n }\n }\n\n private async startPhotographingUserSession() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.URL}`,\n await this.getPhotographingHttpOptionsWithToken()\n );\n if (!response.ok) {\n // Nothing to do here. Just don't show the photographing button.\n } else {\n const url: StzhPhotographingUrlDetailsDto = await response.json();\n const urlObject = new URL(url.url);\n const params = new URLSearchParams(urlObject.search);\n this.photographingUrlDetails = {\n url: url.url,\n userId: params.get(\"id\"),\n };\n try {\n await QRCode.toCanvas(this.photographingQrcodeElement, url.url);\n } catch (error) {\n console.error(\"Error generating QR code:\", error);\n }\n await this.establishPhotographingWebsocketConnection();\n }\n } catch (startPhotographingUserSessionException) {\n console.error(\n `StzhUpload.startPhotographingUserSession() - startPhotographingUserSessionException:`,\n startPhotographingUserSessionException\n );\n }\n }\n\n private async retreivePhotographingPdf() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.IMAGE}/retreive-pdf?id=${this.photographingUrlDetails.userId}`,\n await this.getPhotographingHttpOptionsWithToken()\n );\n if (!response.ok) {\n console.error(`StzhUpload.retreivePhotographingPdf() - HTTP error! status: ${response.status}`);\n } else {\n const parsedResponse: StzhPhotographingPdfFileDto = await response.json();\n const file = await this.fetchFile(parsedResponse.downloadLink);\n this.dropzone.addFile(file);\n await this.closePhotographingOverlay();\n }\n } catch (retreivePhotographingPdfException) {\n console.error(\n `StzhUpload.retreivePhotographingPdf() - retreivePhotographingPdfException:`,\n retreivePhotographingPdfException\n );\n }\n }\n\n private async fetchFile(url) {\n const response = await fetch(url);\n const blob = await response.blob();\n const fileName = url.split(\"/\").pop();\n const cleanFileName: string = fileName.split(\"?\")[0];\n if (blob.type === \"application/octet-stream\") {\n return new File([blob], cleanFileName, { type: \"application/pdf\" });\n }\n return new File([blob], cleanFileName, { type: blob.type });\n }\n\n private async establishPhotographingWebsocketConnection() {\n this.photographingWebsocket = new WebSocket(\n `${this.photographingConfig.wsClientUrl}${this.photographingUrlDetails.userId}`,\n [\"chat\", (await this.getToken()).access_token]\n );\n\n this.photographingWebsocket.onopen = () => {\n setInterval(() => {\n this.sendPhotographingWebsocketMessage(\"Ping\");\n }, 20000);\n };\n\n this.photographingWebsocket.onmessage = async event => {\n const message = event.data;\n\n if (message === \"retreivePdf\") {\n await this.retreivePhotographingPdf();\n }\n };\n\n this.photographingWebsocket.onerror = error => {\n console.error(\"WebSocket error: \", error);\n };\n }\n\n private closePhotographingWebsocketConnection = () => {\n this.photographingWebsocket.close();\n };\n\n private sendPhotographingWebsocketMessage(message: any) {\n this.photographingWebsocket.send(message);\n }\n\n private async getPhotographingHttpOptionsWithToken() {\n const token = await this.getToken();\n return {\n headers: {\n Authorization: `Bearer ${token.access_token}`,\n },\n };\n }\n\n private async checkPhotographingAvailability() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.PING}`,\n await this.getPhotographingHttpOptionsWithToken()\n );\n if (!response.ok) {\n console.error(`StzhUpload.isAvailable() - HTTP error! status: ${response.status}`);\n this.isPhotographingAvailable = false;\n } else {\n this.isPhotographingAvailable = true;\n }\n } catch (isAvailableException) {\n console.error(`StzhUpload.isAvailable() - isAvailableException:`, isAvailableException);\n this.isPhotographingAvailable = false;\n }\n }\n\n private async setPhotographingConfig() {\n try {\n const response = await fetch(\n `${this.photographingHost}${this.PHOTOGRAPHING_BASE_URL}${this.PHOTOGRAPHING_ENDPOINTS.CONFIG}`\n );\n if (!response.ok) {\n console.error(`StzhUpload.getConfig() - HTTP error! status: ${response.status}`);\n } else {\n this.photographingConfig = await response.json();\n }\n } catch (getConfigException) {\n console.error(`StzhUpload.getConfig() - getConfigException:`, getConfigException);\n }\n }\n\n private getPhotographingHostForEnvironment(environment: \"DEV\" | \"UAT\" | \"PROD\" | \"UNKNOWN\") {\n switch (environment) {\n case \"DEV\":\n return \"https://www.test.stadt-zuerich.loc\";\n case \"UAT\":\n return \"https://www.integ.stadt-zuerich.ch\";\n case \"PROD\":\n return \"https://www.stadt-zuerich.ch\";\n case \"UNKNOWN\":\n this.PHOTOGRAPHING_BASE_URL = `/stzh-components/assets/mock${this.PHOTOGRAPHING_BASE_URL}`;\n return `${window.location.origin}`;\n }\n }\n\n private onButtonScanClick = event => {\n event.preventDefault();\n event.stopPropagation();\n this.photographingOverlayElement.show().then();\n if (this.isPhotographingAvailable) {\n this.startPhotographingUserSession()\n .then()\n .catch(photographingUserSessionException => {\n console.error(\"photographingUserSessionException\", photographingUserSessionException);\n });\n }\n };\n\n private closePhotographingOverlay = async () => {\n this.photographingOverlayElement.hide().catch();\n };\n\n private filesize = function (size) {\n let selectedSize = 0;\n let selectedUnit = \"b\";\n\n if (size > 0) {\n let units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n for (let i = 0; i < units.length; i++) {\n let unit = units[i];\n let cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n\n selectedSize = Math.round(selectedSize * 100) / 100; // Cutting of digits\n }\n\n return `<strong>${selectedSize}</strong> ${this.options.dictFileSizeUnits[selectedUnit]}`;\n };\n\n private filePreviewId = function (file): string {\n return `${this.uploadId}-${file._id}`;\n };\n\n async componentWillLoad() {\n this.uploadId = `stzh-upload-${uploadCounter++}`;\n\n this.existingFilesWatcher(this.existingFiles);\n this.errorWatcher(this.error);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"upload\");\n }\n\n this.environment = getStzhEnvironment();\n if (this.photographingEnabled) {\n this.initializePhotographingWithEnvironment(this.environment).catch(\n initializePhotographingWithEnvironmentException => {\n console.error(\n \"initializePhotographingWithEnvironmentException\",\n initializePhotographingWithEnvironmentException\n );\n }\n );\n }\n }\n\n componentDidRender() {\n if (this.dropzone) {\n return;\n }\n\n const self = this;\n\n function enableDownload(file) {\n let fileHref = file.url || \"\";\n\n if (file.upload) {\n fileHref = URL.createObjectURL(file);\n }\n\n if (fileHref) {\n for (var node of file.previewElement.querySelectorAll(`[${ATTR_LINK}]`)) {\n node.setAttribute(\"href\", fileHref);\n node.setAttribute(\"download\", file.name);\n\n const isStzh = isStzhElement(node);\n const fileId = self.filePreviewId(file);\n\n node.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", `${self.localization.downloadFile} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", `${self.localization.downloadFile} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${fileId}-error-message ${fileId}-meta`);\n }\n }\n }\n\n this.dropzone = new window.Dropzone(this.dropzoneElement, {\n previewsContainer: this.previewsElement,\n url: this.url,\n method: this.method,\n preventHiddenInputClear: this.preventHiddenInputClear,\n withCredentials: this.withCredentials,\n clickable: [this.clickareaElement],\n acceptedFiles: this.acceptedFiles,\n accept: this.accept,\n maxFiles: this.maxFiles,\n maxFilesize: this.maxFilesize,\n filesizeBase: this.filesizeBase,\n parallelUploads: this.parallelUploads,\n uploadMultiple: this.uploadMultiple,\n autoProcessQueue: this.autoProcessQueue,\n headers: this.headers,\n defaultHeaders: this.defaultHeaders,\n chunking: this.chunking,\n chunkSize: this.chunkSize,\n chunksUploaded: this.chunksUploaded,\n forceChunking: this.forceChunking,\n parallelChunkUploads: this.parallelChunkUploads,\n retryChunks: this.retryChunks,\n retryChunksLimit: this.retryChunksLimit,\n createImageThumbnails: false,\n hiddenInputContainer: this.hiddenInputContainer ? this.hiddenInputContainer : this.hiddenInputContainerElement,\n dictFileSizeUnits: { tb: \"TiB\", gb: \"GiB\", mb: \"MiB\", kb: \"KiB\", b: \"b\" },\n dictRemoveFileConfirmation: null,\n dictMaxFilesExceeded: this.localization.maxFilesExceeded,\n dictRemoveFile: this.localization.removeFile,\n dictDeleteFile: this.localization.deleteFile,\n dictCancelUploadConfirmation: this.localization.cancelUploadConfirmation,\n dictUploadCanceled: this.localization.uploadCanceled,\n dictCancelUpload: this.localization.cancelUpload,\n dictResponseError: this.localization.responseError,\n dictInvalidFileType: this.localization.invalidFileType,\n dictFileTooBig: this.localization.fileTooBig,\n // Called when a file is dropped to the dropzone\n // Receives `event`\n drop: e => {\n // Merge files in hidden input.\n if (this.preventHiddenInputClear) {\n const hiddenFileInput = this.hiddenInputContainerElement?.querySelector(\"input\");\n const dataTransfer = new DataTransfer();\n for (let i = 0; i < hiddenFileInput.files.length; i++) {\n dataTransfer.items.add(hiddenFileInput.files[i]);\n }\n for (const file of e.dataTransfer.files) {\n dataTransfer.items.add(file);\n }\n hiddenFileInput.files = dataTransfer.files;\n }\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n // Called when a file is added to the queue\n // Receives `file`\n // Taken from https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L594\n addedfile(file) {\n file._id = previewCounter++;\n\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n\n if (this.previewsContainer && !this.options.disablePreviews) {\n file.previewElement = window.Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewTemplate = file.previewElement; // Backwards compatibility\n this.previewsContainer.appendChild(file.previewElement);\n\n if (!file.size) {\n file.previewElement.classList.add(\"dz-empty\");\n }\n\n for (var node of file.previewElement.querySelectorAll(`[${ATTR_NAME}]`)) {\n node.textContent = file.name;\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_SIZE}]`)) {\n node.innerHTML = self.filesize.call(this, file.size);\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_META_ID}]`)) {\n node.setAttribute(\"id\", `${self.filePreviewId(file)}-meta`);\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_ERROR_MESSAGE_ID}]`)) {\n node.setAttribute(\"id\", `${self.filePreviewId(file)}-error-message`);\n }\n\n if (this.options.addRemoveLinks) {\n file._removeLink = window.Dropzone.createElement(\n `<a class=\"dz-remove\" href=\"javascript:undefined;\" ${ATTR_REMOVE}>\n ${this.options.dictRemoveFile}\n </a>`\n );\n file.previewElement.appendChild(file._removeLink);\n }\n\n let removeFileEvent = e => {\n e.preventDefault();\n e.stopPropagation();\n if (file.status === window.Dropzone.UPLOADING) {\n return window.Dropzone.confirm(this.options.dictCancelUploadConfirmation, () => this.removeFile(file));\n } else {\n if (this.options.dictRemoveFileConfirmation) {\n return window.Dropzone.confirm(this.options.dictRemoveFileConfirmation, () => this.removeFile(file));\n } else {\n return this.removeFile(file);\n }\n }\n };\n\n for (let removeLink of file.previewElement.querySelectorAll(`[${ATTR_REMOVE}]`)) {\n removeLink.addEventListener(\"click\", removeFileEvent);\n\n const isStzh = isStzhElement(removeLink);\n const fileId = self.filePreviewId(file);\n\n removeLink.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", `${this.options.dictRemoveFile}`);\n removeLink.setAttribute(\n isStzh ? \"a11y-label\" : \"aria-label\",\n `${this.options.dictRemoveFile} ${file.name}`\n );\n removeLink.setAttribute(\n isStzh ? \"a11y-describedby\" : \"aria-describedby\",\n `${fileId}-error-message ${fileId}-meta`\n );\n }\n\n if (!self.downloadDisabled && !self.downloadDisabledWhileProcessing) {\n enableDownload(file);\n }\n }\n },\n // When the upload is finished, either with success or an error.\n // Taken from https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L752\n complete(file) {\n for (let node of file.previewElement.querySelectorAll(`[${ATTR_REMOVE}]`)) {\n const hasErrorState = file.status === \"error\";\n const removeOrDeleteLabel = hasErrorState ? this.options.dictRemoveFile : this.options.dictDeleteFile;\n const isStzh = isStzhElement(node);\n const fileId = self.filePreviewId(file);\n\n node.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", `${removeOrDeleteLabel} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${fileId}-error-message ${fileId}-meta`);\n }\n\n // move file uploads with errors to another element, so they are grouped together\n if (file.status === \"error\") {\n self.errorsElement.appendChild(file.previewElement);\n } else if (!self.downloadDisabled && self.downloadDisabledWhileProcessing) {\n enableDownload(file);\n }\n\n if (file._removeLink) {\n file._removeLink.innerHTML = this.options.dictRemoveFile;\n }\n\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n // Called whenever a file is removed.\n // Taken fom https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L649\n removedfile(file) {\n if (file.previewElement != null && file.previewElement.parentNode != null) {\n file.previewElement.parentNode.removeChild(file.previewElement);\n }\n\n // set focus to upload\n self.linkElement.focus();\n\n return this._updateMaxFilesReachedClass();\n },\n error(file, message, xhr) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n\n if (typeof message !== \"string\" && message.error) {\n message = message.error;\n } else if (xhr) {\n if (xhr.status === 401 || xhr.status === 403) {\n message = self.localization.accessError;\n } else if (xhr.status === 413) {\n message = self.localization.fileTooBigServer;\n } else if (xhr.status === 415) {\n message = self.localization.invalidFileType;\n } else if (xhr.status >= 500) {\n message = self.localization.serverError;\n } else {\n const defaultError = self.localization.responseError.replace(\"{{statusCode}}\", xhr.status);\n\n message = defaultError;\n }\n }\n\n for (let node of file.previewElement.querySelectorAll(\"[data-dz-errormessage]\")) {\n node.textContent = message;\n }\n }\n },\n previewTemplate: `\n <div class=\"stzh-upload__preview\">\n <div class=\"stzh-upload__image\">\n <img data-dz-thumbnail />\n </div>\n\n <div class=\"stzh-upload__details\">\n <div class=\"stzh-upload__info-wrapper\">\n <div class=\"stzh-upload__info-wrapper-processing\">\n <div class=\"stzh-upload__infos\">\n <div class=\"stzh-upload__subtitle\">\n <a class=\"stzh-upload__link\" ${ATTR_NAME} ${ATTR_LINK}></a>\n </div>\n <div class=\"stzh-upload__progress-text\">\n <span ${ATTR_PROGRESS_TEXT}></span>\n </div>\n </div>\n <div class=\"stzh-upload__meta\">\n <span class=\"stzh-upload__extension\" ${ATTR_EXTENSION}></span>\n <span class=\"stzh-upload__separator\"></span>\n <span class=\"stzh-upload__size\" ${ATTR_SIZE}></span>\n </div>\n <div class=\"stzh-upload__progress\">\n <span class=\"stzh-upload__progress-bar\" data-dz-uploadprogress></span>\n </div>\n </div>\n <div class=\"stzh-upload__info-wrapper-complete\">\n <div class=\"stzh-upload__title\">\n <a class=\"stzh-upload__link\" ${ATTR_NAME} ${ATTR_LINK}></a>\n </div>\n <div class=\"stzh-upload__meta\" ${ATTR_META_ID}>\n <span class=\"stzh-upload__extension\" ${ATTR_EXTENSION}></span>\n <span class=\"stzh-upload__separator\"></span>\n <span class=\"stzh-upload__size\" ${ATTR_SIZE}></span>\n </div>\n <div class=\"stzh-upload__error-message\" ${ATTR_ERROR_MESSAGE_ID}>\n <span data-dz-errormessage></span>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload__actions\">\n <!-- <stzh-button variant=\"tertiary\" size=\"small\" icon-only icon=\"download\" class=\"stzh-upload__download\" ${ATTR_LINK}></stzh-button> -->\n <stzh-button variant=\"tertiary\" size=\"small\" icon-only class=\"stzh-upload__delete\" ${ATTR_REMOVE}>\n <stzh-icon slot=\"icon\" class=\"stzh-upload__delete-icon\" name=\"delete\"></stzh-icon>\n <stzh-icon slot=\"icon\" class=\"stzh-upload__delete-icon-error\" name=\"close\"></stzh-icon>\n </stzh-button>\n </div>\n </div>\n </div>\n `,\n });\n\n this.nameWatcher(this.name);\n this.disabledWatcher();\n\n this.dropzone.on(\"addedfile\", (file: StzhUploadFile) =>\n this.stzhFileAdded.emit({\n component: \"stzh-upload\",\n file,\n })\n );\n\n this.dropzone.on(\"addedfiles\", (files: StzhUploadFile[]) =>\n this.stzhFilesAdded.emit({\n component: \"stzh-upload\",\n files,\n })\n );\n\n this.dropzone.on(\n \"removefile\",\n (file: StzhUploadFile) =>\n this.stzhFileRemove.emit({\n component: \"stzh-upload\",\n file,\n }).defaultPrevented === false\n );\n\n this.dropzone.on(\"removedfile\", (file: StzhUploadFile, force: boolean) =>\n this.stzhFileRemoved.emit({\n component: \"stzh-upload\",\n file,\n force,\n })\n );\n\n this.dropzone.on(\"sending\", (file: StzhUploadFile, xhr: XMLHttpRequest, formData: FormData) =>\n this.stzhSending.emit({\n component: \"stzh-upload\",\n file,\n xhr,\n formData,\n })\n );\n\n this.dropzone.on(\"sendingmultiple\", (files: StzhUploadFile[], xhr: XMLHttpRequest, formData: FormData) =>\n this.stzhSendingMultiple.emit({\n component: \"stzh-upload\",\n files,\n xhr,\n formData,\n })\n );\n\n this.dropzone.on(\"processing\", (file: StzhUploadFile) =>\n this.stzhProcessing.emit({\n component: \"stzh-upload\",\n file,\n })\n );\n\n this.dropzone.on(\"processingmultiple\", (files: StzhUploadFile[]) =>\n this.stzhProcessingMultiple.emit({\n component: \"stzh-upload\",\n files,\n })\n );\n\n this.dropzone.on(\"uploadprogress\", (file: StzhUploadFile, progress: number, bytesSent: number) =>\n this.stzhProgress.emit({\n component: \"stzh-upload\",\n file,\n progress,\n bytesSent,\n })\n );\n\n this.dropzone.on(\"totaluploadprogress\", (totalUploadProgress: number, totalBytes: number, totalBytesSent: number) =>\n this.stzhProgressTotal.emit({\n component: \"stzh-upload\",\n totalUploadProgress,\n totalBytes,\n totalBytesSent,\n })\n );\n\n this.dropzone.on(\"error\", (file: StzhUploadFile, message: string, xhr: XMLHttpRequest) =>\n this.stzhError.emit({\n component: \"stzh-upload\",\n file,\n message,\n xhr,\n })\n );\n\n this.dropzone.on(\"errormultiple\", (files: StzhUploadFile[], message: string, xhr: XMLHttpRequest) =>\n this.stzhErrorMultiple.emit({\n component: \"stzh-upload\",\n files,\n message,\n xhr,\n })\n );\n\n this.dropzone.on(\"success\", (file: StzhUploadFile, responseText: string, event: ProgressEvent) =>\n this.stzhSuccess.emit({\n component: \"stzh-upload\",\n file,\n responseText,\n event,\n })\n );\n\n this.dropzone.on(\"successmultiple\", (files: StzhUploadFile[], responseText: string, event: ProgressEvent) =>\n this.stzhSuccessMultiple.emit({\n component: \"stzh-upload\",\n files,\n responseText,\n event,\n })\n );\n\n this.dropzone.on(\"canceled\", (file: StzhUploadFile) =>\n this.stzhCanceled.emit({\n component: \"stzh-upload\",\n file,\n })\n );\n\n this.dropzone.on(\"canceledmultiple\", (files: StzhUploadFile[]) =>\n this.stzhCanceledMultiple.emit({\n component: \"stzh-upload\",\n files,\n })\n );\n\n this.dropzone.on(\"complete\", (file: StzhUploadFile) =>\n this.stzhComplete.emit({\n component: \"stzh-upload\",\n file,\n })\n );\n\n this.dropzone.on(\"completemultiple\", (files: StzhUploadFile[]) =>\n this.stzhCompleteMultiple.emit({\n component: \"stzh-upload\",\n files,\n })\n );\n\n this.dropzone.on(\"addedfile\", (file: StzhUploadFile) => {\n file.previewElement.querySelectorAll(`[${ATTR_NAME}]`).forEach((name: HTMLElement) => {\n name.setAttribute(\"title\", file.name);\n });\n\n file.previewElement.querySelectorAll(`[${ATTR_TYPE}]`).forEach((type: HTMLElement) => {\n type.innerText = file.type;\n });\n\n file.previewElement.querySelectorAll(`[${ATTR_EXTENSION}]`).forEach((extension: HTMLElement) => {\n extension.innerText = file.name.split(\".\").pop();\n });\n });\n\n this.dropzone.on(\"uploadprogress\", (file: StzhUploadFile, progress: number) => {\n file.previewElement.querySelectorAll(`[${ATTR_PROGRESS_TEXT}]`).forEach((progressText: HTMLElement) => {\n progressText.innerText = `${progress.toString()}%`;\n });\n });\n\n this._existingFiles.forEach(file => {\n this.dropzone.displayExistingFile(file, null, null, null, null);\n });\n }\n\n disconnectedCallback() {\n if (this.dropzone) {\n this.dropzone.destroy();\n this.dropzone = null;\n }\n }\n\n render() {\n const errorUsed = hasSlot(this.element, \"error\") || this._error?.length > 0;\n\n const classes = {\n \"stzh-upload\": true,\n \"stzh-upload--is-invalid\": this.invalid || errorUsed,\n \"stzh-upload--is-disabled\": this.disabled,\n \"stzh-upload--has-hidden-progress\": this.hideProgress,\n \"stzh-upload--has-hidden-progress-while-idle\": this.hideProgressWhileIdle,\n \"stzh-upload--has-error\": errorUsed,\n \"stzh-upload--has-instructions\": !!this.description || !!this.localization.description,\n };\n\n const description = this.description ? this.description : this.localization.description;\n\n return (\n <Host is-invalid={this.invalid || errorUsed}>\n <div class={classes} ref={el => (this.dropzoneElement = el as HTMLDivElement)}>\n <div ref={el => (this.hiddenInputContainerElement = el as HTMLElement)}></div>\n\n <div id={`${this.uploadId}-label`}>{this.label && <div class=\"stzh-upload__label\">{this.label}</div>}</div>\n\n <div class=\"stzh-upload__clickarea\" ref={el => (this.clickareaElement = el as HTMLDivElement)}>\n <div class=\"stzh-upload__heading-wrapper\">\n <div class=\"stzh-upload__heading-inner-wrapper\">\n <div class=\"stzh-upload__heading\">{this.heading ? this.heading : this.localization.heading}</div>\n <div class=\"stzh-upload__buttons-wrapper\">\n <stzh-button\n class=\"stzh-upload__button\"\n variant=\"secondary\"\n size=\"small\"\n ref={el => (this.linkElement = el as HTMLStzhButtonElement)}\n label={this.button ? this.button : tc(this.localization.button, this.maxFiles)}\n a11yDescribedby={`${this.uploadId}-label ${this.uploadId}-instruction ${this.uploadId}-description`}\n disabled={this.disabled}\n a11yControls={`${this.uploadId}-previews`}\n >\n <stzh-icon slot=\"icon\" name=\"upload\"></stzh-icon>\n </stzh-button>\n {this.isPhotographingAvailable && (\n <stzh-button\n class=\"stzh-upload__button-scan\"\n variant=\"secondary\"\n size=\"small\"\n label={this.buttonScan ? this.buttonScan : tc(this.localization.buttonScan, this.maxFiles)}\n onClick={this.onButtonScanClick}\n >\n <stzh-icon slot=\"icon\" name=\"camera\"></stzh-icon>\n </stzh-button>\n )}\n </div>\n <div class=\"stzh-upload__hint-wrapper\">\n <span>{this.localization.buttonIntro}</span>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload__instructions\" id={`${this.uploadId}-instruction`}>\n {description\n .replace(\"{{fileformats}}\", this.acceptedFiles ? this.acceptedFiles : \"Alle\")\n .replace(\"{{filesize}}\", `${this.maxFilesize}`)}\n </div>\n </div>\n\n <div class=\"stzh-upload__description-wrapper\">\n {this._error?.length > 0 && (\n <StzhInputDescription classPrefix=\"stzh-upload\" id={`${this.uploadId}-description`} error={this._error} />\n )}\n </div>\n\n <div id={`${this.uploadId}-previews`} class=\"stzh-upload__previews-wrapper\">\n <div class=\"stzh-upload__previews-inner-wrapper\">\n <div class=\"stzh-upload__errors\" ref={el => (this.errorsElement = el as HTMLElement)}></div>\n <div\n class=\"stzh-upload__previews dropzone-previews\"\n ref={el => (this.previewsElement = el as HTMLElement)}\n ></div>\n </div>\n </div>\n </div>\n\n <stzh-dialog\n ref={el => (this.photographingOverlayElement = el as HTMLStzhOverlayElement)}\n onStzhClose={this.closePhotographingWebsocketConnection}\n >\n <stzh-button\n class=\"stzh-upload-photographing__back-button\"\n icon=\"arrow-left\"\n size=\"small\"\n variant=\"tertiary-plain\"\n no-padding-left=\"true\"\n no-padding-right=\"true\"\n onClick={this.closePhotographingOverlay}\n >\n {this.localization.back}\n </stzh-button>\n {this.isPhotographingAvailable && (\n <Fragment>\n <div class=\"stzh-upload-photographing__info\">\n <stzh-heading level=\"3\">{this.localization.photographingTitle1}</stzh-heading>\n <div class=\"stzh-upload-photographing__text-qrcode\">\n <div>\n <stzh-text>{this.localization.photographingText1}</stzh-text>\n {!!this.photographingUrlDetails && (\n <stzh-link\n class=\"stzh-upload-photographing-link\"\n href={this.photographingUrlDetails.url}\n target=\"_blank\"\n >\n {this.photographingUrlDetails.url}\n </stzh-link>\n )}\n </div>\n <canvas\n class=\"stzh-upload-photographing-qrcode\"\n ref={el => (this.photographingQrcodeElement = el as HTMLCanvasElement)}\n ></canvas>\n </div>\n </div>\n <div class=\"stzh-upload-photographing__info\">\n <stzh-heading level=\"3\">{this.localization.photographingTitle2}</stzh-heading>\n <stzh-text>{this.localization.photographingText2}</stzh-text>\n </div>\n </Fragment>\n )}\n </stzh-dialog>\n </Host>\n );\n }\n}\n"]}