@anglr/select 16.1.0 → 17.0.0-beta.20260702112309
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 +37 -0
- package/es2022/src/components/option/option.component.js +13 -8
- package/es2022/src/components/option/option.component.js.map +1 -1
- package/es2022/src/components/optionGroup/optgroup.component.js +6 -5
- package/es2022/src/components/optionGroup/optgroup.component.js.map +1 -1
- package/es2022/src/components/select/select.component.js +33 -21
- package/es2022/src/components/select/select.component.js.map +1 -1
- package/es2022/src/directives/highlightInstance/highlightInstance.directive.js +80 -0
- package/es2022/src/directives/highlightInstance/highlightInstance.directive.js.map +1 -0
- package/es2022/src/directives/highlightSearch/highlightSearch.directive.js +114 -0
- package/es2022/src/directives/highlightSearch/highlightSearch.directive.js.map +1 -0
- package/es2022/src/directives/highlightText/highlightText.directive.js +63 -0
- package/es2022/src/directives/highlightText/highlightText.directive.js.map +1 -0
- package/es2022/src/directives/index.js +3 -0
- package/es2022/src/directives/index.js.map +1 -1
- package/es2022/src/directives/normalStateTagTemplate/normalStateTagTemplate.directive.js +3 -3
- package/es2022/src/directives/normalStateTemplate/normalStateTemplate.directive.js +3 -3
- package/es2022/src/directives/optionGroupTemplate/optionGroupTemplate.directive.js +3 -3
- package/es2022/src/directives/optionTemplate/optionTemplate.directive.js +3 -3
- package/es2022/src/directives/selectAbsolute/selectAbsolute.directive.js +3 -3
- package/es2022/src/directives/selectControlValueAccessor/selectControlValueAccessor.directive.js +7 -5
- package/es2022/src/directives/selectControlValueAccessor/selectControlValueAccessor.directive.js.map +1 -1
- package/es2022/src/directives/selectEdit/selectEdit.directive.js +3 -3
- package/es2022/src/directives/selectFormControl/selectFormControl.directive.js +11 -7
- package/es2022/src/directives/selectFormControl/selectFormControl.directive.js.map +1 -1
- package/es2022/src/directives/selectMultipleKeepPopup/selectMultipleKeepPopup.directive.js +3 -3
- package/es2022/src/directives/selectNoCarret/selectNoCarret.directive.js +3 -3
- package/es2022/src/directives/selectPlaceholder/selectPlaceholder.directive.js +5 -4
- package/es2022/src/directives/selectPlaceholder/selectPlaceholder.directive.js.map +1 -1
- package/es2022/src/directives/withDirectAccess/withDirectAccess.directive.js +5 -4
- package/es2022/src/directives/withDirectAccess/withDirectAccess.directive.js.map +1 -1
- package/es2022/src/interfaces/plugins/popup/popup.interface.js.map +1 -1
- package/es2022/src/misc/classes/codeOptionsGatherer/codeOptionsGatherer.interface.js +6 -3
- package/es2022/src/misc/classes/codeOptionsGatherer/codeOptionsGatherer.interface.js.map +1 -1
- package/es2022/src/misc/classes/selectBus/selectBus.js +11 -7
- package/es2022/src/misc/classes/selectBus/selectBus.js.map +1 -1
- package/es2022/src/misc/classes/selectPluginInstances/selectPluginInstances.js +18 -9
- package/es2022/src/misc/classes/selectPluginInstances/selectPluginInstances.js.map +1 -1
- package/es2022/src/modules/select.module.js +4 -4
- package/es2022/src/pipes/addNewOption/addNewOption.pipe.js +3 -3
- package/es2022/src/pipes/displayOptionValue/displayOptionValue.pipe.js +7 -5
- package/es2022/src/pipes/displayOptionValue/displayOptionValue.pipe.js.map +1 -1
- package/es2022/src/pipes/displayValue/displayValue.pipe.js +9 -6
- package/es2022/src/pipes/displayValue/displayValue.pipe.js.map +1 -1
- package/es2022/src/pipes/getPlugin/getPlugin.pipe.js +3 -3
- package/es2022/src/pipes/groupedListOptions/groupedListOptions.pipe.js +3 -3
- package/es2022/src/pipes/hasValue/hasValue.pipe.js +3 -3
- package/es2022/src/pipes/optionCssClasses/optionCssClasses.pipe.js +3 -3
- package/es2022/src/plugins/interactions/simpleInteractions/simpleInteractions.component.js +3 -3
- package/es2022/src/plugins/keyboardHandler/simpleKeyboardHandler/simpleKeyboardHandler.component.js +3 -3
- package/es2022/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.js +13 -8
- package/es2022/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/filterLiveSearch/filterLiveSearch.component.js +7 -5
- package/es2022/src/plugins/liveSearch/filterLiveSearch/filterLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/noLiveSearch/noLiveSearch.component.js +7 -5
- package/es2022/src/plugins/liveSearch/noLiveSearch/noLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/normalState/editNormalState/editNormalState.component.js +9 -6
- package/es2022/src/plugins/normalState/editNormalState/editNormalState.component.js.map +1 -1
- package/es2022/src/plugins/normalState/simpleNormalState/simpleNormalState.component.js +5 -4
- package/es2022/src/plugins/normalState/simpleNormalState/simpleNormalState.component.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/noOptionsHandler/noOptionsHandler.component.js +7 -5
- package/es2022/src/plugins/optionsHandler/noOptionsHandler/noOptionsHandler.component.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/optionsHandlerBase.js +9 -6
- package/es2022/src/plugins/optionsHandler/optionsHandlerBase.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.js +7 -5
- package/es2022/src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.js.map +1 -1
- package/es2022/src/plugins/popup/simplePopup/simplePopup.component.js +11 -5
- package/es2022/src/plugins/popup/simplePopup/simplePopup.component.js.map +1 -1
- package/es2022/src/plugins/positioner/commonPositioner/commonPositioner.component.js +3 -3
- package/es2022/src/plugins/positioner/noPositioner/noPositioner.component.js +3 -3
- package/es2022/src/plugins/positioner/popoverPositioner/popoverPositioner.component.js +3 -3
- package/es2022/src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.js +13 -8
- package/es2022/src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.js.map +1 -1
- package/es2022/src/plugins/valueHandler/staticValueHandler/staticValueHandler.component.js +7 -5
- package/es2022/src/plugins/valueHandler/staticValueHandler/staticValueHandler.component.js.map +1 -1
- package/package.json +19 -27
- package/src/directives/highlightInstance/highlightInstance.directive.d.ts +42 -0
- package/src/directives/highlightInstance/highlightInstance.directive.d.ts.map +1 -0
- package/src/directives/highlightSearch/highlightSearch.directive.d.ts +50 -0
- package/src/directives/highlightSearch/highlightSearch.directive.d.ts.map +1 -0
- package/src/directives/highlightText/highlightText.directive.d.ts +28 -0
- package/src/directives/highlightText/highlightText.directive.d.ts.map +1 -0
- package/src/directives/index.d.ts +3 -0
- package/src/directives/index.d.ts.map +1 -1
- package/src/interfaces/plugins/popup/popup.interface.d.ts +4 -0
- package/src/interfaces/plugins/popup/popup.interface.d.ts.map +1 -1
- package/src/plugins/liveSearch/filterLiveSearch/filterLiveSearch.component.d.ts +1 -1
- package/src/plugins/liveSearch/filterLiveSearch/filterLiveSearch.component.d.ts.map +1 -1
- package/src/plugins/popup/simplePopup/simplePopup.component.d.ts +2 -1
- package/src/plugins/popup/simplePopup/simplePopup.component.d.ts.map +1 -1
- package/src/plugins/popup/simplePopup/simplePopup.component.html +2 -2
- package/styles/components/_popup.scss +6 -0
- package/styles/core/_defaultTheme.scss +5 -0
- package/version.bak +1 -1
package/es2022/src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.js
CHANGED
|
@@ -19,7 +19,8 @@ export class SimpleOptionsHandler extends OptionsHandlerBase {
|
|
|
19
19
|
constructor(options) {
|
|
20
20
|
super();
|
|
21
21
|
this.options = deepCopyWithArrayOverride(defaultOptions, options);
|
|
22
|
-
this.availableOptions = computed(() => this.selectBus.selectOptions().optionsGatherer.availableOptions(),
|
|
22
|
+
this.availableOptions = computed(() => this.selectBus.selectOptions().optionsGatherer.availableOptions(), /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "availableOptions" }] : /* istanbul ignore next */ []));
|
|
23
24
|
this.listOptions = computed(() => {
|
|
24
25
|
const text = this.selectPlugins.LiveSearch.search();
|
|
25
26
|
const selectedOptions = this.selectBus.selectedOptions() ?? [];
|
|
@@ -47,16 +48,17 @@ export class SimpleOptionsHandler extends OptionsHandlerBase {
|
|
|
47
48
|
availableOptions.unshift(firstOption);
|
|
48
49
|
}
|
|
49
50
|
return availableOptions;
|
|
50
|
-
},
|
|
51
|
+
}, /* @ts-ignore */
|
|
52
|
+
...(ngDevMode ? [{ debugName: "listOptions" }] : /* istanbul ignore next */ []));
|
|
51
53
|
}
|
|
52
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: SimpleOptionsHandler, deps: [{ token: OPTIONS_HANDLER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: SimpleOptionsHandler, isStandalone: true, selector: "simple-options-handler", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
54
56
|
}
|
|
55
57
|
__decorate([
|
|
56
58
|
CopyOptionsAsSignal(),
|
|
57
59
|
__metadata("design:type", Object)
|
|
58
60
|
], SimpleOptionsHandler.prototype, "options", void 0);
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: SimpleOptionsHandler, decorators: [{
|
|
60
62
|
type: Component,
|
|
61
63
|
args: [{
|
|
62
64
|
selector: 'simple-options-handler',
|
package/es2022/src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleOptionsHandler.component.js","sourceRoot":"","sources":["../../../../../src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,uBAAuB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAS,MAAM,eAAe,CAAC;AAErG,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAC,oBAAoB,EAAC,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;;AAEzD,MAAM,cAAc,GACpB;IACI,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,SAAS;IAC1B,0BAA0B,EAAE,KAAK;CACpC,CAAC;AAEF;;GAEG;AAOH,MAAM,OAAO,oBAA8D,SAAQ,kBAA6E;IAsB5J,iEAAiE;IACjE,YAAyD,OAAoE;QAEzH,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC,cAAqD,EACrD,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"simpleOptionsHandler.component.js","sourceRoot":"","sources":["../../../../../src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectionStrategy, Component, computed, Inject, Optional, Signal} from '@angular/core';\nimport {RecursivePartial} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {OptionsHandler, SelectOptionState, SimpleOptionsHandlerOptions} from '../../../interfaces';\nimport {CopyOptionsAsSignal} from '../../../decorators';\nimport {OPTIONS_HANDLER_OPTIONS} from '../../../misc/tokens';\nimport {compareSelectOptions} from '../../../misc/utils';\nimport {OptionsHandlerBase} from '../optionsHandlerBase';\n\nconst defaultOptions: SimpleOptionsHandlerOptions<unknown> =\n{\n listSelected: true,\n newOptionGetter: undefined,\n newOptionOnlyWhenNoOptions: false,\n};\n\n/**\n * Options handler that does apply live search and allows to remove selected option(s) from options list\n */\n@Component(\n{\n selector: 'simple-options-handler',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SimpleOptionsHandler<TValue = unknown, TPublicValue = TValue> extends OptionsHandlerBase<TValue, TPublicValue, SimpleOptionsHandlerOptions<TValue>> implements OptionsHandler<TValue, TPublicValue, SimpleOptionsHandlerOptions<TValue>>\n{\n //######################### public properties - implementation of SelectPlugin #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public options: SimpleOptionsHandlerOptions<TValue>;\n\n //######################### public properties - implementation of OptionsHandler #########################\n\n /**\n * @inheritdoc\n */\n public readonly availableOptions: Signal<readonly SelectOptionState<TValue>[]|undefined|null>;\n\n /**\n * @inheritdoc\n */\n public readonly listOptions: Signal<readonly SelectOptionState<TValue>[]|undefined|null>;\n\n //######################### constructor #########################\n constructor(@Inject(OPTIONS_HANDLER_OPTIONS) @Optional() options?: RecursivePartial<SimpleOptionsHandlerOptions<TValue>>|null,)\n {\n super();\n\n this.options = deepCopyWithArrayOverride(defaultOptions as SimpleOptionsHandlerOptions<TValue>,\n options);\n\n this.availableOptions = computed(() => this.selectBus.selectOptions().optionsGatherer.availableOptions());\n this.listOptions = computed(() =>\n {\n const text = this.selectPlugins.LiveSearch.search();\n const selectedOptions = this.selectBus.selectedOptions() ?? [];\n const opts = Array.isArray(selectedOptions) ? selectedOptions : [selectedOptions];\n const firstOption = this.firstOption();\n let availableOptions = this.availableOptions() as SelectOptionState<TValue>[] | null | undefined;\n\n if(!this.options.listSelected)\n {\n availableOptions = availableOptions?.filter(itm =>\n {\n return !opts.some(it => compareSelectOptions(it, itm, this.selectBus));\n });\n }\n\n if(!text)\n {\n if(firstOption && availableOptions && (!this.options.newOptionOnlyWhenNoOptions || !availableOptions.length))\n {\n availableOptions.unshift(firstOption);\n }\n\n return availableOptions;\n }\n\n const options = this.selectBus.selectOptions();\n const textExtractor = options.textExtractor;\n const normalize = options.normalize;\n const textCompare = options.textCompare;\n\n availableOptions = availableOptions\n ?.filter(itm => textCompare(normalize(textExtractor(itm)), normalize(text)));\n\n if(firstOption && availableOptions && (!this.options.newOptionOnlyWhenNoOptions || !availableOptions.length))\n {\n availableOptions.unshift(firstOption);\n }\n\n return availableOptions;\n });\n }\n}\n"]}
|
|
@@ -7,10 +7,13 @@ import { SelectPluginInstances, SelectBus } from '../../../misc/classes';
|
|
|
7
7
|
import { CopyOptionsAsSignal } from '../../../decorators';
|
|
8
8
|
import { POPUP_OPTIONS } from '../../../misc/tokens';
|
|
9
9
|
import { AddNewOption, DisplayOptionValue, GroupedListOptions, OptionCssClasses } from '../../../pipes';
|
|
10
|
+
import { HighlightInstance, HighlightSearch } from '../../../directives';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../../../directives/highlightInstance/highlightInstance.directive";
|
|
11
13
|
//TODO: hover into mouseover => use "active"
|
|
12
14
|
const defaultOptions = {
|
|
13
15
|
visible: false,
|
|
16
|
+
searchHighlighting: true,
|
|
14
17
|
liveSearchEnabled: false,
|
|
15
18
|
cssClasses: {
|
|
16
19
|
componentElement: 'popup-component',
|
|
@@ -51,7 +54,7 @@ export class SimplePopup {
|
|
|
51
54
|
/**
|
|
52
55
|
* Instance of element that is used as placeholder for live search
|
|
53
56
|
*/
|
|
54
|
-
this.liveSearchPlaceholder = viewChild('liveSearchPlaceholder', { ...(ngDevMode ? { debugName: "liveSearchPlaceholder" } : {}), read: ElementRef });
|
|
57
|
+
this.liveSearchPlaceholder = viewChild('liveSearchPlaceholder', { ...(ngDevMode ? { debugName: "liveSearchPlaceholder" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
55
58
|
this.options = deepCopyWithArrayOverride(defaultOptions, options);
|
|
56
59
|
effect(() => {
|
|
57
60
|
if (this.options.liveSearchEnabled) {
|
|
@@ -93,14 +96,14 @@ export class SimplePopup {
|
|
|
93
96
|
data: option,
|
|
94
97
|
});
|
|
95
98
|
}
|
|
96
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
97
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: SimplePopup, deps: [{ token: POPUP_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: SimplePopup, isStandalone: true, selector: "simple-popup", host: { properties: { "id": "selectBus.id", "class": "options.cssClasses.componentElement" } }, viewQueries: [{ propertyName: "liveSearchPlaceholder", first: true, predicate: ["liveSearchPlaceholder"], descendants: true, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: i1.HighlightInstance }], ngImport: i0, template: "<ng-template #defaultOptionLook let-option>{{option | addNewOption | localize}}{{option | displayOptionValue | localize}}</ng-template>\n<ng-template #defaultOptionGroupLook let-text>{{text}}</ng-template>\n\n@if(selectBus.popupVisible() || options.visible)\n{\n @let result = selectPlugins.OptionsHandler.listOptions() | groupedListOptions;\n @let listOptions = result[0];\n @let size = result[1];\n \n <div [class]=\"options.cssClasses.popupContainer\" role=\"listbox\" [attr.aria-label]=\"options.texts.optionsList | localize\">\n <ng-container #liveSearchPlaceholder/>\n\n @for(optionsGroups of listOptions; track $index)\n {\n @let group = optionsGroups[1];\n @let opts = optionsGroups[0];\n\n @if(group)\n {\n <div role=\"group\"\n [id]=\"group.id\"\n [class]=\"options.cssClasses.optionGroup\"\n [attr.aria-posinset]=\"group.index + 1\"\n [attr.aria-setsize]=\"size\">\n <ng-container *ngTemplateOutlet=\"group.template() || defaultOptionGroupLook; context: {$implicit: group.text()}\"/>\n </div>\n }\n\n @for(option of opts; track option)\n {\n <div role=\"option\"\n [id]=\"`${selectBus.id}-${option.index}`\"\n [attr.aria-posinset]=\"option.index + 1\"\n [attr.aria-setsize]=\"size\"\n [attr.aria-selected]=\"option.selected()\"\n [class]=\"option | optionCssClasses: options.cssClasses: group\"\n (mouseover)=\"markActive(option)\"\n (mousedown)=\"preventBlur($event)\"\n (click)=\"optionClick(option)\">\n <div [class]=\"options.cssClasses.optionText\" highlightSearch #highlightSearch=\"highlightSearch\">\n <ng-container *ngTemplateOutlet=\"selectBus.selectOptions().templateGatherer.optionTemplate() || defaultOptionLook; context: {$implicit: option, popup: this}; injector: highlightSearch.injector\"/>\n </div>\n \n @if(option.selected() && selectBus.selectOptions().multiple)\n {\n <div [class]=\"options.cssClasses.optionChecked\"></div>\n }\n </div>\n }\n }\n @empty \n {\n <div>{{options.texts.noAvailableOptions | localize}}</div>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: HighlightSearch, selector: "[highlightSearch]", exportAs: ["highlightSearch"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AddNewOption, name: "addNewOption" }, { kind: "pipe", type: LocalizePipe, name: "localize" }, { kind: "pipe", type: OptionCssClasses, name: "optionCssClasses" }, { kind: "pipe", type: DisplayOptionValue, name: "displayOptionValue" }, { kind: "pipe", type: GroupedListOptions, name: "groupedListOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
98
101
|
}
|
|
99
102
|
__decorate([
|
|
100
103
|
CopyOptionsAsSignal(),
|
|
101
104
|
__metadata("design:type", Object)
|
|
102
105
|
], SimplePopup.prototype, "options", void 0);
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: SimplePopup, decorators: [{
|
|
104
107
|
type: Component,
|
|
105
108
|
args: [{ selector: 'simple-popup', host: {
|
|
106
109
|
'[id]': 'selectBus.id',
|
|
@@ -108,11 +111,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
108
111
|
}, imports: [
|
|
109
112
|
AddNewOption,
|
|
110
113
|
LocalizePipe,
|
|
114
|
+
HighlightSearch,
|
|
111
115
|
NgTemplateOutlet,
|
|
112
116
|
OptionCssClasses,
|
|
113
117
|
DisplayOptionValue,
|
|
114
118
|
GroupedListOptions,
|
|
115
|
-
],
|
|
119
|
+
], hostDirectives: [
|
|
120
|
+
HighlightInstance,
|
|
121
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #defaultOptionLook let-option>{{option | addNewOption | localize}}{{option | displayOptionValue | localize}}</ng-template>\n<ng-template #defaultOptionGroupLook let-text>{{text}}</ng-template>\n\n@if(selectBus.popupVisible() || options.visible)\n{\n @let result = selectPlugins.OptionsHandler.listOptions() | groupedListOptions;\n @let listOptions = result[0];\n @let size = result[1];\n \n <div [class]=\"options.cssClasses.popupContainer\" role=\"listbox\" [attr.aria-label]=\"options.texts.optionsList | localize\">\n <ng-container #liveSearchPlaceholder/>\n\n @for(optionsGroups of listOptions; track $index)\n {\n @let group = optionsGroups[1];\n @let opts = optionsGroups[0];\n\n @if(group)\n {\n <div role=\"group\"\n [id]=\"group.id\"\n [class]=\"options.cssClasses.optionGroup\"\n [attr.aria-posinset]=\"group.index + 1\"\n [attr.aria-setsize]=\"size\">\n <ng-container *ngTemplateOutlet=\"group.template() || defaultOptionGroupLook; context: {$implicit: group.text()}\"/>\n </div>\n }\n\n @for(option of opts; track option)\n {\n <div role=\"option\"\n [id]=\"`${selectBus.id}-${option.index}`\"\n [attr.aria-posinset]=\"option.index + 1\"\n [attr.aria-setsize]=\"size\"\n [attr.aria-selected]=\"option.selected()\"\n [class]=\"option | optionCssClasses: options.cssClasses: group\"\n (mouseover)=\"markActive(option)\"\n (mousedown)=\"preventBlur($event)\"\n (click)=\"optionClick(option)\">\n <div [class]=\"options.cssClasses.optionText\" highlightSearch #highlightSearch=\"highlightSearch\">\n <ng-container *ngTemplateOutlet=\"selectBus.selectOptions().templateGatherer.optionTemplate() || defaultOptionLook; context: {$implicit: option, popup: this}; injector: highlightSearch.injector\"/>\n </div>\n \n @if(option.selected() && selectBus.selectOptions().multiple)\n {\n <div [class]=\"options.cssClasses.optionChecked\"></div>\n }\n </div>\n }\n }\n @empty \n {\n <div>{{options.texts.noAvailableOptions | localize}}</div>\n }\n </div>\n}\n" }]
|
|
116
122
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
117
123
|
type: Inject,
|
|
118
124
|
args: [POPUP_OPTIONS]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplePopup.component.js","sourceRoot":"","sources":["../../../../../src/plugins/popup/simplePopup/simplePopup.component.ts","../../../../../src/plugins/popup/simplePopup/simplePopup.component.html"],"names":[],"mappings":";AAAA,OAAO,EAAC,uBAAuB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAU,SAAS,EAAC,MAAM,eAAe,CAAC;AAClI,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAC,qBAAqB,EAAE,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;;AAEtG,4CAA4C;AAE5C,MAAM,cAAc,GACpB;IACI,OAAO,EAAE,KAAK;IACd,iBAAiB,EAAE,KAAK;IACxB,UAAU,EACV;QACI,gBAAgB,EAAE,iBAAiB;QACnC,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,cAAc;QAC7B,cAAc,EAAE,iBAAiB;QACjC,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,UAAU;KACtB;IACD,KAAK,EACL;QACI,kBAAkB,EAAE,sBAAsB;QAC1C,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,cAAc;KAC9B;CACJ,CAAC;AAEF;;GAEG;AAqBH,MAAM,OAAO,WAAW;IAgCpB,iEAAiE;IACjE,YAA+C,OAAoE;QAvBnH;;WAEG;QACI,kBAAa,GAAgD,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAElG;;WAEG;QACI,kBAAa,GAA4B,MAAM,CAAC,UAAU,CAAC,CAAC;QAEnE;;WAEG;QACI,cAAS,GAAoC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEtE,qFAAqF;QAErF;;WAEG;QACO,0BAAqB,GAAmD,SAAS,CAAC,uBAAuB,kEAAG,IAAI,EAAE,UAAU,GAAE,CAAC;QAKrI,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC,cAAqD,EACrD,OAAO,CAAC,CAAC;QAElD,MAAM,CAAC,GAAG,EAAE;YAER,IAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EACjC,CAAC;gBACG,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAEjD,IAAG,CAAC,WAAW,EACf,CAAC;oBACG,OAAO;gBACX,CAAC;gBAED,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAC/F,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,2FAA2F;IAE3F;;;OAGG;IACO,WAAW,CAAC,KAAiB;QAEnC,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,MAAiC;QAEnD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC;YACI,MAAM,EAAE,IAAoB;YAC5B,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa;YAC/C,IAAI,EAAE,MAAM;SACf,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACO,UAAU,CAAC,MAAiC;QAElD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAC9B;YACI,MAAM,EAAE,IAAoB;YAC5B,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa;YAC/C,IAAI,EAAE,MAAM;SACf,CAAC,CAAC;IACP,CAAC;8GA3FQ,WAAW,kBAiCA,aAAa;kGAjCxB,WAAW,mRA8BwG,UAAU,6CC3F1I,g9EAwDA,4CDFQ,gBAAgB,+IAFhB,YAAY,gDACZ,YAAY,4CAEZ,gBAAgB,oDAChB,kBAAkB,sDAClB,kBAAkB;;AAYf;IADN,mBAAmB,EAAE;;4CAC8B;2FAR3C,WAAW;kBApBvB,SAAS;+BAEI,cAAc,QAGxB;wBACI,MAAM,EAAE,cAAc;wBACtB,SAAS,EAAE,qCAAqC;qBACnD,WAED;wBACI,YAAY;wBACZ,YAAY;wBACZ,gBAAgB;wBAChB,gBAAgB;wBAChB,kBAAkB;wBAClB,kBAAkB;qBACrB,mBACgB,uBAAuB,CAAC,MAAM;;0BAmClC,MAAM;2BAAC,aAAa;;0BAAG,QAAQ;2GAHgD,uBAAuB,OAAE,EAAC,IAAI,EAAE,UAAU,EAAC","sourcesContent":["import {ChangeDetectionStrategy, Component, effect, ElementRef, Inject, inject, Optional, Signal, viewChild} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {LocalizePipe} from '@anglr/common';\nimport {RecursivePartial} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {Popup, PopupOptions, SelectOptionState, SelectPlugin, SimplePopupCssClasses} from '../../../interfaces';\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\nimport {CopyOptionsAsSignal} from '../../../decorators';\nimport {POPUP_OPTIONS} from '../../../misc/tokens';\nimport {AddNewOption, DisplayOptionValue, GroupedListOptions, OptionCssClasses} from '../../../pipes';\n\n//TODO: hover into mouseover => use \"active\"\n\nconst defaultOptions: PopupOptions<SimplePopupCssClasses> =\n{\n visible: false,\n liveSearchEnabled: false,\n cssClasses:\n {\n componentElement: 'popup-component',\n option: 'option',\n optionGroup: 'option-group',\n optionText: 'option-text',\n optionChecked: 'fas fa-check',\n popupContainer: 'popup-container',\n active: 'active',\n selected: 'selected',\n inGroup: 'in-group',\n },\n texts:\n {\n noAvailableOptions: 'no options available',\n addNewOption: 'add new option',\n optionsList: 'options list',\n },\n};\n\n/**\n * Simple popup displaying options in column.\n */\n@Component(\n{\n selector: 'simple-popup',\n templateUrl: 'simplePopup.component.html',\n host:\n {\n '[id]': 'selectBus.id',\n '[class]': 'options.cssClasses.componentElement',\n },\n imports:\n [\n AddNewOption,\n LocalizePipe,\n NgTemplateOutlet,\n OptionCssClasses,\n DisplayOptionValue,\n GroupedListOptions,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SimplePopup<TValue = unknown, TPublicValue = TValue> implements Popup<TValue, TPublicValue, PopupOptions<SimplePopupCssClasses>>\n{\n //######################### public properties - implementation of SelectPlugin #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public options: PopupOptions<SimplePopupCssClasses>;\n\n /**\n * @inheritdoc\n */\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\n\n /**\n * @inheritdoc\n */\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * @inheritdoc\n */\n public selectBus: SelectBus<TValue, TPublicValue> = inject(SelectBus);\n\n //######################### protected properties - children #########################\n\n /**\n * Instance of element that is used as placeholder for live search\n */\n protected liveSearchPlaceholder: Signal<ElementRef<HTMLElement>|undefined|null> = viewChild('liveSearchPlaceholder', {read: ElementRef});\n\n //######################### constructor #########################\n constructor(@Inject(POPUP_OPTIONS) @Optional() options?: RecursivePartial<PopupOptions<SimplePopupCssClasses>>|null,)\n {\n this.options = deepCopyWithArrayOverride(defaultOptions as PopupOptions<SimplePopupCssClasses>,\n options);\n\n effect(() =>\n {\n if(this.options.liveSearchEnabled)\n {\n const placeholder = this.liveSearchPlaceholder();\n\n if(!placeholder)\n {\n return;\n }\n\n placeholder.nativeElement.after(this.selectPlugins.LiveSearch.pluginElement.nativeElement);\n }\n });\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Prevents blur on option click\n * @param event - Event that occured\n */\n protected preventBlur(event: MouseEvent): void\n {\n event.preventDefault();\n }\n\n /**\n * Handles option click\n * @param option - Option that was clicked\n */\n protected optionClick(option: SelectOptionState<TValue>): void\n {\n this.selectBus.optionActivate.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.pluginElement.nativeElement,\n data: option,\n });\n }\n\n /**\n * Marks option as active\n * @param option - Option to be marked as active\n */\n protected markActive(option: SelectOptionState<TValue>): void\n {\n this.selectBus.markOption.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.pluginElement.nativeElement,\n data: option,\n });\n }\n}\n","<ng-template #defaultOptionLook let-option>{{option | addNewOption | localize}}{{option | displayOptionValue | localize}}</ng-template>\n<ng-template #defaultOptionGroupLook let-text>{{text}}</ng-template>\n\n@if(selectBus.popupVisible() || options.visible)\n{\n @let result = selectPlugins.OptionsHandler.listOptions() | groupedListOptions;\n @let listOptions = result[0];\n @let size = result[1];\n \n <div [class]=\"options.cssClasses.popupContainer\" role=\"listbox\" [attr.aria-label]=\"options.texts.optionsList | localize\">\n <ng-container #liveSearchPlaceholder/>\n\n @for(optionsGroups of listOptions; track $index)\n {\n @let group = optionsGroups[1];\n @let opts = optionsGroups[0];\n\n @if(group)\n {\n <div role=\"group\"\n [id]=\"group.id\"\n [class]=\"options.cssClasses.optionGroup\"\n [attr.aria-posinset]=\"group.index + 1\"\n [attr.aria-setsize]=\"size\">\n <ng-container *ngTemplateOutlet=\"group.template() || defaultOptionGroupLook; context: {$implicit: group.text()}\"/>\n </div>\n }\n\n @for(option of opts; track option)\n {\n <div role=\"option\"\n [id]=\"`${selectBus.id}-${option.index}`\"\n [attr.aria-posinset]=\"option.index + 1\"\n [attr.aria-setsize]=\"size\"\n [attr.aria-selected]=\"option.selected()\"\n [class]=\"option | optionCssClasses: options.cssClasses: group\"\n (mouseover)=\"markActive(option)\"\n (mousedown)=\"preventBlur($event)\"\n (click)=\"optionClick(option)\">\n <div [class]=\"options.cssClasses.optionText\">\n <ng-container *ngTemplateOutlet=\"selectBus.selectOptions().templateGatherer.optionTemplate() || defaultOptionLook; context: {$implicit: option, popup: this}\"/>\n </div>\n \n @if(option.selected() && selectBus.selectOptions().multiple)\n {\n <div [class]=\"options.cssClasses.optionChecked\"></div>\n }\n </div>\n }\n }\n @empty \n {\n <div>{{options.texts.noAvailableOptions | localize}}</div>\n }\n </div>\n}\n"]}
|
|
1
|
+
{"version":3,"file":"simplePopup.component.js","sourceRoot":"","sources":["../../../../../src/plugins/popup/simplePopup/simplePopup.component.ts","../../../../../src/plugins/popup/simplePopup/simplePopup.component.html"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectionStrategy, Component, effect, ElementRef, Inject, inject, Optional, Signal, viewChild} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {LocalizePipe} from '@anglr/common';\nimport {RecursivePartial} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {Popup, PopupOptions, SelectOptionState, SelectPlugin, SimplePopupCssClasses} from '../../../interfaces';\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\nimport {CopyOptionsAsSignal} from '../../../decorators';\nimport {POPUP_OPTIONS} from '../../../misc/tokens';\nimport {AddNewOption, DisplayOptionValue, GroupedListOptions, OptionCssClasses} from '../../../pipes';\nimport {HighlightInstance, HighlightSearch} from '../../../directives';\n\n//TODO: hover into mouseover => use \"active\"\n\nconst defaultOptions: PopupOptions<SimplePopupCssClasses> =\n{\n visible: false,\n searchHighlighting: true,\n liveSearchEnabled: false,\n cssClasses:\n {\n componentElement: 'popup-component',\n option: 'option',\n optionGroup: 'option-group',\n optionText: 'option-text',\n optionChecked: 'fas fa-check',\n popupContainer: 'popup-container',\n active: 'active',\n selected: 'selected',\n inGroup: 'in-group',\n },\n texts:\n {\n noAvailableOptions: 'no options available',\n addNewOption: 'add new option',\n optionsList: 'options list',\n },\n};\n\n/**\n * Simple popup displaying options in column.\n */\n@Component(\n{\n selector: 'simple-popup',\n templateUrl: 'simplePopup.component.html',\n host:\n {\n '[id]': 'selectBus.id',\n '[class]': 'options.cssClasses.componentElement',\n },\n imports:\n [\n AddNewOption,\n LocalizePipe,\n HighlightSearch,\n NgTemplateOutlet,\n OptionCssClasses,\n DisplayOptionValue,\n GroupedListOptions,\n ],\n hostDirectives:\n [\n HighlightInstance,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SimplePopup<TValue = unknown, TPublicValue = TValue> implements Popup<TValue, TPublicValue, PopupOptions<SimplePopupCssClasses>>\n{\n //######################### public properties - implementation of SelectPlugin #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public options: PopupOptions<SimplePopupCssClasses>;\n\n /**\n * @inheritdoc\n */\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\n\n /**\n * @inheritdoc\n */\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * @inheritdoc\n */\n public selectBus: SelectBus<TValue, TPublicValue> = inject(SelectBus);\n\n //######################### protected properties - children #########################\n\n /**\n * Instance of element that is used as placeholder for live search\n */\n protected liveSearchPlaceholder: Signal<ElementRef<HTMLElement>|undefined|null> = viewChild('liveSearchPlaceholder', {read: ElementRef});\n\n //######################### constructor #########################\n constructor(@Inject(POPUP_OPTIONS) @Optional() options?: RecursivePartial<PopupOptions<SimplePopupCssClasses>>|null,)\n {\n this.options = deepCopyWithArrayOverride(defaultOptions as PopupOptions<SimplePopupCssClasses>,\n options);\n\n effect(() =>\n {\n if(this.options.liveSearchEnabled)\n {\n const placeholder = this.liveSearchPlaceholder();\n\n if(!placeholder)\n {\n return;\n }\n\n placeholder.nativeElement.after(this.selectPlugins.LiveSearch.pluginElement.nativeElement);\n }\n });\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Prevents blur on option click\n * @param event - Event that occured\n */\n protected preventBlur(event: MouseEvent): void\n {\n event.preventDefault();\n }\n\n /**\n * Handles option click\n * @param option - Option that was clicked\n */\n protected optionClick(option: SelectOptionState<TValue>): void\n {\n this.selectBus.optionActivate.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.pluginElement.nativeElement,\n data: option,\n });\n }\n\n /**\n * Marks option as active\n * @param option - Option to be marked as active\n */\n protected markActive(option: SelectOptionState<TValue>): void\n {\n this.selectBus.markOption.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.pluginElement.nativeElement,\n data: option,\n });\n }\n}\n","<ng-template #defaultOptionLook let-option>{{option | addNewOption | localize}}{{option | displayOptionValue | localize}}</ng-template>\n<ng-template #defaultOptionGroupLook let-text>{{text}}</ng-template>\n\n@if(selectBus.popupVisible() || options.visible)\n{\n @let result = selectPlugins.OptionsHandler.listOptions() | groupedListOptions;\n @let listOptions = result[0];\n @let size = result[1];\n \n <div [class]=\"options.cssClasses.popupContainer\" role=\"listbox\" [attr.aria-label]=\"options.texts.optionsList | localize\">\n <ng-container #liveSearchPlaceholder/>\n\n @for(optionsGroups of listOptions; track $index)\n {\n @let group = optionsGroups[1];\n @let opts = optionsGroups[0];\n\n @if(group)\n {\n <div role=\"group\"\n [id]=\"group.id\"\n [class]=\"options.cssClasses.optionGroup\"\n [attr.aria-posinset]=\"group.index + 1\"\n [attr.aria-setsize]=\"size\">\n <ng-container *ngTemplateOutlet=\"group.template() || defaultOptionGroupLook; context: {$implicit: group.text()}\"/>\n </div>\n }\n\n @for(option of opts; track option)\n {\n <div role=\"option\"\n [id]=\"`${selectBus.id}-${option.index}`\"\n [attr.aria-posinset]=\"option.index + 1\"\n [attr.aria-setsize]=\"size\"\n [attr.aria-selected]=\"option.selected()\"\n [class]=\"option | optionCssClasses: options.cssClasses: group\"\n (mouseover)=\"markActive(option)\"\n (mousedown)=\"preventBlur($event)\"\n (click)=\"optionClick(option)\">\n <div [class]=\"options.cssClasses.optionText\" highlightSearch #highlightSearch=\"highlightSearch\">\n <ng-container *ngTemplateOutlet=\"selectBus.selectOptions().templateGatherer.optionTemplate() || defaultOptionLook; context: {$implicit: option, popup: this}; injector: highlightSearch.injector\"/>\n </div>\n \n @if(option.selected() && selectBus.selectOptions().multiple)\n {\n <div [class]=\"options.cssClasses.optionChecked\"></div>\n }\n </div>\n }\n }\n @empty \n {\n <div>{{options.texts.noAvailableOptions | localize}}</div>\n }\n </div>\n}\n"]}
|
|
@@ -60,14 +60,14 @@ export class CommonPositioner {
|
|
|
60
60
|
this.positionChange?.unsubscribe();
|
|
61
61
|
this.positionChange = null;
|
|
62
62
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: CommonPositioner, deps: [{ token: POSITIONER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: CommonPositioner, isStandalone: true, selector: "common-positioner", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
65
65
|
}
|
|
66
66
|
__decorate([
|
|
67
67
|
CopyOptionsAsSignal(),
|
|
68
68
|
__metadata("design:type", Object)
|
|
69
69
|
], CommonPositioner.prototype, "options", void 0);
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: CommonPositioner, decorators: [{
|
|
71
71
|
type: Component,
|
|
72
72
|
args: [{
|
|
73
73
|
selector: 'common-positioner',
|
|
@@ -26,14 +26,14 @@ export class NoPositioner {
|
|
|
26
26
|
*/
|
|
27
27
|
this.selectBus = inject(SelectBus);
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NoPositioner, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: NoPositioner, isStandalone: true, selector: "no-positioner", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
31
|
}
|
|
32
32
|
__decorate([
|
|
33
33
|
CopyOptionsAsSignal(),
|
|
34
34
|
__metadata("design:type", Object)
|
|
35
35
|
], NoPositioner.prototype, "options", void 0);
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NoPositioner, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{
|
|
39
39
|
selector: 'no-positioner',
|
|
@@ -68,8 +68,8 @@ export class PopoverPositioner {
|
|
|
68
68
|
this.selectBus.popupVisible.set(false);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: PopoverPositioner, deps: [{ token: POSITIONER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: PopoverPositioner, isStandalone: true, selector: "popover-positioner", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
73
73
|
}
|
|
74
74
|
__decorate([
|
|
75
75
|
CopyOptionsAsSignal(),
|
|
@@ -81,7 +81,7 @@ __decorate([
|
|
|
81
81
|
__metadata("design:paramtypes", [ToggleEvent]),
|
|
82
82
|
__metadata("design:returntype", void 0)
|
|
83
83
|
], PopoverPositioner.prototype, "toggle", null);
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: PopoverPositioner, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
86
|
args: [{
|
|
87
87
|
selector: 'popover-positioner',
|
package/es2022/src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.js
CHANGED
|
@@ -38,7 +38,8 @@ export class DynamicValueHandler {
|
|
|
38
38
|
/**
|
|
39
39
|
* @inheritdoc
|
|
40
40
|
*/
|
|
41
|
-
this.value = computed(computedValue.bind(this),
|
|
41
|
+
this.value = computed(computedValue.bind(this), /* @ts-ignore */
|
|
42
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
42
43
|
this.options = deepCopyWithArrayOverride(defaultOptions, options);
|
|
43
44
|
}
|
|
44
45
|
//######################### public methods - implementation of ValueHandler #########################
|
|
@@ -67,8 +68,10 @@ export class DynamicValueHandler {
|
|
|
67
68
|
continue;
|
|
68
69
|
}
|
|
69
70
|
const opt = selectedOption;
|
|
70
|
-
opt.active = signal(false,
|
|
71
|
-
|
|
71
|
+
opt.active = signal(false, /* @ts-ignore */
|
|
72
|
+
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
73
|
+
opt.selected = signal(true, /* @ts-ignore */
|
|
74
|
+
...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
72
75
|
opt.index = 0;
|
|
73
76
|
selectedOptions.push(opt);
|
|
74
77
|
}
|
|
@@ -78,22 +81,24 @@ export class DynamicValueHandler {
|
|
|
78
81
|
const selectedOption = await this.options.optionGetter(value);
|
|
79
82
|
const opt = selectedOption;
|
|
80
83
|
if (opt) {
|
|
81
|
-
opt.active = signal(false,
|
|
82
|
-
|
|
84
|
+
opt.active = signal(false, /* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
86
|
+
opt.selected = signal(true, /* @ts-ignore */
|
|
87
|
+
...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
83
88
|
opt.index = 0;
|
|
84
89
|
}
|
|
85
90
|
this.selectBus.selectedOptions.set(opt ?? null);
|
|
86
91
|
}
|
|
87
92
|
});
|
|
88
93
|
}
|
|
89
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DynamicValueHandler, deps: [{ token: VALUE_HANDLER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: DynamicValueHandler, isStandalone: true, selector: "dynamic-value-handler", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
91
96
|
}
|
|
92
97
|
__decorate([
|
|
93
98
|
CopyOptionsAsSignal(),
|
|
94
99
|
__metadata("design:type", Object)
|
|
95
100
|
], DynamicValueHandler.prototype, "options", void 0);
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DynamicValueHandler, decorators: [{
|
|
97
102
|
type: Component,
|
|
98
103
|
args: [{
|
|
99
104
|
selector: 'dynamic-value-handler',
|
package/es2022/src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamicValueHandler.component.js","sourceRoot":"","sources":["../../../../../src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,uBAAuB,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAU,SAAS,EAAC,MAAM,eAAe,CAAC;AAC5I,OAAO,EAAC,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAC,qBAAqB,EAAE,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;;AAGlD,MAAM,cAAc,GACpB;IACI,YAAY,EAAE,KAAK,CAAC,EAAE;QAElB,OAAO;YACH,IAAI,EAAE,MAAM,CAAC,kCAAkC,CAAC;YAChD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;SAC3B,CAAC;IACN,CAAC;CACJ,CAAC;AAEF;;GAEG;AAOH,MAAM,OAAO,mBAAmB;IAgC5B,iEAAiE;IACjE,YAAuD,OAAiF;QAvBxI;;WAEG;QACI,kBAAa,GAAgD,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAElG;;WAEG;QACI,kBAAa,GAA4B,MAAM,CAAC,UAAU,CAAC,CAAC;QAEnE;;WAEG;QACI,cAAS,GAAoC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEtE,wGAAwG;QAExG;;WAEG;QACa,UAAK,GAAuD,QAAQ,CAAE,aAAiD,CAAC,IAAI,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"dynamicValueHandler.component.js","sourceRoot":"","sources":["../../../../../src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectionStrategy, Component, computed, ElementRef, Inject, inject, Optional, signal, Signal, untracked} from '@angular/core';\nimport {isPresent, RecursivePartial} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {ValueHandler, DynamicValueHandlerOptions, SelectOptionState} from '../../../interfaces';\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\nimport {CopyOptionsAsSignal} from '../../../decorators';\nimport {VALUE_HANDLER_OPTIONS} from '../../../misc/tokens';\nimport {computedValue} from '../../../misc/utils';\nimport {ValueComputedFunc} from '../../../misc/types';\n\nconst defaultOptions: DynamicValueHandlerOptions =\n{\n optionGetter: value =>\n {\n return {\n text: signal('please provide your optionGetter'),\n value: signal(value),\n group: signal(undefined),\n };\n },\n};\n\n/**\n * Value handler for dynamic values. That means that available values change.\n */\n@Component(\n{\n selector: 'dynamic-value-handler',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DynamicValueHandler<TValue = unknown, TPublicValue = TValue> implements ValueHandler<TValue, TPublicValue, DynamicValueHandlerOptions<TValue, TPublicValue>>\n{\n //######################### public properties - implementation of SelectPlugin #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public options: DynamicValueHandlerOptions<TValue, TPublicValue>;\n\n /**\n * @inheritdoc\n */\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\n\n /**\n * @inheritdoc\n */\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * @inheritdoc\n */\n public selectBus: SelectBus<TValue, TPublicValue> = inject(SelectBus);\n\n //######################### public properties - implementation of ValueHandler #########################\n\n /**\n * @inheritdoc\n */\n public readonly value: Signal<TPublicValue|TPublicValue[]|undefined|null> = computed((computedValue as ValueComputedFunc<TPublicValue>).bind(this));\n\n //######################### constructor #########################\n constructor(@Inject(VALUE_HANDLER_OPTIONS) @Optional() options?: RecursivePartial<DynamicValueHandlerOptions<TValue, TPublicValue>>|null,)\n {\n this.options = deepCopyWithArrayOverride(defaultOptions as DynamicValueHandlerOptions<TValue, TPublicValue>,\n options);\n }\n\n //######################### public methods - implementation of ValueHandler #########################\n\n /**\n * @inheritdoc\n */\n public setValue(value: TPublicValue|TPublicValue[]|undefined|null): void\n {\n untracked(async () =>\n {\n const selected = this.selectBus.selectedOptions();\n\n if(Array.isArray(selected))\n {\n for(const option of selected)\n {\n option.selected.set(false);\n }\n }\n else if(isPresent(selected))\n {\n selected.selected.set(false);\n }\n\n if(this.selectBus.selectOptions().multiple)\n {\n if(!Array.isArray(value))\n {\n throw new Error('You have to provide an array of values if you set multiple!');\n }\n\n const selectedOptions: SelectOptionState<TValue>[] = [];\n\n for(const val of value)\n {\n const selectedOption = await this.options.optionGetter(val);\n\n if(!selectedOption)\n {\n continue;\n }\n\n const opt = selectedOption as SelectOptionState<TValue>;\n opt.active = signal(false);\n opt.selected = signal(true);\n opt.index = 0;\n\n selectedOptions.push(opt);\n }\n\n this.selectBus.selectedOptions.set(selectedOptions);\n }\n else\n {\n const selectedOption = await this.options.optionGetter(value as TPublicValue);\n const opt = selectedOption as SelectOptionState<TValue>|undefined|null;\n\n if(opt)\n {\n opt.active = signal(false);\n opt.selected = signal(true);\n opt.index = 0;\n }\n\n this.selectBus.selectedOptions.set(opt ?? null);\n }\n });\n }\n}\n"]}
|
|
@@ -19,7 +19,8 @@ export class StaticValueHandler {
|
|
|
19
19
|
/**
|
|
20
20
|
* Postponed value that will be set when options are loaded. This is needed for case when value is set before options are loaded, so we cannot set value right away, but we will handle setting value when options are loaded
|
|
21
21
|
*/
|
|
22
|
-
this.postponedValue = signal(null,
|
|
22
|
+
this.postponedValue = signal(null, /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "postponedValue" }] : /* istanbul ignore next */ []));
|
|
23
24
|
/**
|
|
24
25
|
* @inheritdoc
|
|
25
26
|
*/
|
|
@@ -40,7 +41,8 @@ export class StaticValueHandler {
|
|
|
40
41
|
/**
|
|
41
42
|
* @inheritdoc
|
|
42
43
|
*/
|
|
43
|
-
this.value = computed(() => this.postponedValue() ?? computedValue.bind(this)(),
|
|
44
|
+
this.value = computed(() => this.postponedValue() ?? computedValue.bind(this)(), /* @ts-ignore */
|
|
45
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
44
46
|
this.options = deepCopyWithArrayOverride(defaultOptions, options);
|
|
45
47
|
effect(() => {
|
|
46
48
|
const availableOptions = this.selectPlugins.OptionsHandler.availableOptions();
|
|
@@ -114,14 +116,14 @@ export class StaticValueHandler {
|
|
|
114
116
|
}
|
|
115
117
|
});
|
|
116
118
|
}
|
|
117
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
119
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: StaticValueHandler, deps: [{ token: VALUE_HANDLER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
120
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.4", type: StaticValueHandler, isStandalone: true, selector: "static-value-handler", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
119
121
|
}
|
|
120
122
|
__decorate([
|
|
121
123
|
CopyOptionsAsSignal(),
|
|
122
124
|
__metadata("design:type", Object)
|
|
123
125
|
], StaticValueHandler.prototype, "options", void 0);
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: StaticValueHandler, decorators: [{
|
|
125
127
|
type: Component,
|
|
126
128
|
args: [{
|
|
127
129
|
selector: 'static-value-handler',
|
package/es2022/src/plugins/valueHandler/staticValueHandler/staticValueHandler.component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticValueHandler.component.js","sourceRoot":"","sources":["../../../../../src/plugins/valueHandler/staticValueHandler/staticValueHandler.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectionStrategy, Component, computed, effect, ElementRef, Inject, inject, Optional, signal, Signal, untracked, WritableSignal} from '@angular/core';\nimport {LOGGER, Logger} from '@anglr/common';\nimport {isBlank, isPresent, RecursivePartial} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {SelectOptionState, ValueHandler, ValueHandlerOptions} from '../../../interfaces';\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\nimport {CopyOptionsAsSignal} from '../../../decorators';\nimport {VALUE_HANDLER_OPTIONS} from '../../../misc/tokens';\nimport {compareValueAndOption, computedValue} from '../../../misc/utils';\nimport {ValueComputedFunc} from '../../../misc/types';\n\nconst defaultOptions: ValueHandlerOptions =\n{\n};\n\n/**\n * Value handler for static values. That means all values are available right away statically.\n */\n@Component(\n{\n selector: 'static-value-handler',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StaticValueHandler<TValue = unknown, TPublicValue = TValue> implements ValueHandler<TValue, TPublicValue, ValueHandlerOptions>\n{\n //######################### protected fields #########################\n\n /**\n * Postponed value that will be set when options are loaded. This is needed for case when value is set before options are loaded, so we cannot set value right away, but we will handle setting value when options are loaded\n */\n protected postponedValue: WritableSignal<TPublicValue|TPublicValue[]|undefined|null> = signal(null);\n\n //######################### public properties - implementation of SelectPlugin #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public options: ValueHandlerOptions;\n\n /**\n * @inheritdoc\n */\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\n\n /**\n * @inheritdoc\n */\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * @inheritdoc\n */\n public selectBus: SelectBus<TValue, TPublicValue> = inject(SelectBus);\n\n /**\n * Instance of logger for logging purposes\n */\n protected logger: Logger = inject(LOGGER);\n\n //######################### public properties - implementation of ValueHandler #########################\n\n /**\n * @inheritdoc\n */\n public readonly value: Signal<TPublicValue|TPublicValue[]|undefined|null> = computed(() => this.postponedValue() ?? (computedValue as ValueComputedFunc<TPublicValue>).bind(this)());\n\n //######################### constructor #########################\n constructor(@Inject(VALUE_HANDLER_OPTIONS) @Optional() options?: RecursivePartial<ValueHandlerOptions>|null,)\n {\n this.options = deepCopyWithArrayOverride(defaultOptions as ValueHandlerOptions,\n options);\n\n effect(() =>\n {\n const availableOptions = this.selectPlugins.OptionsHandler.availableOptions();\n const postponedValue = untracked(() => this.postponedValue());\n\n if(isPresent(availableOptions) && isPresent(postponedValue))\n {\n this.logger.verbose('Select: Value handler: setting postponed value \"{{@(4)value}}\"', {value: postponedValue});\n\n this.setValueInternal(postponedValue, availableOptions);\n this.postponedValue.set(null);\n }\n });\n }\n\n //######################### public methods - implementation of ValueHandler #########################\n\n /**\n * @inheritdoc\n */\n public setValue(value: TPublicValue|TPublicValue[]|undefined|null): void\n {\n this.logger.verbose('Select: Value handler: setting value \"{{@(4)value}}\"', {value});\n const availableOptions = untracked(() => this.selectPlugins.OptionsHandler.availableOptions());\n\n //Options are not loaded yet, so we cannot set value, but we will handle setting value when options are loaded\n if(isBlank(availableOptions))\n {\n this.logger.verbose('Select: Value handler: options not loaded yet, postponing value \"{{@(4)value}}\"', {value});\n this.postponedValue.set(value);\n\n return;\n }\n\n this.postponedValue.set(null);\n this.setValueInternal(value, availableOptions);\n }\n\n //######################### protected methods #########################\n\n /**\n * Handles setting value when options are loaded\n * @param value - Value to be set\n * @param availableOptions - Available options that are checked whether they contain value that is being set, so we can set value only if it is available in options\n */\n protected setValueInternal(value: TPublicValue|TPublicValue[]|undefined|null, availableOptions: readonly SelectOptionState<TValue>[]): void\n {\n //this keeps only values that are available in options\n untracked(() =>\n {\n const selected = this.selectBus.selectedOptions();\n\n if(Array.isArray(selected))\n {\n for(const option of selected)\n {\n option.selected.set(false);\n }\n }\n else if(isPresent(selected))\n {\n selected.selected.set(false);\n }\n\n if(this.selectBus.selectOptions().multiple)\n {\n if(isBlank(value))\n {\n this.logger.verbose('Select: Value handler: value is blank, clearing selected options');\n\n this.selectBus.selectedOptions.set([]);\n\n return;\n }\n\n if(!Array.isArray(value))\n {\n throw new Error('Value must be an array when multiple is set');\n }\n\n const selectedOptions: SelectOptionState<TValue>[] = [];\n\n for(const val of value)\n {\n const option = availableOptions.find(opt => compareValueAndOption(val, opt, this.selectBus));\n\n if(option)\n {\n option.selected.set(true);\n selectedOptions.push(option);\n }\n }\n\n this.logger.verbose('Select: Value handler: selecting multiple options value \"{{@(4)value}}\"', {value: selectedOptions});\n this.selectBus.selectedOptions.set(selectedOptions);\n }\n else\n {\n const selectedOption = availableOptions.find(opt => compareValueAndOption(value as TPublicValue, opt, this.selectBus));\n selectedOption?.selected.set(true);\n this.logger.verbose('Select: Value handler: selecting single option value \"{{@(4)value}}\"', {value: selectedOption?.value()});\n\n this.selectBus.selectedOptions.set(selectedOption ?? null);\n }\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"staticValueHandler.component.js","sourceRoot":"","sources":["../../../../../src/plugins/valueHandler/staticValueHandler/staticValueHandler.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectionStrategy, Component, computed, effect, ElementRef, Inject, inject, Optional, signal, Signal, untracked, WritableSignal} from '@angular/core';\nimport {LOGGER, Logger} from '@anglr/common';\nimport {isBlank, isPresent, RecursivePartial} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {SelectOptionState, ValueHandler, ValueHandlerOptions} from '../../../interfaces';\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\nimport {CopyOptionsAsSignal} from '../../../decorators';\nimport {VALUE_HANDLER_OPTIONS} from '../../../misc/tokens';\nimport {compareValueAndOption, computedValue} from '../../../misc/utils';\nimport {ValueComputedFunc} from '../../../misc/types';\n\nconst defaultOptions: ValueHandlerOptions =\n{\n};\n\n/**\n * Value handler for static values. That means all values are available right away statically.\n */\n@Component(\n{\n selector: 'static-value-handler',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StaticValueHandler<TValue = unknown, TPublicValue = TValue> implements ValueHandler<TValue, TPublicValue, ValueHandlerOptions>\n{\n //######################### protected fields #########################\n\n /**\n * Postponed value that will be set when options are loaded. This is needed for case when value is set before options are loaded, so we cannot set value right away, but we will handle setting value when options are loaded\n */\n protected postponedValue: WritableSignal<TPublicValue|TPublicValue[]|undefined|null> = signal(null);\n\n //######################### public properties - implementation of SelectPlugin #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public options: ValueHandlerOptions;\n\n /**\n * @inheritdoc\n */\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\n\n /**\n * @inheritdoc\n */\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * @inheritdoc\n */\n public selectBus: SelectBus<TValue, TPublicValue> = inject(SelectBus);\n\n /**\n * Instance of logger for logging purposes\n */\n protected logger: Logger = inject(LOGGER);\n\n //######################### public properties - implementation of ValueHandler #########################\n\n /**\n * @inheritdoc\n */\n public readonly value: Signal<TPublicValue|TPublicValue[]|undefined|null> = computed(() => this.postponedValue() ?? (computedValue as ValueComputedFunc<TPublicValue>).bind(this)());\n\n //######################### constructor #########################\n constructor(@Inject(VALUE_HANDLER_OPTIONS) @Optional() options?: RecursivePartial<ValueHandlerOptions>|null,)\n {\n this.options = deepCopyWithArrayOverride(defaultOptions as ValueHandlerOptions,\n options);\n\n effect(() =>\n {\n const availableOptions = this.selectPlugins.OptionsHandler.availableOptions();\n const postponedValue = untracked(() => this.postponedValue());\n\n if(isPresent(availableOptions) && isPresent(postponedValue))\n {\n this.logger.verbose('Select: Value handler: setting postponed value \"{{@(4)value}}\"', {value: postponedValue});\n\n this.setValueInternal(postponedValue, availableOptions);\n this.postponedValue.set(null);\n }\n });\n }\n\n //######################### public methods - implementation of ValueHandler #########################\n\n /**\n * @inheritdoc\n */\n public setValue(value: TPublicValue|TPublicValue[]|undefined|null): void\n {\n this.logger.verbose('Select: Value handler: setting value \"{{@(4)value}}\"', {value});\n const availableOptions = untracked(() => this.selectPlugins.OptionsHandler.availableOptions());\n\n //Options are not loaded yet, so we cannot set value, but we will handle setting value when options are loaded\n if(isBlank(availableOptions))\n {\n this.logger.verbose('Select: Value handler: options not loaded yet, postponing value \"{{@(4)value}}\"', {value});\n this.postponedValue.set(value);\n\n return;\n }\n\n this.postponedValue.set(null);\n this.setValueInternal(value, availableOptions);\n }\n\n //######################### protected methods #########################\n\n /**\n * Handles setting value when options are loaded\n * @param value - Value to be set\n * @param availableOptions - Available options that are checked whether they contain value that is being set, so we can set value only if it is available in options\n */\n protected setValueInternal(value: TPublicValue|TPublicValue[]|undefined|null, availableOptions: readonly SelectOptionState<TValue>[]): void\n {\n //this keeps only values that are available in options\n untracked(() =>\n {\n const selected = this.selectBus.selectedOptions();\n\n if(Array.isArray(selected))\n {\n for(const option of selected)\n {\n option.selected.set(false);\n }\n }\n else if(isPresent(selected))\n {\n selected.selected.set(false);\n }\n\n if(this.selectBus.selectOptions().multiple)\n {\n if(isBlank(value))\n {\n this.logger.verbose('Select: Value handler: value is blank, clearing selected options');\n\n this.selectBus.selectedOptions.set([]);\n\n return;\n }\n\n if(!Array.isArray(value))\n {\n throw new Error('Value must be an array when multiple is set');\n }\n\n const selectedOptions: SelectOptionState<TValue>[] = [];\n\n for(const val of value)\n {\n const option = availableOptions.find(opt => compareValueAndOption(val, opt, this.selectBus));\n\n if(option)\n {\n option.selected.set(true);\n selectedOptions.push(option);\n }\n }\n\n this.logger.verbose('Select: Value handler: selecting multiple options value \"{{@(4)value}}\"', {value: selectedOptions});\n this.selectBus.selectedOptions.set(selectedOptions);\n }\n else\n {\n const selectedOption = availableOptions.find(opt => compareValueAndOption(value as TPublicValue, opt, this.selectBus));\n selectedOption?.selected.set(true);\n this.logger.verbose('Select: Value handler: selecting single option value \"{{@(4)value}}\"', {value: selectedOption?.value()});\n\n this.selectBus.selectedOptions.set(selectedOption ?? null);\n }\n });\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anglr/select",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.0.0-beta.20260702112309",
|
|
4
4
|
"description": "Angular component representing html select",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"doc:api:extensions": "copyfiles -u 2 extensions/temp/select-extensions.api.md docs/content/api/ng-select-extensions && rimraf extensions/temp"
|
|
45
45
|
},
|
|
46
46
|
"engines": {
|
|
47
|
-
"node": "^
|
|
47
|
+
"node": "^22.22.3 || ^24.15.0 || >=26.0.0"
|
|
48
48
|
},
|
|
49
49
|
"repository": {
|
|
50
50
|
"type": "git",
|
|
@@ -63,42 +63,34 @@
|
|
|
63
63
|
"homepage": "https://github.com/ressurectit/ng-select",
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"@anglr/common": ">=24.2.0",
|
|
66
|
-
"@angular/common": ">=
|
|
67
|
-
"@angular/core": ">=
|
|
68
|
-
"@angular/forms": ">=
|
|
66
|
+
"@angular/common": ">=22.0.4",
|
|
67
|
+
"@angular/core": ">=22.0.4",
|
|
68
|
+
"@angular/forms": ">=22.0.4",
|
|
69
69
|
"@css-styles/common": ">=2.0.1",
|
|
70
70
|
"@jscrpt/common": ">=7.1.0",
|
|
71
71
|
"lodash-es": ">=4.18.1",
|
|
72
|
-
"rxjs": ">=7.
|
|
73
|
-
"tslib": "
|
|
72
|
+
"rxjs": ">=7.8.2",
|
|
73
|
+
"tslib": "^2.8.1"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@
|
|
77
|
-
"@angular/
|
|
78
|
-
"@angular/
|
|
79
|
-
"@
|
|
80
|
-
"@
|
|
81
|
-
"@
|
|
82
|
-
"@
|
|
83
|
-
"@css-styles/common": "2.0.1",
|
|
84
|
-
"@jscrpt/common": "7.1.0",
|
|
85
|
-
"@microsoft/api-documenter": "7.29.5",
|
|
86
|
-
"@microsoft/api-extractor": "7.57.5",
|
|
87
|
-
"@stylistic/eslint-plugin": "5.7.1",
|
|
88
|
-
"@types/node": "22.15.29",
|
|
76
|
+
"@angular/compiler": "22.0.4",
|
|
77
|
+
"@angular/compiler-cli": "22.0.4",
|
|
78
|
+
"@angular/language-service": "22.0.4",
|
|
79
|
+
"@microsoft/api-documenter": "7.30.7",
|
|
80
|
+
"@microsoft/api-extractor": "7.58.9",
|
|
81
|
+
"@stylistic/eslint-plugin": "5.10.0",
|
|
82
|
+
"@types/node": "26.0.1",
|
|
89
83
|
"@types/lodash-es": "4.17.12",
|
|
90
84
|
"copyfiles": "2.4.1",
|
|
91
|
-
"eslint": "9.39.
|
|
85
|
+
"eslint": "9.39.4",
|
|
92
86
|
"eslint-plugin-ressurectit": "0.4.0",
|
|
93
87
|
"lerna": "9.0.4",
|
|
94
|
-
"npm-git-version": "
|
|
88
|
+
"npm-git-version": "4.0.0",
|
|
95
89
|
"path-exists-cli": "2.0.0",
|
|
96
90
|
"replace-in-file": "8.4.0",
|
|
97
|
-
"rimraf": "6.1.
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"typescript": "5.9.3",
|
|
101
|
-
"typescript-eslint": "8.54.0"
|
|
91
|
+
"rimraf": "6.1.3",
|
|
92
|
+
"typescript": "6.0.3",
|
|
93
|
+
"typescript-eslint": "8.62.0"
|
|
102
94
|
},
|
|
103
95
|
"module": "./es2022/src/index.js",
|
|
104
96
|
"typings": "./src/index.d.ts",
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { OnDestroy, Signal } from '@angular/core';
|
|
2
|
+
import { Select } from '../../components';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Directive that manages highlighting for popup
|
|
6
|
+
*/
|
|
7
|
+
export declare class HighlightInstance<TValue = unknown, TPublicValue = TValue> implements OnDestroy {
|
|
8
|
+
/**
|
|
9
|
+
* Instance of select component
|
|
10
|
+
*/
|
|
11
|
+
protected select: Select<TValue, TPublicValue>;
|
|
12
|
+
/**
|
|
13
|
+
* Shared instance of highlight
|
|
14
|
+
*/
|
|
15
|
+
protected highlight: Highlight;
|
|
16
|
+
/**
|
|
17
|
+
* Signal that represents current search query
|
|
18
|
+
*/
|
|
19
|
+
searchQuery: Signal<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Indication whether highlighting is enabled or not
|
|
22
|
+
*/
|
|
23
|
+
enabled: Signal<boolean>;
|
|
24
|
+
constructor();
|
|
25
|
+
/**
|
|
26
|
+
* @inheritdoc
|
|
27
|
+
*/
|
|
28
|
+
ngOnDestroy(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Registers ranges for highlighting
|
|
31
|
+
* @param ranges - Ranges to be registered for highlighting
|
|
32
|
+
*/
|
|
33
|
+
registerHighlightRanges(ranges: Range[]): void;
|
|
34
|
+
/**
|
|
35
|
+
* Unregisters ranges from highlighting
|
|
36
|
+
* @param ranges - Ranges to be unregistered from highlighting
|
|
37
|
+
*/
|
|
38
|
+
unregisterHighlightRanges(ranges: Range[]): void;
|
|
39
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HighlightInstance<any, any>, never>;
|
|
40
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HighlightInstance<any, any>, "[highlightInstance]", never, {}, {}, never, never, true, never>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=highlightInstance.directive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlightInstance.directive.d.ts","sourceRoot":"","sources":["highlightInstance.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;;AAGxC;;GAEG;AACH,qBAIa,iBAAiB,CAAC,MAAM,GAAG,OAAO,EAAE,YAAY,GAAG,MAAM,CAAE,YAAW,SAAS;IAIxF;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAkB;IAEhE;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,CAAmB;IAIjD;;OAEG;IACI,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAU/B;IAEH;;OAEG;IACI,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAU5B;;IAUH;;OAEG;IACI,WAAW,IAAI,IAAI;IAO1B;;;OAGG;IACI,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAQrD;;;OAGG;IACI,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;yCAhF9C,iBAAiB;2CAAjB,iBAAiB;CAuF7B"}
|