@anglr/select 17.2.0 → 18.0.0-beta.20260805050455

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 (187) hide show
  1. package/.claude/skills/angular-developer/SKILL.md +130 -130
  2. package/.claude/skills/angular-developer/references/angular-animations.md +160 -160
  3. package/.claude/skills/angular-developer/references/angular-aria.md +410 -410
  4. package/.claude/skills/angular-developer/references/cli.md +86 -86
  5. package/.claude/skills/angular-developer/references/component-harnesses.md +59 -59
  6. package/.claude/skills/angular-developer/references/component-styling.md +91 -91
  7. package/.claude/skills/angular-developer/references/components.md +117 -117
  8. package/.claude/skills/angular-developer/references/creating-services.md +97 -97
  9. package/.claude/skills/angular-developer/references/data-resolvers.md +69 -69
  10. package/.claude/skills/angular-developer/references/define-routes.md +67 -67
  11. package/.claude/skills/angular-developer/references/defining-providers.md +72 -72
  12. package/.claude/skills/angular-developer/references/di-fundamentals.md +120 -120
  13. package/.claude/skills/angular-developer/references/e2e-testing.md +66 -66
  14. package/.claude/skills/angular-developer/references/effects.md +83 -83
  15. package/.claude/skills/angular-developer/references/hierarchical-injectors.md +43 -43
  16. package/.claude/skills/angular-developer/references/host-elements.md +80 -80
  17. package/.claude/skills/angular-developer/references/injection-context.md +63 -63
  18. package/.claude/skills/angular-developer/references/inputs.md +101 -101
  19. package/.claude/skills/angular-developer/references/linked-signal.md +59 -59
  20. package/.claude/skills/angular-developer/references/loading-strategies.md +61 -61
  21. package/.claude/skills/angular-developer/references/mcp.md +106 -106
  22. package/.claude/skills/angular-developer/references/migrations.md +30 -30
  23. package/.claude/skills/angular-developer/references/navigate-to-routes.md +69 -69
  24. package/.claude/skills/angular-developer/references/outputs.md +86 -86
  25. package/.claude/skills/angular-developer/references/reactive-forms.md +122 -122
  26. package/.claude/skills/angular-developer/references/rendering-strategies.md +44 -44
  27. package/.claude/skills/angular-developer/references/resource.md +77 -77
  28. package/.claude/skills/angular-developer/references/route-animations.md +56 -56
  29. package/.claude/skills/angular-developer/references/route-guards.md +52 -52
  30. package/.claude/skills/angular-developer/references/router-lifecycle.md +45 -45
  31. package/.claude/skills/angular-developer/references/router-testing.md +87 -87
  32. package/.claude/skills/angular-developer/references/show-routes-with-outlets.md +68 -68
  33. package/.claude/skills/angular-developer/references/signal-forms.md +897 -897
  34. package/.claude/skills/angular-developer/references/signals-overview.md +94 -94
  35. package/.claude/skills/angular-developer/references/tailwind-css.md +69 -69
  36. package/.claude/skills/angular-developer/references/template-driven-forms.md +114 -114
  37. package/.claude/skills/angular-developer/references/testing-fundamentals.md +66 -66
  38. package/.github/instructions/typescript/code-conventions.md +7 -7
  39. package/.github/instructions/typescript/comments.md +40 -40
  40. package/.github/instructions/typescript/formatting.md +41 -41
  41. package/.github/instructions/typescript/naming-conventions.md +6 -6
  42. package/es2022/extensions/src/extensions/getSearch.js.map +1 -1
  43. package/es2022/extensions/src/extensions/getSelectedOption.js.map +1 -1
  44. package/es2022/extensions/src/extensions/getSelectedOptions.js.map +1 -1
  45. package/es2022/extensions/src/extensions/getValue.js.map +1 -1
  46. package/es2022/extensions/src/extensions/setReadonly.js.map +1 -1
  47. package/es2022/extensions/src/extensions/setValue.js.map +1 -1
  48. package/es2022/extensions/src/index.js.map +1 -1
  49. package/es2022/src/components/index.js.map +1 -1
  50. package/es2022/src/components/option/option.component.js.map +1 -1
  51. package/es2022/src/components/optionGroup/optgroup.component.js.map +1 -1
  52. package/es2022/src/components/select/select.component.js +2 -2
  53. package/es2022/src/components/select/select.component.js.map +1 -1
  54. package/es2022/src/decorators/index.js.map +1 -1
  55. package/es2022/src/decorators/mergeOptionsAsSignal/mergeOptionsAsSignal.decorator.js.map +1 -1
  56. package/es2022/src/directives/highlightInstance/highlightInstance.directive.js.map +1 -1
  57. package/es2022/src/directives/highlightSearch/highlightSearch.directive.js.map +1 -1
  58. package/es2022/src/directives/highlightText/highlightText.directive.js.map +1 -1
  59. package/es2022/src/directives/index.js.map +1 -1
  60. package/es2022/src/directives/normalStateTagTemplate/normalStateTagTemplate.directive.js.map +1 -1
  61. package/es2022/src/directives/normalStateTemplate/normalStateTemplate.directive.js.map +1 -1
  62. package/es2022/src/directives/optionGroupTemplate/optionGroupTemplate.directive.js.map +1 -1
  63. package/es2022/src/directives/optionTemplate/optionTemplate.directive.js.map +1 -1
  64. package/es2022/src/directives/selectAbsolute/selectAbsolute.directive.js.map +1 -1
  65. package/es2022/src/directives/selectControlValueAccessor/selectControlValueAccessor.directive.js.map +1 -1
  66. package/es2022/src/directives/selectEdit/selectEdit.directive.js.map +1 -1
  67. package/es2022/src/directives/selectFormControl/selectFormControl.directive.js.map +1 -1
  68. package/es2022/src/directives/selectMultipleKeepPopup/selectMultipleKeepPopup.directive.js.map +1 -1
  69. package/es2022/src/directives/selectNoCarret/selectNoCarret.directive.js.map +1 -1
  70. package/es2022/src/directives/selectPlaceholder/selectPlaceholder.directive.js.map +1 -1
  71. package/es2022/src/directives/withDirectAccess/withDirectAccess.directive.js.map +1 -1
  72. package/es2022/src/index.js.map +1 -1
  73. package/es2022/src/interfaces/index.js.map +1 -1
  74. package/es2022/src/interfaces/initState/initState.interface.js.map +1 -1
  75. package/es2022/src/interfaces/keyboardAction/keyboardAction.interface.js.map +1 -1
  76. package/es2022/src/interfaces/normalStateContext/normalStateContext.interface.js.map +1 -1
  77. package/es2022/src/interfaces/normalStateTagContext/normalStateTagContext.interface.js.map +1 -1
  78. package/es2022/src/interfaces/optionsGatherer/optionsGatherer.interface.js.map +1 -1
  79. package/es2022/src/interfaces/pluginDescription/pluginDescription.interface.js.map +1 -1
  80. package/es2022/src/interfaces/pluginOptions/pluginOptions.interface.js.map +1 -1
  81. package/es2022/src/interfaces/plugins/index.js.map +1 -1
  82. package/es2022/src/interfaces/plugins/interactions/interactions.interface.js.map +1 -1
  83. package/es2022/src/interfaces/plugins/keyboardHandler/keyboardHandler.interface.js.map +1 -1
  84. package/es2022/src/interfaces/plugins/keyboardHandler/simpleKeyboardHandler.interface.js.map +1 -1
  85. package/es2022/src/interfaces/plugins/liveSearch/editLiveSearch.interface.js.map +1 -1
  86. package/es2022/src/interfaces/plugins/liveSearch/filterLiveSearch.interface.js.map +1 -1
  87. package/es2022/src/interfaces/plugins/liveSearch/liveSearch.interface.js.map +1 -1
  88. package/es2022/src/interfaces/plugins/normalState/editNormalState.interface.js.map +1 -1
  89. package/es2022/src/interfaces/plugins/normalState/normalState.interface.js.map +1 -1
  90. package/es2022/src/interfaces/plugins/normalState/simpleNormalState.interface.js.map +1 -1
  91. package/es2022/src/interfaces/plugins/optionsHandler/optionsHandler.interface.js.map +1 -1
  92. package/es2022/src/interfaces/plugins/optionsHandler/simpleOptionsHandler.interface.js.map +1 -1
  93. package/es2022/src/interfaces/plugins/popup/popup.interface.js.map +1 -1
  94. package/es2022/src/interfaces/plugins/popup/simplePopup.interface.js.map +1 -1
  95. package/es2022/src/interfaces/plugins/positioner/commonPositioner.interface.js.map +1 -1
  96. package/es2022/src/interfaces/plugins/positioner/popoverPositioner.interface.js.map +1 -1
  97. package/es2022/src/interfaces/plugins/positioner/positioner.interface.js.map +1 -1
  98. package/es2022/src/interfaces/plugins/readonlyState/readonlyState.interface.js.map +1 -1
  99. package/es2022/src/interfaces/plugins/valueHandler/dynamicValueHandler.interface.js.map +1 -1
  100. package/es2022/src/interfaces/plugins/valueHandler/valueHandler.interface.js.map +1 -1
  101. package/es2022/src/interfaces/popupContext/popupContext.interface.js.map +1 -1
  102. package/es2022/src/interfaces/selectApi/selectApi.interface.js.map +1 -1
  103. package/es2022/src/interfaces/selectBusOptions/selectBusOptions.interface.js.map +1 -1
  104. package/es2022/src/interfaces/selectCssClasses/selectCssClasses.interface.js.map +1 -1
  105. package/es2022/src/interfaces/selectEvent/selectEvent.interface.js.map +1 -1
  106. package/es2022/src/interfaces/selectEvents/selectEvents.interface.js.map +1 -1
  107. package/es2022/src/interfaces/selectOption/selectOption.interface.js.map +1 -1
  108. package/es2022/src/interfaces/selectOptionGroup/selectOptionGroup.interface.js.map +1 -1
  109. package/es2022/src/interfaces/selectOptionState/selectOptionState.interface.js.map +1 -1
  110. package/es2022/src/interfaces/selectOptionStateSyntetic/selectOptionStateSyntetic.interface.js.map +1 -1
  111. package/es2022/src/interfaces/selectOptions/selectOptions.interface.js.map +1 -1
  112. package/es2022/src/interfaces/selectPlugin/selectPlugin.interface.js.map +1 -1
  113. package/es2022/src/interfaces/selectPluginTypes/selectPluginTypes.interface.js.map +1 -1
  114. package/es2022/src/interfaces/tempValue/tempValue.interface.js.map +1 -1
  115. package/es2022/src/interfaces/templateGatherer/templateGatherer.interface.js.map +1 -1
  116. package/es2022/src/interfaces/visualPluginOptions/visualPluginOptions.interface.js.map +1 -1
  117. package/es2022/src/misc/classes/codeOptionsGatherer/codeOptionsGatherer.interface.js.map +1 -1
  118. package/es2022/src/misc/classes/index.js.map +1 -1
  119. package/es2022/src/misc/classes/selectBus/selectBus.js.map +1 -1
  120. package/es2022/src/misc/classes/selectPluginInstances/selectPluginInstances.js.map +1 -1
  121. package/es2022/src/misc/enums.js.map +1 -1
  122. package/es2022/src/misc/providers.js.map +1 -1
  123. package/es2022/src/misc/tokens.js.map +1 -1
  124. package/es2022/src/misc/types.js.map +1 -1
  125. package/es2022/src/misc/utils.js.map +1 -1
  126. package/es2022/src/modules/index.js.map +1 -1
  127. package/es2022/src/modules/select.module.js.map +1 -1
  128. package/es2022/src/pipes/addNewOption/addNewOption.pipe.js.map +1 -1
  129. package/es2022/src/pipes/displayOptionValue/displayOptionValue.pipe.js.map +1 -1
  130. package/es2022/src/pipes/displayValue/displayValue.pipe.js.map +1 -1
  131. package/es2022/src/pipes/getPlugin/getPlugin.pipe.js.map +1 -1
  132. package/es2022/src/pipes/groupedListOptions/groupedListOptions.pipe.js.map +1 -1
  133. package/es2022/src/pipes/hasValue/hasValue.pipe.js.map +1 -1
  134. package/es2022/src/pipes/index.js.map +1 -1
  135. package/es2022/src/pipes/optionCssClasses/optionCssClasses.pipe.js.map +1 -1
  136. package/es2022/src/plugins/index.js.map +1 -1
  137. package/es2022/src/plugins/interactions/index.js.map +1 -1
  138. package/es2022/src/plugins/interactions/simpleInteractions/simpleInteractions.component.js.map +1 -1
  139. package/es2022/src/plugins/keyboardHandler/index.js.map +1 -1
  140. package/es2022/src/plugins/keyboardHandler/simpleKeyboardHandler/simpleKeyboardHandler.component.js.map +1 -1
  141. package/es2022/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.js +2 -2
  142. package/es2022/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.js.map +1 -1
  143. package/es2022/src/plugins/liveSearch/filterLiveSearch/filterLiveSearch.component.js.map +1 -1
  144. package/es2022/src/plugins/liveSearch/index.js.map +1 -1
  145. package/es2022/src/plugins/liveSearch/noLiveSearch/noLiveSearch.component.js.map +1 -1
  146. package/es2022/src/plugins/normalState/editNormalState/editNormalState.component.js +3 -2
  147. package/es2022/src/plugins/normalState/editNormalState/editNormalState.component.js.map +1 -1
  148. package/es2022/src/plugins/normalState/index.js.map +1 -1
  149. package/es2022/src/plugins/normalState/simpleNormalState/simpleNormalState.component.js +5 -6
  150. package/es2022/src/plugins/normalState/simpleNormalState/simpleNormalState.component.js.map +1 -1
  151. package/es2022/src/plugins/optionsHandler/index.js.map +1 -1
  152. package/es2022/src/plugins/optionsHandler/noOptionsHandler/noOptionsHandler.component.js.map +1 -1
  153. package/es2022/src/plugins/optionsHandler/optionsHandlerBase.js.map +1 -1
  154. package/es2022/src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.js.map +1 -1
  155. package/es2022/src/plugins/popup/index.js.map +1 -1
  156. package/es2022/src/plugins/popup/simplePopup/simplePopup.component.js +2 -2
  157. package/es2022/src/plugins/popup/simplePopup/simplePopup.component.js.map +1 -1
  158. package/es2022/src/plugins/positioner/commonPositioner/commonPositioner.component.js.map +1 -1
  159. package/es2022/src/plugins/positioner/index.js.map +1 -1
  160. package/es2022/src/plugins/positioner/noPositioner/noPositioner.component.js.map +1 -1
  161. package/es2022/src/plugins/positioner/popoverPositioner/popoverPositioner.component.js.map +1 -1
  162. package/es2022/src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.js.map +1 -1
  163. package/es2022/src/plugins/valueHandler/index.js.map +1 -1
  164. package/es2022/src/plugins/valueHandler/staticValueHandler/staticValueHandler.component.js.map +1 -1
  165. package/package.json +125 -125
  166. package/src/components/select/select.component.css +5 -5
  167. package/src/interfaces/plugins/normalState/editNormalState.interface.d.ts +4 -0
  168. package/src/interfaces/plugins/normalState/editNormalState.interface.d.ts.map +1 -1
  169. package/src/interfaces/plugins/normalState/simpleNormalState.interface.d.ts +1 -5
  170. package/src/interfaces/plugins/normalState/simpleNormalState.interface.d.ts.map +1 -1
  171. package/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.html +19 -19
  172. package/src/plugins/normalState/editNormalState/editNormalState.component.d.ts.map +1 -1
  173. package/src/plugins/normalState/editNormalState/editNormalState.component.html +52 -50
  174. package/src/plugins/normalState/simpleNormalState/simpleNormalState.component.d.ts.map +1 -1
  175. package/src/plugins/normalState/simpleNormalState/simpleNormalState.component.html +36 -37
  176. package/src/plugins/popup/simplePopup/simplePopup.component.html +56 -56
  177. package/styles/components/_liveSearch.scss +32 -32
  178. package/styles/components/_normalState.scss +121 -116
  179. package/styles/components/_popup.scss +107 -107
  180. package/styles/components/_select.scss +14 -14
  181. package/styles/core/_defaultTheme.scss +105 -105
  182. package/styles/core/_misc.scss +34 -34
  183. package/styles/core/_mixins.scss +29 -29
  184. package/styles/index.scss +2 -2
  185. package/styles/themes/dark.scss +63 -63
  186. package/styles/themes/light.scss +64 -64
  187. package/version.bak +1 -1
@@ -1,66 +1,66 @@
1
- # Testing Fundamentals
2
-
3
- This guide covers the fundamental principles and practices for writing unit tests in this repository, which uses Vitest as the test runner.
4
-
5
- ## Core Philosophy: Zoneless & Async-First
6
-
7
- This project follows a modern, zoneless testing approach. State changes schedule updates asynchronously, and tests must account for this.
8
-
9
- **Do NOT** use `fixture.detectChanges()` to manually trigger updates.
10
- **ALWAYS** use the "Act, Wait, Assert" pattern:
11
-
12
- 1. **Act:** Update state or perform an action (e.g., set a component input, click a button).
13
- 2. **Wait:** Use `await fixture.whenStable()` to allow the framework to process the scheduled update and render the changes.
14
- 3. **Assert:** Verify the outcome.
15
-
16
- ### Basic Test Structure Example
17
-
18
- ```ts
19
- import {ComponentFixture, TestBed} from '@angular/core/testing';
20
- import {MyComponent} from './my.component';
21
-
22
- describe('MyComponent', () => {
23
- let component: MyComponent;
24
- let fixture: ComponentFixture<MyComponent>;
25
- let h1: HTMLElement;
26
-
27
- beforeEach(async () => {
28
- // 1. Configure the test module
29
- await TestBed.configureTestingModule({
30
- imports: [MyComponent],
31
- }).compileComponents();
32
-
33
- // 2. Create the component fixture
34
- fixture = TestBed.createComponent(MyComponent);
35
- component = fixture.componentInstance;
36
- h1 = fixture.nativeElement.querySelector('h1');
37
- });
38
-
39
- it('should display the default title', async () => {
40
- // ACT: (Implicit) Component is created with default state.
41
- // WAIT for initial data binding.
42
- await fixture.whenStable();
43
- // ASSERT the initial state.
44
- expect(h1.textContent).toContain('Default Title');
45
- });
46
-
47
- it('should display a different title after a change', async () => {
48
- // ACT: Change the component's title property.
49
- component.title.set('New Test Title');
50
-
51
- // WAIT for the asynchronous update to complete.
52
- await fixture.whenStable();
53
-
54
- // ASSERT the DOM has been updated.
55
- expect(h1.textContent).toContain('New Test Title');
56
- });
57
- });
58
- ```
59
-
60
- ## TestBed and ComponentFixture
61
-
62
- - **`TestBed`**: The primary utility for creating a test-specific Angular module. Use `TestBed.configureTestingModule({...})` in your `beforeEach` to declare components, provide services, and set up imports needed for your test.
63
- - **`ComponentFixture`**: A handle on the created component instance and its environment.
64
- - `fixture.componentInstance`: Access the component's class instance.
65
- - `fixture.nativeElement`: Access the component's root DOM element.
66
- - `fixture.debugElement`: An Angular-specific wrapper around the `nativeElement` that provides safer, platform-agnostic ways to query the DOM (e.g., `debugElement.query(By.css('p'))`).
1
+ # Testing Fundamentals
2
+
3
+ This guide covers the fundamental principles and practices for writing unit tests in this repository, which uses Vitest as the test runner.
4
+
5
+ ## Core Philosophy: Zoneless & Async-First
6
+
7
+ This project follows a modern, zoneless testing approach. State changes schedule updates asynchronously, and tests must account for this.
8
+
9
+ **Do NOT** use `fixture.detectChanges()` to manually trigger updates.
10
+ **ALWAYS** use the "Act, Wait, Assert" pattern:
11
+
12
+ 1. **Act:** Update state or perform an action (e.g., set a component input, click a button).
13
+ 2. **Wait:** Use `await fixture.whenStable()` to allow the framework to process the scheduled update and render the changes.
14
+ 3. **Assert:** Verify the outcome.
15
+
16
+ ### Basic Test Structure Example
17
+
18
+ ```ts
19
+ import {ComponentFixture, TestBed} from '@angular/core/testing';
20
+ import {MyComponent} from './my.component';
21
+
22
+ describe('MyComponent', () => {
23
+ let component: MyComponent;
24
+ let fixture: ComponentFixture<MyComponent>;
25
+ let h1: HTMLElement;
26
+
27
+ beforeEach(async () => {
28
+ // 1. Configure the test module
29
+ await TestBed.configureTestingModule({
30
+ imports: [MyComponent],
31
+ }).compileComponents();
32
+
33
+ // 2. Create the component fixture
34
+ fixture = TestBed.createComponent(MyComponent);
35
+ component = fixture.componentInstance;
36
+ h1 = fixture.nativeElement.querySelector('h1');
37
+ });
38
+
39
+ it('should display the default title', async () => {
40
+ // ACT: (Implicit) Component is created with default state.
41
+ // WAIT for initial data binding.
42
+ await fixture.whenStable();
43
+ // ASSERT the initial state.
44
+ expect(h1.textContent).toContain('Default Title');
45
+ });
46
+
47
+ it('should display a different title after a change', async () => {
48
+ // ACT: Change the component's title property.
49
+ component.title.set('New Test Title');
50
+
51
+ // WAIT for the asynchronous update to complete.
52
+ await fixture.whenStable();
53
+
54
+ // ASSERT the DOM has been updated.
55
+ expect(h1.textContent).toContain('New Test Title');
56
+ });
57
+ });
58
+ ```
59
+
60
+ ## TestBed and ComponentFixture
61
+
62
+ - **`TestBed`**: The primary utility for creating a test-specific Angular module. Use `TestBed.configureTestingModule({...})` in your `beforeEach` to declare components, provide services, and set up imports needed for your test.
63
+ - **`ComponentFixture`**: A handle on the created component instance and its environment.
64
+ - `fixture.componentInstance`: Access the component's class instance.
65
+ - `fixture.nativeElement`: Access the component's root DOM element.
66
+ - `fixture.debugElement`: An Angular-specific wrapper around the `nativeElement` that provides safer, platform-agnostic ways to query the DOM (e.g., `debugElement.query(By.css('p'))`).
@@ -1,8 +1,8 @@
1
- # Code conventions
2
-
3
- - Use Angular Developer skills and best practices whenever possible, but also:
4
- - Always use explicit type annotations for class members even if type can be inferred even if it is not recommended by any skill
5
- - Use `const` whenever possible, and only use `let` when variable needs to be reassigned
6
- - For local constants, let typescript infer type if it is possible to infer it from initializer, otherwise use explicit type annotation
7
- - Use `readonly` modifier for class members that are not reassigned after initialization
1
+ # Code conventions
2
+
3
+ - Use Angular Developer skills and best practices whenever possible, but also:
4
+ - Always use explicit type annotations for class members even if type can be inferred even if it is not recommended by any skill
5
+ - Use `const` whenever possible, and only use `let` when variable needs to be reassigned
6
+ - For local constants, let typescript infer type if it is possible to infer it from initializer, otherwise use explicit type annotation
7
+ - Use `readonly` modifier for class members that are not reassigned after initialization
8
8
  - Always use access modifiers for class members (private, protected, public)
@@ -1,41 +1,41 @@
1
- # Comments
2
-
3
- - Use JSDoc comments everywhere (classes, interfaces, types, functions, constants, properties, methods, parameters, etc.)
4
- - Use JSDoc for all members, also for private, protected
5
- - Use title `//######################### <name-of-title> #########################` for group of members in class or interface, where `<name-of-title>` is descriptive name of the group:
6
- - supported names of titles are: `private fields`, `protected fields`, `protected properties`, `protected properties - template bindings`, `protected properties - children`, `public properties`, `public properties - inputs`, `public properties - outputs`, `public properties - models`, `constructor`, `public methods - implementation of <interface-name>`, `public methods`, `protected methods - template bindings`, `protected methods - overrides`, `protected methods`, `private methods`
7
- - use empty line before and after title (except if its first line of the block)
8
- - order members in class or interface according to the following rules (unless dependencies between members require different order):
9
- - private fields
10
- - protected fields
11
- - protected properties
12
- - protected properties - template bindings
13
- - protected properties - children
14
- - public properties
15
- - public properties - inputs
16
- - public properties - outputs
17
- - public properties - models
18
- - constructor
19
- - public methods - implementation of <interface-name>
20
- - public methods
21
- - protected methods - template bindings
22
- - protected methods - overrides
23
- - protected methods
24
- - private methods
25
- - when to use each group
26
- - private fields - use this for all private properties
27
- - protected fields - use this for all protected properties that are used only in component
28
- - protected properties - use this only for getter and setter properties
29
- - protected properties - template bindings - use this for properties that are used in template
30
- - protected properties - children - use this for Angular *view child/children* and *content child/children* properties
31
- - public properties - use this for rest of public properties
32
- - public properties - inputs - use this for Angular *inputs* properties
33
- - public properties - outputs - use this for Angular *outputs* properties
34
- - public properties - models - use this for Angular *model* properties
35
- - constructor - use this only for constructor
36
- - public methods - implementation of <interface-name> - use this for each method that was implemented by <interface-name>
37
- - public methods - use this for rest of public methods
38
- - protected methods - template bindings - use this for protected methdos that are used in template
39
- - protected methods - overrides - use this for all protected methods that are overriden
40
- - protected methods - use this for all protected methods that are used only in component
1
+ # Comments
2
+
3
+ - Use JSDoc comments everywhere (classes, interfaces, types, functions, constants, properties, methods, parameters, etc.)
4
+ - Use JSDoc for all members, also for private, protected
5
+ - Use title `//######################### <name-of-title> #########################` for group of members in class or interface, where `<name-of-title>` is descriptive name of the group:
6
+ - supported names of titles are: `private fields`, `protected fields`, `protected properties`, `protected properties - template bindings`, `protected properties - children`, `public properties`, `public properties - inputs`, `public properties - outputs`, `public properties - models`, `constructor`, `public methods - implementation of <interface-name>`, `public methods`, `protected methods - template bindings`, `protected methods - overrides`, `protected methods`, `private methods`
7
+ - use empty line before and after title (except if its first line of the block)
8
+ - order members in class or interface according to the following rules (unless dependencies between members require different order):
9
+ - private fields
10
+ - protected fields
11
+ - protected properties
12
+ - protected properties - template bindings
13
+ - protected properties - children
14
+ - public properties
15
+ - public properties - inputs
16
+ - public properties - outputs
17
+ - public properties - models
18
+ - constructor
19
+ - public methods - implementation of <interface-name>
20
+ - public methods
21
+ - protected methods - template bindings
22
+ - protected methods - overrides
23
+ - protected methods
24
+ - private methods
25
+ - when to use each group
26
+ - private fields - use this for all private properties
27
+ - protected fields - use this for all protected properties that are used only in component
28
+ - protected properties - use this only for getter and setter properties
29
+ - protected properties - template bindings - use this for properties that are used in template
30
+ - protected properties - children - use this for Angular *view child/children* and *content child/children* properties
31
+ - public properties - use this for rest of public properties
32
+ - public properties - inputs - use this for Angular *inputs* properties
33
+ - public properties - outputs - use this for Angular *outputs* properties
34
+ - public properties - models - use this for Angular *model* properties
35
+ - constructor - use this only for constructor
36
+ - public methods - implementation of <interface-name> - use this for each method that was implemented by <interface-name>
37
+ - public methods - use this for rest of public methods
38
+ - protected methods - template bindings - use this for protected methdos that are used in template
39
+ - protected methods - overrides - use this for all protected methods that are overriden
40
+ - protected methods - use this for all protected methods that are used only in component
41
41
  - private methods - use this for all private methods
@@ -1,42 +1,42 @@
1
- # Formatting
2
-
3
- - Order typescript imports, use following rules:
4
- - put `@angular/core` on first place
5
- - then put other `@angular/core/*` imports
6
- - then put other `@angular/*` imports
7
- - then put `@anglr/*` imports
8
- - then put `@jscrpt/common` and `@jscrpt/common/*` imports
9
- - then put other *scoped* imports (e.g. `@fortawesome/*`, `@ngx-translate/*`, etc.)
10
- - then other absolute imports
11
- - then relative imports
12
- - use empty line to separate absolute and relative imports
13
- - Use 4 spaces for indentation
14
- - For new lines use LF (line feed) character, not CRLF (carriage return + line feed)
15
- - Put empty line at the end of file
16
- - Always put opening braces on the new line
17
- - Always use single quotes for strings
18
- - Always use semicolons at the end of statements
19
- - Always use block braces for control flow statements (if, for, while, switch), even if they are optional
20
- - Do not use braces around single parameter lambda functions, unless the parameter type is unknown
21
- - Do not use space after control flow statements (if, for, while, switch)
22
- - Do not put space after opening braces and before closing braces in oneline object literals, arrays, and function parameters, deconstructions, and imports (e.g. `import {Component} from '@angular/core';`, not `import { Component } from '@angular/core';`)
23
- - Use empty line after before and after control flow statements (if, for, while, switch) (unless its first or last line of the block)
24
- - Always put comma at the end of the line in multiline object literals, arrays, and function parameters
25
- - Formatting arguments of function definition and declaration:
26
- - Constructor arguments, put second and following arguments on new line, and align them with the first argument
27
- - For other functions, if the function has more than 2 arguments and line length exceeds 120 characters, put second and following arguments on new line, and align them with the first argument
28
- - For method and function (also decorator use) calls:
29
- - If there is only one parameter and it is not an object literal, keep it on the same line
30
- - If there is only one parameter and it is lambda function, put body of lambda function on new line and use same indentation as previous line
31
- - If there is only one paremeter and it is an object or array literal, put it on new line and use same indentation as previous line
32
- - If there are more than one parameters and lenght does not exceed 120 characters, keep them on the same line
33
- - If there are more than one parameters and lenght exceeds 120 characters, put second and following parameters on new line, and align them with the first parameter
34
- - Json literals:
35
- - Put each property on new line and align them with the first property
36
- - Opening and closing braces should be on their own line and aligned with the first property
37
- - Angular Component and Directive decorators:
38
- - Follow rules for Json literals, but also:
39
- - order properties in the following order: selector, templateUrl, template, styleUrl, styleUrls, styles, host, imports, providers, changeDetection
40
- - order array properties values in the following order: from shortest to longest (e.g. in `imports` property, put items with shorter names first)
41
- - never use one line array or object literal for `imports`, `providers`, `host`
1
+ # Formatting
2
+
3
+ - Order typescript imports, use following rules:
4
+ - put `@angular/core` on first place
5
+ - then put other `@angular/core/*` imports
6
+ - then put other `@angular/*` imports
7
+ - then put `@anglr/*` imports
8
+ - then put `@jscrpt/common` and `@jscrpt/common/*` imports
9
+ - then put other *scoped* imports (e.g. `@fortawesome/*`, `@ngx-translate/*`, etc.)
10
+ - then other absolute imports
11
+ - then relative imports
12
+ - use empty line to separate absolute and relative imports
13
+ - Use 4 spaces for indentation
14
+ - For new lines use LF (line feed) character, not CRLF (carriage return + line feed)
15
+ - Put empty line at the end of file
16
+ - Always put opening braces on the new line
17
+ - Always use single quotes for strings
18
+ - Always use semicolons at the end of statements
19
+ - Always use block braces for control flow statements (if, for, while, switch), even if they are optional
20
+ - Do not use braces around single parameter lambda functions, unless the parameter type is unknown
21
+ - Do not use space after control flow statements (if, for, while, switch)
22
+ - Do not put space after opening braces and before closing braces in oneline object literals, arrays, and function parameters, deconstructions, and imports (e.g. `import {Component} from '@angular/core';`, not `import { Component } from '@angular/core';`)
23
+ - Use empty line after before and after control flow statements (if, for, while, switch) (unless its first or last line of the block)
24
+ - Always put comma at the end of the line in multiline object literals, arrays, and function parameters
25
+ - Formatting arguments of function definition and declaration:
26
+ - Constructor arguments, put second and following arguments on new line, and align them with the first argument
27
+ - For other functions, if the function has more than 2 arguments and line length exceeds 120 characters, put second and following arguments on new line, and align them with the first argument
28
+ - For method and function (also decorator use) calls:
29
+ - If there is only one parameter and it is not an object literal, keep it on the same line
30
+ - If there is only one parameter and it is lambda function, put body of lambda function on new line and use same indentation as previous line
31
+ - If there is only one paremeter and it is an object or array literal, put it on new line and use same indentation as previous line
32
+ - If there are more than one parameters and lenght does not exceed 120 characters, keep them on the same line
33
+ - If there are more than one parameters and lenght exceeds 120 characters, put second and following parameters on new line, and align them with the first parameter
34
+ - Json literals:
35
+ - Put each property on new line and align them with the first property
36
+ - Opening and closing braces should be on their own line and aligned with the first property
37
+ - Angular Component and Directive decorators:
38
+ - Follow rules for Json literals, but also:
39
+ - order properties in the following order: selector, templateUrl, template, styleUrl, styleUrls, styles, host, imports, providers, changeDetection
40
+ - order array properties values in the following order: from shortest to longest (e.g. in `imports` property, put items with shorter names first)
41
+ - never use one line array or object literal for `imports`, `providers`, `host`
42
42
  - always use `changeDetection: ChangeDetectionStrategy.OnPush`
@@ -1,7 +1,7 @@
1
- # Naming Conventions
2
-
3
- - Use PascalCase for component names, directives, pipes, services, interfaces, and type aliases
4
- - Use camelCase for variables, functions, and methods
5
- - Prefix private class members with underscore (_)
6
- - Do NOT prefix protected class members with underscore (_)
1
+ # Naming Conventions
2
+
3
+ - Use PascalCase for component names, directives, pipes, services, interfaces, and type aliases
4
+ - Use camelCase for variables, functions, and methods
5
+ - Prefix private class members with underscore (_)
6
+ - Do NOT prefix protected class members with underscore (_)
7
7
  - Use ALL_CAPS for constants
@@ -1 +1 @@
1
- {"version":3,"file":"getSearch.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/getSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,SAAS;IAErB,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEjE,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectFunction, SelectPluginType} from '@anglr/select';\n\n/**\n * Gets current search value of Select (LiveSearch plugin), its reactive\n */\nexport function getSearch<TValue, TPublicValue, TCssClasses>(): SelectFunction<string, TValue, TPublicValue, TCssClasses>\n{\n return select =>\n {\n if(!select.initialized())\n {\n return '';\n }\n\n const liveSearch = select.getPlugin(SelectPluginType.LiveSearch);\n\n return liveSearch.search();\n };\n}\n"]}
1
+ {"version":3,"file":"getSearch.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/getSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,SAAS;IAErB,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEjE,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectFunction, SelectPluginType} from '@anglr/select';\r\n\r\n/**\r\n * Gets current search value of Select (LiveSearch plugin), its reactive\r\n */\r\nexport function getSearch<TValue, TPublicValue, TCssClasses>(): SelectFunction<string, TValue, TPublicValue, TCssClasses>\r\n{\r\n return select =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return '';\r\n }\r\n\r\n const liveSearch = select.getPlugin(SelectPluginType.LiveSearch);\r\n\r\n return liveSearch.search();\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getSelectedOption.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/getSelectedOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE7E;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAE7B,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErE,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAEjE,IAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EACjC,CAAC;YACG,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectFunction, SelectOption, SelectPluginType} from '@anglr/select';\n\n/**\n * Gets currently selected option of Select, simplifies way how to obtain single value from select, if select is multiple, throws error, its reactive\n */\nexport function getSelectedOption<TValue, TPublicValue, TCssClasses>(): SelectFunction<SelectOption<TValue>|undefined|null, TValue, TPublicValue, TCssClasses>\n{\n return select =>\n {\n if(!select.initialized())\n {\n return undefined;\n }\n\n const valueHandler = select.getPlugin(SelectPluginType.ValueHandler);\n\n const selectedOptions = valueHandler.selectBus.selectedOptions();\n\n if(Array.isArray(selectedOptions))\n {\n throw new Error('Select is multiple, cannot get single selected option');\n }\n\n return selectedOptions;\n };\n}\n"]}
1
+ {"version":3,"file":"getSelectedOption.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/getSelectedOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE7E;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAE7B,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErE,MAAM,eAAe,GAAG,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAEjE,IAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EACjC,CAAC;YACG,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectFunction, SelectOption, SelectPluginType} from '@anglr/select';\r\n\r\n/**\r\n * Gets currently selected option of Select, simplifies way how to obtain single value from select, if select is multiple, throws error, its reactive\r\n */\r\nexport function getSelectedOption<TValue, TPublicValue, TCssClasses>(): SelectFunction<SelectOption<TValue>|undefined|null, TValue, TPublicValue, TCssClasses>\r\n{\r\n return select =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return undefined;\r\n }\r\n\r\n const valueHandler = select.getPlugin(SelectPluginType.ValueHandler);\r\n\r\n const selectedOptions = valueHandler.selectBus.selectedOptions();\r\n\r\n if(Array.isArray(selectedOptions))\r\n {\r\n throw new Error('Select is multiple, cannot get single selected option');\r\n }\r\n\r\n return selectedOptions;\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getSelectedOptions.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/getSelectedOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE7E;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAE9B,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErE,OAAO,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;IACpD,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectFunction, SelectOption, SelectPluginType} from '@anglr/select';\n\n/**\n * Gets currently selected options of Select, its reactive\n */\nexport function getSelectedOptions<TValue, TPublicValue, TCssClasses>(): SelectFunction<SelectOption<TValue>|SelectOption<TValue>[]|undefined|null, TValue, TPublicValue, TCssClasses>\n{\n return select =>\n {\n if(!select.initialized())\n {\n return undefined;\n }\n\n const valueHandler = select.getPlugin(SelectPluginType.ValueHandler);\n\n return valueHandler.selectBus.selectedOptions();\n };\n}\n"]}
1
+ {"version":3,"file":"getSelectedOptions.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/getSelectedOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE7E;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAE9B,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErE,OAAO,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;IACpD,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectFunction, SelectOption, SelectPluginType} from '@anglr/select';\r\n\r\n/**\r\n * Gets currently selected options of Select, its reactive\r\n */\r\nexport function getSelectedOptions<TValue, TPublicValue, TCssClasses>(): SelectFunction<SelectOption<TValue>|SelectOption<TValue>[]|undefined|null, TValue, TPublicValue, TCssClasses>\r\n{\r\n return select =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return undefined;\r\n }\r\n\r\n const valueHandler = select.getPlugin(SelectPluginType.ValueHandler);\r\n\r\n return valueHandler.selectBus.selectedOptions();\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getValue.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/getValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,QAAQ;IAEpB,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErE,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectFunction, SelectPluginType} from '@anglr/select';\n\n/**\n * Gets current value of Select, its reactive\n */\nexport function getValue<TValue, TPublicValue, TCssClasses>(): SelectFunction<TPublicValue|TPublicValue[]|undefined|null, TValue, TPublicValue, TCssClasses>\n{\n return select =>\n {\n if(!select.initialized())\n {\n return undefined;\n }\n\n const valueHandler = select.getPlugin(SelectPluginType.ValueHandler);\n\n return valueHandler.value();\n };\n}\n"]}
1
+ {"version":3,"file":"getValue.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/getValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,QAAQ;IAEpB,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErE,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectFunction, SelectPluginType} from '@anglr/select';\r\n\r\n/**\r\n * Gets current value of Select, its reactive\r\n */\r\nexport function getValue<TValue, TPublicValue, TCssClasses>(): SelectFunction<TPublicValue|TPublicValue[]|undefined|null, TValue, TPublicValue, TCssClasses>\r\n{\r\n return select =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return undefined;\r\n }\r\n\r\n const valueHandler = select.getPlugin(SelectPluginType.ValueHandler);\r\n\r\n return valueHandler.value();\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"setReadonly.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/setReadonly.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAoC,WAAoB,IAAI;IAEnF,OAAO,MAAM,CAAC,EAAE;QAEZ,MAAM,OAAO,GACb;YACI,QAAQ,EAAE,QAAQ;SACrB,CAAC;QAEF,MAAM,CAAC,aAAa,GAAG,OAA2D,CAAC;IACvF,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectAction, SelectOptions} from '@anglr/select';\nimport {RecursivePartial} from '@jscrpt/common';\n\n/**\n * Sets Select as readonly, non editable\n * @param readonly - Indication whether is select readonly or not, if omitted defaults to true\n */\nexport function setReadonly<TValue, TPublicValue, TCssClasses>(readonly: boolean = true): SelectAction<TValue, TPublicValue, TCssClasses>\n{\n return select =>\n {\n const options: RecursivePartial<SelectOptions<TValue, TPublicValue, TCssClasses>> =\n {\n readonly: readonly,\n };\n\n select.selectOptions = options as SelectOptions<TValue, TPublicValue, TCssClasses>;\n };\n}\n"]}
1
+ {"version":3,"file":"setReadonly.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/setReadonly.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAoC,WAAoB,IAAI;IAEnF,OAAO,MAAM,CAAC,EAAE;QAEZ,MAAM,OAAO,GACb;YACI,QAAQ,EAAE,QAAQ;SACrB,CAAC;QAEF,MAAM,CAAC,aAAa,GAAG,OAA2D,CAAC;IACvF,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectAction, SelectOptions} from '@anglr/select';\r\nimport {RecursivePartial} from '@jscrpt/common';\r\n\r\n/**\r\n * Sets Select as readonly, non editable\r\n * @param readonly - Indication whether is select readonly or not, if omitted defaults to true\r\n */\r\nexport function setReadonly<TValue, TPublicValue, TCssClasses>(readonly: boolean = true): SelectAction<TValue, TPublicValue, TCssClasses>\r\n{\r\n return select =>\r\n {\r\n const options: RecursivePartial<SelectOptions<TValue, TPublicValue, TCssClasses>> =\r\n {\r\n readonly: readonly,\r\n };\r\n\r\n select.selectOptions = options as SelectOptions<TValue, TPublicValue, TCssClasses>;\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"setValue.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/setValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAoC,KAAiD;IAEzG,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectAction, SelectPluginType} from '@anglr/select';\n\n/**\n * Sets value of Select\n * @param value - Value to be set into select\n */\nexport function setValue<TValue, TPublicValue, TCssClasses>(value: TPublicValue|TPublicValue[]|undefined|null): SelectAction<TValue, TPublicValue, TCssClasses>\n{\n return select =>\n {\n if(!select.initialized())\n {\n return;\n }\n\n const valueHandler = select.getPlugin(SelectPluginType.ValueHandler);\n\n valueHandler.setValue(value);\n };\n}\n"]}
1
+ {"version":3,"file":"setValue.js","sourceRoot":"","sources":["../../../../extensions/src/extensions/setValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE7D;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAoC,KAAiD;IAEzG,OAAO,MAAM,CAAC,EAAE;QAEZ,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;YACG,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAErE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {SelectAction, SelectPluginType} from '@anglr/select';\r\n\r\n/**\r\n * Sets value of Select\r\n * @param value - Value to be set into select\r\n */\r\nexport function setValue<TValue, TPublicValue, TCssClasses>(value: TPublicValue|TPublicValue[]|undefined|null): SelectAction<TValue, TPublicValue, TCssClasses>\r\n{\r\n return select =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return;\r\n }\r\n\r\n const valueHandler = select.getPlugin(SelectPluginType.ValueHandler);\r\n\r\n valueHandler.setValue(value);\r\n };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../extensions/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC","sourcesContent":["export * from './extensions/getSearch';\nexport * from './extensions/getSelectedOption';\nexport * from './extensions/getSelectedOptions';\nexport * from './extensions/getValue';\nexport * from './extensions/setReadonly';\nexport * from './extensions/setValue';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../extensions/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC","sourcesContent":["export * from './extensions/getSearch';\r\nexport * from './extensions/getSelectedOption';\r\nexport * from './extensions/getSelectedOptions';\r\nexport * from './extensions/getValue';\r\nexport * from './extensions/setReadonly';\r\nexport * from './extensions/setValue';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC","sourcesContent":["export * from './option/option.component';\nexport * from './optionGroup/optgroup.component';\nexport * from './select/select.component';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC","sourcesContent":["export * from './option/option.component';\r\nexport * from './optionGroup/optgroup.component';\r\nexport * from './select/select.component';\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"option.component.js","sourceRoot":"","sources":["../../../../src/components/option/option.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAkB,MAAM,EAAe,KAAK,EAAU,MAAM,EAAC,MAAM,eAAe,CAAC;AAG7H,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;;AAE9D;;GAEG;AAOH,MAAM,OAAO,MAAM;IANnB;QAQI,6GAA6G;QAE7G;;WAEG;QACI,UAAK,GAAW,CAAC,CAAC;QAEzB;;WAEG;QACI,WAAM,GAA4B,MAAM,CAAC,KAAK;mFAAC,CAAC;QAEvD;;WAEG;QACI,aAAQ,GAA4B,MAAM,CAAC,KAAK;qFAAC,CAAC;QAEzD,wGAAwG;QAExG;;WAEG;QACI,UAAK,GAAuC,KAAK;6FAAE,CAAC;QAE3D;;WAEG;QACI,SAAI,GAAwB,KAAK,CAAC,EAAE;iFAAC,CAAC;QAE7C;;WAEG;QACI,UAAK,GAA6C,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;kFAAC,CAAC;KAC1G;8GAnCY,MAAM;kGAAN,MAAM,8TAHL,EAAE;;2FAGH,MAAM;kBANlB,SAAS;mBACV;oBACI,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD","sourcesContent":["import {Component, ChangeDetectionStrategy, WritableSignal, signal, InputSignal, input, Signal, inject} from '@angular/core';\n\nimport {SelectOptionGroup, SelectOptionState} from '../../interfaces';\nimport {OptionGroup} from '../optionGroup/optgroup.component';\n\n/**\n * Component used for options in select component\n */\n@Component(\n{\n selector: 'ng-option',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Option<TValue = unknown> implements SelectOptionState<TValue>\n{\n //######################### public properties - implementation of SelectOptionState #########################\n\n /**\n * @inheritdoc\n */\n public index: number = 0;\n\n /**\n * @inheritdoc\n */\n public active: WritableSignal<boolean> = signal(false);\n\n /**\n * @inheritdoc\n */\n public selected: WritableSignal<boolean> = signal(false);\n\n //######################### public properties - implementation of SelectOption #########################\n\n /**\n * @inheritdoc\n */\n public value: InputSignal<TValue|undefined|null> = input();\n\n /**\n * @inheritdoc\n */\n public text: InputSignal<string> = input('');\n\n /**\n * @inheritdoc\n */\n public group: Signal<SelectOptionGroup|undefined|null> = signal(inject(OptionGroup, {optional: true}));\n}\n"]}
1
+ {"version":3,"file":"option.component.js","sourceRoot":"","sources":["../../../../src/components/option/option.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAkB,MAAM,EAAe,KAAK,EAAU,MAAM,EAAC,MAAM,eAAe,CAAC;AAG7H,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;;AAE9D;;GAEG;AAOH,MAAM,OAAO,MAAM;IANnB;QAQI,6GAA6G;QAE7G;;WAEG;QACI,UAAK,GAAW,CAAC,CAAC;QAEzB;;WAEG;QACI,WAAM,GAA4B,MAAM,CAAC,KAAK;mFAAC,CAAC;QAEvD;;WAEG;QACI,aAAQ,GAA4B,MAAM,CAAC,KAAK;qFAAC,CAAC;QAEzD,wGAAwG;QAExG;;WAEG;QACI,UAAK,GAAuC,KAAK;6FAAE,CAAC;QAE3D;;WAEG;QACI,SAAI,GAAwB,KAAK,CAAC,EAAE;iFAAC,CAAC;QAE7C;;WAEG;QACI,UAAK,GAA6C,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;kFAAC,CAAC;KAC1G;8GAnCY,MAAM;kGAAN,MAAM,8TAHL,EAAE;;2FAGH,MAAM;kBANlB,SAAS;mBACV;oBACI,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD","sourcesContent":["import {Component, ChangeDetectionStrategy, WritableSignal, signal, InputSignal, input, Signal, inject} from '@angular/core';\r\n\r\nimport {SelectOptionGroup, SelectOptionState} from '../../interfaces';\r\nimport {OptionGroup} from '../optionGroup/optgroup.component';\r\n\r\n/**\r\n * Component used for options in select component\r\n */\r\n@Component(\r\n{\r\n selector: 'ng-option',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class Option<TValue = unknown> implements SelectOptionState<TValue>\r\n{\r\n //######################### public properties - implementation of SelectOptionState #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public index: number = 0;\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public active: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public selected: WritableSignal<boolean> = signal(false);\r\n\r\n //######################### public properties - implementation of SelectOption #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public value: InputSignal<TValue|undefined|null> = input();\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public text: InputSignal<string> = input('');\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public group: Signal<SelectOptionGroup|undefined|null> = signal(inject(OptionGroup, {optional: true}));\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"optgroup.component.js","sourceRoot":"","sources":["../../../../src/components/optionGroup/optgroup.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAe,WAAW,EAAE,YAAY,EAAS,MAAM,eAAe,CAAC;AACxH,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;;AAErD;;GAEG;AAOH,MAAM,OAAO,WAAW;IANxB;QAQI,6GAA6G;QAE7G;;WAEG;QACI,UAAK,GAAW,CAAC,CAAC;QAEzB;;WAEG;QACI,aAAQ,GAA4D,YAAY,CAAC,mBAAmB,gFAAG,IAAI,EAAE,WAAW,GAAE,CAAC;QAElI;;WAEG;QACa,OAAE,GAAW,UAAU,CAAC,EAAE,CAAC,CAAC;QAE5C;;WAEG;QACI,SAAI,GAAwB,KAAK,CAAC,QAAQ;iFAAE,CAAC;KACvD;8GAvBY,WAAW;kGAAX,WAAW,iPAYoE,mBAAmB,2BAAS,WAAW,6CAfrH,EAAE;;2FAGH,WAAW;kBANvB,SAAS;mBACV;oBACI,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;6FAa2F,mBAAmB,QAAE,EAAC,IAAI,EAAE,WAAW,EAAC","sourcesContent":["import {Component, ChangeDetectionStrategy, input, InputSignal, TemplateRef, contentChild, Signal} from '@angular/core';\nimport {generateId} from '@jscrpt/common';\n\nimport {SelectOptionGroup} from '../../interfaces';\nimport {OptionGroupTemplate} from '../../directives';\n\n/**\n * Component used for option group in select component\n */\n@Component(\n{\n selector: 'ng-option-group',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OptionGroup implements SelectOptionGroup\n{\n //######################### public properties - implementation of SelectOptionGroup #########################\n\n /**\n * @inheritdoc\n */\n public index: number = 0;\n\n /**\n * @inheritdoc\n */\n public template: Signal<TemplateRef<{$implicit: string}>|undefined|null> = contentChild(OptionGroupTemplate, {read: TemplateRef});\n\n /**\n * @inheritdoc\n */\n public readonly id: string = generateId(10);\n\n /**\n * @inheritdoc\n */\n public text: InputSignal<string> = input.required();\n}\n"]}
1
+ {"version":3,"file":"optgroup.component.js","sourceRoot":"","sources":["../../../../src/components/optionGroup/optgroup.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAe,WAAW,EAAE,YAAY,EAAS,MAAM,eAAe,CAAC;AACxH,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAC,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;;AAErD;;GAEG;AAOH,MAAM,OAAO,WAAW;IANxB;QAQI,6GAA6G;QAE7G;;WAEG;QACI,UAAK,GAAW,CAAC,CAAC;QAEzB;;WAEG;QACI,aAAQ,GAA4D,YAAY,CAAC,mBAAmB,gFAAG,IAAI,EAAE,WAAW,GAAE,CAAC;QAElI;;WAEG;QACa,OAAE,GAAW,UAAU,CAAC,EAAE,CAAC,CAAC;QAE5C;;WAEG;QACI,SAAI,GAAwB,KAAK,CAAC,QAAQ;iFAAE,CAAC;KACvD;8GAvBY,WAAW;kGAAX,WAAW,iPAYoE,mBAAmB,2BAAS,WAAW,6CAfrH,EAAE;;2FAGH,WAAW;kBANvB,SAAS;mBACV;oBACI,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD;6FAa2F,mBAAmB,QAAE,EAAC,IAAI,EAAE,WAAW,EAAC","sourcesContent":["import {Component, ChangeDetectionStrategy, input, InputSignal, TemplateRef, contentChild, Signal} from '@angular/core';\r\nimport {generateId} from '@jscrpt/common';\r\n\r\nimport {SelectOptionGroup} from '../../interfaces';\r\nimport {OptionGroupTemplate} from '../../directives';\r\n\r\n/**\r\n * Component used for option group in select component\r\n */\r\n@Component(\r\n{\r\n selector: 'ng-option-group',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OptionGroup implements SelectOptionGroup\r\n{\r\n //######################### public properties - implementation of SelectOptionGroup #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public index: number = 0;\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public template: Signal<TemplateRef<{$implicit: string}>|undefined|null> = contentChild(OptionGroupTemplate, {read: TemplateRef});\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public readonly id: string = generateId(10);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public text: InputSignal<string> = input.required();\r\n}\r\n"]}
@@ -429,7 +429,7 @@ export class Select {
429
429
  useFactory: () => new SelectPluginInstances(),
430
430
  },
431
431
  SelectBus,
432
- ], queries: [{ propertyName: "normalStateTemplate", first: true, predicate: NormalStateTemplate, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "optionTemplate", first: true, predicate: OptionTemplate, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "normalStateTagTemplate", first: true, predicate: NormalStateTagTemplate, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "availableOptions", predicate: Option, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "liveSearchContainer", first: true, predicate: ["liveSearch"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "interactionsContainer", first: true, predicate: ["interactions"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "optionsHandlerContainer", first: true, predicate: ["optionsHandler"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "positionerContainer", first: true, predicate: ["positioner"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "keyboardHandlerContainer", first: true, predicate: ["keyboardHandler"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "valueHandlerContainer", first: true, predicate: ["valueHandler"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "readonlyStateContainer", first: true, predicate: ["readonlyState"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "normalStateContainer", first: true, predicate: ["normalState"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "popupContainer", first: true, predicate: ["popup"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<ng-container #liveSearch />\r\n<ng-container #interactions />\r\n<ng-container #optionsHandler />\r\n<ng-container #positioner />\r\n<ng-container #keyboardHandler />\r\n<ng-container #valueHandler />\r\n\r\n<div [class]=\"selectOptions.cssClasses.visualContainer\">\r\n <ng-container #readonlyState />\r\n <ng-container #normalState />\r\n <ng-container #popup />\r\n</div>\r\n", styles: [":host\n{\n display: block;\n position: relative;\n}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
432
+ ], queries: [{ propertyName: "normalStateTemplate", first: true, predicate: NormalStateTemplate, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "optionTemplate", first: true, predicate: OptionTemplate, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "normalStateTagTemplate", first: true, predicate: NormalStateTagTemplate, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "availableOptions", predicate: Option, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "liveSearchContainer", first: true, predicate: ["liveSearch"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "interactionsContainer", first: true, predicate: ["interactions"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "optionsHandlerContainer", first: true, predicate: ["optionsHandler"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "positionerContainer", first: true, predicate: ["positioner"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "keyboardHandlerContainer", first: true, predicate: ["keyboardHandler"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "valueHandlerContainer", first: true, predicate: ["valueHandler"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "readonlyStateContainer", first: true, predicate: ["readonlyState"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "normalStateContainer", first: true, predicate: ["normalState"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "popupContainer", first: true, predicate: ["popup"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<ng-container #liveSearch />\r\n<ng-container #interactions />\r\n<ng-container #optionsHandler />\r\n<ng-container #positioner />\r\n<ng-container #keyboardHandler />\r\n<ng-container #valueHandler />\r\n\r\n<div [class]=\"selectOptions.cssClasses.visualContainer\">\r\n <ng-container #readonlyState />\r\n <ng-container #normalState />\r\n <ng-container #popup />\r\n</div>\r\n", styles: [":host\r\n{\r\n display: block;\r\n position: relative;\r\n}\r\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
433
433
  }
434
434
  __decorate([
435
435
  CopyOptionsAsSignal(),
@@ -445,7 +445,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
445
445
  useFactory: () => new SelectPluginInstances(),
446
446
  },
447
447
  SelectBus,
448
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container #liveSearch />\r\n<ng-container #interactions />\r\n<ng-container #optionsHandler />\r\n<ng-container #positioner />\r\n<ng-container #keyboardHandler />\r\n<ng-container #valueHandler />\r\n\r\n<div [class]=\"selectOptions.cssClasses.visualContainer\">\r\n <ng-container #readonlyState />\r\n <ng-container #normalState />\r\n <ng-container #popup />\r\n</div>\r\n", styles: [":host\n{\n display: block;\n position: relative;\n}\n"] }]
448
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container #liveSearch />\r\n<ng-container #interactions />\r\n<ng-container #optionsHandler />\r\n<ng-container #positioner />\r\n<ng-container #keyboardHandler />\r\n<ng-container #valueHandler />\r\n\r\n<div [class]=\"selectOptions.cssClasses.visualContainer\">\r\n <ng-container #readonlyState />\r\n <ng-container #normalState />\r\n <ng-container #popup />\r\n</div>\r\n", styles: [":host\r\n{\r\n display: block;\r\n position: relative;\r\n}\r\n"] }]
449
449
  }], ctorParameters: () => [{ type: i1.SelectPluginInstances }, { type: i1.SelectBus }, { type: undefined, decorators: [{
450
450
  type: Inject,
451
451
  args: [LOGGER]