@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.
- package/.claude/skills/angular-developer/SKILL.md +130 -130
- package/.claude/skills/angular-developer/references/angular-animations.md +160 -160
- package/.claude/skills/angular-developer/references/angular-aria.md +410 -410
- package/.claude/skills/angular-developer/references/cli.md +86 -86
- package/.claude/skills/angular-developer/references/component-harnesses.md +59 -59
- package/.claude/skills/angular-developer/references/component-styling.md +91 -91
- package/.claude/skills/angular-developer/references/components.md +117 -117
- package/.claude/skills/angular-developer/references/creating-services.md +97 -97
- package/.claude/skills/angular-developer/references/data-resolvers.md +69 -69
- package/.claude/skills/angular-developer/references/define-routes.md +67 -67
- package/.claude/skills/angular-developer/references/defining-providers.md +72 -72
- package/.claude/skills/angular-developer/references/di-fundamentals.md +120 -120
- package/.claude/skills/angular-developer/references/e2e-testing.md +66 -66
- package/.claude/skills/angular-developer/references/effects.md +83 -83
- package/.claude/skills/angular-developer/references/hierarchical-injectors.md +43 -43
- package/.claude/skills/angular-developer/references/host-elements.md +80 -80
- package/.claude/skills/angular-developer/references/injection-context.md +63 -63
- package/.claude/skills/angular-developer/references/inputs.md +101 -101
- package/.claude/skills/angular-developer/references/linked-signal.md +59 -59
- package/.claude/skills/angular-developer/references/loading-strategies.md +61 -61
- package/.claude/skills/angular-developer/references/mcp.md +106 -106
- package/.claude/skills/angular-developer/references/migrations.md +30 -30
- package/.claude/skills/angular-developer/references/navigate-to-routes.md +69 -69
- package/.claude/skills/angular-developer/references/outputs.md +86 -86
- package/.claude/skills/angular-developer/references/reactive-forms.md +122 -122
- package/.claude/skills/angular-developer/references/rendering-strategies.md +44 -44
- package/.claude/skills/angular-developer/references/resource.md +77 -77
- package/.claude/skills/angular-developer/references/route-animations.md +56 -56
- package/.claude/skills/angular-developer/references/route-guards.md +52 -52
- package/.claude/skills/angular-developer/references/router-lifecycle.md +45 -45
- package/.claude/skills/angular-developer/references/router-testing.md +87 -87
- package/.claude/skills/angular-developer/references/show-routes-with-outlets.md +68 -68
- package/.claude/skills/angular-developer/references/signal-forms.md +897 -897
- package/.claude/skills/angular-developer/references/signals-overview.md +94 -94
- package/.claude/skills/angular-developer/references/tailwind-css.md +69 -69
- package/.claude/skills/angular-developer/references/template-driven-forms.md +114 -114
- package/.claude/skills/angular-developer/references/testing-fundamentals.md +66 -66
- package/.github/instructions/typescript/code-conventions.md +7 -7
- package/.github/instructions/typescript/comments.md +40 -40
- package/.github/instructions/typescript/formatting.md +41 -41
- package/.github/instructions/typescript/naming-conventions.md +6 -6
- package/es2022/extensions/src/extensions/getSearch.js.map +1 -1
- package/es2022/extensions/src/extensions/getSelectedOption.js.map +1 -1
- package/es2022/extensions/src/extensions/getSelectedOptions.js.map +1 -1
- package/es2022/extensions/src/extensions/getValue.js.map +1 -1
- package/es2022/extensions/src/extensions/setReadonly.js.map +1 -1
- package/es2022/extensions/src/extensions/setValue.js.map +1 -1
- package/es2022/extensions/src/index.js.map +1 -1
- package/es2022/src/components/index.js.map +1 -1
- package/es2022/src/components/option/option.component.js.map +1 -1
- package/es2022/src/components/optionGroup/optgroup.component.js.map +1 -1
- package/es2022/src/components/select/select.component.js +2 -2
- package/es2022/src/components/select/select.component.js.map +1 -1
- package/es2022/src/decorators/index.js.map +1 -1
- package/es2022/src/decorators/mergeOptionsAsSignal/mergeOptionsAsSignal.decorator.js.map +1 -1
- package/es2022/src/directives/highlightInstance/highlightInstance.directive.js.map +1 -1
- package/es2022/src/directives/highlightSearch/highlightSearch.directive.js.map +1 -1
- package/es2022/src/directives/highlightText/highlightText.directive.js.map +1 -1
- package/es2022/src/directives/index.js.map +1 -1
- package/es2022/src/directives/normalStateTagTemplate/normalStateTagTemplate.directive.js.map +1 -1
- package/es2022/src/directives/normalStateTemplate/normalStateTemplate.directive.js.map +1 -1
- package/es2022/src/directives/optionGroupTemplate/optionGroupTemplate.directive.js.map +1 -1
- package/es2022/src/directives/optionTemplate/optionTemplate.directive.js.map +1 -1
- package/es2022/src/directives/selectAbsolute/selectAbsolute.directive.js.map +1 -1
- package/es2022/src/directives/selectControlValueAccessor/selectControlValueAccessor.directive.js.map +1 -1
- package/es2022/src/directives/selectEdit/selectEdit.directive.js.map +1 -1
- package/es2022/src/directives/selectFormControl/selectFormControl.directive.js.map +1 -1
- package/es2022/src/directives/selectMultipleKeepPopup/selectMultipleKeepPopup.directive.js.map +1 -1
- package/es2022/src/directives/selectNoCarret/selectNoCarret.directive.js.map +1 -1
- package/es2022/src/directives/selectPlaceholder/selectPlaceholder.directive.js.map +1 -1
- package/es2022/src/directives/withDirectAccess/withDirectAccess.directive.js.map +1 -1
- package/es2022/src/index.js.map +1 -1
- package/es2022/src/interfaces/index.js.map +1 -1
- package/es2022/src/interfaces/initState/initState.interface.js.map +1 -1
- package/es2022/src/interfaces/keyboardAction/keyboardAction.interface.js.map +1 -1
- package/es2022/src/interfaces/normalStateContext/normalStateContext.interface.js.map +1 -1
- package/es2022/src/interfaces/normalStateTagContext/normalStateTagContext.interface.js.map +1 -1
- package/es2022/src/interfaces/optionsGatherer/optionsGatherer.interface.js.map +1 -1
- package/es2022/src/interfaces/pluginDescription/pluginDescription.interface.js.map +1 -1
- package/es2022/src/interfaces/pluginOptions/pluginOptions.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/index.js.map +1 -1
- package/es2022/src/interfaces/plugins/interactions/interactions.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/keyboardHandler/keyboardHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/keyboardHandler/simpleKeyboardHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/liveSearch/editLiveSearch.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/liveSearch/filterLiveSearch.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/liveSearch/liveSearch.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/normalState/editNormalState.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/normalState/normalState.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/normalState/simpleNormalState.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/optionsHandler/optionsHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/optionsHandler/simpleOptionsHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/popup/popup.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/popup/simplePopup.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/positioner/commonPositioner.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/positioner/popoverPositioner.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/positioner/positioner.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/readonlyState/readonlyState.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/valueHandler/dynamicValueHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/valueHandler/valueHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/popupContext/popupContext.interface.js.map +1 -1
- package/es2022/src/interfaces/selectApi/selectApi.interface.js.map +1 -1
- package/es2022/src/interfaces/selectBusOptions/selectBusOptions.interface.js.map +1 -1
- package/es2022/src/interfaces/selectCssClasses/selectCssClasses.interface.js.map +1 -1
- package/es2022/src/interfaces/selectEvent/selectEvent.interface.js.map +1 -1
- package/es2022/src/interfaces/selectEvents/selectEvents.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOption/selectOption.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOptionGroup/selectOptionGroup.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOptionState/selectOptionState.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOptionStateSyntetic/selectOptionStateSyntetic.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOptions/selectOptions.interface.js.map +1 -1
- package/es2022/src/interfaces/selectPlugin/selectPlugin.interface.js.map +1 -1
- package/es2022/src/interfaces/selectPluginTypes/selectPluginTypes.interface.js.map +1 -1
- package/es2022/src/interfaces/tempValue/tempValue.interface.js.map +1 -1
- package/es2022/src/interfaces/templateGatherer/templateGatherer.interface.js.map +1 -1
- package/es2022/src/interfaces/visualPluginOptions/visualPluginOptions.interface.js.map +1 -1
- package/es2022/src/misc/classes/codeOptionsGatherer/codeOptionsGatherer.interface.js.map +1 -1
- package/es2022/src/misc/classes/index.js.map +1 -1
- package/es2022/src/misc/classes/selectBus/selectBus.js.map +1 -1
- package/es2022/src/misc/classes/selectPluginInstances/selectPluginInstances.js.map +1 -1
- package/es2022/src/misc/enums.js.map +1 -1
- package/es2022/src/misc/providers.js.map +1 -1
- package/es2022/src/misc/tokens.js.map +1 -1
- package/es2022/src/misc/types.js.map +1 -1
- package/es2022/src/misc/utils.js.map +1 -1
- package/es2022/src/modules/index.js.map +1 -1
- package/es2022/src/modules/select.module.js.map +1 -1
- package/es2022/src/pipes/addNewOption/addNewOption.pipe.js.map +1 -1
- package/es2022/src/pipes/displayOptionValue/displayOptionValue.pipe.js.map +1 -1
- package/es2022/src/pipes/displayValue/displayValue.pipe.js.map +1 -1
- package/es2022/src/pipes/getPlugin/getPlugin.pipe.js.map +1 -1
- package/es2022/src/pipes/groupedListOptions/groupedListOptions.pipe.js.map +1 -1
- package/es2022/src/pipes/hasValue/hasValue.pipe.js.map +1 -1
- package/es2022/src/pipes/index.js.map +1 -1
- package/es2022/src/pipes/optionCssClasses/optionCssClasses.pipe.js.map +1 -1
- package/es2022/src/plugins/index.js.map +1 -1
- package/es2022/src/plugins/interactions/index.js.map +1 -1
- package/es2022/src/plugins/interactions/simpleInteractions/simpleInteractions.component.js.map +1 -1
- package/es2022/src/plugins/keyboardHandler/index.js.map +1 -1
- package/es2022/src/plugins/keyboardHandler/simpleKeyboardHandler/simpleKeyboardHandler.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.js +2 -2
- package/es2022/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/filterLiveSearch/filterLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/index.js.map +1 -1
- package/es2022/src/plugins/liveSearch/noLiveSearch/noLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/normalState/editNormalState/editNormalState.component.js +3 -2
- package/es2022/src/plugins/normalState/editNormalState/editNormalState.component.js.map +1 -1
- package/es2022/src/plugins/normalState/index.js.map +1 -1
- package/es2022/src/plugins/normalState/simpleNormalState/simpleNormalState.component.js +5 -6
- package/es2022/src/plugins/normalState/simpleNormalState/simpleNormalState.component.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/index.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/noOptionsHandler/noOptionsHandler.component.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/optionsHandlerBase.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.js.map +1 -1
- package/es2022/src/plugins/popup/index.js.map +1 -1
- package/es2022/src/plugins/popup/simplePopup/simplePopup.component.js +2 -2
- package/es2022/src/plugins/popup/simplePopup/simplePopup.component.js.map +1 -1
- package/es2022/src/plugins/positioner/commonPositioner/commonPositioner.component.js.map +1 -1
- package/es2022/src/plugins/positioner/index.js.map +1 -1
- package/es2022/src/plugins/positioner/noPositioner/noPositioner.component.js.map +1 -1
- package/es2022/src/plugins/positioner/popoverPositioner/popoverPositioner.component.js.map +1 -1
- package/es2022/src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.js.map +1 -1
- package/es2022/src/plugins/valueHandler/index.js.map +1 -1
- package/es2022/src/plugins/valueHandler/staticValueHandler/staticValueHandler.component.js.map +1 -1
- package/package.json +125 -125
- package/src/components/select/select.component.css +5 -5
- package/src/interfaces/plugins/normalState/editNormalState.interface.d.ts +4 -0
- package/src/interfaces/plugins/normalState/editNormalState.interface.d.ts.map +1 -1
- package/src/interfaces/plugins/normalState/simpleNormalState.interface.d.ts +1 -5
- package/src/interfaces/plugins/normalState/simpleNormalState.interface.d.ts.map +1 -1
- package/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.html +19 -19
- package/src/plugins/normalState/editNormalState/editNormalState.component.d.ts.map +1 -1
- package/src/plugins/normalState/editNormalState/editNormalState.component.html +52 -50
- package/src/plugins/normalState/simpleNormalState/simpleNormalState.component.d.ts.map +1 -1
- package/src/plugins/normalState/simpleNormalState/simpleNormalState.component.html +36 -37
- package/src/plugins/popup/simplePopup/simplePopup.component.html +56 -56
- package/styles/components/_liveSearch.scss +32 -32
- package/styles/components/_normalState.scss +121 -116
- package/styles/components/_popup.scss +107 -107
- package/styles/components/_select.scss +14 -14
- package/styles/core/_defaultTheme.scss +105 -105
- package/styles/core/_misc.scss +34 -34
- package/styles/core/_mixins.scss +29 -29
- package/styles/index.scss +2 -2
- package/styles/themes/dark.scss +63 -63
- package/styles/themes/light.scss +64 -64
- 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]
|