dap-design-system 0.62.3 → 0.62.4

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.
@@ -23,29 +23,29 @@ import { state as $ } from "../../node_modules/@lit/reactive-element/decorators/
23
23
  import { query as v } from "../../node_modules/@lit/reactive-element/decorators/query.js";
24
24
  import { ifDefined as o } from "../../node_modules/lit-html/directives/if-defined.js";
25
25
  import { html as i } from "../../node_modules/lit-html/static.js";
26
- import { getValidityStateObject as D } from "../../common/utils.js";
27
- import { GenericFormElement as w } from "../../internal/mixin/genericFormElement.js";
26
+ import { getValidityStateObject as D, idInScope as w } from "../../common/utils.js";
27
+ import { GenericFormElement as k } from "../../internal/mixin/genericFormElement.js";
28
28
  import "../../localization/localization.js";
29
- import k from "../feedback/feedback.component.js";
30
- import S from "../form/form-label/form-label.component.js";
31
- import A from "../icon/icon.component.js";
29
+ import S from "../feedback/feedback.component.js";
30
+ import A from "../form/form-label/form-label.component.js";
31
+ import I from "../icon/icon.component.js";
32
32
  import L from "../icon-button/icon-button.component.js";
33
33
  import C from "../icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component.js";
34
- import I from "../icons/system/system-loading-spinner/system-loading-spinner.component.js";
35
- import x from "../option-list/option-list.component.js";
36
- import V from "../popup/popup.component.js";
37
- import O from "../tooltip/tooltip.component.js";
38
- import T from "../tray/tray.component.js";
39
- import B from "../typography/typography.component.js";
40
- import q from "./select.scss.js";
41
- import g, { t as N } from "../../node_modules/i18next/dist/esm/i18next.js";
42
- import { unsafeCSS as z } from "../../node_modules/@lit/reactive-element/css-tag.js";
43
- var M = Object.defineProperty, n = (u, e, t, s) => {
34
+ import x from "../icons/system/system-loading-spinner/system-loading-spinner.component.js";
35
+ import V from "../option-list/option-list.component.js";
36
+ import O from "../popup/popup.component.js";
37
+ import T from "../tooltip/tooltip.component.js";
38
+ import B from "../tray/tray.component.js";
39
+ import q from "../typography/typography.component.js";
40
+ import N from "./select.scss.js";
41
+ import g, { t as z } from "../../node_modules/i18next/dist/esm/i18next.js";
42
+ import { unsafeCSS as M } from "../../node_modules/@lit/reactive-element/css-tag.js";
43
+ var E = Object.defineProperty, n = (u, e, t, s) => {
44
44
  for (var l = void 0, p = u.length - 1, m; p >= 0; p--)
45
45
  (m = u[p]) && (l = m(e, t, l) || l);
46
- return l && M(e, t, l), l;
46
+ return l && E(e, t, l), l;
47
47
  };
48
- const c = class c extends w {
48
+ const c = class c extends k {
49
49
  constructor() {
50
50
  super(...arguments), this.placement = "bottom-start", this.opened = !1, this.isMobile = !1, this.native = !1, this.loading = !1, this.noAnimation = !1, this.floatingStrategy = "absolute", this.disableViewportAutoClose = !1, this.languageChangeHandler = () => {
51
51
  this.requestUpdate();
@@ -142,7 +142,7 @@ const c = class c extends w {
142
142
  });
143
143
  }
144
144
  get validationMessage() {
145
- return N("form.validationMessage.select");
145
+ return z("form.validationMessage.select");
146
146
  }
147
147
  /** Get the current display text for the selected item, dynamically fetching from the option */
148
148
  get selectedDisplayText() {
@@ -231,7 +231,6 @@ const c = class c extends w {
231
231
  `;
232
232
  }
233
233
  renderTriggerElement() {
234
- var e;
235
234
  return i` <button
236
235
  slot="trigger"
237
236
  part="trigger"
@@ -257,7 +256,11 @@ const c = class c extends w {
257
256
  aria-describedby=${o(this.getAriaDescribedBy())}
258
257
  aria-disabled=${this.disabled}
259
258
  aria-controls="option-list"
260
- aria-activedescendant=${o((e = this.getActiveDescendant()) == null ? void 0 : e.id)}
259
+ aria-activedescendant=${o(
260
+ // Options render in option-list's shadow root, out of this scope; a
261
+ // cross-scope IDREF is ignored by browsers, so only same-scope ids are set
262
+ w(this.shadowRoot, this.getActiveDescendant())
263
+ )}
261
264
  ?required=${this.required}
262
265
  ?readonly=${this.readonly}
263
266
  ?autofocus=${this.autofocus}
@@ -382,18 +385,18 @@ const c = class c extends w {
382
385
  }
383
386
  };
384
387
  c.tagName = "dap-ds-select", c.dependencies = {
385
- "dap-ds-icon-loading-spinner": I,
388
+ "dap-ds-icon-loading-spinner": x,
386
389
  "dap-ds-icon-arrow-down-s-line": C,
387
- "dap-ds-option-list": x,
388
- "dap-ds-form-label": S,
389
- "dap-ds-tooltip": O,
390
+ "dap-ds-option-list": V,
391
+ "dap-ds-form-label": A,
392
+ "dap-ds-tooltip": T,
390
393
  "dap-ds-icon-button": L,
391
- "dap-ds-icon": A,
392
- "dap-ds-typography": B,
393
- "dap-ds-popup": V,
394
- "dap-ds-tray": T,
395
- "dap-ds-feedback": k
396
- }, c.styles = z(q);
394
+ "dap-ds-icon": I,
395
+ "dap-ds-typography": q,
396
+ "dap-ds-popup": O,
397
+ "dap-ds-tray": B,
398
+ "dap-ds-feedback": S
399
+ }, c.styles = M(N);
397
400
  let a = c;
398
401
  n([
399
402
  v("button")
@@ -1 +1 @@
1
- {"version":3,"file":"select.component.js","sources":["../../../src/components/select/select.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport {\n CommonFormElementSize,\n FloatingStrategy,\n PopupPlacement,\n} from '@/common/types'\nimport { getValidityStateObject } from '@/common/utils'\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\nimport { i18next, t } from '@/localization/localization'\n\nimport DapDSFeedback from '../feedback/feedback.component'\nimport DapDSFormLabel from '../form/form-label/form-label.component'\nimport DapDSIcon from '../icon/icon.component'\nimport DapDSIconButton from '../icon-button/icon-button.component'\nimport ArrowsArrowDownSLine from '../icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component'\nimport SystemLoadingSpinner from '../icons/system/system-loading-spinner/system-loading-spinner.component'\nimport DapDSOptionGroup from '../option-group/option-group.component'\nimport DapDSOptionItem from '../option-item/option-item.component'\nimport DapDSOptionList from '../option-list/option-list.component'\nimport DapDSPopup from '../popup/popup.component'\nimport DapDSTooltip from '../tooltip/tooltip.component'\nimport DapDSTray from '../tray/tray.component'\nimport DapDSTypography from '../typography/typography.component'\nimport styles from './select.scss?inline'\n\n/**\n * `dap-ds-select`\n * @summary A select is a form element that allows the user to select one option from a set.\n * @element dap-ds-select\n * @title - Select\n *\n * @event {{ value: string }} dds-change - Fired when the select value changes.\n * @event {{ void }} dds-blur - Emitted when the select loses focus.\n * @event {{ void }} dds-focus - Emitted when the select gains focus.\n * @event {{ void }} dds-opened - Emitted when the select dropdown is opened.\n * @event {{ void }} dds-closed - Emitted when the select dropdown is closed.\n *\n * @property {string} value - The value of the select.\n * @property {string} label - The label of the select.\n * @property {boolean} hideLabel - Visually hides the label while keeping it available to assistive technology. (default: false)\n * @property {string} description - The description of the select.\n * @property {string} tooltip - The tooltip of the select.\n * @property {'top' | 'right' | 'bottom' | 'left'} tooltipPlacement - The tooltip placement of the select.\n * @property {'xs' | 'sm' | 'lg'} size - The size of the select. Default is `sm`.\n * @property {boolean} disabled - Whether the select is disabled.\n * @property {boolean} required - Whether the select is required.\n * @property {boolean} readonly - Whether the select is readonly.\n * @property {boolean} autofocus - Whether the select is autofocus.\n * @property {string} feedback - The feedback of the select.\n * @property {negative | positive | warning} feedbackType - The feedback type of the select. Can be `negative`, `positive`, or `warning`.\n * @property {string} status - The status of the select. Can be `success` or `error`.\n * @property {boolean} optional - The optional state of the select.\n * @property {string} optionalLabel - The optional label of the select.\n * @property {string} requiredLabel - The required indicator of the select. (default: '*')\n * @property {boolean} subtle - The weight of the label. Default is `false`\n *\n * @csspart base - The main select container.\n * @csspart trigger - The trigger button of the select.\n * @csspart label - The label of the select.\n * @csspart description - The description of the select.\n * @csspart feedback - The feedback of the select.\n * @csspart tooltip - The tooltip of the select.\n * @csspart popup-base - The base of the popup.\n * @csspart option-list - The option list of the select.\n * @csspart option-item - The option item of the select.\n * @csspart option-item-base - The base of the option item.\n * @csspart option-item-label - The label of the option item.\n * @csspart option-item-prefix - The prefix of the option item.\n * @csspart option-item-suffix - The suffix of the option item.\n * @csspart indicator-icon - The indicator icon of the select.\n * @csspart mobile-tray - The mobile tray of the select.\n * @csspart mobile-content - The mobile content of the select.\n * @csspart mobile-body - The mobile body of the select.\n * @csspart mobile-header - The mobile header of the select.\n * @csspart mobile-footer - The mobile footer of the select.\n *\n * @cssproperty --dds-select-min-height - Minimum height of the select component (default: var(--dds-spacing-1000))\n * @cssproperty --dds-select-padding - Padding of the select component (default: var(--dds-spacing-300))\n * @cssproperty --dds-select-column-gap - Column gap of the select component (default: var(--dds-spacing-100))\n * @cssproperty --dds-select-border-color - Border color of the select component (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-select-border-radius - Border radius of the select component (default: var(--dds-radius-base))\n * @cssproperty --dds-select-bg-color - Background color of the select component (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-select-text-color - Text color of the select component (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-select-icon-right - Right position of the icon (default: var(--dds-spacing-200))\n * @cssproperty --dds-select-icon-color - Color of the icon (default: var(--dds-icon-neutral-subtle))\n * @cssproperty --dds-select-text-margin-right - Right margin of the text (default: var(--dds-spacing-600))\n * @cssproperty --dds-select-disabled-border-color - Border color when disabled (default: var(--dds-background-neutral-stronger))\n * @cssproperty --dds-select-disabled-bg-color - Background color when disabled (default: var(--dds-background-neutral-stronger))\n * @cssproperty --dds-select-disabled-text-color - Text color when disabled (default: var(--dds-text-neutral-disabled))\n * @cssproperty --dds-select-error-border-color - Border color in error state (default: var(--dds-border-negative-base))\n * @cssproperty --dds-select-success-border-color - Border color in success state (default: var(--dds-border-positive-base))\n * @cssproperty --dds-select-xs-min-height - Minimum height for extra small size (default: var(--dds-spacing-800))\n * @cssproperty --dds-select-xs-padding - Padding for extra small size (default: var(--dds-spacing-200))\n * @cssproperty --dds-select-xs-font-size - Font size for extra small size (default: var(--dds-font-sm))\n * @cssproperty --dds-select-lg-min-height - Minimum height for large size (default: var(--dds-spacing-1200))\n * @cssproperty --dds-select-lg-padding - Padding for large size (default: var(--dds-spacing-400))\n * @cssproperty --dds-select-lg-font-size - Font size for large size (default: var(--dds-font-lg))\n * @cssproperty --dds-select-lg-icon-right - Right position of the icon for large size (default: var(--dds-spacing-300))\n * @cssproperty --dds-select-lg-icon-color - Color of the icon for large size (default: var(--dds-text-icon-neutral-subtle))\n * @cssproperty --dds-select-popup-bg-color - Background color of the popup (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-select-icon-opened-transform - Transform of the icon when the select is opened (default: rotate(90deg))\n *\n * @slot - The option list of the select.\n * @slot indicator-icon - The indicator icon of the select.\n */\nexport default class DapDSSelect extends GenericFormElement {\n static tagName = 'dap-ds-select'\n\n static dependencies = {\n 'dap-ds-icon-loading-spinner': SystemLoadingSpinner,\n 'dap-ds-icon-arrow-down-s-line': ArrowsArrowDownSLine,\n 'dap-ds-option-list': DapDSOptionList,\n 'dap-ds-form-label': DapDSFormLabel,\n 'dap-ds-tooltip': DapDSTooltip,\n 'dap-ds-icon-button': DapDSIconButton,\n 'dap-ds-icon': DapDSIcon,\n 'dap-ds-typography': DapDSTypography,\n 'dap-ds-popup': DapDSPopup,\n 'dap-ds-tray': DapDSTray,\n 'dap-ds-feedback': DapDSFeedback,\n }\n\n /**\n * @ignore\n */\n @query('button') triggerButton!: HTMLButtonElement\n\n /**\n * @ignore\n */\n @query('dap-ds-option-list') optionList!: DapDSOptionList\n\n /** The popup placement of the select\n * @type {'top' | 'top-start' | 'top-end' | 'right' | 'right-start'| 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'}\n */\n @property({ reflect: true }) placement: PopupPlacement = 'bottom-start'\n\n /** Whether the select dropdown is opened.*/\n @property({ type: Boolean, reflect: true }) opened? = false\n\n /** The placeholder of the select. */\n @property() placeholder: string | null\n\n /** The sync size of the select dropdown */\n @property({ type: Boolean }) sync?: boolean\n\n /** Whether the select is in mobile mode. */\n @property({ type: Boolean }) isMobile?: boolean = false\n\n /** Whether to render a native HTML select element for mobile-friendly option selection. */\n @property({ type: Boolean }) native?: boolean = false\n\n /** The loading state of the select. */\n @property({ type: Boolean }) loading?: boolean = false\n\n /** The max heigth of the select dropdown. */\n @property({ type: Number }) maxHeight?: number\n\n /** Whether the select dropdown indicator is animated or not */\n @property({ type: Boolean }) noAnimation?: boolean = false\n\n /** The floating strategy of the select dropdown\n * @type {'absolute' | 'fixed'}\n */\n @property({ reflect: true }) floatingStrategy: FloatingStrategy = 'absolute'\n\n /** Whether to keep popup open when trigger leaves viewport. */\n @property({ type: Boolean }) disableViewportAutoClose: boolean = false\n\n /**\n * @ignore\n */\n @state() selectedItem: any\n\n static readonly styles = unsafeCSS(styles)\n\n private languageChangeHandler = () => {\n // Force re-render when language changes to update selectedDisplayText\n this.requestUpdate()\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n // Listen for language changes to update the displayed text\n i18next.on('languageChanged', this.languageChangeHandler)\n\n // Ensure native browser validation UI is suppressed by default,\n // similar to other form components (inputs, combobox, etc.)\n this.addEventListener('invalid', this.handleInvalid)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n // Clean up language change listener\n i18next.off('languageChanged', this.languageChangeHandler)\n\n this.removeEventListener('invalid', this.handleInvalid)\n }\n\n /**\n * Lifecycle method to handle property changes\n */\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties)\n\n // Handle when value is set to undefined or null externally\n if (changedProperties.has('value')) {\n const newValue = this.value\n if (newValue === undefined || newValue === null) {\n if (this.selectedItem !== null) {\n this.selectedItem = null\n this.setValidity()\n }\n }\n }\n }\n\n private readonly handleClick = () => {\n if (this.readonly || this.disabled) {\n return\n }\n\n this.opened ? this.hideDropDown() : this.showDropDown()\n }\n\n private readonly handleKeyDown = async (event: KeyboardEvent) => {\n if (event.key === 'Tab' || event.key === 'Shift') {\n return\n }\n\n if (this.readonly) {\n return\n }\n\n event.preventDefault()\n\n if (event.key === 'Enter' || event.key === ' ') {\n return this.opened ? this.hideDropDown() : this.showDropDown()\n }\n\n if (event.key === 'Escape') {\n this.hideDropDown()\n return this.focus()\n }\n\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight'\n ) {\n if (!this.opened) {\n return this.showDropDown()\n }\n\n return\n }\n\n this.emit('dds-keydown', event)\n\n // typing\n this.showDropDown(event.key)\n }\n\n private readonly handleListKeyDown = (event: CustomEvent) => {\n if (event.detail?.key === 'Tab') {\n // Return focus to the trigger synchronously so the native Tab continues\n // from there and leaves the select instead of cycling inside the list.\n this.hideDropDown({ skipFocus: true })\n this.focus()\n return\n }\n\n if (event.detail?.key === 'Escape') {\n this.hideDropDown()\n }\n }\n\n private readonly handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n if (this && !path.includes(this)) {\n this.hideDropDown()\n }\n }\n\n private readonly handlePopupAutoClose = () => {\n this.hideDropDown({ skipFocus: true })\n }\n\n private readonly handleFocus = () => {\n this.emit('dds-focus')\n }\n\n private readonly handleBlur = () => {\n this.emit('dds-blur')\n }\n\n formResetCallback() {\n this.internals.setValidity({})\n this.internals.setFormValue(this.defaultValue)\n this.value = this.defaultValue\n this.selectedItem = this.defaultValue\n }\n\n async showDropDown(key?: string) {\n if (this.opened) {\n return\n }\n\n this.opened = true\n\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n await this.updateComplete\n this.optionList.captureFocus(key)\n\n // Force update to ensure aria-activedescendant is set correctly\n await this.updateComplete\n\n this.emit('dds-opened')\n }\n\n async hideDropDown(options?: { skipFocus?: boolean }) {\n if (!this.opened) {\n return\n }\n\n this.opened = false\n\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n await this.updateComplete\n this.optionList.removeFocus()\n\n if (!options?.skipFocus) {\n this.focus()\n }\n\n this.emit('dds-closed')\n }\n\n get focusElement() {\n return this.triggerButton\n }\n\n /**\n * Get the active descendant element for aria-activedescendant\n * Returns the currently focused option when dropdown is open, otherwise null\n */\n getActiveDescendant() {\n if (!this.opened) {\n return null\n }\n\n const activeOption = this.optionList?.getActiveOption()\n return activeOption\n }\n\n /**\n * Get the aria-describedby value, combining description and feedback IDs\n */\n private getAriaDescribedBy(): string | undefined {\n const ids: string[] = []\n if (this.description) {\n ids.push('description')\n }\n if (this.feedback) {\n ids.push('feedback')\n }\n return ids.length > 0 ? ids.join(' ') : undefined\n }\n\n // custom validation\n get validity(): ValidityState {\n if (this.internals.validity) {\n return this.internals.validity\n } else {\n return getValidityStateObject({\n valueMissing:\n this.required &&\n (!this.selectedItem ||\n this.selectedItem.value === '' ||\n this.value === '' ||\n this.value === undefined ||\n this.value === null),\n })\n }\n }\n\n get validationMessage(): string {\n return t('form.validationMessage.select')\n }\n\n /** Get the current display text for the selected item, dynamically fetching from the option */\n get selectedDisplayText(): string | null {\n if (!this.selectedItem) return null\n\n // Try to get the current text from the actual option element (reactive to language changes)\n if (this.optionList) {\n const currentOption = Array.from(\n this.optionList.querySelectorAll('dap-ds-option-item'),\n ).find((opt: any) => opt.value === this.selectedItem.value)\n\n if (currentOption) {\n return (currentOption as any).optionText\n }\n }\n\n // Fallback to cached text if option not found\n return this.selectedItem.text\n }\n\n checkValidity() {\n const hasValue =\n !!this.selectedItem &&\n this.selectedItem.value !== '' &&\n this.value !== '' &&\n this.value !== undefined &&\n this.value !== null\n\n return this.required ? hasValue : true\n }\n\n reportValidity() {\n return this.required ? this.checkValidity() : true\n }\n\n setValidity() {\n const isValid = this.checkValidity()\n\n if (!isValid) {\n this.internals.setValidity(\n {\n valueMissing:\n this.required &&\n (!this.selectedItem ||\n this.selectedItem.value === '' ||\n this.value === '' ||\n this.value === undefined ||\n this.value === null),\n },\n this.validationMessage,\n this.triggerButton,\n )\n } else {\n this.internals.setValidity({})\n }\n }\n\n handleInvalid(event: Event) {\n event.preventDefault()\n this.focus()\n }\n\n private readonly handleSelectedChange = (event: CustomEvent) => {\n const val = Object.keys(event.detail).length ? event.detail : null\n const newValue = val?.value\n // The option-list echoes dds-option-change whenever its value is synced from\n // ours (searchOnValueSet), so a programmatic `value` assignment would surface\n // as a user change. A genuine selection changes the value here; a programmatic\n // one has already set it before the echo arrives. Emit only on a real change.\n const changed = newValue !== this.value\n this.selectedItem = val\n this.hideDropDown()\n this.value = newValue\n if (changed) {\n this.emit('dds-change', this.selectedItem)\n }\n\n this.setValidity()\n }\n\n private readonly handleOptionDeselect = () => {\n this.selectedItem = null\n this.value = undefined\n this.emit('dds-change', null)\n\n this.setValidity()\n }\n\n private readonly handleNativeChange = (event: Event) => {\n const select = event.target as HTMLSelectElement\n const value = select.value\n\n // Find matching option-item to get full item data\n const optionItem = this.querySelector(\n `dap-ds-option-item[value=\"${value}\"]`,\n ) as DapDSOptionItem | null\n\n this.value = value\n this.selectedItem = optionItem\n ? { value, text: optionItem.optionText }\n : { value, text: value }\n\n this.emit('dds-change', this.selectedItem)\n this.setValidity()\n }\n\n private renderNativeOption(item: DapDSOptionItem) {\n return html`\n <option\n value=${item.value || ''}\n ?disabled=${item.disabled}\n ?selected=${item.value === this.value}>\n ${item.optionText}\n </option>\n `\n }\n\n private renderNativeOptgroup(group: DapDSOptionGroup) {\n const options = Array.from(\n group.querySelectorAll('dap-ds-option-item'),\n ) as DapDSOptionItem[]\n return html`\n <optgroup label=${group.label || ''} ?disabled=${group.disabled}>\n ${options.map(opt => this.renderNativeOption(opt))}\n </optgroup>\n `\n }\n\n private renderNativeOptions() {\n const children = Array.from(this.children)\n return children.map(child => {\n if (child.tagName === 'DAP-DS-OPTION-GROUP') {\n return this.renderNativeOptgroup(child as DapDSOptionGroup)\n } else if (child.tagName === 'DAP-DS-OPTION-ITEM') {\n return this.renderNativeOption(child as DapDSOptionItem)\n }\n return ''\n })\n }\n\n private renderNativeSelect() {\n return html`\n <div class=\"select-wrapper--native\">\n <select\n class=\"${clsx('select', `select--${this.effectiveSize}`, {\n 'select--disabled': this.disabled,\n 'select--readonly': this.readonly,\n 'select--success': this.status === 'success',\n 'select--error': this.status === 'error',\n 'select--loading': this.loading,\n })}\"\n part=\"trigger\"\n aria-labelledby=${ifDefined(this.label ? 'label' : undefined)}\n aria-describedby=${ifDefined(this.getAriaDescribedBy())}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @change=${this.handleNativeChange}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}>\n ${this.placeholder\n ? html`<option value=\"\" disabled ?selected=${!this.value}>\n ${this.placeholder}\n </option>`\n : ''}\n ${this.renderNativeOptions()}\n </select>\n <div class=\"icon\" part=\"indicator-icon\">\n ${this.loading\n ? html`<dap-ds-icon-loading-spinner></dap-ds-icon-loading-spinner>`\n : html`<slot name=\"indicator-icon\"\n ><dap-ds-icon-arrow-down-s-line></dap-ds-icon-arrow-down-s-line\n ></slot>`}\n </div>\n </div>\n `\n }\n\n renderTriggerElement() {\n return html` <button\n slot=\"trigger\"\n part=\"trigger\"\n role=\"combobox\"\n class=\"${clsx('select', `select--${this.effectiveSize}`, {\n 'select--disabled': this.disabled,\n 'select--readonly': this.readonly,\n 'select--opened': this.opened,\n 'select--loading': this.loading,\n 'select--success': this.status === 'success',\n 'select--error': this.status === 'error',\n 'select--no-animation': this.noAnimation,\n 'select--optional': this.optional,\n })}\"\n aria-expanded=${this.readonly || this.disabled\n ? 'false'\n : this.opened\n ? 'true'\n : 'false'}\n aria-haspopup=${ifDefined(\n this.readonly || this.disabled ? undefined : 'listbox',\n )}\n aria-labelledby=${ifDefined(this.label ? 'label' : undefined)}\n aria-label=${ifDefined(\n this.label\n ? undefined\n : this.ariaLabel ||\n this.selectedDisplayText ||\n this.placeholder ||\n undefined,\n )}\n aria-describedby=${ifDefined(this.getAriaDescribedBy())}\n aria-disabled=${this.disabled}\n aria-controls=\"option-list\"\n aria-activedescendant=${ifDefined(this.getActiveDescendant()?.id)}\n ?required=${this.required}\n ?readonly=${this.readonly}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n tabindex=${this.readonly || this.disabled ? -1 : 0}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @keydown=${this.handleKeyDown}\n @click=${this.handleClick}>\n <span class=\"text\">${this.selectedDisplayText || this.placeholder}</span>\n <div\n class=\"${clsx('icon', {\n 'icon--opened': this.opened,\n 'icon--no-animation': this.noAnimation,\n })}\"\n part=\"indicator-icon\">\n ${this.loading\n ? html`<dap-ds-icon-loading-spinner></dap-ds-icon-loading-spinner>`\n : html`<slot name=\"indicator-icon\"\n ><dap-ds-icon-arrow-down-s-line></dap-ds-icon-arrow-down-s-line\n ></slot>`}\n </div>\n </button>`\n }\n\n renderOptionList() {\n return html` <dap-ds-option-list\n class=\"option-list\"\n part=\"option-list\"\n exportparts=\"option-item, option-item-base, option-item-label, option-item-prefix, option-item-suffix\"\n id=\"option-list\"\n aria-labelledby=${ifDefined(this.label ? 'label' : undefined)}\n searchMode=\"typehead\"\n size=${ifDefined(this.effectiveSize)}\n value=${this.value}\n disableDelaySet\n @dds-option-change=${this.handleSelectedChange}\n @dds-keydown=${this.handleListKeyDown}\n @dds-option-deselect=${this.handleOptionDeselect}>\n <slot></slot>\n </dap-ds-option-list>`\n }\n\n render() {\n return html` <div class=\"label-container\">\n ${this.label &&\n html`<dap-ds-form-label\n part=\"label\"\n id=\"label\"\n .size=${this.effectiveSize}\n .required=${this.required}\n .requiredLabel=${this.requiredLabel}\n .optional=${this.optional}\n .optionalLabel=${this.optionalLabel}\n .subtle=${this.subtle}\n .disabled=${this.disabled}\n class=${clsx('label')}\n .noMargin=${!!this.description}\n for=\"input\"\n .hideLabel=${this.hideLabel}\n label=${ifDefined(this.label)}>\n </dap-ds-form-label>`}\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\"\n placement=${this.tooltipPlacement}>\n <dap-ds-icon-button\n clean\n slot=\"trigger\"\n size=${this.effectiveSize as 'xs' | 'sm' | 'md' | 'lg'}\n iconSize=${this.effectiveSize === 'xs' ? '16' : '22'}\n aria-label=${this.tooltipAriaLabel}\n class=\"input-group__toggle-button\">\n <dap-ds-icon\n name=\"information-line\"\n class=\"info-button\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-tooltip>`}\n </div>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n class=${clsx('input-description')}\n size=${ifDefined(this.effectiveSize as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n <div>\n ${this.native\n ? this.renderNativeSelect()\n : !this.isMobile\n ? html`<dap-ds-popup\n floatingStrategy=${ifDefined(this.floatingStrategy)}\n part=\"base\"\n exportparts=\"popup:popup-base\"\n class=\"select-popup\"\n ?opened=${this.opened}\n ?hasArrow=${false}\n overflow\n placement=${this.placement}\n maxHeight=${ifDefined(this.maxHeight)}\n ?sync=${this.sync}\n ?disableViewportAutoClose=${this.disableViewportAutoClose}\n @dds-close=${this.handlePopupAutoClose}\n size=${ifDefined(this.effectiveSize) as 'lg' | 'sm' | 'xs'}>\n ${this.renderTriggerElement()} ${this.renderOptionList()}\n </dap-ds-popup>`\n : html`\n ${this.renderTriggerElement()}\n <dap-ds-tray\n part=\"mobile-tray\"\n exportparts=\"content: mobile-content, body: mobile-body, header: mobile-header, footer: mobile-footer\"\n ?open=${this.opened}\n closeButton=\"false\"\n header=\"false\"\n >${this.renderOptionList()}</dap-ds-tray\n >\n `}\n ${this.feedback &&\n html`<dap-ds-feedback\n part=\"feedback\"\n feedbackType=${ifDefined(this.feedbackType)}\n feedbackSize=\"${ifDefined(this.effectiveSize as 'lg' | 'sm' | 'xs')}\"\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>`}\n </div>`\n }\n}\n"],"names":["_DapDSSelect","GenericFormElement","event","__async","_a","_b","path","val","newValue","changed","value","optionItem","i18next","changedProperties","key","options","ids","getValidityStateObject","t","currentOption","opt","hasValue","item","html","group","child","clsx","ifDefined","SystemLoadingSpinner","ArrowsArrowDownSLine","DapDSOptionList","DapDSFormLabel","DapDSTooltip","DapDSIconButton","DapDSIcon","DapDSTypography","DapDSPopup","DapDSTray","DapDSFeedback","unsafeCSS","styles","DapDSSelect","__decorateClass","query","property","state"],"mappings":"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"}
1
+ {"version":3,"file":"select.component.js","sources":["../../../src/components/select/select.component.ts"],"sourcesContent":["import clsx from 'clsx'\nimport { unsafeCSS } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { html } from 'lit/static-html.js'\n\nimport {\n CommonFormElementSize,\n FloatingStrategy,\n PopupPlacement,\n} from '@/common/types'\nimport { getValidityStateObject, idInScope } from '@/common/utils'\nimport { GenericFormElement } from '@/internal/mixin/genericFormElement'\nimport { i18next, t } from '@/localization/localization'\n\nimport DapDSFeedback from '../feedback/feedback.component'\nimport DapDSFormLabel from '../form/form-label/form-label.component'\nimport DapDSIcon from '../icon/icon.component'\nimport DapDSIconButton from '../icon-button/icon-button.component'\nimport ArrowsArrowDownSLine from '../icons/arrows/arrows-arrow-down-s-line/arrows-arrow-down-s-line.component'\nimport SystemLoadingSpinner from '../icons/system/system-loading-spinner/system-loading-spinner.component'\nimport DapDSOptionGroup from '../option-group/option-group.component'\nimport DapDSOptionItem from '../option-item/option-item.component'\nimport DapDSOptionList from '../option-list/option-list.component'\nimport DapDSPopup from '../popup/popup.component'\nimport DapDSTooltip from '../tooltip/tooltip.component'\nimport DapDSTray from '../tray/tray.component'\nimport DapDSTypography from '../typography/typography.component'\nimport styles from './select.scss?inline'\n\n/**\n * `dap-ds-select`\n * @summary A select is a form element that allows the user to select one option from a set.\n * @element dap-ds-select\n * @title - Select\n *\n * @event {{ value: string }} dds-change - Fired when the select value changes.\n * @event {{ void }} dds-blur - Emitted when the select loses focus.\n * @event {{ void }} dds-focus - Emitted when the select gains focus.\n * @event {{ void }} dds-opened - Emitted when the select dropdown is opened.\n * @event {{ void }} dds-closed - Emitted when the select dropdown is closed.\n *\n * @property {string} value - The value of the select.\n * @property {string} label - The label of the select.\n * @property {boolean} hideLabel - Visually hides the label while keeping it available to assistive technology. (default: false)\n * @property {string} description - The description of the select.\n * @property {string} tooltip - The tooltip of the select.\n * @property {'top' | 'right' | 'bottom' | 'left'} tooltipPlacement - The tooltip placement of the select.\n * @property {'xs' | 'sm' | 'lg'} size - The size of the select. Default is `sm`.\n * @property {boolean} disabled - Whether the select is disabled.\n * @property {boolean} required - Whether the select is required.\n * @property {boolean} readonly - Whether the select is readonly.\n * @property {boolean} autofocus - Whether the select is autofocus.\n * @property {string} feedback - The feedback of the select.\n * @property {negative | positive | warning} feedbackType - The feedback type of the select. Can be `negative`, `positive`, or `warning`.\n * @property {string} status - The status of the select. Can be `success` or `error`.\n * @property {boolean} optional - The optional state of the select.\n * @property {string} optionalLabel - The optional label of the select.\n * @property {string} requiredLabel - The required indicator of the select. (default: '*')\n * @property {boolean} subtle - The weight of the label. Default is `false`\n *\n * @csspart base - The main select container.\n * @csspart trigger - The trigger button of the select.\n * @csspart label - The label of the select.\n * @csspart description - The description of the select.\n * @csspart feedback - The feedback of the select.\n * @csspart tooltip - The tooltip of the select.\n * @csspart popup-base - The base of the popup.\n * @csspart option-list - The option list of the select.\n * @csspart option-item - The option item of the select.\n * @csspart option-item-base - The base of the option item.\n * @csspart option-item-label - The label of the option item.\n * @csspart option-item-prefix - The prefix of the option item.\n * @csspart option-item-suffix - The suffix of the option item.\n * @csspart indicator-icon - The indicator icon of the select.\n * @csspart mobile-tray - The mobile tray of the select.\n * @csspart mobile-content - The mobile content of the select.\n * @csspart mobile-body - The mobile body of the select.\n * @csspart mobile-header - The mobile header of the select.\n * @csspart mobile-footer - The mobile footer of the select.\n *\n * @cssproperty --dds-select-min-height - Minimum height of the select component (default: var(--dds-spacing-1000))\n * @cssproperty --dds-select-padding - Padding of the select component (default: var(--dds-spacing-300))\n * @cssproperty --dds-select-column-gap - Column gap of the select component (default: var(--dds-spacing-100))\n * @cssproperty --dds-select-border-color - Border color of the select component (default: var(--dds-border-neutral-base))\n * @cssproperty --dds-select-border-radius - Border radius of the select component (default: var(--dds-radius-base))\n * @cssproperty --dds-select-bg-color - Background color of the select component (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-select-text-color - Text color of the select component (default: var(--dds-text-neutral-base))\n * @cssproperty --dds-select-icon-right - Right position of the icon (default: var(--dds-spacing-200))\n * @cssproperty --dds-select-icon-color - Color of the icon (default: var(--dds-icon-neutral-subtle))\n * @cssproperty --dds-select-text-margin-right - Right margin of the text (default: var(--dds-spacing-600))\n * @cssproperty --dds-select-disabled-border-color - Border color when disabled (default: var(--dds-background-neutral-stronger))\n * @cssproperty --dds-select-disabled-bg-color - Background color when disabled (default: var(--dds-background-neutral-stronger))\n * @cssproperty --dds-select-disabled-text-color - Text color when disabled (default: var(--dds-text-neutral-disabled))\n * @cssproperty --dds-select-error-border-color - Border color in error state (default: var(--dds-border-negative-base))\n * @cssproperty --dds-select-success-border-color - Border color in success state (default: var(--dds-border-positive-base))\n * @cssproperty --dds-select-xs-min-height - Minimum height for extra small size (default: var(--dds-spacing-800))\n * @cssproperty --dds-select-xs-padding - Padding for extra small size (default: var(--dds-spacing-200))\n * @cssproperty --dds-select-xs-font-size - Font size for extra small size (default: var(--dds-font-sm))\n * @cssproperty --dds-select-lg-min-height - Minimum height for large size (default: var(--dds-spacing-1200))\n * @cssproperty --dds-select-lg-padding - Padding for large size (default: var(--dds-spacing-400))\n * @cssproperty --dds-select-lg-font-size - Font size for large size (default: var(--dds-font-lg))\n * @cssproperty --dds-select-lg-icon-right - Right position of the icon for large size (default: var(--dds-spacing-300))\n * @cssproperty --dds-select-lg-icon-color - Color of the icon for large size (default: var(--dds-text-icon-neutral-subtle))\n * @cssproperty --dds-select-popup-bg-color - Background color of the popup (default: var(--dds-background-neutral-subtle))\n * @cssproperty --dds-select-icon-opened-transform - Transform of the icon when the select is opened (default: rotate(90deg))\n *\n * @slot - The option list of the select.\n * @slot indicator-icon - The indicator icon of the select.\n */\nexport default class DapDSSelect extends GenericFormElement {\n static tagName = 'dap-ds-select'\n\n static dependencies = {\n 'dap-ds-icon-loading-spinner': SystemLoadingSpinner,\n 'dap-ds-icon-arrow-down-s-line': ArrowsArrowDownSLine,\n 'dap-ds-option-list': DapDSOptionList,\n 'dap-ds-form-label': DapDSFormLabel,\n 'dap-ds-tooltip': DapDSTooltip,\n 'dap-ds-icon-button': DapDSIconButton,\n 'dap-ds-icon': DapDSIcon,\n 'dap-ds-typography': DapDSTypography,\n 'dap-ds-popup': DapDSPopup,\n 'dap-ds-tray': DapDSTray,\n 'dap-ds-feedback': DapDSFeedback,\n }\n\n /**\n * @ignore\n */\n @query('button') triggerButton!: HTMLButtonElement\n\n /**\n * @ignore\n */\n @query('dap-ds-option-list') optionList!: DapDSOptionList\n\n /** The popup placement of the select\n * @type {'top' | 'top-start' | 'top-end' | 'right' | 'right-start'| 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'}\n */\n @property({ reflect: true }) placement: PopupPlacement = 'bottom-start'\n\n /** Whether the select dropdown is opened.*/\n @property({ type: Boolean, reflect: true }) opened? = false\n\n /** The placeholder of the select. */\n @property() placeholder: string | null\n\n /** The sync size of the select dropdown */\n @property({ type: Boolean }) sync?: boolean\n\n /** Whether the select is in mobile mode. */\n @property({ type: Boolean }) isMobile?: boolean = false\n\n /** Whether to render a native HTML select element for mobile-friendly option selection. */\n @property({ type: Boolean }) native?: boolean = false\n\n /** The loading state of the select. */\n @property({ type: Boolean }) loading?: boolean = false\n\n /** The max heigth of the select dropdown. */\n @property({ type: Number }) maxHeight?: number\n\n /** Whether the select dropdown indicator is animated or not */\n @property({ type: Boolean }) noAnimation?: boolean = false\n\n /** The floating strategy of the select dropdown\n * @type {'absolute' | 'fixed'}\n */\n @property({ reflect: true }) floatingStrategy: FloatingStrategy = 'absolute'\n\n /** Whether to keep popup open when trigger leaves viewport. */\n @property({ type: Boolean }) disableViewportAutoClose: boolean = false\n\n /**\n * @ignore\n */\n @state() selectedItem: any\n\n static readonly styles = unsafeCSS(styles)\n\n private languageChangeHandler = () => {\n // Force re-render when language changes to update selectedDisplayText\n this.requestUpdate()\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n // Listen for language changes to update the displayed text\n i18next.on('languageChanged', this.languageChangeHandler)\n\n // Ensure native browser validation UI is suppressed by default,\n // similar to other form components (inputs, combobox, etc.)\n this.addEventListener('invalid', this.handleInvalid)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n // Clean up language change listener\n i18next.off('languageChanged', this.languageChangeHandler)\n\n this.removeEventListener('invalid', this.handleInvalid)\n }\n\n /**\n * Lifecycle method to handle property changes\n */\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties)\n\n // Handle when value is set to undefined or null externally\n if (changedProperties.has('value')) {\n const newValue = this.value\n if (newValue === undefined || newValue === null) {\n if (this.selectedItem !== null) {\n this.selectedItem = null\n this.setValidity()\n }\n }\n }\n }\n\n private readonly handleClick = () => {\n if (this.readonly || this.disabled) {\n return\n }\n\n this.opened ? this.hideDropDown() : this.showDropDown()\n }\n\n private readonly handleKeyDown = async (event: KeyboardEvent) => {\n if (event.key === 'Tab' || event.key === 'Shift') {\n return\n }\n\n if (this.readonly) {\n return\n }\n\n event.preventDefault()\n\n if (event.key === 'Enter' || event.key === ' ') {\n return this.opened ? this.hideDropDown() : this.showDropDown()\n }\n\n if (event.key === 'Escape') {\n this.hideDropDown()\n return this.focus()\n }\n\n if (\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp' ||\n event.key === 'ArrowLeft' ||\n event.key === 'ArrowRight'\n ) {\n if (!this.opened) {\n return this.showDropDown()\n }\n\n return\n }\n\n this.emit('dds-keydown', event)\n\n // typing\n this.showDropDown(event.key)\n }\n\n private readonly handleListKeyDown = (event: CustomEvent) => {\n if (event.detail?.key === 'Tab') {\n // Return focus to the trigger synchronously so the native Tab continues\n // from there and leaves the select instead of cycling inside the list.\n this.hideDropDown({ skipFocus: true })\n this.focus()\n return\n }\n\n if (event.detail?.key === 'Escape') {\n this.hideDropDown()\n }\n }\n\n private readonly handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n if (this && !path.includes(this)) {\n this.hideDropDown()\n }\n }\n\n private readonly handlePopupAutoClose = () => {\n this.hideDropDown({ skipFocus: true })\n }\n\n private readonly handleFocus = () => {\n this.emit('dds-focus')\n }\n\n private readonly handleBlur = () => {\n this.emit('dds-blur')\n }\n\n formResetCallback() {\n this.internals.setValidity({})\n this.internals.setFormValue(this.defaultValue)\n this.value = this.defaultValue\n this.selectedItem = this.defaultValue\n }\n\n async showDropDown(key?: string) {\n if (this.opened) {\n return\n }\n\n this.opened = true\n\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n await this.updateComplete\n this.optionList.captureFocus(key)\n\n // Force update to ensure aria-activedescendant is set correctly\n await this.updateComplete\n\n this.emit('dds-opened')\n }\n\n async hideDropDown(options?: { skipFocus?: boolean }) {\n if (!this.opened) {\n return\n }\n\n this.opened = false\n\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n await this.updateComplete\n this.optionList.removeFocus()\n\n if (!options?.skipFocus) {\n this.focus()\n }\n\n this.emit('dds-closed')\n }\n\n get focusElement() {\n return this.triggerButton\n }\n\n /**\n * Get the active descendant element for aria-activedescendant\n * Returns the currently focused option when dropdown is open, otherwise null\n */\n getActiveDescendant() {\n if (!this.opened) {\n return null\n }\n\n const activeOption = this.optionList?.getActiveOption()\n return activeOption\n }\n\n /**\n * Get the aria-describedby value, combining description and feedback IDs\n */\n private getAriaDescribedBy(): string | undefined {\n const ids: string[] = []\n if (this.description) {\n ids.push('description')\n }\n if (this.feedback) {\n ids.push('feedback')\n }\n return ids.length > 0 ? ids.join(' ') : undefined\n }\n\n // custom validation\n get validity(): ValidityState {\n if (this.internals.validity) {\n return this.internals.validity\n } else {\n return getValidityStateObject({\n valueMissing:\n this.required &&\n (!this.selectedItem ||\n this.selectedItem.value === '' ||\n this.value === '' ||\n this.value === undefined ||\n this.value === null),\n })\n }\n }\n\n get validationMessage(): string {\n return t('form.validationMessage.select')\n }\n\n /** Get the current display text for the selected item, dynamically fetching from the option */\n get selectedDisplayText(): string | null {\n if (!this.selectedItem) return null\n\n // Try to get the current text from the actual option element (reactive to language changes)\n if (this.optionList) {\n const currentOption = Array.from(\n this.optionList.querySelectorAll('dap-ds-option-item'),\n ).find((opt: any) => opt.value === this.selectedItem.value)\n\n if (currentOption) {\n return (currentOption as any).optionText\n }\n }\n\n // Fallback to cached text if option not found\n return this.selectedItem.text\n }\n\n checkValidity() {\n const hasValue =\n !!this.selectedItem &&\n this.selectedItem.value !== '' &&\n this.value !== '' &&\n this.value !== undefined &&\n this.value !== null\n\n return this.required ? hasValue : true\n }\n\n reportValidity() {\n return this.required ? this.checkValidity() : true\n }\n\n setValidity() {\n const isValid = this.checkValidity()\n\n if (!isValid) {\n this.internals.setValidity(\n {\n valueMissing:\n this.required &&\n (!this.selectedItem ||\n this.selectedItem.value === '' ||\n this.value === '' ||\n this.value === undefined ||\n this.value === null),\n },\n this.validationMessage,\n this.triggerButton,\n )\n } else {\n this.internals.setValidity({})\n }\n }\n\n handleInvalid(event: Event) {\n event.preventDefault()\n this.focus()\n }\n\n private readonly handleSelectedChange = (event: CustomEvent) => {\n const val = Object.keys(event.detail).length ? event.detail : null\n const newValue = val?.value\n // The option-list echoes dds-option-change whenever its value is synced from\n // ours (searchOnValueSet), so a programmatic `value` assignment would surface\n // as a user change. A genuine selection changes the value here; a programmatic\n // one has already set it before the echo arrives. Emit only on a real change.\n const changed = newValue !== this.value\n this.selectedItem = val\n this.hideDropDown()\n this.value = newValue\n if (changed) {\n this.emit('dds-change', this.selectedItem)\n }\n\n this.setValidity()\n }\n\n private readonly handleOptionDeselect = () => {\n this.selectedItem = null\n this.value = undefined\n this.emit('dds-change', null)\n\n this.setValidity()\n }\n\n private readonly handleNativeChange = (event: Event) => {\n const select = event.target as HTMLSelectElement\n const value = select.value\n\n // Find matching option-item to get full item data\n const optionItem = this.querySelector(\n `dap-ds-option-item[value=\"${value}\"]`,\n ) as DapDSOptionItem | null\n\n this.value = value\n this.selectedItem = optionItem\n ? { value, text: optionItem.optionText }\n : { value, text: value }\n\n this.emit('dds-change', this.selectedItem)\n this.setValidity()\n }\n\n private renderNativeOption(item: DapDSOptionItem) {\n return html`\n <option\n value=${item.value || ''}\n ?disabled=${item.disabled}\n ?selected=${item.value === this.value}>\n ${item.optionText}\n </option>\n `\n }\n\n private renderNativeOptgroup(group: DapDSOptionGroup) {\n const options = Array.from(\n group.querySelectorAll('dap-ds-option-item'),\n ) as DapDSOptionItem[]\n return html`\n <optgroup label=${group.label || ''} ?disabled=${group.disabled}>\n ${options.map(opt => this.renderNativeOption(opt))}\n </optgroup>\n `\n }\n\n private renderNativeOptions() {\n const children = Array.from(this.children)\n return children.map(child => {\n if (child.tagName === 'DAP-DS-OPTION-GROUP') {\n return this.renderNativeOptgroup(child as DapDSOptionGroup)\n } else if (child.tagName === 'DAP-DS-OPTION-ITEM') {\n return this.renderNativeOption(child as DapDSOptionItem)\n }\n return ''\n })\n }\n\n private renderNativeSelect() {\n return html`\n <div class=\"select-wrapper--native\">\n <select\n class=\"${clsx('select', `select--${this.effectiveSize}`, {\n 'select--disabled': this.disabled,\n 'select--readonly': this.readonly,\n 'select--success': this.status === 'success',\n 'select--error': this.status === 'error',\n 'select--loading': this.loading,\n })}\"\n part=\"trigger\"\n aria-labelledby=${ifDefined(this.label ? 'label' : undefined)}\n aria-describedby=${ifDefined(this.getAriaDescribedBy())}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @change=${this.handleNativeChange}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}>\n ${this.placeholder\n ? html`<option value=\"\" disabled ?selected=${!this.value}>\n ${this.placeholder}\n </option>`\n : ''}\n ${this.renderNativeOptions()}\n </select>\n <div class=\"icon\" part=\"indicator-icon\">\n ${this.loading\n ? html`<dap-ds-icon-loading-spinner></dap-ds-icon-loading-spinner>`\n : html`<slot name=\"indicator-icon\"\n ><dap-ds-icon-arrow-down-s-line></dap-ds-icon-arrow-down-s-line\n ></slot>`}\n </div>\n </div>\n `\n }\n\n renderTriggerElement() {\n return html` <button\n slot=\"trigger\"\n part=\"trigger\"\n role=\"combobox\"\n class=\"${clsx('select', `select--${this.effectiveSize}`, {\n 'select--disabled': this.disabled,\n 'select--readonly': this.readonly,\n 'select--opened': this.opened,\n 'select--loading': this.loading,\n 'select--success': this.status === 'success',\n 'select--error': this.status === 'error',\n 'select--no-animation': this.noAnimation,\n 'select--optional': this.optional,\n })}\"\n aria-expanded=${this.readonly || this.disabled\n ? 'false'\n : this.opened\n ? 'true'\n : 'false'}\n aria-haspopup=${ifDefined(\n this.readonly || this.disabled ? undefined : 'listbox',\n )}\n aria-labelledby=${ifDefined(this.label ? 'label' : undefined)}\n aria-label=${ifDefined(\n this.label\n ? undefined\n : this.ariaLabel ||\n this.selectedDisplayText ||\n this.placeholder ||\n undefined,\n )}\n aria-describedby=${ifDefined(this.getAriaDescribedBy())}\n aria-disabled=${this.disabled}\n aria-controls=\"option-list\"\n aria-activedescendant=${ifDefined(\n // Options render in option-list's shadow root, out of this scope; a\n // cross-scope IDREF is ignored by browsers, so only same-scope ids are set\n idInScope(this.shadowRoot, this.getActiveDescendant()),\n )}\n ?required=${this.required}\n ?readonly=${this.readonly}\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n tabindex=${this.readonly || this.disabled ? -1 : 0}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @keydown=${this.handleKeyDown}\n @click=${this.handleClick}>\n <span class=\"text\">${this.selectedDisplayText || this.placeholder}</span>\n <div\n class=\"${clsx('icon', {\n 'icon--opened': this.opened,\n 'icon--no-animation': this.noAnimation,\n })}\"\n part=\"indicator-icon\">\n ${this.loading\n ? html`<dap-ds-icon-loading-spinner></dap-ds-icon-loading-spinner>`\n : html`<slot name=\"indicator-icon\"\n ><dap-ds-icon-arrow-down-s-line></dap-ds-icon-arrow-down-s-line\n ></slot>`}\n </div>\n </button>`\n }\n\n renderOptionList() {\n return html` <dap-ds-option-list\n class=\"option-list\"\n part=\"option-list\"\n exportparts=\"option-item, option-item-base, option-item-label, option-item-prefix, option-item-suffix\"\n id=\"option-list\"\n aria-labelledby=${ifDefined(this.label ? 'label' : undefined)}\n searchMode=\"typehead\"\n size=${ifDefined(this.effectiveSize)}\n value=${this.value}\n disableDelaySet\n @dds-option-change=${this.handleSelectedChange}\n @dds-keydown=${this.handleListKeyDown}\n @dds-option-deselect=${this.handleOptionDeselect}>\n <slot></slot>\n </dap-ds-option-list>`\n }\n\n render() {\n return html` <div class=\"label-container\">\n ${this.label &&\n html`<dap-ds-form-label\n part=\"label\"\n id=\"label\"\n .size=${this.effectiveSize}\n .required=${this.required}\n .requiredLabel=${this.requiredLabel}\n .optional=${this.optional}\n .optionalLabel=${this.optionalLabel}\n .subtle=${this.subtle}\n .disabled=${this.disabled}\n class=${clsx('label')}\n .noMargin=${!!this.description}\n for=\"input\"\n .hideLabel=${this.hideLabel}\n label=${ifDefined(this.label)}>\n </dap-ds-form-label>`}\n ${this.tooltip &&\n html` <dap-ds-tooltip\n part=\"tooltip\"\n content=${this.tooltip}\n mode=\"toggle\"\n placement=${this.tooltipPlacement}>\n <dap-ds-icon-button\n clean\n slot=\"trigger\"\n size=${this.effectiveSize as 'xs' | 'sm' | 'md' | 'lg'}\n iconSize=${this.effectiveSize === 'xs' ? '16' : '22'}\n aria-label=${this.tooltipAriaLabel}\n class=\"input-group__toggle-button\">\n <dap-ds-icon\n name=\"information-line\"\n class=\"info-button\"></dap-ds-icon>\n </dap-ds-icon-button>\n </dap-ds-tooltip>`}\n </div>\n ${this.description &&\n html`\n <dap-ds-typography\n part=\"description\"\n variant=\"description\"\n class=${clsx('input-description')}\n size=${ifDefined(this.effectiveSize as CommonFormElementSize)}\n id=\"description\">\n ${this.description}\n </dap-ds-typography>\n `}\n <div>\n ${this.native\n ? this.renderNativeSelect()\n : !this.isMobile\n ? html`<dap-ds-popup\n floatingStrategy=${ifDefined(this.floatingStrategy)}\n part=\"base\"\n exportparts=\"popup:popup-base\"\n class=\"select-popup\"\n ?opened=${this.opened}\n ?hasArrow=${false}\n overflow\n placement=${this.placement}\n maxHeight=${ifDefined(this.maxHeight)}\n ?sync=${this.sync}\n ?disableViewportAutoClose=${this.disableViewportAutoClose}\n @dds-close=${this.handlePopupAutoClose}\n size=${ifDefined(this.effectiveSize) as 'lg' | 'sm' | 'xs'}>\n ${this.renderTriggerElement()} ${this.renderOptionList()}\n </dap-ds-popup>`\n : html`\n ${this.renderTriggerElement()}\n <dap-ds-tray\n part=\"mobile-tray\"\n exportparts=\"content: mobile-content, body: mobile-body, header: mobile-header, footer: mobile-footer\"\n ?open=${this.opened}\n closeButton=\"false\"\n header=\"false\"\n >${this.renderOptionList()}</dap-ds-tray\n >\n `}\n ${this.feedback &&\n html`<dap-ds-feedback\n part=\"feedback\"\n feedbackType=${ifDefined(this.feedbackType)}\n feedbackSize=\"${ifDefined(this.effectiveSize as 'lg' | 'sm' | 'xs')}\"\n id=\"feedback\"\n .subtle=${this.subtle}>\n ${this.feedback}\n </dap-ds-feedback>`}\n </div>`\n }\n}\n"],"names":["_DapDSSelect","GenericFormElement","event","__async","_a","_b","path","val","newValue","changed","value","optionItem","i18next","changedProperties","key","options","ids","getValidityStateObject","t","currentOption","opt","hasValue","item","html","group","child","clsx","ifDefined","idInScope","SystemLoadingSpinner","ArrowsArrowDownSLine","DapDSOptionList","DapDSFormLabel","DapDSTooltip","DapDSIconButton","DapDSIcon","DapDSTypography","DapDSPopup","DapDSTray","DapDSFeedback","unsafeCSS","styles","DapDSSelect","__decorateClass","query","property","state"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const e = "./_schema.json", n = { neutral: "Information", informative: "Information", positive: "Erfolg", warning: "Warnung", negative: "Fehler" }, t = "Schließen", i = "Abbrechen", a = "Auswahl löschen", r = "Kopieren", o = "Bestätigen", s = "Ok", c = "Suchen", l = "Tag", d = "(öffnet in neuem Tab)", h = { optional: "(Optional)", tooltip: "Information" }, g = { maxLength: "Maximale Länge um {{count}} Zeichen überschritten" }, u = { info: "Info", success: "Erfolg", error: "Fehler" }, m = { selected: "ausgewählt", disabled: "nicht verfügbar" }, b = "lädt", f = "Lädt...", p = "anzeigen", v = "ausblenden", D = "verringern", S = "erhöhen", w = "Inhaltsverzeichnis", z = "{{val, datetime}}", k = "ausgewählt", A = { today: "heute", now: "jetzt", nextMonth: "nächster Monat", prevMonth: "vorheriger Monat", year: "Jahr", month: "Monat" }, L = { validationMessage: { select: "Bitte wählen Sie eine Option", datepicker: "Bitte wählen Sie ein Datum" } }, x = { dragDropArea: "Dateien hier ablegen oder klicken zum Hochladen", dragDropInstructions: "Sie können Dateien auch durch Ziehen und Ablegen in den Bereich hochladen.", files: "Dateien", uploadButtonLabel: "Hochladen", browseButtonLabel: "Durchsuchen", browse: "Dateien durchsuchen", fileList: "Dateiliste", fileSize: "{{size}} MB", upload: "Hochladen", uploading: "Hochladen läuft", dropzone: { label: "Dateien hochladen", text: "Dateien hier ablegen oder klicken zum Hochladen", acceptedTypes: "Erlaubte Dateitypen" }, link: "Link", cancel: "Abbrechen", delete: "Löschen", view: "Ansehen", error: { fileSize: "Die Dateigröße überschreitet das maximale Limit von {size} MB", fileType: "Der Dateityp ist nicht erlaubt", fileAmount: "Die Anzahl der Dateien überschreitet das maximale Limit von {count}", perFileSize: "Die Dateigröße überschreitet das maximale Limit von {size} MB" }, removeDialog: { title: "Datei entfernen", message: "Sind Sie sicher, dass Sie {{fileName}} entfernen möchten?", confirm: "Löschen", cancel: "Abbrechen" } }, B = { pageSize: "{{count}} Einträge / Seite", first: "Erste", previous: "Zurück", next: "Weiter", last: "Letzte", pageInfo: "{{rangeStart}}-{{rangeEnd}} von {{totalRows}}" }, E = { sortAscending: "Aufsteigend sortieren", sortDescending: "Absteigend sortieren", clearSort: "Sortierung löschen", tableDescription: "Datentabelle mit sortierbaren Spalten", defaultCaption: "Datentabelle", rowSelected: "Zeile ausgewählt", rowDeselected: "Zeile abgewählt", sortedBy: "Sortiert nach {{column}} {{direction}}", pageChanged: "Seite {{page}} von {{total}}", noData: "Keine Daten verfügbar", resizeColumn: "Spaltenbreite ändern" }, M = { expand: "Abschnitt erweitern", collapse: "Abschnitt einklappen" }, I = { hour: "Stunde", minute: "Minute", second: "Sekunde" }, y = { remove: "Entfernen", removable: "entfernbar, drücken Sie Entf zum Entfernen" }, T = { notifications: "Benachrichtigungen" }, Z = { multiselect: { selected: "{{count}} Element{{count > 1 ? 'e' : ''}} ausgewählt" } }, H = { loading: "Lädt", progress: "Fortschritt: {{percentage}}%" }, R = {
1
+ const e = "./_schema.json", n = { neutral: "Information", informative: "Information", positive: "Erfolg", warning: "Warnung", negative: "Fehler" }, t = "Schließen", i = "Abbrechen", a = "Auswahl löschen", r = "Kopieren", o = "Bestätigen", s = "Ok", c = "Suchen", l = "Tag", d = "(öffnet in neuem Tab)", h = { optional: "(Optional)", tooltip: "Information" }, g = { maxLength: "Maximale Länge um {{count}} Zeichen überschritten" }, u = { info: "Info", success: "Erfolg", error: "Fehler" }, m = { selected: "ausgewählt", disabled: "nicht verfügbar" }, b = "lädt", f = "Lädt...", p = "anzeigen", v = "ausblenden", D = "verringern", w = "erhöhen", S = "Inhaltsverzeichnis", z = "{{val, datetime}}", k = "ausgewählt", A = { today: "heute", now: "jetzt", nextMonth: "nächster Monat", prevMonth: "vorheriger Monat", year: "Jahr", month: "Monat" }, L = { validationMessage: { select: "Bitte wählen Sie eine Option", datepicker: "Bitte wählen Sie ein Datum" } }, x = { dragDropArea: "Dateien hier ablegen oder klicken zum Hochladen", dragDropInstructions: "Sie können Dateien auch durch Ziehen und Ablegen in den Bereich hochladen.", files: "Dateien", uploadButtonLabel: "Hochladen", browseButtonLabel: "Durchsuchen", browse: "Dateien durchsuchen", fileList: "Dateiliste", fileSize: "{{size}} MB", upload: "Hochladen", uploading: "Hochladen läuft", dropzone: { label: "Dateien hochladen", text: "Dateien hier ablegen oder klicken zum Hochladen", acceptedTypes: "Erlaubte Dateitypen" }, link: "Link", cancel: "Abbrechen", delete: "Löschen", view: "Ansehen", error: { fileSize: "Die Dateigröße überschreitet das maximale Limit von {size} MB", fileType: "Der Dateityp ist nicht erlaubt", fileAmount: "Die Anzahl der Dateien überschreitet das maximale Limit von {count}", perFileSize: "Die Dateigröße überschreitet das maximale Limit von {size} MB" }, removeDialog: { title: "Datei entfernen", message: "Sind Sie sicher, dass Sie {{fileName}} entfernen möchten?", confirm: "Löschen", cancel: "Abbrechen" } }, B = { pageSize: "{{count}} Einträge / Seite", first: "Erste", previous: "Zurück", next: "Weiter", last: "Letzte", pageInfo: "{{rangeStart}}-{{rangeEnd}} von {{totalRows}}" }, E = { sortAscending: "Aufsteigend sortieren", sortDescending: "Absteigend sortieren", clearSort: "Sortierung löschen", tableDescription: "Datentabelle mit sortierbaren Spalten", defaultCaption: "Datentabelle", rowSelected: "Zeile ausgewählt", rowDeselected: "Zeile abgewählt", sortedBy: "Sortiert nach {{column}} {{direction}}", pageChanged: "Seite {{page}} von {{total}}", noData: "Keine Daten verfügbar", resizeColumn: "Spaltenbreite ändern" }, M = { expand: "Abschnitt erweitern", collapse: "Abschnitt einklappen" }, I = { hour: "Stunde", minute: "Minute", second: "Sekunde" }, y = { remove: "Entfernen", removable: "entfernbar, drücken Sie Entf zum Entfernen" }, T = { notifications: "Benachrichtigungen" }, Z = { activeOption: "{{option}}, {{position}} von {{count}}", multiselect: { selected_one: "{{count}} Element ausgewählt", selected_other: "{{count}} Elemente ausgewählt" } }, H = { loading: "Lädt", progress: "Fortschritt: {{percentage}}%" }, O = {
2
2
  $schema: e,
3
3
  bannerType: n,
4
4
  close: t,
@@ -22,8 +22,8 @@ const e = "./_schema.json", n = { neutral: "Information", informative: "Informat
22
22
  show: p,
23
23
  hide: v,
24
24
  decrease: D,
25
- increase: S,
26
- tocTitle: w,
25
+ increase: w,
26
+ tocTitle: S,
27
27
  date: z,
28
28
  selected: k,
29
29
  calendar: A,
@@ -33,7 +33,7 @@ const e = "./_schema.json", n = { neutral: "Information", informative: "Informat
33
33
  datatable: E,
34
34
  accordion: M,
35
35
  "official-website-banner": { heading: "Die offizielle Website von Ungarn.", "heading-2": "Offizielle Regierungswebsite", content: "Nur offizielle Regierungswebsites mit der Endung gov.hu können verwendet werden, die gesetzlich geregelt sind und mehrere Schutzschichten haben." },
36
- "avatar-group": { "overflow-label": "{{count}} weitere{{count > 1 ? '' : 'r'}} Avatar{{count > 1 ? 'e' : ''}}" },
36
+ "avatar-group": { "overflow-label_one": "{{count}} weiterer Avatar", "overflow-label_other": "{{count}} weitere Avatare" },
37
37
  timepicker: I,
38
38
  chip: y,
39
39
  snackbar: T,
@@ -57,13 +57,13 @@ export {
57
57
  E as datatable,
58
58
  z as date,
59
59
  D as decrease,
60
- R as default,
60
+ O as default,
61
61
  g as errors,
62
62
  u as feedback,
63
63
  x as fileInput,
64
64
  L as form,
65
65
  v as hide,
66
- S as increase,
66
+ w as increase,
67
67
  h as label,
68
68
  m as listItems,
69
69
  b as loading,
@@ -78,6 +78,6 @@ export {
78
78
  f as spinner,
79
79
  l as tag,
80
80
  I as timepicker,
81
- w as tocTitle
81
+ S as tocTitle
82
82
  };
83
83
  //# sourceMappingURL=de.json.js.map
@@ -1,4 +1,4 @@
1
- const e = "./_schema.json", o = { neutral: "Information", informative: "Information", positive: "Success", warning: "Warning", negative: "Error" }, t = "Close", a = "Cancel", n = "Clear selection", i = "Copy", s = "Confirm", l = "Ok", c = "Search", r = "tag", d = "(opens in new tab)", p = { optional: "(Optional)", tooltip: "Information" }, m = { maxLength: "Exceeded the maximum length by {{count}} character" }, g = { info: "Info", success: "Success", error: "Error" }, f = { selected: "kiválasztva", disabled: "nem elérhető" }, u = "loading", h = "Loading...", b = "show", w = "hide", v = "decrease", x = "increase", y = "Table of contents", z = "{{val, datetime}}", D = "selected", k = { today: "today", now: "now", nextMonth: "next month", prevMonth: "previous month", year: "year", month: "month" }, C = { validationMessage: { select: "Please select an option", datepicker: "Please select a date" } }, S = { dragDropArea: "Drag and drop files here or click to upload", dragDropInstructions: "You can also upload files by dragging and dropping them into the area.", files: "Files", uploadButtonLabel: "Upload", browseButtonLabel: "Browse", browse: "Browse files", fileList: "File list", fileSize: "{{size}} MB", upload: "Upload", uploading: "Uploading", dropzone: { label: "Upload files", text: "Drag and drop files here or click to upload", acceptedTypes: "Accepted file types" }, link: "Link", cancel: "Cancel", delete: "Delete", view: "View", error: { fileSize: "The file size exceeds the maximum limit of {size} MB", fileType: "The file type is not allowed", fileAmount: "The number of files exceeds the maximum limit of {count}", perFileSize: "The file size exceeds the maximum limit of {size} MB" }, removeDialog: { title: "Remove file", message: "Are you sure you want to remove {{fileName}}?", confirm: "Delete", cancel: "Cancel" } }, T = { pageSize: "{{count}} items / page", first: "First", previous: "Previous", next: "Next", last: "Last", pageInfo: "{{rangeStart}}-{{rangeEnd}} of {{totalRows}}" }, B = { sortAscending: "Sort ascending", sortDescending: "Sort descending", clearSort: "Clear sort", tableDescription: "Data table with sortable columns", defaultCaption: "Data table", rowSelected: "Row selected", rowDeselected: "Row deselected", sortedBy: "Sorted by {{column}} {{direction}}", pageChanged: "Page {{page}} of {{total}}", noData: "No data available", resizeColumn: "Resize column" }, I = { expand: "Expand section", collapse: "Collapse section" }, L = { hour: "Hour", minute: "Minute", second: "Second" }, M = { remove: "Remove", removable: "removable, press Delete or Backspace to remove" }, P = { notifications: "Notifications" }, E = { multiselect: { selected: "{{count}} item{{count > 1 ? 's' : ''}} selected" } }, R = { loading: "Loading", progress: "Progress: {{percentage}}%" }, A = {
1
+ const e = "./_schema.json", o = { neutral: "Information", informative: "Information", positive: "Success", warning: "Warning", negative: "Error" }, t = "Close", a = "Cancel", n = "Clear selection", i = "Copy", s = "Confirm", l = "Ok", c = "Search", r = "tag", d = "(opens in new tab)", p = { optional: "(Optional)", tooltip: "Information" }, m = { maxLength: "Exceeded the maximum length by {{count}} character" }, g = { info: "Info", success: "Success", error: "Error" }, f = { selected: "kiválasztva", disabled: "nem elérhető" }, u = "loading", h = "Loading...", b = "show", v = "hide", w = "decrease", x = "increase", y = "Table of contents", z = "{{val, datetime}}", D = "selected", k = { today: "today", now: "now", nextMonth: "next month", prevMonth: "previous month", year: "year", month: "month" }, C = { validationMessage: { select: "Please select an option", datepicker: "Please select a date" } }, S = { dragDropArea: "Drag and drop files here or click to upload", dragDropInstructions: "You can also upload files by dragging and dropping them into the area.", files: "Files", uploadButtonLabel: "Upload", browseButtonLabel: "Browse", browse: "Browse files", fileList: "File list", fileSize: "{{size}} MB", upload: "Upload", uploading: "Uploading", dropzone: { label: "Upload files", text: "Drag and drop files here or click to upload", acceptedTypes: "Accepted file types" }, link: "Link", cancel: "Cancel", delete: "Delete", view: "View", error: { fileSize: "The file size exceeds the maximum limit of {size} MB", fileType: "The file type is not allowed", fileAmount: "The number of files exceeds the maximum limit of {count}", perFileSize: "The file size exceeds the maximum limit of {size} MB" }, removeDialog: { title: "Remove file", message: "Are you sure you want to remove {{fileName}}?", confirm: "Delete", cancel: "Cancel" } }, T = { pageSize: "{{count}} items / page", first: "First", previous: "Previous", next: "Next", last: "Last", pageInfo: "{{rangeStart}}-{{rangeEnd}} of {{totalRows}}" }, B = { sortAscending: "Sort ascending", sortDescending: "Sort descending", clearSort: "Clear sort", tableDescription: "Data table with sortable columns", defaultCaption: "Data table", rowSelected: "Row selected", rowDeselected: "Row deselected", sortedBy: "Sorted by {{column}} {{direction}}", pageChanged: "Page {{page}} of {{total}}", noData: "No data available", resizeColumn: "Resize column" }, I = { expand: "Expand section", collapse: "Collapse section" }, L = { hour: "Hour", minute: "Minute", second: "Second" }, M = { remove: "Remove", removable: "removable, press Delete or Backspace to remove" }, P = { notifications: "Notifications" }, E = { activeOption: "{{option}}, {{position}} of {{count}}", multiselect: { selected_one: "{{count}} item selected", selected_other: "{{count}} items selected" } }, R = { loading: "Loading", progress: "Progress: {{percentage}}%" }, A = {
2
2
  $schema: e,
3
3
  bannerType: o,
4
4
  close: t,
@@ -20,8 +20,8 @@ const e = "./_schema.json", o = { neutral: "Information", informative: "Informat
20
20
  loading: u,
21
21
  spinner: h,
22
22
  show: b,
23
- hide: w,
24
- decrease: v,
23
+ hide: v,
24
+ decrease: w,
25
25
  increase: x,
26
26
  tocTitle: y,
27
27
  date: z,
@@ -33,7 +33,7 @@ const e = "./_schema.json", o = { neutral: "Information", informative: "Informat
33
33
  datatable: B,
34
34
  accordion: I,
35
35
  "official-website-banner": { heading: "The official website of Hungary.", "heading-2": "Official government website", content: "Only official government websites ending in gov.hu can be used, which are legally regulated and have multiple layers of protection." },
36
- "avatar-group": { "overflow-label": "{{count}} more avatar{{count > 1 ? 's' : ''}}" },
36
+ "avatar-group": { "overflow-label_one": "{{count}} more avatar", "overflow-label_other": "{{count}} more avatars" },
37
37
  timepicker: L,
38
38
  chip: M,
39
39
  snackbar: P,
@@ -56,13 +56,13 @@ export {
56
56
  i as copy,
57
57
  B as datatable,
58
58
  z as date,
59
- v as decrease,
59
+ w as decrease,
60
60
  A as default,
61
61
  m as errors,
62
62
  g as feedback,
63
63
  S as fileInput,
64
64
  C as form,
65
- w as hide,
65
+ v as hide,
66
66
  x as increase,
67
67
  p as label,
68
68
  f as listItems,
@@ -1,4 +1,4 @@
1
- const e = "./_schema.json", t = { neutral: "Információ", informative: "Információ", positive: "Sikeres", warning: "Figyelmeztetés", negative: "Hiba" }, a = "Bezár", l = "(új ablakban nyílik meg)", s = "címke", o = "Mégse", n = "Kiválasztás törlése", i = "Másolás", r = "Megerősít", c = "Ok", m = "Keresés", d = { optional: "(Nem kötelező)", tooltip: "Információ" }, g = { maxLength: "Túllépte {{count}} karakterrel a maximális hosszúságot" }, z = { info: "Tájékoztató", success: "Sikeres", error: "Hiba" }, k = { selected: "kiválasztva", disabled: "nem elérhető" }, p = "Betöltés", v = "mutat", b = "elrejt", f = "Csökkentés", h = "Növelés", u = "Tartalom", j = "{{val, datetime}}", y = "kiválasztva", M = { today: "mai nap", now: "most", nextMonth: "következő hónap", prevMonth: "előző hónap", year: "év", month: "hónap" }, w = { validationMessage: { select: "Kérem válasszon egy lehetőséget", datepicker: "Kérem válasszon egy dátumot" } }, x = { files: "Fájlok", dragDropArea: "Húzza ide a fájlokat vagy kattintson a feltöltésre", dragDropInstructions: "A fájlokat a területre húzva is feltöltheti.", uploadButtonLabel: "Feltöltés", browseButtonLabel: "Fájlok tallózása", browse: "Fájlok tallózása", fileList: "Fájl lista", upload: "Feltöltés", fileSize: "{{size}} MB", uploading: "Feltöltés folyamatban", dropzone: { label: "Fájlok feltöltése", text: "Húzza ide a fájlokat vagy kattintson a feltöltésre", acceptedTypes: "Megengedett fájl típusok" }, link: "Link", cancel: "Mégse", delete: "Törlés", view: "Megnézem", error: { fileSize: "A fájl mérete meghaladja a {{size}} MB maximális limitet", fileType: "A fájl típusa nem megengedett", fileAmount: "A fájlok száma meghaladja maximális limitet: {{count}}", perFileSize: "A fájl mérete meghaladja a {{size}} MB maximális limitet" }, removeDialog: { title: "Fájl törlése", message: "Biztosan törölni akarja a {{fileName}} fájlt?", confirm: "Törlés", cancel: "Mégse" } }, S = { pageSize: "{{count}} elem / oldal", first: "Első", previous: "Előző", next: "Következő", last: "Utolsó", pageInfo: "{{rangeStart}}-{{rangeEnd}} a {{totalRows}} elemből" }, A = { sortAscending: "Növekvő", sortDescending: "Csökkenő", clearSort: "Nincs rendezés", tableDescription: "Adattábla rendezhető oszlopokkal", defaultCaption: "Adattábla", rowSelected: "Sor kiválasztva", rowDeselected: "Sor kiválasztás törölve", sortedBy: "Rendezve {{column}} oszlop szerint {{direction}}", pageChanged: "{{page}}. oldal a {{total}} oldalból", noData: "Nincs elérhető adat", resizeColumn: "Oszlopszélesség módosítása" }, F = { expand: "Szakasz kibontása", collapse: "Szakasz összecsukása" }, B = { hour: "Óra", minute: "Perc", second: "Másodperc" }, T = { remove: "Eltávolítás", removable: "eltávolítható, nyomja meg a törlés billentyűt az eltávolításhoz" }, D = { multiselect: { selected: "{{count}} elem kiválasztva" } }, I = { notifications: "Értesítések" }, K = { loading: "Betöltés", progress: "Folyamat: {{percentage}}%" }, N = {
1
+ const e = "./_schema.json", t = { neutral: "Információ", informative: "Információ", positive: "Sikeres", warning: "Figyelmeztetés", negative: "Hiba" }, a = "Bezár", l = "(új ablakban nyílik meg)", s = "címke", o = "Mégse", n = "Kiválasztás törlése", i = "Másolás", r = "Megerősít", c = "Ok", m = "Keresés", d = { optional: "(Nem kötelező)", tooltip: "Információ" }, g = { maxLength: "Túllépte {{count}} karakterrel a maximális hosszúságot" }, z = { info: "Tájékoztató", success: "Sikeres", error: "Hiba" }, k = { selected: "kiválasztva", disabled: "nem elérhető" }, p = "Betöltés", v = "mutat", b = "elrejt", f = "Csökkentés", h = "Növelés", u = "Tartalom", j = "{{val, datetime}}", y = "kiválasztva", M = { today: "mai nap", now: "most", nextMonth: "következő hónap", prevMonth: "előző hónap", year: "év", month: "hónap" }, w = { validationMessage: { select: "Kérem válasszon egy lehetőséget", datepicker: "Kérem válasszon egy dátumot" } }, x = { files: "Fájlok", dragDropArea: "Húzza ide a fájlokat vagy kattintson a feltöltésre", dragDropInstructions: "A fájlokat a területre húzva is feltöltheti.", uploadButtonLabel: "Feltöltés", browseButtonLabel: "Fájlok tallózása", browse: "Fájlok tallózása", fileList: "Fájl lista", upload: "Feltöltés", fileSize: "{{size}} MB", uploading: "Feltöltés folyamatban", dropzone: { label: "Fájlok feltöltése", text: "Húzza ide a fájlokat vagy kattintson a feltöltésre", acceptedTypes: "Megengedett fájl típusok" }, link: "Link", cancel: "Mégse", delete: "Törlés", view: "Megnézem", error: { fileSize: "A fájl mérete meghaladja a {{size}} MB maximális limitet", fileType: "A fájl típusa nem megengedett", fileAmount: "A fájlok száma meghaladja maximális limitet: {{count}}", perFileSize: "A fájl mérete meghaladja a {{size}} MB maximális limitet" }, removeDialog: { title: "Fájl törlése", message: "Biztosan törölni akarja a {{fileName}} fájlt?", confirm: "Törlés", cancel: "Mégse" } }, S = { pageSize: "{{count}} elem / oldal", first: "Első", previous: "Előző", next: "Következő", last: "Utolsó", pageInfo: "{{rangeStart}}-{{rangeEnd}} a {{totalRows}} elemből" }, A = { sortAscending: "Növekvő", sortDescending: "Csökkenő", clearSort: "Nincs rendezés", tableDescription: "Adattábla rendezhető oszlopokkal", defaultCaption: "Adattábla", rowSelected: "Sor kiválasztva", rowDeselected: "Sor kiválasztás törölve", sortedBy: "Rendezve {{column}} oszlop szerint {{direction}}", pageChanged: "{{page}}. oldal a {{total}} oldalból", noData: "Nincs elérhető adat", resizeColumn: "Oszlopszélesség módosítása" }, F = { expand: "Szakasz kibontása", collapse: "Szakasz összecsukása" }, B = { hour: "Óra", minute: "Perc", second: "Másodperc" }, T = { remove: "Eltávolítás", removable: "eltávolítható, nyomja meg a törlés billentyűt az eltávolításhoz" }, D = { activeOption: "{{option}}, {{count}} találatból {{position}}.", multiselect: { selected: "{{count}} elem kiválasztva" } }, I = { notifications: "Értesítések" }, K = { loading: "Betöltés", progress: "Folyamat: {{percentage}}%" }, N = {
2
2
  $schema: e,
3
3
  bannerType: t,
4
4
  close: a,