@oiz/stzh-components 2.8.0-alpha → 2.8.0-beta

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 (132) hide show
  1. package/dist/cjs/{app-globals-7c3a8979.js → app-globals-dff738b3.js} +2 -2
  2. package/dist/cjs/{app-globals-7c3a8979.js.map → app-globals-dff738b3.js.map} +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/stzh-badge_3.cjs.entry.js +6 -6
  5. package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
  6. package/dist/cjs/stzh-chip_2.cjs.entry.js +2 -2
  7. package/dist/cjs/stzh-chip_2.cjs.entry.js.map +1 -1
  8. package/dist/cjs/stzh-components.cjs.js +1 -1
  9. package/dist/cjs/stzh-datalist_2.cjs.entry.js +1 -1
  10. package/dist/cjs/stzh-datalist_2.cjs.entry.js.map +1 -1
  11. package/dist/cjs/stzh-datepicker_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/stzh-dialog.cjs.entry.js +1 -1
  13. package/dist/cjs/stzh-dialog.cjs.entry.js.map +1 -1
  14. package/dist/cjs/stzh-link.cjs.entry.js +4 -4
  15. package/dist/cjs/stzh-link.cjs.entry.js.map +1 -1
  16. package/dist/cjs/stzh-menu_2.cjs.entry.js +2 -2
  17. package/dist/cjs/stzh-menu_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/stzh-overlay.cjs.entry.js +1 -1
  19. package/dist/cjs/stzh-overlay.cjs.entry.js.map +1 -1
  20. package/dist/collection/assets/i18n/de.json +1 -1
  21. package/dist/collection/assets/i18n/en.json +1 -1
  22. package/dist/collection/components/stzh-button/stzh-button.js +6 -6
  23. package/dist/collection/components/stzh-button/stzh-button.js.map +1 -1
  24. package/dist/collection/components/stzh-chip/stzh-chip.js +2 -2
  25. package/dist/collection/components/stzh-chip/stzh-chip.js.map +1 -1
  26. package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.js +1 -1
  27. package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.js.map +1 -1
  28. package/dist/collection/components/stzh-datepicker/stzh-datepicker.js.map +1 -1
  29. package/dist/collection/components/stzh-dialog/stzh-dialog.js +1 -1
  30. package/dist/collection/components/stzh-dialog/stzh-dialog.js.map +1 -1
  31. package/dist/collection/components/stzh-link/stzh-link.js +4 -4
  32. package/dist/collection/components/stzh-link/stzh-link.js.map +1 -1
  33. package/dist/collection/components/stzh-menu-item/stzh-menu-item.js +2 -2
  34. package/dist/collection/components/stzh-menu-item/stzh-menu-item.js.map +1 -1
  35. package/dist/collection/components/stzh-overlay/stzh-overlay.js +1 -1
  36. package/dist/collection/components/stzh-overlay/stzh-overlay.js.map +1 -1
  37. package/dist/components/index.js +1 -1
  38. package/dist/components/stzh-button2.js +6 -6
  39. package/dist/components/stzh-button2.js.map +1 -1
  40. package/dist/components/stzh-chip2.js +2 -2
  41. package/dist/components/stzh-chip2.js.map +1 -1
  42. package/dist/components/stzh-datalist-item2.js +1 -1
  43. package/dist/components/stzh-datalist-item2.js.map +1 -1
  44. package/dist/components/stzh-datepicker2.js.map +1 -1
  45. package/dist/components/stzh-dialog.js +1 -1
  46. package/dist/components/stzh-dialog.js.map +1 -1
  47. package/dist/components/stzh-link2.js +4 -4
  48. package/dist/components/stzh-link2.js.map +1 -1
  49. package/dist/components/stzh-menu-item2.js +2 -2
  50. package/dist/components/stzh-menu-item2.js.map +1 -1
  51. package/dist/components/stzh-overlay.js +1 -1
  52. package/dist/components/stzh-overlay.js.map +1 -1
  53. package/dist/esm/{app-globals-4f0f7957.js → app-globals-07e538f3.js} +2 -2
  54. package/dist/esm/{app-globals-4f0f7957.js.map → app-globals-07e538f3.js.map} +1 -1
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/stzh-badge_3.entry.js +6 -6
  57. package/dist/esm/stzh-badge_3.entry.js.map +1 -1
  58. package/dist/esm/stzh-chip_2.entry.js +2 -2
  59. package/dist/esm/stzh-chip_2.entry.js.map +1 -1
  60. package/dist/esm/stzh-components.js +1 -1
  61. package/dist/esm/stzh-datalist_2.entry.js +1 -1
  62. package/dist/esm/stzh-datalist_2.entry.js.map +1 -1
  63. package/dist/esm/stzh-datepicker_3.entry.js.map +1 -1
  64. package/dist/esm/stzh-dialog.entry.js +1 -1
  65. package/dist/esm/stzh-dialog.entry.js.map +1 -1
  66. package/dist/esm/stzh-link.entry.js +4 -4
  67. package/dist/esm/stzh-link.entry.js.map +1 -1
  68. package/dist/esm/stzh-menu_2.entry.js +2 -2
  69. package/dist/esm/stzh-menu_2.entry.js.map +1 -1
  70. package/dist/esm/stzh-overlay.entry.js +1 -1
  71. package/dist/esm/stzh-overlay.entry.js.map +1 -1
  72. package/dist/esm-es5/{app-globals-4f0f7957.js → app-globals-07e538f3.js} +2 -2
  73. package/dist/esm-es5/{app-globals-4f0f7957.js.map → app-globals-07e538f3.js.map} +1 -1
  74. package/dist/esm-es5/loader.js +1 -1
  75. package/dist/esm-es5/stzh-badge_3.entry.js +1 -1
  76. package/dist/esm-es5/stzh-badge_3.entry.js.map +1 -1
  77. package/dist/esm-es5/stzh-chip_2.entry.js +1 -1
  78. package/dist/esm-es5/stzh-chip_2.entry.js.map +1 -1
  79. package/dist/esm-es5/stzh-components.js +1 -1
  80. package/dist/esm-es5/stzh-datalist_2.entry.js +1 -1
  81. package/dist/esm-es5/stzh-datalist_2.entry.js.map +1 -1
  82. package/dist/esm-es5/stzh-datepicker_3.entry.js.map +1 -1
  83. package/dist/esm-es5/stzh-dialog.entry.js +1 -1
  84. package/dist/esm-es5/stzh-dialog.entry.js.map +1 -1
  85. package/dist/esm-es5/stzh-link.entry.js +1 -1
  86. package/dist/esm-es5/stzh-link.entry.js.map +1 -1
  87. package/dist/esm-es5/stzh-menu_2.entry.js +1 -1
  88. package/dist/esm-es5/stzh-menu_2.entry.js.map +1 -1
  89. package/dist/esm-es5/stzh-overlay.entry.js +1 -1
  90. package/dist/esm-es5/stzh-overlay.entry.js.map +1 -1
  91. package/dist/stzh-components/assets/i18n/de.json +1 -1
  92. package/dist/stzh-components/assets/i18n/en.json +1 -1
  93. package/dist/stzh-components/{p-a16ce152.system.entry.js → p-0b5fbb86.system.entry.js} +2 -2
  94. package/dist/stzh-components/{p-a16ce152.system.entry.js.map → p-0b5fbb86.system.entry.js.map} +1 -1
  95. package/dist/stzh-components/p-1fad78a6.entry.js +2 -0
  96. package/dist/stzh-components/{p-5c3d0895.entry.js.map → p-1fad78a6.entry.js.map} +1 -1
  97. package/dist/stzh-components/{p-26680e97.js → p-26ec7788.js} +2 -2
  98. package/dist/stzh-components/{p-26680e97.js.map → p-26ec7788.js.map} +1 -1
  99. package/dist/stzh-components/{p-d531fbaf.system.entry.js → p-2d777867.system.entry.js} +2 -2
  100. package/dist/stzh-components/{p-d531fbaf.system.entry.js.map → p-2d777867.system.entry.js.map} +1 -1
  101. package/dist/stzh-components/{p-76c2f21a.entry.js → p-432d3ec4.entry.js} +2 -2
  102. package/dist/stzh-components/{p-76c2f21a.entry.js.map → p-432d3ec4.entry.js.map} +1 -1
  103. package/dist/stzh-components/p-4bcc414d.system.entry.js.map +1 -1
  104. package/dist/stzh-components/{p-6c0f3c5e.entry.js → p-4c4a05b3.entry.js} +2 -2
  105. package/dist/stzh-components/{p-6c0f3c5e.entry.js.map → p-4c4a05b3.entry.js.map} +1 -1
  106. package/dist/stzh-components/{p-08050ce2.system.entry.js → p-62ca262c.system.entry.js} +2 -2
  107. package/dist/stzh-components/{p-08050ce2.system.entry.js.map → p-62ca262c.system.entry.js.map} +1 -1
  108. package/dist/stzh-components/{p-6cb99167.system.entry.js → p-62e0ad8d.system.entry.js} +2 -2
  109. package/dist/stzh-components/{p-6cb99167.system.entry.js.map → p-62e0ad8d.system.entry.js.map} +1 -1
  110. package/dist/stzh-components/{p-f5c99792.system.entry.js → p-8547ae9e.system.entry.js} +2 -2
  111. package/dist/stzh-components/{p-f5c99792.system.entry.js.map → p-8547ae9e.system.entry.js.map} +1 -1
  112. package/dist/stzh-components/{p-2009a8df.system.entry.js → p-88440469.system.entry.js} +2 -2
  113. package/dist/stzh-components/{p-2009a8df.system.entry.js.map → p-88440469.system.entry.js.map} +1 -1
  114. package/dist/stzh-components/{p-0f71e85f.entry.js → p-8a44987c.entry.js} +2 -2
  115. package/dist/stzh-components/{p-0f71e85f.entry.js.map → p-8a44987c.entry.js.map} +1 -1
  116. package/dist/stzh-components/{p-78f89f65.entry.js → p-8eaac610.entry.js} +2 -2
  117. package/dist/stzh-components/{p-78f89f65.entry.js.map → p-8eaac610.entry.js.map} +1 -1
  118. package/dist/stzh-components/{p-3184a123.system.entry.js → p-8f6c5346.system.entry.js} +2 -2
  119. package/dist/stzh-components/{p-3184a123.system.entry.js.map → p-8f6c5346.system.entry.js.map} +1 -1
  120. package/dist/stzh-components/{p-a8c1b679.system.js → p-9b4e4b9d.system.js} +2 -2
  121. package/dist/stzh-components/{p-a8c1b679.system.js.map → p-9b4e4b9d.system.js.map} +1 -1
  122. package/dist/stzh-components/{p-70d7389a.entry.js → p-9f2332f6.entry.js} +2 -2
  123. package/dist/stzh-components/{p-70d7389a.entry.js.map → p-9f2332f6.entry.js.map} +1 -1
  124. package/dist/stzh-components/{p-bac7cf37.entry.js → p-b61c752e.entry.js} +2 -2
  125. package/dist/stzh-components/{p-bac7cf37.entry.js.map → p-b61c752e.entry.js.map} +1 -1
  126. package/dist/stzh-components/{p-c1814eec.system.js → p-f02d484d.system.js} +2 -2
  127. package/dist/stzh-components/p-fdb1fd0a.entry.js.map +1 -1
  128. package/dist/stzh-components/stzh-components.esm.js +1 -1
  129. package/dist/stzh-components/stzh-components.js +1 -1
  130. package/package.json +1 -1
  131. package/dist/stzh-components/p-5c3d0895.entry.js +0 -2
  132. /package/dist/stzh-components/{p-c1814eec.system.js.map → p-f02d484d.system.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["stzhDatepickerCss","StzhDatepicker","this","onRootFocus","_this","input","setFocus","onInputChange","parsedDate","dateAdapter","parse","value","isoDate","printISODate","calendar","stzhChange","emit","component","valueAsDate","onCalendarChange","event","detail","format","popover","hide","class_1","prototype","createDateFormatters","localization","dateFormatLong","Intl","DateTimeFormat","$locale","day","month","year","valueWatcher","newValue","date","parseISODate","updateButtonAccessibleLabel","setDate","getPopover","buttonLabel","concat","label","selectedDateMessage","err","connectedCallback","componentWillLoad","_a","fetchTranslations","element","_b","sent","createGlobalAdapter","$formats","$globals","componentDidLoad","render","classes","inline","h","Host","tabindex","disabled","onFocus","class","type","name","Fragment","ref","el","isDateDisabled","calendarIsDateDisabled","min","calendarMin","max","calendarMax","onStzhChange","labelHidden","noAutocomplete","readonly","description","descriptionLong","error","invalid","required","showMarker","size","slot","placement","variant","icon","a11yLabel","stzhRadioCss","radioCounter","StzhRadio","focusedByInput","onInput","checked","originalEvent","focusEvent","FocusEvent","view","window","bubbles","cancelable","dispatchEvent","stzhFocus","onBlur","blurEvent","stzhBlur","class_2","focus","errorWatcher","_error","JSON","e","length","inputId","descriptionUsed","hasSlot","descriptionLongUsed","errorUsed","id","a11yDescribedby","requiredFieldMarker","optionalFieldMarker","requiredFieldText","optionalFieldText","StzhInputDescription","classPrefix","moreInfoButtonLabel","stzhRadiogroupCss","SELECTOR_RADIO","radiogroupCounter","StzhRadiogroup","_preventUpdateProperties","init","radios","Array","from","querySelectorAll","updateRadiosProperty","radiogroupId","watchValue","watchName","watchDisabled","watchInvalid","watchRequired","class_3","updateCheckedRadioByValue","preventUpdatePropertiesWatcher","onChange","prop","forEach","radio","indexOf","camelCase","checkedRadio","find","uncheckRadios","preventUpdateProperties","componentShouldUpdate","_newValue","_oldValue","componentDidRender","observer","MutationObserver","observe","childList","subtree","disconnectedCallback","disconnect","hideLegend","direction","legend"],"sources":["src/components/stzh-datepicker/stzh-datepicker.scss?tag=stzh-datepicker&encapsulation=scoped","src/components/stzh-datepicker/stzh-datepicker.tsx","src/components/stzh-radio/stzh-radio.scss?tag=stzh-radio&encapsulation=scoped","src/components/stzh-radio/stzh-radio.tsx","src/components/stzh-radiogroup/stzh-radiogroup.scss?tag=stzh-radiogroup&encapsulation=scoped","src/components/stzh-radiogroup/stzh-radiogroup.tsx"],"sourcesContent":[":host {\n width: 100%;\n}\n\n.stzh-datepicker {\n &__popover {\n --padding: #{space('medium')};\n --width: auto;\n }\n\n &__actions {\n display: flex;\n justify-content: flex-end;\n\n &:not(:empty) {\n margin-top: space('xsmall');\n }\n }\n}\n","import {\n Component,\n Prop,\n Host,\n Element,\n h,\n Event,\n EventEmitter,\n Method,\n Watch,\n Fragment,\n State\n} from \"@stencil/core\";\n\nimport {\n StzhCalendarChangeEvent,\n StzhDatepickerChangeEvent\n} from \"../../index\";\n\nimport { StzhCalendarDateDisabledPredicate } from \"../../index\";\n\nimport { fetchTranslations } from \"../../utils/translation-utils\";\nimport { printISODate, parseISODate } from \"../../utils/date-utils\"\nimport { StzhLocaleAdapter, createGlobalAdapter } from \"../../utils/date-adapter\"\n\nimport { StzhDatepickerLocalizedText } from \"./stzh-datepicker.localization\";\n\n/**\n * @slot action - Slot for action below calendar (stzh-link element)\n */\n@Component({\n tag: \"stzh-datepicker\",\n styleUrl: \"stzh-datepicker.scss\",\n scoped: true\n})\nexport class StzhDatepicker {\n /**\n * Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n * This setting can be used alone or together with the max property.\n */\n @Prop() calendarMin: string = \"\"\n\n /**\n * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n * This setting can be used alone or together with the min property.\n */\n @Prop() calendarMax: string = \"\"\n\n /**\n * Controls which days are disabled and therefore disallowed.\n * For example, this can be used to disallow selection of weekends.\n */\n @Prop() calendarIsDateDisabled: StzhCalendarDateDisabledPredicate = () => false\n\n /** Name of the hidden date picker input. */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** Value of hidden date picker input (current selected date in ISO format). */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Label for input field and popover */\n @Prop() label: string = \"\";\n\n /** Whether label is visually hidden. */\n @Prop() labelHidden: boolean = false;\n\n /** Whether the element is readonly or not */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Append text to label depending if field is optional/required. true -> show \"(optional)\", false -> show nothing */\n @Prop({ reflect: true }) showMarker: boolean = false;\n\n /** Size variant */\n @Prop({ reflect: true }) size: \"default\" | \"small\" = \"default\";\n\n /** Show calendar inline */\n @Prop() inline: boolean = false;\n\n /**\n * Date adapter, for custom parsing/formatting.\n * Must be object with a `parse` function which accepts a `string` and returns a `Date`,\n * and a `format` function which accepts a `Date` and returns a `string`.\n */\n @Prop() dateAdapter: StzhLocaleAdapter;\n\n /** Translation strings. */\n @Prop() localization: StzhDatepickerLocalizedText;\n\n @State() buttonLabel: string;\n\n @Watch(\"localization\")\n createDateFormatters() {\n if (this.localization) {\n this.dateFormatLong = new Intl.DateTimeFormat(this.localization.$locale, {\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n })\n }\n }\n\n /** Update calendar and input when value prop has changed */\n @Watch(\"value\")\n valueWatcher(newValue: string) {\n const date = parseISODate(newValue);\n\n if (this.calendar) {\n this.calendar.value = newValue;\n }\n\n if (this.input) {\n this.input.value = this.dateAdapter.format(date, \"inputdate\");\n }\n\n this.updateButtonAccessibleLabel();\n }\n\n /** Set value by a JS Date object */\n @Method()\n async setDate(date: Date) {\n this.value = printISODate(date);\n }\n\n /** Return internal popover element */\n @Method()\n async getPopover(): Promise<HTMLStzhPopoverElement> {\n return this.popover;\n }\n\n /** Datepicker change event */\n @Event() stzhChange: EventEmitter<StzhDatepickerChangeEvent>;\n\n @Element() element: HTMLStzhDatepickerElement;\n\n /**\n * To format dates exclusively for the benefit of screen readers.\n *\n * We prefer DateTimeFormat over date.toLocaleDateString, as the former has\n * better performance when formatting large number of dates. See:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Performance\n */\n private dateFormatLong: Intl.DateTimeFormat\n\n private input: HTMLStzhInputElement;\n private popover: HTMLStzhPopoverElement;\n private calendar: HTMLStzhCalendarElement;\n\n private onRootFocus = () => {\n if (this.input) {\n this.input.setFocus();\n }\n }\n\n private onInputChange = () => {\n const parsedDate = this.dateAdapter.parse(this.input.value, \"inputdate\")\n\n if (this.input.value === \"\" || parsedDate) {\n const isoDate = printISODate(parsedDate);\n\n if (this.calendar) {\n this.calendar.value = isoDate;\n }\n\n this.value = isoDate;\n this.stzhChange.emit({\n component: \"stzh-datepicker\",\n value: this.value,\n valueAsDate: parsedDate,\n })\n }\n }\n\n private onCalendarChange = (event: CustomEvent<StzhCalendarChangeEvent>) => {\n this.value = event.detail.value;\n this.stzhChange.emit({\n component: \"stzh-datepicker\",\n value: this.value,\n valueAsDate: event.detail.valueAsDate,\n });\n\n if (this.input) {\n this.input.value = event.detail.valueAsDate\n && this.dateAdapter.format(event.detail.valueAsDate, \"inputdate\");\n }\n\n if (this.popover) {\n this.popover.hide();\n }\n }\n\n private updateButtonAccessibleLabel() {\n if (!this.localization) {\n return;\n }\n\n try {\n const valueAsDate = parseISODate(this.value);\n this.buttonLabel = `${this.label}, ${this.localization.buttonLabel}, ${this.localization.selectedDateMessage} ${this.dateFormatLong.format(valueAsDate)}`;\n } catch (err) {\n this.buttonLabel = `${this.label}, ${this.localization.buttonLabel}`;\n }\n }\n\n connectedCallback() {\n this.createDateFormatters();\n }\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, \"datepicker\");\n }\n\n if (!this.dateAdapter) {\n this.dateAdapter = createGlobalAdapter(\n this.localization.$formats,\n this.localization.$globals\n );\n }\n }\n\n componentDidLoad() {\n this.valueWatcher(this.value);\n }\n\n render() {\n const classes = {\n \"stzh-datepicker\": true,\n \"stzh-datepicker--inline\": this.inline\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n <div class={classes}>\n <input\n type=\"hidden\"\n name={this.name}\n value={this.value}\n />\n\n {this.inline &&\n <Fragment>\n <stzh-calendar\n ref={(el) => (this.calendar = el as HTMLStzhCalendarElement)}\n isDateDisabled={this.calendarIsDateDisabled}\n min={this.calendarMin}\n max={this.calendarMax}\n onStzhChange={this.onCalendarChange}\n ></stzh-calendar>\n <div class=\"stzh-datepicker__actions\">\n <slot name=\"action\"></slot>\n </div>\n </Fragment>\n }\n\n {!this.inline &&\n <stzh-input\n label={this.label}\n labelHidden={this.labelHidden}\n ref={(el) => (this.input = el as HTMLStzhInputElement)}\n noAutocomplete\n onStzhChange={this.onInputChange}\n readonly={this.readonly}\n disabled={this.disabled}\n description={this.description}\n descriptionLong={this.descriptionLong}\n error={this.error}\n invalid={this.invalid}\n required={this.required}\n showMarker={this.showMarker}\n size={this.size}\n >\n <stzh-popover\n ref={(el) => (this.popover = el as HTMLStzhPopoverElement)}\n class=\"stzh-datepicker__popover\"\n slot=\"button-right\"\n placement=\"bottom-end\"\n label={this.label}\n >\n <stzh-button\n variant=\"input\"\n icon-only\n icon=\"calendar\"\n disabled={this.disabled}\n a11yLabel={this.buttonLabel}\n >\n </stzh-button>\n <div slot=\"content\">\n <stzh-calendar\n ref={(el) => (this.calendar = el as HTMLStzhCalendarElement)}\n isDateDisabled={this.calendarIsDateDisabled}\n min={this.calendarMin}\n max={this.calendarMax}\n onStzhChange={this.onCalendarChange}\n >\n </stzh-calendar>\n <div class=\"stzh-datepicker__actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </stzh-popover>\n </stzh-input>\n }\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n\n ::slotted(stzh-text) {\n --color: inherit;\n }\n}\n\n.stzh-radio {\n\t@include input-description;\n\n &__field-wrapper {\n @include fontSize('milli');\n position: relative;\n display: flex;\n user-select: none;\n cursor: pointer;\n }\n\n &__input {\n @include visuallyhiddenInput;\n border-radius: $formInputBorderRadius;\n }\n\n &__mark {\n @include radio__mark();\n }\n\n &__check {\n @include radio__check();\n }\n\n &__label {\n display: inline-block;\n color: $baseColor;\n transition: color $baseTransitionAnimationSpeed;\n margin-left: space('small');\n line-height: 24px;\n\n &:empty {\n display: none;\n }\n }\n\n &__marker-symbol {\n @include fontSize('micro');\n }\n\n /* Hover / Focus / Checked */\n\n &:hover &__label,\n &__input:checked:hover ~ &__label,\n &__input:checked:hover ~ &__mark &__check,\n &__input:checked:focus ~ &__mark &__check {\n color: $colorPrimaryHover;\n }\n\n &__input:checked ~ &__label {\n color: $colorPrimary;\n }\n\n &:hover &__mark,\n &__input:focus:hover ~ &__mark,\n &__input:checked:hover ~ &__mark,\n &__input:checked:focus ~ &__mark {\n border-color: $colorPrimaryHover;\n }\n\n &__input:focus ~ &__mark,\n &__input:checked ~ &__mark {\n border-color: $colorPrimary;\n }\n\n &__input:checked ~ &__mark &__check {\n opacity: 1;\n }\n\n /* Invalid */\n\n &--is-invalid &__input ~ &__label,\n &--is-invalid &__input ~ &__mark &__check {\n color: $colorError;\n }\n\n &--is-invalid &__input ~ &__mark {\n border-color: $colorError;\n }\n\n /* Disabled */\n\n\t&--is-disabled &__field-wrapper {\n cursor: not-allowed;\n }\n\n &--is-disabled &__input ~ &__label,\n &--is-disabled &__input ~ &__mark &__check {\n color: $formDisabledColor;\n }\n\n &--is-disabled &__input ~ &__mark {\n border-color: $formDisabledBorderColor;\n }\n\n &--is-disabled &__mark {\n background-color: $formDisabledBackgroundColor;\n }\n}\n","import {\n Host,\n Component,\n Prop,\n Event,\n Element,\n EventEmitter,\n Method,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport {\n StzhRadioChangeEvent,\n StzhRadioFocusEvent,\n StzhRadioBlurEvent\n} from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { fetchTranslations, StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nlet radioCounter = 0;\n\n/**\n * @slot - Slot for label content\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-radio\",\n styleUrl: \"stzh-radio.scss\",\n scoped: true\n})\nexport class StzhRadio {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input element */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** The value of the input element */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Append text to label depending if field is optional/required. true -> show \"(optional)\", false -> show nothing */\n @Prop({ reflect: true }) showMarker: boolean = false;\n\n /** Checked status */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Id for element which describes the radio button (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n /** Focus input field */\n @Method()\n async setFocus() {\n this.input.focus();\n }\n\n /** Input change event */\n @Event() stzhChange: EventEmitter<StzhRadioChangeEvent>;\n\n /** Input focus event */\n @Event() stzhFocus: EventEmitter<StzhRadioFocusEvent>;\n\n /** Input blur event */\n @Event() stzhBlur: EventEmitter<StzhRadioBlurEvent>;\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 this.invalid = this._error.length > 0;\n }\n\n @Element() element: HTMLStzhRadioElement;\n\n private input: HTMLInputElement;\n private inputId: string;\n private focusedByInput: boolean = false;\n\n private onInput = (event: InputEvent) => {\n this.checked = this.input.checked;\n this.stzhChange.emit({\n component: \"stzh-radio\",\n originalEvent: event,\n value: this.value,\n checked: this.checked\n });\n }\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.setFocus();\n }\n\n this.focusedByInput = false;\n }\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent('focus', {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-radio\",\n originalEvent: event\n });\n }\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent('blur', {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-radio\",\n originalEvent: event\n });\n }\n\n async componentWillLoad() {\n this.inputId = `stzh-radio-${radioCounter++}`;\n this.errorWatcher(this.error);\n\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, 'radio');\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, 'description') || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, 'description-long') || !!this.descriptionLong;\n const errorUsed = hasSlot(this.element, 'error') || !!this.error;\n\n const classes = {\n \"stzh-radio\": true,\n \"stzh-radio--has-description\": descriptionUsed,\n \"stzh-radio--has-description-long\": descriptionLongUsed,\n \"stzh-radio--has-error\": errorUsed,\n \"stzh-radio--is-required\": this.required,\n \"stzh-radio--is-invalid\": this.invalid,\n \"stzh-radio--is-disabled\": this.disabled\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n <div class={classes}>\n <label class=\"stzh-radio__field-wrapper\">\n <input\n class=\"stzh-radio__input\"\n ref={(el) => (this.input = el as HTMLInputElement)}\n type=\"radio\"\n id={this.inputId}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-describedby={`${this.inputId}-description ${this.a11yDescribedby}`}\n aria-required={this.required ? \"true\" : \"false\"}\n aria-invalid={this.invalid ? \"true\" : \"false\"}\n checked={this.checked}\n onInput={this.onInput}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n />\n <div class=\"stzh-radio__mark\">\n <div class=\"stzh-radio__check\"></div>\n </div>\n <div class=\"stzh-radio__label\">\n {this.label ? this.label : <slot></slot>}\n {this.showMarker &&\n <span class=\"stzh-radio__marker\">\n <span class=\"stzh-radio__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker\n }\n </span>\n <span class=\"stzh-radio__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText\n }\n </span>\n </span>\n }\n </div>\n </label>\n <StzhInputDescription\n classPrefix=\"stzh-radio\"\n id={`${this.inputId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </div>\n </Host>\n );\n }\n}\n",":host([direction=\"vertical\"]) {\n ::slotted(stzh-radio:not(:last-child)) {\n margin-bottom: space('medium');\n }\n}\n\n:host([direction=\"horizontal\"]) {\n ::slotted(stzh-radio:not(:last-child)) {\n margin-right: space('large');\n }\n}\n\n.stzh-radiogroup {\n @include input-description;\n margin: 0;\n padding: 0;\n border: none;\n\n &__fields {\n display: flex;\n align-items: flex-start;\n flex-direction: column;\n }\n\n &__legend {\n @include font('heavy');\n @include fontSize('nano');\n padding: 0;\n margin-bottom: space('xsmall');\n }\n\n &--hide-legend &__legend {\n @include visuallyhidden;\n }\n\n &--direction-horizontal &__fields {\n flex-direction: row;\n }\n}\n","import {\n Component,\n Prop,\n Element,\n Watch,\n h,\n Listen\n} from \"@stencil/core\";\n\nimport { StzhRadioChangeEvent } from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { camelCase } from \"../../utils/string-utils\";\nimport { fetchTranslations, StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nconst SELECTOR_RADIO = 'stzh-radio, stzh-button[type=radio], stzh-card';\n\nlet radiogroupCounter = 0;\n\n/**\n * @slot - Slot for `stzh-radio`, `stzh-button[type=\"radio\"]` or `stzh-card` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-radiogroup\",\n styleUrl: \"stzh-radiogroup.scss\",\n scoped: true\n})\nexport class StzhRadiogroup {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input radio elements, will define the radio group. If you have more than one radio group on a page, every group needs to have its own unique name */\n @Prop({ reflect: true }) name: string;\n\n /** The legend */\n @Prop() legend: string;\n\n /** Hide legend to show only for screenreaders */\n @Prop({ reflect: true }) hideLegend: boolean = false;\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Append text to label depending if field is optional/required. true -> show \"(optional)\", false -> show nothing */\n @Prop({ reflect: true }) showMarker: boolean = false;\n\n /** Select a radio by value */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Direction */\n @Prop({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"vertical\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Current checked radio element (readonly) */\n @Prop() checkedRadio: HTMLStzhRadioElement | null = null;\n\n /** Prevent updating certain properties of radio elements (possible values inside array: disabled, invalid, required, hide-marker) */\n @Prop() preventUpdateProperties: string[] | string = [];\n private _preventUpdateProperties: string[] = [];\n\n /** Host element */\n @Element() element: HTMLElement;\n\n @Watch(\"name\")\n watchName(newValue: string) {\n this.updateRadiosProperty(\"name\", newValue);\n }\n\n @Watch(\"disabled\")\n watchDisabled(newValue: boolean) {\n this.updateRadiosProperty(\"disabled\", newValue);\n }\n\n @Watch(\"invalid\")\n watchInvalid(newValue: boolean) {\n this.updateRadiosProperty(\"invalid\", newValue);\n }\n\n @Watch(\"required\")\n watchRequired(newValue: boolean) {\n this.updateRadiosProperty(\"required\", newValue);\n }\n\n @Watch(\"value\")\n watchValue(newValue: string) {\n this.updateCheckedRadioByValue(newValue);\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 this.invalid = this._error.length > 0;\n }\n\n @Watch(\"preventUpdateProperties\")\n preventUpdatePropertiesWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._preventUpdateProperties = JSON.parse(newValue);\n } else {\n this._preventUpdateProperties = newValue;\n }\n }\n\n @Listen(\"stzhChange\")\n onChange(event: CustomEvent<StzhRadioChangeEvent>) {\n this.value = event.detail.value;\n }\n\n /** Radio elements */\n private radios: HTMLStzhRadioElement[];\n private radiogroupId: string;\n private observer: MutationObserver;\n\n private updateRadiosProperty(prop: string, value: any) {\n this.radios.forEach((radio: HTMLStzhRadioElement) => {\n if (prop === \"name\" || (this._preventUpdateProperties.indexOf(prop) === -1)) {\n radio[camelCase(prop)] = value;\n }\n });\n }\n\n private updateCheckedRadioByValue(value: string) {\n this.checkedRadio = this.radios.find(radio => radio.value === value);\n\n if (this.checkedRadio) {\n this.checkedRadio.checked = true;\n }\n\n this.uncheckRadios();\n }\n\n private uncheckRadios() {\n // make sure that no other radios are checked than the current one or no one\n this.radios.forEach((radio: HTMLStzhRadioElement) => {\n if (!this.checkedRadio || radio !== this.checkedRadio) {\n radio.checked = false;\n }\n });\n }\n\n private init = () => {\n // update radios\n this.radios = Array.from(this.element.querySelectorAll(SELECTOR_RADIO));\n\n this.updateRadiosProperty(\"show-marker\", false);\n this.updateRadiosProperty(\"a11y-describedby\", `${this.radiogroupId}-description`);\n\n this.watchValue(this.value);\n this.watchName(this.name);\n this.watchDisabled(this.disabled);\n this.watchInvalid(this.invalid);\n this.watchRequired(this.required);\n }\n\n async componentWillLoad() {\n this.radiogroupId = `stzh-radiogroup-${radiogroupCounter++}`;\n this.errorWatcher(this.error);\n this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);\n\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, 'radiogroup');\n }\n }\n\n componentShouldUpdate(_newValue, _oldValue, prop: string) {\n return prop !== \"checkedRadio\";\n }\n\n componentDidRender() {\n this.init();\n }\n\n connectedCallback() {\n if (!this.value) {\n this.radios = Array.from(this.element.querySelectorAll(SELECTOR_RADIO));\n\n // try to find a checkbox that might has checked set to true\n const checkedRadio = this.radios.find(radio => radio.checked);\n\n if (checkedRadio) {\n this.value = checkedRadio.value;\n }\n }\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\n render() {\n const descriptionUsed = hasSlot(this.element, 'description') || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, 'description-long') || !!this.descriptionLong;\n const errorUsed = hasSlot(this.element, 'error') || !!this.error;\n\n const classes = {\n \"stzh-radiogroup\": true,\n \"stzh-radiogroup--has-description\": descriptionUsed,\n \"stzh-radiogroup--has-description-long\": descriptionLongUsed,\n \"stzh-radiogroup--has-error\": errorUsed,\n \"stzh-radiogroup--is-required\": this.required,\n \"stzh-radiogroup--is-disabled\": this.disabled,\n \"stzh-radiogroup--is-invalid\": this.invalid,\n \"stzh-radiogroup--hide-legend\": this.hideLegend,\n [`stzh-radiogroup--direction-${this.direction}`]: !!this.direction\n };\n\n return (\n <fieldset class={classes}>\n {this.legend &&\n <legend class=\"stzh-radiogroup__legend\">\n {this.legend}\n {this.showMarker &&\n <span class=\"stzh-radiogroup__marker\">\n <span class=\"stzh-radiogroup__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker\n }\n </span>\n <span class=\"stzh-radiogroup__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText\n }\n </span>\n </span>\n }\n </legend>\n }\n <div class=\"stzh-radiogroup__fields\">\n <slot></slot>\n </div>\n <StzhInputDescription\n classPrefix=\"stzh-radiogroup\"\n id={`${this.radiogroupId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </fieldset>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["stzhDatepickerCss","StzhDatepicker","this","onRootFocus","_this","input","setFocus","onInputChange","parsedDate","dateAdapter","parse","value","isoDate","printISODate","calendar","stzhChange","emit","component","valueAsDate","onCalendarChange","event","detail","format","popover","hide","class_1","prototype","createDateFormatters","localization","dateFormatLong","Intl","DateTimeFormat","$locale","day","month","year","valueWatcher","newValue","date","parseISODate","updateButtonAccessibleLabel","setDate","getPopover","buttonLabel","concat","label","selectedDateMessage","err","connectedCallback","componentWillLoad","_a","fetchTranslations","element","_b","sent","createGlobalAdapter","$formats","$globals","componentDidLoad","render","classes","inline","h","Host","tabindex","disabled","onFocus","class","type","name","Fragment","ref","el","isDateDisabled","calendarIsDateDisabled","min","calendarMin","max","calendarMax","onStzhChange","labelHidden","noAutocomplete","readonly","description","descriptionLong","error","invalid","required","showMarker","size","slot","placement","variant","icon","a11yLabel","stzhRadioCss","radioCounter","StzhRadio","focusedByInput","onInput","checked","originalEvent","focusEvent","FocusEvent","view","window","bubbles","cancelable","dispatchEvent","stzhFocus","onBlur","blurEvent","stzhBlur","class_2","focus","errorWatcher","_error","JSON","e","length","inputId","descriptionUsed","hasSlot","descriptionLongUsed","errorUsed","id","a11yDescribedby","requiredFieldMarker","optionalFieldMarker","requiredFieldText","optionalFieldText","StzhInputDescription","classPrefix","moreInfoButtonLabel","stzhRadiogroupCss","SELECTOR_RADIO","radiogroupCounter","StzhRadiogroup","_preventUpdateProperties","init","radios","Array","from","querySelectorAll","updateRadiosProperty","radiogroupId","watchValue","watchName","watchDisabled","watchInvalid","watchRequired","class_3","updateCheckedRadioByValue","preventUpdatePropertiesWatcher","onChange","prop","forEach","radio","indexOf","camelCase","checkedRadio","find","uncheckRadios","preventUpdateProperties","componentShouldUpdate","_newValue","_oldValue","componentDidRender","observer","MutationObserver","observe","childList","subtree","disconnectedCallback","disconnect","hideLegend","direction","legend"],"sources":["src/components/stzh-datepicker/stzh-datepicker.scss?tag=stzh-datepicker&encapsulation=scoped","src/components/stzh-datepicker/stzh-datepicker.tsx","src/components/stzh-radio/stzh-radio.scss?tag=stzh-radio&encapsulation=scoped","src/components/stzh-radio/stzh-radio.tsx","src/components/stzh-radiogroup/stzh-radiogroup.scss?tag=stzh-radiogroup&encapsulation=scoped","src/components/stzh-radiogroup/stzh-radiogroup.tsx"],"sourcesContent":[":host {\n width: 100%;\n}\n\n.stzh-datepicker {\n &__popover {\n --padding: #{space('medium')};\n --width: auto;\n }\n\n &__actions {\n display: flex;\n justify-content: flex-end;\n\n &:not(:empty) {\n margin-top: space('xsmall');\n }\n }\n}\n","import {\n Component,\n Prop,\n Host,\n Element,\n h,\n Event,\n EventEmitter,\n Method,\n Watch,\n Fragment,\n State\n} from \"@stencil/core\";\n\nimport {\n StzhCalendarChangeEvent,\n StzhDatepickerChangeEvent\n} from \"../../index\";\n\nimport { StzhCalendarDateDisabledPredicate } from \"../../index\";\n\nimport { fetchTranslations } from \"../../utils/translation-utils\";\nimport { printISODate, parseISODate } from \"../../utils/date-utils\"\nimport { StzhLocaleAdapter, createGlobalAdapter } from \"../../utils/date-adapter\"\n\nimport { StzhDatepickerLocalizedText } from \"./stzh-datepicker.localization\";\n\n/**\n * @slot action - Slot for action below calendar (stzh-link element)\n */\n@Component({\n tag: \"stzh-datepicker\",\n styleUrl: \"stzh-datepicker.scss\",\n scoped: true\n})\nexport class StzhDatepicker {\n /**\n * Minimum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n * This setting can be used alone or together with the max property.\n */\n @Prop() calendarMin: string = \"\"\n\n /**\n * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.\n * This setting can be used alone or together with the min property.\n */\n @Prop() calendarMax: string = \"\"\n\n /**\n * Controls which days are disabled and therefore disallowed.\n * For example, this can be used to disallow selection of weekends.\n */\n @Prop() calendarIsDateDisabled: StzhCalendarDateDisabledPredicate = () => false\n\n /** Name of the hidden date picker input. */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** Value of hidden date picker input (current selected date in ISO format). */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Label for input field and popover */\n @Prop() label: string = \"\";\n\n /** Whether label is visually hidden. */\n @Prop() labelHidden: boolean = false;\n\n /** Whether the element is readonly or not */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Append text to label depending if field is optional/required. true -> show \"(optional)\", false -> show nothing */\n @Prop({ reflect: true }) showMarker: boolean = false;\n\n /** Size variant */\n @Prop({ reflect: true }) size: \"default\" | \"small\" = \"default\";\n\n /** Show calendar inline */\n @Prop() inline: boolean = false;\n\n /**\n * Date adapter, for custom parsing/formatting.\n * Must be object with a `parse` function which accepts a `string` and returns a `Date`,\n * and a `format` function which accepts a `Date` and returns a `string`.\n */\n @Prop() dateAdapter: StzhLocaleAdapter;\n\n /** Translation strings. */\n @Prop() localization: StzhDatepickerLocalizedText;\n\n @State() buttonLabel: string;\n\n @Watch(\"localization\")\n createDateFormatters() {\n if (this.localization) {\n this.dateFormatLong = new Intl.DateTimeFormat(this.localization.$locale, {\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n })\n }\n }\n\n /** Update calendar and input when value prop has changed */\n @Watch(\"value\")\n valueWatcher(newValue: string) {\n const date = parseISODate(newValue);\n\n if (this.calendar) {\n this.calendar.value = newValue;\n }\n\n if (this.input) {\n this.input.value = this.dateAdapter.format(date, \"inputdate\");\n }\n\n this.updateButtonAccessibleLabel();\n }\n\n /** Set value by a JS Date object */\n @Method()\n async setDate(date: Date) {\n this.value = printISODate(date);\n }\n\n /** Return internal popover element */\n @Method()\n async getPopover(): Promise<HTMLStzhPopoverElement> {\n return this.popover;\n }\n\n /** Datepicker change event */\n @Event() stzhChange: EventEmitter<StzhDatepickerChangeEvent>;\n\n @Element() element: HTMLStzhDatepickerElement;\n\n /**\n * To format dates exclusively for the benefit of screen readers.\n *\n * We prefer DateTimeFormat over date.toLocaleDateString, as the former has\n * better performance when formatting large number of dates. See:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString#Performance\n */\n private dateFormatLong: Intl.DateTimeFormat\n\n private input: HTMLStzhInputElement;\n private popover: HTMLStzhPopoverElement;\n private calendar: HTMLStzhCalendarElement;\n\n private onRootFocus = () => {\n if (this.input) {\n this.input.setFocus();\n }\n }\n\n private onInputChange = () => {\n const parsedDate = this.dateAdapter.parse(this.input.value, \"inputdate\");\n\n if (this.input.value === \"\" || parsedDate) {\n const isoDate = printISODate(parsedDate);\n\n if (this.calendar) {\n this.calendar.value = isoDate;\n }\n\n this.value = isoDate;\n this.stzhChange.emit({\n component: \"stzh-datepicker\",\n value: this.value,\n valueAsDate: parsedDate,\n })\n }\n }\n\n private onCalendarChange = (event: CustomEvent<StzhCalendarChangeEvent>) => {\n this.value = event.detail.value;\n this.stzhChange.emit({\n component: \"stzh-datepicker\",\n value: this.value,\n valueAsDate: event.detail.valueAsDate,\n });\n\n if (this.input) {\n this.input.value = event.detail.valueAsDate\n && this.dateAdapter.format(event.detail.valueAsDate, \"inputdate\");\n }\n\n if (this.popover) {\n this.popover.hide();\n }\n }\n\n private updateButtonAccessibleLabel() {\n if (!this.localization) {\n return;\n }\n\n try {\n const valueAsDate = parseISODate(this.value);\n this.buttonLabel = `${this.label}, ${this.localization.buttonLabel}, ${this.localization.selectedDateMessage} ${this.dateFormatLong.format(valueAsDate)}`;\n } catch (err) {\n this.buttonLabel = `${this.label}, ${this.localization.buttonLabel}`;\n }\n }\n\n connectedCallback() {\n this.createDateFormatters();\n }\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, \"datepicker\");\n }\n\n if (!this.dateAdapter) {\n this.dateAdapter = createGlobalAdapter(\n this.localization.$formats,\n this.localization.$globals\n );\n }\n }\n\n componentDidLoad() {\n this.valueWatcher(this.value);\n }\n\n render() {\n const classes = {\n \"stzh-datepicker\": true,\n \"stzh-datepicker--inline\": this.inline\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n <div class={classes}>\n <input\n type=\"hidden\"\n name={this.name}\n value={this.value}\n />\n\n {this.inline &&\n <Fragment>\n <stzh-calendar\n ref={(el) => (this.calendar = el as HTMLStzhCalendarElement)}\n isDateDisabled={this.calendarIsDateDisabled}\n min={this.calendarMin}\n max={this.calendarMax}\n onStzhChange={this.onCalendarChange}\n ></stzh-calendar>\n <div class=\"stzh-datepicker__actions\">\n <slot name=\"action\"></slot>\n </div>\n </Fragment>\n }\n\n {!this.inline &&\n <stzh-input\n label={this.label}\n labelHidden={this.labelHidden}\n ref={(el) => (this.input = el as HTMLStzhInputElement)}\n noAutocomplete\n onStzhChange={this.onInputChange}\n readonly={this.readonly}\n disabled={this.disabled}\n description={this.description}\n descriptionLong={this.descriptionLong}\n error={this.error}\n invalid={this.invalid}\n required={this.required}\n showMarker={this.showMarker}\n size={this.size}\n >\n <stzh-popover\n ref={(el) => (this.popover = el as HTMLStzhPopoverElement)}\n class=\"stzh-datepicker__popover\"\n slot=\"button-right\"\n placement=\"bottom-end\"\n label={this.label}\n >\n <stzh-button\n variant=\"input\"\n icon-only\n icon=\"calendar\"\n disabled={this.disabled}\n a11yLabel={this.buttonLabel}\n >\n </stzh-button>\n <div slot=\"content\">\n <stzh-calendar\n ref={(el) => (this.calendar = el as HTMLStzhCalendarElement)}\n isDateDisabled={this.calendarIsDateDisabled}\n min={this.calendarMin}\n max={this.calendarMax}\n onStzhChange={this.onCalendarChange}\n >\n </stzh-calendar>\n <div class=\"stzh-datepicker__actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n </stzh-popover>\n </stzh-input>\n }\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n\n ::slotted(stzh-text) {\n --color: inherit;\n }\n}\n\n.stzh-radio {\n\t@include input-description;\n\n &__field-wrapper {\n @include fontSize('milli');\n position: relative;\n display: flex;\n user-select: none;\n cursor: pointer;\n }\n\n &__input {\n @include visuallyhiddenInput;\n border-radius: $formInputBorderRadius;\n }\n\n &__mark {\n @include radio__mark();\n }\n\n &__check {\n @include radio__check();\n }\n\n &__label {\n display: inline-block;\n color: $baseColor;\n transition: color $baseTransitionAnimationSpeed;\n margin-left: space('small');\n line-height: 24px;\n\n &:empty {\n display: none;\n }\n }\n\n &__marker-symbol {\n @include fontSize('micro');\n }\n\n /* Hover / Focus / Checked */\n\n &:hover &__label,\n &__input:checked:hover ~ &__label,\n &__input:checked:hover ~ &__mark &__check,\n &__input:checked:focus ~ &__mark &__check {\n color: $colorPrimaryHover;\n }\n\n &__input:checked ~ &__label {\n color: $colorPrimary;\n }\n\n &:hover &__mark,\n &__input:focus:hover ~ &__mark,\n &__input:checked:hover ~ &__mark,\n &__input:checked:focus ~ &__mark {\n border-color: $colorPrimaryHover;\n }\n\n &__input:focus ~ &__mark,\n &__input:checked ~ &__mark {\n border-color: $colorPrimary;\n }\n\n &__input:checked ~ &__mark &__check {\n opacity: 1;\n }\n\n /* Invalid */\n\n &--is-invalid &__input ~ &__label,\n &--is-invalid &__input ~ &__mark &__check {\n color: $colorError;\n }\n\n &--is-invalid &__input ~ &__mark {\n border-color: $colorError;\n }\n\n /* Disabled */\n\n\t&--is-disabled &__field-wrapper {\n cursor: not-allowed;\n }\n\n &--is-disabled &__input ~ &__label,\n &--is-disabled &__input ~ &__mark &__check {\n color: $formDisabledColor;\n }\n\n &--is-disabled &__input ~ &__mark {\n border-color: $formDisabledBorderColor;\n }\n\n &--is-disabled &__mark {\n background-color: $formDisabledBackgroundColor;\n }\n}\n","import {\n Host,\n Component,\n Prop,\n Event,\n Element,\n EventEmitter,\n Method,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport {\n StzhRadioChangeEvent,\n StzhRadioFocusEvent,\n StzhRadioBlurEvent\n} from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { fetchTranslations, StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nlet radioCounter = 0;\n\n/**\n * @slot - Slot for label content\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-radio\",\n styleUrl: \"stzh-radio.scss\",\n scoped: true\n})\nexport class StzhRadio {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input element */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** The value of the input element */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Append text to label depending if field is optional/required. true -> show \"(optional)\", false -> show nothing */\n @Prop({ reflect: true }) showMarker: boolean = false;\n\n /** Checked status */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Id for element which describes the radio button (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n /** Focus input field */\n @Method()\n async setFocus() {\n this.input.focus();\n }\n\n /** Input change event */\n @Event() stzhChange: EventEmitter<StzhRadioChangeEvent>;\n\n /** Input focus event */\n @Event() stzhFocus: EventEmitter<StzhRadioFocusEvent>;\n\n /** Input blur event */\n @Event() stzhBlur: EventEmitter<StzhRadioBlurEvent>;\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 this.invalid = this._error.length > 0;\n }\n\n @Element() element: HTMLStzhRadioElement;\n\n private input: HTMLInputElement;\n private inputId: string;\n private focusedByInput: boolean = false;\n\n private onInput = (event: InputEvent) => {\n this.checked = this.input.checked;\n this.stzhChange.emit({\n component: \"stzh-radio\",\n originalEvent: event,\n value: this.value,\n checked: this.checked\n });\n }\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.setFocus();\n }\n\n this.focusedByInput = false;\n }\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent('focus', {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-radio\",\n originalEvent: event\n });\n }\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent('blur', {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-radio\",\n originalEvent: event\n });\n }\n\n async componentWillLoad() {\n this.inputId = `stzh-radio-${radioCounter++}`;\n this.errorWatcher(this.error);\n\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, 'radio');\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, 'description') || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, 'description-long') || !!this.descriptionLong;\n const errorUsed = hasSlot(this.element, 'error') || !!this.error;\n\n const classes = {\n \"stzh-radio\": true,\n \"stzh-radio--has-description\": descriptionUsed,\n \"stzh-radio--has-description-long\": descriptionLongUsed,\n \"stzh-radio--has-error\": errorUsed,\n \"stzh-radio--is-required\": this.required,\n \"stzh-radio--is-invalid\": this.invalid,\n \"stzh-radio--is-disabled\": this.disabled\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n <div class={classes}>\n <label class=\"stzh-radio__field-wrapper\">\n <input\n class=\"stzh-radio__input\"\n ref={(el) => (this.input = el as HTMLInputElement)}\n type=\"radio\"\n id={this.inputId}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-describedby={`${this.inputId}-description ${this.a11yDescribedby}`}\n aria-required={this.required ? \"true\" : \"false\"}\n aria-invalid={this.invalid ? \"true\" : \"false\"}\n checked={this.checked}\n onInput={this.onInput}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n />\n <div class=\"stzh-radio__mark\">\n <div class=\"stzh-radio__check\"></div>\n </div>\n <div class=\"stzh-radio__label\">\n {this.label ? this.label : <slot></slot>}\n {this.showMarker &&\n <span class=\"stzh-radio__marker\">\n <span class=\"stzh-radio__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker\n }\n </span>\n <span class=\"stzh-radio__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText\n }\n </span>\n </span>\n }\n </div>\n </label>\n <StzhInputDescription\n classPrefix=\"stzh-radio\"\n id={`${this.inputId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </div>\n </Host>\n );\n }\n}\n",":host([direction=\"vertical\"]) {\n ::slotted(stzh-radio:not(:last-child)) {\n margin-bottom: space('medium');\n }\n}\n\n:host([direction=\"horizontal\"]) {\n ::slotted(stzh-radio:not(:last-child)) {\n margin-right: space('large');\n }\n}\n\n.stzh-radiogroup {\n @include input-description;\n margin: 0;\n padding: 0;\n border: none;\n\n &__fields {\n display: flex;\n align-items: flex-start;\n flex-direction: column;\n }\n\n &__legend {\n @include font('heavy');\n @include fontSize('nano');\n padding: 0;\n margin-bottom: space('xsmall');\n }\n\n &--hide-legend &__legend {\n @include visuallyhidden;\n }\n\n &--direction-horizontal &__fields {\n flex-direction: row;\n }\n}\n","import {\n Component,\n Prop,\n Element,\n Watch,\n h,\n Listen\n} from \"@stencil/core\";\n\nimport { StzhRadioChangeEvent } from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { camelCase } from \"../../utils/string-utils\";\nimport { fetchTranslations, StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nconst SELECTOR_RADIO = 'stzh-radio, stzh-button[type=radio], stzh-card';\n\nlet radiogroupCounter = 0;\n\n/**\n * @slot - Slot for `stzh-radio`, `stzh-button[type=\"radio\"]` or `stzh-card` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-radiogroup\",\n styleUrl: \"stzh-radiogroup.scss\",\n scoped: true\n})\nexport class StzhRadiogroup {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input radio elements, will define the radio group. If you have more than one radio group on a page, every group needs to have its own unique name */\n @Prop({ reflect: true }) name: string;\n\n /** The legend */\n @Prop() legend: string;\n\n /** Hide legend to show only for screenreaders */\n @Prop({ reflect: true }) hideLegend: boolean = false;\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Append text to label depending if field is optional/required. true -> show \"(optional)\", false -> show nothing */\n @Prop({ reflect: true }) showMarker: boolean = false;\n\n /** Select a radio by value */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Direction */\n @Prop({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"vertical\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Current checked radio element (readonly) */\n @Prop() checkedRadio: HTMLStzhRadioElement | null = null;\n\n /** Prevent updating certain properties of radio elements (possible values inside array: disabled, invalid, required, hide-marker) */\n @Prop() preventUpdateProperties: string[] | string = [];\n private _preventUpdateProperties: string[] = [];\n\n /** Host element */\n @Element() element: HTMLElement;\n\n @Watch(\"name\")\n watchName(newValue: string) {\n this.updateRadiosProperty(\"name\", newValue);\n }\n\n @Watch(\"disabled\")\n watchDisabled(newValue: boolean) {\n this.updateRadiosProperty(\"disabled\", newValue);\n }\n\n @Watch(\"invalid\")\n watchInvalid(newValue: boolean) {\n this.updateRadiosProperty(\"invalid\", newValue);\n }\n\n @Watch(\"required\")\n watchRequired(newValue: boolean) {\n this.updateRadiosProperty(\"required\", newValue);\n }\n\n @Watch(\"value\")\n watchValue(newValue: string) {\n this.updateCheckedRadioByValue(newValue);\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 this.invalid = this._error.length > 0;\n }\n\n @Watch(\"preventUpdateProperties\")\n preventUpdatePropertiesWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._preventUpdateProperties = JSON.parse(newValue);\n } else {\n this._preventUpdateProperties = newValue;\n }\n }\n\n @Listen(\"stzhChange\")\n onChange(event: CustomEvent<StzhRadioChangeEvent>) {\n this.value = event.detail.value;\n }\n\n /** Radio elements */\n private radios: HTMLStzhRadioElement[];\n private radiogroupId: string;\n private observer: MutationObserver;\n\n private updateRadiosProperty(prop: string, value: any) {\n this.radios.forEach((radio: HTMLStzhRadioElement) => {\n if (prop === \"name\" || (this._preventUpdateProperties.indexOf(prop) === -1)) {\n radio[camelCase(prop)] = value;\n }\n });\n }\n\n private updateCheckedRadioByValue(value: string) {\n this.checkedRadio = this.radios.find(radio => radio.value === value);\n\n if (this.checkedRadio) {\n this.checkedRadio.checked = true;\n }\n\n this.uncheckRadios();\n }\n\n private uncheckRadios() {\n // make sure that no other radios are checked than the current one or no one\n this.radios.forEach((radio: HTMLStzhRadioElement) => {\n if (!this.checkedRadio || radio !== this.checkedRadio) {\n radio.checked = false;\n }\n });\n }\n\n private init = () => {\n // update radios\n this.radios = Array.from(this.element.querySelectorAll(SELECTOR_RADIO));\n\n this.updateRadiosProperty(\"show-marker\", false);\n this.updateRadiosProperty(\"a11y-describedby\", `${this.radiogroupId}-description`);\n\n this.watchValue(this.value);\n this.watchName(this.name);\n this.watchDisabled(this.disabled);\n this.watchInvalid(this.invalid);\n this.watchRequired(this.required);\n }\n\n async componentWillLoad() {\n this.radiogroupId = `stzh-radiogroup-${radiogroupCounter++}`;\n this.errorWatcher(this.error);\n this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);\n\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, 'radiogroup');\n }\n }\n\n componentShouldUpdate(_newValue, _oldValue, prop: string) {\n return prop !== \"checkedRadio\";\n }\n\n componentDidRender() {\n this.init();\n }\n\n connectedCallback() {\n if (!this.value) {\n this.radios = Array.from(this.element.querySelectorAll(SELECTOR_RADIO));\n\n // try to find a checkbox that might has checked set to true\n const checkedRadio = this.radios.find(radio => radio.checked);\n\n if (checkedRadio) {\n this.value = checkedRadio.value;\n }\n }\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\n render() {\n const descriptionUsed = hasSlot(this.element, 'description') || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, 'description-long') || !!this.descriptionLong;\n const errorUsed = hasSlot(this.element, 'error') || !!this.error;\n\n const classes = {\n \"stzh-radiogroup\": true,\n \"stzh-radiogroup--has-description\": descriptionUsed,\n \"stzh-radiogroup--has-description-long\": descriptionLongUsed,\n \"stzh-radiogroup--has-error\": errorUsed,\n \"stzh-radiogroup--is-required\": this.required,\n \"stzh-radiogroup--is-disabled\": this.disabled,\n \"stzh-radiogroup--is-invalid\": this.invalid,\n \"stzh-radiogroup--hide-legend\": this.hideLegend,\n [`stzh-radiogroup--direction-${this.direction}`]: !!this.direction\n };\n\n return (\n <fieldset class={classes}>\n {this.legend &&\n <legend class=\"stzh-radiogroup__legend\">\n {this.legend}\n {this.showMarker &&\n <span class=\"stzh-radiogroup__marker\">\n <span class=\"stzh-radiogroup__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker\n }\n </span>\n <span class=\"stzh-radiogroup__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText\n }\n </span>\n </span>\n }\n </legend>\n }\n <div class=\"stzh-radiogroup__fields\">\n <slot></slot>\n </div>\n <StzhInputDescription\n classPrefix=\"stzh-radiogroup\"\n id={`${this.radiogroupId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </fieldset>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(t,e,i,a){function o(t){return t instanceof i?t:new i((function(e){e(t)}))}return new(i||(i=Promise))((function(i,s){function n(t){try{r(a.next(t))}catch(t){s(t)}}function l(t){try{r(a["throw"](t))}catch(t){s(t)}}function r(t){t.done?i(t.value):o(t.value).then(n,l)}r((a=a.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var i={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,o,s,n;return n={next:l(0),throw:l(1),return:l(2)},typeof Symbol==="function"&&(n[Symbol.iterator]=function(){return this}),n;function l(t){return function(e){return r([t,e])}}function r(l){if(a)throw new TypeError("Generator is already executing.");while(n&&(n=0,l[0]&&(i=0)),i)try{if(a=1,o&&(s=l[0]&2?o["return"]:l[0]?o["throw"]||((s=o["return"])&&s.call(o),0):o.next)&&!(s=s.call(o,l[1])).done)return s;if(o=0,s)l=[l[0]&2,s.value];switch(l[0]){case 0:case 1:s=l;break;case 4:i.label++;return{value:l[1],done:false};case 5:i.label++;o=l[1];l=[0];continue;case 7:l=i.ops.pop();i.trys.pop();continue;default:if(!(s=i.trys,s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){i=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){i.label=l[1];break}if(l[0]===6&&i.label<s[1]){i.label=s[1];s=l;break}if(s&&i.label<s[2]){i.label=s[2];i.ops.push(l);break}if(s[2])i.ops.pop();i.trys.pop();continue}l=e.call(t,i)}catch(t){l=[6,t];o=0}finally{a=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,a as Host,g as getElement}from"./index-67fd55c9.js";import{s as setPropsIfNull}from"./utils-8f264f12.js";import{f as fetchTranslations}from"./translation-utils-2623783f.js";import{c as createBaseFocusTrapOptions}from"./overlay-utils-33021971.js";import{c as createFocusTrap}from"./focus-trap.esm-601d164c.js";var stzhDialogCss=".sc-stzh-dialog-h{font-family:var(--stzh-font-family-regular);font-weight:var(--stzh-font-weight-regular);font-style:normal;color:var(--stzh-base-color);-webkit-box-sizing:border-box;box-sizing:border-box;display:block}[hidden].sc-stzh-dialog-h{display:none}.sc-stzh-dialog-h *.sc-stzh-dialog,.sc-stzh-dialog-h *.sc-stzh-dialog::before,.sc-stzh-dialog-h *.sc-stzh-dialog::after{-webkit-box-sizing:border-box;box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness)}.sc-stzh-dialog-h{--width:100%;--padding:var(--stzh-space-xxlarge);--close-color:var(--stzh-base-lead-color);--backdrop-opacity:0.8}@media screen and (min-width: 600px){.sc-stzh-dialog-h{--width:33.5rem;}}@media screen and (min-width: 1024px){.sc-stzh-dialog-h{--width:48.875rem;--padding:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1260px){.sc-stzh-dialog-h{--width:52rem;--padding:var(--stzh-space-xxxxlarge)}}@media screen and (min-width: 600px){[size=small].sc-stzh-dialog-h{--width:24.6875rem}}@media screen and (min-width: 1024px){[size=small].sc-stzh-dialog-h{--width:28.75rem}}@media screen and (min-width: 1260px){[size=small].sc-stzh-dialog-h{--width:32rem}}.stzh-dialog.sc-stzh-dialog{z-index:var(--stzh-z-index-dialog);display:none;position:fixed;top:0;left:0;width:100%;height:100%;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:stretch;justify-content:stretch}.stzh-dialog__content.sc-stzh-dialog{z-index:2;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-positive:1;flex-grow:1;overflow:auto}.stzh-dialog__dialog.sc-stzh-dialog{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:auto;border:none;background-color:var(--stzh-color-white);width:var(--width);max-width:100%;-webkit-box-shadow:var(--stzh-box-shadow-overlay);box-shadow:var(--stzh-box-shadow-overlay);height:100vh;max-height:100vh;overflow:hidden;outline:none}@media screen and (min-width: 600px){.stzh-dialog__dialog.sc-stzh-dialog{height:auto}}.stzh-dialog__backdrop.sc-stzh-dialog{z-index:1;position:absolute;top:0px;left:0px;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;text-align:center;background-color:var(--stzh-color-primary, var(--stzh-color-zueriblue));opacity:var(--backdrop-opacity)}.stzh-dialog__heading.sc-stzh-dialog{padding:var(--padding);padding-bottom:0}.stzh-dialog__dialog-content.sc-stzh-dialog{padding:var(--padding);padding-top:var(--stzh-space-xlarge);padding-bottom:var(--stzh-space-xlarge);overflow:auto;-ms-flex-positive:1;flex-grow:1}@media screen and (min-width: 1024px){.stzh-dialog__dialog-content.sc-stzh-dialog{padding-top:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px){.stzh-dialog__dialog-content.sc-stzh-dialog{padding-top:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1024px){.stzh-dialog__dialog-content.sc-stzh-dialog{padding-bottom:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px){.stzh-dialog__dialog-content.sc-stzh-dialog{padding-bottom:var(--stzh-space-xxxlarge)}}.stzh-dialog__actions.sc-stzh-dialog{padding:var(--padding);padding-top:0}.stzh-dialog__close-button.sc-stzh-dialog{position:absolute;top:var(--stzh-space-xsmall);right:var(--stzh-space-xsmall);display:-ms-flexbox;display:flex;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;border:none;background:none;padding:var(--stzh-space-xsmall);margin:calc(var(--stzh-space-xsmall) * -1);border-radius:var(--stzh-button-border-radius);cursor:pointer}@media screen and (min-width: 600px){.stzh-dialog__close-button.sc-stzh-dialog{top:var(--stzh-space-small);right:var(--stzh-space-small)}}@media screen and (min-width: 1024px){.stzh-dialog__close-button.sc-stzh-dialog{top:var(--stzh-space-large);right:var(--stzh-space-large)}}@media screen and (min-width: 1260px){.stzh-dialog__close-button.sc-stzh-dialog{top:calc(var(--stzh-space-xxlarge) + var(--stzh-space-xxsmall));right:calc(var(--stzh-space-xxlarge) + var(--stzh-space-xxsmall))}}.stzh-dialog__close-icon.sc-stzh-dialog{--size:var(--stzh-icon-size-medium);color:var(--close-color)}.stzh-dialog--is-open.sc-stzh-dialog{display:-ms-flexbox;display:flex}";var keyCode={ESC:27};var CLASS_BODY_OPEN="stzh-dialog-open";var activeDialog=null;var dialogCounter=0;var StzhDialog=function(){function t(t){var e=this;registerInstance(this,t);this.stzhOpen=createEvent(this,"stzhOpen",7);this.stzhClose=createEvent(this,"stzhClose",7);this.handleDialogClick=function(t){var i=t.target;if(i.dataset.stzhDialogClose){e.hide()}else{var a=i.closest("[data-stzh-dialog-close]");if(a){e.hide()}}};this.handleCloseButtonClick=function(){e.hide()};this.init=function(){var t=e.element.querySelector('stzh-actions[slot="actions"]');if(t){setPropsIfNull(t,{variant:"dialog",withBorder:true})}};this.localization=undefined;this.closeOnEscapeKey=false;this.closeOnBackdropClick=false;this.open=false;this.stay=true;this.size="default";this.hideClose=false;this.heading="";this.a11yRole="alertdialog";this.a11yLabel="";this.closeAnalyticsId=undefined}t.prototype.handleOutsideClick=function(t){if(!this.open||!this.closeOnBackdropClick){return}var e=t.target!==this.dialogElement&&this.dialogElement.contains(t.target)===false;if(e){this.hide()}};t.prototype.handleKeydown=function(t){if(t.keyCode===keyCode.ESC&&activeDialog===this&&this.closeOnEscapeKey){this.hide()}};t.prototype.handleOpenTriggerClick=function(t){var e=t.target;if(e.dataset.stzhDialogTrigger===this.element.id){this.show()}else{var i=e.closest("[data-stzh-dialog-trigger]");if(i&&i.dataset.stzhDialogTrigger===this.element.id){this.show()}}};t.prototype.show=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.open=true;this.stzhOpen.emit({component:"stzh-dialog"});return[2]}))}))};t.prototype.hide=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.open=false;this.stzhClose.emit({component:"stzh-dialog"});return[2]}))}))};t.prototype.getSiblings=function(){var t=this;if(!this.parentElement){return[]}return Array.from(this.parentElement.children).filter((function(e){return e!==t.element}))};t.prototype.disableSiblings=function(){this.getSiblings().forEach((function(t){t.setAttribute("aria-hidden","true")}))};t.prototype.enableSiblings=function(){this.getSiblings().forEach((function(t){t.removeAttribute("aria-hidden")}))};t.prototype.dialogShown=function(){activeDialog=this;document.body.classList.add(CLASS_BODY_OPEN);this.disableSiblings();if(this.trap){this.trap.activate()}};t.prototype.dialogHidden=function(){document.body.classList.remove(CLASS_BODY_OPEN);this.enableSiblings();if(this.trap){this.trap.deactivate()}activeDialog=null};t.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:this.id="stzh-dialog-".concat(dialogCounter);dialogCounter++;if(!!this.localization)return[3,2];t=this;return[4,fetchTranslations(this.element,"dialog")];case 1:t.localization=e.sent();e.label=2;case 2:return[2]}}))}))};t.prototype.componentDidRender=function(){this.open?this.dialogShown():this.dialogHidden()};t.prototype.componentDidUpdate=function(){this.trap.updateContainerElements(this.element)};t.prototype.componentDidLoad=function(){this.trap=createFocusTrap(this.element,Object.assign({fallbackFocus:this.dialogElement},createBaseFocusTrapOptions()));if(this.open){this.dialogShown()}};t.prototype.connectedCallback=function(){if(!this.stay&&this.element.parentElement!==document.body){document.body.appendChild(this.element)}this.parentElement=this.element.parentElement;this.init();this.observer=new MutationObserver(this.init);this.observer.observe(this.element,{childList:true,subtree:true})};t.prototype.disconnectedCallback=function(){this.dialogHidden();if(this.observer){this.observer.disconnect()}};t.prototype.render=function(){var t;var e=this;return h(Host,null,h("div",{class:(t={"stzh-dialog":true,"stzh-dialog--is-open":this.open,"stzh-dialog--has-heading":!!this.heading,"stzh-dialog--has-close-hidden":this.hideClose},t["stzh-dialog--size-".concat(this.size)]=!!this.size,t)},h("div",{class:"stzh-dialog__backdrop"}),h("div",{class:"stzh-dialog__content"},h("div",{class:"stzh-dialog__dialog",ref:function(t){return e.dialogElement=t},tabindex:"-1",role:this.a11yRole,"aria-label":this.a11yLabel,"aria-labelledby":this.heading?"".concat(this.id,"-heading"):null,"aria-hidden":this.open?"false":"true",onClick:this.handleDialogClick},this.heading&&h("stzh-heading",{id:"".concat(this.id,"-heading"),class:"stzh-dialog__heading",level:"2","with-border":true},this.heading),h("div",{class:"stzh-dialog__dialog-content"},h("slot",null)),h("div",{class:"stzh-dialog__actions"},h("slot",{name:"actions"})),!this.hideClose&&h("button",{class:"stzh-dialog__close-button",onClick:this.handleCloseButtonClick,"aria-label":this.localization.close,type:"button","s-object-id":this.closeAnalyticsId||this.localization.close},h("stzh-icon",{class:"stzh-dialog__close-icon",name:"close"}))))))};Object.defineProperty(t.prototype,"element",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();StzhDialog.style=stzhDialogCss;export{StzhDialog as stzh_dialog};
1
+ var __awaiter=this&&this.__awaiter||function(t,e,i,a){function o(t){return t instanceof i?t:new i((function(e){e(t)}))}return new(i||(i=Promise))((function(i,s){function n(t){try{r(a.next(t))}catch(t){s(t)}}function l(t){try{r(a["throw"](t))}catch(t){s(t)}}function r(t){t.done?i(t.value):o(t.value).then(n,l)}r((a=a.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var i={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,o,s,n;return n={next:l(0),throw:l(1),return:l(2)},typeof Symbol==="function"&&(n[Symbol.iterator]=function(){return this}),n;function l(t){return function(e){return r([t,e])}}function r(l){if(a)throw new TypeError("Generator is already executing.");while(n&&(n=0,l[0]&&(i=0)),i)try{if(a=1,o&&(s=l[0]&2?o["return"]:l[0]?o["throw"]||((s=o["return"])&&s.call(o),0):o.next)&&!(s=s.call(o,l[1])).done)return s;if(o=0,s)l=[l[0]&2,s.value];switch(l[0]){case 0:case 1:s=l;break;case 4:i.label++;return{value:l[1],done:false};case 5:i.label++;o=l[1];l=[0];continue;case 7:l=i.ops.pop();i.trys.pop();continue;default:if(!(s=i.trys,s=s.length>0&&s[s.length-1])&&(l[0]===6||l[0]===2)){i=0;continue}if(l[0]===3&&(!s||l[1]>s[0]&&l[1]<s[3])){i.label=l[1];break}if(l[0]===6&&i.label<s[1]){i.label=s[1];s=l;break}if(s&&i.label<s[2]){i.label=s[2];i.ops.push(l);break}if(s[2])i.ops.pop();i.trys.pop();continue}l=e.call(t,i)}catch(t){l=[6,t];o=0}finally{a=s=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,a as Host,g as getElement}from"./index-67fd55c9.js";import{s as setPropsIfNull}from"./utils-8f264f12.js";import{f as fetchTranslations}from"./translation-utils-2623783f.js";import{c as createBaseFocusTrapOptions}from"./overlay-utils-33021971.js";import{c as createFocusTrap}from"./focus-trap.esm-601d164c.js";var stzhDialogCss=".sc-stzh-dialog-h{font-family:var(--stzh-font-family-regular);font-weight:var(--stzh-font-weight-regular);font-style:normal;color:var(--stzh-base-color);-webkit-box-sizing:border-box;box-sizing:border-box;display:block}[hidden].sc-stzh-dialog-h{display:none}.sc-stzh-dialog-h *.sc-stzh-dialog,.sc-stzh-dialog-h *.sc-stzh-dialog::before,.sc-stzh-dialog-h *.sc-stzh-dialog::after{-webkit-box-sizing:border-box;box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness)}.sc-stzh-dialog-h{--width:100%;--padding:var(--stzh-space-xxlarge);--close-color:var(--stzh-base-lead-color);--backdrop-opacity:0.8}@media screen and (min-width: 600px){.sc-stzh-dialog-h{--width:33.5rem;}}@media screen and (min-width: 1024px){.sc-stzh-dialog-h{--width:48.875rem;--padding:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1260px){.sc-stzh-dialog-h{--width:52rem;--padding:var(--stzh-space-xxxxlarge)}}@media screen and (min-width: 600px){[size=small].sc-stzh-dialog-h{--width:24.6875rem}}@media screen and (min-width: 1024px){[size=small].sc-stzh-dialog-h{--width:28.75rem}}@media screen and (min-width: 1260px){[size=small].sc-stzh-dialog-h{--width:32rem}}.stzh-dialog.sc-stzh-dialog{z-index:var(--stzh-z-index-dialog);display:none;position:fixed;top:0;left:0;width:100%;height:100%;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:stretch;justify-content:stretch}.stzh-dialog__content.sc-stzh-dialog{z-index:2;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-positive:1;flex-grow:1;overflow:auto}.stzh-dialog__dialog.sc-stzh-dialog{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:auto;border:none;background-color:var(--stzh-color-white);width:var(--width);max-width:100%;-webkit-box-shadow:var(--stzh-box-shadow-overlay);box-shadow:var(--stzh-box-shadow-overlay);height:100vh;max-height:100vh;overflow:hidden;outline:none}@media screen and (min-width: 600px){.stzh-dialog__dialog.sc-stzh-dialog{height:auto}}.stzh-dialog__backdrop.sc-stzh-dialog{z-index:1;position:absolute;top:0px;left:0px;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;text-align:center;background-color:var(--stzh-color-primary, var(--stzh-color-zueriblue));opacity:var(--backdrop-opacity)}.stzh-dialog__heading.sc-stzh-dialog{padding:var(--padding);padding-bottom:0}.stzh-dialog__dialog-content.sc-stzh-dialog{padding:var(--padding);padding-top:var(--stzh-space-xlarge);padding-bottom:var(--stzh-space-xlarge);overflow:auto;-ms-flex-positive:1;flex-grow:1}@media screen and (min-width: 1024px){.stzh-dialog__dialog-content.sc-stzh-dialog{padding-top:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px){.stzh-dialog__dialog-content.sc-stzh-dialog{padding-top:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1024px){.stzh-dialog__dialog-content.sc-stzh-dialog{padding-bottom:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px){.stzh-dialog__dialog-content.sc-stzh-dialog{padding-bottom:var(--stzh-space-xxxlarge)}}.stzh-dialog__actions.sc-stzh-dialog{padding:var(--padding);padding-top:0}.stzh-dialog__close-button.sc-stzh-dialog{position:absolute;top:var(--stzh-space-xsmall);right:var(--stzh-space-xsmall);display:-ms-flexbox;display:flex;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;border:none;background:none;padding:var(--stzh-space-xsmall);margin:calc(var(--stzh-space-xsmall) * -1);border-radius:var(--stzh-button-border-radius);cursor:pointer}@media screen and (min-width: 600px){.stzh-dialog__close-button.sc-stzh-dialog{top:var(--stzh-space-small);right:var(--stzh-space-small)}}@media screen and (min-width: 1024px){.stzh-dialog__close-button.sc-stzh-dialog{top:var(--stzh-space-large);right:var(--stzh-space-large)}}@media screen and (min-width: 1260px){.stzh-dialog__close-button.sc-stzh-dialog{top:calc(var(--stzh-space-xxlarge) + var(--stzh-space-xxsmall));right:calc(var(--stzh-space-xxlarge) + var(--stzh-space-xxsmall))}}.stzh-dialog__close-icon.sc-stzh-dialog{--size:var(--stzh-icon-size-medium);color:var(--close-color)}.stzh-dialog--is-open.sc-stzh-dialog{display:-ms-flexbox;display:flex}";var keyCode={ESC:27};var CLASS_BODY_OPEN="stzh-dialog-open";var activeDialog=null;var dialogCounter=0;var StzhDialog=function(){function t(t){var e=this;registerInstance(this,t);this.stzhOpen=createEvent(this,"stzhOpen",7);this.stzhClose=createEvent(this,"stzhClose",7);this.handleDialogClick=function(t){var i=t.target;if(i.dataset.stzhDialogClose){e.hide()}else{var a=i.closest("[data-stzh-dialog-close]");if(a){e.hide()}}};this.handleCloseButtonClick=function(){e.hide()};this.init=function(){var t=e.element.querySelector('stzh-actions[slot="actions"]');if(t){setPropsIfNull(t,{variant:"dialog",withBorder:true})}};this.localization=undefined;this.closeOnEscapeKey=false;this.closeOnBackdropClick=false;this.open=false;this.stay=true;this.size="default";this.hideClose=false;this.heading="";this.a11yRole="alertdialog";this.a11yLabel="";this.closeAnalyticsId=undefined}t.prototype.handleOutsideClick=function(t){if(!this.open||!this.closeOnBackdropClick){return}var e=t.target!==this.dialogElement&&this.dialogElement.contains(t.target)===false;if(e){this.hide()}};t.prototype.handleKeydown=function(t){if(t.keyCode===keyCode.ESC&&activeDialog===this&&this.closeOnEscapeKey){this.hide()}};t.prototype.handleOpenTriggerClick=function(t){var e=t.target;if(e.dataset.stzhDialogTrigger===this.element.id){this.show()}else{var i=e.closest("[data-stzh-dialog-trigger]");if(i&&i.dataset.stzhDialogTrigger===this.element.id){this.show()}}};t.prototype.show=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.open=true;this.stzhOpen.emit({component:"stzh-dialog"});return[2]}))}))};t.prototype.hide=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.open=false;this.stzhClose.emit({component:"stzh-dialog"});return[2]}))}))};t.prototype.getSiblings=function(){var t=this;if(!this.parentElement){return[]}return Array.from(this.parentElement.children).filter((function(e){return e!==t.element}))};t.prototype.disableSiblings=function(){this.getSiblings().forEach((function(t){t.setAttribute("aria-hidden","true")}))};t.prototype.enableSiblings=function(){this.getSiblings().forEach((function(t){t.removeAttribute("aria-hidden")}))};t.prototype.dialogShown=function(){activeDialog=this;document.body.classList.add(CLASS_BODY_OPEN);this.disableSiblings();if(this.trap){this.trap.activate()}};t.prototype.dialogHidden=function(){document.body.classList.remove(CLASS_BODY_OPEN);this.enableSiblings();if(this.trap){this.trap.deactivate()}activeDialog=null};t.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:this.id="stzh-dialog-".concat(dialogCounter);dialogCounter++;if(!!this.localization)return[3,2];t=this;return[4,fetchTranslations(this.element,"dialog")];case 1:t.localization=e.sent();e.label=2;case 2:return[2]}}))}))};t.prototype.componentDidRender=function(){this.open?this.dialogShown():this.dialogHidden()};t.prototype.componentDidUpdate=function(){this.trap.updateContainerElements(this.element)};t.prototype.componentDidLoad=function(){this.trap=createFocusTrap(this.element,Object.assign({fallbackFocus:this.dialogElement},createBaseFocusTrapOptions()));if(this.open){this.dialogShown()}};t.prototype.connectedCallback=function(){if(!this.stay&&this.element.parentElement!==document.body){document.body.appendChild(this.element)}this.parentElement=this.element.parentElement;this.init();this.observer=new MutationObserver(this.init);this.observer.observe(this.element,{childList:true,subtree:true})};t.prototype.disconnectedCallback=function(){this.dialogHidden();if(this.observer){this.observer.disconnect()}};t.prototype.render=function(){var t;var e=this;return h(Host,null,h("div",{class:(t={"stzh-dialog":true,"stzh-dialog--is-open":this.open,"stzh-dialog--has-heading":!!this.heading,"stzh-dialog--has-close-hidden":this.hideClose},t["stzh-dialog--size-".concat(this.size)]=!!this.size,t)},h("div",{class:"stzh-dialog__backdrop"}),h("div",{class:"stzh-dialog__content"},h("div",{class:"stzh-dialog__dialog",ref:function(t){return e.dialogElement=t},tabindex:"-1",role:this.a11yRole,"aria-label":this.a11yLabel||null,"aria-labelledby":this.heading?"".concat(this.id,"-heading"):null,"aria-hidden":this.open?"false":"true",onClick:this.handleDialogClick},this.heading&&h("stzh-heading",{id:"".concat(this.id,"-heading"),class:"stzh-dialog__heading",level:"2","with-border":true},this.heading),h("div",{class:"stzh-dialog__dialog-content"},h("slot",null)),h("div",{class:"stzh-dialog__actions"},h("slot",{name:"actions"})),!this.hideClose&&h("button",{class:"stzh-dialog__close-button",onClick:this.handleCloseButtonClick,"aria-label":this.localization.close,type:"button","s-object-id":this.closeAnalyticsId||this.localization.close},h("stzh-icon",{class:"stzh-dialog__close-icon",name:"close"}))))))};Object.defineProperty(t.prototype,"element",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();StzhDialog.style=stzhDialogCss;export{StzhDialog as stzh_dialog};
2
2
  //# sourceMappingURL=stzh-dialog.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["stzhDialogCss","keyCode","ESC","CLASS_BODY_OPEN","activeDialog","dialogCounter","StzhDialog","this","handleDialogClick","event","target","dataset","stzhDialogClose","_this","hide","closest","handleCloseButtonClick","init","actions","element","querySelector","setPropsIfNull","variant","withBorder","class_1","prototype","handleOutsideClick","open","closeOnBackdropClick","isClickOutside","dialogElement","contains","handleKeydown","closeOnEscapeKey","handleOpenTriggerClick","stzhDialogTrigger","id","show","stzhOpen","emit","component","stzhClose","getSiblings","parentElement","Array","from","children","filter","child","disableSiblings","forEach","sibling","setAttribute","enableSiblings","removeAttribute","dialogShown","document","body","classList","add","trap","activate","dialogHidden","remove","deactivate","componentWillLoad","concat","localization","_a","fetchTranslations","_b","sent","componentDidRender","componentDidUpdate","updateContainerElements","componentDidLoad","createFocusTrap","Object","assign","fallbackFocus","createBaseFocusTrapOptions","connectedCallback","stay","appendChild","observer","MutationObserver","observe","childList","subtree","disconnectedCallback","disconnect","render","h","Host","class","heading","hideClose","size","ref","el","tabindex","role","a11yRole","a11yLabel","onClick","level","name","close","type","closeAnalyticsId"],"sources":["src/components/stzh-dialog/stzh-dialog.scss?tag=stzh-dialog&encapsulation=scoped","src/components/stzh-dialog/stzh-dialog.tsx"],"sourcesContent":[":host {\n --width: 100%;\n --padding: #{spaceCurveValue('large')};\n --close-color: #{$baseLeadColor};\n --backdrop-opacity: 0.8;\n\n @include mq($from: small) {\n --width: 536px;\n --padding: #{spaceCurveValue('large', 'small')};\n }\n\n @include mq($from: medium) {\n --width: 782px;\n --padding: #{spaceCurveValue('large', 'medium')};\n }\n\n @include mq($from: large) {\n --width: 832px;\n --padding: #{spaceCurveValue('large', 'large')};\n }\n\n &[size=\"small\"] {\n @include mq($from: small) {\n --width: 395px;\n }\n\n @include mq($from: medium) {\n --width: 460px;\n }\n\n @include mq($from: large) {\n --width: 512px;\n }\n }\n}\n\n.stzh-dialog {\n z-index: $zIndexDialog;\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: stretch;\n justify-content: stretch;\n\n &__content {\n z-index: 2;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n overflow: auto;\n }\n\n &__dialog {\n position: relative;\n display: flex;\n flex-direction: column;\n margin: auto;\n border: none;\n background-color: $colorWhite;\n width: var(--width);\n max-width: 100%;\n box-shadow: $boxShadowOverlay;\n height: 100vh;\n max-height: 100vh;\n // overflow: visible;\n overflow: hidden;\n outline: none;\n\n @include mq($from: small) {\n height: auto;\n }\n }\n\n &__backdrop {\n z-index: 1;\n\t\tposition: absolute;\n\t\ttop: 0px;\n\t\tleft: 0px;\n\t\twidth: 100%;\n height: 100%;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\ttext-align: center;\n background-color: $colorPrimary;\n opacity: var(--backdrop-opacity);\n }\n\n &__heading {\n padding: var(--padding);\n padding-bottom: 0;\n }\n\n &__dialog-content {\n padding: var(--padding);\n @include spaceCurve('padding-top', 'medium');\n @include spaceCurve('padding-bottom', 'medium');\n overflow: auto;\n flex-grow: 1;\n }\n\n &__actions {\n padding: var(--padding);\n padding-top: 0;\n }\n\n &__close-button {\n position: absolute;\n top: space('xsmall');\n right: space('xsmall');\n display: flex;\n appearance: none;\n font-family: inherit;\n border: none;\n background: none;\n padding: space('xsmall');\n margin: calc(#{space('xsmall')} * -1);\n border-radius: $buttonBorderRadius;\n cursor: pointer;\n\n @include mq($from: small) {\n top: space('small');\n right: space('small');\n }\n\n @include mq($from: medium) {\n top: space('large');\n right: space('large');\n }\n\n @include mq($from: large) {\n top: calc(#{space('xxlarge')} + #{space('xxsmall')});\n right: calc(#{space('xxlarge')} + #{space('xxsmall')});\n }\n }\n\n &__close-icon {\n --size: #{iconSize('medium')};\n color: var(--close-color);\n }\n\n &--is-open {\n display: flex;\n }\n}\n","import {\n Host,\n Component,\n Element,\n Method,\n Listen,\n Prop,\n Event,\n EventEmitter,\n h,\n} from \"@stencil/core\";\n\nimport {\n StzhDialogOpenEvent,\n StzhDialogCloseEvent\n} from \"../../index\";\n\nimport { setPropsIfNull } from \"../../utils/utils\";\nimport { fetchTranslations } from \"../../utils/translation-utils\";\nimport { createBaseFocusTrapOptions } from \"../../utils/overlay-utils\";\n\nimport { StzhDialogLocalizedText } from \"./stzh-dialog.localization\"\n\nimport { createFocusTrap, FocusTrap } from 'focus-trap';\n\nconst keyCode = {\n ESC: 27\n};\n\nconst CLASS_BODY_OPEN = \"stzh-dialog-open\";\n\nlet activeDialog: StzhDialog = null;\nlet dialogCounter = 0;\n\n/**\n * @slot - Slot for any content inside the dialog\n * @prop --width: Width of dialog\n */\n@Component({\n tag: \"stzh-dialog\",\n styleUrl: \"stzh-dialog.scss\",\n scoped: true\n})\nexport class StzhDialog {\n /** Translation strings */\n @Prop() localization: StzhDialogLocalizedText;\n\n /** Close dialog when pressing ESC */\n @Prop() closeOnEscapeKey: boolean = false;\n\n /** Close dialog when clicking outside of it */\n @Prop() closeOnBackdropClick: boolean = false;\n\n /** Open status */\n @Prop({ mutable: true }) open: boolean = false;\n\n /** Stay in original position (true) or move to body (false) */\n @Prop() stay: boolean = true;\n\n /** Size */\n @Prop({ reflect: true }) size: \"default\" | \"small\" = \"default\";\n\n /** Whether to hide close button */\n @Prop() hideClose: boolean = false;\n\n /** Heading text */\n @Prop() heading: string = \"\";\n\n /** Accessibility role */\n @Prop({ attribute: \"a11y-role\" }) a11yRole: \"dialog\" | \"alertdialog\" = \"alertdialog\";\n\n /** Accessible label for dialog (use if no heading is used) */\n @Prop({ attribute: \"a11y-label\" }) a11yLabel: string = \"\";\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the close button element.\n * Default value will be taken from translations.\n */\n @Prop() closeAnalyticsId: string;\n\n /** Dialog open event */\n @Event() stzhOpen: EventEmitter<StzhDialogOpenEvent>;\n\n /** Dialog close event */\n @Event() stzhClose: EventEmitter<StzhDialogCloseEvent>;\n\n @Element() element: HTMLStzhDialogElement;\n\n @Listen(\"click\", { target: \"document\", capture: true })\n handleOutsideClick(event: MouseEvent) {\n if (!this.open || !this.closeOnBackdropClick) {\n return\n }\n\n const isClickOutside = event.target !== this.dialogElement\n && this.dialogElement.contains(event.target as HTMLElement) === false\n\n if (isClickOutside) {\n this.hide()\n }\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeydown(event: KeyboardEvent) {\n if (\n event.keyCode === keyCode.ESC\n && activeDialog === this\n && this.closeOnEscapeKey\n ) {\n this.hide();\n }\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleOpenTriggerClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n\n if (target.dataset.stzhDialogTrigger === this.element.id) {\n this.show();\n } else {\n const closest = target.closest(\"[data-stzh-dialog-trigger]\") as HTMLElement;\n\n if (closest && closest.dataset.stzhDialogTrigger === this.element.id) {\n this.show();\n }\n }\n }\n\n @Method()\n async show() {\n this.open = true;\n this.stzhOpen.emit({\n component: \"stzh-dialog\"\n });\n }\n\n @Method()\n async hide() {\n this.open = false;\n this.stzhClose.emit({\n component: \"stzh-dialog\"\n });\n }\n\n private observer: MutationObserver;\n private id: string;\n private trap: FocusTrap;\n private parentElement: HTMLElement;\n private dialogElement: HTMLDivElement;\n\n private handleDialogClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n if (target.dataset.stzhDialogClose) {\n this.hide();\n } else {\n const closest = target.closest(\"[data-stzh-dialog-close]\");\n\n if (closest) {\n this.hide();\n }\n }\n }\n\n private handleCloseButtonClick = () => {\n this.hide();\n }\n\n private init = () => {\n const actions = this.element.querySelector('stzh-actions[slot=\"actions\"]');\n\n if (actions) {\n setPropsIfNull(actions, {\n variant: \"dialog\",\n withBorder: true\n } as HTMLStzhActionsElement)\n }\n }\n\n private getSiblings() {\n if (!this.parentElement) {\n return [];\n }\n\n return Array.from(this.parentElement.children).filter(\n (child) => child !== this.element\n );\n }\n\n private disableSiblings() {\n this.getSiblings().forEach((sibling) => {\n sibling.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n private enableSiblings() {\n this.getSiblings().forEach((sibling) => {\n sibling.removeAttribute(\"aria-hidden\");\n });\n }\n\n private dialogShown() {\n activeDialog = this;\n document.body.classList.add(CLASS_BODY_OPEN);\n this.disableSiblings();\n\n if (this.trap) {\n this.trap.activate();\n }\n }\n\n private dialogHidden() {\n document.body.classList.remove(CLASS_BODY_OPEN);\n this.enableSiblings();\n\n if (this.trap) {\n this.trap.deactivate();\n }\n\n activeDialog = null;\n }\n\n async componentWillLoad() {\n this.id = `stzh-dialog-${dialogCounter}`;\n dialogCounter++;\n\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, \"dialog\");\n }\n }\n\n componentDidRender() {\n this.open ? this.dialogShown() : this.dialogHidden();\n }\n\n componentDidUpdate() {\n this.trap.updateContainerElements(this.element);\n }\n\n componentDidLoad() {\n this.trap = createFocusTrap(this.element, {\n fallbackFocus: this.dialogElement,\n ...createBaseFocusTrapOptions()\n });\n\n if (this.open) {\n this.dialogShown();\n }\n }\n\n connectedCallback() {\n if (!this.stay && this.element.parentElement !== document.body) {\n document.body.appendChild(this.element);\n }\n\n this.parentElement = this.element.parentElement;\n\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 this.dialogHidden();\n\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n \"stzh-dialog\": true,\n \"stzh-dialog--is-open\": this.open,\n \"stzh-dialog--has-heading\": !!this.heading,\n \"stzh-dialog--has-close-hidden\": this.hideClose,\n [`stzh-dialog--size-${this.size}`]: !!this.size,\n }}\n >\n <div class=\"stzh-dialog__backdrop\"></div>\n <div class=\"stzh-dialog__content\">\n <div\n class=\"stzh-dialog__dialog\"\n ref={(el) => (this.dialogElement = el as HTMLDivElement)}\n tabindex=\"-1\"\n role={this.a11yRole}\n aria-label={this.a11yLabel}\n aria-labelledby={this.heading ? `${this.id}-heading` : null}\n aria-hidden={this.open ? \"false\" : \"true\"}\n onClick={this.handleDialogClick}\n >\n {this.heading &&\n <stzh-heading\n id={`${this.id}-heading`}\n class=\"stzh-dialog__heading\"\n level=\"2\"\n with-border\n >\n {this.heading}\n </stzh-heading>\n }\n\n <div class=\"stzh-dialog__dialog-content\">\n <slot></slot>\n </div>\n\n <div class=\"stzh-dialog__actions\">\n <slot name=\"actions\"></slot>\n </div>\n\n {!this.hideClose &&\n <button\n class=\"stzh-dialog__close-button\"\n onClick={this.handleCloseButtonClick}\n aria-label={this.localization.close}\n type=\"button\"\n s-object-id={this.closeAnalyticsId || this.localization.close}\n >\n <stzh-icon class=\"stzh-dialog__close-icon\" name=\"close\"></stzh-icon>\n </button>\n }\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n\n"],"mappings":"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"}
1
+ {"version":3,"names":["stzhDialogCss","keyCode","ESC","CLASS_BODY_OPEN","activeDialog","dialogCounter","StzhDialog","this","handleDialogClick","event","target","dataset","stzhDialogClose","_this","hide","closest","handleCloseButtonClick","init","actions","element","querySelector","setPropsIfNull","variant","withBorder","class_1","prototype","handleOutsideClick","open","closeOnBackdropClick","isClickOutside","dialogElement","contains","handleKeydown","closeOnEscapeKey","handleOpenTriggerClick","stzhDialogTrigger","id","show","stzhOpen","emit","component","stzhClose","getSiblings","parentElement","Array","from","children","filter","child","disableSiblings","forEach","sibling","setAttribute","enableSiblings","removeAttribute","dialogShown","document","body","classList","add","trap","activate","dialogHidden","remove","deactivate","componentWillLoad","concat","localization","_a","fetchTranslations","_b","sent","componentDidRender","componentDidUpdate","updateContainerElements","componentDidLoad","createFocusTrap","Object","assign","fallbackFocus","createBaseFocusTrapOptions","connectedCallback","stay","appendChild","observer","MutationObserver","observe","childList","subtree","disconnectedCallback","disconnect","render","h","Host","class","heading","hideClose","size","ref","el","tabindex","role","a11yRole","a11yLabel","onClick","level","name","close","type","closeAnalyticsId"],"sources":["src/components/stzh-dialog/stzh-dialog.scss?tag=stzh-dialog&encapsulation=scoped","src/components/stzh-dialog/stzh-dialog.tsx"],"sourcesContent":[":host {\n --width: 100%;\n --padding: #{spaceCurveValue('large')};\n --close-color: #{$baseLeadColor};\n --backdrop-opacity: 0.8;\n\n @include mq($from: small) {\n --width: 536px;\n --padding: #{spaceCurveValue('large', 'small')};\n }\n\n @include mq($from: medium) {\n --width: 782px;\n --padding: #{spaceCurveValue('large', 'medium')};\n }\n\n @include mq($from: large) {\n --width: 832px;\n --padding: #{spaceCurveValue('large', 'large')};\n }\n\n &[size=\"small\"] {\n @include mq($from: small) {\n --width: 395px;\n }\n\n @include mq($from: medium) {\n --width: 460px;\n }\n\n @include mq($from: large) {\n --width: 512px;\n }\n }\n}\n\n.stzh-dialog {\n z-index: $zIndexDialog;\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: stretch;\n justify-content: stretch;\n\n &__content {\n z-index: 2;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n overflow: auto;\n }\n\n &__dialog {\n position: relative;\n display: flex;\n flex-direction: column;\n margin: auto;\n border: none;\n background-color: $colorWhite;\n width: var(--width);\n max-width: 100%;\n box-shadow: $boxShadowOverlay;\n height: 100vh;\n max-height: 100vh;\n // overflow: visible;\n overflow: hidden;\n outline: none;\n\n @include mq($from: small) {\n height: auto;\n }\n }\n\n &__backdrop {\n z-index: 1;\n\t\tposition: absolute;\n\t\ttop: 0px;\n\t\tleft: 0px;\n\t\twidth: 100%;\n height: 100%;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\ttext-align: center;\n background-color: $colorPrimary;\n opacity: var(--backdrop-opacity);\n }\n\n &__heading {\n padding: var(--padding);\n padding-bottom: 0;\n }\n\n &__dialog-content {\n padding: var(--padding);\n @include spaceCurve('padding-top', 'medium');\n @include spaceCurve('padding-bottom', 'medium');\n overflow: auto;\n flex-grow: 1;\n }\n\n &__actions {\n padding: var(--padding);\n padding-top: 0;\n }\n\n &__close-button {\n position: absolute;\n top: space('xsmall');\n right: space('xsmall');\n display: flex;\n appearance: none;\n font-family: inherit;\n border: none;\n background: none;\n padding: space('xsmall');\n margin: calc(#{space('xsmall')} * -1);\n border-radius: $buttonBorderRadius;\n cursor: pointer;\n\n @include mq($from: small) {\n top: space('small');\n right: space('small');\n }\n\n @include mq($from: medium) {\n top: space('large');\n right: space('large');\n }\n\n @include mq($from: large) {\n top: calc(#{space('xxlarge')} + #{space('xxsmall')});\n right: calc(#{space('xxlarge')} + #{space('xxsmall')});\n }\n }\n\n &__close-icon {\n --size: #{iconSize('medium')};\n color: var(--close-color);\n }\n\n &--is-open {\n display: flex;\n }\n}\n","import {\n Host,\n Component,\n Element,\n Method,\n Listen,\n Prop,\n Event,\n EventEmitter,\n h,\n} from \"@stencil/core\";\n\nimport {\n StzhDialogOpenEvent,\n StzhDialogCloseEvent\n} from \"../../index\";\n\nimport { setPropsIfNull } from \"../../utils/utils\";\nimport { fetchTranslations } from \"../../utils/translation-utils\";\nimport { createBaseFocusTrapOptions } from \"../../utils/overlay-utils\";\n\nimport { StzhDialogLocalizedText } from \"./stzh-dialog.localization\"\n\nimport { createFocusTrap, FocusTrap } from 'focus-trap';\n\nconst keyCode = {\n ESC: 27\n};\n\nconst CLASS_BODY_OPEN = \"stzh-dialog-open\";\n\nlet activeDialog: StzhDialog = null;\nlet dialogCounter = 0;\n\n/**\n * @slot - Slot for any content inside the dialog\n * @prop --width: Width of dialog\n */\n@Component({\n tag: \"stzh-dialog\",\n styleUrl: \"stzh-dialog.scss\",\n scoped: true\n})\nexport class StzhDialog {\n /** Translation strings */\n @Prop() localization: StzhDialogLocalizedText;\n\n /** Close dialog when pressing ESC */\n @Prop() closeOnEscapeKey: boolean = false;\n\n /** Close dialog when clicking outside of it */\n @Prop() closeOnBackdropClick: boolean = false;\n\n /** Open status */\n @Prop({ mutable: true }) open: boolean = false;\n\n /** Stay in original position (true) or move to body (false) */\n @Prop() stay: boolean = true;\n\n /** Size */\n @Prop({ reflect: true }) size: \"default\" | \"small\" = \"default\";\n\n /** Whether to hide close button */\n @Prop() hideClose: boolean = false;\n\n /** Heading text */\n @Prop() heading: string = \"\";\n\n /** Accessibility role */\n @Prop({ attribute: \"a11y-role\" }) a11yRole: \"dialog\" | \"alertdialog\" = \"alertdialog\";\n\n /** Accessible label for dialog (use if no heading is used) */\n @Prop({ attribute: \"a11y-label\" }) a11yLabel: string = \"\";\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the close button element.\n * Default value will be taken from translations.\n */\n @Prop() closeAnalyticsId: string;\n\n /** Dialog open event */\n @Event() stzhOpen: EventEmitter<StzhDialogOpenEvent>;\n\n /** Dialog close event */\n @Event() stzhClose: EventEmitter<StzhDialogCloseEvent>;\n\n @Element() element: HTMLStzhDialogElement;\n\n @Listen(\"click\", { target: \"document\", capture: true })\n handleOutsideClick(event: MouseEvent) {\n if (!this.open || !this.closeOnBackdropClick) {\n return\n }\n\n const isClickOutside = event.target !== this.dialogElement\n && this.dialogElement.contains(event.target as HTMLElement) === false\n\n if (isClickOutside) {\n this.hide()\n }\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeydown(event: KeyboardEvent) {\n if (\n event.keyCode === keyCode.ESC\n && activeDialog === this\n && this.closeOnEscapeKey\n ) {\n this.hide();\n }\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleOpenTriggerClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n\n if (target.dataset.stzhDialogTrigger === this.element.id) {\n this.show();\n } else {\n const closest = target.closest(\"[data-stzh-dialog-trigger]\") as HTMLElement;\n\n if (closest && closest.dataset.stzhDialogTrigger === this.element.id) {\n this.show();\n }\n }\n }\n\n @Method()\n async show() {\n this.open = true;\n this.stzhOpen.emit({\n component: \"stzh-dialog\"\n });\n }\n\n @Method()\n async hide() {\n this.open = false;\n this.stzhClose.emit({\n component: \"stzh-dialog\"\n });\n }\n\n private observer: MutationObserver;\n private id: string;\n private trap: FocusTrap;\n private parentElement: HTMLElement;\n private dialogElement: HTMLDivElement;\n\n private handleDialogClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n if (target.dataset.stzhDialogClose) {\n this.hide();\n } else {\n const closest = target.closest(\"[data-stzh-dialog-close]\");\n\n if (closest) {\n this.hide();\n }\n }\n }\n\n private handleCloseButtonClick = () => {\n this.hide();\n }\n\n private init = () => {\n const actions = this.element.querySelector('stzh-actions[slot=\"actions\"]');\n\n if (actions) {\n setPropsIfNull(actions, {\n variant: \"dialog\",\n withBorder: true\n } as HTMLStzhActionsElement)\n }\n }\n\n private getSiblings() {\n if (!this.parentElement) {\n return [];\n }\n\n return Array.from(this.parentElement.children).filter(\n (child) => child !== this.element\n );\n }\n\n private disableSiblings() {\n this.getSiblings().forEach((sibling) => {\n sibling.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n private enableSiblings() {\n this.getSiblings().forEach((sibling) => {\n sibling.removeAttribute(\"aria-hidden\");\n });\n }\n\n private dialogShown() {\n activeDialog = this;\n document.body.classList.add(CLASS_BODY_OPEN);\n this.disableSiblings();\n\n if (this.trap) {\n this.trap.activate();\n }\n }\n\n private dialogHidden() {\n document.body.classList.remove(CLASS_BODY_OPEN);\n this.enableSiblings();\n\n if (this.trap) {\n this.trap.deactivate();\n }\n\n activeDialog = null;\n }\n\n async componentWillLoad() {\n this.id = `stzh-dialog-${dialogCounter}`;\n dialogCounter++;\n\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, \"dialog\");\n }\n }\n\n componentDidRender() {\n this.open ? this.dialogShown() : this.dialogHidden();\n }\n\n componentDidUpdate() {\n this.trap.updateContainerElements(this.element);\n }\n\n componentDidLoad() {\n this.trap = createFocusTrap(this.element, {\n fallbackFocus: this.dialogElement,\n ...createBaseFocusTrapOptions()\n });\n\n if (this.open) {\n this.dialogShown();\n }\n }\n\n connectedCallback() {\n if (!this.stay && this.element.parentElement !== document.body) {\n document.body.appendChild(this.element);\n }\n\n this.parentElement = this.element.parentElement;\n\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 this.dialogHidden();\n\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n \"stzh-dialog\": true,\n \"stzh-dialog--is-open\": this.open,\n \"stzh-dialog--has-heading\": !!this.heading,\n \"stzh-dialog--has-close-hidden\": this.hideClose,\n [`stzh-dialog--size-${this.size}`]: !!this.size,\n }}\n >\n <div class=\"stzh-dialog__backdrop\"></div>\n <div class=\"stzh-dialog__content\">\n <div\n class=\"stzh-dialog__dialog\"\n ref={(el) => (this.dialogElement = el as HTMLDivElement)}\n tabindex=\"-1\"\n role={this.a11yRole}\n aria-label={this.a11yLabel || null}\n aria-labelledby={this.heading ? `${this.id}-heading` : null}\n aria-hidden={this.open ? \"false\" : \"true\"}\n onClick={this.handleDialogClick}\n >\n {this.heading &&\n <stzh-heading\n id={`${this.id}-heading`}\n class=\"stzh-dialog__heading\"\n level=\"2\"\n with-border\n >\n {this.heading}\n </stzh-heading>\n }\n\n <div class=\"stzh-dialog__dialog-content\">\n <slot></slot>\n </div>\n\n <div class=\"stzh-dialog__actions\">\n <slot name=\"actions\"></slot>\n </div>\n\n {!this.hideClose &&\n <button\n class=\"stzh-dialog__close-button\"\n onClick={this.handleCloseButtonClick}\n aria-label={this.localization.close}\n type=\"button\"\n s-object-id={this.closeAnalyticsId || this.localization.close}\n >\n <stzh-icon class=\"stzh-dialog__close-icon\" name=\"close\"></stzh-icon>\n </button>\n }\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(t,i,e,n){function s(t){return t instanceof e?t:new e((function(i){i(t)}))}return new(e||(e=Promise))((function(e,l){function a(t){try{r(n.next(t))}catch(t){l(t)}}function o(t){try{r(n["throw"](t))}catch(t){l(t)}}function r(t){t.done?e(t.value):s(t.value).then(a,o)}r((n=n.apply(t,i||[])).next())}))};var __generator=this&&this.__generator||function(t,i){var e={label:0,sent:function(){if(l[0]&1)throw l[1];return l[1]},trys:[],ops:[]},n,s,l,a;return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(t){return function(i){return r([t,i])}}function r(o){if(n)throw new TypeError("Generator is already executing.");while(a&&(a=0,o[0]&&(e=0)),e)try{if(n=1,s&&(l=o[0]&2?s["return"]:o[0]?s["throw"]||((l=s["return"])&&l.call(s),0):s.next)&&!(l=l.call(s,o[1])).done)return l;if(s=0,l)o=[o[0]&2,l.value];switch(o[0]){case 0:case 1:l=o;break;case 4:e.label++;return{value:o[1],done:false};case 5:e.label++;s=o[1];o=[0];continue;case 7:o=e.ops.pop();e.trys.pop();continue;default:if(!(l=e.trys,l=l.length>0&&l[l.length-1])&&(o[0]===6||o[0]===2)){e=0;continue}if(o[0]===3&&(!l||o[1]>l[0]&&o[1]<l[3])){e.label=o[1];break}if(o[0]===6&&e.label<l[1]){e.label=l[1];l=o;break}if(l&&e.label<l[2]){e.label=l[2];e.ops.push(o);break}if(l[2])e.ops.pop();e.trys.pop();continue}o=i.call(t,e)}catch(t){o=[6,t];s=0}finally{n=l=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,F as Fragment,a as Host,g as getElement}from"./index-67fd55c9.js";import{h as hasSlot}from"./utils-8f264f12.js";import{f as fetchTranslations}from"./translation-utils-2623783f.js";var stzhLinkCss='@charset "UTF-8";.sc-stzh-link-h{font-family:var(--stzh-font-family-regular);font-weight:var(--stzh-font-weight-regular);font-style:normal;color:var(--stzh-base-color);-webkit-box-sizing:border-box;box-sizing:border-box;display:block}[hidden].sc-stzh-link-h{display:none}.sc-stzh-link-h *.sc-stzh-link,.sc-stzh-link-h *.sc-stzh-link::before,.sc-stzh-link-h *.sc-stzh-link::after{-webkit-box-sizing:border-box;box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness)}.sc-stzh-link-h{--color:var(--stzh-link-color);--text-decoration-line:underline;--icon-size:var(--stzh-icon-size-medium);--icon-wrapper-height:var(--stzh-link-icon-wrapper-height);--hover-color:var(--stzh-link-hover-color);--hover-text-decoration-line:underline;color:var(--color);display:inline-block}.sc-stzh-link-h .sc-stzh-link-s>stzh-text{--color:initial}[fullwidth].sc-stzh-link-h:not([fullwidth=false]){width:100%;display:block}[size=small].sc-stzh-link-h{--icon-size:var(--stzh-icon-size-small)}[variant=secondary].sc-stzh-link-h{--color:var(--stzh-base-color)}[active].sc-stzh-link-h:not([active=false]){--color:var(--hover-color)}[disabled].sc-stzh-link-h:not([disabled=false]){--color:var(--stzh-color-grey25);--hover-color:var(--stzh-color-grey25)}.sc-stzh-link-h .sc-stzh-link-s>stzh-icon,.stzh-link__icon.sc-stzh-link{--size:var(--icon-size)}.stzh-link.sc-stzh-link{font-size:var(--stzh-font-curve-p1-default-font-size, var(--stzh-font-milli-font-size));line-height:var(--stzh-font-curve-p1-default-text-line-height, var(--stzh-font-milli-text-line-height));letter-spacing:var(--stzh-font-curve-p1-default-text-letter-spacing);font-family:inherit;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:stretch;justify-content:stretch;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;color:var(--color);-webkit-transition:color var(--stzh-base-transition-animation-speed);transition:color var(--stzh-base-transition-animation-speed);cursor:pointer;width:100%;-webkit-text-decoration-line:none;text-decoration-line:none;background-color:transparent;padding:0;border-radius:var(--stzh-button-border-radius);text-align:left}@media screen and (min-width: 1024px){.stzh-link.sc-stzh-link{font-size:var(--stzh-font-curve-p1-medium-font-size, var(--stzh-font-centi-font-size));line-height:var(--stzh-font-curve-p1-medium-text-line-height, var(--stzh-font-centi-text-line-height));letter-spacing:var(--stzh-font-curve-p1-medium-text-letter-spacing)}}.stzh-link.sc-stzh-link:hover{color:var(--hover-color)}.stzh-link.sc-stzh-link:hover .stzh-link__text.sc-stzh-link{-webkit-text-decoration-line:var(--hover-text-decoration-line);text-decoration-line:var(--hover-text-decoration-line)}.stzh-link__vhidden.sc-stzh-link{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-link__inner.sc-stzh-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-positive:1;flex-grow:1}.stzh-link__icon-wrapper.sc-stzh-link{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0;width:auto;height:var(--icon-wrapper-height)}.stzh-link__text.sc-stzh-link{-webkit-text-decoration-line:var(--text-decoration-line);text-decoration-line:var(--text-decoration-line)}.stzh-link__icon-wrapper.sc-stzh-link:not(:empty)+.stzh-link__text.sc-stzh-link:not(:empty),.stzh-link__text.sc-stzh-link:not(:empty)+.stzh-link__icon-wrapper.sc-stzh-link:not(:empty){margin-left:var(--stzh-space-xxsmall)}.stzh-link__badge.sc-stzh-link{position:absolute;z-index:1;top:0;right:0}.stzh-link--has-icon-only.sc-stzh-link .stzh-link__text.sc-stzh-link{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-link--badge-position-link.sc-stzh-link .stzh-link__icon-wrapper.sc-stzh-link{position:static}.stzh-link__badge.sc-stzh-link,.stzh-link--badge-position-link.sc-stzh-link .stzh-link__badge.sc-stzh-link{top:calc(var(--stzh-space-xxsmall) * -1);right:calc(var(--stzh-space-large) * -1)}.stzh-link--badge-position-icon.stzh-link--has-icon.sc-stzh-link .stzh-link__icon-wrapper.sc-stzh-link{position:relative}.stzh-link--badge-position-icon.stzh-link--has-icon.sc-stzh-link .stzh-link__badge.sc-stzh-link{top:calc(var(--stzh-space-xsmall) * -1);right:calc(var(--stzh-space-small) * -1)}.stzh-link--badge-position-icon.stzh-link--has-icon.stzh-link--has-badge.sc-stzh-link .stzh-link__icon-wrapper.sc-stzh-link+.stzh-link__text.sc-stzh-link:not(:empty){margin-left:var(--stzh-space-small)}.stzh-link--size-small.sc-stzh-link{font-size:var(--stzh-font-micro-font-size);line-height:var(--stzh-font-micro-text-line-height)}.stzh-link--size-inherit.sc-stzh-link{font-size:inherit;line-height:inherit;letter-spacing:inherit}.stzh-link--align-left.sc-stzh-link .stzh-link__inner.sc-stzh-link{-ms-flex-pack:start;justify-content:flex-start}.stzh-link--align-right.sc-stzh-link .stzh-link__inner.sc-stzh-link{-ms-flex-pack:end;justify-content:flex-end}.stzh-link--align-center.sc-stzh-link .stzh-link__inner.sc-stzh-link{-ms-flex-pack:center;justify-content:center}.stzh-link--align-space-between.sc-stzh-link .stzh-link__inner.sc-stzh-link{-ms-flex-pack:justify;justify-content:space-between}.stzh-link--is-disabled.sc-stzh-link{cursor:not-allowed}';var StzhLink=function(){function t(t){var i=this;registerInstance(this,t);this.stzhFocus=createEvent(this,"stzhFocus",7);this.stzhBlur=createEvent(this,"stzhBlur",7);this.focusedByInput=false;this.onRootFocus=function(){if(!i.focusedByInput){i.setFocus()}i.focusedByInput=false};this.onFocus=function(t){i.focusedByInput=true;var e=new FocusEvent("focus",{view:window,bubbles:false,cancelable:false});i.element.dispatchEvent(e);i.stzhFocus.emit({component:"stzh-link",originalEvent:t})};this.onBlur=function(t){var e=new FocusEvent("blur",{view:window,bubbles:false,cancelable:false});i.element.dispatchEvent(e);i.stzhBlur.emit({component:"stzh-link",originalEvent:t})};this.localization=undefined;this.icon="";this.iconPosition="left";this.size="default";this.href="";this.rel=undefined;this.target="";this.download=undefined;this.type="button";this.variant="default";this.fullwidth=false;this.textAlign="default";this.badge="";this.badgeType="default";this.badgeEmpty=false;this.badgePosition="icon";this.disabled=false;this.active=false;this.iconOnly=false;this.label="";this.linkAccesskey=undefined;this.a11yLabel=undefined;this.a11yDescribedby="";this.a11yExpanded=undefined;this.a11yDisabled=undefined;this.a11yControls=undefined;this.a11yTabindex=undefined;this.analyticsId=undefined}t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.link.focus();return[2]}))}))};t.prototype.renderIcon=function(){return h("div",{class:"stzh-link__icon-wrapper"},this.icon?h("stzh-icon",{class:"stzh-link__icon",name:this.icon}):h("slot",{name:"icon"}),(this.badge||this.badgeEmpty)&&h("stzh-badge",{class:"stzh-link__badge",label:this.badge,type:this.badgeType}))};t.prototype.renderContent=function(){var t=this;return h("div",{class:"stzh-link__text"},this.rel&&this.rel.includes("external")&&h("div",{class:"stzh-link__vhidden"},this.localization.$globals.externalLinkLabel),this.download&&h("div",{class:"stzh-link__vhidden"},this.localization.$globals.downloadLinkLabel),h("div",{ref:function(i){return t.text=i}},this.label?this.label:h("slot",null)))};t.prototype.renderInner=function(t){return h(Fragment,null,h("div",{class:"stzh-link__inner"},this.iconPosition==="left"&&this.renderIcon(),this.renderContent(),this.iconPosition==="right"&&this.renderIcon()),(this.badge||this.badgeEmpty)&&!t&&h("stzh-badge",{class:"stzh-link__badge",label:this.badge,type:this.badgeType}))};t.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(i){switch(i.label){case 0:if(!!this.localization)return[3,2];t=this;return[4,fetchTranslations(this.element,"link")];case 1:t.localization=i.sent();i.label=2;case 2:return[2]}}))}))};t.prototype.componentDidRender=function(){var t=this;requestAnimationFrame((function(){t.link.setAttribute("s-object-id",t.analyticsId||t.text.innerText)}))};t.prototype.render=function(){var t;var i=this;var e=hasSlot(this.element,"icon")||!!this.icon;var n=(t={"stzh-link":true,"stzh-link--has-icon":e,"stzh-link--has-icon-only":this.iconOnly,"stzh-link--has-badge":!!this.badge,"stzh-link--is-fullwidth":this.fullwidth,"stzh-link--is-disabled":this.disabled,"stzh-link--is-active":this.active},t["stzh-link--badge-position-".concat(this.badgePosition)]=!!this.badgePosition,t["stzh-link--align-".concat(this.textAlign)]=!!this.textAlign,t["stzh-link--size-".concat(this.size)]=!!this.size,t["stzh-link--".concat(this.variant)]=!!this.variant,t);return h(Host,{tabindex:this.disabled?null:"-1",onFocus:this.onRootFocus},this.href?h("a",{ref:function(t){return i.link=t},href:this.disabled?null:this.href,download:this.download,rel:this.rel,target:this.target,class:n,accessKey:this.linkAccesskey,tabindex:this.a11yTabindex,"aria-label":this.a11yLabel,"aria-describedby":this.a11yDescribedby,"aria-disabled":typeof this.a11yDisabled!=="undefined"?this.a11yDisabled?"true":"false":null,"aria-expanded":typeof this.a11yExpanded!=="undefined"?this.a11yExpanded?"true":"false":null,"aria-controls":this.a11yControls,onFocus:this.onFocus,onBlur:this.onBlur},this.renderInner(e)):h("button",{ref:function(t){return i.link=t},class:n,type:this.type,disabled:this.disabled,accessKey:this.linkAccesskey,tabindex:this.a11yTabindex,"aria-label":this.a11yLabel,"aria-describedby":this.a11yDescribedby,"aria-disabled":typeof this.a11yDisabled!=="undefined"?this.a11yDisabled?"true":"false":null,"aria-expanded":typeof this.a11yExpanded!=="undefined"?this.a11yExpanded?"true":"false":null,"aria-controls":this.a11yControls,onFocus:this.onFocus,onBlur:this.onBlur},this.renderInner(e)))};Object.defineProperty(t.prototype,"element",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();StzhLink.style=stzhLinkCss;export{StzhLink as stzh_link};
1
+ var __awaiter=this&&this.__awaiter||function(t,i,e,n){function s(t){return t instanceof e?t:new e((function(i){i(t)}))}return new(e||(e=Promise))((function(e,l){function a(t){try{r(n.next(t))}catch(t){l(t)}}function o(t){try{r(n["throw"](t))}catch(t){l(t)}}function r(t){t.done?e(t.value):s(t.value).then(a,o)}r((n=n.apply(t,i||[])).next())}))};var __generator=this&&this.__generator||function(t,i){var e={label:0,sent:function(){if(l[0]&1)throw l[1];return l[1]},trys:[],ops:[]},n,s,l,a;return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(t){return function(i){return r([t,i])}}function r(o){if(n)throw new TypeError("Generator is already executing.");while(a&&(a=0,o[0]&&(e=0)),e)try{if(n=1,s&&(l=o[0]&2?s["return"]:o[0]?s["throw"]||((l=s["return"])&&l.call(s),0):s.next)&&!(l=l.call(s,o[1])).done)return l;if(s=0,l)o=[o[0]&2,l.value];switch(o[0]){case 0:case 1:l=o;break;case 4:e.label++;return{value:o[1],done:false};case 5:e.label++;s=o[1];o=[0];continue;case 7:o=e.ops.pop();e.trys.pop();continue;default:if(!(l=e.trys,l=l.length>0&&l[l.length-1])&&(o[0]===6||o[0]===2)){e=0;continue}if(o[0]===3&&(!l||o[1]>l[0]&&o[1]<l[3])){e.label=o[1];break}if(o[0]===6&&e.label<l[1]){e.label=l[1];l=o;break}if(l&&e.label<l[2]){e.label=l[2];e.ops.push(o);break}if(l[2])e.ops.pop();e.trys.pop();continue}o=i.call(t,e)}catch(t){o=[6,t];s=0}finally{n=l=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,F as Fragment,a as Host,g as getElement}from"./index-67fd55c9.js";import{h as hasSlot}from"./utils-8f264f12.js";import{f as fetchTranslations}from"./translation-utils-2623783f.js";var stzhLinkCss='@charset "UTF-8";.sc-stzh-link-h{font-family:var(--stzh-font-family-regular);font-weight:var(--stzh-font-weight-regular);font-style:normal;color:var(--stzh-base-color);-webkit-box-sizing:border-box;box-sizing:border-box;display:block}[hidden].sc-stzh-link-h{display:none}.sc-stzh-link-h *.sc-stzh-link,.sc-stzh-link-h *.sc-stzh-link::before,.sc-stzh-link-h *.sc-stzh-link::after{-webkit-box-sizing:border-box;box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness)}.sc-stzh-link-h{--color:var(--stzh-link-color);--text-decoration-line:underline;--icon-size:var(--stzh-icon-size-medium);--icon-wrapper-height:var(--stzh-link-icon-wrapper-height);--hover-color:var(--stzh-link-hover-color);--hover-text-decoration-line:underline;color:var(--color);display:inline-block}.sc-stzh-link-h .sc-stzh-link-s>stzh-text{--color:initial}[fullwidth].sc-stzh-link-h:not([fullwidth=false]){width:100%;display:block}[size=small].sc-stzh-link-h{--icon-size:var(--stzh-icon-size-small)}[variant=secondary].sc-stzh-link-h{--color:var(--stzh-base-color)}[active].sc-stzh-link-h:not([active=false]){--color:var(--hover-color)}[disabled].sc-stzh-link-h:not([disabled=false]){--color:var(--stzh-color-grey25);--hover-color:var(--stzh-color-grey25)}.sc-stzh-link-h .sc-stzh-link-s>stzh-icon,.stzh-link__icon.sc-stzh-link{--size:var(--icon-size)}.stzh-link.sc-stzh-link{font-size:var(--stzh-font-curve-p1-default-font-size, var(--stzh-font-milli-font-size));line-height:var(--stzh-font-curve-p1-default-text-line-height, var(--stzh-font-milli-text-line-height));letter-spacing:var(--stzh-font-curve-p1-default-text-letter-spacing);font-family:inherit;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:stretch;justify-content:stretch;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;color:var(--color);-webkit-transition:color var(--stzh-base-transition-animation-speed);transition:color var(--stzh-base-transition-animation-speed);cursor:pointer;width:100%;-webkit-text-decoration-line:none;text-decoration-line:none;background-color:transparent;padding:0;border-radius:var(--stzh-button-border-radius);text-align:left}@media screen and (min-width: 1024px){.stzh-link.sc-stzh-link{font-size:var(--stzh-font-curve-p1-medium-font-size, var(--stzh-font-centi-font-size));line-height:var(--stzh-font-curve-p1-medium-text-line-height, var(--stzh-font-centi-text-line-height));letter-spacing:var(--stzh-font-curve-p1-medium-text-letter-spacing)}}.stzh-link.sc-stzh-link:hover{color:var(--hover-color)}.stzh-link.sc-stzh-link:hover .stzh-link__text.sc-stzh-link{-webkit-text-decoration-line:var(--hover-text-decoration-line);text-decoration-line:var(--hover-text-decoration-line)}.stzh-link__vhidden.sc-stzh-link{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-link__inner.sc-stzh-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-positive:1;flex-grow:1}.stzh-link__icon-wrapper.sc-stzh-link{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0;width:auto;height:var(--icon-wrapper-height)}.stzh-link__text.sc-stzh-link{-webkit-text-decoration-line:var(--text-decoration-line);text-decoration-line:var(--text-decoration-line)}.stzh-link__icon-wrapper.sc-stzh-link:not(:empty)+.stzh-link__text.sc-stzh-link:not(:empty),.stzh-link__text.sc-stzh-link:not(:empty)+.stzh-link__icon-wrapper.sc-stzh-link:not(:empty){margin-left:var(--stzh-space-xxsmall)}.stzh-link__badge.sc-stzh-link{position:absolute;z-index:1;top:0;right:0}.stzh-link--has-icon-only.sc-stzh-link .stzh-link__text.sc-stzh-link{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-link--badge-position-link.sc-stzh-link .stzh-link__icon-wrapper.sc-stzh-link{position:static}.stzh-link__badge.sc-stzh-link,.stzh-link--badge-position-link.sc-stzh-link .stzh-link__badge.sc-stzh-link{top:calc(var(--stzh-space-xxsmall) * -1);right:calc(var(--stzh-space-large) * -1)}.stzh-link--badge-position-icon.stzh-link--has-icon.sc-stzh-link .stzh-link__icon-wrapper.sc-stzh-link{position:relative}.stzh-link--badge-position-icon.stzh-link--has-icon.sc-stzh-link .stzh-link__badge.sc-stzh-link{top:calc(var(--stzh-space-xsmall) * -1);right:calc(var(--stzh-space-small) * -1)}.stzh-link--badge-position-icon.stzh-link--has-icon.stzh-link--has-badge.sc-stzh-link .stzh-link__icon-wrapper.sc-stzh-link+.stzh-link__text.sc-stzh-link:not(:empty){margin-left:var(--stzh-space-small)}.stzh-link--size-small.sc-stzh-link{font-size:var(--stzh-font-micro-font-size);line-height:var(--stzh-font-micro-text-line-height)}.stzh-link--size-inherit.sc-stzh-link{font-size:inherit;line-height:inherit;letter-spacing:inherit}.stzh-link--align-left.sc-stzh-link .stzh-link__inner.sc-stzh-link{-ms-flex-pack:start;justify-content:flex-start}.stzh-link--align-right.sc-stzh-link .stzh-link__inner.sc-stzh-link{-ms-flex-pack:end;justify-content:flex-end}.stzh-link--align-center.sc-stzh-link .stzh-link__inner.sc-stzh-link{-ms-flex-pack:center;justify-content:center}.stzh-link--align-space-between.sc-stzh-link .stzh-link__inner.sc-stzh-link{-ms-flex-pack:justify;justify-content:space-between}.stzh-link--is-disabled.sc-stzh-link{cursor:not-allowed}';var StzhLink=function(){function t(t){var i=this;registerInstance(this,t);this.stzhFocus=createEvent(this,"stzhFocus",7);this.stzhBlur=createEvent(this,"stzhBlur",7);this.focusedByInput=false;this.onRootFocus=function(){if(!i.focusedByInput){i.setFocus()}i.focusedByInput=false};this.onFocus=function(t){i.focusedByInput=true;var e=new FocusEvent("focus",{view:window,bubbles:false,cancelable:false});i.element.dispatchEvent(e);i.stzhFocus.emit({component:"stzh-link",originalEvent:t})};this.onBlur=function(t){var e=new FocusEvent("blur",{view:window,bubbles:false,cancelable:false});i.element.dispatchEvent(e);i.stzhBlur.emit({component:"stzh-link",originalEvent:t})};this.localization=undefined;this.icon="";this.iconPosition="left";this.size="default";this.href="";this.rel=undefined;this.target="";this.download=undefined;this.type="button";this.variant="default";this.fullwidth=false;this.textAlign="default";this.badge="";this.badgeType="default";this.badgeEmpty=false;this.badgePosition="icon";this.disabled=false;this.active=false;this.iconOnly=false;this.label="";this.linkAccesskey=undefined;this.a11yLabel=undefined;this.a11yDescribedby="";this.a11yExpanded=undefined;this.a11yDisabled=undefined;this.a11yControls=undefined;this.a11yTabindex=undefined;this.analyticsId=undefined}t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){this.link.focus();return[2]}))}))};t.prototype.renderIcon=function(){return h("div",{class:"stzh-link__icon-wrapper"},this.icon?h("stzh-icon",{class:"stzh-link__icon",name:this.icon}):h("slot",{name:"icon"}),(this.badge||this.badgeEmpty)&&h("stzh-badge",{class:"stzh-link__badge",label:this.badge,type:this.badgeType}))};t.prototype.renderContent=function(){var t=this;return h("div",{class:"stzh-link__text"},this.rel&&this.rel.includes("external")&&h("div",{class:"stzh-link__vhidden"},this.localization.$globals.externalLinkLabel),this.download&&h("div",{class:"stzh-link__vhidden"},this.localization.$globals.downloadLinkLabel),h("div",{ref:function(i){return t.text=i}},this.label?this.label:h("slot",null)))};t.prototype.renderInner=function(t){return h(Fragment,null,h("div",{class:"stzh-link__inner"},this.iconPosition==="left"&&this.renderIcon(),this.renderContent(),this.iconPosition==="right"&&this.renderIcon()),(this.badge||this.badgeEmpty)&&!t&&h("stzh-badge",{class:"stzh-link__badge",label:this.badge,type:this.badgeType}))};t.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(i){switch(i.label){case 0:if(!!this.localization)return[3,2];t=this;return[4,fetchTranslations(this.element,"link")];case 1:t.localization=i.sent();i.label=2;case 2:return[2]}}))}))};t.prototype.componentDidRender=function(){var t=this;requestAnimationFrame((function(){t.link.setAttribute("s-object-id",t.analyticsId||t.text.innerText)}))};t.prototype.render=function(){var t;var i=this;var e=hasSlot(this.element,"icon")||!!this.icon;var n=(t={"stzh-link":true,"stzh-link--has-icon":e,"stzh-link--has-icon-only":this.iconOnly,"stzh-link--has-badge":!!this.badge,"stzh-link--is-fullwidth":this.fullwidth,"stzh-link--is-disabled":this.disabled,"stzh-link--is-active":this.active},t["stzh-link--badge-position-".concat(this.badgePosition)]=!!this.badgePosition,t["stzh-link--align-".concat(this.textAlign)]=!!this.textAlign,t["stzh-link--size-".concat(this.size)]=!!this.size,t["stzh-link--".concat(this.variant)]=!!this.variant,t);return h(Host,{tabindex:this.disabled?null:"-1",onFocus:this.onRootFocus},this.href?h("a",{ref:function(t){return i.link=t},href:this.disabled?null:this.href,download:this.download,rel:this.rel,target:this.target,class:n,accessKey:this.linkAccesskey,tabindex:this.a11yTabindex,"aria-label":this.a11yLabel||null,"aria-describedby":this.a11yDescribedby||null,"aria-disabled":typeof this.a11yDisabled!=="undefined"?this.a11yDisabled?"true":"false":null,"aria-expanded":typeof this.a11yExpanded!=="undefined"?this.a11yExpanded?"true":"false":null,"aria-controls":this.a11yControls||null,onFocus:this.onFocus,onBlur:this.onBlur},this.renderInner(e)):h("button",{ref:function(t){return i.link=t},class:n,type:this.type,disabled:this.disabled,accessKey:this.linkAccesskey,tabindex:this.a11yTabindex,"aria-label":this.a11yLabel||null,"aria-describedby":this.a11yDescribedby||null,"aria-disabled":typeof this.a11yDisabled!=="undefined"?this.a11yDisabled?"true":"false":null,"aria-expanded":typeof this.a11yExpanded!=="undefined"?this.a11yExpanded?"true":"false":null,"aria-controls":this.a11yControls||null,onFocus:this.onFocus,onBlur:this.onBlur},this.renderInner(e)))};Object.defineProperty(t.prototype,"element",{get:function(){return getElement(this)},enumerable:false,configurable:true});return t}();StzhLink.style=stzhLinkCss;export{StzhLink as stzh_link};
2
2
  //# sourceMappingURL=stzh-link.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["stzhLinkCss","StzhLink","this","focusedByInput","onRootFocus","_this","setFocus","onFocus","event","focusEvent","FocusEvent","view","window","bubbles","cancelable","element","dispatchEvent","stzhFocus","emit","component","originalEvent","onBlur","blurEvent","stzhBlur","class_1","prototype","link","focus","renderIcon","h","class","icon","name","badge","badgeEmpty","label","type","badgeType","renderContent","rel","includes","localization","$globals","externalLinkLabel","download","downloadLinkLabel","ref","el","text","renderInner","iconUsed","Fragment","iconPosition","componentWillLoad","_a","fetchTranslations","_b","sent","componentDidRender","requestAnimationFrame","setAttribute","analyticsId","innerText","render","hasSlot","classes","iconOnly","fullwidth","disabled","active","concat","badgePosition","textAlign","size","variant","Host","tabindex","href","target","accessKey","linkAccesskey","a11yTabindex","a11yLabel","a11yDescribedby","a11yDisabled","a11yExpanded","a11yControls"],"sources":["src/components/stzh-link/stzh-link.scss?tag=stzh-link&encapsulation=scoped","src/components/stzh-link/stzh-link.tsx"],"sourcesContent":[":host {\n --color: #{$linkColor};\n --text-decoration-line: underline;\n --icon-size: #{iconSize('medium')};\n --icon-wrapper-height: #{$linkIconWrapperHeight};\n\n --hover-color: #{$linkHoverColor};\n --hover-text-decoration-line: underline;\n\n color: var(--color);\n display: inline-block;\n\n ::slotted(stzh-text) {\n --color: initial;\n }\n\n &[fullwidth]:not([fullwidth=\"false\"]) {\n width: 100%;\n display: block;\n }\n\n &[size=\"small\"] {\n --icon-size: #{iconSize('small')};\n }\n\n &[variant=\"secondary\"] {\n --color: #{$baseColor};\n }\n\n &[active]:not([active=\"false\"]) {\n --color: var(--hover-color);\n }\n\n &[disabled]:not([disabled=\"false\"]) {\n --color: #{$colorGrey25};\n --hover-color: #{$colorGrey25};\n }\n}\n\n:host ::slotted(stzh-icon),\n.stzh-link__icon {\n --size: var(--icon-size);\n}\n\n.stzh-link {\n @include fontCurve('p1');\n font-family: inherit;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: stretch;\n appearance: none;\n border: none;\n color: var(--color);\n transition: color $baseTransitionAnimationSpeed;\n cursor: pointer;\n width: 100%;\n text-decoration-line: none;\n background-color: transparent;\n padding: 0;\n border-radius: $buttonBorderRadius;\n text-align: left;\n\n &:hover {\n color: var(--hover-color);\n }\n\n &:hover &__text {\n text-decoration-line: var(--hover-text-decoration-line);\n }\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__inner {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n }\n\n &__icon-wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: auto;\n height: var(--icon-wrapper-height);\n }\n\n &__text {\n text-decoration-line: var(--text-decoration-line);\n }\n\n &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: space('xxsmall');\n }\n\n &__badge {\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n }\n\n /* Variant if link only has icon */\n\n &--has-icon-only &__text {\n @include visuallyhidden;\n }\n\n /* Badge positioning variants */\n\n &--badge-position-link &__icon-wrapper {\n position: static;\n }\n\n &__badge,\n &--badge-position-link &__badge {\n top: calc(#{space('xxsmall')} * -1);\n right: calc(#{space('large')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon &__icon-wrapper {\n position: relative;\n }\n\n &--badge-position-icon#{&}--has-icon &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('small')} * -1);;\n }\n\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__icon-wrapper + &__text:not(:empty) {\n margin-left: space('small');\n }\n\n /* Size variants */\n\n &--size-small {\n @include fontSize('micro');\n }\n\n &--size-inherit {\n font-size: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n }\n\n /* Alignment variants */\n\n &--align-left &__inner {\n justify-content: flex-start;\n }\n\n &--align-right &__inner {\n justify-content: flex-end;\n }\n\n &--align-center &__inner {\n justify-content: center;\n }\n\n &--align-space-between &__inner {\n justify-content: space-between;\n }\n\n /* Disabled variant */\n\n &--is-disabled {\n cursor: not-allowed;\n }\n}\n","import {\n Component,\n Host,\n Fragment,\n Element,\n h,\n Prop,\n Method,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n\nimport {\n StzhLinkFocusEvent,\n StzhLinkBlurEvent\n} from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { fetchTranslations, StzhLocaleComponent } from \"../../utils/translation-utils\";\n\n/**\n * @slot - Slot for text content\n * @slot icon - Slot for icon element\n */\n@Component({\n tag: \"stzh-link\",\n styleUrl: \"stzh-link.scss\",\n scoped: true\n})\nexport class StzhLink {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Icon (use instead of icon slot) */\n @Prop() icon: string = \"\";\n\n /** Icon Position */\n @Prop({ reflect: true }) iconPosition: \"left\" | \"right\" = \"left\";\n\n /** Size variant */\n @Prop({ reflect: true }) size: \"default\" | \"small\" | \"inherit\" = \"default\";\n\n /** href attribute of the link */\n @Prop() href: string = \"\";\n\n /** Rel (if href is used) */\n @Prop() rel: string;\n\n /** target if the button is used as link (if href used) */\n @Prop() target: string = \"\";\n\n /** Download attribute of link (if `href` used) */\n @Prop() download: string;\n\n /** type of the button, if used as button (if no href used) */\n @Prop() type: \"button\" | \"submit\" | \"reset\" = \"button\";\n\n /** Variant style */\n @Prop({ reflect: true }) variant: \"default\" | \"secondary\" = \"default\";\n\n /** Whether the link is full width */\n @Prop({ reflect: true }) fullwidth: boolean = false;\n\n /** Text alignment */\n @Prop({ reflect: true }) textAlign: \"left\" | \"center\" | \"right\" | \"space-between\" | \"default\" = \"default\";\n\n /** Badge text */\n @Prop() badge: string = \"\";\n\n /** Badge type */\n @Prop({ reflect: true }) badgeType: \"default\" | \"success\" | \"warning\" | \"error\" | \"info\" = \"default\";\n\n /** Whether badge should be displayed empty */\n @Prop({ reflect: true }) badgeEmpty: boolean = false;\n\n /** Badge position */\n @Prop({ reflect: true }) badgePosition: \"icon\" | \"link\" = \"icon\";\n\n /** Disabled status */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Active status */\n @Prop({ reflect: true }) active: boolean = false;\n\n /** Whether only an icon is used inside the link */\n @Prop({ reflect: true }) iconOnly: boolean = false;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Access key of link (usually a number e.g. 1) */\n @Prop() linkAccesskey: string;\n\n /** Accessible label for screen readers to replace visible text */\n @Prop({ attribute: \"a11y-label\" }) a11yLabel: string;\n\n /** Id for element which describes the button (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n /** Aria expanded of link/button */\n @Prop({ reflect: true, attribute: \"a11y-expanded\" }) a11yExpanded: boolean;\n\n /** Aria disabled of link/button */\n @Prop({ reflect: true, attribute: \"a11y-disabled\" }) a11yDisabled: boolean;\n\n /** Aria controls of link/button */\n @Prop({ attribute: \"a11y-controls\" }) a11yControls: string;\n\n /** Tabindex of link/button */\n @Prop({ attribute: \"a11y-tabindex\" }) a11yTabindex: string;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the link/button element.\n * Default value will be taken from `label` prop or default slot.\n */\n @Prop() analyticsId: string;\n\n @Element() element: HTMLStzhLinkElement;\n\n /** Focus link */\n @Method()\n async setFocus() {\n this.link.focus();\n }\n\n /** Focus event */\n @Event() stzhFocus: EventEmitter<StzhLinkFocusEvent>;\n\n /** Input blur event */\n @Event() stzhBlur: EventEmitter<StzhLinkBlurEvent>;\n\n private link: HTMLButtonElement | HTMLAnchorElement;\n private text: HTMLDivElement;\n private focusedByInput: boolean = false;\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.setFocus();\n }\n\n this.focusedByInput = false;\n }\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent(\"focus\", {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-link\",\n originalEvent: event\n });\n }\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent(\"blur\", {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-link\",\n originalEvent: event\n });\n }\n\n private renderIcon(): HTMLInputElement {\n return (\n <div class=\"stzh-link__icon-wrapper\">\n {this.icon ?\n <stzh-icon class=\"stzh-link__icon\" name={this.icon}></stzh-icon>\n :\n <slot name=\"icon\"></slot>\n }\n {(this.badge || this.badgeEmpty) &&\n <stzh-badge class=\"stzh-link__badge\" label={this.badge} type={this.badgeType}></stzh-badge>\n }\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div class=\"stzh-link__text\">\n {this.rel && this.rel.includes('external') && <div class=\"stzh-link__vhidden\">{this.localization.$globals.externalLinkLabel}</div>}\n {this.download && <div class=\"stzh-link__vhidden\">{this.localization.$globals.downloadLinkLabel}</div>}\n <div ref={(el) => (this.text = el as HTMLDivElement)}>{this.label ? this.label : <slot></slot>}</div>\n </div>\n );\n }\n\n private renderInner(iconUsed: boolean): DocumentFragment {\n return (\n <Fragment>\n <div class=\"stzh-link__inner\">\n {this.iconPosition === \"left\" && this.renderIcon()}\n {this.renderContent()}\n {this.iconPosition === \"right\" && this.renderIcon()}\n </div>\n {(this.badge || this.badgeEmpty) && !iconUsed &&\n <stzh-badge class=\"stzh-link__badge\" label={this.badge} type={this.badgeType}></stzh-badge>\n }\n </Fragment>\n );\n }\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, \"link\");\n }\n }\n\n componentDidRender() {\n requestAnimationFrame(() => {\n this.link.setAttribute(\"s-object-id\", this.analyticsId || this.text.innerText);\n });\n }\n\n render() {\n const iconUsed = hasSlot(this.element, \"icon\") || !!this.icon;\n const classes = {\n \"stzh-link\": true,\n \"stzh-link--has-icon\": iconUsed,\n \"stzh-link--has-icon-only\": this.iconOnly,\n \"stzh-link--has-badge\": !!this.badge,\n \"stzh-link--is-fullwidth\": this.fullwidth,\n \"stzh-link--is-disabled\": this.disabled,\n \"stzh-link--is-active\": this.active,\n [`stzh-link--badge-position-${this.badgePosition}`]: !!this.badgePosition,\n [`stzh-link--align-${this.textAlign}`]: !!this.textAlign,\n [`stzh-link--size-${this.size}`]: !!this.size,\n [`stzh-link--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n {this.href ?\n <a\n ref={(el) => (this.link = el as HTMLAnchorElement)}\n href={this.disabled ? null : this.href}\n download={this.download}\n rel={this.rel}\n target={this.target}\n class={classes}\n accessKey={this.linkAccesskey}\n tabindex={this.a11yTabindex}\n aria-label={this.a11yLabel}\n aria-describedby={this.a11yDescribedby}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n >\n {this.renderInner(iconUsed)}\n </a>\n :\n <button\n ref={(el) => (this.link = el as HTMLButtonElement)}\n class={classes}\n type={this.type}\n disabled={this.disabled}\n accessKey={this.linkAccesskey}\n tabindex={this.a11yTabindex}\n aria-label={this.a11yLabel}\n aria-describedby={this.a11yDescribedby}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n >\n {this.renderInner(iconUsed)}\n </button>\n }\n </Host>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["stzhLinkCss","StzhLink","this","focusedByInput","onRootFocus","_this","setFocus","onFocus","event","focusEvent","FocusEvent","view","window","bubbles","cancelable","element","dispatchEvent","stzhFocus","emit","component","originalEvent","onBlur","blurEvent","stzhBlur","class_1","prototype","link","focus","renderIcon","h","class","icon","name","badge","badgeEmpty","label","type","badgeType","renderContent","rel","includes","localization","$globals","externalLinkLabel","download","downloadLinkLabel","ref","el","text","renderInner","iconUsed","Fragment","iconPosition","componentWillLoad","_a","fetchTranslations","_b","sent","componentDidRender","requestAnimationFrame","setAttribute","analyticsId","innerText","render","hasSlot","classes","iconOnly","fullwidth","disabled","active","concat","badgePosition","textAlign","size","variant","Host","tabindex","href","target","accessKey","linkAccesskey","a11yTabindex","a11yLabel","a11yDescribedby","a11yDisabled","a11yExpanded","a11yControls"],"sources":["src/components/stzh-link/stzh-link.scss?tag=stzh-link&encapsulation=scoped","src/components/stzh-link/stzh-link.tsx"],"sourcesContent":[":host {\n --color: #{$linkColor};\n --text-decoration-line: underline;\n --icon-size: #{iconSize('medium')};\n --icon-wrapper-height: #{$linkIconWrapperHeight};\n\n --hover-color: #{$linkHoverColor};\n --hover-text-decoration-line: underline;\n\n color: var(--color);\n display: inline-block;\n\n ::slotted(stzh-text) {\n --color: initial;\n }\n\n &[fullwidth]:not([fullwidth=\"false\"]) {\n width: 100%;\n display: block;\n }\n\n &[size=\"small\"] {\n --icon-size: #{iconSize('small')};\n }\n\n &[variant=\"secondary\"] {\n --color: #{$baseColor};\n }\n\n &[active]:not([active=\"false\"]) {\n --color: var(--hover-color);\n }\n\n &[disabled]:not([disabled=\"false\"]) {\n --color: #{$colorGrey25};\n --hover-color: #{$colorGrey25};\n }\n}\n\n:host ::slotted(stzh-icon),\n.stzh-link__icon {\n --size: var(--icon-size);\n}\n\n.stzh-link {\n @include fontCurve('p1');\n font-family: inherit;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: stretch;\n appearance: none;\n border: none;\n color: var(--color);\n transition: color $baseTransitionAnimationSpeed;\n cursor: pointer;\n width: 100%;\n text-decoration-line: none;\n background-color: transparent;\n padding: 0;\n border-radius: $buttonBorderRadius;\n text-align: left;\n\n &:hover {\n color: var(--hover-color);\n }\n\n &:hover &__text {\n text-decoration-line: var(--hover-text-decoration-line);\n }\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__inner {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n }\n\n &__icon-wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: auto;\n height: var(--icon-wrapper-height);\n }\n\n &__text {\n text-decoration-line: var(--text-decoration-line);\n }\n\n &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: space('xxsmall');\n }\n\n &__badge {\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n }\n\n /* Variant if link only has icon */\n\n &--has-icon-only &__text {\n @include visuallyhidden;\n }\n\n /* Badge positioning variants */\n\n &--badge-position-link &__icon-wrapper {\n position: static;\n }\n\n &__badge,\n &--badge-position-link &__badge {\n top: calc(#{space('xxsmall')} * -1);\n right: calc(#{space('large')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon &__icon-wrapper {\n position: relative;\n }\n\n &--badge-position-icon#{&}--has-icon &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('small')} * -1);;\n }\n\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__icon-wrapper + &__text:not(:empty) {\n margin-left: space('small');\n }\n\n /* Size variants */\n\n &--size-small {\n @include fontSize('micro');\n }\n\n &--size-inherit {\n font-size: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n }\n\n /* Alignment variants */\n\n &--align-left &__inner {\n justify-content: flex-start;\n }\n\n &--align-right &__inner {\n justify-content: flex-end;\n }\n\n &--align-center &__inner {\n justify-content: center;\n }\n\n &--align-space-between &__inner {\n justify-content: space-between;\n }\n\n /* Disabled variant */\n\n &--is-disabled {\n cursor: not-allowed;\n }\n}\n","import {\n Component,\n Host,\n Fragment,\n Element,\n h,\n Prop,\n Method,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n\nimport {\n StzhLinkFocusEvent,\n StzhLinkBlurEvent\n} from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { fetchTranslations, StzhLocaleComponent } from \"../../utils/translation-utils\";\n\n/**\n * @slot - Slot for text content\n * @slot icon - Slot for icon element\n */\n@Component({\n tag: \"stzh-link\",\n styleUrl: \"stzh-link.scss\",\n scoped: true\n})\nexport class StzhLink {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Icon (use instead of icon slot) */\n @Prop() icon: string = \"\";\n\n /** Icon Position */\n @Prop({ reflect: true }) iconPosition: \"left\" | \"right\" = \"left\";\n\n /** Size variant */\n @Prop({ reflect: true }) size: \"default\" | \"small\" | \"inherit\" = \"default\";\n\n /** href attribute of the link */\n @Prop() href: string = \"\";\n\n /** Rel (if href is used) */\n @Prop() rel: string;\n\n /** target if the button is used as link (if href used) */\n @Prop() target: string = \"\";\n\n /** Download attribute of link (if `href` used) */\n @Prop() download: string;\n\n /** type of the button, if used as button (if no href used) */\n @Prop() type: \"button\" | \"submit\" | \"reset\" = \"button\";\n\n /** Variant style */\n @Prop({ reflect: true }) variant: \"default\" | \"secondary\" = \"default\";\n\n /** Whether the link is full width */\n @Prop({ reflect: true }) fullwidth: boolean = false;\n\n /** Text alignment */\n @Prop({ reflect: true }) textAlign: \"left\" | \"center\" | \"right\" | \"space-between\" | \"default\" = \"default\";\n\n /** Badge text */\n @Prop() badge: string = \"\";\n\n /** Badge type */\n @Prop({ reflect: true }) badgeType: \"default\" | \"success\" | \"warning\" | \"error\" | \"info\" = \"default\";\n\n /** Whether badge should be displayed empty */\n @Prop({ reflect: true }) badgeEmpty: boolean = false;\n\n /** Badge position */\n @Prop({ reflect: true }) badgePosition: \"icon\" | \"link\" = \"icon\";\n\n /** Disabled status */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Active status */\n @Prop({ reflect: true }) active: boolean = false;\n\n /** Whether only an icon is used inside the link */\n @Prop({ reflect: true }) iconOnly: boolean = false;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Access key of link (usually a number e.g. 1) */\n @Prop() linkAccesskey: string;\n\n /** Accessible label for screen readers to replace visible text */\n @Prop({ attribute: \"a11y-label\" }) a11yLabel: string;\n\n /** Id for element which describes the button (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n /** Aria expanded of link/button */\n @Prop({ reflect: true, attribute: \"a11y-expanded\" }) a11yExpanded: boolean;\n\n /** Aria disabled of link/button */\n @Prop({ reflect: true, attribute: \"a11y-disabled\" }) a11yDisabled: boolean;\n\n /** Aria controls of link/button */\n @Prop({ attribute: \"a11y-controls\" }) a11yControls: string;\n\n /** Tabindex of link/button */\n @Prop({ attribute: \"a11y-tabindex\" }) a11yTabindex: string;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the link/button element.\n * Default value will be taken from `label` prop or default slot.\n */\n @Prop() analyticsId: string;\n\n @Element() element: HTMLStzhLinkElement;\n\n /** Focus link */\n @Method()\n async setFocus() {\n this.link.focus();\n }\n\n /** Focus event */\n @Event() stzhFocus: EventEmitter<StzhLinkFocusEvent>;\n\n /** Input blur event */\n @Event() stzhBlur: EventEmitter<StzhLinkBlurEvent>;\n\n private link: HTMLButtonElement | HTMLAnchorElement;\n private text: HTMLDivElement;\n private focusedByInput: boolean = false;\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.setFocus();\n }\n\n this.focusedByInput = false;\n }\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent(\"focus\", {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-link\",\n originalEvent: event\n });\n }\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent(\"blur\", {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-link\",\n originalEvent: event\n });\n }\n\n private renderIcon(): HTMLInputElement {\n return (\n <div class=\"stzh-link__icon-wrapper\">\n {this.icon ?\n <stzh-icon class=\"stzh-link__icon\" name={this.icon}></stzh-icon>\n :\n <slot name=\"icon\"></slot>\n }\n {(this.badge || this.badgeEmpty) &&\n <stzh-badge class=\"stzh-link__badge\" label={this.badge} type={this.badgeType}></stzh-badge>\n }\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div class=\"stzh-link__text\">\n {this.rel && this.rel.includes('external') && <div class=\"stzh-link__vhidden\">{this.localization.$globals.externalLinkLabel}</div>}\n {this.download && <div class=\"stzh-link__vhidden\">{this.localization.$globals.downloadLinkLabel}</div>}\n <div ref={(el) => (this.text = el as HTMLDivElement)}>{this.label ? this.label : <slot></slot>}</div>\n </div>\n );\n }\n\n private renderInner(iconUsed: boolean): DocumentFragment {\n return (\n <Fragment>\n <div class=\"stzh-link__inner\">\n {this.iconPosition === \"left\" && this.renderIcon()}\n {this.renderContent()}\n {this.iconPosition === \"right\" && this.renderIcon()}\n </div>\n {(this.badge || this.badgeEmpty) && !iconUsed &&\n <stzh-badge class=\"stzh-link__badge\" label={this.badge} type={this.badgeType}></stzh-badge>\n }\n </Fragment>\n );\n }\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, \"link\");\n }\n }\n\n componentDidRender() {\n requestAnimationFrame(() => {\n this.link.setAttribute(\"s-object-id\", this.analyticsId || this.text.innerText);\n });\n }\n\n render() {\n const iconUsed = hasSlot(this.element, \"icon\") || !!this.icon;\n const classes = {\n \"stzh-link\": true,\n \"stzh-link--has-icon\": iconUsed,\n \"stzh-link--has-icon-only\": this.iconOnly,\n \"stzh-link--has-badge\": !!this.badge,\n \"stzh-link--is-fullwidth\": this.fullwidth,\n \"stzh-link--is-disabled\": this.disabled,\n \"stzh-link--is-active\": this.active,\n [`stzh-link--badge-position-${this.badgePosition}`]: !!this.badgePosition,\n [`stzh-link--align-${this.textAlign}`]: !!this.textAlign,\n [`stzh-link--size-${this.size}`]: !!this.size,\n [`stzh-link--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n {this.href ?\n <a\n ref={(el) => (this.link = el as HTMLAnchorElement)}\n href={this.disabled ? null : this.href}\n download={this.download}\n rel={this.rel}\n target={this.target}\n class={classes}\n accessKey={this.linkAccesskey}\n tabindex={this.a11yTabindex}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls || null}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n >\n {this.renderInner(iconUsed)}\n </a>\n :\n <button\n ref={(el) => (this.link = el as HTMLButtonElement)}\n class={classes}\n type={this.type}\n disabled={this.disabled}\n accessKey={this.linkAccesskey}\n tabindex={this.a11yTabindex}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls || null}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n >\n {this.renderInner(iconUsed)}\n </button>\n }\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var __awaiter=this&&this.__awaiter||function(e,t,n,s){function i(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,r){function o(e){try{h(s.next(e))}catch(e){r(e)}}function a(e){try{h(s["throw"](e))}catch(e){r(e)}}function h(e){e.done?n(e.value):i(e.value).then(o,a)}h((s=s.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},s,i,r,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(e){return function(t){return h([e,t])}}function h(a){if(s)throw new TypeError("Generator is already executing.");while(o&&(o=0,a[0]&&(n=0)),n)try{if(s=1,i&&(r=a[0]&2?i["return"]:a[0]?i["throw"]||((r=i["return"])&&r.call(i),0):i.next)&&!(r=r.call(i,a[1])).done)return r;if(i=0,r)a=[a[0]&2,r.value];switch(a[0]){case 0:case 1:r=a;break;case 4:n.label++;return{value:a[1],done:false};case 5:n.label++;i=a[1];a=[0];continue;case 7:a=n.ops.pop();n.trys.pop();continue;default:if(!(r=n.trys,r=r.length>0&&r[r.length-1])&&(a[0]===6||a[0]===2)){n=0;continue}if(a[0]===3&&(!r||a[1]>r[0]&&a[1]<r[3])){n.label=a[1];break}if(a[0]===6&&n.label<r[1]){n.label=r[1];r=a;break}if(r&&n.label<r[2]){n.label=r[2];n.ops.push(a);break}if(r[2])n.ops.pop();n.trys.pop();continue}a=t.call(e,n)}catch(e){a=[6,e];i=0}finally{s=r=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};import{r as registerInstance,h,a as Host,c as createEvent,F as Fragment,g as getElement}from"./index-67fd55c9.js";import{h as hasSlot}from"./utils-8f264f12.js";var stzhMenuCss=".sc-stzh-menu-h{font-family:var(--stzh-font-family-regular);font-weight:var(--stzh-font-weight-regular);font-style:normal;color:var(--stzh-base-color);-webkit-box-sizing:border-box;box-sizing:border-box;display:block}[hidden].sc-stzh-menu-h{display:none}.sc-stzh-menu-h *.sc-stzh-menu,.sc-stzh-menu-h *.sc-stzh-menu::before,.sc-stzh-menu-h *.sc-stzh-menu::after{-webkit-box-sizing:border-box;box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness)}.sc-stzh-menu-h .sc-stzh-menu-s>stzh-hr{margin-top:var(--stzh-space-xsmall);margin-bottom:var(--stzh-space-xsmall)}.stzh-menu.sc-stzh-menu{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}";var StzhMenu=function(){function e(e){registerInstance(this,e)}e.prototype.render=function(){return h(Host,{role:"menu"},h("div",{class:"stzh-menu"},h("slot",null)))};return e}();StzhMenu.style=stzhMenuCss;var stzhMenuItemCss=".sc-stzh-menu-item-h{font-family:var(--stzh-font-family-regular);font-weight:var(--stzh-font-weight-regular);font-style:normal;color:var(--stzh-base-color);-webkit-box-sizing:border-box;box-sizing:border-box;display:block}[hidden].sc-stzh-menu-item-h{display:none}.sc-stzh-menu-item-h *.sc-stzh-menu-item,.sc-stzh-menu-item-h *.sc-stzh-menu-item::before,.sc-stzh-menu-item-h *.sc-stzh-menu-item::after{-webkit-box-sizing:border-box;box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness)}.sc-stzh-menu-item-h{--height:var(--stzh-menu-item-height);--color:var(--stzh-color-grey70);--background-color:transparent;--icon-size:var(--stzh-icon-size-small);--hover-color:var(--stzh-color-grey70);--hover-background-color:var(--stzh-color-grey5)}[active].sc-stzh-menu-item-h:not([active=false]){--color:var(--stzh-color-primary, var(--stzh-color-zueriblue));--hover-color:var(--stzh-color-primary-hover, var(--stzh-color-zueribluedark));--hover-background-color:var(--stzh-color-primary8)}[disabled].sc-stzh-menu-item-h:not([disabled=false]){--color:var(--stzh-color-white);--background-color:var(--stzh-color-grey13);--hover-color:var(--stzh-color-white);--hover-background-color:var(--stzh-color-grey13)}.sc-stzh-menu-item-h .sc-stzh-menu-item-s>stzh-icon,.stzh-menu-item__icon.sc-stzh-menu-item{--size:var(--icon-size)}.stzh-menu-item.sc-stzh-menu-item{font-size:var(--stzh-font-micro-font-size);line-height:var(--stzh-font-micro-text-line-height);font-family:inherit;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:stretch;justify-content:stretch;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-text-decoration-line:none;text-decoration-line:none;border:none;padding:var(--stzh-space-xsmall) var(--stzh-space-medium);padding-left:var(--stzh-space-large);color:var(--color);background-color:var(--background-color);width:100%;height:var(--height);line-height:var(--height);-webkit-transition-duration:var(--stzh-base-transition-animation-speed);transition-duration:var(--stzh-base-transition-animation-speed);-webkit-transition-property:color, background-color, border-color;transition-property:color, background-color, border-color;cursor:pointer}.stzh-menu-item.sc-stzh-menu-item:hover{color:var(--hover-color);background-color:var(--hover-background-color)}.stzh-menu-item__icon-wrapper.sc-stzh-menu-item{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0;width:auto;height:1em}.stzh-menu-item__badge.sc-stzh-menu-item{position:absolute;z-index:1;top:calc(var(--stzh-space-xsmall) * -1);right:calc(var(--stzh-space-xsmall) * -1)}.stzh-menu-item__icon-wrapper.sc-stzh-menu-item+.stzh-menu-item__text.sc-stzh-menu-item:not(:empty){margin-left:var(--stzh-space-xsmall)}.stzh-menu-item__text.sc-stzh-menu-item{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stzh-menu-item--is-disabled.sc-stzh-menu-item{cursor:not-allowed}";var StzhMenuItem=function(){function e(e){var t=this;registerInstance(this,e);this.stzhFocus=createEvent(this,"stzhFocus",7);this.stzhBlur=createEvent(this,"stzhBlur",7);this.focusedByInput=false;this.onRootFocus=function(){if(!t.focusedByInput){t.setFocus()}t.focusedByInput=false};this.onFocus=function(e){t.focusedByInput=true;var n=new FocusEvent("focus",{view:window,bubbles:false,cancelable:false});t.element.dispatchEvent(n);t.stzhFocus.emit({component:"stzh-menu-item",originalEvent:e})};this.onBlur=function(e){var n=new FocusEvent("blur",{view:window,bubbles:false,cancelable:false});t.element.dispatchEvent(n);t.stzhBlur.emit({component:"stzh-menu-item",originalEvent:e})};this.badge="";this.badgeType="default";this.badgeEmpty=false;this.disabled=false;this.active=false;this.icon="";this.label="";this.href="";this.target="";this.a11yLabel=undefined;this.analyticsId=undefined}e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.menuItem.focus();return[2]}))}))};e.prototype.componentDidRender=function(){var e=this;requestAnimationFrame((function(){e.menuItem.setAttribute("s-object-id",e.analyticsId||e.text.innerText)}))};e.prototype.renderInner=function(e){var t=this;return h(Fragment,null,e&&h("div",{class:"stzh-menu-item__icon-wrapper"},this.icon?h("stzh-icon",{class:"stzh-menu-item__icon",name:this.icon}):h("slot",{name:"icon"}),(this.badge||this.badgeEmpty)&&h("stzh-badge",{class:"stzh-menu-item__badge",label:this.badge,type:this.badgeType})),h("div",{ref:function(e){return t.text=e},class:"stzh-menu-item__text"},this.label?this.label:h("slot",null)))};e.prototype.render=function(){var e=this;var t=hasSlot(this.element,"icon")||!!this.icon;var n={"stzh-menu-item":true,"stzh-menu-item--has-icon":t,"stzh-menu-item--has-badge":!!this.badge,"stzh-menu-item--is-disabled":this.disabled,"stzh-menu-item--is-active":this.active};return h(Host,{role:"menuitem",tabindex:this.disabled?null:"-1",onFocus:this.onRootFocus},this.href?h("a",{ref:function(t){return e.menuItem=t},href:this.disabled?null:this.href,target:this.target,class:n,"aria-label":this.a11yLabel,onFocus:this.onFocus,onBlur:this.onBlur},this.renderInner(t)):h("button",{ref:function(t){return e.menuItem=t},class:n,type:"button",disabled:this.disabled,"aria-label":this.a11yLabel,onFocus:this.onFocus,onBlur:this.onBlur},this.renderInner(t)))};Object.defineProperty(e.prototype,"element",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();StzhMenuItem.style=stzhMenuItemCss;export{StzhMenu as stzh_menu,StzhMenuItem as stzh_menu_item};
1
+ var __awaiter=this&&this.__awaiter||function(e,t,n,s){function i(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,r){function o(e){try{h(s.next(e))}catch(e){r(e)}}function a(e){try{h(s["throw"](e))}catch(e){r(e)}}function h(e){e.done?n(e.value):i(e.value).then(o,a)}h((s=s.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},s,i,r,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(e){return function(t){return h([e,t])}}function h(a){if(s)throw new TypeError("Generator is already executing.");while(o&&(o=0,a[0]&&(n=0)),n)try{if(s=1,i&&(r=a[0]&2?i["return"]:a[0]?i["throw"]||((r=i["return"])&&r.call(i),0):i.next)&&!(r=r.call(i,a[1])).done)return r;if(i=0,r)a=[a[0]&2,r.value];switch(a[0]){case 0:case 1:r=a;break;case 4:n.label++;return{value:a[1],done:false};case 5:n.label++;i=a[1];a=[0];continue;case 7:a=n.ops.pop();n.trys.pop();continue;default:if(!(r=n.trys,r=r.length>0&&r[r.length-1])&&(a[0]===6||a[0]===2)){n=0;continue}if(a[0]===3&&(!r||a[1]>r[0]&&a[1]<r[3])){n.label=a[1];break}if(a[0]===6&&n.label<r[1]){n.label=r[1];r=a;break}if(r&&n.label<r[2]){n.label=r[2];n.ops.push(a);break}if(r[2])n.ops.pop();n.trys.pop();continue}a=t.call(e,n)}catch(e){a=[6,e];i=0}finally{s=r=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:true}}};import{r as registerInstance,h,a as Host,c as createEvent,F as Fragment,g as getElement}from"./index-67fd55c9.js";import{h as hasSlot}from"./utils-8f264f12.js";var stzhMenuCss=".sc-stzh-menu-h{font-family:var(--stzh-font-family-regular);font-weight:var(--stzh-font-weight-regular);font-style:normal;color:var(--stzh-base-color);-webkit-box-sizing:border-box;box-sizing:border-box;display:block}[hidden].sc-stzh-menu-h{display:none}.sc-stzh-menu-h *.sc-stzh-menu,.sc-stzh-menu-h *.sc-stzh-menu::before,.sc-stzh-menu-h *.sc-stzh-menu::after{-webkit-box-sizing:border-box;box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness)}.sc-stzh-menu-h .sc-stzh-menu-s>stzh-hr{margin-top:var(--stzh-space-xsmall);margin-bottom:var(--stzh-space-xsmall)}.stzh-menu.sc-stzh-menu{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}";var StzhMenu=function(){function e(e){registerInstance(this,e)}e.prototype.render=function(){return h(Host,{role:"menu"},h("div",{class:"stzh-menu"},h("slot",null)))};return e}();StzhMenu.style=stzhMenuCss;var stzhMenuItemCss=".sc-stzh-menu-item-h{font-family:var(--stzh-font-family-regular);font-weight:var(--stzh-font-weight-regular);font-style:normal;color:var(--stzh-base-color);-webkit-box-sizing:border-box;box-sizing:border-box;display:block}[hidden].sc-stzh-menu-item-h{display:none}.sc-stzh-menu-item-h *.sc-stzh-menu-item,.sc-stzh-menu-item-h *.sc-stzh-menu-item::before,.sc-stzh-menu-item-h *.sc-stzh-menu-item::after{-webkit-box-sizing:border-box;box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness)}.sc-stzh-menu-item-h{--height:var(--stzh-menu-item-height);--color:var(--stzh-color-grey70);--background-color:transparent;--icon-size:var(--stzh-icon-size-small);--hover-color:var(--stzh-color-grey70);--hover-background-color:var(--stzh-color-grey5)}[active].sc-stzh-menu-item-h:not([active=false]){--color:var(--stzh-color-primary, var(--stzh-color-zueriblue));--hover-color:var(--stzh-color-primary-hover, var(--stzh-color-zueribluedark));--hover-background-color:var(--stzh-color-primary8)}[disabled].sc-stzh-menu-item-h:not([disabled=false]){--color:var(--stzh-color-white);--background-color:var(--stzh-color-grey13);--hover-color:var(--stzh-color-white);--hover-background-color:var(--stzh-color-grey13)}.sc-stzh-menu-item-h .sc-stzh-menu-item-s>stzh-icon,.stzh-menu-item__icon.sc-stzh-menu-item{--size:var(--icon-size)}.stzh-menu-item.sc-stzh-menu-item{font-size:var(--stzh-font-micro-font-size);line-height:var(--stzh-font-micro-text-line-height);font-family:inherit;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:stretch;justify-content:stretch;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-text-decoration-line:none;text-decoration-line:none;border:none;padding:var(--stzh-space-xsmall) var(--stzh-space-medium);padding-left:var(--stzh-space-large);color:var(--color);background-color:var(--background-color);width:100%;height:var(--height);line-height:var(--height);-webkit-transition-duration:var(--stzh-base-transition-animation-speed);transition-duration:var(--stzh-base-transition-animation-speed);-webkit-transition-property:color, background-color, border-color;transition-property:color, background-color, border-color;cursor:pointer}.stzh-menu-item.sc-stzh-menu-item:hover{color:var(--hover-color);background-color:var(--hover-background-color)}.stzh-menu-item__icon-wrapper.sc-stzh-menu-item{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0;width:auto;height:1em}.stzh-menu-item__badge.sc-stzh-menu-item{position:absolute;z-index:1;top:calc(var(--stzh-space-xsmall) * -1);right:calc(var(--stzh-space-xsmall) * -1)}.stzh-menu-item__icon-wrapper.sc-stzh-menu-item+.stzh-menu-item__text.sc-stzh-menu-item:not(:empty){margin-left:var(--stzh-space-xsmall)}.stzh-menu-item__text.sc-stzh-menu-item{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stzh-menu-item--is-disabled.sc-stzh-menu-item{cursor:not-allowed}";var StzhMenuItem=function(){function e(e){var t=this;registerInstance(this,e);this.stzhFocus=createEvent(this,"stzhFocus",7);this.stzhBlur=createEvent(this,"stzhBlur",7);this.focusedByInput=false;this.onRootFocus=function(){if(!t.focusedByInput){t.setFocus()}t.focusedByInput=false};this.onFocus=function(e){t.focusedByInput=true;var n=new FocusEvent("focus",{view:window,bubbles:false,cancelable:false});t.element.dispatchEvent(n);t.stzhFocus.emit({component:"stzh-menu-item",originalEvent:e})};this.onBlur=function(e){var n=new FocusEvent("blur",{view:window,bubbles:false,cancelable:false});t.element.dispatchEvent(n);t.stzhBlur.emit({component:"stzh-menu-item",originalEvent:e})};this.badge="";this.badgeType="default";this.badgeEmpty=false;this.disabled=false;this.active=false;this.icon="";this.label="";this.href="";this.target="";this.a11yLabel=undefined;this.analyticsId=undefined}e.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.menuItem.focus();return[2]}))}))};e.prototype.componentDidRender=function(){var e=this;requestAnimationFrame((function(){e.menuItem.setAttribute("s-object-id",e.analyticsId||e.text.innerText)}))};e.prototype.renderInner=function(e){var t=this;return h(Fragment,null,e&&h("div",{class:"stzh-menu-item__icon-wrapper"},this.icon?h("stzh-icon",{class:"stzh-menu-item__icon",name:this.icon}):h("slot",{name:"icon"}),(this.badge||this.badgeEmpty)&&h("stzh-badge",{class:"stzh-menu-item__badge",label:this.badge,type:this.badgeType})),h("div",{ref:function(e){return t.text=e},class:"stzh-menu-item__text"},this.label?this.label:h("slot",null)))};e.prototype.render=function(){var e=this;var t=hasSlot(this.element,"icon")||!!this.icon;var n={"stzh-menu-item":true,"stzh-menu-item--has-icon":t,"stzh-menu-item--has-badge":!!this.badge,"stzh-menu-item--is-disabled":this.disabled,"stzh-menu-item--is-active":this.active};return h(Host,{role:"menuitem",tabindex:this.disabled?null:"-1",onFocus:this.onRootFocus},this.href?h("a",{ref:function(t){return e.menuItem=t},href:this.disabled?null:this.href,target:this.target,class:n,"aria-label":this.a11yLabel||null,onFocus:this.onFocus,onBlur:this.onBlur},this.renderInner(t)):h("button",{ref:function(t){return e.menuItem=t},class:n,type:"button",disabled:this.disabled,"aria-label":this.a11yLabel||null,onFocus:this.onFocus,onBlur:this.onBlur},this.renderInner(t)))};Object.defineProperty(e.prototype,"element",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();StzhMenuItem.style=stzhMenuItemCss;export{StzhMenu as stzh_menu,StzhMenuItem as stzh_menu_item};
2
2
  //# sourceMappingURL=stzh-menu_2.entry.js.map