@anglr/select 14.0.0 → 15.0.0
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/changelog.md +10 -0
- package/es2022/src/plugins/liveSearch/basic/basicLiveSearch.component.js +1 -1
- package/es2022/src/plugins/liveSearch/basic/basicLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/edit/editLiveSearch.component.js +1 -1
- package/es2022/src/plugins/liveSearch/edit/editLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/normalState/normalStateAbstract.component.js +1 -1
- package/es2022/src/plugins/normalState/normalStateAbstract.component.js.map +1 -1
- package/es2022/src/plugins/popup/popupAbstract.component.js +1 -1
- package/es2022/src/plugins/popup/popupAbstract.component.js.map +1 -1
- package/package.json +3 -3
- package/version.bak +1 -1
package/changelog.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Version 15.0.0 (2026-02-10)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- fixes missing value for localized select values
|
|
8
|
+
|
|
9
|
+
### BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
- minimal supported version of `@anglr/common` is `24.1.0`
|
|
12
|
+
|
|
3
13
|
## Version 14.0.0 (2026-02-09)
|
|
4
14
|
|
|
5
15
|
### BREAKING CHANGES
|
|
@@ -129,7 +129,7 @@ export class BasicLiveSearchComponent {
|
|
|
129
129
|
*/
|
|
130
130
|
_initTexts() {
|
|
131
131
|
Object.keys(this.options.texts).forEach(key => {
|
|
132
|
-
this.texts[key] = this._stringLocalization.get(this.options.texts[key])();
|
|
132
|
+
this.texts[key] = this._stringLocalization.get(this.options.texts[key], null, true)();
|
|
133
133
|
});
|
|
134
134
|
this._changeDetector.detectChanges();
|
|
135
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basicLiveSearch.component.js","sourceRoot":"","sources":["../../../../../src/plugins/liveSearch/basic/basicLiveSearch.component.ts","../../../../../src/plugins/liveSearch/basic/basicLiveSearch.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, ChangeDetectorRef, Inject, Optional, ElementRef, ViewChild, EventEmitter, OnDestroy} from '@angular/core';\nimport {STRING_LOCALIZATION, StringLocalization} from '@anglr/common';\nimport {extend} from '@jscrpt/common/extend';\nimport {Subscription} from 'rxjs';\n\nimport {BasicLiveSearchOptions, BasicLiveSearch} from './basicLiveSearch.interface';\nimport {NgSelectPlugin} from '../../../misc';\nimport {NgSelectPluginInstances} from '../../../components/select';\nimport {NG_SELECT_PLUGIN_INSTANCES} from '../../../components/select/types';\nimport {LiveSearchTexts} from '../liveSearch.interface';\nimport {LIVE_SEARCH_OPTIONS} from '../types';\nimport {Popup} from '../../popup';\nimport {POPUP} from '../../popup/types';\nimport {PluginBus} from '../../../misc/pluginBus/pluginBus';\n\n/**\n * Default options for live search\n * @internal\n */\nconst defaultOptions: BasicLiveSearchOptions =\n{\n cssClasses:\n {\n wrapperDiv: 'wrapper-div',\n input: 'form-control'\n },\n texts:\n {\n inputPlaceholder: 'Filter options'\n },\n keepSearchValue: false\n};\n\n/**\n * Component used for obtaining basic live search html element\n */\n@Component(\n{\n selector: 'ng-basic-live-search',\n templateUrl: 'basicLiveSearch.component.html',\n styleUrl: 'basicLiveSearch.component.css',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BasicLiveSearchComponent implements BasicLiveSearch, NgSelectPlugin<BasicLiveSearchOptions>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Popup used in NgSelect\n */\n protected _popup: Popup;\n\n /**\n * Subscription for changes of popup visibility\n */\n protected _visibilityChangeSubscription: Subscription;\n\n /**\n * Subscription for live search focus request\n */\n protected _liveSearchFocusSubscription: Subscription;\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: BasicLiveSearchOptions;\n\n //######################### public properties - implementation of BasicLiveSearch #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): BasicLiveSearchOptions\n {\n return this._options;\n }\n public set options(options: BasicLiveSearchOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n /**\n * HTML element that represents live search\n */\n public get liveSearchElement(): HTMLElement\n {\n return this.liveSearchElementChild.nativeElement;\n }\n\n /**\n * Current value of live search\n */\n public searchValue: string = null;\n\n /**\n * Occurs when current value of live search changes\n */\n public searchValueChange: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### public properties - template bindings #########################\n\n /**\n * Object containing available texts\n * @internal\n */\n public texts: LiveSearchTexts = {};\n\n //######################### public properties - children #########################\n\n /**\n * View child that represents live search element\n * @internal\n */\n @ViewChild('liveSearchElement')\n public liveSearchElementChild: ElementRef<HTMLElement>;\n\n /**\n * View child that represents input element\n * @internal\n */\n @ViewChild('inputElement')\n public inputElementChild: ElementRef<HTMLInputElement>;\n\n //######################### constructor #########################\n constructor(@Inject(NG_SELECT_PLUGIN_INSTANCES) @Optional() public ngSelectPlugins: NgSelectPluginInstances,\n @Optional() public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n @Inject(STRING_LOCALIZATION) protected _stringLocalization: StringLocalization,\n @Inject(LIVE_SEARCH_OPTIONS) @Optional() options?: BasicLiveSearchOptions)\n {\n this._options = extend(true, {}, defaultOptions, options);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._visibilityChangeSubscription?.unsubscribe();\n this._visibilityChangeSubscription = null;\n\n this._liveSearchFocusSubscription?.unsubscribe();\n this._liveSearchFocusSubscription = null;\n }\n\n //######################### public methods - implementation of BasicLiveSearch #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n const popup = this.ngSelectPlugins[POPUP] as Popup;\n\n if(this._popup && this._popup != popup)\n {\n this._visibilityChangeSubscription.unsubscribe();\n this._visibilityChangeSubscription = null;\n\n this._popup = null;\n }\n\n if(!this._popup)\n {\n this._popup = popup;\n\n this._visibilityChangeSubscription = this._popup.visibilityChange.subscribe(() =>\n {\n if(!this.options.keepSearchValue)\n {\n this.handleInput('');\n\n this._changeDetector.detectChanges();\n }\n });\n }\n\n if(!this._liveSearchFocusSubscription)\n {\n this._liveSearchFocusSubscription = this.pluginBus.liveSearchFocus.subscribe(() =>\n {\n this.inputElementChild?.nativeElement.focus();\n });\n }\n\n this._initTexts();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Handle input value\n * @param value - Value of input\n * @internal\n */\n public handleInput(value: string)\n {\n this.searchValue = value;\n this.searchValueChange.emit();\n }\n\n //######################### protected methods #########################\n\n /**\n * Initialize texts\n */\n protected _initTexts()\n {\n Object.keys(this.options.texts).forEach(key =>\n {\n this.texts[key as keyof LiveSearchTexts] = this._stringLocalization.get(this.options.texts[key as keyof LiveSearchTexts])();\n });\n\n this._changeDetector.detectChanges();\n }\n}\n","<div style=\"display: none;\">\r\n <div #liveSearchElement [ngClass]=\"options?.cssClasses?.wrapperDiv\">\r\n <input #inputElement [ngClass]=\"options?.cssClasses?.input\" type=\"text\" (input)=\"handleInput($any($event.target).value)\" [value]=\"searchValue\" placeholder=\"{{texts?.inputPlaceholder}}\">\r\n </div>\r\n</div>"]}
|
|
1
|
+
{"version":3,"file":"basicLiveSearch.component.js","sourceRoot":"","sources":["../../../../../src/plugins/liveSearch/basic/basicLiveSearch.component.ts","../../../../../src/plugins/liveSearch/basic/basicLiveSearch.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, ChangeDetectorRef, Inject, Optional, ElementRef, ViewChild, EventEmitter, OnDestroy} from '@angular/core';\nimport {STRING_LOCALIZATION, StringLocalization} from '@anglr/common';\nimport {extend} from '@jscrpt/common/extend';\nimport {Subscription} from 'rxjs';\n\nimport {BasicLiveSearchOptions, BasicLiveSearch} from './basicLiveSearch.interface';\nimport {NgSelectPlugin} from '../../../misc';\nimport {NgSelectPluginInstances} from '../../../components/select';\nimport {NG_SELECT_PLUGIN_INSTANCES} from '../../../components/select/types';\nimport {LiveSearchTexts} from '../liveSearch.interface';\nimport {LIVE_SEARCH_OPTIONS} from '../types';\nimport {Popup} from '../../popup';\nimport {POPUP} from '../../popup/types';\nimport {PluginBus} from '../../../misc/pluginBus/pluginBus';\n\n/**\n * Default options for live search\n * @internal\n */\nconst defaultOptions: BasicLiveSearchOptions =\n{\n cssClasses:\n {\n wrapperDiv: 'wrapper-div',\n input: 'form-control'\n },\n texts:\n {\n inputPlaceholder: 'Filter options'\n },\n keepSearchValue: false\n};\n\n/**\n * Component used for obtaining basic live search html element\n */\n@Component(\n{\n selector: 'ng-basic-live-search',\n templateUrl: 'basicLiveSearch.component.html',\n styleUrl: 'basicLiveSearch.component.css',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BasicLiveSearchComponent implements BasicLiveSearch, NgSelectPlugin<BasicLiveSearchOptions>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Popup used in NgSelect\n */\n protected _popup: Popup;\n\n /**\n * Subscription for changes of popup visibility\n */\n protected _visibilityChangeSubscription: Subscription;\n\n /**\n * Subscription for live search focus request\n */\n protected _liveSearchFocusSubscription: Subscription;\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: BasicLiveSearchOptions;\n\n //######################### public properties - implementation of BasicLiveSearch #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): BasicLiveSearchOptions\n {\n return this._options;\n }\n public set options(options: BasicLiveSearchOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n /**\n * HTML element that represents live search\n */\n public get liveSearchElement(): HTMLElement\n {\n return this.liveSearchElementChild.nativeElement;\n }\n\n /**\n * Current value of live search\n */\n public searchValue: string = null;\n\n /**\n * Occurs when current value of live search changes\n */\n public searchValueChange: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### public properties - template bindings #########################\n\n /**\n * Object containing available texts\n * @internal\n */\n public texts: LiveSearchTexts = {};\n\n //######################### public properties - children #########################\n\n /**\n * View child that represents live search element\n * @internal\n */\n @ViewChild('liveSearchElement')\n public liveSearchElementChild: ElementRef<HTMLElement>;\n\n /**\n * View child that represents input element\n * @internal\n */\n @ViewChild('inputElement')\n public inputElementChild: ElementRef<HTMLInputElement>;\n\n //######################### constructor #########################\n constructor(@Inject(NG_SELECT_PLUGIN_INSTANCES) @Optional() public ngSelectPlugins: NgSelectPluginInstances,\n @Optional() public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n @Inject(STRING_LOCALIZATION) protected _stringLocalization: StringLocalization,\n @Inject(LIVE_SEARCH_OPTIONS) @Optional() options?: BasicLiveSearchOptions)\n {\n this._options = extend(true, {}, defaultOptions, options);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._visibilityChangeSubscription?.unsubscribe();\n this._visibilityChangeSubscription = null;\n\n this._liveSearchFocusSubscription?.unsubscribe();\n this._liveSearchFocusSubscription = null;\n }\n\n //######################### public methods - implementation of BasicLiveSearch #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n const popup = this.ngSelectPlugins[POPUP] as Popup;\n\n if(this._popup && this._popup != popup)\n {\n this._visibilityChangeSubscription.unsubscribe();\n this._visibilityChangeSubscription = null;\n\n this._popup = null;\n }\n\n if(!this._popup)\n {\n this._popup = popup;\n\n this._visibilityChangeSubscription = this._popup.visibilityChange.subscribe(() =>\n {\n if(!this.options.keepSearchValue)\n {\n this.handleInput('');\n\n this._changeDetector.detectChanges();\n }\n });\n }\n\n if(!this._liveSearchFocusSubscription)\n {\n this._liveSearchFocusSubscription = this.pluginBus.liveSearchFocus.subscribe(() =>\n {\n this.inputElementChild?.nativeElement.focus();\n });\n }\n\n this._initTexts();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Handle input value\n * @param value - Value of input\n * @internal\n */\n public handleInput(value: string)\n {\n this.searchValue = value;\n this.searchValueChange.emit();\n }\n\n //######################### protected methods #########################\n\n /**\n * Initialize texts\n */\n protected _initTexts()\n {\n Object.keys(this.options.texts).forEach(key =>\n {\n this.texts[key as keyof LiveSearchTexts] = this._stringLocalization.get(this.options.texts[key as keyof LiveSearchTexts], null, true)();\n });\n\n this._changeDetector.detectChanges();\n }\n}\n","<div style=\"display: none;\">\r\n <div #liveSearchElement [ngClass]=\"options?.cssClasses?.wrapperDiv\">\r\n <input #inputElement [ngClass]=\"options?.cssClasses?.input\" type=\"text\" (input)=\"handleInput($any($event.target).value)\" [value]=\"searchValue\" placeholder=\"{{texts?.inputPlaceholder}}\">\r\n </div>\r\n</div>"]}
|
|
@@ -259,7 +259,7 @@ export class EditLiveSearchComponent {
|
|
|
259
259
|
*/
|
|
260
260
|
_initTexts() {
|
|
261
261
|
Object.keys(this.options.texts).forEach(key => {
|
|
262
|
-
this.texts[key] = this._stringLocalization.get(this.options.texts[key])();
|
|
262
|
+
this.texts[key] = this._stringLocalization.get(this.options.texts[key], null, true)();
|
|
263
263
|
});
|
|
264
264
|
this._changeDetector.detectChanges();
|
|
265
265
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editLiveSearch.component.js","sourceRoot":"","sources":["../../../../../src/plugins/liveSearch/edit/editLiveSearch.component.ts","../../../../../src/plugins/liveSearch/edit/editLiveSearch.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, ChangeDetectorRef, Inject, Optional, ElementRef, ViewChild, EventEmitter, OnDestroy} from '@angular/core';\nimport {STRING_LOCALIZATION, StringLocalization} from '@anglr/common';\nimport {isPresent} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\nimport {Subscription} from 'rxjs';\n\nimport {EditLiveSearchOptions, EditLiveSearch} from './editLiveSearch.interface';\nimport {NgSelectPlugin, OptionsGatherer} from '../../../misc';\nimport {NgSelectPluginInstances} from '../../../components/select';\nimport {NG_SELECT_PLUGIN_INSTANCES} from '../../../components/select/types';\nimport {LIVE_SEARCH_OPTIONS} from '../types';\nimport {ValueHandler} from '../../valueHandler';\nimport {VALUE_HANDLER} from '../../valueHandler/types';\nimport {Popup} from '../../popup';\nimport {POPUP} from '../../popup/types';\nimport {ɵNgSelectOption} from '../../../components/option';\nimport {PluginBus} from '../../../misc/pluginBus/pluginBus';\nimport {LiveSearchTexts} from '../liveSearch.interface';\n\n/**\n * Default options for live search\n * @internal\n */\nconst defaultOptions: EditLiveSearchOptions =\n{\n cssClasses:\n {\n wrapperDiv: 'edit-wrapper-div',\n input: 'edit-control'\n },\n texts:\n {\n inputPlaceholder: 'Select item'\n\n },\n keepSearchValue: false,\n nonExistingCancel: false,\n emptyCancel: false\n};\n\n/**\n * Component used for obtaining edit live search html element\n */\n@Component(\n{\n selector: 'ng-edit-live-search',\n templateUrl: 'editLiveSearch.component.html',\n styleUrl: 'editLiveSearch.component.css',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditLiveSearchComponent implements EditLiveSearch, NgSelectPlugin<EditLiveSearchOptions>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Popup plugin used within `NgSelect`\n */\n protected _popup: Popup;\n\n /**\n * Value handler plugin used within `NgSelect`\n */\n protected _valueHandler: ValueHandler;\n\n /**\n * Instance of previous options gatherer, that is used for obtaining available options\n */\n protected _optionsGatherer: OptionsGatherer;\n\n /**\n * Subscription for changes of options in options gatherer\n */\n protected _optionsChangeSubscription: Subscription;\n\n /**\n * Subscription for changes of selected value\n */\n protected _valueChangedSubscription: Subscription;\n\n /**\n * Subscription for live search focus request\n */\n protected _liveSearchFocusSubscription: Subscription;\n\n /**\n * Subscription for update displayed value request\n */\n protected _updateDisplayedValueSubscription: Subscription;\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: EditLiveSearchOptions;\n\n //######################### protected properties #########################\n\n /**\n * Gets currently available options\n */\n protected get availableOptions(): ɵNgSelectOption[]\n {\n return this.pluginBus.selectOptions.optionsGatherer.availableOptions;\n }\n\n //######################### public properties - implementation of EditLiveSearch #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): EditLiveSearchOptions\n {\n return this._options;\n }\n public set options(options: EditLiveSearchOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n /**\n * HTML element that represents live search\n */\n public get liveSearchElement(): HTMLElement\n {\n return this.liveSearchElementChild.nativeElement;\n }\n\n /**\n * Current value of live search\n */\n public searchValue: string = null;\n\n /**\n * Occurs when current value of live search changes\n */\n public searchValueChange: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### public properties - template bindings #########################\n\n /**\n * Current value that is displayed\n * @internal\n */\n public searchValueDisplayed: string = null;\n\n /**\n * Object containing available texts\n * @internal\n */\n public texts: LiveSearchTexts = {};\n\n //######################### public properties - children #########################\n\n /**\n * View child that represents live search element\n * @internal\n */\n @ViewChild('liveSearchElement')\n public liveSearchElementChild: ElementRef<HTMLElement>;\n\n /**\n * View child that represents input element\n * @internal\n */\n @ViewChild('inputElement')\n public inputElementChild: ElementRef<HTMLInputElement>;\n\n //######################### constructor #########################\n constructor(@Inject(NG_SELECT_PLUGIN_INSTANCES) @Optional() public ngSelectPlugins: NgSelectPluginInstances,\n @Optional() public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n @Inject(STRING_LOCALIZATION) protected _stringLocalization: StringLocalization,\n @Inject(LIVE_SEARCH_OPTIONS) @Optional() options?: EditLiveSearchOptions)\n {\n this._options = extend(true, {}, defaultOptions, options);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._optionsChangeSubscription?.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._valueChangedSubscription?.unsubscribe();\n this._valueChangedSubscription = null;\n\n this._liveSearchFocusSubscription?.unsubscribe();\n this._liveSearchFocusSubscription = null;\n\n this._updateDisplayedValueSubscription?.unsubscribe();\n this._updateDisplayedValueSubscription = null;\n }\n\n //######################### public methods - implementation of EditLiveSearch #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n if(this._optionsGatherer && this._optionsGatherer != this.pluginBus.selectOptions.optionsGatherer)\n {\n this._optionsChangeSubscription.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._optionsGatherer = null;\n }\n\n if(!this._optionsGatherer)\n {\n this._optionsGatherer = this.pluginBus.selectOptions.optionsGatherer;\n\n this._optionsChangeSubscription = this._optionsGatherer.availableOptionsChange.subscribe(() =>\n {\n //do not change active if active is visible\n if(!this.pluginBus.selectOptions.optionsGatherer.availableOptions.find((option: ɵNgSelectOption) => option.active))\n {\n //only when input is filled at least with one char\n if(this.searchValue)\n {\n const option: ɵNgSelectOption = this.pluginBus.selectOptions.optionsGatherer.availableOptions.find(itm => this.pluginBus.selectOptions.liveSearchFilter(this.searchValue, this.pluginBus.selectOptions.normalizer)(itm));\n\n if(option)\n {\n this.pluginBus.selectOptions.optionsGatherer.options.forEach((option: ɵNgSelectOption) => option.active = false);\n option.active = true;\n this._popup.invalidateVisuals();\n }\n }\n //select first\n else\n {\n this._activateSelectedOrFirst();\n }\n }\n });\n }\n\n const popup = this.ngSelectPlugins[POPUP] as Popup;\n\n if(this._popup && this._popup != popup)\n {\n this._popup = null;\n }\n\n if(!this._popup)\n {\n this._popup = popup;\n }\n\n if(!this._liveSearchFocusSubscription)\n {\n this._liveSearchFocusSubscription = this.pluginBus.liveSearchFocus.subscribe(() =>\n {\n this.inputElementChild?.nativeElement.focus();\n });\n }\n\n if(!this._updateDisplayedValueSubscription)\n {\n this._updateDisplayedValueSubscription = this.pluginBus.updateDisplayedValue.subscribe(() =>\n {\n this.handleBlur();\n });\n }\n\n const valueHandler = this.ngSelectPlugins[VALUE_HANDLER] as ValueHandler;\n\n if(this._valueHandler && this._valueHandler != valueHandler)\n {\n this._valueChangedSubscription.unsubscribe();\n this._valueChangedSubscription = null;\n\n this._valueHandler = null;\n }\n\n if(!this._valueHandler)\n {\n this._valueHandler = valueHandler;\n\n this._valueChangedSubscription = this._valueHandler.valueChange.subscribe(() =>\n {\n const selected = this._valueHandler.selectedOptions;\n\n if(!selected)\n {\n this.searchValueDisplayed = '';\n this.handleInput('');\n this._changeDetector.detectChanges();\n\n return;\n }\n\n //reset filtering of available options\n this.handleInput(null);\n\n if(Array.isArray(selected))\n {\n this.searchValueDisplayed = '';\n this.inputElementChild?.nativeElement.focus();\n this._changeDetector.detectChanges();\n }\n else\n {\n //set selected into live search\n this.searchValueDisplayed = selected.text;\n this._changeDetector.detectChanges();\n\n //select current text\n this.inputElementChild?.nativeElement.select();\n }\n });\n }\n\n this._initTexts();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Handle input value\n * @param value - Value of input\n * @param inputChange - Indication that change was by input event of input\n * @internal\n */\n public handleInput(value: string, inputChange: boolean = false)\n {\n this.searchValue = value;\n this.searchValueChange.emit();\n\n if(inputChange)\n {\n this.pluginBus.showHidePopup.emit(true);\n this.searchValueDisplayed = value;\n\n //single value select\n if(!this.pluginBus.selectOptions.multiple)\n {\n //cancel value\n if(this._options.nonExistingCancel)\n {\n this._valueHandler.setValue(null);\n }\n //empty string cancels value\n else if(this._options.emptyCancel && isPresent(value) && !value.length)\n {\n this._valueHandler.setValue(null);\n }\n //otherwise keep last value\n }\n }\n }\n\n /**\n * Handles focus event\n * @param element - Element that got focus\n * @param show - Indication whether show popup\n * @internal\n */\n public handleFocus(element: HTMLInputElement, show: boolean = false)\n {\n element.select();\n\n this._activateSelectedOrFirst();\n\n if(show)\n {\n this.pluginBus.showHidePopup.emit(true);\n }\n\n this.pluginBus.focus.emit();\n }\n\n /**\n * Handles blur of live search\n */\n public handleBlur()\n {\n //not multiple and selected value\n if(!this.pluginBus.selectOptions.multiple)\n {\n //use selected text\n if(this._valueHandler.selectedOptions && !Array.isArray(this._valueHandler.selectedOptions))\n {\n this.searchValueDisplayed = this._valueHandler.selectedOptions.text;\n }\n //reset text\n else\n {\n this.searchValueDisplayed = '';\n }\n }\n //reset text\n else\n {\n this.searchValueDisplayed = '';\n }\n\n //reset available options\n this.searchValue = null;\n this.searchValueChange.emit();\n this._changeDetector.detectChanges();\n }\n\n //######################### protected methods #########################\n\n /**\n * Initialize texts\n */\n protected _initTexts()\n {\n Object.keys(this.options.texts).forEach(key =>\n {\n this.texts[key as keyof LiveSearchTexts] = this._stringLocalization.get(this.options.texts[key as keyof LiveSearchTexts])();\n });\n\n this._changeDetector.detectChanges();\n }\n\n /**\n * Activates first available option or selected option\n */\n protected _activateSelectedOrFirst()\n {\n const activeOption = this.availableOptions.find(itm => itm.active);\n const selectedOptions = this.availableOptions.filter(itm => itm.selected);\n\n //nothing active, nothing selected\n if(!activeOption && !selectedOptions.length)\n {\n const first = this.availableOptions[0];\n\n if(first)\n {\n first.active = true;\n }\n }\n //nothing active\n else if(!activeOption)\n {\n //last selected as sactive\n selectedOptions[selectedOptions.length - 1].active = true;\n }\n }\n}\n","<div style=\"display: none;\">\r\n <div #liveSearchElement [ngClass]=\"options?.cssClasses?.wrapperDiv\">\r\n <input #inputElement\r\n [ngClass]=\"options?.cssClasses?.input\"\r\n type=\"text\"\r\n [value]=\"searchValueDisplayed\"\r\n (input)=\"handleInput($any($event.target).value, true)\"\r\n (focus)=\"handleFocus($any($event.target))\"\r\n (click)=\"handleFocus($any($event.target), true)\"\r\n placeholder=\"{{texts?.inputPlaceholder}}\"\r\n [disabled]=\"pluginBus?.selectOptions.readonly\">\r\n </div>\r\n</div>"]}
|
|
1
|
+
{"version":3,"file":"editLiveSearch.component.js","sourceRoot":"","sources":["../../../../../src/plugins/liveSearch/edit/editLiveSearch.component.ts","../../../../../src/plugins/liveSearch/edit/editLiveSearch.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, ChangeDetectorRef, Inject, Optional, ElementRef, ViewChild, EventEmitter, OnDestroy} from '@angular/core';\nimport {STRING_LOCALIZATION, StringLocalization} from '@anglr/common';\nimport {isPresent} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\nimport {Subscription} from 'rxjs';\n\nimport {EditLiveSearchOptions, EditLiveSearch} from './editLiveSearch.interface';\nimport {NgSelectPlugin, OptionsGatherer} from '../../../misc';\nimport {NgSelectPluginInstances} from '../../../components/select';\nimport {NG_SELECT_PLUGIN_INSTANCES} from '../../../components/select/types';\nimport {LIVE_SEARCH_OPTIONS} from '../types';\nimport {ValueHandler} from '../../valueHandler';\nimport {VALUE_HANDLER} from '../../valueHandler/types';\nimport {Popup} from '../../popup';\nimport {POPUP} from '../../popup/types';\nimport {ɵNgSelectOption} from '../../../components/option';\nimport {PluginBus} from '../../../misc/pluginBus/pluginBus';\nimport {LiveSearchTexts} from '../liveSearch.interface';\n\n/**\n * Default options for live search\n * @internal\n */\nconst defaultOptions: EditLiveSearchOptions =\n{\n cssClasses:\n {\n wrapperDiv: 'edit-wrapper-div',\n input: 'edit-control'\n },\n texts:\n {\n inputPlaceholder: 'Select item'\n\n },\n keepSearchValue: false,\n nonExistingCancel: false,\n emptyCancel: false\n};\n\n/**\n * Component used for obtaining edit live search html element\n */\n@Component(\n{\n selector: 'ng-edit-live-search',\n templateUrl: 'editLiveSearch.component.html',\n styleUrl: 'editLiveSearch.component.css',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditLiveSearchComponent implements EditLiveSearch, NgSelectPlugin<EditLiveSearchOptions>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Popup plugin used within `NgSelect`\n */\n protected _popup: Popup;\n\n /**\n * Value handler plugin used within `NgSelect`\n */\n protected _valueHandler: ValueHandler;\n\n /**\n * Instance of previous options gatherer, that is used for obtaining available options\n */\n protected _optionsGatherer: OptionsGatherer;\n\n /**\n * Subscription for changes of options in options gatherer\n */\n protected _optionsChangeSubscription: Subscription;\n\n /**\n * Subscription for changes of selected value\n */\n protected _valueChangedSubscription: Subscription;\n\n /**\n * Subscription for live search focus request\n */\n protected _liveSearchFocusSubscription: Subscription;\n\n /**\n * Subscription for update displayed value request\n */\n protected _updateDisplayedValueSubscription: Subscription;\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: EditLiveSearchOptions;\n\n //######################### protected properties #########################\n\n /**\n * Gets currently available options\n */\n protected get availableOptions(): ɵNgSelectOption[]\n {\n return this.pluginBus.selectOptions.optionsGatherer.availableOptions;\n }\n\n //######################### public properties - implementation of EditLiveSearch #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): EditLiveSearchOptions\n {\n return this._options;\n }\n public set options(options: EditLiveSearchOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n /**\n * HTML element that represents live search\n */\n public get liveSearchElement(): HTMLElement\n {\n return this.liveSearchElementChild.nativeElement;\n }\n\n /**\n * Current value of live search\n */\n public searchValue: string = null;\n\n /**\n * Occurs when current value of live search changes\n */\n public searchValueChange: EventEmitter<void> = new EventEmitter<void>();\n\n //######################### public properties - template bindings #########################\n\n /**\n * Current value that is displayed\n * @internal\n */\n public searchValueDisplayed: string = null;\n\n /**\n * Object containing available texts\n * @internal\n */\n public texts: LiveSearchTexts = {};\n\n //######################### public properties - children #########################\n\n /**\n * View child that represents live search element\n * @internal\n */\n @ViewChild('liveSearchElement')\n public liveSearchElementChild: ElementRef<HTMLElement>;\n\n /**\n * View child that represents input element\n * @internal\n */\n @ViewChild('inputElement')\n public inputElementChild: ElementRef<HTMLInputElement>;\n\n //######################### constructor #########################\n constructor(@Inject(NG_SELECT_PLUGIN_INSTANCES) @Optional() public ngSelectPlugins: NgSelectPluginInstances,\n @Optional() public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n @Inject(STRING_LOCALIZATION) protected _stringLocalization: StringLocalization,\n @Inject(LIVE_SEARCH_OPTIONS) @Optional() options?: EditLiveSearchOptions)\n {\n this._options = extend(true, {}, defaultOptions, options);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._optionsChangeSubscription?.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._valueChangedSubscription?.unsubscribe();\n this._valueChangedSubscription = null;\n\n this._liveSearchFocusSubscription?.unsubscribe();\n this._liveSearchFocusSubscription = null;\n\n this._updateDisplayedValueSubscription?.unsubscribe();\n this._updateDisplayedValueSubscription = null;\n }\n\n //######################### public methods - implementation of EditLiveSearch #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n if(this._optionsGatherer && this._optionsGatherer != this.pluginBus.selectOptions.optionsGatherer)\n {\n this._optionsChangeSubscription.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._optionsGatherer = null;\n }\n\n if(!this._optionsGatherer)\n {\n this._optionsGatherer = this.pluginBus.selectOptions.optionsGatherer;\n\n this._optionsChangeSubscription = this._optionsGatherer.availableOptionsChange.subscribe(() =>\n {\n //do not change active if active is visible\n if(!this.pluginBus.selectOptions.optionsGatherer.availableOptions.find((option: ɵNgSelectOption) => option.active))\n {\n //only when input is filled at least with one char\n if(this.searchValue)\n {\n const option: ɵNgSelectOption = this.pluginBus.selectOptions.optionsGatherer.availableOptions.find(itm => this.pluginBus.selectOptions.liveSearchFilter(this.searchValue, this.pluginBus.selectOptions.normalizer)(itm));\n\n if(option)\n {\n this.pluginBus.selectOptions.optionsGatherer.options.forEach((option: ɵNgSelectOption) => option.active = false);\n option.active = true;\n this._popup.invalidateVisuals();\n }\n }\n //select first\n else\n {\n this._activateSelectedOrFirst();\n }\n }\n });\n }\n\n const popup = this.ngSelectPlugins[POPUP] as Popup;\n\n if(this._popup && this._popup != popup)\n {\n this._popup = null;\n }\n\n if(!this._popup)\n {\n this._popup = popup;\n }\n\n if(!this._liveSearchFocusSubscription)\n {\n this._liveSearchFocusSubscription = this.pluginBus.liveSearchFocus.subscribe(() =>\n {\n this.inputElementChild?.nativeElement.focus();\n });\n }\n\n if(!this._updateDisplayedValueSubscription)\n {\n this._updateDisplayedValueSubscription = this.pluginBus.updateDisplayedValue.subscribe(() =>\n {\n this.handleBlur();\n });\n }\n\n const valueHandler = this.ngSelectPlugins[VALUE_HANDLER] as ValueHandler;\n\n if(this._valueHandler && this._valueHandler != valueHandler)\n {\n this._valueChangedSubscription.unsubscribe();\n this._valueChangedSubscription = null;\n\n this._valueHandler = null;\n }\n\n if(!this._valueHandler)\n {\n this._valueHandler = valueHandler;\n\n this._valueChangedSubscription = this._valueHandler.valueChange.subscribe(() =>\n {\n const selected = this._valueHandler.selectedOptions;\n\n if(!selected)\n {\n this.searchValueDisplayed = '';\n this.handleInput('');\n this._changeDetector.detectChanges();\n\n return;\n }\n\n //reset filtering of available options\n this.handleInput(null);\n\n if(Array.isArray(selected))\n {\n this.searchValueDisplayed = '';\n this.inputElementChild?.nativeElement.focus();\n this._changeDetector.detectChanges();\n }\n else\n {\n //set selected into live search\n this.searchValueDisplayed = selected.text;\n this._changeDetector.detectChanges();\n\n //select current text\n this.inputElementChild?.nativeElement.select();\n }\n });\n }\n\n this._initTexts();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n //######################### public methods - template bindings #########################\n\n /**\n * Handle input value\n * @param value - Value of input\n * @param inputChange - Indication that change was by input event of input\n * @internal\n */\n public handleInput(value: string, inputChange: boolean = false)\n {\n this.searchValue = value;\n this.searchValueChange.emit();\n\n if(inputChange)\n {\n this.pluginBus.showHidePopup.emit(true);\n this.searchValueDisplayed = value;\n\n //single value select\n if(!this.pluginBus.selectOptions.multiple)\n {\n //cancel value\n if(this._options.nonExistingCancel)\n {\n this._valueHandler.setValue(null);\n }\n //empty string cancels value\n else if(this._options.emptyCancel && isPresent(value) && !value.length)\n {\n this._valueHandler.setValue(null);\n }\n //otherwise keep last value\n }\n }\n }\n\n /**\n * Handles focus event\n * @param element - Element that got focus\n * @param show - Indication whether show popup\n * @internal\n */\n public handleFocus(element: HTMLInputElement, show: boolean = false)\n {\n element.select();\n\n this._activateSelectedOrFirst();\n\n if(show)\n {\n this.pluginBus.showHidePopup.emit(true);\n }\n\n this.pluginBus.focus.emit();\n }\n\n /**\n * Handles blur of live search\n */\n public handleBlur()\n {\n //not multiple and selected value\n if(!this.pluginBus.selectOptions.multiple)\n {\n //use selected text\n if(this._valueHandler.selectedOptions && !Array.isArray(this._valueHandler.selectedOptions))\n {\n this.searchValueDisplayed = this._valueHandler.selectedOptions.text;\n }\n //reset text\n else\n {\n this.searchValueDisplayed = '';\n }\n }\n //reset text\n else\n {\n this.searchValueDisplayed = '';\n }\n\n //reset available options\n this.searchValue = null;\n this.searchValueChange.emit();\n this._changeDetector.detectChanges();\n }\n\n //######################### protected methods #########################\n\n /**\n * Initialize texts\n */\n protected _initTexts()\n {\n Object.keys(this.options.texts).forEach(key =>\n {\n this.texts[key as keyof LiveSearchTexts] = this._stringLocalization.get(this.options.texts[key as keyof LiveSearchTexts], null, true)();\n });\n\n this._changeDetector.detectChanges();\n }\n\n /**\n * Activates first available option or selected option\n */\n protected _activateSelectedOrFirst()\n {\n const activeOption = this.availableOptions.find(itm => itm.active);\n const selectedOptions = this.availableOptions.filter(itm => itm.selected);\n\n //nothing active, nothing selected\n if(!activeOption && !selectedOptions.length)\n {\n const first = this.availableOptions[0];\n\n if(first)\n {\n first.active = true;\n }\n }\n //nothing active\n else if(!activeOption)\n {\n //last selected as sactive\n selectedOptions[selectedOptions.length - 1].active = true;\n }\n }\n}\n","<div style=\"display: none;\">\r\n <div #liveSearchElement [ngClass]=\"options?.cssClasses?.wrapperDiv\">\r\n <input #inputElement\r\n [ngClass]=\"options?.cssClasses?.input\"\r\n type=\"text\"\r\n [value]=\"searchValueDisplayed\"\r\n (input)=\"handleInput($any($event.target).value, true)\"\r\n (focus)=\"handleFocus($any($event.target))\"\r\n (click)=\"handleFocus($any($event.target), true)\"\r\n placeholder=\"{{texts?.inputPlaceholder}}\"\r\n [disabled]=\"pluginBus?.selectOptions.readonly\">\r\n </div>\r\n</div>"]}
|
|
@@ -76,7 +76,7 @@ export class NormalStateAbstractComponent {
|
|
|
76
76
|
*/
|
|
77
77
|
_initTexts() {
|
|
78
78
|
Object.keys(this.options.texts).forEach(key => {
|
|
79
|
-
this.texts[key] = this._stringLocalization.get(this.options.texts[key])();
|
|
79
|
+
this.texts[key] = this._stringLocalization.get(this.options.texts[key], null, true)();
|
|
80
80
|
});
|
|
81
81
|
this._changeDetector.detectChanges();
|
|
82
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalStateAbstract.component.js","sourceRoot":"","sources":["../../../../src/plugins/normalState/normalStateAbstract.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,UAAU,EAAa,SAAS,EAAC,MAAM,eAAe,CAAC;AAElF,OAAO,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAI7C,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AAGzD,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;;;AAEpD;;GAEG;AAEH,MAAM,OAAgB,4BAA4B;IAc9C,uGAAuG;IAEvG;;OAEG;IACH,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAW,OAAO,CAAC,OAAiB;QAEhC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAgBD,iEAAiE;IACjE,YAAmB,eAAwC,EACxC,SAAoB,EACpB,aAAyB,EACtB,eAAkC,EAClC,mBAAuC;QAJ1C,oBAAe,GAAf,eAAe,CAAyB;QACxC,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAY;QACtB,oBAAe,GAAf,eAAe,CAAmB;QAClC,wBAAmB,GAAnB,mBAAmB,CAAoB;QAtC7D;;WAEG;QACO,eAAU,GAAY,KAAK,CAAC;QAgBtC,2FAA2F;QAE3F;;;WAGG;QACI,UAAK,GAAqB,EAAE,CAAC;IAepC,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,oGAAoG;IAEpG;;OAEG;IACI,UAAU;QAEb,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAiB,CAAC;QAEzE,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,YAAY,EACzD,CAAC;YACG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAG,CAAC,IAAI,CAAC,YAAY,EACrB,CAAC;YACG,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,WAAW;IAElB,CAAC;IAED;;OAEG;IACI,iBAAiB;QAEpB,IAAG,CAAC,IAAI,CAAC,UAAU,EACnB,CAAC;YACG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC;IACL,CAAC;IAED,uEAAuE;IAEvE;;OAEG;IACO,UAAU;QAEhB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAE1C,IAAI,CAAC,KAAK,CAAC,GAA6B,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAA6B,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"normalStateAbstract.component.js","sourceRoot":"","sources":["../../../../src/plugins/normalState/normalStateAbstract.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,UAAU,EAAa,SAAS,EAAC,MAAM,eAAe,CAAC;AAElF,OAAO,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAI7C,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AAGzD,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;;;AAEpD;;GAEG;AAEH,MAAM,OAAgB,4BAA4B;IAc9C,uGAAuG;IAEvG;;OAEG;IACH,IAAW,OAAO;QAEd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAW,OAAO,CAAC,OAAiB;QAEhC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAgBD,iEAAiE;IACjE,YAAmB,eAAwC,EACxC,SAAoB,EACpB,aAAyB,EACtB,eAAkC,EAClC,mBAAuC;QAJ1C,oBAAe,GAAf,eAAe,CAAyB;QACxC,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAY;QACtB,oBAAe,GAAf,eAAe,CAAmB;QAClC,wBAAmB,GAAnB,mBAAmB,CAAoB;QAtC7D;;WAEG;QACO,eAAU,GAAY,KAAK,CAAC;QAgBtC,2FAA2F;QAE3F;;;WAGG;QACI,UAAK,GAAqB,EAAE,CAAC;IAepC,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,oGAAoG;IAEpG;;OAEG;IACI,UAAU;QAEb,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAiB,CAAC;QAEzE,IAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,YAAY,EACzD,CAAC;YACG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAG,CAAC,IAAI,CAAC,YAAY,EACrB,CAAC;YACG,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,WAAW;IAElB,CAAC;IAED;;OAEG;IACI,iBAAiB;QAEpB,IAAG,CAAC,IAAI,CAAC,UAAU,EACnB,CAAC;YACG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC;IACL,CAAC;IAED,uEAAuE;IAEvE;;OAEG;IACO,UAAU;QAEhB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAE1C,IAAI,CAAC,KAAK,CAAC,GAA6B,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAA6B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9I,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;8GAlHiB,4BAA4B;kGAA5B,4BAA4B;;2FAA5B,4BAA4B;kBADjD,SAAS","sourcesContent":["import {ChangeDetectorRef, ElementRef, OnDestroy, Directive} from '@angular/core';\nimport {StringLocalization} from '@anglr/common';\nimport {extend} from '@jscrpt/common/extend';\n\nimport {NgSelectPluginInstances} from '../../components/select';\nimport {NgSelectPlugin} from '../../misc';\nimport {PluginBus} from '../../misc/pluginBus/pluginBus';\nimport {NormalState, NormalStateOptions, NormalStateTexts} from './normalState.interface';\nimport {ValueHandler} from '../valueHandler/valueHandler.interface';\nimport {VALUE_HANDLER} from '../valueHandler/types';\n\n/**\n * Base abstract class for normal state of select\n */\n@Directive()\nexport abstract class NormalStateAbstractComponent<TCssClasses = any, TOptions extends NormalStateOptions<TCssClasses, TValue> = any, TValue = any> implements NormalState, NgSelectPlugin<TOptions>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: TOptions;\n\n /**\n * Indication whether was component destroyed\n */\n protected _destroyed: boolean = false;\n\n //######################### public properties - implementation of NormalState #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): TOptions\n {\n return this._options;\n }\n public set options(options: TOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n //######################### public properties - template bindings #########################\n\n /**\n * Object containing available texts\n * @internal\n */\n public texts: NormalStateTexts = {};\n\n /**\n * Value handler used in NgSelect\n * @internal\n */\n public valueHandler: ValueHandler;\n\n //######################### constructor #########################\n constructor(public ngSelectPlugins: NgSelectPluginInstances,\n public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n protected _stringLocalization: StringLocalization)\n {\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._destroyed = true;\n }\n\n //######################### public methods - implementation of NormalState #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n const valueHandler = this.ngSelectPlugins[VALUE_HANDLER] as ValueHandler;\n\n if(this.valueHandler && this.valueHandler != valueHandler)\n {\n this.valueHandler = null;\n }\n\n if(!this.valueHandler)\n {\n this.valueHandler = valueHandler;\n }\n\n this._initTexts();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n if(!this._destroyed)\n {\n this._changeDetector.detectChanges();\n }\n }\n\n //######################### protected methods #########################\n\n /**\n * Initialize texts\n */\n protected _initTexts()\n {\n Object.keys(this.options.texts).forEach(key =>\n {\n this.texts[key as keyof NormalStateTexts] = this._stringLocalization.get(this.options.texts[key as keyof NormalStateTexts], null, true)();\n });\n\n this._changeDetector.detectChanges();\n }\n}\n"]}
|
|
@@ -170,7 +170,7 @@ export class PopupAbstractComponent {
|
|
|
170
170
|
*/
|
|
171
171
|
_initTexts() {
|
|
172
172
|
Object.keys(this.options.texts).forEach(key => {
|
|
173
|
-
this.texts[key] = this._stringLocalization.get(this.options.texts[key])();
|
|
173
|
+
this.texts[key] = this._stringLocalization.get(this.options.texts[key], null, true)();
|
|
174
174
|
});
|
|
175
175
|
this._changeDetector.detectChanges();
|
|
176
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popupAbstract.component.js","sourceRoot":"","sources":["../../../../src/plugins/popup/popupAbstract.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList, ViewChildren, Directive} from '@angular/core';\nimport {StringLocalization} from '@anglr/common';\nimport {isDescendant} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\nimport {Subscription} from 'rxjs';\n\nimport {ɵNgSelectOption} from '../../components/option';\nimport {NgSelectPluginInstances} from '../../components/select';\nimport {NgSelectPlugin, OptionsGatherer} from '../../misc';\nimport {PluginBus} from '../../misc/pluginBus/pluginBus';\nimport {Popup, PopupOptions, PopupTexts} from './popup.interface';\nimport {ValueHandler} from '../valueHandler';\nimport {VALUE_HANDLER} from '../valueHandler/types';\n\n/**\n * Base abstract class for popup with options\n */\n@Directive()\nexport class PopupAbstractComponent<TCssClasses = any, TOptions extends PopupOptions<TCssClasses> = any> implements Popup, NgSelectPlugin<TOptions>, AfterViewInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: TOptions;\n\n /**\n * Instance of previous options gatherer, that is used for obtaining available options\n */\n protected _optionsGatherer: OptionsGatherer;\n\n /**\n * Subscription for changes of options in options gatherer\n */\n protected _optionsChangeSubscription: Subscription;\n\n /**\n * Subscription for toggle popup event\n */\n protected _popupToggleSubscription: Subscription;\n\n /**\n * Subscription for popup visibility change request\n */\n protected _visibilityRequestSubscription: Subscription;\n\n /**\n * Subscription for changes of selected value\n */\n protected _valueChangedSubscription: Subscription;\n\n /**\n * Indication whether is popup visible\n */\n protected _popupVisible: boolean = false;\n\n /**\n * Value handler plugin used within `NgSelect`\n */\n protected _valueHandler: ValueHandler;\n\n //######################### protected properties #########################\n\n /**\n * Gets indication whether keep open popup after value change\n */\n protected get keepOpen(): boolean\n {\n return this.pluginBus.selectOptions.multiple;\n }\n\n //######################### public properties - implementation of Popup #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): TOptions\n {\n return this._options;\n }\n public set options(options: TOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n /**\n * Occurs when visibility of popup has changed\n */\n public visibilityChange: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Html element that represents popup itself\n */\n public get popupElement(): HTMLElement\n {\n const ref = this.popupElementChildren.first;\n\n if(!ref)\n {\n return null;\n }\n\n return ref.nativeElement;\n }\n\n //######################### public properties - template bindings #########################\n\n /**\n * Array of select options available\n * @internal\n */\n public selectOptions: ɵNgSelectOption[];\n\n /**\n * Object containing available texts\n * @internal\n */\n public texts: PopupTexts = {};\n\n //######################### public properties - children #########################\n\n /**\n * Watch for visibility of popup div element\n * @internal\n */\n @ViewChildren('popupDiv')\n public popupElementChildren: QueryList<ElementRef<HTMLElement>>;\n\n //######################### constructor #########################\n constructor(public ngSelectPlugins: NgSelectPluginInstances,\n public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n protected _document: Document,\n protected _stringLocalization: StringLocalization)\n {\n }\n\n //######################### public methods - implementation of AfterViewInit #########################\n\n /**\n * Called when view was initialized\n */\n public ngAfterViewInit()\n {\n this.popupElementChildren.changes.subscribe(() =>\n {\n if(!!this.popupElementChildren.first == this._popupVisible)\n {\n return;\n }\n\n //handle click outside\n if(this.popupElementChildren.first)\n {\n this._document.addEventListener('mouseup', this._handleClickOutside);\n }\n //unregister handle click outside\n else\n {\n this._document.removeEventListener('mouseup', this._handleClickOutside);\n }\n\n this._popupVisible = !!this.popupElementChildren.first;\n this.visibilityChange.emit();\n });\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._optionsChangeSubscription?.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._popupToggleSubscription?.unsubscribe();\n this._popupToggleSubscription = null;\n\n this._valueChangedSubscription?.unsubscribe();\n this._valueChangedSubscription = null;\n\n this._visibilityRequestSubscription?.unsubscribe();\n this._visibilityRequestSubscription = null;\n\n this._document.removeEventListener('mouseup', this._handleClickOutside);\n }\n\n //######################### public methods - implementation of Popup #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n if(this._optionsGatherer && this._optionsGatherer != this.pluginBus.selectOptions.optionsGatherer)\n {\n this._optionsChangeSubscription.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._optionsGatherer = null;\n }\n\n if(!this._optionsGatherer)\n {\n this._optionsGatherer = this.pluginBus.selectOptions.optionsGatherer;\n\n this._optionsChangeSubscription = this._optionsGatherer.availableOptionsChange.subscribe(() => this.loadOptions());\n }\n\n if(!this._popupToggleSubscription)\n {\n this._popupToggleSubscription = this.pluginBus.togglePopup.subscribe(() => this.togglePopup());\n }\n\n if(!this._visibilityRequestSubscription)\n {\n this._visibilityRequestSubscription = this.pluginBus.showHidePopup.subscribe(this._handleVisibilityChange);\n }\n\n const valueHandler = this.ngSelectPlugins[VALUE_HANDLER] as ValueHandler;\n\n if(this._valueHandler && this._valueHandler != valueHandler)\n {\n this._valueChangedSubscription.unsubscribe();\n this._valueChangedSubscription = null;\n\n this._valueHandler = null;\n }\n\n if(!this._valueHandler)\n {\n this._valueHandler = valueHandler;\n\n this._valueChangedSubscription = this._valueHandler.valueChange.subscribe(() =>\n {\n if(!this.keepOpen)\n {\n this._handleVisibilityChange(false);\n }\n });\n }\n\n this.loadOptions();\n this._initTexts();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n //######################### protected methods #########################\n\n /**\n * Initialize texts\n */\n protected _initTexts()\n {\n Object.keys(this.options.texts).forEach(key =>\n {\n this.texts[key as keyof PopupTexts] = this._stringLocalization.get(this.options.texts[key as keyof PopupTexts])();\n });\n\n this._changeDetector.detectChanges();\n }\n\n /**\n * Loads options\n */\n protected loadOptions()\n {\n this.selectOptions = this._optionsGatherer.availableOptions;\n this._changeDetector.detectChanges();\n }\n\n /**\n * Toggles popup visibility\n */\n protected togglePopup()\n {\n this.options.visible = !this.options.visible;\n this._changeDetector.detectChanges();\n }\n\n /**\n * Handles click outside of select element\n * @param event - Mouse event object\n */\n protected _handleClickOutside = (event: MouseEvent) =>\n {\n if(this.pluginBus.selectElement.nativeElement != event.target &&\n !isDescendant(this.pluginBus.selectElement.nativeElement, event.target as HTMLElement) &&\n this.pluginElement.nativeElement != event.target &&\n !isDescendant(this.pluginElement.nativeElement, event.target as HTMLElement))\n {\n this.togglePopup();\n\n this.pluginBus.updateDisplayedValue.emit();\n }\n };\n\n /**\n * Handles visibility change\n */\n protected _handleVisibilityChange = (visible: boolean) =>\n {\n if(this.options.visible != visible)\n {\n this.options.visible = visible;\n this._changeDetector.detectChanges();\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"popupAbstract.component.js","sourceRoot":"","sources":["../../../../src/plugins/popup/popupAbstract.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, QueryList, ViewChildren, Directive} from '@angular/core';\nimport {StringLocalization} from '@anglr/common';\nimport {isDescendant} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\nimport {Subscription} from 'rxjs';\n\nimport {ɵNgSelectOption} from '../../components/option';\nimport {NgSelectPluginInstances} from '../../components/select';\nimport {NgSelectPlugin, OptionsGatherer} from '../../misc';\nimport {PluginBus} from '../../misc/pluginBus/pluginBus';\nimport {Popup, PopupOptions, PopupTexts} from './popup.interface';\nimport {ValueHandler} from '../valueHandler';\nimport {VALUE_HANDLER} from '../valueHandler/types';\n\n/**\n * Base abstract class for popup with options\n */\n@Directive()\nexport class PopupAbstractComponent<TCssClasses = any, TOptions extends PopupOptions<TCssClasses> = any> implements Popup, NgSelectPlugin<TOptions>, AfterViewInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: TOptions;\n\n /**\n * Instance of previous options gatherer, that is used for obtaining available options\n */\n protected _optionsGatherer: OptionsGatherer;\n\n /**\n * Subscription for changes of options in options gatherer\n */\n protected _optionsChangeSubscription: Subscription;\n\n /**\n * Subscription for toggle popup event\n */\n protected _popupToggleSubscription: Subscription;\n\n /**\n * Subscription for popup visibility change request\n */\n protected _visibilityRequestSubscription: Subscription;\n\n /**\n * Subscription for changes of selected value\n */\n protected _valueChangedSubscription: Subscription;\n\n /**\n * Indication whether is popup visible\n */\n protected _popupVisible: boolean = false;\n\n /**\n * Value handler plugin used within `NgSelect`\n */\n protected _valueHandler: ValueHandler;\n\n //######################### protected properties #########################\n\n /**\n * Gets indication whether keep open popup after value change\n */\n protected get keepOpen(): boolean\n {\n return this.pluginBus.selectOptions.multiple;\n }\n\n //######################### public properties - implementation of Popup #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): TOptions\n {\n return this._options;\n }\n public set options(options: TOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n /**\n * Occurs when visibility of popup has changed\n */\n public visibilityChange: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Html element that represents popup itself\n */\n public get popupElement(): HTMLElement\n {\n const ref = this.popupElementChildren.first;\n\n if(!ref)\n {\n return null;\n }\n\n return ref.nativeElement;\n }\n\n //######################### public properties - template bindings #########################\n\n /**\n * Array of select options available\n * @internal\n */\n public selectOptions: ɵNgSelectOption[];\n\n /**\n * Object containing available texts\n * @internal\n */\n public texts: PopupTexts = {};\n\n //######################### public properties - children #########################\n\n /**\n * Watch for visibility of popup div element\n * @internal\n */\n @ViewChildren('popupDiv')\n public popupElementChildren: QueryList<ElementRef<HTMLElement>>;\n\n //######################### constructor #########################\n constructor(public ngSelectPlugins: NgSelectPluginInstances,\n public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n protected _document: Document,\n protected _stringLocalization: StringLocalization)\n {\n }\n\n //######################### public methods - implementation of AfterViewInit #########################\n\n /**\n * Called when view was initialized\n */\n public ngAfterViewInit()\n {\n this.popupElementChildren.changes.subscribe(() =>\n {\n if(!!this.popupElementChildren.first == this._popupVisible)\n {\n return;\n }\n\n //handle click outside\n if(this.popupElementChildren.first)\n {\n this._document.addEventListener('mouseup', this._handleClickOutside);\n }\n //unregister handle click outside\n else\n {\n this._document.removeEventListener('mouseup', this._handleClickOutside);\n }\n\n this._popupVisible = !!this.popupElementChildren.first;\n this.visibilityChange.emit();\n });\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._optionsChangeSubscription?.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._popupToggleSubscription?.unsubscribe();\n this._popupToggleSubscription = null;\n\n this._valueChangedSubscription?.unsubscribe();\n this._valueChangedSubscription = null;\n\n this._visibilityRequestSubscription?.unsubscribe();\n this._visibilityRequestSubscription = null;\n\n this._document.removeEventListener('mouseup', this._handleClickOutside);\n }\n\n //######################### public methods - implementation of Popup #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n if(this._optionsGatherer && this._optionsGatherer != this.pluginBus.selectOptions.optionsGatherer)\n {\n this._optionsChangeSubscription.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._optionsGatherer = null;\n }\n\n if(!this._optionsGatherer)\n {\n this._optionsGatherer = this.pluginBus.selectOptions.optionsGatherer;\n\n this._optionsChangeSubscription = this._optionsGatherer.availableOptionsChange.subscribe(() => this.loadOptions());\n }\n\n if(!this._popupToggleSubscription)\n {\n this._popupToggleSubscription = this.pluginBus.togglePopup.subscribe(() => this.togglePopup());\n }\n\n if(!this._visibilityRequestSubscription)\n {\n this._visibilityRequestSubscription = this.pluginBus.showHidePopup.subscribe(this._handleVisibilityChange);\n }\n\n const valueHandler = this.ngSelectPlugins[VALUE_HANDLER] as ValueHandler;\n\n if(this._valueHandler && this._valueHandler != valueHandler)\n {\n this._valueChangedSubscription.unsubscribe();\n this._valueChangedSubscription = null;\n\n this._valueHandler = null;\n }\n\n if(!this._valueHandler)\n {\n this._valueHandler = valueHandler;\n\n this._valueChangedSubscription = this._valueHandler.valueChange.subscribe(() =>\n {\n if(!this.keepOpen)\n {\n this._handleVisibilityChange(false);\n }\n });\n }\n\n this.loadOptions();\n this._initTexts();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n this._changeDetector.detectChanges();\n }\n\n //######################### protected methods #########################\n\n /**\n * Initialize texts\n */\n protected _initTexts()\n {\n Object.keys(this.options.texts).forEach(key =>\n {\n this.texts[key as keyof PopupTexts] = this._stringLocalization.get(this.options.texts[key as keyof PopupTexts], null, true)();\n });\n\n this._changeDetector.detectChanges();\n }\n\n /**\n * Loads options\n */\n protected loadOptions()\n {\n this.selectOptions = this._optionsGatherer.availableOptions;\n this._changeDetector.detectChanges();\n }\n\n /**\n * Toggles popup visibility\n */\n protected togglePopup()\n {\n this.options.visible = !this.options.visible;\n this._changeDetector.detectChanges();\n }\n\n /**\n * Handles click outside of select element\n * @param event - Mouse event object\n */\n protected _handleClickOutside = (event: MouseEvent) =>\n {\n if(this.pluginBus.selectElement.nativeElement != event.target &&\n !isDescendant(this.pluginBus.selectElement.nativeElement, event.target as HTMLElement) &&\n this.pluginElement.nativeElement != event.target &&\n !isDescendant(this.pluginElement.nativeElement, event.target as HTMLElement))\n {\n this.togglePopup();\n\n this.pluginBus.updateDisplayedValue.emit();\n }\n };\n\n /**\n * Handles visibility change\n */\n protected _handleVisibilityChange = (visible: boolean) =>\n {\n if(this.options.visible != visible)\n {\n this.options.visible = visible;\n this._changeDetector.detectChanges();\n }\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anglr/select",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "15.0.0",
|
|
4
4
|
"description": "Angular component representing html select",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
},
|
|
62
62
|
"homepage": "https://github.com/ressurectit/ng-select",
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@anglr/common": ">=24.
|
|
64
|
+
"@anglr/common": ">=24.1.0",
|
|
65
65
|
"@angular/common": ">=21.1.3",
|
|
66
66
|
"@angular/core": ">=21.1.3",
|
|
67
67
|
"@angular/forms": ">=21.1.3",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"@angular/material": ">=21.1.3"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@anglr/common": "24.
|
|
77
|
+
"@anglr/common": "24.1.0",
|
|
78
78
|
"@angular/cdk": "21.1.3",
|
|
79
79
|
"@angular/common": "21.1.3",
|
|
80
80
|
"@angular/compiler": "21.1.3",
|
package/version.bak
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
15.0.0
|