igniteui-webcomponents 6.1.1-alpha.0 → 6.1.1

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 (247) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/components/avatar/avatar.d.ts +1 -0
  3. package/components/avatar/avatar.js +9 -12
  4. package/components/avatar/avatar.js.map +1 -1
  5. package/components/badge/badge.d.ts +1 -0
  6. package/components/badge/badge.js +9 -12
  7. package/components/badge/badge.js.map +1 -1
  8. package/components/banner/banner.js +6 -9
  9. package/components/banner/banner.js.map +1 -1
  10. package/components/button/button.d.ts +1 -0
  11. package/components/button/button.js +9 -12
  12. package/components/button/button.js.map +1 -1
  13. package/components/button/icon-button.d.ts +1 -0
  14. package/components/button/icon-button.js +9 -12
  15. package/components/button/icon-button.js.map +1 -1
  16. package/components/button-group/button-group.js +6 -9
  17. package/components/button-group/button-group.js.map +1 -1
  18. package/components/button-group/toggle-button.d.ts +1 -0
  19. package/components/button-group/toggle-button.js +6 -6
  20. package/components/button-group/toggle-button.js.map +1 -1
  21. package/components/calendar/calendar.js +6 -9
  22. package/components/calendar/calendar.js.map +1 -1
  23. package/components/calendar/days-view/days-view.js +3 -3
  24. package/components/calendar/days-view/days-view.js.map +1 -1
  25. package/components/calendar/months-view/months-view.js +3 -3
  26. package/components/calendar/months-view/months-view.js.map +1 -1
  27. package/components/calendar/years-view/years-view.js +3 -3
  28. package/components/calendar/years-view/years-view.js.map +1 -1
  29. package/components/card/card.actions.d.ts +1 -0
  30. package/components/card/card.actions.js +9 -12
  31. package/components/card/card.actions.js.map +1 -1
  32. package/components/card/card.content.d.ts +1 -0
  33. package/components/card/card.content.js +8 -14
  34. package/components/card/card.content.js.map +1 -1
  35. package/components/card/card.d.ts +1 -0
  36. package/components/card/card.header.d.ts +1 -0
  37. package/components/card/card.header.js +8 -14
  38. package/components/card/card.header.js.map +1 -1
  39. package/components/card/card.js +10 -13
  40. package/components/card/card.js.map +1 -1
  41. package/components/carousel/carousel-indicator-container.d.ts +1 -0
  42. package/components/carousel/carousel-indicator-container.js +8 -17
  43. package/components/carousel/carousel-indicator-container.js.map +1 -1
  44. package/components/carousel/carousel.js +7 -10
  45. package/components/carousel/carousel.js.map +1 -1
  46. package/components/checkbox/checkbox.d.ts +1 -1
  47. package/components/checkbox/checkbox.js +10 -14
  48. package/components/checkbox/checkbox.js.map +1 -1
  49. package/components/checkbox/switch.d.ts +1 -0
  50. package/components/checkbox/switch.js +9 -18
  51. package/components/checkbox/switch.js.map +1 -1
  52. package/components/chip/chip.js +6 -9
  53. package/components/chip/chip.js.map +1 -1
  54. package/components/combo/combo-header.d.ts +1 -0
  55. package/components/combo/combo-header.js +8 -14
  56. package/components/combo/combo-header.js.map +1 -1
  57. package/components/combo/combo-item.d.ts +1 -0
  58. package/components/combo/combo-item.js +9 -12
  59. package/components/combo/combo-item.js.map +1 -1
  60. package/components/combo/combo.js +2 -2
  61. package/components/combo/combo.js.map +1 -1
  62. package/components/common/context.d.ts +1 -5
  63. package/components/common/context.js +1 -2
  64. package/components/common/context.js.map +1 -1
  65. package/components/common/definitions/defineAllComponents.js +0 -2
  66. package/components/common/definitions/defineAllComponents.js.map +1 -1
  67. package/components/date-picker/date-picker.d.ts +1 -1
  68. package/components/date-picker/date-picker.js +7 -9
  69. package/components/date-picker/date-picker.js.map +1 -1
  70. package/components/date-range-picker/date-range-picker.d.ts +1 -1
  71. package/components/date-range-picker/date-range-picker.js +5 -7
  72. package/components/date-range-picker/date-range-picker.js.map +1 -1
  73. package/components/date-range-picker/predefined-ranges-area.d.ts +1 -0
  74. package/components/date-range-picker/predefined-ranges-area.js +9 -12
  75. package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
  76. package/components/dialog/dialog.d.ts +1 -0
  77. package/components/dialog/dialog.js +12 -12
  78. package/components/dialog/dialog.js.map +1 -1
  79. package/components/divider/divider.d.ts +1 -0
  80. package/components/divider/divider.js +18 -21
  81. package/components/divider/divider.js.map +1 -1
  82. package/components/dropdown/dropdown-group.js +6 -9
  83. package/components/dropdown/dropdown-group.js.map +1 -1
  84. package/components/dropdown/dropdown-header.d.ts +1 -0
  85. package/components/dropdown/dropdown-header.js +8 -14
  86. package/components/dropdown/dropdown-header.js.map +1 -1
  87. package/components/dropdown/dropdown-item.d.ts +1 -0
  88. package/components/dropdown/dropdown-item.js +8 -14
  89. package/components/dropdown/dropdown-item.js.map +1 -1
  90. package/components/dropdown/dropdown.js +2 -2
  91. package/components/dropdown/dropdown.js.map +1 -1
  92. package/components/dropdown/themes/item.js +7 -0
  93. package/components/dropdown/themes/item.js.map +1 -1
  94. package/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.js +3 -0
  95. package/components/dropdown/themes/shared/item/dropdown-item.bootstrap.css.js.map +1 -0
  96. package/components/expansion-panel/expansion-panel.js +7 -10
  97. package/components/expansion-panel/expansion-panel.js.map +1 -1
  98. package/components/file-input/file-input.d.ts +1 -1
  99. package/components/file-input/file-input.js +18 -21
  100. package/components/file-input/file-input.js.map +1 -1
  101. package/components/file-input/themes/shared/file-input.material.css.js +1 -1
  102. package/components/file-input/themes/shared/file-input.material.css.js.map +1 -1
  103. package/components/icon/icon.d.ts +1 -0
  104. package/components/icon/icon.js +11 -10
  105. package/components/icon/icon.js.map +1 -1
  106. package/components/input/input-base.d.ts +1 -1
  107. package/components/input/input-base.js +5 -6
  108. package/components/input/input-base.js.map +1 -1
  109. package/components/input/themes/shared/input.material.css.js +1 -1
  110. package/components/input/themes/shared/input.material.css.js.map +1 -1
  111. package/components/list/list-header.js +5 -14
  112. package/components/list/list-header.js.map +1 -1
  113. package/components/list/list-item.js +6 -9
  114. package/components/list/list-item.js.map +1 -1
  115. package/components/list/list.js +5 -14
  116. package/components/list/list.js.map +1 -1
  117. package/components/nav-drawer/nav-drawer-header-item.d.ts +1 -0
  118. package/components/nav-drawer/nav-drawer-header-item.js +8 -14
  119. package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
  120. package/components/nav-drawer/nav-drawer-item.d.ts +1 -0
  121. package/components/nav-drawer/nav-drawer-item.js +9 -12
  122. package/components/nav-drawer/nav-drawer-item.js.map +1 -1
  123. package/components/nav-drawer/nav-drawer.d.ts +1 -0
  124. package/components/nav-drawer/nav-drawer.js +9 -12
  125. package/components/nav-drawer/nav-drawer.js.map +1 -1
  126. package/components/navbar/navbar.d.ts +1 -0
  127. package/components/navbar/navbar.js +8 -14
  128. package/components/navbar/navbar.js.map +1 -1
  129. package/components/progress/circular-progress.d.ts +1 -0
  130. package/components/progress/circular-progress.js +10 -13
  131. package/components/progress/circular-progress.js.map +1 -1
  132. package/components/progress/linear-progress.d.ts +1 -0
  133. package/components/progress/linear-progress.js +9 -12
  134. package/components/progress/linear-progress.js.map +1 -1
  135. package/components/radio/radio.js +7 -10
  136. package/components/radio/radio.js.map +1 -1
  137. package/components/radio-group/radio-group.js +6 -9
  138. package/components/radio-group/radio-group.js.map +1 -1
  139. package/components/rating/rating.js +6 -9
  140. package/components/rating/rating.js.map +1 -1
  141. package/components/resize-container/resize-container.js +6 -9
  142. package/components/resize-container/resize-container.js.map +1 -1
  143. package/components/select/select-group.js +6 -9
  144. package/components/select/select-group.js.map +1 -1
  145. package/components/select/select-header.d.ts +1 -0
  146. package/components/select/select-header.js +8 -14
  147. package/components/select/select-header.js.map +1 -1
  148. package/components/select/select-item.d.ts +1 -0
  149. package/components/select/select-item.js +9 -9
  150. package/components/select/select-item.js.map +1 -1
  151. package/components/select/select.js +2 -2
  152. package/components/select/select.js.map +1 -1
  153. package/components/slider/slider-base.js +2 -2
  154. package/components/slider/slider-base.js.map +1 -1
  155. package/components/snackbar/snackbar.d.ts +1 -0
  156. package/components/snackbar/snackbar.js +9 -12
  157. package/components/snackbar/snackbar.js.map +1 -1
  158. package/components/stepper/step.d.ts +1 -0
  159. package/components/stepper/step.js +9 -12
  160. package/components/stepper/step.js.map +1 -1
  161. package/components/stepper/stepper.js +9 -12
  162. package/components/stepper/stepper.js.map +1 -1
  163. package/components/tabs/tab.d.ts +1 -0
  164. package/components/tabs/tab.js +10 -13
  165. package/components/tabs/tab.js.map +1 -1
  166. package/components/tabs/tabs.js +6 -9
  167. package/components/tabs/tabs.js.map +1 -1
  168. package/components/textarea/textarea.d.ts +1 -1
  169. package/components/textarea/textarea.js +5 -6
  170. package/components/textarea/textarea.js.map +1 -1
  171. package/components/tile-manager/tile-manager.js +2 -2
  172. package/components/tile-manager/tile-manager.js.map +1 -1
  173. package/components/tile-manager/tile.d.ts +1 -0
  174. package/components/tile-manager/tile.js +53 -56
  175. package/components/tile-manager/tile.js.map +1 -1
  176. package/components/toast/toast.d.ts +1 -0
  177. package/components/toast/toast.js +8 -17
  178. package/components/toast/toast.js.map +1 -1
  179. package/components/tooltip/tooltip.d.ts +1 -0
  180. package/components/tooltip/tooltip.js +39 -42
  181. package/components/tooltip/tooltip.js.map +1 -1
  182. package/components/tree/tree-item.js +6 -9
  183. package/components/tree/tree-item.js.map +1 -1
  184. package/components/tree/tree.js +2 -2
  185. package/components/tree/tree.js.map +1 -1
  186. package/components/validation-container/validation-container.d.ts +1 -0
  187. package/components/validation-container/validation-container.js +12 -15
  188. package/components/validation-container/validation-container.js.map +1 -1
  189. package/custom-elements.json +20458 -21385
  190. package/igniteui-webcomponents.css-data.json +1 -1
  191. package/igniteui-webcomponents.html-data.json +1 -1
  192. package/index.d.ts +0 -7
  193. package/index.js +0 -5
  194. package/index.js.map +1 -1
  195. package/package.json +1 -1
  196. package/theming/config.d.ts +3 -3
  197. package/theming/config.js +14 -18
  198. package/theming/config.js.map +1 -1
  199. package/theming/theming-controller.d.ts +17 -13
  200. package/theming/theming-controller.js +28 -22
  201. package/theming/theming-controller.js.map +1 -1
  202. package/theming/theming-event.d.ts +1 -0
  203. package/theming/theming-event.js.map +1 -1
  204. package/theming/types.d.ts +3 -14
  205. package/theming/types.js.map +1 -1
  206. package/theming/utils.js +24 -23
  207. package/theming/utils.js.map +1 -1
  208. package/web-types.json +2 -2
  209. package/components/chat/chat-input.d.ts +0 -41
  210. package/components/chat/chat-input.js +0 -254
  211. package/components/chat/chat-input.js.map +0 -1
  212. package/components/chat/chat-message-list.d.ts +0 -24
  213. package/components/chat/chat-message-list.js +0 -88
  214. package/components/chat/chat-message-list.js.map +0 -1
  215. package/components/chat/chat-message.d.ts +0 -21
  216. package/components/chat/chat-message.js +0 -52
  217. package/components/chat/chat-message.js.map +0 -1
  218. package/components/chat/chat.d.ts +0 -41
  219. package/components/chat/chat.js +0 -98
  220. package/components/chat/chat.js.map +0 -1
  221. package/components/chat/markdown-util.d.ts +0 -2
  222. package/components/chat/markdown-util.js +0 -22
  223. package/components/chat/markdown-util.js.map +0 -1
  224. package/components/chat/message-attachments.d.ts +0 -28
  225. package/components/chat/message-attachments.js +0 -168
  226. package/components/chat/message-attachments.js.map +0 -1
  227. package/components/chat/themes/chat.base.css.js +0 -3
  228. package/components/chat/themes/chat.base.css.js.map +0 -1
  229. package/components/chat/themes/input.base.css.d.ts +0 -1
  230. package/components/chat/themes/input.base.css.js +0 -3
  231. package/components/chat/themes/input.base.css.js.map +0 -1
  232. package/components/chat/themes/message-attachments.base.css.d.ts +0 -1
  233. package/components/chat/themes/message-attachments.base.css.js +0 -3
  234. package/components/chat/themes/message-attachments.base.css.js.map +0 -1
  235. package/components/chat/themes/message-list.base.css.d.ts +0 -1
  236. package/components/chat/themes/message-list.base.css.js +0 -3
  237. package/components/chat/themes/message-list.base.css.js.map +0 -1
  238. package/components/chat/themes/message.base.css.d.ts +0 -1
  239. package/components/chat/themes/message.base.css.js +0 -3
  240. package/components/chat/themes/message.base.css.js.map +0 -1
  241. package/components/chat/types.d.ts +0 -46
  242. package/components/chat/types.js +0 -8
  243. package/components/chat/types.js.map +0 -1
  244. package/theming/theming-decorator.d.ts +0 -43
  245. package/theming/theming-decorator.js +0 -25
  246. package/theming/theming-decorator.js.map +0 -1
  247. /package/components/{chat/themes/chat.base.css.d.ts → dropdown/themes/shared/item/dropdown-item.bootstrap.css.d.ts} +0 -0
@@ -4,11 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- var IgcValidationContainerComponent_1;
8
7
  import { html, LitElement, nothing } from 'lit';
9
8
  import { property, state } from 'lit/decorators.js';
10
9
  import { ifDefined } from 'lit/directives/if-defined.js';
11
- import { themes } from '../../theming/theming-decorator.js';
10
+ import { addThemingController } from '../../theming/theming-controller.js';
12
11
  import { registerComponent } from '../common/definitions/register.js';
13
12
  import { partMap } from '../common/part-map.js';
14
13
  import { isEmpty, toKebabCase } from '../common/util.js';
@@ -31,20 +30,15 @@ function hasProjectedValidation(element, slotName) {
31
30
  .some((slot) => slot.assignedElements(config).length > 0)
32
31
  : slots.some((slot) => slot.assignedElements(config).length > 0);
33
32
  }
34
- let IgcValidationContainerComponent = IgcValidationContainerComponent_1 = class IgcValidationContainerComponent extends LitElement {
35
- constructor() {
36
- super(...arguments);
37
- this._hasSlottedContent = false;
38
- this.invalid = false;
39
- }
33
+ class IgcValidationContainerComponent extends LitElement {
40
34
  static register() {
41
- registerComponent(IgcValidationContainerComponent_1, IgcIconComponent);
35
+ registerComponent(IgcValidationContainerComponent, IgcIconComponent);
42
36
  }
43
37
  static create(host, config = {
44
38
  id: 'helper-text',
45
39
  hasHelperText: true,
46
40
  }) {
47
- const { renderValidationSlots } = IgcValidationContainerComponent_1.prototype;
41
+ const { renderValidationSlots } = IgcValidationContainerComponent.prototype;
48
42
  const helperText = config.hasHelperText
49
43
  ? html `<slot name="helper-text" slot="helper-text"></slot>`
50
44
  : null;
@@ -72,6 +66,12 @@ let IgcValidationContainerComponent = IgcValidationContainerComponent_1 = class
72
66
  get target() {
73
67
  return this._target;
74
68
  }
69
+ constructor() {
70
+ super();
71
+ this._hasSlottedContent = false;
72
+ this.invalid = false;
73
+ addThemingController(this, all);
74
+ }
75
75
  createRenderRoot() {
76
76
  const root = super.createRenderRoot();
77
77
  root.addEventListener('slotchange', this);
@@ -134,9 +134,10 @@ let IgcValidationContainerComponent = IgcValidationContainerComponent_1 = class
134
134
  </div>
135
135
  `;
136
136
  }
137
- };
137
+ }
138
138
  IgcValidationContainerComponent.tagName = 'igc-validator';
139
139
  IgcValidationContainerComponent.styles = [styles, shared];
140
+ export default IgcValidationContainerComponent;
140
141
  __decorate([
141
142
  state()
142
143
  ], IgcValidationContainerComponent.prototype, "_hasSlottedContent", void 0);
@@ -146,8 +147,4 @@ __decorate([
146
147
  __decorate([
147
148
  property({ attribute: false })
148
149
  ], IgcValidationContainerComponent.prototype, "target", null);
149
- IgcValidationContainerComponent = IgcValidationContainerComponent_1 = __decorate([
150
- themes(all)
151
- ], IgcValidationContainerComponent);
152
- export default IgcValidationContainerComponent;
153
150
  //# sourceMappingURL=validation-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation-container.js","sourceRoot":"","sources":["../../../src/components/validation-container/validation-container.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, type TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { IgcFormControl } from '../common/mixins/forms/types.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty, toKebabCase } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { styles as shared } from './themes/shared/validator.common.css.js';\nimport { all } from './themes/themes.js';\nimport { styles } from './themes/validator.base.css.js';\n\ninterface ValidationContainerConfig {\n /** The id attribute for the validation container. */\n id?: string;\n /** Project the validation container to the given slot inside the host shadow DOM. */\n slot?: string;\n /** Additional part(s) that should be bound to the validation container. */\n part?: string;\n /** Whether the validation container should expose a helper-text slot. */\n hasHelperText?: boolean;\n}\n\nfunction getValidationSlots(element: IgcValidationContainerComponent) {\n return element.renderRoot.querySelectorAll<HTMLSlotElement>(\n \"slot:not([name='helper-text'])\"\n );\n}\n\nfunction hasProjection(element: IgcValidationContainerComponent) {\n return Array.from(\n element.renderRoot.querySelectorAll<HTMLSlotElement>('slot')\n ).every((slot) => isEmpty(slot.assignedElements({ flatten: true })));\n}\n\nfunction hasProjectedValidation(\n element: IgcValidationContainerComponent,\n slotName?: string\n) {\n const config: AssignedNodesOptions = { flatten: true };\n const slots = Array.from(getValidationSlots(element));\n return slotName\n ? slots\n .filter((slot) => slot.name === slotName)\n .some((slot) => slot.assignedElements(config).length > 0)\n : slots.some((slot) => slot.assignedElements(config).length > 0);\n}\n\n/* blazorSuppress */\n/**\n * @element igc-validator\n *\n * @csspart helper-text - The base wrapper\n * @csspart validation-message - The validation error message container\n * @csspart validation-icon - The validation error icon\n */\n@themes(all)\nexport default class IgcValidationContainerComponent extends LitElement {\n public static readonly tagName = 'igc-validator';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcValidationContainerComponent, IgcIconComponent);\n }\n\n public static create(\n host: IgcFormControl,\n config: ValidationContainerConfig = {\n id: 'helper-text',\n hasHelperText: true,\n }\n ): TemplateResult {\n const { renderValidationSlots } = IgcValidationContainerComponent.prototype;\n const helperText = config.hasHelperText\n ? html`<slot name=\"helper-text\" slot=\"helper-text\"></slot>`\n : null;\n\n return html`\n <igc-validator\n id=${ifDefined(config.id)}\n part=${ifDefined(config.part)}\n slot=${ifDefined(config.slot)}\n .target=${host}\n ?invalid=${host.invalid}\n exportparts=\"helper-text validation-message validation-icon\"\n >\n ${helperText}${renderValidationSlots(host.validity, true)}\n </igc-validator>\n `;\n }\n\n private _target!: IgcFormControl;\n\n @state()\n private _hasSlottedContent = false;\n\n @property({ type: Boolean })\n public invalid = false;\n\n @property({ attribute: false })\n public set target(value: IgcFormControl) {\n if (this._target === value) {\n return;\n }\n\n this._target?.removeEventListener('invalid', this);\n this._target = value;\n this._target.addEventListener('invalid', this);\n }\n\n public get target() {\n return this._target;\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', this);\n return root;\n }\n\n public handleEvent({ type }: Event) {\n const isInvalid = type === 'invalid';\n const isSlotChange = type === 'slotchange';\n\n if (isInvalid || isSlotChange) {\n this.invalid = isInvalid ? true : this.invalid;\n this._hasSlottedContent = hasProjectedValidation(this);\n }\n\n this.requestUpdate();\n }\n\n protected renderValidationMessage(slotName: string) {\n const icon = hasProjectedValidation(this, slotName)\n ? html`\n <igc-icon\n aria-hidden=\"true\"\n name=\"error\"\n collection=\"default\"\n part=\"validation-icon\"\n ></igc-icon>\n `\n : null;\n\n return html`\n <div part=${partMap({ 'validation-message': true, empty: !icon })}>\n ${icon}\n <slot name=${slotName}></slot>\n </div>\n `;\n }\n\n protected *renderValidationSlots(validity: ValidityState, projected = false) {\n for (const key in validity) {\n if (key === 'valid' && !validity[key]) {\n yield projected\n ? html`<slot name=\"invalid\" slot=\"invalid\"></slot>`\n : this.renderValidationMessage('invalid');\n } else if (validity[key as keyof ValidityState]) {\n const name = toKebabCase(key);\n\n yield projected\n ? html`<slot name=${name} slot=${name}></slot>`\n : this.renderValidationMessage(name);\n }\n }\n }\n\n protected renderHelper() {\n return this.invalid && this._hasSlottedContent\n ? nothing\n : html`<slot name=\"helper-text\"></slot>`;\n }\n\n protected override render() {\n return html`\n <div part=${partMap({ 'helper-text': true, empty: hasProjection(this) })}>\n ${this.invalid\n ? this.renderValidationSlots(this.target.validity)\n : nothing}\n ${this.renderHelper()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-validator': IgcValidationContainerComponent;\n }\n}\n"]}
1
+ {"version":3,"file":"validation-container.js","sourceRoot":"","sources":["../../../src/components/validation-container/validation-container.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, type TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { addThemingController } from '../../theming/theming-controller.js';\nimport { registerComponent } from '../common/definitions/register.js';\nimport type { IgcFormControl } from '../common/mixins/forms/types.js';\nimport { partMap } from '../common/part-map.js';\nimport { isEmpty, toKebabCase } from '../common/util.js';\nimport IgcIconComponent from '../icon/icon.js';\nimport { styles as shared } from './themes/shared/validator.common.css.js';\nimport { all } from './themes/themes.js';\nimport { styles } from './themes/validator.base.css.js';\n\ninterface ValidationContainerConfig {\n /** The id attribute for the validation container. */\n id?: string;\n /** Project the validation container to the given slot inside the host shadow DOM. */\n slot?: string;\n /** Additional part(s) that should be bound to the validation container. */\n part?: string;\n /** Whether the validation container should expose a helper-text slot. */\n hasHelperText?: boolean;\n}\n\nfunction getValidationSlots(element: IgcValidationContainerComponent) {\n return element.renderRoot.querySelectorAll<HTMLSlotElement>(\n \"slot:not([name='helper-text'])\"\n );\n}\n\nfunction hasProjection(element: IgcValidationContainerComponent) {\n return Array.from(\n element.renderRoot.querySelectorAll<HTMLSlotElement>('slot')\n ).every((slot) => isEmpty(slot.assignedElements({ flatten: true })));\n}\n\nfunction hasProjectedValidation(\n element: IgcValidationContainerComponent,\n slotName?: string\n) {\n const config: AssignedNodesOptions = { flatten: true };\n const slots = Array.from(getValidationSlots(element));\n return slotName\n ? slots\n .filter((slot) => slot.name === slotName)\n .some((slot) => slot.assignedElements(config).length > 0)\n : slots.some((slot) => slot.assignedElements(config).length > 0);\n}\n\n/* blazorSuppress */\n/**\n * @element igc-validator\n *\n * @csspart helper-text - The base wrapper\n * @csspart validation-message - The validation error message container\n * @csspart validation-icon - The validation error icon\n */\nexport default class IgcValidationContainerComponent extends LitElement {\n public static readonly tagName = 'igc-validator';\n public static override styles = [styles, shared];\n\n /* blazorSuppress */\n public static register() {\n registerComponent(IgcValidationContainerComponent, IgcIconComponent);\n }\n\n public static create(\n host: IgcFormControl,\n config: ValidationContainerConfig = {\n id: 'helper-text',\n hasHelperText: true,\n }\n ): TemplateResult {\n const { renderValidationSlots } = IgcValidationContainerComponent.prototype;\n const helperText = config.hasHelperText\n ? html`<slot name=\"helper-text\" slot=\"helper-text\"></slot>`\n : null;\n\n return html`\n <igc-validator\n id=${ifDefined(config.id)}\n part=${ifDefined(config.part)}\n slot=${ifDefined(config.slot)}\n .target=${host}\n ?invalid=${host.invalid}\n exportparts=\"helper-text validation-message validation-icon\"\n >\n ${helperText}${renderValidationSlots(host.validity, true)}\n </igc-validator>\n `;\n }\n\n private _target!: IgcFormControl;\n\n @state()\n private _hasSlottedContent = false;\n\n @property({ type: Boolean })\n public invalid = false;\n\n @property({ attribute: false })\n public set target(value: IgcFormControl) {\n if (this._target === value) {\n return;\n }\n\n this._target?.removeEventListener('invalid', this);\n this._target = value;\n this._target.addEventListener('invalid', this);\n }\n\n public get target() {\n return this._target;\n }\n\n constructor() {\n super();\n addThemingController(this, all);\n }\n\n protected override createRenderRoot() {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', this);\n return root;\n }\n\n public handleEvent({ type }: Event) {\n const isInvalid = type === 'invalid';\n const isSlotChange = type === 'slotchange';\n\n if (isInvalid || isSlotChange) {\n this.invalid = isInvalid ? true : this.invalid;\n this._hasSlottedContent = hasProjectedValidation(this);\n }\n\n this.requestUpdate();\n }\n\n protected renderValidationMessage(slotName: string) {\n const icon = hasProjectedValidation(this, slotName)\n ? html`\n <igc-icon\n aria-hidden=\"true\"\n name=\"error\"\n collection=\"default\"\n part=\"validation-icon\"\n ></igc-icon>\n `\n : null;\n\n return html`\n <div part=${partMap({ 'validation-message': true, empty: !icon })}>\n ${icon}\n <slot name=${slotName}></slot>\n </div>\n `;\n }\n\n protected *renderValidationSlots(validity: ValidityState, projected = false) {\n for (const key in validity) {\n if (key === 'valid' && !validity[key]) {\n yield projected\n ? html`<slot name=\"invalid\" slot=\"invalid\"></slot>`\n : this.renderValidationMessage('invalid');\n } else if (validity[key as keyof ValidityState]) {\n const name = toKebabCase(key);\n\n yield projected\n ? html`<slot name=${name} slot=${name}></slot>`\n : this.renderValidationMessage(name);\n }\n }\n }\n\n protected renderHelper() {\n return this.invalid && this._hasSlottedContent\n ? nothing\n : html`<slot name=\"helper-text\"></slot>`;\n }\n\n protected override render() {\n return html`\n <div part=${partMap({ 'helper-text': true, empty: hasProjection(this) })}>\n ${this.invalid\n ? this.renderValidationSlots(this.target.validity)\n : nothing}\n ${this.renderHelper()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-validator': IgcValidationContainerComponent;\n }\n}\n"]}