@db-ux/wc-core-components 2.0.7 → 2.0.9

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 (154) hide show
  1. package/dist/cjs/db-button.cjs.entry.js +2 -2
  2. package/dist/cjs/db-button.cjs.entry.js.map +1 -1
  3. package/dist/cjs/db-button.entry.cjs.js.map +1 -1
  4. package/dist/cjs/db-card.cjs.entry.js +3 -3
  5. package/dist/cjs/db-card.cjs.entry.js.map +1 -1
  6. package/dist/cjs/db-card.entry.cjs.js.map +1 -1
  7. package/dist/cjs/db-checkbox.cjs.entry.js +3 -2
  8. package/dist/cjs/db-checkbox.cjs.entry.js.map +1 -1
  9. package/dist/cjs/db-checkbox.entry.cjs.js.map +1 -1
  10. package/dist/cjs/db-custom-select.cjs.entry.js +74 -65
  11. package/dist/cjs/db-custom-select.cjs.entry.js.map +1 -1
  12. package/dist/cjs/db-custom-select.entry.cjs.js.map +1 -1
  13. package/dist/cjs/db-link.cjs.entry.js +2 -2
  14. package/dist/cjs/db-link.cjs.entry.js.map +1 -1
  15. package/dist/cjs/db-link.entry.cjs.js.map +1 -1
  16. package/dist/cjs/db-navigation-item.cjs.entry.js +2 -2
  17. package/dist/cjs/db-navigation-item.cjs.entry.js.map +1 -1
  18. package/dist/cjs/db-navigation-item.entry.cjs.js.map +1 -1
  19. package/dist/cjs/db-radio.cjs.entry.js +3 -2
  20. package/dist/cjs/db-radio.cjs.entry.js.map +1 -1
  21. package/dist/cjs/db-radio.entry.cjs.js.map +1 -1
  22. package/dist/cjs/db-select.cjs.entry.js +5 -5
  23. package/dist/cjs/db-select.cjs.entry.js.map +1 -1
  24. package/dist/cjs/db-select.entry.cjs.js.map +1 -1
  25. package/dist/cjs/db-switch.cjs.entry.js +3 -2
  26. package/dist/cjs/db-switch.cjs.entry.js.map +1 -1
  27. package/dist/cjs/db-switch.entry.cjs.js.map +1 -1
  28. package/dist/cjs/db-textarea.cjs.entry.js +3 -3
  29. package/dist/cjs/db-textarea.cjs.entry.js.map +1 -1
  30. package/dist/cjs/db-textarea.entry.cjs.js.map +1 -1
  31. package/dist/cjs/db-ux.cjs.js +1 -1
  32. package/dist/cjs/{document-click-listener-BbGE8WyV.js → document-click-listener-Dfd-wUYX.js} +6 -6
  33. package/dist/cjs/document-click-listener-Dfd-wUYX.js.map +1 -0
  34. package/dist/cjs/index.cjs.js +1 -1
  35. package/dist/cjs/index.cjs.js.map +1 -1
  36. package/dist/cjs/loader.cjs.js +1 -1
  37. package/dist/collection/components/button/button.js +2 -2
  38. package/dist/collection/components/button/button.js.map +1 -1
  39. package/dist/collection/components/card/card.js +3 -3
  40. package/dist/collection/components/card/card.js.map +1 -1
  41. package/dist/collection/components/checkbox/checkbox.js +28 -2
  42. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  43. package/dist/collection/components/custom-select/custom-select.js +97 -63
  44. package/dist/collection/components/custom-select/custom-select.js.map +1 -1
  45. package/dist/collection/components/custom-select/model.js.map +1 -1
  46. package/dist/collection/components/link/link.js +2 -2
  47. package/dist/collection/components/link/link.js.map +1 -1
  48. package/dist/collection/components/navigation-item/navigation-item.js +2 -2
  49. package/dist/collection/components/navigation-item/navigation-item.js.map +1 -1
  50. package/dist/collection/components/radio/model.js.map +1 -1
  51. package/dist/collection/components/radio/radio.js +28 -2
  52. package/dist/collection/components/radio/radio.js.map +1 -1
  53. package/dist/collection/components/select/select.js +30 -5
  54. package/dist/collection/components/select/select.js.map +1 -1
  55. package/dist/collection/components/switch/switch.js +28 -2
  56. package/dist/collection/components/switch/switch.js.map +1 -1
  57. package/dist/collection/components/textarea/textarea.js +28 -3
  58. package/dist/collection/components/textarea/textarea.js.map +1 -1
  59. package/dist/collection/shared/model.js.map +1 -1
  60. package/dist/collection/utils/document-click-listener.js +4 -4
  61. package/dist/collection/utils/document-click-listener.js.map +1 -1
  62. package/dist/custom-elements.json +198 -19
  63. package/dist/db-ux/db-button.entry.esm.js.map +1 -1
  64. package/dist/db-ux/db-card.entry.esm.js.map +1 -1
  65. package/dist/db-ux/db-checkbox.entry.esm.js.map +1 -1
  66. package/dist/db-ux/db-custom-select.entry.esm.js.map +1 -1
  67. package/dist/db-ux/db-link.entry.esm.js.map +1 -1
  68. package/dist/db-ux/db-navigation-item.entry.esm.js.map +1 -1
  69. package/dist/db-ux/db-radio.entry.esm.js.map +1 -1
  70. package/dist/db-ux/db-select.entry.esm.js.map +1 -1
  71. package/dist/db-ux/db-switch.entry.esm.js.map +1 -1
  72. package/dist/db-ux/db-textarea.entry.esm.js.map +1 -1
  73. package/dist/db-ux/db-ux.esm.js +1 -1
  74. package/dist/db-ux/index.esm.js +1 -1
  75. package/dist/db-ux/index.esm.js.map +1 -1
  76. package/dist/db-ux/p-02f8816d.entry.js +2 -0
  77. package/dist/db-ux/p-02f8816d.entry.js.map +1 -0
  78. package/dist/db-ux/{p-33aaf986.entry.js → p-3a2fd85e.entry.js} +2 -2
  79. package/dist/db-ux/p-3a2fd85e.entry.js.map +1 -0
  80. package/dist/db-ux/{p-44f6404b.entry.js → p-3af37d5a.entry.js} +2 -2
  81. package/dist/db-ux/p-3af37d5a.entry.js.map +1 -0
  82. package/dist/db-ux/p-55913451.entry.js +2 -0
  83. package/dist/db-ux/p-55913451.entry.js.map +1 -0
  84. package/dist/db-ux/{p-a1ee66b3.entry.js → p-94471c06.entry.js} +2 -2
  85. package/dist/db-ux/p-94471c06.entry.js.map +1 -0
  86. package/dist/db-ux/{p-c989b5d8.entry.js → p-9d64dc74.entry.js} +2 -2
  87. package/dist/db-ux/p-9d64dc74.entry.js.map +1 -0
  88. package/dist/db-ux/p-YMQoOWgh.js +2 -0
  89. package/dist/db-ux/p-YMQoOWgh.js.map +1 -0
  90. package/dist/db-ux/{p-50c9112b.entry.js → p-c44f46be.entry.js} +2 -2
  91. package/dist/db-ux/p-c44f46be.entry.js.map +1 -0
  92. package/dist/db-ux/p-e2d6197f.entry.js +2 -0
  93. package/dist/db-ux/p-e2d6197f.entry.js.map +1 -0
  94. package/dist/db-ux/p-e33ddddb.entry.js +2 -0
  95. package/dist/db-ux/p-e33ddddb.entry.js.map +1 -0
  96. package/dist/db-ux/{p-61410d87.entry.js → p-eef5de38.entry.js} +2 -2
  97. package/dist/db-ux/p-eef5de38.entry.js.map +1 -0
  98. package/dist/esm/db-button.entry.js +2 -2
  99. package/dist/esm/db-button.entry.js.map +1 -1
  100. package/dist/esm/db-card.entry.js +3 -3
  101. package/dist/esm/db-card.entry.js.map +1 -1
  102. package/dist/esm/db-checkbox.entry.js +3 -2
  103. package/dist/esm/db-checkbox.entry.js.map +1 -1
  104. package/dist/esm/db-custom-select.entry.js +74 -65
  105. package/dist/esm/db-custom-select.entry.js.map +1 -1
  106. package/dist/esm/db-link.entry.js +2 -2
  107. package/dist/esm/db-link.entry.js.map +1 -1
  108. package/dist/esm/db-navigation-item.entry.js +2 -2
  109. package/dist/esm/db-navigation-item.entry.js.map +1 -1
  110. package/dist/esm/db-radio.entry.js +3 -2
  111. package/dist/esm/db-radio.entry.js.map +1 -1
  112. package/dist/esm/db-select.entry.js +5 -5
  113. package/dist/esm/db-select.entry.js.map +1 -1
  114. package/dist/esm/db-switch.entry.js +3 -2
  115. package/dist/esm/db-switch.entry.js.map +1 -1
  116. package/dist/esm/db-textarea.entry.js +3 -3
  117. package/dist/esm/db-textarea.entry.js.map +1 -1
  118. package/dist/esm/db-ux.js +1 -1
  119. package/dist/esm/{document-click-listener-Bn3nIGhA.js → document-click-listener-Bf90GXqB.js} +6 -6
  120. package/dist/esm/document-click-listener-Bf90GXqB.js.map +1 -0
  121. package/dist/esm/index.js +1 -1
  122. package/dist/esm/index.js.map +1 -1
  123. package/dist/esm/loader.js +1 -1
  124. package/dist/types/components/checkbox/checkbox.d.ts +1 -0
  125. package/dist/types/components/custom-select/custom-select.d.ts +6 -5
  126. package/dist/types/components/custom-select/model.d.ts +3 -3
  127. package/dist/types/components/radio/model.d.ts +1 -3
  128. package/dist/types/components/radio/radio.d.ts +1 -0
  129. package/dist/types/components/select/select.d.ts +1 -0
  130. package/dist/types/components/switch/switch.d.ts +1 -0
  131. package/dist/types/components/textarea/textarea.d.ts +1 -0
  132. package/dist/types/components.d.ts +12 -0
  133. package/dist/types/shared/model.d.ts +1 -0
  134. package/dist/vscode.html-custom-data.json +30 -8
  135. package/dist/web-types.json +67 -11
  136. package/package.json +3 -3
  137. package/dist/cjs/document-click-listener-BbGE8WyV.js.map +0 -1
  138. package/dist/db-ux/p-049844c6.entry.js +0 -2
  139. package/dist/db-ux/p-049844c6.entry.js.map +0 -1
  140. package/dist/db-ux/p-1d40e8cd.entry.js +0 -2
  141. package/dist/db-ux/p-1d40e8cd.entry.js.map +0 -1
  142. package/dist/db-ux/p-33aaf986.entry.js.map +0 -1
  143. package/dist/db-ux/p-44f6404b.entry.js.map +0 -1
  144. package/dist/db-ux/p-50c9112b.entry.js.map +0 -1
  145. package/dist/db-ux/p-61410d87.entry.js.map +0 -1
  146. package/dist/db-ux/p-623a9409.entry.js +0 -2
  147. package/dist/db-ux/p-623a9409.entry.js.map +0 -1
  148. package/dist/db-ux/p-DszXleuv.js +0 -2
  149. package/dist/db-ux/p-DszXleuv.js.map +0 -1
  150. package/dist/db-ux/p-a1ee66b3.entry.js.map +0 -1
  151. package/dist/db-ux/p-b5a8e9c3.entry.js +0 -2
  152. package/dist/db-ux/p-b5a8e9c3.entry.js.map +0 -1
  153. package/dist/db-ux/p-c989b5d8.entry.js.map +0 -1
  154. package/dist/esm/document-click-listener-Bn3nIGhA.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBSwitch","constructor","hostRef","this","_id","undefined","_checked","handleChange","event","stopPropagation","change","emit","_a","target","handleBlur","blur","handleFocus","focus","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","value","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","watch0Fn","checked","getBoolean","watch0","componentDidLoad","_ref","id","uuid","render","h","key","class","cls","className","getBooleanAsString","visualAid","size","getHideProp","showLabel","emphasis","htmlFor","type","role","ref","el","disabled","describedbyid","validation","required","icon","iconAfter","onChange","onBlur","onFocus","label"],"sources":["src/components/switch/switch.tsx"],"sourcesContent":["import { DBSwitchProps, DBSwitchState } from \"./model\";\nimport {\n cls,\n getBoolean,\n getBooleanAsString,\n getHideProp,\n uuid,\n} from \"../../utils\";\nimport { ChangeEvent, InteractionEvent } from \"../../shared/model\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-switch\",\n})\nexport class DBSwitch {\n private _ref!: HTMLInputElement | any;\n @Prop() id: DBSwitchProps[\"id\"];\n @Prop() checked: DBSwitchProps[\"checked\"];\n @Event() change: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBSwitchProps>[\"onFocus\"]>[number]\n > | void;\n @Prop() visualAid: DBSwitchProps[\"visualAid\"];\n @Prop() size: DBSwitchProps[\"size\"];\n @Prop() showLabel: DBSwitchProps[\"showLabel\"];\n @Prop() emphasis: DBSwitchProps[\"emphasis\"];\n @Prop({attribute: \"classname\"}) className: DBSwitchProps[\"className\"];\n @Prop() value: DBSwitchProps[\"value\"];\n @Prop() disabled: DBSwitchProps[\"disabled\"];\n @Prop() describedbyid: DBSwitchProps[\"describedbyid\"];\n @Prop() validation: DBSwitchProps[\"validation\"];\n @Prop() name: DBSwitchProps[\"name\"];\n @Prop() required: DBSwitchProps[\"required\"];\n @Prop() icon: DBSwitchProps[\"icon\"];\n @Prop() iconAfter: DBSwitchProps[\"iconAfter\"];\n @Prop() label: DBSwitchProps[\"label\"];\n @State() _id = undefined;\n @State() _checked = false;\n\n handleChange(event: ChangeEvent<HTMLInputElement>) {\n event.stopPropagation();\n if (this.change) {\n this.change.emit(event);\n }\n\n // We have different ts types in different frameworks, so we need to use any here\n this._checked = (event.target as any)?.[\"checked\"];\n }\n handleBlur(event: InteractionEvent<HTMLInputElement>) {\n event.stopPropagation();\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLInputElement>) {\n event.stopPropagation();\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLInputElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n if (this.checked !== undefined && this.checked !== null) {\n this._checked = getBoolean(this.checked);\n }\n }\n\n @Watch(\"checked\")\n watch0() {\n this.watch0Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-switch\");\n this._id = this.id ?? `switch-${uuid()}`;\n this.watch0Fn();\n }\n\n render() {\n return (\n <label\n class={cls(\"db-switch\", this.className)}\n data-visual-aid={getBooleanAsString(this.visualAid)}\n data-size={this.size}\n data-hide-label={getHideProp(this.showLabel)}\n data-emphasis={this.emphasis}\n htmlFor={this._id}\n >\n <input\n type=\"checkbox\"\n role=\"switch\"\n id={this._id}\n aria-checked={getBooleanAsString(this._checked)}\n ref={(el: any) => {\n this._ref = el;\n }}\n checked={getBoolean(this.checked, \"checked\")}\n value={this.value}\n disabled={getBoolean(this.disabled, \"disabled\")}\n aria-describedby={this.describedbyid}\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n name={this.name}\n required={getBoolean(this.required, \"required\")}\n data-aid-icon={this.icon}\n data-aid-icon-after={this.iconAfter}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n />\n {this.label ? this.label : <slot></slot>}\n </label>\n );\n }\n}\n"],"mappings":"mHAiCaA,EAAQ,MAHpB,WAAAC,CAAAC,G,2FA8BUC,KAAGC,IAAGC,UACNF,KAAQG,SAAG,KAqHrB,CAnHC,YAAAC,CAAaC,G,MACXA,EAAMC,kBACN,GAAIN,KAAKO,OAAQ,CACfP,KAAKO,OAAOC,KAAKH,E,CAInBL,KAAKG,UAAYM,EAAAJ,EAAMK,UAAc,MAAAD,SAAA,SAAAA,EAAG,U,CAE1C,UAAAE,CAAWN,GACTA,EAAMC,kBACN,GAAIN,KAAKY,KAAM,CACbZ,KAAKY,KAAKJ,KAAKH,E,EAGnB,WAAAQ,CAAYR,GACVA,EAAMC,kBACN,GAAIN,KAAKc,MAAO,CACdd,KAAKc,MAAMN,KAAKH,E,EASZ,sBAAAU,CACNC,EACAC,GAEA,MAAMC,EAASF,IAAO,MAAPA,SAAO,SAAPA,EAASG,QAAQF,GAChC,GAAID,GAAWE,EAAQ,CACrB,MAAME,EAAaF,EAAOE,WAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAWE,OAAQD,IAAK,CAC1C,MAAME,EAAOH,EAAWI,KAAKH,GAC7B,GACEE,IACCA,EAAKE,KAAKC,WAAW,UAAYH,EAAKE,KAAKC,WAAW,UACvD,CACAV,EAAQW,aAAaJ,EAAKE,KAAMF,EAAKK,OACrCV,EAAOW,gBAAgBN,EAAKE,K,CAE9B,GAAIF,GAAQA,EAAKE,OAAS,QAAS,CACjC,MAAMK,EAAiBP,EAAKK,MAAMG,SAAS,YAC3C,MAAMH,EAAQL,EAAKK,MAAMI,QAAQ,WAAY,IAAIC,OACjD,MAAMC,EAAelB,EAAQmB,aAAa,SAC1CnB,EAAQW,aACNJ,EAAKE,KACL,GAAGS,EAAe,GAAGA,KAAkB,KAAKN,KAE9C,GAAIE,EAAgB,CAElBZ,EAAOS,aAAa,QAAS,W,KACxB,CACLT,EAAOW,gBAAgBN,EAAKE,K,KAOtC,QAAAW,GACE,GAAIpC,KAAKqC,UAAYnC,WAAaF,KAAKqC,UAAY,KAAM,CACvDrC,KAAKG,SAAWmC,EAAWtC,KAAKqC,Q,EAKpC,MAAAE,GACEvC,KAAKoC,U,CAGP,gBAAAI,G,MACExC,KAAKe,uBAAuBf,KAAKyC,KAAM,aACvCzC,KAAKC,KAAMQ,EAAAT,KAAK0C,MAAE,MAAAjC,SAAA,EAAAA,EAAI,UAAUkC,MAChC3C,KAAKoC,U,CAGP,MAAAQ,GACE,OACEC,EACE,SAAAC,IAAA,2CAAAC,MAAOC,EAAI,YAAahD,KAAKiD,WAAU,kBACtBC,EAAmBlD,KAAKmD,WAC9B,YAAAnD,KAAKoD,KAAI,kBACHC,EAAYrD,KAAKsD,WACnB,gBAAAtD,KAAKuD,SACpBC,QAASxD,KAAKC,KAEd4C,EACE,SAAAC,IAAA,2CAAAW,KAAK,WACLC,KAAK,SACLhB,GAAI1C,KAAKC,IAAG,eACEiD,EAAmBlD,KAAKG,UACtCwD,IAAMC,IACJ5D,KAAKyC,KAAOmB,CAAE,EAEhBvB,QAASC,EAAWtC,KAAKqC,QAAS,WAClCT,MAAO5B,KAAK4B,MACZiC,SAAUvB,EAAWtC,KAAK6D,SAAU,YAAW,mBAC7B7D,KAAK8D,cAAa,eACtB9D,KAAK+D,aAAe,UACZ,uBAAA/D,KAAK+D,WAC3BtC,KAAMzB,KAAKyB,KACXuC,SAAU1B,EAAWtC,KAAKgE,SAAU,YACrB,gBAAAhE,KAAKiE,KAAI,sBACHjE,KAAKkE,UAC1BC,SAAW9D,GAAUL,KAAKI,aAAaC,GACvC+D,OAAS/D,GAAUL,KAAKW,WAAWN,GACnCgE,QAAUhE,GAAUL,KAAKa,YAAYR,KAEtCL,KAAKsE,MAAQtE,KAAKsE,MAAQzB,EAAa,a","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as i,c as t,h as s,F as h}from"./p-bH2PZLSq.js";import{e,f as a,s as l,u as d,j as n,m as o,c}from"./p-pglUTSkG.js";import{l as u,g as f,h as r,f as v,i as b,k as p,a as m}from"./p-DC9V_oNU.js";const y=class{constructor(s){i(this,s);this.click=t(this,"click");this.input=t(this,"input");this.change=t(this,"change");this.blur=t(this,"blur");this.focus=t(this,"focus");this._id=undefined;this._messageId=undefined;this._validMessageId=undefined;this._invalidMessageId=undefined;this._invalidMessage=undefined;this._placeholderId="";this._descByIds="";this._value="";this.initialized=false;this._voiceOverFallback=""}hasValidState(){var i;return!!((i=this.validMessage)!==null&&i!==void 0?i:this.validation==="valid")}handleValidation(){var i,t,s,h;if(!((i=this._ref)===null||i===void 0?void 0:i.validity.valid)||this.validation==="invalid"){this._descByIds=this._invalidMessageId;this._invalidMessage=this.invalidMessage||((t=this._ref)===null||t===void 0?void 0:t.validationMessage)||u;if(e()){this._voiceOverFallback=this._invalidMessage;a((()=>this._voiceOverFallback=""),1e3)}}else if(this.hasValidState()&&((s=this._ref)===null||s===void 0?void 0:s.validity.valid)&&this.required){this._descByIds=this._validMessageId;if(e()){this._voiceOverFallback=(h=this.validMessage)!==null&&h!==void 0?h:p;a((()=>this._voiceOverFallback=""),1e3)}}else if(l(this.message,this.showMessage)){this._descByIds=this._messageId}else{this._descByIds=this._placeholderId}}handleClick(i){i.stopPropagation();if(this.click){this.click.emit(i)}}handleInput(i){i.stopPropagation();if(this.input){this.input.emit(i)}this.handleValidation()}handleChange(i){i.stopPropagation();if(this.change){this.change.emit(i)}this.handleValidation()}handleBlur(i){i.stopPropagation();if(this.blur){this.blur.emit(i)}}handleFocus(i){i.stopPropagation();if(this.focus){this.focus.emit(i)}}getOptionLabel(i){var t,s;return(t=i.label)!==null&&t!==void 0?t:(s=i.value)===null||s===void 0?void 0:s.toString()}enableAttributePassing(i,t){const s=i===null||i===void 0?void 0:i.closest(t);if(i&&s){const t=s.attributes;for(let h=0;h<t.length;h++){const e=t.item(h);if(e&&(e.name.startsWith("data-")||e.name.startsWith("aria-"))){i.setAttribute(e.name,e.value);s.removeAttribute(e.name)}if(e&&e.name==="class"){const t=e.value.includes("hydrated");const h=e.value.replace("hydrated","").trim();const a=i.getAttribute("class");i.setAttribute(e.name,`${a?`${a} `:""}${h}`);if(t){s.setAttribute("class","hydrated")}else{s.removeAttribute(e.name)}}}}}watch0Fn(){var i;this._invalidMessage=this.invalidMessage||((i=this._ref)===null||i===void 0?void 0:i.validationMessage)||u}watch0(){this.watch0Fn()}watch1Fn(){if(this._id&&this.initialized){const i=this._id+v;const t=this._id+b;this._messageId=i;this._validMessageId=this._id+f;this._invalidMessageId=this._id+r;this._placeholderId=t;if(l(this.message,this.showMessage)){this._descByIds=i}else{this._descByIds=t}this.initialized=false}}watch1(){this.watch1Fn()}watch2Fn(){this._value=this.value}watch2(){this.watch2Fn()}componentDidLoad(){var i;this.enableAttributePassing(this._ref,"db-select");this.initialized=true;const t=(i=this.id)!==null&&i!==void 0?i:`select-${d()}`;this._id=t;this._messageId=t+v;this._validMessageId=t+f;this._invalidMessageId=t+r;this._placeholderId=t+b;this._invalidMessage=this.invalidMessage||u;this.watch0Fn();this.watch1Fn();this.watch2Fn()}render(){var i,t,e,a;return s("div",{key:"9009fe4e161a7582cff229639077ee6c2d776832",class:c("db-select",this.className),"data-variant":this.variant,"data-hide-label":o(this.showLabel),"data-icon":this.icon,"data-hide-icon":o(this.showIcon)},s("label",{key:"518e04b014717ba56869a958e5e02d1c851cda0c",htmlFor:this._id},(i=this.label)!==null&&i!==void 0?i:m),s("select",{key:"76c7a4305cdf26d9e9adff0bb42755b4cd0966f5","aria-invalid":this.validation==="invalid","data-custom-validity":this.validation,ref:i=>{this._ref=i},required:n(this.required,"required"),disabled:n(this.disabled,"disabled"),id:this._id,name:this.name,size:this.size,value:(t=this.value)!==null&&t!==void 0?t:this._value,autocomplete:this.autocomplete,multiple:this.multiple,onInput:i=>this.handleInput(i),onClick:i=>this.handleClick(i),onChange:i=>this.handleChange(i),onBlur:i=>this.handleBlur(i),onFocus:i=>this.handleFocus(i),"aria-describedby":this._descByIds},s("option",{key:"c94a439b5b608d68ff3f51bef67bb671767bed09",hidden:true}),this.options?(e=this.options)===null||e===void 0?void 0:e.map((i=>{var t;return s(h,null,i.options?s("optgroup",{label:this.getOptionLabel(i)},(t=i.options)===null||t===void 0?void 0:t.map((i=>s("option",{key:i.value.toString(),value:i.value,selected:i.selected,disabled:i.disabled},this.getOptionLabel(i))))):null,!i.options?s("option",{value:i.value,disabled:i.disabled,selected:i.selected},this.getOptionLabel(i)):null)})):s("slot",null)),s("span",{key:"bc3ef2b093660d662d21dbf74ebc09c47d3ac3bb",id:this._placeholderId},(a=this.placeholder)!==null&&a!==void 0?a:this.label),l(this.message,this.showMessage)?s("db-infotext",{size:"small",icon:this.messageIcon,id:this._messageId},this.message):null,this.hasValidState()?s("db-infotext",{size:"small",semantic:"successful",id:this._validMessageId},this.validMessage||p):null,s("db-infotext",{key:"5558e8b3fd9dd16b11ff36d77f6cb72903f67ae4",size:"small",semantic:"critical",id:this._invalidMessageId},this._invalidMessage),s("span",{key:"076d7e3c581f0e1316b98806051787cfad1a7976","data-visually-hidden":"true",role:"status"},this._voiceOverFallback))}static get watchers(){return{_ref:["watch0"],invalidMessage:["watch0"],_id:["watch1"],initialized:["watch1"],value:["watch2"]}}};export{y as db_select};
2
- //# sourceMappingURL=p-1d40e8cd.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBSelect","constructor","hostRef","this","_id","undefined","_messageId","_validMessageId","_invalidMessageId","_invalidMessage","_placeholderId","_descByIds","_value","initialized","_voiceOverFallback","hasValidState","_a","validMessage","validation","handleValidation","_ref","validity","valid","invalidMessage","_b","validationMessage","DEFAULT_INVALID_MESSAGE","hasVoiceOver","delay","_c","required","_d","DEFAULT_VALID_MESSAGE","stringPropVisible","message","showMessage","handleClick","event","stopPropagation","click","emit","handleInput","input","handleChange","change","handleBlur","blur","handleFocus","focus","getOptionLabel","option","label","value","toString","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","watch0Fn","watch0","watch1Fn","messageId","DEFAULT_MESSAGE_ID_SUFFIX","placeholderId","DEFAULT_PLACEHOLDER_ID_SUFFIX","DEFAULT_VALID_MESSAGE_ID_SUFFIX","DEFAULT_INVALID_MESSAGE_ID_SUFFIX","watch1","watch2Fn","watch2","componentDidLoad","mId","id","uuid","render","h","key","class","cls","className","variant","getHideProp","showLabel","icon","showIcon","htmlFor","DEFAULT_LABEL","ref","el","getBoolean","disabled","size","autocomplete","multiple","onInput","onClick","onChange","onBlur","onFocus","hidden","options","map","Fragment","optgroupOption","selected","placeholder","messageIcon","semantic","role"],"sources":["src/components/select/select.tsx"],"sourcesContent":["import { DBSelectOptionType, DBSelectProps, DBSelectState } from \"./model\";\nimport {\n cls,\n delay,\n getBoolean,\n getHideProp,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_LABEL,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_PLACEHOLDER_ID_SUFFIX,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport {\n ChangeEvent,\n ClickEvent,\n InputEvent,\n InteractionEvent,\n} from \"../../shared/model\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-select\",\n})\nexport class DBSelect {\n private _ref!: HTMLSelectElement | any;\n @Prop() id: DBSelectProps[\"id\"];\n @Prop() invalidMessage: DBSelectProps[\"invalidMessage\"];\n @Prop() message: DBSelectProps[\"message\"];\n @Prop() showMessage: DBSelectProps[\"showMessage\"];\n @Prop() value: DBSelectProps[\"value\"];\n @Prop() validMessage: DBSelectProps[\"validMessage\"];\n @Prop() validation: DBSelectProps[\"validation\"];\n @Prop() required: DBSelectProps[\"required\"];\n @Event() click: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onClick\"]>[number]\n > | void;\n @Event() input: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onInput\"]>[number]\n > | void;\n @Event() change: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBSelectProps>[\"onFocus\"]>[number]\n > | void;\n @Prop({attribute: \"classname\"}) className: DBSelectProps[\"className\"];\n @Prop() variant: DBSelectProps[\"variant\"];\n @Prop() showLabel: DBSelectProps[\"showLabel\"];\n @Prop() icon: DBSelectProps[\"icon\"];\n @Prop() showIcon: DBSelectProps[\"showIcon\"];\n @Prop() label: DBSelectProps[\"label\"];\n @Prop() disabled: DBSelectProps[\"disabled\"];\n @Prop() name: DBSelectProps[\"name\"];\n @Prop() size: DBSelectProps[\"size\"];\n @Prop() autocomplete: DBSelectProps[\"autocomplete\"];\n @Prop() multiple: DBSelectProps[\"multiple\"];\n @Prop() options: DBSelectProps[\"options\"];\n @Prop() placeholder: DBSelectProps[\"placeholder\"];\n @Prop() messageIcon: DBSelectProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _placeholderId = \"\";\n @State() _descByIds = \"\";\n @State() _value = \"\";\n @State() initialized = false;\n @State() _voiceOverFallback = \"\";\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n /* For a11y reasons we need to map the correct message with the select */\n if (!this._ref?.validity.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this._invalidMessage;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (\n this.hasValidState() &&\n this._ref?.validity.valid &&\n this.required\n ) {\n this._descByIds = this._validMessageId;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId;\n } else {\n this._descByIds = this._placeholderId;\n }\n }\n handleClick(event: ClickEvent<HTMLSelectElement> | any) {\n event.stopPropagation();\n if (this.click) {\n this.click.emit(event);\n }\n }\n handleInput(event: InputEvent<HTMLSelectElement> | any) {\n event.stopPropagation();\n if (this.input) {\n this.input.emit(event);\n }\n this.handleValidation();\n }\n handleChange(event: ChangeEvent<HTMLSelectElement> | any) {\n event.stopPropagation();\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLSelectElement> | any) {\n event.stopPropagation();\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLSelectElement> | any) {\n event.stopPropagation();\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n getOptionLabel(option: DBSelectOptionType) {\n return option.label ?? option.value?.toString();\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLSelectElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n }\n\n @Watch(\"_ref\")\n @Watch(\"invalidMessage\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._id && this.initialized) {\n const messageId = this._id + DEFAULT_MESSAGE_ID_SUFFIX;\n const placeholderId = this._id + DEFAULT_PLACEHOLDER_ID_SUFFIX;\n this._messageId = messageId;\n this._validMessageId = this._id + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = this._id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._placeholderId = placeholderId;\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = messageId;\n } else {\n this._descByIds = placeholderId;\n }\n this.initialized = false;\n }\n }\n\n @Watch(\"_id\")\n @Watch(\"initialized\")\n watch1() {\n this.watch1Fn();\n }\n\n watch2Fn() {\n this._value = this.value;\n }\n\n @Watch(\"value\")\n watch2() {\n this.watch2Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-select\");\n this.initialized = true;\n const mId = this.id ?? `select-${uuid()}`;\n this._id = mId;\n this._messageId = mId + DEFAULT_MESSAGE_ID_SUFFIX;\n this._validMessageId = mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._placeholderId = mId + DEFAULT_PLACEHOLDER_ID_SUFFIX;\n this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;\n this.watch0Fn();\n this.watch1Fn();\n this.watch2Fn();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-select\", this.className)}\n data-variant={this.variant}\n data-hide-label={getHideProp(this.showLabel)}\n data-icon={this.icon}\n data-hide-icon={getHideProp(this.showIcon)}\n >\n <label htmlFor={this._id}>{this.label ?? DEFAULT_LABEL}</label>\n <select\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n ref={(el: any) => {\n this._ref = el;\n }}\n required={getBoolean(this.required, \"required\")}\n disabled={getBoolean(this.disabled, \"disabled\")}\n id={this._id}\n name={this.name}\n size={this.size}\n /* @ts-ignore */\nvalue={this.value ?? this._value}\n autocomplete={this.autocomplete}\n multiple={this.multiple}\n onInput={(event) => this.handleInput(event)}\n onClick={(event) => this.handleClick(event)}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n aria-describedby={this._descByIds}\n >\n <option hidden={true}></option>\n {this.options ? (\n this.options?.map((option) => (\n <Fragment>\n {option.options ? (\n <optgroup label={this.getOptionLabel(option)}>\n {option.options?.map((optgroupOption) => (\n <option\n key={optgroupOption.value.toString()}\n value={optgroupOption.value}\n selected={optgroupOption.selected}\n disabled={optgroupOption.disabled}\n >\n {this.getOptionLabel(optgroupOption)}\n </option>\n ))}\n </optgroup>\n ) : null}\n {!option.options ? (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.selected}\n >\n {this.getOptionLabel(option)}\n </option>\n ) : null}\n </Fragment>\n ))\n ) : (\n <slot></slot>\n )}\n </select>\n <span id={this._placeholderId}>{this.placeholder ?? this.label}</span>\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n icon={this.messageIcon}\n id={this._messageId}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage || DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"mappings":"iNAkDaA,EAAQ,MAHpB,WAAAC,CAAAC,G,iJA0CUC,KAAGC,IAAGC,UACNF,KAAUG,WAAGD,UACbF,KAAeI,gBAAGF,UAClBF,KAAiBK,kBAAGH,UACpBF,KAAeM,gBAAGJ,UAClBF,KAAcO,eAAG,GACjBP,KAAUQ,WAAG,GACbR,KAAMS,OAAG,GACTT,KAAWU,YAAG,MACdV,KAAkBW,mBAAG,EA0Q/B,CAxQC,aAAAC,G,MACE,UAAUC,EAAAb,KAAKc,gBAAgB,MAAAD,SAAA,EAAAA,EAAAb,KAAKe,aAAe,Q,CAErD,gBAAAC,G,YAEE,MAAKH,EAAAb,KAAKiB,QAAI,MAAAJ,SAAA,SAAAA,EAAEK,SAASC,QAASnB,KAAKe,aAAe,UAAW,CAC/Df,KAAKQ,WAAaR,KAAKK,kBACvBL,KAAKM,gBACHN,KAAKoB,kBACLC,EAAArB,KAAKiB,QAAI,MAAAI,SAAA,SAAAA,EAAEC,oBACXC,EACF,GAAIC,IAAgB,CAClBxB,KAAKW,mBAAqBX,KAAKM,gBAC/BmB,GAAM,IAAOzB,KAAKW,mBAAqB,IAAK,I,OAEzC,GACLX,KAAKY,mBACLc,EAAA1B,KAAKiB,QAAI,MAAAS,SAAA,SAAAA,EAAER,SAASC,QACpBnB,KAAK2B,SACL,CACA3B,KAAKQ,WAAaR,KAAKI,gBACvB,GAAIoB,IAAgB,CAClBxB,KAAKW,oBAAqBiB,EAAA5B,KAAKc,gBAAgB,MAAAc,SAAA,EAAAA,EAAAC,EAC/CJ,GAAM,IAAOzB,KAAKW,mBAAqB,IAAK,I,OAEzC,GAAImB,EAAkB9B,KAAK+B,QAAS/B,KAAKgC,aAAc,CAC5DhC,KAAKQ,WAAaR,KAAKG,U,KAClB,CACLH,KAAKQ,WAAaR,KAAKO,c,EAG3B,WAAA0B,CAAYC,GACVA,EAAMC,kBACN,GAAInC,KAAKoC,MAAO,CACdpC,KAAKoC,MAAMC,KAAKH,E,EAGpB,WAAAI,CAAYJ,GACVA,EAAMC,kBACN,GAAInC,KAAKuC,MAAO,CACdvC,KAAKuC,MAAMF,KAAKH,E,CAElBlC,KAAKgB,kB,CAEP,YAAAwB,CAAaN,GACXA,EAAMC,kBACN,GAAInC,KAAKyC,OAAQ,CACfzC,KAAKyC,OAAOJ,KAAKH,E,CAEnBlC,KAAKgB,kB,CAEP,UAAA0B,CAAWR,GACTA,EAAMC,kBACN,GAAInC,KAAK2C,KAAM,CACb3C,KAAK2C,KAAKN,KAAKH,E,EAGnB,WAAAU,CAAYV,GACVA,EAAMC,kBACN,GAAInC,KAAK6C,MAAO,CACd7C,KAAK6C,MAAMR,KAAKH,E,EAGpB,cAAAY,CAAeC,G,QACb,OAAOlC,EAAAkC,EAAOC,SAAS,MAAAnC,SAAA,EAAAA,GAAAQ,EAAA0B,EAAOE,SAAK,MAAA5B,SAAA,SAAAA,EAAE6B,U,CAQ/B,sBAAAC,CACNC,EACAC,GAEA,MAAMC,EAASF,IAAO,MAAPA,SAAO,SAAPA,EAASG,QAAQF,GAChC,GAAID,GAAWE,EAAQ,CACrB,MAAME,EAAaF,EAAOE,WAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAWE,OAAQD,IAAK,CAC1C,MAAME,EAAOH,EAAWI,KAAKH,GAC7B,GACEE,IACCA,EAAKE,KAAKC,WAAW,UAAYH,EAAKE,KAAKC,WAAW,UACvD,CACAV,EAAQW,aAAaJ,EAAKE,KAAMF,EAAKV,OACrCK,EAAOU,gBAAgBL,EAAKE,K,CAE9B,GAAIF,GAAQA,EAAKE,OAAS,QAAS,CACjC,MAAMI,EAAiBN,EAAKV,MAAMiB,SAAS,YAC3C,MAAMjB,EAAQU,EAAKV,MAAMkB,QAAQ,WAAY,IAAIC,OACjD,MAAMC,EAAejB,EAAQkB,aAAa,SAC1ClB,EAAQW,aACNJ,EAAKE,KACL,GAAGQ,EAAe,GAAGA,KAAkB,KAAKpB,KAE9C,GAAIgB,EAAgB,CAElBX,EAAOS,aAAa,QAAS,W,KACxB,CACLT,EAAOU,gBAAgBL,EAAKE,K,KAOtC,QAAAU,G,MACEvE,KAAKM,gBACHN,KAAKoB,kBACLP,EAAAb,KAAKiB,QAAI,MAAAJ,SAAA,SAAAA,EAAES,oBACXC,C,CAKJ,MAAAiD,GACExE,KAAKuE,U,CAGP,QAAAE,GACE,GAAIzE,KAAKC,KAAOD,KAAKU,YAAa,CAChC,MAAMgE,EAAY1E,KAAKC,IAAM0E,EAC7B,MAAMC,EAAgB5E,KAAKC,IAAM4E,EACjC7E,KAAKG,WAAauE,EAClB1E,KAAKI,gBAAkBJ,KAAKC,IAAM6E,EAClC9E,KAAKK,kBAAoBL,KAAKC,IAAM8E,EACpC/E,KAAKO,eAAiBqE,EACtB,GAAI9C,EAAkB9B,KAAK+B,QAAS/B,KAAKgC,aAAc,CACrDhC,KAAKQ,WAAakE,C,KACb,CACL1E,KAAKQ,WAAaoE,C,CAEpB5E,KAAKU,YAAc,K,EAMvB,MAAAsE,GACEhF,KAAKyE,U,CAGP,QAAAQ,GACEjF,KAAKS,OAAST,KAAKiD,K,CAIrB,MAAAiC,GACElF,KAAKiF,U,CAGP,gBAAAE,G,MACEnF,KAAKmD,uBAAuBnD,KAAKiB,KAAM,aACvCjB,KAAKU,YAAc,KACnB,MAAM0E,GAAMvE,EAAAb,KAAKqF,MAAE,MAAAxE,SAAA,EAAAA,EAAI,UAAUyE,MACjCtF,KAAKC,IAAMmF,EACXpF,KAAKG,WAAaiF,EAAMT,EACxB3E,KAAKI,gBAAkBgF,EAAMN,EAC7B9E,KAAKK,kBAAoB+E,EAAML,EAC/B/E,KAAKO,eAAiB6E,EAAMP,EAC5B7E,KAAKM,gBAAkBN,KAAKoB,gBAAkBG,EAC9CvB,KAAKuE,WACLvE,KAAKyE,WACLzE,KAAKiF,U,CAGP,MAAAM,G,YACE,OACEC,EAAA,OAAAC,IAAA,2CACEC,MAAOC,EAAI,YAAa3F,KAAK4F,WAAU,eACzB5F,KAAK6F,QACF,kBAAAC,EAAY9F,KAAK+F,WACvB,YAAA/F,KAAKgG,KAAI,iBACJF,EAAY9F,KAAKiG,WAEjCT,EAAA,SAAAC,IAAA,2CAAOS,QAASlG,KAAKC,MAAMY,EAAAb,KAAKgD,SAAS,MAAAnC,SAAA,EAAAA,EAAAsF,GACzCX,EAAA,UAAAC,IAAA,0DACgBzF,KAAKe,aAAe,UACZ,uBAAAf,KAAKe,WAC3BqF,IAAMC,IACJrG,KAAKiB,KAAOoF,CAAE,EAEhB1E,SAAU2E,EAAWtG,KAAK2B,SAAU,YACpC4E,SAAUD,EAAWtG,KAAKuG,SAAU,YACpClB,GAAIrF,KAAKC,IACT4D,KAAM7D,KAAK6D,KACX2C,KAAMxG,KAAKwG,KAErBvD,OAAO5B,EAAArB,KAAKiD,SAAS,MAAA5B,SAAA,EAAAA,EAAArB,KAAKS,OAChBgG,aAAczG,KAAKyG,aACnBC,SAAU1G,KAAK0G,SACfC,QAAUzE,GAAUlC,KAAKsC,YAAYJ,GACrC0E,QAAU1E,GAAUlC,KAAKiC,YAAYC,GACrC2E,SAAW3E,GAAUlC,KAAKwC,aAAaN,GACvC4E,OAAS5E,GAAUlC,KAAK0C,WAAWR,GACnC6E,QAAU7E,GAAUlC,KAAK4C,YAAYV,GAAM,mBACzBlC,KAAKQ,YAEvBgF,EAAQ,UAAAC,IAAA,2CAAAuB,OAAQ,OACfhH,KAAKiH,SACJvF,EAAA1B,KAAKiH,WAAO,MAAAvF,SAAA,SAAAA,EAAEwF,KAAKnE,I,MAAW,OAC5ByC,EAAC2B,EAAQ,KACNpE,EAAOkE,QACNzB,EAAA,YAAUxC,MAAOhD,KAAK8C,eAAeC,KAClClC,EAAAkC,EAAOkE,WAAS,MAAApG,SAAA,SAAAA,EAAAqG,KAAKE,GACpB5B,EAAA,UACEC,IAAK2B,EAAenE,MAAMC,WAC1BD,MAAOmE,EAAenE,MACtBoE,SAAUD,EAAeC,SACzBd,SAAUa,EAAeb,UAExBvG,KAAK8C,eAAesE,OAIzB,MACFrE,EAAOkE,QACPzB,EACE,UAAAvC,MAAOF,EAAOE,MACdsD,SAAUxD,EAAOwD,SACjBc,SAAUtE,EAAOsE,UAEhBrH,KAAK8C,eAAeC,IAErB,KACK,IAGbyC,EAAA,cAGJA,EAAA,QAAAC,IAAA,2CAAMJ,GAAIrF,KAAKO,iBAAiBqB,EAAA5B,KAAKsH,eAAW,MAAA1F,SAAA,EAAAA,EAAI5B,KAAKgD,OACxDlB,EAAkB9B,KAAK+B,QAAS/B,KAAKgC,aACpCwD,EAAA,eACEgB,KAAK,QACLR,KAAMhG,KAAKuH,YACXlC,GAAIrF,KAAKG,YAERH,KAAK+B,SAEN,KACH/B,KAAKY,gBACJ4E,EACE,eAAAgB,KAAK,QACLgB,SAAS,aACTnC,GAAIrF,KAAKI,iBAERJ,KAAKc,cAAgBe,GAEtB,KACJ2D,EAAA,eAAAC,IAAA,2CACEe,KAAK,QACLgB,SAAS,WACTnC,GAAIrF,KAAKK,mBAERL,KAAKM,iBAERkF,EAAA,QAAAC,IAAA,kEAA2B,OAAOgC,KAAK,UACpCzH,KAAKW,oB","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBLink","handleClick","event","stopPropagation","this","click","emit","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","value","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","componentDidLoad","_ref","render","h","key","class","cls","className","ref","el","id","href","target","rel","role","hrefLang","hreflang","getBooleanAsString","disabled","tabIndex","selected","label","current","size","getHideProp","_a","showIcon","variant","content","onClick","text"],"sources":["src/components/link/link.tsx"],"sourcesContent":["import { DBLinkProps, DBLinkState } from \"./model\";\nimport { cls, getBooleanAsString, getHideProp } from \"../../utils\";\nimport { ClickEvent } from \"../../shared/model\";\n\nimport {\n Component,\n h,\n Fragment,\n Event,\n EventEmitter,\n Prop,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-link\",\n})\nexport class DBLink {\n private _ref!: HTMLAnchorElement | any;\n @Event() click: EventEmitter<\n Parameters<Required<DBLinkProps>[\"onClick\"]>[number]\n > | void;\n @Prop() id: DBLinkProps[\"id\"];\n @Prop({attribute: \"classname\"}) className: DBLinkProps[\"className\"];\n @Prop() href: DBLinkProps[\"href\"];\n @Prop() target: DBLinkProps[\"target\"];\n @Prop() rel: DBLinkProps[\"rel\"];\n @Prop() role: DBLinkProps[\"role\"];\n @Prop() hreflang: DBLinkProps[\"hreflang\"];\n @Prop() disabled: DBLinkProps[\"disabled\"];\n @Prop() selected: DBLinkProps[\"selected\"];\n @Prop() label: DBLinkProps[\"label\"];\n @Prop() current: DBLinkProps[\"current\"];\n @Prop() size: DBLinkProps[\"size\"];\n @Prop() showIcon: DBLinkProps[\"showIcon\"];\n @Prop() variant: DBLinkProps[\"variant\"];\n @Prop() content: DBLinkProps[\"content\"];\n @Prop() text: DBLinkProps[\"text\"];\n\n handleClick(event: ClickEvent<HTMLAnchorElement>) {\n event.stopPropagation();\n if (this.click) {\n this.click.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-link\");\n }\n\n render() {\n return (\n <a\n class={cls(\"db-link\", this.className)}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this.id}\n href={this.href}\n target={this.target}\n rel={this.rel}\n role={this.role}\n hrefLang={this.hreflang}\n aria-disabled={getBooleanAsString(this.disabled)}\n tabIndex={this.disabled ? -1 : 0}\n aria-selected={getBooleanAsString(this.selected)}\n aria-label={this.label}\n aria-current={this.current}\n data-size={this.size}\n data-hide-icon-after={getHideProp(this.showIcon ?? true)}\n data-variant={this.variant}\n data-content={this.content || \"internal\"}\n onClick={(event) => this.handleClick(event)}\n >\n {this.text ? this.text : <slot></slot>}\n </a>\n );\n }\n}\n"],"mappings":"0GAqBaA,EAAM,M,oDAsBjB,WAAAC,CAAYC,GACVA,EAAMC,kBACN,GAAIC,KAAKC,MAAO,CACdD,KAAKC,MAAMC,KAAKJ,E,EASZ,sBAAAK,CACNC,EACAC,GAEA,MAAMC,EAASF,IAAO,MAAPA,SAAO,SAAPA,EAASG,QAAQF,GAChC,GAAID,GAAWE,EAAQ,CACrB,MAAME,EAAaF,EAAOE,WAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAWE,OAAQD,IAAK,CAC1C,MAAME,EAAOH,EAAWI,KAAKH,GAC7B,GACEE,IACCA,EAAKE,KAAKC,WAAW,UAAYH,EAAKE,KAAKC,WAAW,UACvD,CACAV,EAAQW,aAAaJ,EAAKE,KAAMF,EAAKK,OACrCV,EAAOW,gBAAgBN,EAAKE,K,CAE9B,GAAIF,GAAQA,EAAKE,OAAS,QAAS,CACjC,MAAMK,EAAiBP,EAAKK,MAAMG,SAAS,YAC3C,MAAMH,EAAQL,EAAKK,MAAMI,QAAQ,WAAY,IAAIC,OACjD,MAAMC,EAAelB,EAAQmB,aAAa,SAC1CnB,EAAQW,aACNJ,EAAKE,KACL,GAAGS,EAAe,GAAGA,KAAkB,KAAKN,KAE9C,GAAIE,EAAgB,CAElBZ,EAAOS,aAAa,QAAS,W,KACxB,CACLT,EAAOW,gBAAgBN,EAAKE,K,KAOtC,gBAAAW,GACExB,KAAKG,uBAAuBH,KAAKyB,KAAM,U,CAGzC,MAAAC,G,MACE,OACEC,EACE,KAAAC,IAAA,2CAAAC,MAAOC,EAAI,UAAW9B,KAAK+B,WAC3BC,IAAMC,IACJjC,KAAKyB,KAAOQ,CAAE,EAEhBC,GAAIlC,KAAKkC,GACTC,KAAMnC,KAAKmC,KACXC,OAAQpC,KAAKoC,OACbC,IAAKrC,KAAKqC,IACVC,KAAMtC,KAAKsC,KACXC,SAAUvC,KAAKwC,SACA,gBAAAC,EAAmBzC,KAAK0C,UACvCC,SAAU3C,KAAK0C,UAAW,EAAK,EAChB,gBAAAD,EAAmBzC,KAAK4C,UAC3B,aAAA5C,KAAK6C,MACH,eAAA7C,KAAK8C,QACR,YAAA9C,KAAK+C,KACM,uBAAAC,GAAYC,EAAAjD,KAAKkD,YAAQ,MAAAD,SAAA,EAAAA,EAAI,MACrC,eAAAjD,KAAKmD,QACL,eAAAnD,KAAKoD,SAAW,WAC9BC,QAAUvD,GAAUE,KAAKH,YAAYC,IAEpCE,KAAKsD,KAAOtD,KAAKsD,KAAO3B,EAAa,a","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBCheckbox","constructor","hostRef","this","initialized","_id","undefined","_messageId","_validMessageId","_invalidMessageId","_invalidMessage","_descByIds","_voiceOverFallback","hasValidState","_a","validMessage","validation","handleValidation","_ref","validity","valid","invalidMessage","_b","validationMessage","DEFAULT_INVALID_MESSAGE","hasVoiceOver","delay","_c","required","_d","DEFAULT_VALID_MESSAGE","stringPropVisible","message","showMessage","handleChange","event","stopPropagation","change","emit","handleBlur","blur","handleFocus","focus","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","value","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","watch0Fn","watch0","watch1Fn","messageId","DEFAULT_MESSAGE_ID_SUFFIX","DEFAULT_VALID_MESSAGE_ID_SUFFIX","DEFAULT_INVALID_MESSAGE_ID_SUFFIX","watch1","watch2Fn","indeterminate","getBoolean","watch2","watch3Fn","checked","watch3","componentDidLoad","mId","id","uuid","render","h","key","class","cls","className","size","getHideProp","showLabel","htmlFor","type","ref","el","disabled","onChange","onBlur","onFocus","label","icon","messageIcon","semantic","role"],"sources":["src/components/checkbox/checkbox.tsx"],"sourcesContent":["import { DBCheckboxProps, DBCheckboxState } from \"./model\";\nimport {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport { ChangeEvent, InteractionEvent } from \"../../shared/model\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport {\n cls,\n delay,\n getBoolean,\n getHideProp,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-checkbox\",\n})\nexport class DBCheckbox {\n private _ref!: HTMLInputElement | any;\n @Prop() id: DBCheckboxProps[\"id\"];\n @Prop() invalidMessage: DBCheckboxProps[\"invalidMessage\"];\n @Prop() message: DBCheckboxProps[\"message\"];\n @Prop() showMessage: DBCheckboxProps[\"showMessage\"];\n @Prop() indeterminate: DBCheckboxProps[\"indeterminate\"];\n @Prop() checked: DBCheckboxProps[\"checked\"];\n @Prop() validMessage: DBCheckboxProps[\"validMessage\"];\n @Prop() validation: DBCheckboxProps[\"validation\"];\n @Prop() required: DBCheckboxProps[\"required\"];\n @Event() change: EventEmitter<\n Parameters<Required<DBCheckboxProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBCheckboxProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBCheckboxProps>[\"onFocus\"]>[number]\n > | void;\n @Prop({attribute: \"classname\"}) className: DBCheckboxProps[\"className\"];\n @Prop() size: DBCheckboxProps[\"size\"];\n @Prop() showLabel: DBCheckboxProps[\"showLabel\"];\n @Prop() name: DBCheckboxProps[\"name\"];\n @Prop() disabled: DBCheckboxProps[\"disabled\"];\n @Prop() value: DBCheckboxProps[\"value\"];\n @Prop() label: DBCheckboxProps[\"label\"];\n @Prop() messageIcon: DBCheckboxProps[\"messageIcon\"];\n @State() initialized = false;\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _descByIds = \"\";\n @State() _voiceOverFallback = \"\";\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n /* For a11y reasons we need to map the correct message with the checkbox */\n if (!this._ref?.validity.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this._invalidMessage;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (\n this.hasValidState() &&\n this._ref?.validity.valid &&\n this.required\n ) {\n this._descByIds = this._validMessageId;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId;\n } else {\n this._descByIds = \"\";\n }\n }\n handleChange(event: ChangeEvent<HTMLInputElement>) {\n event.stopPropagation();\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLInputElement> | any) {\n event.stopPropagation();\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLInputElement> | any) {\n event.stopPropagation();\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLInputElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n }\n\n @Watch(\"_ref\")\n @Watch(\"invalidMessage\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._id) {\n const messageId = this._id + DEFAULT_MESSAGE_ID_SUFFIX;\n this._messageId = messageId;\n this._validMessageId = this._id + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = this._id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = messageId;\n }\n }\n }\n\n @Watch(\"_id\")\n watch1() {\n this.watch1Fn();\n }\n\n watch2Fn() {\n if (this._ref) {\n if (this.indeterminate !== undefined) {\n // When indeterminate is set, the value of the checked prop only impacts the form submitted values.\n // It has no accessibility or UX implications. (https://mui.com/material-ui/react-checkbox/)\n this._ref.indeterminate = !!getBoolean(this.indeterminate);\n }\n }\n }\n\n @Watch(\"initialized\")\n @Watch(\"_ref\")\n @Watch(\"indeterminate\")\n watch2() {\n this.watch2Fn();\n }\n\n watch3Fn() {\n if (this.initialized && this._ref) {\n // in angular this must be set via native element\n if (this.checked != undefined) {\n this._ref.checked = !!getBoolean(this.checked);\n }\n this.initialized = false;\n }\n }\n\n @Watch(\"initialized\")\n @Watch(\"_ref\")\n @Watch(\"checked\")\n watch3() {\n this.watch3Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-checkbox\");\n this.initialized = true;\n const mId = this.id ?? `checkbox-${uuid()}`;\n this._id = mId;\n this._messageId = mId + DEFAULT_MESSAGE_ID_SUFFIX;\n this._validMessageId = mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;\n this.watch0Fn();\n this.watch1Fn();\n this.watch2Fn();\n this.watch3Fn();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-checkbox\", this.className)}\n data-size={this.size}\n data-hide-label={getHideProp(this.showLabel)}\n >\n <label htmlFor={this._id}>\n <input\n type=\"checkbox\"\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this._id}\n name={this.name}\n checked={getBoolean(this.checked, \"checked\")}\n disabled={getBoolean(this.disabled, \"disabled\")}\n value={this.value}\n required={getBoolean(this.required, \"required\")}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n aria-describedby={this._descByIds}\n />\n {this.label ? this.label : <slot></slot>}\n </label>\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n icon={this.messageIcon}\n id={this._messageId}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage || DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBRadio","constructor","hostRef","this","initialized","_id","undefined","handleChange","event","stopPropagation","change","emit","handleBlur","blur","handleFocus","focus","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","value","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","watch0Fn","checked","_ref","watch0","componentDidLoad","_a","id","uuid","render","h","key","class","cls","className","size","getHideProp","showLabel","htmlFor","type","validation","ref","el","getBoolean","disabled","describedbyid","required","onChange","onBlur","onFocus","label"],"sources":["src/components/radio/radio.tsx"],"sourcesContent":["import { DBRadioProps, DBRadioState } from \"./model\";\nimport { cls, getBoolean, getHideProp, uuid } from \"../../utils\";\nimport { ChangeEvent, InteractionEvent } from \"../../shared/model\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-radio\",\n})\nexport class DBRadio {\n private _ref!: HTMLInputElement | any;\n @Prop() id: DBRadioProps[\"id\"];\n @Prop() checked: DBRadioProps[\"checked\"];\n @Event() change: EventEmitter<\n Parameters<Required<DBRadioProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBRadioProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBRadioProps>[\"onFocus\"]>[number]\n > | void;\n @Prop() size: DBRadioProps[\"size\"];\n @Prop() showLabel: DBRadioProps[\"showLabel\"];\n @Prop({attribute: \"classname\"}) className: DBRadioProps[\"className\"];\n @Prop() validation: DBRadioProps[\"validation\"];\n @Prop() name: DBRadioProps[\"name\"];\n @Prop() disabled: DBRadioProps[\"disabled\"];\n @Prop() describedbyid: DBRadioProps[\"describedbyid\"];\n @Prop() value: DBRadioProps[\"value\"];\n @Prop() required: DBRadioProps[\"required\"];\n @Prop() label: DBRadioProps[\"label\"];\n @State() initialized = false;\n @State() _id = undefined;\n\n handleChange(event: ChangeEvent<HTMLInputElement> | any) {\n event.stopPropagation();\n if (this.change) {\n this.change.emit(event);\n }\n }\n handleBlur(event: InteractionEvent<HTMLInputElement> | any) {\n event.stopPropagation();\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLInputElement> | any) {\n event.stopPropagation();\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLInputElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n if (this.checked && this.initialized && this._ref) {\n this._ref.checked = true;\n }\n }\n\n @Watch(\"initialized\")\n @Watch(\"_ref\")\n @Watch(\"checked\")\n watch0() {\n this.watch0Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-radio\");\n this.initialized = true;\n this._id = this.id ?? `radio-${uuid()}`;\n this.watch0Fn();\n }\n\n render() {\n return (\n <label\n class={cls(\"db-radio\", this.className)}\n data-size={this.size}\n data-hide-label={getHideProp(this.showLabel)}\n htmlFor={this._id}\n >\n <input\n type=\"radio\"\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this._id}\n name={this.name}\n checked={getBoolean(this.checked, \"checked\")}\n disabled={getBoolean(this.disabled, \"disabled\")}\n aria-describedby={this.describedbyid}\n value={this.value}\n required={getBoolean(this.required, \"required\")}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n />\n {this.label ? this.label : <slot></slot>}\n </label>\n );\n }\n}\n"],"mappings":"iHA2BaA,EAAO,MAHnB,WAAAC,CAAAC,G,2FA0BUC,KAAWC,YAAG,MACdD,KAAGE,IAAGC,SA+GhB,CA7GC,YAAAC,CAAaC,GACXA,EAAMC,kBACN,GAAIN,KAAKO,OAAQ,CACfP,KAAKO,OAAOC,KAAKH,E,EAGrB,UAAAI,CAAWJ,GACTA,EAAMC,kBACN,GAAIN,KAAKU,KAAM,CACbV,KAAKU,KAAKF,KAAKH,E,EAGnB,WAAAM,CAAYN,GACVA,EAAMC,kBACN,GAAIN,KAAKY,MAAO,CACdZ,KAAKY,MAAMJ,KAAKH,E,EASZ,sBAAAQ,CACNC,EACAC,GAEA,MAAMC,EAASF,IAAO,MAAPA,SAAO,SAAPA,EAASG,QAAQF,GAChC,GAAID,GAAWE,EAAQ,CACrB,MAAME,EAAaF,EAAOE,WAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAWE,OAAQD,IAAK,CAC1C,MAAME,EAAOH,EAAWI,KAAKH,GAC7B,GACEE,IACCA,EAAKE,KAAKC,WAAW,UAAYH,EAAKE,KAAKC,WAAW,UACvD,CACAV,EAAQW,aAAaJ,EAAKE,KAAMF,EAAKK,OACrCV,EAAOW,gBAAgBN,EAAKE,K,CAE9B,GAAIF,GAAQA,EAAKE,OAAS,QAAS,CACjC,MAAMK,EAAiBP,EAAKK,MAAMG,SAAS,YAC3C,MAAMH,EAAQL,EAAKK,MAAMI,QAAQ,WAAY,IAAIC,OACjD,MAAMC,EAAelB,EAAQmB,aAAa,SAC1CnB,EAAQW,aACNJ,EAAKE,KACL,GAAGS,EAAe,GAAGA,KAAkB,KAAKN,KAE9C,GAAIE,EAAgB,CAElBZ,EAAOS,aAAa,QAAS,W,KACxB,CACLT,EAAOW,gBAAgBN,EAAKE,K,KAOtC,QAAAW,GACE,GAAIlC,KAAKmC,SAAWnC,KAAKC,aAAeD,KAAKoC,KAAM,CACjDpC,KAAKoC,KAAKD,QAAU,I,EAOxB,MAAAE,GACErC,KAAKkC,U,CAGP,gBAAAI,G,MACEtC,KAAKa,uBAAuBb,KAAKoC,KAAM,YACvCpC,KAAKC,YAAc,KACnBD,KAAKE,KAAMqC,EAAAvC,KAAKwC,MAAE,MAAAD,SAAA,EAAAA,EAAI,SAASE,MAC/BzC,KAAKkC,U,CAGP,MAAAQ,GACE,OACEC,EAAA,SAAAC,IAAA,2CACEC,MAAOC,EAAI,WAAY9C,KAAK+C,WACjB,YAAA/C,KAAKgD,KACC,kBAAAC,EAAYjD,KAAKkD,WAClCC,QAASnD,KAAKE,KAEdyC,EAAA,SAAAC,IAAA,2CACEQ,KAAK,QAAO,eACEpD,KAAKqD,aAAe,UAAS,uBACrBrD,KAAKqD,WAC3BC,IAAMC,IACJvD,KAAKoC,KAAOmB,CAAE,EAEhBf,GAAIxC,KAAKE,IACTqB,KAAMvB,KAAKuB,KACXY,QAASqB,EAAWxD,KAAKmC,QAAS,WAClCsB,SAAUD,EAAWxD,KAAKyD,SAAU,YAAW,mBAC7BzD,KAAK0D,cACvBhC,MAAO1B,KAAK0B,MACZiC,SAAUH,EAAWxD,KAAK2D,SAAU,YACpCC,SAAWvD,GAAUL,KAAKI,aAAaC,GACvCwD,OAASxD,GAAUL,KAAKS,WAAWJ,GACnCyD,QAAUzD,GAAUL,KAAKW,YAAYN,KAEtCL,KAAK+D,MAAQ/D,KAAK+D,MAAQpB,EAAa,a","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBButton","handleClick","event","stopPropagation","this","click","emit","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","value","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","componentDidLoad","_ref","render","h","key","class","cls","className","ref","el","id","type","disabled","getBoolean","label","icon","getHideProp","showIcon","size","state","width","variant","getBooleanAsString","noText","form","describedbyid","ariaexpanded","ariapressed","onClick","text"],"sources":["src/components/button/button.tsx"],"sourcesContent":["import type { DBButtonProps, DBButtonState } from \"./model\";\nimport { cls, getBoolean, getBooleanAsString, getHideProp } from \"../../utils\";\nimport { ClickEvent } from \"../../shared/model\";\n\nimport {\n Component,\n h,\n Fragment,\n Event,\n EventEmitter,\n Prop,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-button\",\n})\nexport class DBButton {\n private _ref!: HTMLButtonElement | any;\n @Event() click: EventEmitter<\n Parameters<Required<DBButtonProps>[\"onClick\"]>[number]\n > | void;\n @Prop() id: DBButtonProps[\"id\"];\n @Prop({attribute: \"classname\"}) className: DBButtonProps[\"className\"];\n @Prop() type: DBButtonProps[\"type\"];\n @Prop() disabled: DBButtonProps[\"disabled\"];\n @Prop() label: DBButtonProps[\"label\"];\n @Prop() icon: DBButtonProps[\"icon\"];\n @Prop() showIcon: DBButtonProps[\"showIcon\"];\n @Prop() size: DBButtonProps[\"size\"];\n @Prop() state: DBButtonProps[\"state\"];\n @Prop() width: DBButtonProps[\"width\"];\n @Prop() variant: DBButtonProps[\"variant\"];\n @Prop() noText: DBButtonProps[\"noText\"];\n @Prop() name: DBButtonProps[\"name\"];\n @Prop() form: DBButtonProps[\"form\"];\n @Prop() value: DBButtonProps[\"value\"];\n @Prop() describedbyid: DBButtonProps[\"describedbyid\"];\n @Prop() ariaexpanded: DBButtonProps[\"ariaexpanded\"];\n @Prop() ariapressed: DBButtonProps[\"ariapressed\"];\n @Prop() text: DBButtonProps[\"text\"];\n\n handleClick(event: ClickEvent<HTMLButtonElement>) {\n event.stopPropagation();\n if (this.click) {\n this.click.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-button\");\n }\n\n render() {\n return (\n <button\n class={cls(\"db-button\", this.className)}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this.id}\n type={this.type || \"button\"}\n disabled={getBoolean(this.disabled, \"disabled\")}\n aria-label={this.label}\n data-icon={this.icon}\n data-hide-icon={getHideProp(this.showIcon)}\n data-size={this.size}\n data-state={this.state}\n data-width={this.width}\n data-variant={this.variant}\n data-no-text={getBooleanAsString(this.noText)}\n name={this.name}\n form={this.form}\n value={this.value}\n aria-describedby={this.describedbyid}\n aria-expanded={this.ariaexpanded}\n aria-pressed={this.ariapressed}\n onClick={(event) => this.handleClick(event)}\n >\n {this.text ? this.text : <slot></slot>}\n </button>\n );\n }\n}\n"],"mappings":"iHAqBaA,EAAQ,M,oDAyBnB,WAAAC,CAAYC,GACVA,EAAMC,kBACN,GAAIC,KAAKC,MAAO,CACdD,KAAKC,MAAMC,KAAKJ,E,EASZ,sBAAAK,CACNC,EACAC,GAEA,MAAMC,EAASF,IAAO,MAAPA,SAAO,SAAPA,EAASG,QAAQF,GAChC,GAAID,GAAWE,EAAQ,CACrB,MAAME,EAAaF,EAAOE,WAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAWE,OAAQD,IAAK,CAC1C,MAAME,EAAOH,EAAWI,KAAKH,GAC7B,GACEE,IACCA,EAAKE,KAAKC,WAAW,UAAYH,EAAKE,KAAKC,WAAW,UACvD,CACAV,EAAQW,aAAaJ,EAAKE,KAAMF,EAAKK,OACrCV,EAAOW,gBAAgBN,EAAKE,K,CAE9B,GAAIF,GAAQA,EAAKE,OAAS,QAAS,CACjC,MAAMK,EAAiBP,EAAKK,MAAMG,SAAS,YAC3C,MAAMH,EAAQL,EAAKK,MAAMI,QAAQ,WAAY,IAAIC,OACjD,MAAMC,EAAelB,EAAQmB,aAAa,SAC1CnB,EAAQW,aACNJ,EAAKE,KACL,GAAGS,EAAe,GAAGA,KAAkB,KAAKN,KAE9C,GAAIE,EAAgB,CAElBZ,EAAOS,aAAa,QAAS,W,KACxB,CACLT,EAAOW,gBAAgBN,EAAKE,K,KAOtC,gBAAAW,GACExB,KAAKG,uBAAuBH,KAAKyB,KAAM,Y,CAGzC,MAAAC,GACE,OACEC,EACE,UAAAC,IAAA,2CAAAC,MAAOC,EAAI,YAAa9B,KAAK+B,WAC7BC,IAAMC,IACJjC,KAAKyB,KAAOQ,CAAE,EAEhBC,GAAIlC,KAAKkC,GACTC,KAAMnC,KAAKmC,MAAQ,SACnBC,SAAUC,EAAWrC,KAAKoC,SAAU,YACxB,aAAApC,KAAKsC,MACN,YAAAtC,KAAKuC,KACA,iBAAAC,EAAYxC,KAAKyC,UAAS,YAC/BzC,KAAK0C,KAAI,aACR1C,KAAK2C,MAAK,aACV3C,KAAK4C,MAAK,eACR5C,KAAK6C,QAAO,eACZC,EAAmB9C,KAAK+C,QACtClC,KAAMb,KAAKa,KACXmC,KAAMhD,KAAKgD,KACXhC,MAAOhB,KAAKgB,MACM,mBAAAhB,KAAKiD,cACR,gBAAAjD,KAAKkD,aACN,eAAAlD,KAAKmD,YACnBC,QAAUtD,GAAUE,KAAKH,YAAYC,IAEpCE,KAAKqD,KAAOrD,KAAKqD,KAAO1B,EAAA,a","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as s,h as a}from"./p-bH2PZLSq.js";import{c as i}from"./p-pglUTSkG.js";const e=class{constructor(a){t(this,a);this.click=s(this,"click")}handleClick(t){t.stopPropagation();if(this.click){this.click.emit(t)}}enableAttributePassing(t,s){const a=t===null||t===void 0?void 0:t.closest(s);if(t&&a){const s=a.attributes;for(let i=0;i<s.length;i++){const e=s.item(i);if(e&&(e.name.startsWith("data-")||e.name.startsWith("aria-"))){t.setAttribute(e.name,e.value);a.removeAttribute(e.name)}if(e&&e.name==="class"){const s=e.value.includes("hydrated");const i=e.value.replace("hydrated","").trim();const d=t.getAttribute("class");t.setAttribute(e.name,`${d?`${d} `:""}${i}`);if(s){a.setAttribute("class","hydrated")}else{a.removeAttribute(e.name)}}}}}componentDidLoad(){this.enableAttributePassing(this._ref,"db-card")}render(){return a("div",{key:"a8b769cea69c58fa2388820ba3a02a4406e6a38c",class:i("db-card",this.className),ref:t=>{this._ref=t},id:this.id,"data-behavior":this.behavior,"data-elevation-level":this.elevationLevel,"data-spacing":this.spacing,role:this.behavior==="interactive"?"button":undefined,tabIndex:this.behavior==="interactive"?0:undefined,onClick:t=>this.handleClick(t)},a("slot",{key:"6d0d9a8c16fceb2ed48855666ae58d59c7d59d1e"}))}};export{e as db_card};
2
- //# sourceMappingURL=p-623a9409.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBCard","handleClick","event","stopPropagation","this","click","emit","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","value","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","componentDidLoad","_ref","render","h","key","class","cls","className","ref","el","id","behavior","elevationLevel","spacing","role","undefined","tabIndex","onClick"],"sources":["src/components/card/card.tsx"],"sourcesContent":["import type { DBCardProps, DBCardState } from \"./model\";\nimport { cls } from \"../../utils\";\nimport { ClickEvent } from \"../../shared/model\";\n\nimport {\n Component,\n h,\n Fragment,\n Event,\n EventEmitter,\n Prop,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-card\",\n})\nexport class DBCard {\n private _ref!: HTMLDivElement | any;\n @Event() click: EventEmitter<\n Parameters<Required<DBCardProps>[\"onClick\"]>[number]\n > | void;\n @Prop() id: DBCardProps[\"id\"];\n @Prop({attribute: \"classname\"}) className: DBCardProps[\"className\"];\n @Prop() behavior: DBCardProps[\"behavior\"];\n @Prop() elevationLevel: DBCardProps[\"elevationLevel\"];\n @Prop() spacing: DBCardProps[\"spacing\"];\n\n handleClick(event: ClickEvent<HTMLElement>) {\n event.stopPropagation();\n if (this.click) {\n this.click.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-card\");\n }\n\n render() {\n return (\n <div\n class={cls(\"db-card\", this.className)}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this.id}\n data-behavior={this.behavior}\n data-elevation-level={this.elevationLevel}\n data-spacing={this.spacing}\n role={this.behavior === \"interactive\" ? \"button\" : undefined}\n tabIndex={this.behavior === \"interactive\" ? 0 : undefined}\n onClick={(event) => this.handleClick(event)}\n >\n <slot></slot>\n </div>\n );\n }\n}\n"],"mappings":"4FAqBaA,EAAM,M,oDAWjB,WAAAC,CAAYC,GACVA,EAAMC,kBACN,GAAIC,KAAKC,MAAO,CACdD,KAAKC,MAAMC,KAAKJ,E,EASZ,sBAAAK,CACNC,EACAC,GAEA,MAAMC,EAASF,IAAO,MAAPA,SAAO,SAAPA,EAASG,QAAQF,GAChC,GAAID,GAAWE,EAAQ,CACrB,MAAME,EAAaF,EAAOE,WAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAWE,OAAQD,IAAK,CAC1C,MAAME,EAAOH,EAAWI,KAAKH,GAC7B,GACEE,IACCA,EAAKE,KAAKC,WAAW,UAAYH,EAAKE,KAAKC,WAAW,UACvD,CACAV,EAAQW,aAAaJ,EAAKE,KAAMF,EAAKK,OACrCV,EAAOW,gBAAgBN,EAAKE,K,CAE9B,GAAIF,GAAQA,EAAKE,OAAS,QAAS,CACjC,MAAMK,EAAiBP,EAAKK,MAAMG,SAAS,YAC3C,MAAMH,EAAQL,EAAKK,MAAMI,QAAQ,WAAY,IAAIC,OACjD,MAAMC,EAAelB,EAAQmB,aAAa,SAC1CnB,EAAQW,aACNJ,EAAKE,KACL,GAAGS,EAAe,GAAGA,KAAkB,KAAKN,KAE9C,GAAIE,EAAgB,CAElBZ,EAAOS,aAAa,QAAS,W,KACxB,CACLT,EAAOW,gBAAgBN,EAAKE,K,KAOtC,gBAAAW,GACExB,KAAKG,uBAAuBH,KAAKyB,KAAM,U,CAGzC,MAAAC,GACE,OACEC,EACE,OAAAC,IAAA,2CAAAC,MAAOC,EAAI,UAAW9B,KAAK+B,WAC3BC,IAAMC,IACJjC,KAAKyB,KAAOQ,CAAE,EAEhBC,GAAIlC,KAAKkC,GACM,gBAAAlC,KAAKmC,SACE,uBAAAnC,KAAKoC,eACb,eAAApC,KAAKqC,QACnBC,KAAMtC,KAAKmC,WAAa,cAAgB,SAAWI,UACnDC,SAAUxC,KAAKmC,WAAa,cAAgB,EAAII,UAChDE,QAAU3C,GAAUE,KAAKH,YAAYC,IAErC6B,EAAa,QAAAC,IAAA,6C","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{u as t}from"./p-pglUTSkG.js";class c{static runCallbacks(t){Object.values(c.callbacks).forEach((c=>{if(typeof c==="function"){c(t)}}))}constructor(){if(c._instance){return c._instance}c._instance=this;if(document){document.addEventListener("click",(t=>c.runCallbacks(t)))}}addCallback(e){const l=t();c.callbacks[l]=e;return l}removeCallback(t){delete c.callbacks[t]}}c.callbacks={};c._instance=null;export{c as D};
2
- //# sourceMappingURL=p-DszXleuv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"p-DszXleuv.js","sources":["src/utils/document-click-listener.ts"],"sourcesContent":["import { uuid } from './index';\nexport class DocumentClickListener {\n private static callbacks: Record<string, (event: any) => void> = {};\n private static _instance: DocumentClickListener | null = null;\n private static runCallbacks(event: any) {\n Object.values(DocumentClickListener.callbacks).forEach(callback => {\n if (typeof callback === 'function') {\n callback(event);\n }\n });\n }\n constructor() {\n if (DocumentClickListener._instance) {\n return DocumentClickListener._instance;\n }\n DocumentClickListener._instance = this;\n if (document) {\n document.addEventListener('click', event => DocumentClickListener.runCallbacks(event));\n }\n }\n public addCallback(callback: (event: any) => void) {\n const callbackID = uuid();\n DocumentClickListener.callbacks[callbackID] = callback;\n return callbackID;\n }\n public removeCallback(id: string) {\n delete DocumentClickListener.callbacks[id];\n }\n}"],"names":[],"mappings":";;MACa,qBAAqB,CAAA;IAGxB,OAAO,YAAY,CAAC,KAAU,EAAA;AACpC,QAAA,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AAChE,YAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,QAAQ,CAAC,KAAK,CAAC;;AAEnB,SAAC,CAAC;;AAEJ,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,qBAAqB,CAAC,SAAS,EAAE;YACnC,OAAO,qBAAqB,CAAC,SAAS;;AAExC,QAAA,qBAAqB,CAAC,SAAS,GAAG,IAAI;QACtC,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;;AAGnF,IAAA,WAAW,CAAC,QAA8B,EAAA;AAC/C,QAAA,MAAM,UAAU,GAAG,IAAI,EAAE;AACzB,QAAA,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ;AACtD,QAAA,OAAO,UAAU;;AAEZ,IAAA,cAAc,CAAC,EAAU,EAAA;AAC9B,QAAA,OAAO,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;;;AAxB7B,qBAAS,CAAA,SAAA,GAAyC,EAAE;AACpD,qBAAS,CAAA,SAAA,GAAiC,IAAI;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBTextarea","constructor","hostRef","this","_id","undefined","_messageId","_validMessageId","_invalidMessageId","_invalidMessage","_descByIds","_value","_voiceOverFallback","hasValidState","_a","validMessage","validation","handleValidation","_ref","validity","valid","invalidMessage","_b","validationMessage","DEFAULT_INVALID_MESSAGE","hasVoiceOver","delay","_c","required","minLength","maxLength","_d","DEFAULT_VALID_MESSAGE","stringPropVisible","message","showMessage","handleInput","event","stopPropagation","input","emit","handleChange","change","handleBlur","blur","handleFocus","focus","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","value","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","watch0Fn","watch0","watch1Fn","messageId","DEFAULT_MESSAGE_ID_SUFFIX","DEFAULT_VALID_MESSAGE_ID_SUFFIX","DEFAULT_INVALID_MESSAGE_ID_SUFFIX","watch1","watch2Fn","watch2","componentDidLoad","mId","id","uuid","render","h","key","class","cls","className","variant","getHideProp","showLabel","htmlFor","label","DEFAULT_LABEL","ref","el","resize","disabled","getBoolean","readOnly","readonly","form","getNumber","maxlength","minlength","wrap","spellcheck","spellCheck","autocomplete","onInput","onChange","onBlur","onFocus","placeholder","DEFAULT_PLACEHOLDER","rows","DEFAULT_ROWS","cols","size","icon","messageIcon","semantic","role"],"sources":["src/components/textarea/textarea.tsx"],"sourcesContent":["import { DBTextareaProps, DBTextareaState } from \"./model\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport {\n cls,\n delay,\n getBoolean,\n getHideProp,\n getNumber,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_LABEL,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_PLACEHOLDER,\n DEFAULT_ROWS,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport { ChangeEvent, InputEvent, InteractionEvent } from \"../../shared/model\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-textarea\",\n})\nexport class DBTextarea {\n private _ref!: HTMLTextAreaElement | any;\n @Prop() id: DBTextareaProps[\"id\"];\n @Prop() invalidMessage: DBTextareaProps[\"invalidMessage\"];\n @Prop() message: DBTextareaProps[\"message\"];\n @Prop() showMessage: DBTextareaProps[\"showMessage\"];\n @Prop() value: DBTextareaProps[\"value\"];\n @Prop() validMessage: DBTextareaProps[\"validMessage\"];\n @Prop() validation: DBTextareaProps[\"validation\"];\n @Prop() required: DBTextareaProps[\"required\"];\n @Prop() minLength: DBTextareaProps[\"minLength\"];\n @Prop() maxLength: DBTextareaProps[\"maxLength\"];\n @Event() input: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onInput\"]>[number]\n > | void;\n @Event() change: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onChange\"]>[number]\n > | void;\n @Event() blur: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onBlur\"]>[number]\n > | void;\n @Event() focus: EventEmitter<\n Parameters<Required<DBTextareaProps>[\"onFocus\"]>[number]\n > | void;\n @Prop({attribute: \"classname\"}) className: DBTextareaProps[\"className\"];\n @Prop() variant: DBTextareaProps[\"variant\"];\n @Prop() showLabel: DBTextareaProps[\"showLabel\"];\n @Prop() label: DBTextareaProps[\"label\"];\n @Prop() resize: DBTextareaProps[\"resize\"];\n @Prop() disabled: DBTextareaProps[\"disabled\"];\n @Prop() readOnly: DBTextareaProps[\"readOnly\"];\n @Prop() readonly: DBTextareaProps[\"readonly\"];\n @Prop() form: DBTextareaProps[\"form\"];\n @Prop() maxlength: DBTextareaProps[\"maxlength\"];\n @Prop() minlength: DBTextareaProps[\"minlength\"];\n @Prop() name: DBTextareaProps[\"name\"];\n @Prop() wrap: DBTextareaProps[\"wrap\"];\n @Prop() spellCheck: DBTextareaProps[\"spellCheck\"];\n @Prop() autocomplete: DBTextareaProps[\"autocomplete\"];\n @Prop() placeholder: DBTextareaProps[\"placeholder\"];\n @Prop() rows: DBTextareaProps[\"rows\"];\n @Prop() cols: DBTextareaProps[\"cols\"];\n @Prop() messageIcon: DBTextareaProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _descByIds = \"\";\n @State() _value = \"\";\n @State() _voiceOverFallback = \"\";\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n /* For a11y reasons we need to map the correct message with the textarea */\n if (!this._ref?.validity.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId;\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this._invalidMessage;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (\n this.hasValidState() &&\n this._ref?.validity.valid &&\n (this.required || this.minLength || this.maxLength)\n ) {\n this._descByIds = this._validMessageId;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n } else if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId;\n } else {\n this._descByIds = \"\";\n }\n }\n handleInput(event: InputEvent<HTMLTextAreaElement>) {\n event.stopPropagation();\n if (this.input) {\n this.input.emit(event);\n }\n this.handleValidation();\n }\n handleChange(event: ChangeEvent<HTMLTextAreaElement>) {\n event.stopPropagation();\n if (this.change) {\n this.change.emit(event);\n }\n this.handleValidation();\n }\n handleBlur(event: InteractionEvent<HTMLTextAreaElement> | any) {\n event.stopPropagation();\n if (this.blur) {\n this.blur.emit(event);\n }\n }\n handleFocus(event: InteractionEvent<HTMLTextAreaElement> | any) {\n event.stopPropagation();\n if (this.focus) {\n this.focus.emit(event);\n }\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLTextAreaElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n this._invalidMessage =\n this.invalidMessage ||\n this._ref?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n }\n\n @Watch(\"_ref\")\n @Watch(\"invalidMessage\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._id) {\n const messageId = this._id + DEFAULT_MESSAGE_ID_SUFFIX;\n this._messageId = messageId;\n this._validMessageId = this._id + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = this._id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = messageId;\n }\n }\n }\n\n @Watch(\"_id\")\n watch1() {\n this.watch1Fn();\n }\n\n watch2Fn() {\n this._value = this.value;\n }\n\n @Watch(\"value\")\n watch2() {\n this.watch2Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-textarea\");\n const mId = this.id ?? `textarea-${uuid()}`;\n this._id = mId;\n this._messageId = mId + DEFAULT_MESSAGE_ID_SUFFIX;\n this._validMessageId = mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;\n this.watch0Fn();\n this.watch1Fn();\n this.watch2Fn();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-textarea\", this.className)}\n data-variant={this.variant}\n data-hide-label={getHideProp(this.showLabel)}\n >\n <label htmlFor={this._id}>{this.label ?? DEFAULT_LABEL}</label>\n <textarea\n aria-invalid={this.validation === \"invalid\"}\n data-custom-validity={this.validation}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this._id}\n data-resize={this.resize}\n disabled={getBoolean(this.disabled, \"disabled\")}\n required={getBoolean(this.required, \"required\")}\n readOnly={\n getBoolean(this.readOnly, \"readOnly\") ||\n getBoolean(this.readonly, \"readonly\")\n }\n form={this.form}\n maxLength={getNumber(this.maxLength, this.maxlength)}\n minLength={getNumber(this.minLength, this.minlength)}\n name={this.name}\n wrap={this.wrap}\n spellcheck={this.spellCheck}\n autocomplete={this.autocomplete}\n onInput={(event) => this.handleInput(event)}\n onChange={(event) => this.handleChange(event)}\n onBlur={(event) => this.handleBlur(event)}\n onFocus={(event) => this.handleFocus(event)}\n value={this.value ?? this._value}\n aria-describedby={this._descByIds}\n placeholder={this.placeholder ?? DEFAULT_PLACEHOLDER}\n rows={getNumber(this.rows, DEFAULT_ROWS)}\n cols={getNumber(this.cols)}\n ></textarea>\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n icon={this.messageIcon}\n id={this._messageId}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage || DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"mappings":"kOA+CaA,EAAU,MAHtB,WAAAC,CAAAC,G,sHA8CUC,KAAGC,IAAGC,UACNF,KAAUG,WAAGD,UACbF,KAAeI,gBAAGF,UAClBF,KAAiBK,kBAAGH,UACpBF,KAAeM,gBAAGJ,UAClBF,KAAUO,WAAG,GACbP,KAAMQ,OAAG,GACTR,KAAkBS,mBAAG,EA8N/B,CA5NC,aAAAC,G,MACE,UAAUC,EAAAX,KAAKY,gBAAgB,MAAAD,SAAA,EAAAA,EAAAX,KAAKa,aAAe,Q,CAErD,gBAAAC,G,YAEE,MAAKH,EAAAX,KAAKe,QAAI,MAAAJ,SAAA,SAAAA,EAAEK,SAASC,QAASjB,KAAKa,aAAe,UAAW,CAC/Db,KAAKO,WAAaP,KAAKK,kBACvBL,KAAKM,gBACHN,KAAKkB,kBACLC,EAAAnB,KAAKe,QAAI,MAAAI,SAAA,SAAAA,EAAEC,oBACXC,EACF,GAAIC,IAAgB,CAClBtB,KAAKS,mBAAqBT,KAAKM,gBAC/BiB,GAAM,IAAOvB,KAAKS,mBAAqB,IAAK,I,OAEzC,GACLT,KAAKU,mBACLc,EAAAxB,KAAKe,QAAI,MAAAS,SAAA,SAAAA,EAAER,SAASC,SACnBjB,KAAKyB,UAAYzB,KAAK0B,WAAa1B,KAAK2B,WACzC,CACA3B,KAAKO,WAAaP,KAAKI,gBACvB,GAAIkB,IAAgB,CAClBtB,KAAKS,oBAAqBmB,EAAA5B,KAAKY,gBAAgB,MAAAgB,SAAA,EAAAA,EAAAC,EAC/CN,GAAM,IAAOvB,KAAKS,mBAAqB,IAAK,I,OAEzC,GAAIqB,EAAkB9B,KAAK+B,QAAS/B,KAAKgC,aAAc,CAC5DhC,KAAKO,WAAaP,KAAKG,U,KAClB,CACLH,KAAKO,WAAa,E,EAGtB,WAAA0B,CAAYC,GACVA,EAAMC,kBACN,GAAInC,KAAKoC,MAAO,CACdpC,KAAKoC,MAAMC,KAAKH,E,CAElBlC,KAAKc,kB,CAEP,YAAAwB,CAAaJ,GACXA,EAAMC,kBACN,GAAInC,KAAKuC,OAAQ,CACfvC,KAAKuC,OAAOF,KAAKH,E,CAEnBlC,KAAKc,kB,CAEP,UAAA0B,CAAWN,GACTA,EAAMC,kBACN,GAAInC,KAAKyC,KAAM,CACbzC,KAAKyC,KAAKJ,KAAKH,E,EAGnB,WAAAQ,CAAYR,GACVA,EAAMC,kBACN,GAAInC,KAAK2C,MAAO,CACd3C,KAAK2C,MAAMN,KAAKH,E,EASZ,sBAAAU,CACNC,EACAC,GAEA,MAAMC,EAASF,IAAO,MAAPA,SAAO,SAAPA,EAASG,QAAQF,GAChC,GAAID,GAAWE,EAAQ,CACrB,MAAME,EAAaF,EAAOE,WAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAWE,OAAQD,IAAK,CAC1C,MAAME,EAAOH,EAAWI,KAAKH,GAC7B,GACEE,IACCA,EAAKE,KAAKC,WAAW,UAAYH,EAAKE,KAAKC,WAAW,UACvD,CACAV,EAAQW,aAAaJ,EAAKE,KAAMF,EAAKK,OACrCV,EAAOW,gBAAgBN,EAAKE,K,CAE9B,GAAIF,GAAQA,EAAKE,OAAS,QAAS,CACjC,MAAMK,EAAiBP,EAAKK,MAAMG,SAAS,YAC3C,MAAMH,EAAQL,EAAKK,MAAMI,QAAQ,WAAY,IAAIC,OACjD,MAAMC,EAAelB,EAAQmB,aAAa,SAC1CnB,EAAQW,aACNJ,EAAKE,KACL,GAAGS,EAAe,GAAGA,KAAkB,KAAKN,KAE9C,GAAIE,EAAgB,CAElBZ,EAAOS,aAAa,QAAS,W,KACxB,CACLT,EAAOW,gBAAgBN,EAAKE,K,KAOtC,QAAAW,G,MACEjE,KAAKM,gBACHN,KAAKkB,kBACLP,EAAAX,KAAKe,QAAI,MAAAJ,SAAA,SAAAA,EAAES,oBACXC,C,CAKJ,MAAA6C,GACElE,KAAKiE,U,CAGP,QAAAE,GACE,GAAInE,KAAKC,IAAK,CACZ,MAAMmE,EAAYpE,KAAKC,IAAMoE,EAC7BrE,KAAKG,WAAaiE,EAClBpE,KAAKI,gBAAkBJ,KAAKC,IAAMqE,EAClCtE,KAAKK,kBAAoBL,KAAKC,IAAMsE,EACpC,GAAIzC,EAAkB9B,KAAK+B,QAAS/B,KAAKgC,aAAc,CACrDhC,KAAKO,WAAa6D,C,GAMxB,MAAAI,GACExE,KAAKmE,U,CAGP,QAAAM,GACEzE,KAAKQ,OAASR,KAAKyD,K,CAIrB,MAAAiB,GACE1E,KAAKyE,U,CAGP,gBAAAE,G,MACE3E,KAAK4C,uBAAuB5C,KAAKe,KAAM,eACvC,MAAM6D,GAAMjE,EAAAX,KAAK6E,MAAE,MAAAlE,SAAA,EAAAA,EAAI,YAAYmE,MACnC9E,KAAKC,IAAM2E,EACX5E,KAAKG,WAAayE,EAAMP,EACxBrE,KAAKI,gBAAkBwE,EAAMN,EAC7BtE,KAAKK,kBAAoBuE,EAAML,EAC/BvE,KAAKM,gBAAkBN,KAAKkB,gBAAkBG,EAC9CrB,KAAKiE,WACLjE,KAAKmE,WACLnE,KAAKyE,U,CAGP,MAAAM,G,UACE,OACEC,EAAA,OAAAC,IAAA,2CACEC,MAAOC,EAAI,cAAenF,KAAKoF,WACjB,eAAApF,KAAKqF,QAAO,kBACTC,EAAYtF,KAAKuF,YAElCP,EAAA,SAAAC,IAAA,2CAAOO,QAASxF,KAAKC,MAAMU,EAAAX,KAAKyF,SAAS,MAAA9E,SAAA,EAAAA,EAAA+E,GACzCV,EAAA,YAAAC,IAAA,0DACgBjF,KAAKa,aAAe,UACZ,uBAAAb,KAAKa,WAC3B8E,IAAMC,IACJ5F,KAAKe,KAAO6E,CAAE,EAEhBf,GAAI7E,KAAKC,IAAG,cACCD,KAAK6F,OAClBC,SAAUC,EAAW/F,KAAK8F,SAAU,YACpCrE,SAAUsE,EAAW/F,KAAKyB,SAAU,YACpCuE,SACED,EAAW/F,KAAKgG,SAAU,aAC1BD,EAAW/F,KAAKiG,SAAU,YAE5BC,KAAMlG,KAAKkG,KACXvE,UAAWwE,EAAUnG,KAAK2B,UAAW3B,KAAKoG,WAC1C1E,UAAWyE,EAAUnG,KAAK0B,UAAW1B,KAAKqG,WAC1C/C,KAAMtD,KAAKsD,KACXgD,KAAMtG,KAAKsG,KACXC,WAAYvG,KAAKwG,WACjBC,aAAczG,KAAKyG,aACnBC,QAAUxE,GAAUlC,KAAKiC,YAAYC,GACrCyE,SAAWzE,GAAUlC,KAAKsC,aAAaJ,GACvC0E,OAAS1E,GAAUlC,KAAKwC,WAAWN,GACnC2E,QAAU3E,GAAUlC,KAAK0C,YAAYR,GACrCuB,OAAOtC,EAAAnB,KAAKyD,SAAS,MAAAtC,SAAA,EAAAA,EAAAnB,KAAKQ,OAAM,mBACdR,KAAKO,WACvBuG,aAAatF,EAAAxB,KAAK8G,eAAW,MAAAtF,SAAA,EAAAA,EAAIuF,EACjCC,KAAMb,EAAUnG,KAAKgH,KAAMC,GAC3BC,KAAMf,EAAUnG,KAAKkH,QAEtBpF,EAAkB9B,KAAK+B,QAAS/B,KAAKgC,aACpCgD,EAAA,eACEmC,KAAK,QACLC,KAAMpH,KAAKqH,YACXxC,GAAI7E,KAAKG,YAERH,KAAK+B,SAEN,KACH/B,KAAKU,gBACJsE,EACE,eAAAmC,KAAK,QACLG,SAAS,aACTzC,GAAI7E,KAAKI,iBAERJ,KAAKY,cAAgBiB,GAEtB,KACJmD,EAAA,eAAAC,IAAA,2CACEkC,KAAK,QACLG,SAAS,WACTzC,GAAI7E,KAAKK,mBAERL,KAAKM,iBAER0E,EAAA,QAAAC,IAAA,kEAA2B,OAAOsC,KAAK,UACpCvH,KAAKS,oB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as i,c as t,h as s,F as h}from"./p-bH2PZLSq.js";import{e,f as l,s as a,u as n,h as o,n as d,g as c,j as u,m as r,c as v}from"./p-pglUTSkG.js";import{l as f,a as w,m as b,d as m,e as p,g as y,h as g,i as k,o as A,f as F,k as x,c as D,s as S}from"./p-DC9V_oNU.js";import{D as C}from"./p-DszXleuv.js";const T=class{constructor(s){i(this,s);this.amountChange=t(this,"amountChange");this.dropdownToggle=t(this,"dropdownToggle");this.optionSelected=t(this,"optionSelected");this.showClearSelection=true;this.clearSelectionText="Clear selection";this._id=undefined;this._messageId=undefined;this._validMessageId=undefined;this._invalidMessageId=undefined;this._invalidMessage=undefined;this._selectId=undefined;this._labelId=undefined;this._summaryId=undefined;this._placeholderId=undefined;this._infoTextId=undefined;this._validity="no-validation";this._descByIds="";this._selectedLabels="";this._selectedLabelsId=undefined;this._voiceOverFallback="";this._selectedOptions=[];this.selectAllEnabled=false;this.searchEnabled=false;this.amountOptions=0;this._values=[];this._options=[];this._hasNoOptions=false;this._documentClickListenerCallbackId=undefined;this._internalChangeTimestamp=0;this.selectAllChecked=false;this.selectAllIndeterminate=false;this.satisfyReact=function i(){}}hasValidState(){var i;return!!((i=this.validMessage)!==null&&i!==void 0?i:this.validation==="valid")}handleValidation(){var i,t,s,h,n,o,d,c;if(this.selectRef){this.selectRef.value=this.getNativeSelectValue()}if(!((i=this.selectRef)===null||i===void 0?void 0:i.validity.valid)||this.validation==="invalid"){this._descByIds=this._invalidMessageId;this._invalidMessage=this.invalidMessage||((t=this.selectRef)===null||t===void 0?void 0:t.validationMessage)||f;if(e()){this._voiceOverFallback=this._invalidMessage;l((()=>this._voiceOverFallback=""),1e3)}this._validity=(s=this.validation)!==null&&s!==void 0?s:"invalid"}else if(this.hasValidState()&&((h=this.selectRef)===null||h===void 0?void 0:h.validity.valid)&&this.required){this._descByIds=this._validMessageId;if(e()){this._voiceOverFallback=(n=this.validMessage)!==null&&n!==void 0?n:x;l((()=>this._voiceOverFallback=""),1e3)}this._validity=(o=this.validation)!==null&&o!==void 0?o:"valid"}else if(a(this.message,this.showMessage)){this._descByIds=this._messageId;this._validity=(d=this.validation)!==null&&d!==void 0?d:"no-validation"}else{this._descByIds=this._placeholderId;this._validity=(c=this.validation)!==null&&c!==void 0?c:"no-validation"}}handleDropdownToggle(i){if(this.dropdownToggle){this.dropdownToggle.emit(i)}if(i.target.open){this._documentClickListenerCallbackId=(new C).addCallback((i=>this.handleDocumentClose(i)))}else{if(this._documentClickListenerCallbackId){(new C).removeCallback(this._documentClickListenerCallbackId)}}}getNativeSelectValue(){var i,t;if((i=this._values)===null||i===void 0?void 0:i.length){return(t=this._values.at(0))!==null&&t!==void 0?t:""}return""}setDescById(i){var t;const s=[];if(i){s.push(i)}if(this._selectedLabelsId&&((t=this._selectedLabels)===null||t===void 0?void 0:t.length)){s.push(this._selectedLabelsId)}this._descByIds=s.join(" ")}getSelectAllLabel(){var i;return(i=this.selectAllLabel)!==null&&i!==void 0?i:w}getOptionLabel(i){var t,s,h;return(h=(t=i.label)!==null&&t!==void 0?t:(s=i.value)===null||s===void 0?void 0:s.toString())!==null&&h!==void 0?h:""}getOptionChecked(i){var t,s;if(i&&((t=this._values)===null||t===void 0?void 0:t.includes)){return(s=this._values)===null||s===void 0?void 0:s.includes(i)}return false}getOptionKey(i){var t,s;return((s=(t=i.id)!==null&&t!==void 0?t:i.value)!==null&&s!==void 0?s:n()).toString()}getTagRemoveLabel(i){return this.removeTagsTexts&&this.removeTagsTexts.length>i?this.removeTagsTexts.at(i):`${b} ${this._selectedOptions?this.getOptionLabel(this._selectedOptions[i]):""}`}handleTagRemove(i,t){t.stopPropagation();this.handleSelect(i.value);this.handleSummaryFocus()}handleAutoPlacement(){if(this.detailsRef){const i=this.detailsRef.querySelector("article");if(i){l((()=>{o(i)}),100)}}}handleArrowDownUp(i){var t,s,h,e,a,n,o;if((t=this.detailsRef)===null||t===void 0?void 0:t.open){if(document){const t=document.activeElement;if(t){const c=t.getAttribute("type")==="checkbox"||t.getAttribute("type")==="radio";if(c){const c=t===null||t===void 0?void 0:t.closest("li");if(i.key==="ArrowDown"||i.key==="ArrowRight"){if(c===null||c===void 0?void 0:c.nextElementSibling){(h=(s=c===null||c===void 0?void 0:c.nextElementSibling)===null||s===void 0?void 0:s.querySelector("input"))===null||h===void 0?void 0:h.focus()}else{this.handleFocusFirstDropdownCheckbox(t)}}else{if(c===null||c===void 0?void 0:c.previousElementSibling){(a=(e=c===null||c===void 0?void 0:c.previousElementSibling)===null||e===void 0?void 0:e.querySelector("input"))===null||a===void 0?void 0:a.focus()}else if(this.detailsRef.querySelector(`input[type="checkbox"]`)!==t){this.handleFocusFirstDropdownCheckbox(t)}else{const i=d(this.detailsRef);if(i){l((()=>{i.focus()}),100)}else{const i=Array.from((n=this.detailsRef)===null||n===void 0?void 0:n.querySelectorAll(`input[type="checkbox"],input[type="radio"]`));if(i.length){(o=i.at(-1))===null||o===void 0?void 0:o.focus()}}}}}else{if(t.getAttribute("type")==="search"&&(i.key==="ArrowUp"||i.key==="ArrowLeft")){this.handleClose("close");this.handleSummaryFocus()}else{this.handleFocusFirstDropdownCheckbox(t)}}}}i.stopPropagation();i.preventDefault()}else if(i.key==="ArrowDown"||i.key==="ArrowRight"){this.handleAutoPlacement();if(this.detailsRef){this.detailsRef.open=true}this.handleOpenByKeyboardFocus();i.stopPropagation();i.preventDefault()}}handleKeyboardPress(i){var t;if(i.key==="Escape"&&this.detailsRef&&((t=this.detailsRef)===null||t===void 0?void 0:t.open)){this.handleClose("close");this.handleSummaryFocus()}else if(i.key==="ArrowDown"||i.key==="ArrowUp"||i.key==="ArrowLeft"||i.key==="ArrowRight"){this.handleArrowDownUp(i)}}handleClose(i){if(this.detailsRef){if(i==="close"){this.detailsRef.open=false;this.handleSummaryFocus()}else if(this.detailsRef.open&&(i===null||i===void 0?void 0:i.relatedTarget)){const t=i.relatedTarget;if(!this.detailsRef.contains(t)){this.detailsRef.open=false}}}}handleDocumentClose(i){var t;const s=typeof i.detail==="number"?i.target:i.detail.target;if(((t=this.detailsRef)===null||t===void 0?void 0:t.open)&&!this.detailsRef.contains(s)){this.detailsRef.open=false}}handleOptionSelected(i){const t=(new Date).getTime()-this._internalChangeTimestamp<200;if(t)return;if(this.optionSelected){this._values=i;this.optionSelected.emit(i!==null&&i!==void 0?i:[])}this._internalChangeTimestamp=(new Date).getTime()}handleSelect(i){var t;if(i){if(this.multiple){if((t=this._values)===null||t===void 0?void 0:t.includes(i)){this.handleOptionSelected(this._values.filter((t=>t!==i)))}else{this.handleOptionSelected([...this._values||[],i])}}else{this.handleOptionSelected([i]);this.handleClose("close")}}}handleSelectAll(){var i;if(((i=this._values)===null||i===void 0?void 0:i.length)===this.amountOptions){this.handleOptionSelected([])}else{const i=this.searchEnabled&&this.searchInputRef?this.searchInputRef.value:undefined;this.handleOptionSelected(this.options?this.options.filter((t=>{var s;return!t.isGroupTitle&&(!i||((s=t.value)===null||s===void 0?void 0:s.toLowerCase().includes(i.toLowerCase())))})).map((i=>{var t;return(t=i.value)!==null&&t!==void 0?t:""})):[])}}handleFocusFirstDropdownCheckbox(i){if(this.detailsRef){const t=Array.from(this.detailsRef.querySelectorAll(`input[type="checkbox"],input[type="radio"]`));if(t.length){const s=t.at(0);const h=s===i&&t.length>1?t.at(1):s;if(h){l((()=>{h.focus()}),100)}}}}handleOpenByKeyboardFocus(i){if(this.detailsRef){const t=d(this.detailsRef);if(t){l((()=>{t.focus()}),100)}else if(!i){this.handleFocusFirstDropdownCheckbox()}}}handleSearch(i){i.stopPropagation();const t=i.target.value;this._options=!this.options||!t||t.length===0?this.options:this.options.filter((i=>!i.isGroupTitle&&this.getOptionLabel(i).toLowerCase().includes(t.toLowerCase())))}handleClearAll(){this.handleOptionSelected([]);this.handleSummaryFocus()}handleSummaryFocus(){var i,t;(t=(i=this.detailsRef)===null||i===void 0?void 0:i.querySelector("summary"))===null||t===void 0?void 0:t.focus()}enableAttributePassing(i,t){const s=i===null||i===void 0?void 0:i.closest(t);if(i&&s){const t=s.attributes;for(let h=0;h<t.length;h++){const e=t.item(h);if(e&&(e.name.startsWith("data-")||e.name.startsWith("aria-"))){i.setAttribute(e.name,e.value);s.removeAttribute(e.name)}if(e&&e.name==="class"){const t=e.value.includes("hydrated");const h=e.value.replace("hydrated","").trim();const l=i.getAttribute("class");i.setAttribute(e.name,`${l?`${l} `:""}${h}`);if(t){s.setAttribute("class","hydrated")}else{s.removeAttribute(e.name)}}}}}watch0Fn(){if(this.detailsRef){const i=this.detailsRef.querySelector("summary");if(i){i.addEventListener("click",(()=>{this.handleAutoPlacement();this.handleOpenByKeyboardFocus(true)}));i.addEventListener("keydown",(i=>{var t;if(i.code==="Space"&&!((t=this.detailsRef)===null||t===void 0?void 0:t.open)){this.handleOpenByKeyboardFocus()}}))}this.detailsRef.addEventListener("focusout",(i=>this.handleClose(i)))}}watch0(){this.watch0Fn()}watch1Fn(){if(this._id){const i=this._id+F;this._labelId=this._id+m;this._selectId=this._id+p;this._validMessageId=this._id+y;this._invalidMessageId=this._id+g;this._placeholderId=this._id+k;if(a(this.message,this.showMessage)){this.setDescById(i)}else{this.setDescById()}}}watch1(){this.watch1Fn()}watch2Fn(){if(this.detailsRef){const i=this.detailsRef.querySelector("summary");if(i){i.setAttribute("aria-describedby",this._descByIds||"")}}}watch2(){this.watch2Fn()}watch3Fn(){if(this.showNoResults!==undefined){this._hasNoOptions=this.showNoResults}else if(this._options){this._hasNoOptions=this._options.length===0}}watch3(){this.watch3Fn()}watch4Fn(){this.selectAllEnabled=Boolean(this.multiple&&(this.showSelectAll||this.amountOptions>5))}watch4(){this.watch4Fn()}watch5Fn(){this.searchEnabled=this.showSearch||this.amountOptions>9}watch5(){this.watch5Fn()}watch6Fn(){var i;if(this.values&&Array.isArray(this.values)&&this.values!==this._values){this._values=(i=this.values)!==null&&i!==void 0?i:[]}}watch6(){this.watch6Fn()}watch7Fn(){this.handleValidation()}watch7(){this.watch7Fn()}watch8Fn(){this._validity=this.validation}watch8(){this.watch8Fn()}watch9Fn(){var i,t;if(((i=this._values)===null||i===void 0?void 0:i.length)===0){this.selectAllChecked=false;this.selectAllIndeterminate=false}else if(((t=this._values)===null||t===void 0?void 0:t.length)===this.amountOptions){this.selectAllIndeterminate=false;this.selectAllChecked=true}else if(this._values){this.selectAllIndeterminate=true}}watch9(){this.watch9Fn()}watch10Fn(){var i,t;this._options=this.options;this.amountOptions=(t=(i=this.options)===null||i===void 0?void 0:i.filter((i=>!i.isGroupTitle)).length)!==null&&t!==void 0?t:0}watch10(){this.watch10Fn()}watch11Fn(){var i,t;if((i=this._options)===null||i===void 0?void 0:i.length){this._selectedOptions=(t=this._options)===null||t===void 0?void 0:t.filter((i=>{var t,s;if(!i.value||!((t=this._values)===null||t===void 0?void 0:t["includes"])){return false}return!i.isGroupTitle&&((s=this._values)===null||s===void 0?void 0:s.includes(i.value))}))}}watch11(){this.watch11Fn()}watch12Fn(){var i,t,s;if((i=this._selectedOptions)===null||i===void 0?void 0:i.length){if(this.selectedType==="amount"){this._selectedLabels=this.amountText?this.amountText:`${(t=this._selectedOptions)===null||t===void 0?void 0:t.length} ${A}`}else{this._selectedLabels=(s=this._selectedOptions)===null||s===void 0?void 0:s.map((i=>this.getOptionLabel(i))).join(", ")}}else{this._selectedLabels=""}}watch12(){this.watch12Fn()}watch13Fn(){var i,t;if(this.amountChange){this.amountChange.emit((t=(i=this._selectedOptions)===null||i===void 0?void 0:i.length)!==null&&t!==void 0?t:0)}}watch13(){this.watch13Fn()}watch14Fn(){if(this.selectAllRef){this.selectAllRef.indeterminate=Boolean(this.selectAllIndeterminate)}}watch14(){this.watch14Fn()}watch15Fn(){var i;this._invalidMessage=this.invalidMessage||((i=this.selectRef)===null||i===void 0?void 0:i.validationMessage)||f}watch15(){this.watch15Fn()}componentDidLoad(){var i;this.enableAttributePassing(this._ref,"db-custom-select");const t=(i=this.id)!==null&&i!==void 0?i:`custom-select-${n()}`;this._id=t;this._messageId=t+F;this._validMessageId=t+y;this._invalidMessageId=t+g;this._selectId=t+p;this._labelId=t+m;this._summaryId=t+"-summary";this._placeholderId=t+k;this._selectedLabelsId=t+"-selected-labels";this._infoTextId=t+"-info";this._invalidMessage=this.invalidMessage||f;this.watch0Fn();this.watch1Fn();this.watch2Fn();this.watch3Fn();this.watch4Fn();this.watch5Fn();this.watch6Fn();this.watch7Fn();this.watch8Fn();this.watch9Fn();this.watch10Fn();this.watch11Fn();this.watch12Fn();this.watch13Fn();this.watch14Fn();this.watch15Fn()}render(){var i,t,e,l,n,o,d,f,b,m,p,y,g,k,A;return s("div",{key:"ba168e109d3b2e75b46145033a88119ac46cf3f7",class:v("db-custom-select",this.className),id:this._id,ref:i=>{this._ref=i},"aria-invalid":this._validity==="invalid","data-custom-validity":this._validity,"data-width":this.formFieldWidth,"data-variant":this.variant==="floating"&&this.selectedType==="tag"&&this.multiple?"above":this.variant,"data-required":c(this.required),"data-placement":this.placement,"data-selected-type":this.multiple?this.selectedType:"text","data-hide-label":r(this.showLabel),"data-icon":this.icon,"data-hide-icon":r(this.showIcon)},s("label",{key:"a92ba45f913e2c7a78140da705da166af94484b5",id:this._labelId},(i=this.label)!==null&&i!==void 0?i:w,s("select",{key:"093c76705744d56d0d3c2c33f108a74b088381a5",role:"none",hidden:true,id:this._selectId,tabIndex:-1,ref:i=>{this.selectRef=i},form:this.form,name:this.name,multiple:u(this.multiple,"multiple"),disabled:u(this.disabled,"disabled"),required:u(this.required,"required"),onChange:()=>this.satisfyReact()},((t=this._options)===null||t===void 0?void 0:t.length)?(e=this._options)===null||e===void 0?void 0:e.map((i=>s("option",{disabled:i.disabled,value:i.value,key:undefined},this.getOptionLabel(i)))):null)),s("details",{key:"64c5745a0fc32954f792b7fb81c8b26f11304565",ref:i=>{this.detailsRef=i},open:this.open,onToggle:i=>this.handleDropdownToggle(i),onKeyDown:i=>this.handleKeyboardPress(i)},s("slot",{key:"1b1683fa3e54c249efd67e1ca960d61accd125c3"}),this.options?s(h,null,s("summary",{class:"db-custom-select-form-field",id:this._summaryId,"aria-disabled":c(this.disabled),"aria-labelledby":this._labelId},((l=this._selectedLabels)===null||l===void 0?void 0:l.length)?s("span",{"data-visually-hidden":c(this.selectedType==="tag"),id:this._selectedLabelsId},this._selectedLabels):null,this.selectedType==="tag"?s("div",null,(n=this._selectedOptions)===null||n===void 0?void 0:n.map(((i,t)=>s("db-tag",{emphasis:"strong",behavior:"removable",removeButton:this.getTagRemoveLabel(t),onRemove:t=>this.handleTagRemove(i,t),key:undefined},this.getOptionLabel(i))))):null),s("db-custom-select-dropdown",{width:this.dropdownWidth},this.searchEnabled?s("div",null,s("db-input",{type:"search",ref:i=>{this.searchInputRef=i},name:this._id,form:this._id,showLabel:false,label:(o=this.searchLabel)!==null&&o!==void 0?o:w,placeholder:(d=this.searchPlaceholder)!==null&&d!==void 0?d:this.searchLabel,ariaDescribedBy:this._hasNoOptions||this.showLoading?this._infoTextId:undefined,onInput:i=>this.handleSearch(i)})):null,this._hasNoOptions||this.showLoading?s("db-infotext",{id:this._infoTextId,icon:this._hasNoOptions?undefined:"circular_arrows",semantic:this._hasNoOptions?"warning":"informational"},(f=this._hasNoOptions?this.noResultsText:this.loadingText)!==null&&f!==void 0?f:D):s(h,null,this.selectAllEnabled?s("div",null,s("div",{class:"db-checkbox db-custom-select-list-item"},s("label",null,s("input",{type:"checkbox",value:"select-all",ref:i=>{this.selectAllRef=i},form:this._id,checked:this.selectAllChecked,onChange:()=>this.handleSelectAll()}),this.getSelectAllLabel()))):null,s("db-custom-select-list",{multiple:u(this.multiple,"multiple"),label:(m=(b=this.ariaListLabel)!==null&&b!==void 0?b:this.label)!==null&&m!==void 0?m:w},(p=this._options)===null||p===void 0?void 0:p.map((i=>s("db-custom-select-list-item",{type:this.multiple?"checkbox":"radio",showDivider:i.showDivider,icon:i.icon,isGroupTitle:i.isGroupTitle,groupTitle:this.getOptionLabel(i),name:this._id,checked:this.getOptionChecked(i.value),disabled:i.disabled,value:i.value,onChange:()=>this.handleSelect(i.value),key:undefined},!i.isGroupTitle?this.getOptionLabel(i):null))))),s("div",null,s("db-button",{variant:"ghost",width:"full",icon:"cross",size:"small",name:this._id,form:this._id,onClick:()=>this.handleClose("close")},(y=this.mobileCloseButtonText)!==null&&y!==void 0?y:S)))):null),((g=this.showClearSelection)!==null&&g!==void 0?g:true)&&((k=this._values)===null||k===void 0?void 0:k.length)?s("db-button",{icon:"cross",variant:"ghost",size:"small",noText:true,name:this._id,form:this._id,onClick:()=>this.handleClearAll()},this.clearSelectionText,s("db-tooltip",{placement:"top"},this.clearSelectionText)):null,s("span",{key:"309d5096cdbdfee24bd9a8a1941241586b60b3a4","aria-hidden":c(true),id:this._placeholderId},(A=this.placeholder)!==null&&A!==void 0?A:this.label),a(this.message,this.showMessage)?s("db-infotext",{size:"small",icon:this.messageIcon,id:this._messageId},this.message):null,this.hasValidState()?s("db-infotext",{size:"small",semantic:"successful",id:this._validMessageId},this.validMessage||x):null,s("db-infotext",{key:"8f0fe04ea553fbffd86a7e30baa9cab7be708fd6",size:"small",semantic:"critical",id:this._invalidMessageId},this._invalidMessage),s("span",{key:"c106041467983c90b5a56ee4a6a56f8653dccaab","data-visually-hidden":"true",role:"status"},this._voiceOverFallback))}static get watchers(){return{detailsRef:["watch0","watch2"],_id:["watch1"],_descByIds:["watch2"],showNoResults:["watch3"],_options:["watch3","watch11"],showSelectAll:["watch4"],amountOptions:["watch4","watch5","watch9"],multiple:["watch4"],showSearch:["watch5"],values:["watch6"],_values:["watch7","watch9","watch11"],validation:["watch8"],options:["watch10"],_selectedOptions:["watch12","watch13"],selectedType:["watch12"],amountText:["watch12"],selectAllIndeterminate:["watch14"],selectAllRef:["watch14"],selectRef:["watch15"],invalidMessage:["watch15"]}}};export{T as db_custom_select};
2
- //# sourceMappingURL=p-b5a8e9c3.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBCustomSelect","constructor","hostRef","this","showClearSelection","clearSelectionText","_id","undefined","_messageId","_validMessageId","_invalidMessageId","_invalidMessage","_selectId","_labelId","_summaryId","_placeholderId","_infoTextId","_validity","_descByIds","_selectedLabels","_selectedLabelsId","_voiceOverFallback","_selectedOptions","selectAllEnabled","searchEnabled","amountOptions","_values","_options","_hasNoOptions","_documentClickListenerCallbackId","_internalChangeTimestamp","selectAllChecked","selectAllIndeterminate","satisfyReact","hasValidState","_a","validMessage","validation","handleValidation","selectRef","value","getNativeSelectValue","validity","valid","invalidMessage","_b","validationMessage","DEFAULT_INVALID_MESSAGE","hasVoiceOver","delay","_c","_d","required","_e","DEFAULT_VALID_MESSAGE","_f","stringPropVisible","message","showMessage","_g","_h","handleDropdownToggle","event","dropdownToggle","emit","target","open","DocumentClickListener","addCallback","handleDocumentClose","removeCallback","length","at","setDescById","descId","descByIds","push","join","getSelectAllLabel","selectAllLabel","DEFAULT_LABEL","getOptionLabel","option","label","toString","getOptionChecked","includes","getOptionKey","id","uuid","getTagRemoveLabel","index","removeTagsTexts","DEFAULT_REMOVE","handleTagRemove","stopPropagation","handleSelect","handleSummaryFocus","handleAutoPlacement","detailsRef","dropdown","querySelector","handleDataOutside","handleArrowDownUp","document","activeElement","isCheckbox","getAttribute","listElement","closest","key","nextElementSibling","focus","handleFocusFirstDropdownCheckbox","previousElementSibling","search","getSearchInput","checkboxList","Array","from","querySelectorAll","handleClose","preventDefault","handleOpenByKeyboardFocus","handleKeyboardPress","relatedTarget","contains","detail","handleOptionSelected","values","skip","Date","getTime","optionSelected","multiple","filter","v","handleSelectAll","searchValue","searchInputRef","options","isGroupTitle","toLowerCase","map","checkboxes","first","checkbox","onlySearch","handleSearch","filterText","handleClearAll","enableAttributePassing","element","customElementSelector","parent","attributes","i","attr","item","name","startsWith","setAttribute","removeAttribute","isWebComponent","replace","trim","currentClass","watch0Fn","summary","addEventListener","code","watch0","watch1Fn","messageId","DEFAULT_MESSAGE_ID_SUFFIX","DEFAULT_LABEL_ID_SUFFIX","DEFAULT_SELECT_ID_SUFFIX","DEFAULT_VALID_MESSAGE_ID_SUFFIX","DEFAULT_INVALID_MESSAGE_ID_SUFFIX","DEFAULT_PLACEHOLDER_ID_SUFFIX","watch1","watch2Fn","watch2","watch3Fn","showNoResults","watch3","watch4Fn","Boolean","showSelectAll","watch4","watch5Fn","showSearch","watch5","watch6Fn","isArray","watch6","watch7Fn","watch7","watch8Fn","watch8","watch9Fn","watch9","watch10Fn","watch10","watch11Fn","watch11","watch12Fn","selectedType","amountText","DEFAULT_SELECTED","watch12","watch13Fn","amountChange","watch13","watch14Fn","selectAllRef","indeterminate","watch14","watch15Fn","watch15","componentDidLoad","_ref","mId","render","h","class","cls","className","ref","el","formFieldWidth","variant","getBooleanAsString","placement","getHideProp","showLabel","icon","showIcon","role","hidden","tabIndex","form","getBoolean","disabled","onChange","onToggle","onKeyDown","Fragment","emphasis","behavior","removeButton","onRemove","width","dropdownWidth","type","searchLabel","placeholder","searchPlaceholder","ariaDescribedBy","showLoading","onInput","semantic","noResultsText","loadingText","DEFAULT_MESSAGE","checked","_k","_j","ariaListLabel","_l","showDivider","groupTitle","size","onClick","_m","mobileCloseButtonText","DEFAULT_CLOSE_BUTTON","_o","_p","noText","_q","messageIcon"],"sources":["src/components/custom-select/custom-select.tsx"],"sourcesContent":["import {\n DBCustomSelectProps,\n DBCustomSelectState,\n CustomSelectOptionType,\n} from \"./model\";\nimport {\n cls,\n delay,\n getBoolean,\n getBooleanAsString,\n getHideProp,\n getSearchInput,\n handleDataOutside,\n hasVoiceOver,\n stringPropVisible,\n uuid,\n} from \"../../utils\";\nimport {\n DEFAULT_CLOSE_BUTTON,\n DEFAULT_INVALID_MESSAGE,\n DEFAULT_INVALID_MESSAGE_ID_SUFFIX,\n DEFAULT_LABEL,\n DEFAULT_LABEL_ID_SUFFIX,\n DEFAULT_MESSAGE,\n DEFAULT_MESSAGE_ID_SUFFIX,\n DEFAULT_PLACEHOLDER_ID_SUFFIX,\n DEFAULT_REMOVE,\n DEFAULT_SELECT_ID_SUFFIX,\n DEFAULT_SELECTED,\n DEFAULT_VALID_MESSAGE,\n DEFAULT_VALID_MESSAGE_ID_SUFFIX,\n} from \"../../shared/constants\";\nimport { ChangeEvent, ClickEvent } from \"../../shared/model\";\nimport { DBCustomSelectList } from \"../custom-select-list/custom-select-list\";\nimport { DBCustomSelectListItem } from \"../custom-select-list-item/custom-select-list-item\";\nimport { DBCustomSelectDropdown } from \"../custom-select-dropdown/custom-select-dropdown\";\nimport { DBInfotext } from \"../infotext/infotext\";\nimport { DBTag } from \"../tag/tag\";\nimport { DBButton } from \"../button/button\";\nimport { DBTooltip } from \"../tooltip/tooltip\";\nimport {\n handleFrameworkEventAngular,\n handleFrameworkEventVue,\n} from \"../../utils/form-components\";\nimport { DBInput } from \"../input/input\";\nimport { DocumentClickListener } from \"../../utils/document-click-listener\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n\n */\n @Component({\n tag: \"db-custom-select\",\n})\nexport class DBCustomSelect {\n private _ref!: HTMLDivElement | any;\n private detailsRef!: HTMLDetailsElement | any;\n private selectRef!: HTMLSelectElement | any;\n private selectAllRef!: HTMLInputElement | any;\n private searchInputRef!: HTMLInputElement | any;\n @Prop() id: DBCustomSelectProps[\"id\"];\n @Prop() invalidMessage: DBCustomSelectProps[\"invalidMessage\"];\n @Prop() message: DBCustomSelectProps[\"message\"];\n @Prop() showMessage: DBCustomSelectProps[\"showMessage\"];\n @Prop() showNoResults: DBCustomSelectProps[\"showNoResults\"];\n @Prop() multiple: DBCustomSelectProps[\"multiple\"];\n @Prop() showSelectAll: DBCustomSelectProps[\"showSelectAll\"];\n @Prop() showSearch: DBCustomSelectProps[\"showSearch\"];\n @Prop() values: DBCustomSelectProps[\"values\"];\n @Prop() validation: DBCustomSelectProps[\"validation\"];\n @Prop() options: DBCustomSelectProps[\"options\"];\n @Prop() selectedType: DBCustomSelectProps[\"selectedType\"];\n @Prop() amountText: DBCustomSelectProps[\"amountText\"];\n @Event() amountChange: EventEmitter<\n Parameters<Required<DBCustomSelectProps>[\"onAmountChange\"]>[number]\n > | void;\n @Prop() validMessage: DBCustomSelectProps[\"validMessage\"];\n @Prop() required: DBCustomSelectProps[\"required\"];\n @Event() dropdownToggle: EventEmitter<\n Parameters<Required<DBCustomSelectProps>[\"onDropdownToggle\"]>[number]\n > | void;\n @Prop() selectAllLabel: DBCustomSelectProps[\"selectAllLabel\"];\n @Prop() removeTagsTexts: DBCustomSelectProps[\"removeTagsTexts\"];\n @Event() optionSelected: EventEmitter<\n Parameters<Required<DBCustomSelectProps>[\"onOptionSelected\"]>[number]\n > | void;\n @Prop({attribute: \"classname\"}) className: DBCustomSelectProps[\"className\"];\n @Prop() formFieldWidth: DBCustomSelectProps[\"formFieldWidth\"];\n @Prop() variant: DBCustomSelectProps[\"variant\"];\n @Prop() placement: DBCustomSelectProps[\"placement\"];\n @Prop() showLabel: DBCustomSelectProps[\"showLabel\"];\n @Prop() icon: DBCustomSelectProps[\"icon\"];\n @Prop() showIcon: DBCustomSelectProps[\"showIcon\"];\n @Prop() label: DBCustomSelectProps[\"label\"];\n @Prop() form: DBCustomSelectProps[\"form\"];\n @Prop() name: DBCustomSelectProps[\"name\"];\n @Prop() disabled: DBCustomSelectProps[\"disabled\"];\n @Prop() open: DBCustomSelectProps[\"open\"];\n @Prop() dropdownWidth: DBCustomSelectProps[\"dropdownWidth\"];\n @Prop() searchLabel: DBCustomSelectProps[\"searchLabel\"];\n @Prop() searchPlaceholder: DBCustomSelectProps[\"searchPlaceholder\"];\n @Prop() showLoading: DBCustomSelectProps[\"showLoading\"];\n @Prop() ariaListLabel: DBCustomSelectProps[\"ariaListLabel\"];\n @Prop() noResultsText: DBCustomSelectProps[\"noResultsText\"];\n @Prop() loadingText: DBCustomSelectProps[\"loadingText\"];\n @Prop() mobileCloseButtonText: DBCustomSelectProps[\"mobileCloseButtonText\"];\n @Prop() showClearSelection: DBCustomSelectProps[\"showClearSelection\"] = true;\n @Prop() clearSelectionText: DBCustomSelectProps[\"clearSelectionText\"] =\n \"Clear selection\";\n @Prop() placeholder: DBCustomSelectProps[\"placeholder\"];\n @Prop() messageIcon: DBCustomSelectProps[\"messageIcon\"];\n @State() _id = undefined;\n @State() _messageId = undefined;\n @State() _validMessageId = undefined;\n @State() _invalidMessageId = undefined;\n @State() _invalidMessage = undefined;\n @State() _selectId = undefined;\n @State() _labelId = undefined;\n @State() _summaryId = undefined;\n @State() _placeholderId = undefined;\n @State() _infoTextId = undefined;\n @State() _validity = \"no-validation\";\n @State() _descByIds = \"\";\n @State() _selectedLabels = \"\";\n @State() _selectedLabelsId = undefined;\n @State() _voiceOverFallback = \"\";\n @State() _selectedOptions = [];\n @State() selectAllEnabled = false;\n @State() searchEnabled = false;\n @State() amountOptions = 0;\n @State() _values = [];\n @State() _options = [];\n @State() _hasNoOptions = false;\n @State() _documentClickListenerCallbackId = undefined;\n @State() _internalChangeTimestamp = 0;\n @State() selectAllChecked = false;\n @State() selectAllIndeterminate = false;\n\n hasValidState() {\n return !!(this.validMessage ?? this.validation === \"valid\");\n }\n handleValidation() {\n if (this.selectRef) {\n this.selectRef.value = this.getNativeSelectValue();\n }\n /* For a11y reasons we need to map the correct message with the select */\n if (!this.selectRef?.validity.valid || this.validation === \"invalid\") {\n this._descByIds = this._invalidMessageId;\n this._invalidMessage =\n this.invalidMessage ||\n this.selectRef?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this._invalidMessage;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n this._validity = this.validation ?? \"invalid\";\n } else if (\n this.hasValidState() &&\n this.selectRef?.validity.valid &&\n this.required\n ) {\n this._descByIds = this._validMessageId;\n if (hasVoiceOver()) {\n this._voiceOverFallback = this.validMessage ?? DEFAULT_VALID_MESSAGE;\n delay(() => (this._voiceOverFallback = \"\"), 1000);\n }\n this._validity = this.validation ?? \"valid\";\n } else if (stringPropVisible(this.message, this.showMessage)) {\n this._descByIds = this._messageId;\n this._validity = this.validation ?? \"no-validation\";\n } else {\n this._descByIds = this._placeholderId;\n this._validity = this.validation ?? \"no-validation\";\n }\n }\n handleDropdownToggle(event: any) {\n if (this.dropdownToggle) {\n this.dropdownToggle.emit(event);\n }\n if (event.target.open) {\n this._documentClickListenerCallbackId =\n new DocumentClickListener().addCallback((event) =>\n this.handleDocumentClose(event)\n );\n } else {\n if (this._documentClickListenerCallbackId) {\n new DocumentClickListener().removeCallback(\n this._documentClickListenerCallbackId!\n );\n }\n }\n }\n getNativeSelectValue() {\n if (this._values?.length) {\n return this._values!.at(0) ?? \"\";\n }\n return \"\";\n }\n setDescById(descId?: string) {\n const descByIds: string[] = [];\n if (descId) {\n descByIds.push(descId);\n }\n if (this._selectedLabelsId && this._selectedLabels?.length) {\n descByIds.push(this._selectedLabelsId!);\n }\n this._descByIds = descByIds.join(\" \");\n }\n getSelectAllLabel() {\n return this.selectAllLabel ?? DEFAULT_LABEL;\n }\n getOptionLabel(option: CustomSelectOptionType) {\n return option.label ?? option.value?.toString() ?? \"\";\n }\n getOptionChecked(value?: string) {\n if (value && this._values?.includes) {\n return this._values?.includes(value!);\n }\n return false;\n }\n getOptionKey(option: CustomSelectOptionType) {\n return (option.id ?? option.value ?? uuid()).toString();\n }\n getTagRemoveLabel(index: number) {\n return this.removeTagsTexts && this.removeTagsTexts!.length > index\n ? this.removeTagsTexts!.at(index)!\n : `${DEFAULT_REMOVE} ${\n this._selectedOptions\n ? this.getOptionLabel(this._selectedOptions![index])\n : \"\"\n }`;\n }\n handleTagRemove(option: CustomSelectOptionType, event: any) {\n event.stopPropagation();\n this.handleSelect(option.value);\n this.handleSummaryFocus();\n }\n handleAutoPlacement() {\n if (this.detailsRef) {\n const dropdown = this.detailsRef.querySelector(\"article\");\n if (dropdown) {\n delay(() => {\n handleDataOutside(dropdown);\n }, 100);\n }\n }\n }\n handleArrowDownUp(event: any) {\n if (this.detailsRef?.open) {\n if (document) {\n const activeElement = document.activeElement;\n if (activeElement) {\n // 1. we check if we are currently focusing a checkbox in the dropdown\n const isCheckbox =\n activeElement.getAttribute(\"type\") === \"checkbox\" ||\n activeElement.getAttribute(\"type\") === \"radio\";\n if (isCheckbox) {\n const listElement = activeElement?.closest(\"li\");\n if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n if (listElement?.nextElementSibling) {\n listElement?.nextElementSibling\n ?.querySelector(\"input\")\n ?.focus();\n } else {\n // We are on the last checkbox we move to the top checkbox\n this.handleFocusFirstDropdownCheckbox(activeElement);\n }\n } else {\n if (listElement?.previousElementSibling) {\n listElement?.previousElementSibling\n ?.querySelector(\"input\")\n ?.focus();\n } else if (\n this.detailsRef.querySelector(`input[type=\"checkbox\"]`) !==\n activeElement\n ) {\n // We are on the top list checkbox but there is a select all checkbox as well\n this.handleFocusFirstDropdownCheckbox(activeElement);\n } else {\n // We are on the top checkbox, we need to move to the search\n // or to the last checkbox\n const search = getSearchInput(this.detailsRef);\n if (search) {\n delay(() => {\n search.focus();\n }, 100);\n } else {\n const checkboxList: HTMLInputElement[] = Array.from(\n this.detailsRef?.querySelectorAll(\n `input[type=\"checkbox\"],input[type=\"radio\"]`\n )\n );\n if (checkboxList.length) {\n checkboxList.at(-1)?.focus();\n }\n }\n }\n }\n } else {\n // 2. If we are on the search, and press up we go back to summary and close\n if (\n activeElement.getAttribute(\"type\") === \"search\" &&\n (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\")\n ) {\n this.handleClose(\"close\");\n this.handleSummaryFocus();\n } else {\n // 3. Otherwise, we need to move to the first checkbox\n this.handleFocusFirstDropdownCheckbox(activeElement);\n }\n }\n }\n }\n event.stopPropagation();\n event.preventDefault();\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n // Open dropdown with arrows see https://www.w3.org/WAI/ARIA/apg/patterns/combobox/#keyboardinteraction\n this.handleAutoPlacement();\n if (this.detailsRef) {\n this.detailsRef.open = true;\n }\n this.handleOpenByKeyboardFocus();\n event.stopPropagation();\n event.preventDefault();\n }\n }\n handleKeyboardPress(event: any) {\n if (event.key === \"Escape\" && this.detailsRef && this.detailsRef?.open) {\n this.handleClose(\"close\");\n this.handleSummaryFocus();\n } else if (\n event.key === \"ArrowDown\" ||\n event.key === \"ArrowUp\" ||\n event.key === \"ArrowLeft\" ||\n event.key === \"ArrowRight\"\n ) {\n this.handleArrowDownUp(event);\n }\n }\n handleClose(event: any) {\n if (this.detailsRef) {\n if (event === \"close\") {\n this.detailsRef.open = false;\n this.handleSummaryFocus();\n } else if (this.detailsRef.open && event?.relatedTarget) {\n const relatedTarget = event.relatedTarget as HTMLElement;\n if (!this.detailsRef.contains(relatedTarget)) {\n this.detailsRef.open = false;\n }\n }\n }\n }\n handleDocumentClose(event: any) {\n // stencil is sending a custom event which wraps the pointer event into details\n const target =\n typeof event.detail === \"number\" ? event.target : event.detail.target;\n if (this.detailsRef?.open && !this.detailsRef.contains(target)) {\n this.detailsRef.open = false;\n }\n }\n handleOptionSelected(values: string[]) {\n const skip = new Date().getTime() - this._internalChangeTimestamp < 200;\n if (skip) return;\n if (this.optionSelected) {\n this._values = values;\n this.optionSelected.emit(values ?? []);\n }\n this._internalChangeTimestamp = new Date().getTime();\n }\n handleSelect(value?: string) {\n if (value) {\n if (this.multiple) {\n if (this._values?.includes(value)) {\n this.handleOptionSelected(\n this._values!.filter((v: string) => v !== value)\n );\n } else {\n this.handleOptionSelected([...(this._values || []), value]);\n }\n } else {\n this.handleOptionSelected([value]);\n this.handleClose(\"close\");\n }\n }\n }\n handleSelectAll() {\n if (this._values?.length === this.amountOptions) {\n this.handleOptionSelected([]);\n } else {\n const searchValue: string | undefined =\n this.searchEnabled && this.searchInputRef\n ? this.searchInputRef.value\n : undefined;\n this.handleOptionSelected(\n this.options\n ? this.options!.filter(\n (option) =>\n !option.isGroupTitle &&\n (!searchValue ||\n option.value\n ?.toLowerCase()\n .includes(searchValue.toLowerCase()))\n ).map((option) => option.value ?? \"\")\n : []\n );\n }\n }\n handleFocusFirstDropdownCheckbox(activeElement?: Element) {\n if (this.detailsRef) {\n const checkboxes = Array.from(\n this.detailsRef.querySelectorAll(\n `input[type=\"checkbox\"],input[type=\"radio\"]`\n )\n );\n if (checkboxes.length) {\n const first = checkboxes.at(0);\n const checkbox =\n first === activeElement && checkboxes.length > 1\n ? checkboxes.at(1)\n : first;\n if (checkbox) {\n delay(() => {\n // Takes some time until element can be focused\n (checkbox as HTMLInputElement).focus();\n }, 100);\n }\n }\n }\n }\n handleOpenByKeyboardFocus(onlySearch?: boolean) {\n if (this.detailsRef) {\n // Focus search if possible\n const search = getSearchInput(this.detailsRef);\n if (search) {\n delay(() => {\n // Takes some time until element can be focused\n search.focus();\n }, 100);\n } else if (!onlySearch) {\n // Focus first checkbox otherwise\n this.handleFocusFirstDropdownCheckbox();\n }\n }\n }\n handleSearch(event: any) {\n event.stopPropagation();\n const filterText = (event.target as HTMLInputElement).value;\n this._options =\n !this.options || !filterText || filterText.length === 0\n ? this.options\n : this.options!.filter(\n (option) =>\n !option.isGroupTitle &&\n this.getOptionLabel(option)\n .toLowerCase()\n .includes(filterText.toLowerCase())\n );\n }\n handleClearAll() {\n this.handleOptionSelected([]);\n this.handleSummaryFocus();\n }\n handleSummaryFocus() {\n this.detailsRef?.querySelector(\"summary\")?.focus();\n }\n satisfyReact = function satisfyReact() {\n // This is an empty function to satisfy React\n };\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n if (this.detailsRef) {\n const summary = this.detailsRef.querySelector(\"summary\");\n if (summary) {\n summary.addEventListener(\"click\", () => {\n this.handleAutoPlacement();\n this.handleOpenByKeyboardFocus(true);\n });\n summary.addEventListener(\"keydown\", (event: KeyboardEvent) => {\n if (event.code === \"Space\" && !this.detailsRef?.open) {\n this.handleOpenByKeyboardFocus();\n }\n });\n }\n this.detailsRef.addEventListener(\"focusout\", (event: any) =>\n this.handleClose(event)\n );\n }\n }\n\n @Watch(\"detailsRef\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this._id) {\n const messageId = this._id + DEFAULT_MESSAGE_ID_SUFFIX;\n this._labelId = this._id + DEFAULT_LABEL_ID_SUFFIX;\n this._selectId = this._id + DEFAULT_SELECT_ID_SUFFIX;\n this._validMessageId = this._id + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = this._id + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._placeholderId = this._id + DEFAULT_PLACEHOLDER_ID_SUFFIX;\n if (stringPropVisible(this.message, this.showMessage)) {\n this.setDescById(messageId);\n } else {\n this.setDescById();\n }\n }\n }\n\n @Watch(\"_id\")\n watch1() {\n this.watch1Fn();\n }\n\n watch2Fn() {\n if (this.detailsRef) {\n const summary = this.detailsRef.querySelector(\"summary\");\n if (summary) {\n summary.setAttribute(\"aria-describedby\", this._descByIds || \"\");\n }\n }\n }\n\n @Watch(\"detailsRef\")\n @Watch(\"_descByIds\")\n watch2() {\n this.watch2Fn();\n }\n\n watch3Fn() {\n if (this.showNoResults !== undefined) {\n this._hasNoOptions = this.showNoResults!;\n } else if (this._options) {\n this._hasNoOptions = this._options!.length === 0;\n }\n }\n\n @Watch(\"showNoResults\")\n @Watch(\"_options\")\n watch3() {\n this.watch3Fn();\n }\n\n watch4Fn() {\n this.selectAllEnabled = Boolean(\n this.multiple && (this.showSelectAll || this.amountOptions > 5)\n );\n }\n\n @Watch(\"showSelectAll\")\n @Watch(\"amountOptions\")\n @Watch(\"multiple\")\n watch4() {\n this.watch4Fn();\n }\n\n watch5Fn() {\n this.searchEnabled = this.showSearch || this.amountOptions > 9;\n }\n\n @Watch(\"showSearch\")\n @Watch(\"amountOptions\")\n watch5() {\n this.watch5Fn();\n }\n\n watch6Fn() {\n if (\n this.values &&\n Array.isArray(this.values) &&\n this.values !== this._values\n ) {\n this._values = this.values ?? [];\n }\n }\n\n @Watch(\"values\")\n watch6() {\n this.watch6Fn();\n }\n\n watch7Fn() {\n this.handleValidation();\n }\n\n @Watch(\"_values\")\n watch7() {\n this.watch7Fn();\n }\n\n watch8Fn() {\n this._validity = this.validation;\n }\n\n @Watch(\"validation\")\n watch8() {\n this.watch8Fn();\n }\n\n watch9Fn() {\n if (this._values?.length === 0) {\n this.selectAllChecked = false;\n this.selectAllIndeterminate = false;\n } else if (this._values?.length === this.amountOptions) {\n this.selectAllIndeterminate = false;\n this.selectAllChecked = true;\n } else if (this._values) {\n this.selectAllIndeterminate = true;\n }\n }\n\n @Watch(\"_values\")\n @Watch(\"amountOptions\")\n watch9() {\n this.watch9Fn();\n }\n\n watch10Fn() {\n this._options = this.options;\n this.amountOptions =\n this.options?.filter((option) => !option.isGroupTitle).length ?? 0;\n }\n\n @Watch(\"options\")\n watch10() {\n this.watch10Fn();\n }\n\n watch11Fn() {\n if (this._options?.length) {\n this._selectedOptions = this._options?.filter(\n (option: CustomSelectOptionType) => {\n if (!option.value || !this._values?.[\"includes\"]) {\n return false;\n }\n return !option.isGroupTitle && this._values?.includes(option.value);\n }\n );\n }\n }\n\n @Watch(\"_options\")\n @Watch(\"_values\")\n watch11() {\n this.watch11Fn();\n }\n\n watch12Fn() {\n if (this._selectedOptions?.length) {\n if (this.selectedType === \"amount\") {\n this._selectedLabels = this.amountText\n ? this.amountText\n : `${this._selectedOptions?.length} ${DEFAULT_SELECTED}`;\n } else {\n this._selectedLabels = this._selectedOptions\n ?.map((option: CustomSelectOptionType) => this.getOptionLabel(option))\n .join(\", \");\n }\n } else {\n this._selectedLabels = \"\";\n }\n }\n\n @Watch(\"_selectedOptions\")\n @Watch(\"selectedType\")\n @Watch(\"amountText\")\n watch12() {\n this.watch12Fn();\n }\n\n watch13Fn() {\n if (this.amountChange) {\n this.amountChange.emit(this._selectedOptions?.length ?? 0);\n }\n }\n\n @Watch(\"_selectedOptions\")\n watch13() {\n this.watch13Fn();\n }\n\n watch14Fn() {\n if (this.selectAllRef) {\n this.selectAllRef.indeterminate = Boolean(this.selectAllIndeterminate);\n }\n }\n\n @Watch(\"selectAllIndeterminate\")\n @Watch(\"selectAllRef\")\n watch14() {\n this.watch14Fn();\n }\n\n watch15Fn() {\n this._invalidMessage =\n this.invalidMessage ||\n this.selectRef?.validationMessage ||\n DEFAULT_INVALID_MESSAGE;\n }\n\n @Watch(\"selectRef\")\n @Watch(\"invalidMessage\")\n watch15() {\n this.watch15Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-custom-select\");\n const mId = this.id ?? `custom-select-${uuid()}`;\n this._id = mId;\n this._messageId = mId + DEFAULT_MESSAGE_ID_SUFFIX;\n this._validMessageId = mId + DEFAULT_VALID_MESSAGE_ID_SUFFIX;\n this._invalidMessageId = mId + DEFAULT_INVALID_MESSAGE_ID_SUFFIX;\n this._selectId = mId + DEFAULT_SELECT_ID_SUFFIX;\n this._labelId = mId + DEFAULT_LABEL_ID_SUFFIX;\n this._summaryId = mId + \"-summary\";\n this._placeholderId = mId + DEFAULT_PLACEHOLDER_ID_SUFFIX;\n this._selectedLabelsId = mId + \"-selected-labels\";\n this._infoTextId = mId + \"-info\";\n this._invalidMessage = this.invalidMessage || DEFAULT_INVALID_MESSAGE;\n this.watch0Fn();\n this.watch1Fn();\n this.watch2Fn();\n this.watch3Fn();\n this.watch4Fn();\n this.watch5Fn();\n this.watch6Fn();\n this.watch7Fn();\n this.watch8Fn();\n this.watch9Fn();\n this.watch10Fn();\n this.watch11Fn();\n this.watch12Fn();\n this.watch13Fn();\n this.watch14Fn();\n this.watch15Fn();\n }\n\n render() {\n return (\n <div\n class={cls(\"db-custom-select\", this.className)}\n id={this._id}\n ref={(el: any) => {\n this._ref = el;\n }}\n aria-invalid={this._validity === \"invalid\"}\n data-custom-validity={this._validity}\n data-width={this.formFieldWidth}\n data-variant={\n this.variant === \"floating\" &&\n this.selectedType === \"tag\" &&\n this.multiple\n ? \"above\"\n : this.variant\n }\n data-required={getBooleanAsString(this.required)}\n data-placement={this.placement}\n data-selected-type={this.multiple ? this.selectedType : \"text\"}\n data-hide-label={getHideProp(this.showLabel)}\n data-icon={this.icon}\n data-hide-icon={getHideProp(this.showIcon)}\n >\n <label id={this._labelId}>\n {this.label ?? DEFAULT_LABEL}\n <select\n role=\"none\"\n hidden={true}\n id={this._selectId}\n tabIndex={-1}\n ref={(el: any) => {\n this.selectRef = el;\n }}\n form={this.form}\n name={this.name}\n multiple={getBoolean(this.multiple, \"multiple\")}\n disabled={getBoolean(this.disabled, \"disabled\")}\n required={getBoolean(this.required, \"required\")}\n onChange={() => this.satisfyReact()}\n >\n {this._options?.length\n ? this._options?.map((option) => (\n <option\n disabled={option.disabled}\n value={option.value}\n key={undefined}\n >\n {this.getOptionLabel(option)}\n </option>\n ))\n : null}\n </select>\n </label>\n <details\n ref={(el: any) => {\n this.detailsRef = el;\n }}\n open={this.open}\n onToggle={(event) => this.handleDropdownToggle(event)}\n onKeyDown={(event) => this.handleKeyboardPress(event)}\n >\n <slot></slot>\n {this.options ? (\n <Fragment>\n <summary\n class=\"db-custom-select-form-field\"\n id={this._summaryId}\n aria-disabled={getBooleanAsString(this.disabled)}\n aria-labelledby={this._labelId}\n >\n {this._selectedLabels?.length ? (\n <span\n data-visually-hidden={getBooleanAsString(\n this.selectedType === \"tag\"\n )}\n id={this._selectedLabelsId}\n >\n {this._selectedLabels}\n </span>\n ) : null}\n {this.selectedType === \"tag\" ? (\n <div>\n {this._selectedOptions?.map((option, index) => (\n <db-tag\n emphasis=\"strong\"\n behavior=\"removable\"\n removeButton={this.getTagRemoveLabel(index)}\n onRemove={(event) =>\n this.handleTagRemove(option, event)\n }\n key={undefined}\n >\n {this.getOptionLabel(option)}\n </db-tag>\n ))}\n </div>\n ) : null}\n </summary>\n <db-custom-select-dropdown width={this.dropdownWidth}>\n {this.searchEnabled ? (\n <div>\n <db-input\n type=\"search\"\n ref={(el: any) => {\n this.searchInputRef = el;\n }}\n name={this._id}\n form={this._id}\n showLabel={false}\n label={this.searchLabel ?? DEFAULT_LABEL}\n placeholder={this.searchPlaceholder ?? this.searchLabel}\n ariaDescribedBy={\n this._hasNoOptions || this.showLoading\n ? this._infoTextId\n : undefined\n }\n onInput={(event) => this.handleSearch(event)}\n ></db-input>\n </div>\n ) : null}\n {this._hasNoOptions || this.showLoading ? (\n <db-infotext\n id={this._infoTextId}\n icon={this._hasNoOptions ? undefined : \"circular_arrows\"}\n semantic={this._hasNoOptions ? \"warning\" : \"informational\"}\n >\n {(this._hasNoOptions\n ? this.noResultsText\n : this.loadingText) ?? DEFAULT_MESSAGE}\n </db-infotext>\n ) : (\n <Fragment>\n {this.selectAllEnabled ? (\n <div>\n <div class=\"db-checkbox db-custom-select-list-item\">\n <label>\n <input\n type=\"checkbox\"\n value=\"select-all\"\n ref={(el: any) => {\n this.selectAllRef = el;\n }}\n form={this._id}\n checked={this.selectAllChecked}\n onChange={() => this.handleSelectAll()}\n />\n {this.getSelectAllLabel()}\n </label>\n </div>\n </div>\n ) : null}\n <db-custom-select-list\n multiple={getBoolean(this.multiple, \"multiple\")}\n label={this.ariaListLabel ?? this.label ?? DEFAULT_LABEL}\n >\n {this._options?.map((option) => (\n <db-custom-select-list-item\n type={this.multiple ? \"checkbox\" : \"radio\"}\n showDivider={option.showDivider}\n icon={option.icon}\n isGroupTitle={option.isGroupTitle}\n groupTitle={this.getOptionLabel(option)}\n name={this._id}\n checked={this.getOptionChecked(option.value)}\n disabled={option.disabled}\n value={option.value}\n onChange={() => this.handleSelect(option.value)}\n key={undefined}\n >\n {!option.isGroupTitle\n ? this.getOptionLabel(option)\n : null}\n </db-custom-select-list-item>\n ))}\n </db-custom-select-list>\n </Fragment>\n )}\n <div>\n <db-button\n variant=\"ghost\"\n width=\"full\"\n icon=\"cross\"\n size=\"small\"\n name={this._id}\n form={this._id}\n onClick={() => this.handleClose(\"close\")}\n >\n {this.mobileCloseButtonText ?? DEFAULT_CLOSE_BUTTON}\n </db-button>\n </div>\n </db-custom-select-dropdown>\n </Fragment>\n ) : null}\n </details>\n {(this.showClearSelection ?? true) && this._values?.length ? (\n <db-button\n icon=\"cross\"\n variant=\"ghost\"\n size=\"small\"\n noText={true}\n name={this._id}\n form={this._id}\n onClick={() => this.handleClearAll()}\n >\n {this.clearSelectionText}\n <db-tooltip placement=\"top\">{this.clearSelectionText}</db-tooltip>\n </db-button>\n ) : null}\n <span aria-hidden={getBooleanAsString(true)} id={this._placeholderId}>\n {this.placeholder ?? this.label}\n </span>\n {stringPropVisible(this.message, this.showMessage) ? (\n <db-infotext\n size=\"small\"\n icon={this.messageIcon}\n id={this._messageId}\n >\n {this.message}\n </db-infotext>\n ) : null}\n {this.hasValidState() ? (\n <db-infotext\n size=\"small\"\n semantic=\"successful\"\n id={this._validMessageId}\n >\n {this.validMessage || DEFAULT_VALID_MESSAGE}\n </db-infotext>\n ) : null}\n <db-infotext\n size=\"small\"\n semantic=\"critical\"\n id={this._invalidMessageId}\n >\n {this._invalidMessage}\n </db-infotext>\n <span data-visually-hidden=\"true\" role=\"status\">\n {this._voiceOverFallback}\n </span>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["DBNavigationItem","constructor","hostRef","this","initialized","hasAreaPopup","hasSubNavigation","isSubNavigationExpanded","autoClose","subNavigationId","uuid","navigationItemSafeTriangle","undefined","handleNavigationItemClick","event","isEventTargetNavigationItem","delay","handleClick","stopPropagation","click","emit","handleBackClick","enableAttributePassing","element","customElementSelector","parent","closest","attributes","i","length","attr","item","name","startsWith","setAttribute","value","removeAttribute","isWebComponent","includes","replace","trim","currentClass","getAttribute","watch0Fn","subNavigationExpanded","getBoolean","watch0","watch1Fn","_ref","subNavigationSlot","querySelector","_a","children","NavigationItemSafeTriangle","watch1","componentDidLoad","render","h","key","class","cls","className","ref","el","id","onMouseOver","enableFollow","onMouseLeave","disableFollow","onMouseMove","followByMouseEvent","width","icon","getHideProp","showIcon","active","getBooleanAsString","wrap","disabled","text","Fragment","onClick","variant","backButtonId","backButtonText","DEFAULT_BACK"],"sources":["src/components/navigation-item/navigation-item.tsx"],"sourcesContent":["import { DBNavigationItemProps, DBNavigationItemState } from \"./model\";\nimport { DBButton } from \"../button/button\";\nimport {\n cls,\n delay,\n getBoolean,\n getBooleanAsString,\n getHideProp,\n uuid,\n} from \"../../utils\";\nimport {\n isEventTargetNavigationItem,\n NavigationItemSafeTriangle,\n} from \"../../utils/navigation\";\nimport { DEFAULT_BACK } from \"../../shared/constants\";\nimport { ClickEvent } from \"../../shared/model\";\n\nimport {\n Component,\n h,\n Fragment,\n Watch,\n Event,\n EventEmitter,\n Prop,\n State,\n} from \"@stencil/core\";\n\n\n/**\n * @slot children - This is a default/unnamed slot\n * @slot subNavigation - TODO: Add description for slotSubNavigation\n */\n @Component({\n tag: \"db-navigation-item\",\n})\nexport class DBNavigationItem {\n private _ref!: HTMLLIElement | any;\n @Prop() subNavigationExpanded: DBNavigationItemProps[\"subNavigationExpanded\"];\n @Event() click: EventEmitter<\n Parameters<Required<DBNavigationItemProps>[\"onClick\"]>[number]\n > | void;\n @Prop() id: DBNavigationItemProps[\"id\"];\n @Prop({attribute: \"classname\"}) className: DBNavigationItemProps[\"className\"];\n @Prop() width: DBNavigationItemProps[\"width\"];\n @Prop() icon: DBNavigationItemProps[\"icon\"];\n @Prop() showIcon: DBNavigationItemProps[\"showIcon\"];\n @Prop() active: DBNavigationItemProps[\"active\"];\n @Prop() wrap: DBNavigationItemProps[\"wrap\"];\n @Prop() disabled: DBNavigationItemProps[\"disabled\"];\n @Prop() text: DBNavigationItemProps[\"text\"];\n @Prop() backButtonId: DBNavigationItemProps[\"backButtonId\"];\n @Prop() backButtonText: DBNavigationItemProps[\"backButtonText\"];\n @State() initialized = false;\n @State() hasAreaPopup = false;\n @State() hasSubNavigation = true;\n @State() isSubNavigationExpanded = false;\n @State() autoClose = false;\n @State() subNavigationId = \"sub-navigation-\" + uuid();\n @State() navigationItemSafeTriangle = undefined;\n\n handleNavigationItemClick(event: unknown) {\n if (isEventTargetNavigationItem(event)) {\n this.autoClose = true;\n delay(() => {\n this.autoClose = false;\n }, 300);\n }\n }\n handleClick(event: ClickEvent<HTMLButtonElement> | any) {\n event.stopPropagation();\n if (this.click) {\n this.click.emit(event);\n }\n if (this.hasAreaPopup) {\n this.isSubNavigationExpanded = true;\n }\n }\n handleBackClick(event: ClickEvent<HTMLButtonElement> | any) {\n event.stopPropagation();\n this.isSubNavigationExpanded = false;\n }\n\n /**\n * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.\n * @param element the ref for the component\n * @param customElementSelector the custom element like `my-component`\n */\n private enableAttributePassing(\n element: HTMLElement | null,\n customElementSelector: string\n ) {\n const parent = element?.closest(customElementSelector);\n if (element && parent) {\n const attributes = parent.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i);\n if (\n attr &&\n (attr.name.startsWith(\"data-\") || attr.name.startsWith(\"aria-\"))\n ) {\n element.setAttribute(attr.name, attr.value);\n parent.removeAttribute(attr.name);\n }\n if (attr && attr.name === \"class\") {\n const isWebComponent = attr.value.includes(\"hydrated\");\n const value = attr.value.replace(\"hydrated\", \"\").trim();\n const currentClass = element.getAttribute(\"class\");\n element.setAttribute(\n attr.name,\n `${currentClass ? `${currentClass} ` : \"\"}${value}`\n );\n if (isWebComponent) {\n // Stencil is using this class for lazy loading component\n parent.setAttribute(\"class\", \"hydrated\");\n } else {\n parent.removeAttribute(attr.name);\n }\n }\n }\n }\n }\n\n watch0Fn() {\n if (this.subNavigationExpanded !== undefined) {\n this.isSubNavigationExpanded = !!getBoolean(\n this.subNavigationExpanded,\n \"subNavigationExpanded\"\n );\n }\n }\n\n @Watch(\"subNavigationExpanded\")\n watch0() {\n this.watch0Fn();\n }\n\n watch1Fn() {\n if (this.initialized && this._ref) {\n const subNavigationSlot = this._ref.querySelector(\"menu\");\n if (subNavigationSlot) {\n if (subNavigationSlot.children?.length > 0) {\n this.hasAreaPopup = true;\n if (!this.navigationItemSafeTriangle) {\n this.navigationItemSafeTriangle = new NavigationItemSafeTriangle(\n this._ref,\n subNavigationSlot\n );\n }\n } else {\n this.hasSubNavigation = false;\n }\n }\n }\n }\n\n @Watch(\"initialized\")\n @Watch(\"_ref\")\n watch1() {\n this.watch1Fn();\n }\n\n componentDidLoad() {\n this.enableAttributePassing(this._ref, \"db-navigation-item\");\n this.initialized = true;\n this.watch0Fn();\n this.watch1Fn();\n }\n\n render() {\n return (\n <li\n class={cls(\"db-navigation-item\", this.className)}\n ref={(el: any) => {\n this._ref = el;\n }}\n id={this.id}\n onMouseOver={() => this.navigationItemSafeTriangle?.enableFollow()}\n onMouseLeave={() => this.navigationItemSafeTriangle?.disableFollow()}\n onMouseMove={(event) =>\n this.navigationItemSafeTriangle?.followByMouseEvent(event)\n }\n data-width={this.width}\n data-icon={this.icon}\n data-hide-icon={getHideProp(this.showIcon)}\n data-active={this.active}\n data-wrap={getBooleanAsString(this.wrap)}\n aria-disabled={getBooleanAsString(this.disabled)}\n >\n {!this.hasSubNavigation ? this.text ? this.text : <slot></slot> : null}\n {this.hasSubNavigation ? (\n <Fragment>\n <button\n class=\"db-navigation-item-expand-button\"\n aria-haspopup={this.hasAreaPopup}\n aria-expanded={this.isSubNavigationExpanded}\n disabled={getBoolean(this.disabled, \"disabled\")}\n onClick={(event) => this.handleClick(event)}\n >\n {this.text ? this.text : <slot></slot>}\n </button>\n <menu\n class=\"db-sub-navigation\"\n data-auto-close={this.autoClose}\n id={this.subNavigationId}\n onClick={(event) => this.handleNavigationItemClick(event)}\n >\n {this.hasAreaPopup ? (\n <div class=\"db-mobile-navigation-back\">\n <db-button\n icon=\"arrow_left\"\n variant=\"ghost\"\n id={this.backButtonId}\n onClick={(event) => this.handleBackClick(event)}\n >\n {this.backButtonText ?? DEFAULT_BACK}\n </db-button>\n </div>\n ) : null}\n <slot name=\"subNavigation\"></slot>\n </menu>\n </Fragment>\n ) : null}\n </li>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-click-listener-Bn3nIGhA.js","sources":["src/utils/document-click-listener.ts"],"sourcesContent":["import { uuid } from './index';\nexport class DocumentClickListener {\n private static callbacks: Record<string, (event: any) => void> = {};\n private static _instance: DocumentClickListener | null = null;\n private static runCallbacks(event: any) {\n Object.values(DocumentClickListener.callbacks).forEach(callback => {\n if (typeof callback === 'function') {\n callback(event);\n }\n });\n }\n constructor() {\n if (DocumentClickListener._instance) {\n return DocumentClickListener._instance;\n }\n DocumentClickListener._instance = this;\n if (document) {\n document.addEventListener('click', event => DocumentClickListener.runCallbacks(event));\n }\n }\n public addCallback(callback: (event: any) => void) {\n const callbackID = uuid();\n DocumentClickListener.callbacks[callbackID] = callback;\n return callbackID;\n }\n public removeCallback(id: string) {\n delete DocumentClickListener.callbacks[id];\n }\n}"],"names":[],"mappings":";;MACa,qBAAqB,CAAA;IAGxB,OAAO,YAAY,CAAC,KAAU,EAAA;AACpC,QAAA,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AAChE,YAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,QAAQ,CAAC,KAAK,CAAC;;AAEnB,SAAC,CAAC;;AAEJ,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,qBAAqB,CAAC,SAAS,EAAE;YACnC,OAAO,qBAAqB,CAAC,SAAS;;AAExC,QAAA,qBAAqB,CAAC,SAAS,GAAG,IAAI;QACtC,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;;AAGnF,IAAA,WAAW,CAAC,QAA8B,EAAA;AAC/C,QAAA,MAAM,UAAU,GAAG,IAAI,EAAE;AACzB,QAAA,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ;AACtD,QAAA,OAAO,UAAU;;AAEZ,IAAA,cAAc,CAAC,EAAU,EAAA;AAC9B,QAAA,OAAO,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;;;AAxB7B,qBAAS,CAAA,SAAA,GAAyC,EAAE;AACpD,qBAAS,CAAA,SAAA,GAAiC,IAAI;;;;"}