@eui/ecl 22.0.0-alpha.15 → 22.0.0-alpha.17

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.
@@ -26400,12 +26400,12 @@
26400
26400
  },
26401
26401
  {
26402
26402
  "name": "EclModalBodyFixedContentDirective",
26403
- "id": "directive-EclModalBodyFixedContentDirective-c54251ee62ee2667bd0d6c99f3dfa29a1414b71187b155e6de6a1e336739fbc6729f643475b9ad0a81a145d8d6e06d2aeb65e12e63d48d863c55c26d632e6140",
26403
+ "id": "directive-EclModalBodyFixedContentDirective-2d5d6d441c418ed62688108877d43d0ef18d40eec5b063c19d0ab10532bb5ce53ec887752a400226fe98cc2dd9d52d6fe863f444f2e59abab150df8dcd22ab65",
26404
26404
  "file": "packages/ecl/components/ecl-modal/ecl-modal-body-fixed.directive.ts",
26405
26405
  "type": "directive",
26406
26406
  "description": "<p>Directive for styling fixed content inside the modal body.</p>\n<p>Applies the appropriate CSS class to mark the element as fixed inside the modal body.</p>\n",
26407
26407
  "rawdescription": "\n\nDirective for styling fixed content inside the modal body.\n\nApplies the appropriate CSS class to mark the element as fixed inside the modal body.\n",
26408
- "sourceCode": "import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for styling fixed content inside the modal body.\n *\n * Applies the appropriate CSS class to mark the element as fixed inside the modal body.\n */\n@Directive({\n selector: '[eclModalBodyFixedContent]',\n})\nexport class EclModalBodyFixedContentDirective extends ECLBaseDirective {\n /**\n * Applies the `ecl-modal__body-fixed` class to the host element.\n */\n @HostBinding('class.ecl-modal__body-fixed') className = true;\n}\n",
26408
+ "sourceCode": "import { Directive } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for styling fixed content inside the modal body.\n *\n * Applies the appropriate CSS class to mark the element as fixed inside the modal body.\n */\n@Directive({\n selector: '[eclModalBodyFixedContent]',\n host: {\n '[class.ecl-modal__body-fixed]': 'className',\n },\n})\nexport class EclModalBodyFixedContentDirective extends ECLBaseDirective {\n /**\n * Applies the `ecl-modal__body-fixed` class to the host element.\n */\n className = true;\n}\n",
26409
26409
  "selector": "[eclModalBodyFixedContent]",
26410
26410
  "providers": [],
26411
26411
  "hostDirectives": [],
@@ -26458,21 +26458,7 @@
26458
26458
  "outputsClass": [],
26459
26459
  "deprecated": false,
26460
26460
  "deprecationMessage": "",
26461
- "hostBindings": [
26462
- {
26463
- "coverageIgnore": false,
26464
- "name": "class.ecl-modal__body-fixed",
26465
- "actualName": "className",
26466
- "defaultValue": "true",
26467
- "deprecated": false,
26468
- "deprecationMessage": "",
26469
- "rawdescription": "\n\nApplies the `ecl-modal__body-fixed` class to the host element.\n",
26470
- "description": "<p>Applies the <code>ecl-modal__body-fixed</code> class to the host element.</p>\n",
26471
- "line": 16,
26472
- "type": "boolean",
26473
- "decorators": []
26474
- }
26475
- ],
26461
+ "hostBindings": [],
26476
26462
  "hostListeners": [],
26477
26463
  "propertiesClass": [
26478
26464
  {
@@ -26485,17 +26471,8 @@
26485
26471
  "indexKey": "",
26486
26472
  "optional": false,
26487
26473
  "description": "<p>Applies the <code>ecl-modal__body-fixed</code> class to the host element.</p>\n",
26488
- "line": 16,
26489
- "rawdescription": "\n\nApplies the `ecl-modal__body-fixed` class to the host element.\n",
26490
- "decorators": [
26491
- {
26492
- "name": "HostBinding",
26493
- "stringifiedArguments": "'class.ecl-modal__body-fixed'"
26494
- }
26495
- ],
26496
- "modifierKind": [
26497
- 171
26498
- ]
26474
+ "line": 19,
26475
+ "rawdescription": "\n\nApplies the `ecl-modal__body-fixed` class to the host element.\n"
26499
26476
  }
26500
26477
  ],
26501
26478
  "methodsClass": [
@@ -26541,8 +26518,8 @@
26541
26518
  "coverageIgnore": false,
26542
26519
  "jsdoctags": [
26543
26520
  {
26544
- "pos": 107,
26545
- "end": 268,
26521
+ "pos": 94,
26522
+ "end": 255,
26546
26523
  "kind": 321,
26547
26524
  "id": 0,
26548
26525
  "flags": 16777216,
@@ -26566,12 +26543,12 @@
26566
26543
  },
26567
26544
  {
26568
26545
  "name": "EclModalCloseDirective",
26569
- "id": "directive-EclModalCloseDirective-3606e79ddf1b31fe139dc50bd86e2f3d54c9c91f1ee4bd99937dd3f5e04e3adfde7217b64cf4a35245f753f2449d71d2ef9afdb75d928916eaecf563144d1335",
26546
+ "id": "directive-EclModalCloseDirective-cdd0de7bd8d092d20122ce20740b2c5c2f9234534d8351253dd720841d70be3843e6bd67f8b468c5f48dca23eee057ea08f901b8c706728a7da4c61e5d9522aa",
26570
26547
  "file": "packages/ecl/components/ecl-modal/ecl-modal-close.directive.ts",
26571
26548
  "type": "directive",
26572
26549
  "description": "<p>Directive that allows an element to close the modal on click.</p>\n<p>Can emit a result and indicate the role (e.g., confirm, cancel).</p>\n",
26573
26550
  "rawdescription": "\n\nDirective that allows an element to close the modal on click.\n\nCan emit a result and indicate the role (e.g., confirm, cancel).\n",
26574
- "sourceCode": "import { Directive, HostListener, input, output } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that allows an element to close the modal on click.\n *\n * Can emit a result and indicate the role (e.g., confirm, cancel).\n */\n@Directive({\n selector: '[eclModalClose]',\n})\nexport class EclModalCloseDirective<T> extends ECLBaseDirective {\n /**\n * Optional result value to emit when modal is closed.\n */\n eclModalResult = input<T>(undefined, { alias: 'eclModalClose' });\n \n /**\n * Optional role associated with the modal close action (e.g., confirm, cancel).\n */\n eclModalRole = input<'confirm' | 'cancel' | string>();\n \n /**\n * Event emitted when the element is clicked and the modal should be closed.\n */\n modalClose = output();\n\n /**\n * Handles click events and emits the `modalClose` event.\n */\n @HostListener('click', ['$event'])\n onClick(evt: MouseEvent): void {\n this.modalClose.emit(null);\n }\n}\n",
26551
+ "sourceCode": "import { Directive, input, output } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that allows an element to close the modal on click.\n *\n * Can emit a result and indicate the role (e.g., confirm, cancel).\n */\n@Directive({\n selector: '[eclModalClose]',\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class EclModalCloseDirective<T> extends ECLBaseDirective {\n /**\n * Optional result value to emit when modal is closed.\n */\n eclModalResult = input<T>(undefined, { alias: 'eclModalClose' });\n \n /**\n * Optional role associated with the modal close action (e.g., confirm, cancel).\n */\n eclModalRole = input<'confirm' | 'cancel' | string>();\n \n /**\n * Event emitted when the element is clicked and the modal should be closed.\n */\n modalClose = output();\n\n /**\n * Handles click events and emits the `modalClose` event.\n */\n onClick(): void {\n this.modalClose.emit(null);\n }\n}\n",
26575
26552
  "selector": "[eclModalClose]",
26576
26553
  "providers": [],
26577
26554
  "hostDirectives": [],
@@ -26587,7 +26564,7 @@
26587
26564
  "indexKey": "",
26588
26565
  "optional": false,
26589
26566
  "description": "<p>Optional result value to emit when modal is closed.</p>\n",
26590
- "line": 16,
26567
+ "line": 19,
26591
26568
  "rawdescription": "\n\nOptional result value to emit when modal is closed.\n",
26592
26569
  "required": false
26593
26570
  },
@@ -26600,7 +26577,7 @@
26600
26577
  "indexKey": "",
26601
26578
  "optional": false,
26602
26579
  "description": "<p>Optional role associated with the modal close action (e.g., confirm, cancel).</p>\n",
26603
- "line": 21,
26580
+ "line": 24,
26604
26581
  "rawdescription": "\n\nOptional role associated with the modal close action (e.g., confirm, cancel).\n",
26605
26582
  "required": false
26606
26583
  },
@@ -26657,7 +26634,7 @@
26657
26634
  "indexKey": "",
26658
26635
  "optional": false,
26659
26636
  "description": "<p>Event emitted when the element is clicked and the modal should be closed.</p>\n",
26660
- "line": 26,
26637
+ "line": 29,
26661
26638
  "rawdescription": "\n\nEvent emitted when the element is clicked and the modal should be closed.\n",
26662
26639
  "required": false
26663
26640
  }
@@ -26665,75 +26642,21 @@
26665
26642
  "deprecated": false,
26666
26643
  "deprecationMessage": "",
26667
26644
  "hostBindings": [],
26668
- "hostListeners": [
26669
- {
26670
- "coverageIgnore": false,
26671
- "name": "click",
26672
- "args": [
26673
- {
26674
- "name": "evt",
26675
- "type": "MouseEvent",
26676
- "optional": false,
26677
- "dotDotDotToken": false,
26678
- "deprecated": false,
26679
- "deprecationMessage": ""
26680
- }
26681
- ],
26682
- "argsDecorator": [
26683
- "$event"
26684
- ],
26685
- "deprecated": false,
26686
- "deprecationMessage": "",
26687
- "rawdescription": "\n\nHandles click events and emits the `modalClose` event.\n",
26688
- "description": "<p>Handles click events and emits the <code>modalClose</code> event.</p>\n",
26689
- "line": 32
26690
- }
26691
- ],
26645
+ "hostListeners": [],
26692
26646
  "propertiesClass": [],
26693
26647
  "methodsClass": [
26694
26648
  {
26695
26649
  "name": "onClick",
26696
26650
  "coverageIgnore": false,
26697
- "args": [
26698
- {
26699
- "name": "evt",
26700
- "type": "MouseEvent",
26701
- "optional": false,
26702
- "dotDotDotToken": false,
26703
- "deprecated": false,
26704
- "deprecationMessage": ""
26705
- }
26706
- ],
26651
+ "args": [],
26707
26652
  "optional": false,
26708
26653
  "returnType": "void",
26709
26654
  "typeParameters": [],
26710
- "line": 32,
26655
+ "line": 34,
26711
26656
  "deprecated": false,
26712
26657
  "deprecationMessage": "",
26713
26658
  "rawdescription": "\n\nHandles click events and emits the `modalClose` event.\n",
26714
- "description": "<p>Handles click events and emits the <code>modalClose</code> event.</p>\n",
26715
- "decorators": [
26716
- {
26717
- "name": "HostListener",
26718
- "stringifiedArguments": "'click', ['$event']"
26719
- }
26720
- ],
26721
- "modifierKind": [
26722
- 171
26723
- ],
26724
- "jsdoctags": [
26725
- {
26726
- "name": "evt",
26727
- "type": "MouseEvent",
26728
- "optional": false,
26729
- "dotDotDotToken": false,
26730
- "deprecated": false,
26731
- "deprecationMessage": "",
26732
- "tagName": {
26733
- "text": "param"
26734
- }
26735
- }
26736
- ]
26659
+ "description": "<p>Handles click events and emits the <code>modalClose</code> event.</p>\n"
26737
26660
  },
26738
26661
  {
26739
26662
  "name": "getCssClasses",
@@ -26777,8 +26700,8 @@
26777
26700
  "coverageIgnore": false,
26778
26701
  "jsdoctags": [
26779
26702
  {
26780
- "pos": 123,
26781
- "end": 266,
26703
+ "pos": 109,
26704
+ "end": 252,
26782
26705
  "kind": 321,
26783
26706
  "id": 0,
26784
26707
  "flags": 16777216,
@@ -26802,12 +26725,12 @@
26802
26725
  },
26803
26726
  {
26804
26727
  "name": "EclModalTriggerDirective",
26805
- "id": "directive-EclModalTriggerDirective-b0a4ff59fbbfbc09655592c43ba52a946ac63fafb0d36e8a7ed165e2d74d2483963c11d3ca32b7bcc4e5158dd8a5bd8ccc31ddffeeb04f2618c98d575af27f67",
26728
+ "id": "directive-EclModalTriggerDirective-3cabf08e65904957e68565d1a86d095d64ead9ab28a9bd58e305df5a14cc787666a5c0f0306654ae4420671e31aa359fd90ef70f628dbac049fbfe18214770be",
26806
26729
  "file": "packages/ecl/components/ecl-modal/ecl-modal-trigger.directive.ts",
26807
26730
  "type": "directive",
26808
26731
  "description": "<p>Directive used to trigger opening of a target ECL modal on click.</p>\n",
26809
26732
  "rawdescription": "\n\nDirective used to trigger opening of a target ECL modal on click.\n",
26810
- "sourceCode": "import { Directive, HostListener, input } from '@angular/core';\nimport { EclModalComponent } from './ecl-modal.component';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to trigger opening of a target ECL modal on click.\n */\n@Directive({\n selector: '[eclModalTriggerFor]',\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalTriggerDirective<T = any> extends ECLBaseDirective {\n /**\n * Reference to the modal component that should be opened on click.\n */\n eclModalTriggerFor = input<EclModalComponent<T>>();\n\n /**\n * Handles click event and opens the target modal.\n */\n @HostListener('click', ['$event'])\n onClick(evt: MouseEvent): void {\n this.eclModalTriggerFor()?.openModal();\n }\n}\n",
26733
+ "sourceCode": "import { Directive, input } from '@angular/core';\nimport { EclModalComponent } from './ecl-modal.component';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to trigger opening of a target ECL modal on click.\n */\n@Directive({\n selector: '[eclModalTriggerFor]',\n host: {\n '(click)': 'onClick()',\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalTriggerDirective<T = any> extends ECLBaseDirective {\n /**\n * Reference to the modal component that should be opened on click.\n */\n eclModalTriggerFor = input<EclModalComponent<T>>();\n\n /**\n * Handles click event and opens the target modal.\n */\n onClick(): void {\n this.eclModalTriggerFor()?.openModal();\n }\n}\n",
26811
26734
  "selector": "[eclModalTriggerFor]",
26812
26735
  "providers": [],
26813
26736
  "hostDirectives": [],
@@ -26822,7 +26745,7 @@
26822
26745
  "indexKey": "",
26823
26746
  "optional": false,
26824
26747
  "description": "<p>Reference to the modal component that should be opened on click.</p>\n",
26825
- "line": 16,
26748
+ "line": 19,
26826
26749
  "rawdescription": "\n\nReference to the modal component that should be opened on click.\n",
26827
26750
  "required": false
26828
26751
  },
@@ -26874,75 +26797,21 @@
26874
26797
  "deprecated": false,
26875
26798
  "deprecationMessage": "",
26876
26799
  "hostBindings": [],
26877
- "hostListeners": [
26878
- {
26879
- "coverageIgnore": false,
26880
- "name": "click",
26881
- "args": [
26882
- {
26883
- "name": "evt",
26884
- "type": "MouseEvent",
26885
- "optional": false,
26886
- "dotDotDotToken": false,
26887
- "deprecated": false,
26888
- "deprecationMessage": ""
26889
- }
26890
- ],
26891
- "argsDecorator": [
26892
- "$event"
26893
- ],
26894
- "deprecated": false,
26895
- "deprecationMessage": "",
26896
- "rawdescription": "\n\nHandles click event and opens the target modal.\n",
26897
- "description": "<p>Handles click event and opens the target modal.</p>\n",
26898
- "line": 22
26899
- }
26900
- ],
26800
+ "hostListeners": [],
26901
26801
  "propertiesClass": [],
26902
26802
  "methodsClass": [
26903
26803
  {
26904
26804
  "name": "onClick",
26905
26805
  "coverageIgnore": false,
26906
- "args": [
26907
- {
26908
- "name": "evt",
26909
- "type": "MouseEvent",
26910
- "optional": false,
26911
- "dotDotDotToken": false,
26912
- "deprecated": false,
26913
- "deprecationMessage": ""
26914
- }
26915
- ],
26806
+ "args": [],
26916
26807
  "optional": false,
26917
26808
  "returnType": "void",
26918
26809
  "typeParameters": [],
26919
- "line": 22,
26810
+ "line": 24,
26920
26811
  "deprecated": false,
26921
26812
  "deprecationMessage": "",
26922
26813
  "rawdescription": "\n\nHandles click event and opens the target modal.\n",
26923
- "description": "<p>Handles click event and opens the target modal.</p>\n",
26924
- "decorators": [
26925
- {
26926
- "name": "HostListener",
26927
- "stringifiedArguments": "'click', ['$event']"
26928
- }
26929
- ],
26930
- "modifierKind": [
26931
- 171
26932
- ],
26933
- "jsdoctags": [
26934
- {
26935
- "name": "evt",
26936
- "type": "MouseEvent",
26937
- "optional": false,
26938
- "dotDotDotToken": false,
26939
- "deprecated": false,
26940
- "deprecationMessage": "",
26941
- "tagName": {
26942
- "text": "param"
26943
- }
26944
- }
26945
- ]
26814
+ "description": "<p>Handles click event and opens the target modal.</p>\n"
26946
26815
  },
26947
26816
  {
26948
26817
  "name": "getCssClasses",
@@ -26986,8 +26855,8 @@
26986
26855
  "coverageIgnore": false,
26987
26856
  "jsdoctags": [
26988
26857
  {
26989
- "pos": 174,
26990
- "end": 250,
26858
+ "pos": 160,
26859
+ "end": 236,
26991
26860
  "kind": 321,
26992
26861
  "id": 0,
26993
26862
  "flags": 16777216,
@@ -66003,10 +65872,11 @@
66003
65872
  },
66004
65873
  {
66005
65874
  "name": "EclModalBodyComponent",
66006
- "id": "component-EclModalBodyComponent-e5858ad044a0b70bce4757e5e90738713ccc0844750213c06a4befce73575f97b9989d078279d8c67c96e691e76618118dd29007eb204a31a51a198fdfc6c636",
65875
+ "id": "component-EclModalBodyComponent-51a6777d8815a01a89ceeb132b9d4ca1cd0163566773d44b6dfcca83101399c6f50a69482a9c742ab70683f13018ea66f1c2c817f3cdc331adb5165a1ad04f82",
66007
65876
  "file": "packages/ecl/components/ecl-modal/ecl-modal-body.component.ts",
66008
65877
  "encapsulation": [],
66009
65878
  "entryComponents": [],
65879
+ "host": {},
66010
65880
  "inputs": [],
66011
65881
  "outputs": [],
66012
65882
  "providers": [],
@@ -66076,7 +65946,7 @@
66076
65946
  "indexKey": "",
66077
65947
  "optional": false,
66078
65948
  "description": "<p>Unique ID for the modal body, used for accessibility (<code>aria-describedby</code>).\nThis ID is passed from the parent <code>EclModalComponent</code>.</p>\n",
66079
- "line": 20,
65949
+ "line": 22,
66080
65950
  "rawdescription": "\n\nUnique ID for the modal body, used for accessibility (`aria-describedby`).\nThis ID is passed from the parent `EclModalComponent`.\n"
66081
65951
  }
66082
65952
  ],
@@ -66123,34 +65993,21 @@
66123
65993
  "coverageIgnore": false,
66124
65994
  "deprecated": false,
66125
65995
  "deprecationMessage": "",
66126
- "hostBindings": [
66127
- {
66128
- "coverageIgnore": false,
66129
- "name": "class",
66130
- "actualName": "cssClasses",
66131
- "deprecated": false,
66132
- "deprecationMessage": "",
66133
- "rawdescription": "\n\nApplies CSS classes for the modal body and scrollable modifier if enabled.\n",
66134
- "description": "<p>Applies CSS classes for the modal body and scrollable modifier if enabled.</p>\n",
66135
- "line": 26,
66136
- "type": "string",
66137
- "decorators": []
66138
- }
66139
- ],
65996
+ "hostBindings": [],
66140
65997
  "hostListeners": [],
66141
65998
  "standalone": false,
66142
65999
  "imports": [],
66143
66000
  "description": "<p>Body component used inside the ECL Modal.</p>\n<p>Optionally allows scrollable content inside the modal body.</p>\n",
66144
66001
  "rawdescription": "\n\nBody component used inside the ECL Modal.\n\nOptionally allows scrollable content inside the modal body.\n",
66145
66002
  "type": "component",
66146
- "sourceCode": "import { Component, HostBinding, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Body component used inside the ECL Modal.\n *\n * Optionally allows scrollable content inside the modal body.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalBody]',\n templateUrl: './ecl-modal-body.component.html',\n})\nexport class EclModalBodyComponent extends ECLBaseDirective {\n /**\n * Unique ID for the modal body, used for accessibility (`aria-describedby`).\n * This ID is passed from the parent `EclModalComponent`.\n */\n eclModalBodyId = signal<string>('');\n\n /**\n * Applies CSS classes for the modal body and scrollable modifier if enabled.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-modal__body'),\n 'ecl-modal__body--has-scroll',\n ].join(' ').trim();\n }\n}\n",
66003
+ "sourceCode": "import { Component, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Body component used inside the ECL Modal.\n *\n * Optionally allows scrollable content inside the modal body.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalBody]',\n templateUrl: './ecl-modal-body.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclModalBodyComponent extends ECLBaseDirective {\n /**\n * Unique ID for the modal body, used for accessibility (`aria-describedby`).\n * This ID is passed from the parent `EclModalComponent`.\n */\n eclModalBodyId = signal<string>('');\n\n /**\n * Applies CSS classes for the modal body and scrollable modifier if enabled.\n */\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-modal__body'),\n 'ecl-modal__body--has-scroll',\n ].join(' ').trim();\n }\n}\n",
66147
66004
  "assetsDirs": [],
66148
66005
  "styleUrlsData": "",
66149
66006
  "stylesData": "",
66150
66007
  "jsdoctags": [
66151
66008
  {
66152
- "pos": 167,
66153
- "end": 285,
66009
+ "pos": 102,
66010
+ "end": 220,
66154
66011
  "kind": 321,
66155
66012
  "id": 0,
66156
66013
  "flags": 16777216,
@@ -66169,7 +66026,7 @@
66169
66026
  "name": "cssClasses",
66170
66027
  "type": "string",
66171
66028
  "returnType": "string",
66172
- "line": 26,
66029
+ "line": 27,
66173
66030
  "rawdescription": "\n\nApplies CSS classes for the modal body and scrollable modifier if enabled.\n",
66174
66031
  "description": "<p>Applies CSS classes for the modal body and scrollable modifier if enabled.</p>\n"
66175
66032
  }
@@ -66188,10 +66045,11 @@
66188
66045
  },
66189
66046
  {
66190
66047
  "name": "EclModalComponent",
66191
- "id": "component-EclModalComponent-81a7aca45ff5d9d62d53c7475ec8e80b765721cedc18a4a78d3f16e212bc6436fc18cb7c654afeb84e15531fba20a81a5ead218c8f55969f04556f84aa08883f",
66048
+ "id": "component-EclModalComponent-1cf92a1dab40108fd3f9998ebb4665501233c834f3b5c448baa91d4789f231a54150d0c01e74aa4ad1fd2d1def62eec79cd7b91f1f74dd26f9786b292f588177",
66192
66049
  "file": "packages/ecl/components/ecl-modal/ecl-modal.component.ts",
66193
66050
  "encapsulation": [],
66194
66051
  "entryComponents": [],
66052
+ "host": {},
66195
66053
  "inputs": [],
66196
66054
  "outputs": [],
66197
66055
  "providers": [],
@@ -66215,7 +66073,7 @@
66215
66073
  "indexKey": "",
66216
66074
  "optional": false,
66217
66075
  "description": "<p>Defines the size of the modal.\nPossible values: &#39;s&#39;, &#39;m&#39;, &#39;l&#39; (default), &#39;full&#39;.</p>\n",
66218
- "line": 47,
66076
+ "line": 50,
66219
66077
  "rawdescription": "\n\nDefines the size of the modal.\nPossible values: 's', 'm', 'l' (default), 'full'.\n",
66220
66078
  "required": false
66221
66079
  },
@@ -66228,7 +66086,7 @@
66228
66086
  "indexKey": "",
66229
66087
  "optional": false,
66230
66088
  "description": "<p>Defines the visual variant of the modal.\nPossible values: &#39;information&#39;, &#39;success&#39;, &#39;warning&#39;, &#39;error&#39;, or a custom string.</p>\n",
66231
- "line": 41,
66089
+ "line": 44,
66232
66090
  "rawdescription": "\n\nDefines the visual variant of the modal.\nPossible values: 'information', 'success', 'warning', 'error', or a custom string.\n",
66233
66091
  "required": false
66234
66092
  },
@@ -66286,7 +66144,7 @@
66286
66144
  "indexKey": "",
66287
66145
  "optional": false,
66288
66146
  "description": "<p>Emits when the modal is closed.\nCarries an instance of <code>EclModalCloseEvent</code>.</p>\n",
66289
- "line": 64,
66147
+ "line": 67,
66290
66148
  "rawdescription": "\n\nEmits when the modal is closed.\nCarries an instance of `EclModalCloseEvent`.\n",
66291
66149
  "required": false
66292
66150
  },
@@ -66299,7 +66157,7 @@
66299
66157
  "indexKey": "",
66300
66158
  "optional": false,
66301
66159
  "description": "<p>Emits when the modal is opened.\nCarries an instance of <code>EclModalOpenEvent</code>.</p>\n",
66302
- "line": 70,
66160
+ "line": 73,
66303
66161
  "rawdescription": "\n\nEmits when the modal is opened.\nCarries an instance of `EclModalOpenEvent`.\n",
66304
66162
  "required": false
66305
66163
  }
@@ -66315,7 +66173,7 @@
66315
66173
  "indexKey": "",
66316
66174
  "optional": false,
66317
66175
  "description": "<p>Body component projected into the modal.</p>\n",
66318
- "line": 85,
66176
+ "line": 88,
66319
66177
  "rawdescription": "\n\nBody component projected into the modal.\n"
66320
66178
  },
66321
66179
  {
@@ -66328,7 +66186,7 @@
66328
66186
  "indexKey": "",
66329
66187
  "optional": false,
66330
66188
  "description": "<p>Unique ID for the modal body.\nUsed for accessibility (<code>aria-describedby</code> on the modal container).</p>\n",
66331
- "line": 53,
66189
+ "line": 56,
66332
66190
  "rawdescription": "\n\nUnique ID for the modal body.\nUsed for accessibility (`aria-describedby` on the modal container).\n"
66333
66191
  },
66334
66192
  {
@@ -66341,7 +66199,7 @@
66341
66199
  "indexKey": "",
66342
66200
  "optional": false,
66343
66201
  "description": "<p>All close directives projected inside the modal.</p>\n",
66344
- "line": 80,
66202
+ "line": 83,
66345
66203
  "rawdescription": "\n\nAll close directives projected inside the modal.\n"
66346
66204
  },
66347
66205
  {
@@ -66354,7 +66212,7 @@
66354
66212
  "indexKey": "",
66355
66213
  "optional": false,
66356
66214
  "description": "<p>Header component projected into the modal.</p>\n",
66357
- "line": 75,
66215
+ "line": 78,
66358
66216
  "rawdescription": "\n\nHeader component projected into the modal.\n"
66359
66217
  },
66360
66218
  {
@@ -66367,7 +66225,7 @@
66367
66225
  "indexKey": "",
66368
66226
  "optional": false,
66369
66227
  "description": "<p>Controls whether the modal is open.</p>\n",
66370
- "line": 58,
66228
+ "line": 61,
66371
66229
  "rawdescription": "\n\nControls whether the modal is open.\n"
66372
66230
  }
66373
66231
  ],
@@ -66388,7 +66246,7 @@
66388
66246
  "optional": false,
66389
66247
  "returnType": "void",
66390
66248
  "typeParameters": [],
66391
- "line": 187,
66249
+ "line": 193,
66392
66250
  "deprecated": false,
66393
66251
  "deprecationMessage": "",
66394
66252
  "rawdescription": "\n\nCloses the modal and emits a `modalClose` event with optional result data.\nIf the event is not prevented, the modal will be hidden.\n",
@@ -66414,11 +66272,11 @@
66414
66272
  "optional": false,
66415
66273
  "returnType": "void",
66416
66274
  "typeParameters": [],
66417
- "line": 141,
66275
+ "line": 99,
66418
66276
  "deprecated": false,
66419
66277
  "deprecationMessage": "",
66420
- "rawdescription": "\n\nSubscribes to close events from header and close directives after content is initialized.\n",
66421
- "description": "<p>Subscribes to close events from header and close directives after content is initialized.</p>\n"
66278
+ "rawdescription": "\n\nWires the projected header and close directives, and passes the body id to\nthe projected body, once content is initialized. The projected content is\nstatic for the modal's lifetime, so a one-time setup is sufficient.\n",
66279
+ "description": "<p>Wires the projected header and close directives, and passes the body id to\nthe projected body, once content is initialized. The projected content is\nstatic for the modal&#39;s lifetime, so a one-time setup is sufficient.</p>\n"
66422
66280
  },
66423
66281
  {
66424
66282
  "name": "onEscapeKeydownHandler",
@@ -66427,20 +66285,11 @@
66427
66285
  "optional": false,
66428
66286
  "returnType": "void",
66429
66287
  "typeParameters": [],
66430
- "line": 134,
66288
+ "line": 154,
66431
66289
  "deprecated": false,
66432
66290
  "deprecationMessage": "",
66433
66291
  "rawdescription": "\n\nHandles ESC key press to close the modal with `cancel` role.\n",
66434
- "description": "<p>Handles ESC key press to close the modal with <code>cancel</code> role.</p>\n",
66435
- "decorators": [
66436
- {
66437
- "name": "HostListener",
66438
- "stringifiedArguments": "'document:keydown.escape'"
66439
- }
66440
- ],
66441
- "modifierKind": [
66442
- 171
66443
- ]
66292
+ "description": "<p>Handles ESC key press to close the modal with <code>cancel</code> role.</p>\n"
66444
66293
  },
66445
66294
  {
66446
66295
  "name": "openModal",
@@ -66449,7 +66298,7 @@
66449
66298
  "optional": false,
66450
66299
  "returnType": "void",
66451
66300
  "typeParameters": [],
66452
- "line": 165,
66301
+ "line": 162,
66453
66302
  "deprecated": false,
66454
66303
  "deprecationMessage": "",
66455
66304
  "rawdescription": "\n\nOpens the modal and emits a `modalOpen` event.\nIf the event is not prevented, the modal will be displayed.\n",
@@ -66497,57 +66346,8 @@
66497
66346
  "coverageIgnore": false,
66498
66347
  "deprecated": false,
66499
66348
  "deprecationMessage": "",
66500
- "hostBindings": [
66501
- {
66502
- "coverageIgnore": false,
66503
- "name": "attr.aria-describedby",
66504
- "actualName": "hostAriaDescribedBy",
66505
- "deprecated": false,
66506
- "deprecationMessage": "",
66507
- "rawdescription": "\n\nBinds the `aria-describedby` attribute to the modal element.\nConnects the dialog with the modal body via its unique ID for accessibility.\n",
66508
- "description": "<p>Binds the <code>aria-describedby</code> attribute to the modal element.\nConnects the dialog with the modal body via its unique ID for accessibility.</p>\n",
66509
- "line": 115,
66510
- "type": "string",
66511
- "decorators": []
66512
- },
66513
- {
66514
- "coverageIgnore": false,
66515
- "name": "attr.open",
66516
- "actualName": "isModalOpened",
66517
- "deprecated": false,
66518
- "deprecationMessage": "",
66519
- "rawdescription": "\n\nBinds the `open` attribute to the modal element.\nUsed by the native `<dialog>` element.\n",
66520
- "description": "<p>Binds the <code>open</code> attribute to the modal element.\nUsed by the native <code>&lt;dialog&gt;</code> element.</p>\n",
66521
- "line": 106,
66522
- "type": "boolean | null",
66523
- "decorators": []
66524
- },
66525
- {
66526
- "coverageIgnore": false,
66527
- "name": "class",
66528
- "actualName": "cssClasses",
66529
- "deprecated": false,
66530
- "deprecationMessage": "",
66531
- "rawdescription": "\n\nApplies base and variant CSS classes to the modal element.\n",
66532
- "description": "<p>Applies base and variant CSS classes to the modal element.</p>\n",
66533
- "line": 123,
66534
- "type": "string",
66535
- "decorators": []
66536
- }
66537
- ],
66538
- "hostListeners": [
66539
- {
66540
- "coverageIgnore": false,
66541
- "name": "document:keydown.escape",
66542
- "args": [],
66543
- "argsDecorator": [],
66544
- "deprecated": false,
66545
- "deprecationMessage": "",
66546
- "rawdescription": "\n\nHandles ESC key press to close the modal with `cancel` role.\n",
66547
- "description": "<p>Handles ESC key press to close the modal with <code>cancel</code> role.</p>\n",
66548
- "line": 134
66549
- }
66550
- ],
66349
+ "hostBindings": [],
66350
+ "hostListeners": [],
66551
66351
  "standalone": false,
66552
66352
  "imports": [
66553
66353
  {
@@ -66558,19 +66358,10 @@
66558
66358
  "description": "",
66559
66359
  "rawdescription": "\n",
66560
66360
  "type": "component",
66561
- "sourceCode": "import {\n AfterContentInit,\n Component,\n contentChild,\n contentChildren,\n forwardRef,\n HostBinding,\n HostListener,\n input,\n output,\n signal,\n effect,\n inject,\n DOCUMENT,\n PLATFORM_ID,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalResult } from './models/ecl-modal-result.model';\nimport { EclModalCloseEvent } from './events';\nimport { EclModalOpenEvent } from './events';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { uniqueId } from '@eui/core';\nimport { EclModalBodyComponent } from './ecl-modal-body.component';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'dialog[eclModal]',\n templateUrl: './ecl-modal.component.html',\n imports: [A11yModule],\n})\n \nexport class EclModalComponent<T = any> extends ECLBaseDirective implements AfterContentInit {\n /**\n * Defines the visual variant of the modal.\n * Possible values: 'information', 'success', 'warning', 'error', or a custom string.\n */\n variant = input<'information' | 'success' | 'warning' | 'error' | string>();\n \n /**\n * Defines the size of the modal.\n * Possible values: 's', 'm', 'l' (default), 'full'.\n */\n size = input<'s' | 'm' | 'l' | 'full' | string>('l');\n \n /**\n * Unique ID for the modal body.\n * Used for accessibility (`aria-describedby` on the modal container).\n */\n eclModalBodyId = `ecl-modal-body-${uniqueId()}`;\n \n /**\n * Controls whether the modal is open.\n */\n isOpen = signal(false);\n \n /**\n * Emits when the modal is closed.\n * Carries an instance of `EclModalCloseEvent`.\n */\n modalClose = output<EclModalCloseEvent<T>>();\n \n /**\n * Emits when the modal is opened.\n * Carries an instance of `EclModalOpenEvent`.\n */\n modalOpen = output<EclModalOpenEvent>();\n \n /**\n * Header component projected into the modal.\n */\n eclModalHeader = contentChild(forwardRef(() => EclModalHeaderComponent));\n \n /**\n * All close directives projected inside the modal.\n */\n eclModalCloseComponents = contentChildren(forwardRef(() => EclModalCloseDirective), { descendants: true });\n \n /**\n * Body component projected into the modal.\n */\n eclModalBody = contentChild(EclModalBodyComponent);\n\n private previousOverflow = null;\n private readonly document = inject<Document>(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor() {\n super();\n effect(() => {\n const header = this.eclModalHeader();\n if (header) {\n header.variant.set(this.variant());\n }\n });\n }\n\n /**\n * Binds the `open` attribute to the modal element.\n * Used by the native `<dialog>` element.\n */\n @HostBinding('attr.open')\n get isModalOpened(): boolean | null {\n return this.isOpen() || null;\n }\n\n /**\n * Binds the `aria-describedby` attribute to the modal element.\n * Connects the dialog with the modal body via its unique ID for accessibility.\n */\n @HostBinding('attr.aria-describedby')\n get hostAriaDescribedBy(): string {\n return this.eclModalBodyId;\n }\n\n /**\n * Applies base and variant CSS classes to the modal element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal'),\n this.variant() ? `ecl-modal--${this.variant()}` : '',\n `ecl-modal--${this.size()}`,\n ].join(' ').trim();\n }\n\n /**\n * Handles ESC key press to close the modal with `cancel` role.\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.closeModal({ eclModalRole: 'cancel' });\n }\n\n /**\n * Subscribes to close events from header and close directives after content is initialized.\n */\n ngAfterContentInit(): void {\n const header = this.eclModalHeader();\n if (header) {\n header.variant.set(this.variant());\n header.modalClose.subscribe(() => {\n this.closeModal({ eclModalRole: 'cancel' });\n });\n }\n\n this.eclModalCloseComponents()?.forEach((eclModalCloseCmp) => {\n eclModalCloseCmp.modalClose.subscribe(() => {\n this.closeModal({\n eclModalData: eclModalCloseCmp.eclModalResult(),\n eclModalRole: eclModalCloseCmp.eclModalRole(),\n });\n });\n });\n this.eclModalBody().eclModalBodyId.set(this.eclModalBodyId);\n }\n\n /**\n * Opens the modal and emits a `modalOpen` event.\n * If the event is not prevented, the modal will be displayed.\n */\n openModal(): void {\n const event = new EclModalOpenEvent();\n this.modalOpen.emit(event);\n\n if (!event.defaultPrevented) {\n this.isOpen.set(true);\n }\n const header = this.eclModalHeader();\n if (header) {\n setTimeout(() => header.closeButton().el.nativeElement.focus(), 100);\n }\n // To prevent scrolling in main document\n if (isPlatformBrowser(this.platformId)) {\n this.previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n }\n\n /**\n * Closes the modal and emits a `modalClose` event with optional result data.\n * If the event is not prevented, the modal will be hidden.\n */\n closeModal(result?: EclModalResult<T>): void {\n if (this.isOpen()) {\n const event = new EclModalCloseEvent({\n eclModalData: result?.eclModalData,\n eclModalRole: result?.eclModalRole,\n });\n this.modalClose.emit(event);\n\n if (!event.defaultPrevented) {\n this.isOpen.set(false);\n }\n\n if (isPlatformBrowser(this.platformId)) {\n document.body.style.overflow = this.previousOverflow;\n }\n }\n }\n}\n",
66361
+ "sourceCode": "import {\n AfterContentInit,\n Component,\n contentChild,\n contentChildren,\n forwardRef,\n input,\n output,\n signal,\n inject,\n DOCUMENT,\n PLATFORM_ID,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalResult } from './models/ecl-modal-result.model';\nimport { EclModalCloseEvent } from './events';\nimport { EclModalOpenEvent } from './events';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { uniqueId } from '@eui/core';\nimport { EclModalBodyComponent } from './ecl-modal-body.component';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'dialog[eclModal]',\n templateUrl: './ecl-modal.component.html',\n imports: [A11yModule],\n host: {\n '[attr.open]': 'isModalOpened',\n '[attr.aria-describedby]': 'hostAriaDescribedBy',\n '[class]': 'cssClasses',\n '(document:keydown.escape)': 'onEscapeKeydownHandler()',\n },\n})\n \nexport class EclModalComponent<T = any> extends ECLBaseDirective implements AfterContentInit {\n /**\n * Defines the visual variant of the modal.\n * Possible values: 'information', 'success', 'warning', 'error', or a custom string.\n */\n variant = input<'information' | 'success' | 'warning' | 'error' | string>();\n \n /**\n * Defines the size of the modal.\n * Possible values: 's', 'm', 'l' (default), 'full'.\n */\n size = input<'s' | 'm' | 'l' | 'full' | string>('l');\n \n /**\n * Unique ID for the modal body.\n * Used for accessibility (`aria-describedby` on the modal container).\n */\n eclModalBodyId = `ecl-modal-body-${uniqueId()}`;\n \n /**\n * Controls whether the modal is open.\n */\n isOpen = signal(false);\n \n /**\n * Emits when the modal is closed.\n * Carries an instance of `EclModalCloseEvent`.\n */\n modalClose = output<EclModalCloseEvent<T>>();\n \n /**\n * Emits when the modal is opened.\n * Carries an instance of `EclModalOpenEvent`.\n */\n modalOpen = output<EclModalOpenEvent>();\n \n /**\n * Header component projected into the modal.\n */\n eclModalHeader = contentChild(forwardRef(() => EclModalHeaderComponent));\n \n /**\n * All close directives projected inside the modal.\n */\n eclModalCloseComponents = contentChildren(forwardRef(() => EclModalCloseDirective), { descendants: true });\n \n /**\n * Body component projected into the modal.\n */\n eclModalBody = contentChild(EclModalBodyComponent);\n\n private previousOverflow = '';\n private readonly document = inject<Document>(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n\n /**\n * Wires the projected header and close directives, and passes the body id to\n * the projected body, once content is initialized. The projected content is\n * static for the modal's lifetime, so a one-time setup is sufficient.\n */\n ngAfterContentInit(): void {\n // The header derives its own `variant` reactively from this modal, so no\n // manual sync is needed here. We only wire the close event.\n const header = this.eclModalHeader();\n if (header) {\n header.modalClose.subscribe(() => {\n this.closeModal({ eclModalRole: 'cancel' });\n });\n }\n\n // Wire every projected close directive to close the modal with its\n // configured role and result. `modalClose` is an `output()`, so its\n // subscription is cleaned up automatically when this component is destroyed.\n this.eclModalCloseComponents().forEach((closeCmp) => {\n closeCmp.modalClose.subscribe(() => {\n this.closeModal({\n eclModalData: closeCmp.eclModalResult(),\n eclModalRole: closeCmp.eclModalRole(),\n });\n });\n });\n\n // Pass the modal body id to the projected body for aria-describedby wiring.\n this.eclModalBody()?.eclModalBodyId.set(this.eclModalBodyId);\n }\n\n /**\n * Binds the `open` attribute to the modal element.\n * Used by the native `<dialog>` element.\n */\n get isModalOpened(): boolean | null {\n return this.isOpen() || null;\n }\n\n /**\n * Binds the `aria-describedby` attribute to the modal element.\n * Connects the dialog with the modal body via its unique ID for accessibility.\n */\n get hostAriaDescribedBy(): string {\n return this.eclModalBodyId;\n }\n\n /**\n * Applies base and variant CSS classes to the modal element.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal'),\n this.variant() ? `ecl-modal--${this.variant()}` : '',\n `ecl-modal--${this.size()}`,\n ].join(' ').trim();\n }\n\n /**\n * Handles ESC key press to close the modal with `cancel` role.\n */\n onEscapeKeydownHandler(): void {\n this.closeModal({ eclModalRole: 'cancel' });\n }\n\n /**\n * Opens the modal and emits a `modalOpen` event.\n * If the event is not prevented, the modal will be displayed.\n */\n openModal(): void {\n // Ignore repeated open calls so the saved overflow value is not overwritten\n // with the already-hidden value while the modal is open.\n if (this.isOpen()) {\n return;\n }\n\n const event = new EclModalOpenEvent();\n this.modalOpen.emit(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n this.isOpen.set(true);\n\n const header = this.eclModalHeader();\n if (header) {\n setTimeout(() => header.closeButton().el.nativeElement.focus(), 100);\n }\n // To prevent scrolling in main document\n if (isPlatformBrowser(this.platformId)) {\n this.previousOverflow = this.document.body.style.overflow;\n this.document.body.style.overflow = 'hidden';\n }\n }\n\n /**\n * Closes the modal and emits a `modalClose` event with optional result data.\n * If the event is not prevented, the modal will be hidden.\n */\n closeModal(result?: EclModalResult<T>): void {\n if (this.isOpen()) {\n const event = new EclModalCloseEvent({\n eclModalData: result?.eclModalData,\n eclModalRole: result?.eclModalRole,\n });\n this.modalClose.emit(event);\n\n if (!event.defaultPrevented) {\n this.isOpen.set(false);\n }\n\n if (isPlatformBrowser(this.platformId)) {\n this.document.body.style.overflow = this.previousOverflow;\n }\n }\n }\n}\n",
66562
66362
  "assetsDirs": [],
66563
66363
  "styleUrlsData": "",
66564
66364
  "stylesData": "",
66565
- "constructorObj": {
66566
- "name": "constructor",
66567
- "description": "",
66568
- "deprecated": false,
66569
- "deprecationMessage": "",
66570
- "args": [],
66571
- "line": 89,
66572
- "rawdescription": "\n"
66573
- },
66574
66365
  "extends": [
66575
66366
  "ECLBaseDirective"
66576
66367
  ],
@@ -66584,7 +66375,7 @@
66584
66375
  "name": "isModalOpened",
66585
66376
  "type": "unknown",
66586
66377
  "returnType": "boolean | null",
66587
- "line": 106,
66378
+ "line": 129,
66588
66379
  "rawdescription": "\n\nBinds the `open` attribute to the modal element.\nUsed by the native `<dialog>` element.\n",
66589
66380
  "description": "<p>Binds the <code>open</code> attribute to the modal element.\nUsed by the native <code>&lt;dialog&gt;</code> element.</p>\n"
66590
66381
  }
@@ -66595,7 +66386,7 @@
66595
66386
  "name": "hostAriaDescribedBy",
66596
66387
  "type": "string",
66597
66388
  "returnType": "string",
66598
- "line": 115,
66389
+ "line": 137,
66599
66390
  "rawdescription": "\n\nBinds the `aria-describedby` attribute to the modal element.\nConnects the dialog with the modal body via its unique ID for accessibility.\n",
66600
66391
  "description": "<p>Binds the <code>aria-describedby</code> attribute to the modal element.\nConnects the dialog with the modal body via its unique ID for accessibility.</p>\n"
66601
66392
  }
@@ -66606,7 +66397,7 @@
66606
66397
  "name": "cssClasses",
66607
66398
  "type": "string",
66608
66399
  "returnType": "string",
66609
- "line": 123,
66400
+ "line": 144,
66610
66401
  "rawdescription": "\n\nApplies base and variant CSS classes to the modal element.\n",
66611
66402
  "description": "<p>Applies base and variant CSS classes to the modal element.</p>\n"
66612
66403
  }
@@ -66633,10 +66424,11 @@
66633
66424
  },
66634
66425
  {
66635
66426
  "name": "EclModalFooterComponent",
66636
- "id": "component-EclModalFooterComponent-0846cb5091ede4a11344f5796db71e4e7fc5fddcbddb0217ac00cdb0cc33f47886e7b574954ce1e09a62460ed0bd027d25358fd01e22c05def92d8a8839b591e",
66427
+ "id": "component-EclModalFooterComponent-778180b0f635bf979a25184664e1d989290f51ac23553b6f8c9c3a8c78bd8ccd16265a7b3c08580b4ee12ea90a98cc51d2d1ff3b7f3fcc95d2a3937fba14facd",
66637
66428
  "file": "packages/ecl/components/ecl-modal/ecl-modal-footer.component.ts",
66638
66429
  "encapsulation": [],
66639
66430
  "entryComponents": [],
66431
+ "host": {},
66640
66432
  "inputs": [],
66641
66433
  "outputs": [],
66642
66434
  "providers": [],
@@ -66706,7 +66498,7 @@
66706
66498
  "indexKey": "",
66707
66499
  "optional": false,
66708
66500
  "description": "<p>Queries all button components projected into the footer.</p>\n",
66709
- "line": 19,
66501
+ "line": 22,
66710
66502
  "rawdescription": "\n\nQueries all button components projected into the footer.\n"
66711
66503
  }
66712
66504
  ],
@@ -66718,7 +66510,7 @@
66718
66510
  "optional": false,
66719
66511
  "returnType": "void",
66720
66512
  "typeParameters": [],
66721
- "line": 33,
66513
+ "line": 35,
66722
66514
  "deprecated": false,
66723
66515
  "deprecationMessage": "",
66724
66516
  "rawdescription": "\n\nLifecycle hook that runs after content projection.\nApplies `ecl-modal__button` class to each projected button component.\n",
@@ -66766,34 +66558,21 @@
66766
66558
  "coverageIgnore": false,
66767
66559
  "deprecated": false,
66768
66560
  "deprecationMessage": "",
66769
- "hostBindings": [
66770
- {
66771
- "coverageIgnore": false,
66772
- "name": "class",
66773
- "actualName": "cssClasses",
66774
- "deprecated": false,
66775
- "deprecationMessage": "",
66776
- "rawdescription": "\n\nApplies the ECL CSS class for modal footer container.\n",
66777
- "description": "<p>Applies the ECL CSS class for modal footer container.</p>\n",
66778
- "line": 25,
66779
- "type": "string",
66780
- "decorators": []
66781
- }
66782
- ],
66561
+ "hostBindings": [],
66783
66562
  "hostListeners": [],
66784
66563
  "standalone": false,
66785
66564
  "imports": [],
66786
66565
  "description": "<p>Footer component used within the ECL Modal.</p>\n<p>Automatically applies styling to buttons projected into the footer.</p>\n",
66787
66566
  "rawdescription": "\n\nFooter component used within the ECL Modal.\n\nAutomatically applies styling to buttons projected into the footer.\n",
66788
66567
  "type": "component",
66789
- "sourceCode": "import { AfterContentInit, Component, contentChildren, forwardRef, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\n\n/**\n * Footer component used within the ECL Modal.\n *\n * Automatically applies styling to buttons projected into the footer.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalFooter]',\n templateUrl: './ecl-modal-footer.component.html',\n})\nexport class EclModalFooterComponent extends ECLBaseDirective implements AfterContentInit {\n /**\n * Queries all button components projected into the footer.\n */\n buttonComponents = contentChildren(forwardRef(() => EclButtonComponent), { descendants: true });\n\n /**\n * Applies the ECL CSS class for modal footer container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__footer')].join(' ').trim();\n }\n\n /**\n * Lifecycle hook that runs after content projection.\n * Applies `ecl-modal__button` class to each projected button component.\n */\n ngAfterContentInit(): void {\n const buttons = this.buttonComponents();\n if (buttons) {\n setTimeout(() => {\n buttons.forEach((btn) => {\n btn.class = 'ecl-modal__button';\n });\n });\n }\n }\n}\n",
66568
+ "sourceCode": "import { AfterContentInit, Component, contentChildren, forwardRef } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\n\n/**\n * Footer component used within the ECL Modal.\n *\n * Automatically applies styling to buttons projected into the footer.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalFooter]',\n templateUrl: './ecl-modal-footer.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclModalFooterComponent extends ECLBaseDirective implements AfterContentInit {\n /**\n * Queries all button components projected into the footer.\n */\n buttonComponents = contentChildren(forwardRef(() => EclButtonComponent), { descendants: true });\n\n /**\n * Applies the ECL CSS class for modal footer container.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__footer')].join(' ').trim();\n }\n\n /**\n * Lifecycle hook that runs after content projection.\n * Applies `ecl-modal__button` class to each projected button component.\n */\n ngAfterContentInit(): void {\n const buttons = this.buttonComponents();\n if (buttons) {\n setTimeout(() => {\n buttons.forEach((btn) => {\n btn.class = 'ecl-modal__button';\n });\n });\n }\n }\n}\n",
66790
66569
  "assetsDirs": [],
66791
66570
  "styleUrlsData": "",
66792
66571
  "stylesData": "",
66793
66572
  "jsdoctags": [
66794
66573
  {
66795
- "pos": 223,
66796
- "end": 351,
66574
+ "pos": 210,
66575
+ "end": 338,
66797
66576
  "kind": 321,
66798
66577
  "id": 0,
66799
66578
  "flags": 16777216,
@@ -66815,7 +66594,7 @@
66815
66594
  "name": "cssClasses",
66816
66595
  "type": "string",
66817
66596
  "returnType": "string",
66818
- "line": 25,
66597
+ "line": 27,
66819
66598
  "rawdescription": "\n\nApplies the ECL CSS class for modal footer container.\n",
66820
66599
  "description": "<p>Applies the ECL CSS class for modal footer container.</p>\n"
66821
66600
  }
@@ -66838,10 +66617,11 @@
66838
66617
  },
66839
66618
  {
66840
66619
  "name": "EclModalHeaderComponent",
66841
- "id": "component-EclModalHeaderComponent-9cfd1f5f67efa4b306b99ece653974ed4f92933ad1b03667dc431850ae8fa172be022a2de1305702240461cc86ceb23f78cc6a46741f92cfbb3aa53535db2589",
66620
+ "id": "component-EclModalHeaderComponent-6d03b2a86fe5e8353c5a09a0395b1f922e73d023edb7f1ad63b3631ba463fcd16d0680902bed575e92f9378a94c142e7cf987abcc11f2837847cc9ab5bc5f5cb",
66842
66621
  "file": "packages/ecl/components/ecl-modal/ecl-modal-header.component.ts",
66843
66622
  "encapsulation": [],
66844
66623
  "entryComponents": [],
66624
+ "host": {},
66845
66625
  "inputs": [],
66846
66626
  "outputs": [],
66847
66627
  "providers": [],
@@ -66909,7 +66689,7 @@
66909
66689
  "indexKey": "",
66910
66690
  "optional": false,
66911
66691
  "description": "<p>Event emitted when the close button is clicked.\nEmits an <code>EclModalCloseEvent</code> object.</p>\n",
66912
- "line": 41,
66692
+ "line": 55,
66913
66693
  "rawdescription": "\n\nEvent emitted when the close button is clicked.\nEmits an `EclModalCloseEvent` object.\n",
66914
66694
  "required": false
66915
66695
  }
@@ -66925,34 +66705,21 @@
66925
66705
  "indexKey": "",
66926
66706
  "optional": false,
66927
66707
  "description": "<p>Reference to the close button component.</p>\n",
66928
- "line": 46,
66708
+ "line": 60,
66929
66709
  "rawdescription": "\n\nReference to the close button component.\n"
66930
66710
  },
66931
- {
66932
- "name": "eclThemeService",
66933
- "coverageIgnore": false,
66934
- "defaultValue": "inject(EclThemeService)",
66935
- "deprecated": false,
66936
- "deprecationMessage": "",
66937
- "type": "unknown",
66938
- "indexKey": "",
66939
- "optional": false,
66940
- "description": "",
66941
- "line": 28,
66942
- "rawdescription": "\n"
66943
- },
66944
66711
  {
66945
66712
  "name": "variant",
66946
66713
  "coverageIgnore": false,
66947
- "defaultValue": "signal<'information' | 'success' | 'warning' | 'error' | string>(undefined)",
66714
+ "defaultValue": "computed<'information' | 'success' | 'warning' | 'error' | string | undefined>(\n () => this.modal.variant(),\n )",
66948
66715
  "deprecated": false,
66949
66716
  "deprecationMessage": "",
66950
66717
  "type": "unknown",
66951
66718
  "indexKey": "",
66952
66719
  "optional": false,
66953
- "description": "<p>Defines the visual variant of the modal.\nDetermines which icon is shown in the header.\nPossible values: &#39;information&#39;, &#39;success&#39;, &#39;warning&#39;, &#39;error&#39;, or any custom string.</p>\n",
66954
- "line": 35,
66955
- "rawdescription": "\n\nDefines the visual variant of the modal.\nDetermines which icon is shown in the header.\nPossible values: 'information', 'success', 'warning', 'error', or any custom string.\n"
66720
+ "description": "<p>Defines the visual variant of the modal.\nDetermines which icon is shown in the header.\nDerived reactively from the parent modal&#39;s <code>variant</code> input, so the header\nicon updates automatically when the parent variant changes at runtime.\nPossible values: &#39;information&#39;, &#39;success&#39;, &#39;warning&#39;, &#39;error&#39;, or any custom string.</p>\n",
66721
+ "line": 47,
66722
+ "rawdescription": "\n\nDefines the visual variant of the modal.\nDetermines which icon is shown in the header.\nDerived reactively from the parent modal's `variant` input, so the header\nicon updates automatically when the parent variant changes at runtime.\nPossible values: 'information', 'success', 'warning', 'error', or any custom string.\n"
66956
66723
  }
66957
66724
  ],
66958
66725
  "methodsClass": [
@@ -66963,7 +66730,7 @@
66963
66730
  "optional": false,
66964
66731
  "returnType": "\"information\" | \"check-filled\" | \"warning\" | \"error\" | null",
66965
66732
  "typeParameters": [],
66966
- "line": 68,
66733
+ "line": 81,
66967
66734
  "deprecated": false,
66968
66735
  "deprecationMessage": "",
66969
66736
  "rawdescription": "\n\nReturns the name of the icon associated with the current variant.\n",
@@ -66971,8 +66738,8 @@
66971
66738
  "jsdoctags": [
66972
66739
  {
66973
66740
  "tagName": {
66974
- "pos": 2255,
66975
- "end": 2262,
66741
+ "pos": 2877,
66742
+ "end": 2884,
66976
66743
  "kind": 80,
66977
66744
  "id": 0,
66978
66745
  "flags": 16842752,
@@ -66990,7 +66757,7 @@
66990
66757
  "optional": false,
66991
66758
  "returnType": "void",
66992
66759
  "typeParameters": [],
66993
- "line": 60,
66760
+ "line": 73,
66994
66761
  "deprecated": false,
66995
66762
  "deprecationMessage": "",
66996
66763
  "rawdescription": "\n\nHandles the click event on the close button.\nEmits a `modalClose` event with no payload.\n",
@@ -67038,20 +66805,7 @@
67038
66805
  "coverageIgnore": false,
67039
66806
  "deprecated": false,
67040
66807
  "deprecationMessage": "",
67041
- "hostBindings": [
67042
- {
67043
- "coverageIgnore": false,
67044
- "name": "class",
67045
- "actualName": "cssClasses",
67046
- "deprecated": false,
67047
- "deprecationMessage": "",
67048
- "rawdescription": "\n\nApplies the ECL CSS class for modal header container.\n",
67049
- "description": "<p>Applies the ECL CSS class for modal header container.</p>\n",
67050
- "line": 52,
67051
- "type": "string",
67052
- "decorators": []
67053
- }
67054
- ],
66808
+ "hostBindings": [],
67055
66809
  "hostListeners": [],
67056
66810
  "standalone": false,
67057
66811
  "imports": [
@@ -67069,14 +66823,14 @@
67069
66823
  "description": "<p>Header component used within the ECL Modal.</p>\n<p>Displays an icon depending on the modal variant, user-defined content,\nand a close button that emits a close event.</p>\n",
67070
66824
  "rawdescription": "\n\nHeader component used within the ECL Modal.\n\nDisplays an icon depending on the modal variant, user-defined content,\nand a close button that emits a close event.\n",
67071
66825
  "type": "component",
67072
- "sourceCode": "import { Component, HostBinding, output, viewChild, inject, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclModalCloseEvent } from './events';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Header component used within the ECL Modal.\n *\n * Displays an icon depending on the modal variant, user-defined content,\n * and a close button that emits a close event.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalHeader]',\n templateUrl: './ecl-modal-header.component.html',\n imports: [\n ...EUI_ECL_ICON,\n TranslatePipe,\n ...EUI_ECL_BUTTON,\n ],\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalHeaderComponent<T = any> extends ECLBaseDirective {\n eclThemeService = inject(EclThemeService);\n \n /**\n * Defines the visual variant of the modal.\n * Determines which icon is shown in the header.\n * Possible values: 'information', 'success', 'warning', 'error', or any custom string.\n */\n variant = signal<'information' | 'success' | 'warning' | 'error' | string>(undefined);\n \n /**\n * Event emitted when the close button is clicked.\n * Emits an `EclModalCloseEvent` object.\n */\n modalClose = output<EclModalCloseEvent<T>>();\n \n /**\n * Reference to the close button component.\n */\n closeButton = viewChild.required<EclButtonComponent>('closeButton');\n \n /**\n * Applies the ECL CSS class for modal header container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__header')].join(' ').trim();\n }\n\n /**\n * Handles the click event on the close button.\n * Emits a `modalClose` event with no payload.\n */\n onCloseClick(): void {\n this.modalClose.emit(new EclModalCloseEvent());\n }\n\n /**\n * Returns the name of the icon associated with the current variant.\n * @returns The icon name, or `null` if no matching variant exists.\n */\n getIcon(): 'information' | 'check-filled' | 'warning' | 'error' | null {\n const v = this.variant();\n if (v === 'information') {\n return 'information';\n } else if (v === 'success') {\n return 'check-filled';\n } else if (v === 'warning') {\n return 'warning';\n } else if (v === 'error') {\n return 'error';\n } else {\n return null;\n }\n }\n}\n",
66826
+ "sourceCode": "import { Component, output, viewChild, computed, inject, forwardRef } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclModalCloseEvent } from './events';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclModalComponent } from './ecl-modal.component';\n\n/**\n * Header component used within the ECL Modal.\n *\n * Displays an icon depending on the modal variant, user-defined content,\n * and a close button that emits a close event.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalHeader]',\n templateUrl: './ecl-modal-header.component.html',\n imports: [\n ...EUI_ECL_ICON,\n TranslatePipe,\n ...EUI_ECL_BUTTON,\n ],\n host: {\n '[class]': 'cssClasses',\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalHeaderComponent<T = any> extends ECLBaseDirective {\n /**\n * Reference to the parent modal the header is projected into.\n * Injected with `forwardRef` to avoid a circular module-import issue.\n * A header is only valid inside an `EclModalComponent`, so this is a\n * required injection: using the header outside a modal throws at\n * construction, surfacing the misuse immediately.\n */\n private readonly modal = inject(forwardRef(() => EclModalComponent));\n\n /**\n * Defines the visual variant of the modal.\n * Determines which icon is shown in the header.\n * Derived reactively from the parent modal's `variant` input, so the header\n * icon updates automatically when the parent variant changes at runtime.\n * Possible values: 'information', 'success', 'warning', 'error', or any custom string.\n */\n variant = computed<'information' | 'success' | 'warning' | 'error' | string | undefined>(\n () => this.modal.variant(),\n );\n \n /**\n * Event emitted when the close button is clicked.\n * Emits an `EclModalCloseEvent` object.\n */\n modalClose = output<EclModalCloseEvent<T>>();\n \n /**\n * Reference to the close button component.\n */\n closeButton = viewChild.required<EclButtonComponent>('closeButton');\n \n /**\n * Applies the ECL CSS class for modal header container.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__header')].join(' ').trim();\n }\n\n /**\n * Handles the click event on the close button.\n * Emits a `modalClose` event with no payload.\n */\n onCloseClick(): void {\n this.modalClose.emit(new EclModalCloseEvent());\n }\n\n /**\n * Returns the name of the icon associated with the current variant.\n * @returns The icon name, or `null` if no matching variant exists.\n */\n getIcon(): 'information' | 'check-filled' | 'warning' | 'error' | null {\n const v = this.variant();\n if (v === 'information') {\n return 'information';\n } else if (v === 'success') {\n return 'check-filled';\n } else if (v === 'warning') {\n return 'warning';\n } else if (v === 'error') {\n return 'error';\n } else {\n return null;\n }\n }\n}\n",
67073
66827
  "assetsDirs": [],
67074
66828
  "styleUrlsData": "",
67075
66829
  "stylesData": "",
67076
66830
  "jsdoctags": [
67077
66831
  {
67078
- "pos": 486,
67079
- "end": 665,
66832
+ "pos": 497,
66833
+ "end": 676,
67080
66834
  "kind": 321,
67081
66835
  "id": 0,
67082
66836
  "flags": 16777216,
@@ -67095,7 +66849,7 @@
67095
66849
  "name": "cssClasses",
67096
66850
  "type": "string",
67097
66851
  "returnType": "string",
67098
- "line": 52,
66852
+ "line": 65,
67099
66853
  "rawdescription": "\n\nApplies the ECL CSS class for modal header container.\n",
67100
66854
  "description": "<p>Applies the ECL CSS class for modal header container.</p>\n"
67101
66855
  }