@anglr/select 16.0.4-beta.20260511085948 → 16.1.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 CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## Version 16.1.0 (2026-07-01)
4
+
5
+ ### Features
6
+
7
+ - new `DisplayOptionValue` pipe, that transforms select option into string
8
+ - updated `SelectBusOptions` interface
9
+ - **new properties**
10
+ - `displayOptionValue` function used for transformation of option into display text, if not specified, displaySelectedValue will be used for transforming option into display text
11
+ - updated `SimplePopup` plugin component
12
+ - now supports customizing displayed option text using `displayOptionValue`
13
+
3
14
  ## Version 16.0.3 (2026-05-04)
4
15
 
5
16
  ### Bug Fixes
@@ -24,6 +24,7 @@ const defaultOptions = {
24
24
  placeholder: 'please select value',
25
25
  closeOnSelect: true,
26
26
  displaySelectedValue: option => option.text(),
27
+ displayOptionValue: null,
27
28
  valueExtractor: (option) => option.value(),
28
29
  valueComparer: (source, target) => source === target,
29
30
  textExtractor: (option) => option.text(),
@@ -1 +1 @@
1
- {"version":3,"file":"select.component.js","sourceRoot":"","sources":["../../../../src/components/select/select.component.ts","../../../../src/components/select/select.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, Input, viewChild, ViewContainerRef, Signal, WritableSignal, signal, Inject, Optional, Type, resolveForwardRef, FactoryProvider, effect, forwardRef, Attribute, ElementRef, computed, input, booleanAttribute, InputSignalWithTransform, ComponentRef, DOCUMENT, TemplateRef, contentChild, contentChildren} from '@angular/core';\nimport {getHostElement, LOGGER, Logger} from '@anglr/common';\nimport {isPresent, RecursivePartial, renderToBody, normalizeAccent} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {InitState, Interactions, InteractionsOptions, KeyboardHandler, KeyboardHandlerOptions, LiveSearch, LiveSearchOptions, NormalState, NormalStateContext, NormalStateOptions, NormalStateTagContext, OptionsGatherer, OptionsHandler, OptionsHandlerOptions, PluginDescription, Popup, PopupContext, PopupOptions, Positioner, PositionerOptions, ReadonlyState, ReadonlyStateOptions, SelectApi, SelectCssClasses, SelectEvents, SelectOption, SelectOptions, SelectOptionState, SelectPlugin, TemplateGatherer, ValueHandler, ValueHandlerOptions} from '../../interfaces';\nimport {INTERACTIONS_TYPE, KEYBOARD_HANDLER_TYPE, LIVE_SEARCH_TYPE, NORMAL_STATE_TYPE, OPTIONS_HANDLER_TYPE, POPUP_TYPE, POSITIONER_TYPE, READONLY_STATE_TYPE, SELECT_OPTIONS, VALUE_HANDLER_TYPE} from '../../misc/tokens';\nimport {SelectPluginType} from '../../misc/enums';\nimport {SelectBus, SelectPluginInstances} from '../../misc/classes';\nimport {CommonPositioner, StaticValueHandler, SimpleInteractions, SimpleOptionsHandler, SimpleKeyboardHandler, SimpleNormalState, SimplePopup, NoLiveSearch} from '../../plugins';\nimport {CopyOptionsAsSignal} from '../../decorators';\nimport {SelectAction, SelectFunction} from '../../misc/types';\nimport {NormalStateTagTemplate, NormalStateTemplate, OptionTemplate} from '../../directives';\nimport {Option} from '../option/option.component';\n\n//TODO: optimize options change detection, currently it is based on reference change, but it could be optimized by checking only changed properties, or by using signals for options properties\n\n/**\n * Default 'SelectOptions'\n */\nconst defaultOptions: Omit<SelectOptions, 'optionsGatherer'|'templateGatherer'> =\n{\n absolute: false,\n multiple: false,\n readonly: false,\n containerElement: 'div.select-component',\n placeholder: 'please select value',\n closeOnSelect: true,\n displaySelectedValue: option => option.text(),\n valueExtractor: (option: SelectOption) => option.value(),\n valueComparer: (source, target) => source === target,\n textExtractor: (option: SelectOption) => option.text(),\n normalize: <TText extends string|undefined|null>(value: TText) => isPresent(value) ? normalizeAccent(value) as TText : value,\n textCompare: (source: string, target: string) => !!source.match(new RegExp(target, 'i')),\n cssClasses:\n {\n visualContainer: 'visual-container',\n selectElement: 'select-component',\n },\n plugins:\n {\n interactions: <PluginDescription<Interactions, InteractionsOptions>>\n {\n type: forwardRef(() => SimpleInteractions),\n },\n keyboardHandler: <PluginDescription<KeyboardHandler, KeyboardHandlerOptions>>\n {\n type: forwardRef(() => SimpleKeyboardHandler),\n },\n liveSearch: <PluginDescription<LiveSearch, LiveSearchOptions>>\n {\n type: forwardRef(() => NoLiveSearch),\n },\n normalState: <PluginDescription<NormalState, NormalStateOptions>>\n {\n type: forwardRef(() => SimpleNormalState),\n },\n optionsHandler: <PluginDescription<OptionsHandler, OptionsHandlerOptions>>\n {\n type: forwardRef(() => SimpleOptionsHandler),\n },\n popup: <PluginDescription<Popup, PopupOptions>>\n {\n type: forwardRef(() => SimplePopup),\n },\n positioner: <PluginDescription<Positioner, PositionerOptions>>\n {\n type: forwardRef(() => CommonPositioner),\n },\n readonlyState: <PluginDescription<ReadonlyState, ReadonlyStateOptions>>\n {\n type: forwardRef(() => SimpleNormalState),\n },\n valueHandler: <PluginDescription<ValueHandler, ValueHandlerOptions>>\n {\n type: forwardRef(() => StaticValueHandler),\n },\n },\n};\n\n/**\n * Component that represents Select itself, allows selection of value from options\n */\n@Component(\n{\n selector: 'ng-select',\n templateUrl: 'select.component.html',\n styleUrl: 'select.component.css',\n host:\n {\n '[class]': 'selectOptions.cssClasses.selectElement',\n },\n providers:\n [\n <FactoryProvider>\n {\n provide: SelectPluginInstances,\n useFactory: () => new SelectPluginInstances(),\n },\n SelectBus,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Select<TValue = unknown, TPublicValue = TValue> implements SelectApi<TValue, TPublicValue, SelectCssClasses>, OptionsGatherer<TValue>, TemplateGatherer<TValue, TPublicValue>\n{\n //######################### protected fields #########################\n\n /**\n * Instance of popup component used for positioning over page body when absolute option is true\n */\n protected popupComponentRef: ComponentRef<Popup<TValue, TPublicValue>>|undefined|null;\n\n /**\n * Object storing current used plugin type\n */\n protected pluginTypes: Record<SelectPluginType, Type<SelectPlugin<unknown, TValue, TPublicValue>>|undefined|null> =\n {\n Interactions: null,\n KeyboardHandler: null,\n LiveSearch: null,\n NormalState: null,\n OptionsHandler: null,\n Popup: null,\n Positioner: null,\n ReadonlyState: null,\n ValueHandler: null,\n };\n\n /**\n * Signal that holds init state of live search plugin\n */\n protected liveSearchInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of interactions plugin\n */\n protected interactionsInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of options handler plugin\n */\n protected optionsHandlerInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of positioner plugin\n */\n protected positionerInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of keyboard plugin\n */\n protected keyboardInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of value handler plugin\n */\n protected valueHandlerInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of readonly state plugin\n */\n protected readonlyStateInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of normal state plugin\n */\n protected normalStateInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of popup plugin\n */\n protected popupInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Initialization state of all plugin init options\n */\n protected optionsInit: Signal<InitState> = computed(() => ({initialized: this.normalStateInit() &&\n this.keyboardInit() &&\n this.popupInit() &&\n this.positionerInit() &&\n this.readonlyStateInit() &&\n this.valueHandlerInit() &&\n this.liveSearchInit() &&\n this.interactionsInit() &&\n this.optionsHandlerInit()}));\n\n /**\n * Information whether is select initialized or not, changes when Select is initialized or reinitialized, if value is false Select was not initialized yet\n */\n protected initializedSignal: WritableSignal<boolean> = signal(false);\n\n //######################### protected properties - children #########################\n\n /**\n * Container used for rendering live search plugin\n */\n protected liveSearchContainer: Signal<ViewContainerRef> = viewChild.required('liveSearch', {read: ViewContainerRef});\n\n /**\n * Container used for rendering interactions plugin\n */\n protected interactionsContainer: Signal<ViewContainerRef> = viewChild.required('interactions', {read: ViewContainerRef});\n\n /**\n * Container used for rendering options handler plugin\n */\n protected optionsHandlerContainer: Signal<ViewContainerRef> = viewChild.required('optionsHandler', {read: ViewContainerRef});\n\n /**\n * Container used for rendering positioner plugin\n */\n protected positionerContainer: Signal<ViewContainerRef> = viewChild.required('positioner', {read: ViewContainerRef});\n\n /**\n * Container used for rendering keyboard handler plugin\n */\n protected keyboardHandlerContainer: Signal<ViewContainerRef> = viewChild.required('keyboardHandler', {read: ViewContainerRef});\n\n /**\n * Container used for rendering value handler plugin\n */\n protected valueHandlerContainer: Signal<ViewContainerRef> = viewChild.required('valueHandler', {read: ViewContainerRef});\n\n /**\n * Container used for rendering readonly state plugin\n */\n protected readonlyStateContainer: Signal<ViewContainerRef> = viewChild.required('readonlyState', {read: ViewContainerRef});\n\n /**\n * Container used for rendering normal state plugin\n */\n protected normalStateContainer: Signal<ViewContainerRef> = viewChild.required('normalState', {read: ViewContainerRef});\n\n /**\n * Container used for rendering popup plugin\n */\n protected popupContainer: Signal<ViewContainerRef> = viewChild.required('popup', {read: ViewContainerRef});\n\n //######################### public properties #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public selectOptions: SelectOptions<TValue, TPublicValue, SelectCssClasses>;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets Select options\n */\n @Input({alias: 'selectOptions'})\n public get selectOptionsInput(): SelectOptions<TValue, TPublicValue, SelectCssClasses>\n {\n return this.selectOptions;\n }\n public set selectOptionsInput(value: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>)\n {\n this.selectOptions = value as SelectOptions<TValue, TPublicValue, SelectCssClasses>;\n }\n\n /**\n * Indication whether should be Select disabled or not\n */\n public disabled: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n /**\n * Indication whether should be Select readonly or not\n */\n public readonly: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n //######################### public properties - implementation of SelectApi #########################\n\n /**\n * @inheritdoc\n */\n public get initialized(): Signal<boolean>\n {\n return this.initializedSignal.asReadonly();\n }\n\n /**\n * @inheritdoc\n */\n public get events(): SelectEvents\n {\n return this.bus;\n }\n\n //######################### public properties - implementation of TemplateGatherer #########################\n\n /**\n * @inheritdoc\n */\n public readonly normalStateTemplate: Signal<TemplateRef<NormalStateContext<TValue, TPublicValue>>|undefined|null> = contentChild(NormalStateTemplate, {read: TemplateRef});\n\n /**\n * @inheritdoc\n */\n public readonly optionTemplate: Signal<TemplateRef<PopupContext<TValue, TPublicValue>>|undefined|null> = contentChild(OptionTemplate, {read: TemplateRef});\n\n /**\n * @inheritdoc\n */\n public readonly normalStateTagTemplate: Signal<TemplateRef<NormalStateTagContext<TValue, TPublicValue>>|undefined|null> = contentChild(NormalStateTagTemplate, {read: TemplateRef});\n\n //######################### public properties - implementation of OptionsGatherer #########################\n\n /**\n * Array of all available options for select\n */\n public readonly availableOptions: Signal<readonly SelectOptionState<TValue>[]|undefined|null> = contentChildren<SelectOptionState<TValue>>(Option, {descendants: true});\n\n //######################### constructors #########################\n constructor(protected pluginInstances: SelectPluginInstances<TValue, TPublicValue>,\n protected bus: SelectBus<TValue, TPublicValue>,\n @Inject(LOGGER) protected logger: Logger,\n element: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) document: HTMLDocument,\n @Attribute('multiple') multiple?: string|null,\n @Inject(NORMAL_STATE_TYPE) @Optional() normalStateType?: Type<NormalState<TValue, TPublicValue>>|null,\n @Inject(KEYBOARD_HANDLER_TYPE) @Optional() keyboardHandlerType?: Type<KeyboardHandler<TValue, TPublicValue>>|null,\n @Inject(POPUP_TYPE) @Optional() popupType?: Type<Popup<TValue, TPublicValue>>|null,\n @Inject(POSITIONER_TYPE) @Optional() positionerType?: Type<Positioner<TValue, TPublicValue>>|null,\n @Inject(READONLY_STATE_TYPE) @Optional() readonlyStateType?: Type<ReadonlyState<TValue, TPublicValue>>|null,\n @Inject(VALUE_HANDLER_TYPE) @Optional() valueHandlerType?: Type<ValueHandler<TValue, TPublicValue>>|null,\n @Inject(LIVE_SEARCH_TYPE) @Optional() liveSearchType?: Type<LiveSearch<TValue, TPublicValue>>|null,\n @Inject(INTERACTIONS_TYPE) @Optional() interactionsType?: Type<Interactions<TValue, TPublicValue>>|null,\n @Inject(OPTIONS_HANDLER_TYPE) @Optional() optionsHandlerType?: Type<OptionsHandler<TValue, TPublicValue>>|null,\n @Inject(SELECT_OPTIONS) @Optional() options?: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>|null,)\n {\n //is present (value is not important)\n const multipleDefault = isPresent(multiple);\n const opts: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>> = deepCopyWithArrayOverride({}, options);\n\n opts.plugins ??= {};\n\n if(keyboardHandlerType)\n {\n opts.plugins.keyboardHandler ??= {};\n opts.plugins.keyboardHandler.type = keyboardHandlerType;\n }\n\n if(normalStateType)\n {\n opts.plugins.normalState ??= {};\n opts.plugins.normalState.type = normalStateType;\n }\n\n if(popupType)\n {\n opts.plugins.popup ??= {};\n opts.plugins.popup.type = popupType;\n }\n\n if(positionerType)\n {\n opts.plugins.positioner ??= {};\n opts.plugins.positioner.type = positionerType;\n }\n\n if(readonlyStateType)\n {\n opts.plugins.readonlyState ??= {};\n opts.plugins.readonlyState.type = readonlyStateType;\n }\n\n if(valueHandlerType)\n {\n opts.plugins.valueHandler ??= {};\n opts.plugins.valueHandler.type = valueHandlerType;\n }\n\n if(liveSearchType)\n {\n opts.plugins.liveSearch ??= {};\n opts.plugins.liveSearch.type = liveSearchType;\n }\n\n if(interactionsType)\n {\n opts.plugins.interactions ??= {};\n opts.plugins.interactions.type = interactionsType;\n }\n\n if(optionsHandlerType)\n {\n opts.plugins.optionsHandler ??= {};\n opts.plugins.optionsHandler.type = optionsHandlerType;\n }\n\n this.selectOptions = deepCopyWithArrayOverride(\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\n {\n optionsGatherer: this,\n templateGatherer: this,\n },\n defaultOptions as SelectOptions<TValue, TPublicValue, SelectCssClasses>,\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\n {\n multiple: multipleDefault,\n },\n opts);\n\n this.logger.verbose('Select: ctor options initialized {{@(4)options}}', {options: this.selectOptions});\n\n bus.selectElement = signal(element).asReadonly();\n bus.selectOptions = computed(() => this.selectOptions);\n\n //dynamic update of readonly state in options\n effect(() =>\n {\n const readonly = this.readonly() || this.disabled();\n\n this.selectOptions =\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\n {\n readonly: readonly,\n } as SelectOptions<TValue, TPublicValue, SelectCssClasses>;\n\n this.logger.verbose('Select: readonly updated {{readonly}}', {readonly});\n });\n\n //create and initialize options for static plugins\n effect(async () =>\n {\n const selectOptions = this.selectOptions;\n const liveSearchContainer = this.liveSearchContainer();\n const interactionsContainer = this.interactionsContainer();\n const optionsHandlerContainer = this.optionsHandlerContainer();\n const positionerContainer = this.positionerContainer();\n const keyboardHandlerContainer = this.keyboardHandlerContainer();\n const valueHandlerContainer = this.valueHandlerContainer();\n\n await this.createPlugin(selectOptions.plugins?.liveSearch, SelectPluginType.LiveSearch, liveSearchContainer, this.liveSearchInit);\n await this.createPlugin(selectOptions.plugins?.interactions, SelectPluginType.Interactions, interactionsContainer, this.interactionsInit);\n await this.createPlugin(selectOptions.plugins?.optionsHandler, SelectPluginType.OptionsHandler, optionsHandlerContainer, this.optionsHandlerInit);\n await this.createPlugin(selectOptions.plugins?.positioner, SelectPluginType.Positioner, positionerContainer, this.positionerInit);\n await this.createPlugin(selectOptions.plugins?.keyboardHandler, SelectPluginType.KeyboardHandler, keyboardHandlerContainer, this.keyboardInit);\n await this.createPlugin(selectOptions.plugins?.valueHandler, SelectPluginType.ValueHandler, valueHandlerContainer, this.valueHandlerInit);\n });\n\n //create and initialize options for state plugins (normal and readonly)\n effect(() =>\n {\n const readonlyStateContainer = this.readonlyStateContainer();\n const normalStateContainer = this.normalStateContainer();\n const selectOptions = this.selectOptions;\n\n if(selectOptions.readonly)\n {\n this.destroyPlugin(SelectPluginType.NormalState, normalStateContainer, this.normalStateInit);\n this.normalStateInit.set(true);\n this.createPlugin(this.selectOptions.plugins?.readonlyState, SelectPluginType.ReadonlyState, readonlyStateContainer, this.readonlyStateInit);\n }\n else\n {\n this.destroyPlugin(SelectPluginType.ReadonlyState, readonlyStateContainer, this.readonlyStateInit);\n this.readonlyStateInit.set(true);\n this.createPlugin(this.selectOptions.plugins?.normalState, SelectPluginType.NormalState, normalStateContainer, this.normalStateInit);\n }\n });\n\n //create and initialize options for popup plugin, allows absolute positioning\n effect(() =>\n {\n const selectOptions = this.selectOptions;\n const popupContainer = this.popupContainer();\n\n this.destroyPlugin(SelectPluginType.Popup, popupContainer, this.popupInit);\n this.createPlugin(this.selectOptions.plugins?.popup, SelectPluginType.Popup, this.popupContainer(), this.popupInit);\n\n if(selectOptions.absolute && this.popupComponentRef)\n {\n const element = getHostElement(this.popupComponentRef);\n\n if(!element)\n {\n throw new Error('Could not get element of popup component');\n }\n\n renderToBody(document, element, selectOptions.containerElement);\n }\n });\n\n //initialize plugins when all options are initialized\n effect(() =>\n {\n this.initializedSignal.set(false);\n\n if(this.optionsInit().initialized)\n {\n this.initializedSignal.set(true);\n }\n });\n }\n\n //######################### public methods #########################\n\n /**\n * @inheritdoc\n */\n public getPlugin(pluginType: SelectPluginType.Interactions): Interactions<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.KeyboardHandler): KeyboardHandler<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.LiveSearch): LiveSearch<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.NormalState): NormalState<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.OptionsHandler): OptionsHandler<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.Popup): Popup<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.Positioner): Positioner<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.ReadonlyState): ReadonlyState<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.ValueHandler): ValueHandler<TValue, TPublicValue>;\n public getPlugin<PluginInstance extends SelectPlugin<unknown, TValue, TPublicValue>>(pluginType: SelectPluginType): PluginInstance\n {\n return this.pluginInstances[pluginType] as PluginInstance;\n }\n\n /**\n * @inheritdoc\n */\n public execute(...actions: SelectAction<TValue, TPublicValue, SelectCssClasses>[])\n {\n if(!actions)\n {\n return;\n }\n\n actions.forEach(action => action(this));\n }\n\n /**\n * @inheritdoc\n */\n public executeAndReturn<TResult>(func: SelectFunction<TResult, TValue, TPublicValue, SelectCssClasses>): TResult\n {\n if(!func)\n {\n throw new Error('Function is required');\n }\n\n return func(this);\n }\n\n // //######################### protected methods #########################\n\n /**\n * Creates plugin\n * @param pluginDescription - Information about plugin that should be created\n * @param pluginType - Key of plugin used for pluginInstances\n * @param pluginViewContainer - Container where should be plugin created\n * @param initOptions - Signal that hold information about init options state for this plugin\n */\n protected async createPlugin<TPlugin extends SelectPlugin<unknown, TValue, TPublicValue>>(pluginDescription: PluginDescription<TPlugin>|undefined|null,\n pluginType: SelectPluginType,\n pluginViewContainer: ViewContainerRef,\n initOptions: WritableSignal<boolean>,): Promise<void>\n {\n this.logger.verbose('Select: creating plugin \"{{type}}\", with type \"{{typ}}\"', {type: pluginType, typ: pluginDescription?.type});\n\n if(!pluginDescription?.type)\n {\n this.destroyPlugin(pluginType, pluginViewContainer, initOptions);\n\n return;\n }\n\n const type = resolveForwardRef(pluginDescription.type);\n\n //new type provided\n if(type != this.pluginTypes[pluginType])\n {\n this.logger.verbose('Select: creating plugin instance for \"{{type}}\"', {type: pluginType});\n\n initOptions.set(false);\n this.pluginTypes[pluginType] = type;\n pluginViewContainer.clear();\n\n const component = pluginViewContainer.createComponent(type);\n component.changeDetectorRef.detectChanges();\n this.pluginInstances[pluginType] = component.instance;\n\n if(pluginType == SelectPluginType.Popup)\n {\n this.popupComponentRef = component as ComponentRef<Popup>;\n }\n }\n\n //options are available, set them\n if(pluginDescription.options)\n {\n this.logger.verbose('Select: setting options for \"{{type}}\" plugin, options: {{@(4)options}}', {type: pluginType, options: pluginDescription.options});\n\n initOptions.set(false);\n this.pluginInstances[pluginType].options = pluginDescription.options;\n }\n\n this.logger.verbose('Select: options initialized for \"{{type}}\" plugin', {type: pluginType});\n initOptions.set(true);\n }\n\n /**\n * Destroys plugin\n * @param pluginType - Plugin type to be destroyed\n * @param plugiViewContainer - Container which will be emptied\n * @param initOptions - Signal that hold information about init options state for this plugin\n */\n protected destroyPlugin(pluginType: SelectPluginType,\n pluginViewContainer: ViewContainerRef,\n initOptions: WritableSignal<boolean>,): void\n {\n if(pluginType == SelectPluginType.Popup)\n {\n this.popupComponentRef = null;\n }\n\n this.logger.verbose('Select: destroying plugin \"{{type}}\"', {type: pluginType});\n\n pluginViewContainer.clear();\n initOptions.set(false);\n this.pluginTypes[pluginType] = null;\n }\n}\n","<ng-container #liveSearch />\r\n<ng-container #interactions />\r\n<ng-container #optionsHandler />\r\n<ng-container #positioner />\r\n<ng-container #keyboardHandler />\r\n<ng-container #valueHandler />\r\n\r\n<div [class]=\"selectOptions.cssClasses.visualContainer\">\r\n <ng-container #readonlyState />\r\n <ng-container #normalState />\r\n <ng-container #popup />\r\n</div>\r\n"]}
1
+ {"version":3,"file":"select.component.js","sourceRoot":"","sources":["../../../../src/components/select/select.component.ts","../../../../src/components/select/select.component.html"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, Input, viewChild, ViewContainerRef, Signal, WritableSignal, signal, Inject, Optional, Type, resolveForwardRef, FactoryProvider, effect, forwardRef, Attribute, ElementRef, computed, input, booleanAttribute, InputSignalWithTransform, ComponentRef, DOCUMENT, TemplateRef, contentChild, contentChildren} from '@angular/core';\nimport {getHostElement, LOGGER, Logger} from '@anglr/common';\nimport {isPresent, RecursivePartial, renderToBody, normalizeAccent} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {InitState, Interactions, InteractionsOptions, KeyboardHandler, KeyboardHandlerOptions, LiveSearch, LiveSearchOptions, NormalState, NormalStateContext, NormalStateOptions, NormalStateTagContext, OptionsGatherer, OptionsHandler, OptionsHandlerOptions, PluginDescription, Popup, PopupContext, PopupOptions, Positioner, PositionerOptions, ReadonlyState, ReadonlyStateOptions, SelectApi, SelectCssClasses, SelectEvents, SelectOption, SelectOptions, SelectOptionState, SelectPlugin, TemplateGatherer, ValueHandler, ValueHandlerOptions} from '../../interfaces';\nimport {INTERACTIONS_TYPE, KEYBOARD_HANDLER_TYPE, LIVE_SEARCH_TYPE, NORMAL_STATE_TYPE, OPTIONS_HANDLER_TYPE, POPUP_TYPE, POSITIONER_TYPE, READONLY_STATE_TYPE, SELECT_OPTIONS, VALUE_HANDLER_TYPE} from '../../misc/tokens';\nimport {SelectPluginType} from '../../misc/enums';\nimport {SelectBus, SelectPluginInstances} from '../../misc/classes';\nimport {CommonPositioner, StaticValueHandler, SimpleInteractions, SimpleOptionsHandler, SimpleKeyboardHandler, SimpleNormalState, SimplePopup, NoLiveSearch} from '../../plugins';\nimport {CopyOptionsAsSignal} from '../../decorators';\nimport {SelectAction, SelectFunction} from '../../misc/types';\nimport {NormalStateTagTemplate, NormalStateTemplate, OptionTemplate} from '../../directives';\nimport {Option} from '../option/option.component';\n\n//TODO: optimize options change detection, currently it is based on reference change, but it could be optimized by checking only changed properties, or by using signals for options properties\n\n/**\n * Default 'SelectOptions'\n */\nconst defaultOptions: Omit<SelectOptions, 'optionsGatherer'|'templateGatherer'> =\n{\n absolute: false,\n multiple: false,\n readonly: false,\n containerElement: 'div.select-component',\n placeholder: 'please select value',\n closeOnSelect: true,\n displaySelectedValue: option => option.text(),\n displayOptionValue: null,\n valueExtractor: (option: SelectOption) => option.value(),\n valueComparer: (source, target) => source === target,\n textExtractor: (option: SelectOption) => option.text(),\n normalize: <TText extends string|undefined|null>(value: TText) => isPresent(value) ? normalizeAccent(value) as TText : value,\n textCompare: (source: string, target: string) => !!source.match(new RegExp(target, 'i')),\n cssClasses:\n {\n visualContainer: 'visual-container',\n selectElement: 'select-component',\n },\n plugins:\n {\n interactions: <PluginDescription<Interactions, InteractionsOptions>>\n {\n type: forwardRef(() => SimpleInteractions),\n },\n keyboardHandler: <PluginDescription<KeyboardHandler, KeyboardHandlerOptions>>\n {\n type: forwardRef(() => SimpleKeyboardHandler),\n },\n liveSearch: <PluginDescription<LiveSearch, LiveSearchOptions>>\n {\n type: forwardRef(() => NoLiveSearch),\n },\n normalState: <PluginDescription<NormalState, NormalStateOptions>>\n {\n type: forwardRef(() => SimpleNormalState),\n },\n optionsHandler: <PluginDescription<OptionsHandler, OptionsHandlerOptions>>\n {\n type: forwardRef(() => SimpleOptionsHandler),\n },\n popup: <PluginDescription<Popup, PopupOptions>>\n {\n type: forwardRef(() => SimplePopup),\n },\n positioner: <PluginDescription<Positioner, PositionerOptions>>\n {\n type: forwardRef(() => CommonPositioner),\n },\n readonlyState: <PluginDescription<ReadonlyState, ReadonlyStateOptions>>\n {\n type: forwardRef(() => SimpleNormalState),\n },\n valueHandler: <PluginDescription<ValueHandler, ValueHandlerOptions>>\n {\n type: forwardRef(() => StaticValueHandler),\n },\n },\n};\n\n/**\n * Component that represents Select itself, allows selection of value from options\n */\n@Component(\n{\n selector: 'ng-select',\n templateUrl: 'select.component.html',\n styleUrl: 'select.component.css',\n host:\n {\n '[class]': 'selectOptions.cssClasses.selectElement',\n },\n providers:\n [\n <FactoryProvider>\n {\n provide: SelectPluginInstances,\n useFactory: () => new SelectPluginInstances(),\n },\n SelectBus,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Select<TValue = unknown, TPublicValue = TValue> implements SelectApi<TValue, TPublicValue, SelectCssClasses>, OptionsGatherer<TValue>, TemplateGatherer<TValue, TPublicValue>\n{\n //######################### protected fields #########################\n\n /**\n * Instance of popup component used for positioning over page body when absolute option is true\n */\n protected popupComponentRef: ComponentRef<Popup<TValue, TPublicValue>>|undefined|null;\n\n /**\n * Object storing current used plugin type\n */\n protected pluginTypes: Record<SelectPluginType, Type<SelectPlugin<unknown, TValue, TPublicValue>>|undefined|null> =\n {\n Interactions: null,\n KeyboardHandler: null,\n LiveSearch: null,\n NormalState: null,\n OptionsHandler: null,\n Popup: null,\n Positioner: null,\n ReadonlyState: null,\n ValueHandler: null,\n };\n\n /**\n * Signal that holds init state of live search plugin\n */\n protected liveSearchInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of interactions plugin\n */\n protected interactionsInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of options handler plugin\n */\n protected optionsHandlerInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of positioner plugin\n */\n protected positionerInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of keyboard plugin\n */\n protected keyboardInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of value handler plugin\n */\n protected valueHandlerInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of readonly state plugin\n */\n protected readonlyStateInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of normal state plugin\n */\n protected normalStateInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Signal that holds init state of popup plugin\n */\n protected popupInit: WritableSignal<boolean> = signal(false);\n\n /**\n * Initialization state of all plugin init options\n */\n protected optionsInit: Signal<InitState> = computed(() => ({initialized: this.normalStateInit() &&\n this.keyboardInit() &&\n this.popupInit() &&\n this.positionerInit() &&\n this.readonlyStateInit() &&\n this.valueHandlerInit() &&\n this.liveSearchInit() &&\n this.interactionsInit() &&\n this.optionsHandlerInit()}));\n\n /**\n * Information whether is select initialized or not, changes when Select is initialized or reinitialized, if value is false Select was not initialized yet\n */\n protected initializedSignal: WritableSignal<boolean> = signal(false);\n\n //######################### protected properties - children #########################\n\n /**\n * Container used for rendering live search plugin\n */\n protected liveSearchContainer: Signal<ViewContainerRef> = viewChild.required('liveSearch', {read: ViewContainerRef});\n\n /**\n * Container used for rendering interactions plugin\n */\n protected interactionsContainer: Signal<ViewContainerRef> = viewChild.required('interactions', {read: ViewContainerRef});\n\n /**\n * Container used for rendering options handler plugin\n */\n protected optionsHandlerContainer: Signal<ViewContainerRef> = viewChild.required('optionsHandler', {read: ViewContainerRef});\n\n /**\n * Container used for rendering positioner plugin\n */\n protected positionerContainer: Signal<ViewContainerRef> = viewChild.required('positioner', {read: ViewContainerRef});\n\n /**\n * Container used for rendering keyboard handler plugin\n */\n protected keyboardHandlerContainer: Signal<ViewContainerRef> = viewChild.required('keyboardHandler', {read: ViewContainerRef});\n\n /**\n * Container used for rendering value handler plugin\n */\n protected valueHandlerContainer: Signal<ViewContainerRef> = viewChild.required('valueHandler', {read: ViewContainerRef});\n\n /**\n * Container used for rendering readonly state plugin\n */\n protected readonlyStateContainer: Signal<ViewContainerRef> = viewChild.required('readonlyState', {read: ViewContainerRef});\n\n /**\n * Container used for rendering normal state plugin\n */\n protected normalStateContainer: Signal<ViewContainerRef> = viewChild.required('normalState', {read: ViewContainerRef});\n\n /**\n * Container used for rendering popup plugin\n */\n protected popupContainer: Signal<ViewContainerRef> = viewChild.required('popup', {read: ViewContainerRef});\n\n //######################### public properties #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public selectOptions: SelectOptions<TValue, TPublicValue, SelectCssClasses>;\n\n //######################### public properties - inputs #########################\n\n /**\n * Gets or sets Select options\n */\n @Input({alias: 'selectOptions'})\n public get selectOptionsInput(): SelectOptions<TValue, TPublicValue, SelectCssClasses>\n {\n return this.selectOptions;\n }\n public set selectOptionsInput(value: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>)\n {\n this.selectOptions = value as SelectOptions<TValue, TPublicValue, SelectCssClasses>;\n }\n\n /**\n * Indication whether should be Select disabled or not\n */\n public disabled: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n /**\n * Indication whether should be Select readonly or not\n */\n public readonly: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n //######################### public properties - implementation of SelectApi #########################\n\n /**\n * @inheritdoc\n */\n public get initialized(): Signal<boolean>\n {\n return this.initializedSignal.asReadonly();\n }\n\n /**\n * @inheritdoc\n */\n public get events(): SelectEvents\n {\n return this.bus;\n }\n\n //######################### public properties - implementation of TemplateGatherer #########################\n\n /**\n * @inheritdoc\n */\n public readonly normalStateTemplate: Signal<TemplateRef<NormalStateContext<TValue, TPublicValue>>|undefined|null> = contentChild(NormalStateTemplate, {read: TemplateRef});\n\n /**\n * @inheritdoc\n */\n public readonly optionTemplate: Signal<TemplateRef<PopupContext<TValue, TPublicValue>>|undefined|null> = contentChild(OptionTemplate, {read: TemplateRef});\n\n /**\n * @inheritdoc\n */\n public readonly normalStateTagTemplate: Signal<TemplateRef<NormalStateTagContext<TValue, TPublicValue>>|undefined|null> = contentChild(NormalStateTagTemplate, {read: TemplateRef});\n\n //######################### public properties - implementation of OptionsGatherer #########################\n\n /**\n * Array of all available options for select\n */\n public readonly availableOptions: Signal<readonly SelectOptionState<TValue>[]|undefined|null> = contentChildren<SelectOptionState<TValue>>(Option, {descendants: true});\n\n //######################### constructors #########################\n constructor(protected pluginInstances: SelectPluginInstances<TValue, TPublicValue>,\n protected bus: SelectBus<TValue, TPublicValue>,\n @Inject(LOGGER) protected logger: Logger,\n element: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) document: HTMLDocument,\n @Attribute('multiple') multiple?: string|null,\n @Inject(NORMAL_STATE_TYPE) @Optional() normalStateType?: Type<NormalState<TValue, TPublicValue>>|null,\n @Inject(KEYBOARD_HANDLER_TYPE) @Optional() keyboardHandlerType?: Type<KeyboardHandler<TValue, TPublicValue>>|null,\n @Inject(POPUP_TYPE) @Optional() popupType?: Type<Popup<TValue, TPublicValue>>|null,\n @Inject(POSITIONER_TYPE) @Optional() positionerType?: Type<Positioner<TValue, TPublicValue>>|null,\n @Inject(READONLY_STATE_TYPE) @Optional() readonlyStateType?: Type<ReadonlyState<TValue, TPublicValue>>|null,\n @Inject(VALUE_HANDLER_TYPE) @Optional() valueHandlerType?: Type<ValueHandler<TValue, TPublicValue>>|null,\n @Inject(LIVE_SEARCH_TYPE) @Optional() liveSearchType?: Type<LiveSearch<TValue, TPublicValue>>|null,\n @Inject(INTERACTIONS_TYPE) @Optional() interactionsType?: Type<Interactions<TValue, TPublicValue>>|null,\n @Inject(OPTIONS_HANDLER_TYPE) @Optional() optionsHandlerType?: Type<OptionsHandler<TValue, TPublicValue>>|null,\n @Inject(SELECT_OPTIONS) @Optional() options?: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>|null,)\n {\n //is present (value is not important)\n const multipleDefault = isPresent(multiple);\n const opts: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>> = deepCopyWithArrayOverride({}, options);\n\n opts.plugins ??= {};\n\n if(keyboardHandlerType)\n {\n opts.plugins.keyboardHandler ??= {};\n opts.plugins.keyboardHandler.type = keyboardHandlerType;\n }\n\n if(normalStateType)\n {\n opts.plugins.normalState ??= {};\n opts.plugins.normalState.type = normalStateType;\n }\n\n if(popupType)\n {\n opts.plugins.popup ??= {};\n opts.plugins.popup.type = popupType;\n }\n\n if(positionerType)\n {\n opts.plugins.positioner ??= {};\n opts.plugins.positioner.type = positionerType;\n }\n\n if(readonlyStateType)\n {\n opts.plugins.readonlyState ??= {};\n opts.plugins.readonlyState.type = readonlyStateType;\n }\n\n if(valueHandlerType)\n {\n opts.plugins.valueHandler ??= {};\n opts.plugins.valueHandler.type = valueHandlerType;\n }\n\n if(liveSearchType)\n {\n opts.plugins.liveSearch ??= {};\n opts.plugins.liveSearch.type = liveSearchType;\n }\n\n if(interactionsType)\n {\n opts.plugins.interactions ??= {};\n opts.plugins.interactions.type = interactionsType;\n }\n\n if(optionsHandlerType)\n {\n opts.plugins.optionsHandler ??= {};\n opts.plugins.optionsHandler.type = optionsHandlerType;\n }\n\n this.selectOptions = deepCopyWithArrayOverride(\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\n {\n optionsGatherer: this,\n templateGatherer: this,\n },\n defaultOptions as SelectOptions<TValue, TPublicValue, SelectCssClasses>,\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\n {\n multiple: multipleDefault,\n },\n opts);\n\n this.logger.verbose('Select: ctor options initialized {{@(4)options}}', {options: this.selectOptions});\n\n bus.selectElement = signal(element).asReadonly();\n bus.selectOptions = computed(() => this.selectOptions);\n\n //dynamic update of readonly state in options\n effect(() =>\n {\n const readonly = this.readonly() || this.disabled();\n\n this.selectOptions =\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\n {\n readonly: readonly,\n } as SelectOptions<TValue, TPublicValue, SelectCssClasses>;\n\n this.logger.verbose('Select: readonly updated {{readonly}}', {readonly});\n });\n\n //create and initialize options for static plugins\n effect(async () =>\n {\n const selectOptions = this.selectOptions;\n const liveSearchContainer = this.liveSearchContainer();\n const interactionsContainer = this.interactionsContainer();\n const optionsHandlerContainer = this.optionsHandlerContainer();\n const positionerContainer = this.positionerContainer();\n const keyboardHandlerContainer = this.keyboardHandlerContainer();\n const valueHandlerContainer = this.valueHandlerContainer();\n\n await this.createPlugin(selectOptions.plugins?.liveSearch, SelectPluginType.LiveSearch, liveSearchContainer, this.liveSearchInit);\n await this.createPlugin(selectOptions.plugins?.interactions, SelectPluginType.Interactions, interactionsContainer, this.interactionsInit);\n await this.createPlugin(selectOptions.plugins?.optionsHandler, SelectPluginType.OptionsHandler, optionsHandlerContainer, this.optionsHandlerInit);\n await this.createPlugin(selectOptions.plugins?.positioner, SelectPluginType.Positioner, positionerContainer, this.positionerInit);\n await this.createPlugin(selectOptions.plugins?.keyboardHandler, SelectPluginType.KeyboardHandler, keyboardHandlerContainer, this.keyboardInit);\n await this.createPlugin(selectOptions.plugins?.valueHandler, SelectPluginType.ValueHandler, valueHandlerContainer, this.valueHandlerInit);\n });\n\n //create and initialize options for state plugins (normal and readonly)\n effect(() =>\n {\n const readonlyStateContainer = this.readonlyStateContainer();\n const normalStateContainer = this.normalStateContainer();\n const selectOptions = this.selectOptions;\n\n if(selectOptions.readonly)\n {\n this.destroyPlugin(SelectPluginType.NormalState, normalStateContainer, this.normalStateInit);\n this.normalStateInit.set(true);\n this.createPlugin(this.selectOptions.plugins?.readonlyState, SelectPluginType.ReadonlyState, readonlyStateContainer, this.readonlyStateInit);\n }\n else\n {\n this.destroyPlugin(SelectPluginType.ReadonlyState, readonlyStateContainer, this.readonlyStateInit);\n this.readonlyStateInit.set(true);\n this.createPlugin(this.selectOptions.plugins?.normalState, SelectPluginType.NormalState, normalStateContainer, this.normalStateInit);\n }\n });\n\n //create and initialize options for popup plugin, allows absolute positioning\n effect(() =>\n {\n const selectOptions = this.selectOptions;\n const popupContainer = this.popupContainer();\n\n this.destroyPlugin(SelectPluginType.Popup, popupContainer, this.popupInit);\n this.createPlugin(this.selectOptions.plugins?.popup, SelectPluginType.Popup, this.popupContainer(), this.popupInit);\n\n if(selectOptions.absolute && this.popupComponentRef)\n {\n const element = getHostElement(this.popupComponentRef);\n\n if(!element)\n {\n throw new Error('Could not get element of popup component');\n }\n\n renderToBody(document, element, selectOptions.containerElement);\n }\n });\n\n //initialize plugins when all options are initialized\n effect(() =>\n {\n this.initializedSignal.set(false);\n\n if(this.optionsInit().initialized)\n {\n this.initializedSignal.set(true);\n }\n });\n }\n\n //######################### public methods #########################\n\n /**\n * @inheritdoc\n */\n public getPlugin(pluginType: SelectPluginType.Interactions): Interactions<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.KeyboardHandler): KeyboardHandler<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.LiveSearch): LiveSearch<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.NormalState): NormalState<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.OptionsHandler): OptionsHandler<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.Popup): Popup<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.Positioner): Positioner<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.ReadonlyState): ReadonlyState<TValue, TPublicValue>;\n public getPlugin(pluginType: SelectPluginType.ValueHandler): ValueHandler<TValue, TPublicValue>;\n public getPlugin<PluginInstance extends SelectPlugin<unknown, TValue, TPublicValue>>(pluginType: SelectPluginType): PluginInstance\n {\n return this.pluginInstances[pluginType] as PluginInstance;\n }\n\n /**\n * @inheritdoc\n */\n public execute(...actions: SelectAction<TValue, TPublicValue, SelectCssClasses>[])\n {\n if(!actions)\n {\n return;\n }\n\n actions.forEach(action => action(this));\n }\n\n /**\n * @inheritdoc\n */\n public executeAndReturn<TResult>(func: SelectFunction<TResult, TValue, TPublicValue, SelectCssClasses>): TResult\n {\n if(!func)\n {\n throw new Error('Function is required');\n }\n\n return func(this);\n }\n\n // //######################### protected methods #########################\n\n /**\n * Creates plugin\n * @param pluginDescription - Information about plugin that should be created\n * @param pluginType - Key of plugin used for pluginInstances\n * @param pluginViewContainer - Container where should be plugin created\n * @param initOptions - Signal that hold information about init options state for this plugin\n */\n protected async createPlugin<TPlugin extends SelectPlugin<unknown, TValue, TPublicValue>>(pluginDescription: PluginDescription<TPlugin>|undefined|null,\n pluginType: SelectPluginType,\n pluginViewContainer: ViewContainerRef,\n initOptions: WritableSignal<boolean>,): Promise<void>\n {\n this.logger.verbose('Select: creating plugin \"{{type}}\", with type \"{{typ}}\"', {type: pluginType, typ: pluginDescription?.type});\n\n if(!pluginDescription?.type)\n {\n this.destroyPlugin(pluginType, pluginViewContainer, initOptions);\n\n return;\n }\n\n const type = resolveForwardRef(pluginDescription.type);\n\n //new type provided\n if(type != this.pluginTypes[pluginType])\n {\n this.logger.verbose('Select: creating plugin instance for \"{{type}}\"', {type: pluginType});\n\n initOptions.set(false);\n this.pluginTypes[pluginType] = type;\n pluginViewContainer.clear();\n\n const component = pluginViewContainer.createComponent(type);\n component.changeDetectorRef.detectChanges();\n this.pluginInstances[pluginType] = component.instance;\n\n if(pluginType == SelectPluginType.Popup)\n {\n this.popupComponentRef = component as ComponentRef<Popup>;\n }\n }\n\n //options are available, set them\n if(pluginDescription.options)\n {\n this.logger.verbose('Select: setting options for \"{{type}}\" plugin, options: {{@(4)options}}', {type: pluginType, options: pluginDescription.options});\n\n initOptions.set(false);\n this.pluginInstances[pluginType].options = pluginDescription.options;\n }\n\n this.logger.verbose('Select: options initialized for \"{{type}}\" plugin', {type: pluginType});\n initOptions.set(true);\n }\n\n /**\n * Destroys plugin\n * @param pluginType - Plugin type to be destroyed\n * @param plugiViewContainer - Container which will be emptied\n * @param initOptions - Signal that hold information about init options state for this plugin\n */\n protected destroyPlugin(pluginType: SelectPluginType,\n pluginViewContainer: ViewContainerRef,\n initOptions: WritableSignal<boolean>,): void\n {\n if(pluginType == SelectPluginType.Popup)\n {\n this.popupComponentRef = null;\n }\n\n this.logger.verbose('Select: destroying plugin \"{{type}}\"', {type: pluginType});\n\n pluginViewContainer.clear();\n initOptions.set(false);\n this.pluginTypes[pluginType] = null;\n }\n}\n","<ng-container #liveSearch />\r\n<ng-container #interactions />\r\n<ng-container #optionsHandler />\r\n<ng-container #positioner />\r\n<ng-container #keyboardHandler />\r\n<ng-container #valueHandler />\r\n\r\n<div [class]=\"selectOptions.cssClasses.visualContainer\">\r\n <ng-container #readonlyState />\r\n <ng-container #normalState />\r\n <ng-container #popup />\r\n</div>\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"selectBusOptions.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/selectBusOptions/selectBusOptions.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {DisplayTextFunc, NormalizeTextForComparison, TextComparerFunc, TextExtractorFunc, ValueEqualityFunc, ValueExtractorFunc} from '../../misc/types';\nimport {OptionsGatherer} from '../optionsGatherer/optionsGatherer.interface';\nimport {TemplateGatherer} from '../templateGatherer/templateGatherer.interface';\n\n/**\n * Options used for select bus\n */\nexport interface SelectBusOptions<TValue = unknown, TPublicValue = TValue>\n{\n //######################### properties #########################\n\n /**\n * Instance of options gatherer that is used for obtaining options\n */\n optionsGatherer: OptionsGatherer<TValue>;\n\n /**\n * Instance of template gatherer used for obtaining custom templates\n */\n templateGatherer: TemplateGatherer<TValue>;\n\n /**\n * Indication whether is Select readonly or not\n */\n readonly: boolean;\n\n /**\n * Indication that multiple values can be selected\n */\n multiple: boolean;\n\n /**\n * Placeholder text shown when there is no value selected\n */\n placeholder: string;\n\n /**\n * Indication whether close popup on selecting value\n */\n closeOnSelect: boolean;\n\n /**\n * Function used for transformation of selected option into display text\n */\n displaySelectedValue: DisplayTextFunc<TValue>;\n\n /**\n * Function used to extract value from option, if not provided, select option value will be used as value\n */\n valueExtractor: ValueExtractorFunc<TValue, TPublicValue>;\n\n /**\n * Function used for comparing values of select options\n */\n valueComparer: ValueEqualityFunc<TPublicValue>;\n\n /**\n * Method that is used for filtering when live search is running on static data\n */\n textExtractor: TextExtractorFunc<TValue>;\n\n /**\n * Normalize text for comparison\n */\n normalize: NormalizeTextForComparison;\n\n /**\n * Compares two texts of option\n */\n textCompare: TextComparerFunc;\n}\n"]}
1
+ {"version":3,"file":"selectBusOptions.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/selectBusOptions/selectBusOptions.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {DisplayTextFunc, NormalizeTextForComparison, TextComparerFunc, TextExtractorFunc, ValueEqualityFunc, ValueExtractorFunc} from '../../misc/types';\nimport {OptionsGatherer} from '../optionsGatherer/optionsGatherer.interface';\nimport {TemplateGatherer} from '../templateGatherer/templateGatherer.interface';\n\n/**\n * Options used for select bus\n */\nexport interface SelectBusOptions<TValue = unknown, TPublicValue = TValue>\n{\n //######################### properties #########################\n\n /**\n * Instance of options gatherer that is used for obtaining options\n */\n optionsGatherer: OptionsGatherer<TValue>;\n\n /**\n * Instance of template gatherer used for obtaining custom templates\n */\n templateGatherer: TemplateGatherer<TValue>;\n\n /**\n * Indication whether is Select readonly or not\n */\n readonly: boolean;\n\n /**\n * Indication that multiple values can be selected\n */\n multiple: boolean;\n\n /**\n * Placeholder text shown when there is no value selected\n */\n placeholder: string;\n\n /**\n * Indication whether close popup on selecting value\n */\n closeOnSelect: boolean;\n\n /**\n * Function used for transformation of selected option into display text\n */\n displaySelectedValue: DisplayTextFunc<TValue>;\n\n /**\n * Function used for transformation of option into display text, if not specified, displaySelectedValue will be used for transforming option into display text\n */\n displayOptionValue: DisplayTextFunc<TValue>|undefined|null;\n /**\n * Function used to extract value from option, if not provided, select option value will be used as value\n */\n valueExtractor: ValueExtractorFunc<TValue, TPublicValue>;\n\n /**\n * Function used for comparing values of select options\n */\n valueComparer: ValueEqualityFunc<TPublicValue>;\n\n /**\n * Method that is used for filtering when live search is running on static data\n */\n textExtractor: TextExtractorFunc<TValue>;\n\n /**\n * Normalize text for comparison\n */\n normalize: NormalizeTextForComparison;\n\n /**\n * Compares two texts of option\n */\n textCompare: TextComparerFunc;\n}\n"]}
@@ -0,0 +1,47 @@
1
+ import { computed, inject, Pipe } from '@angular/core';
2
+ import { LOGGER } from '@anglr/common';
3
+ import { SelectBus } from '../../misc/classes';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Pipe to transform select option into string
7
+ */
8
+ export class DisplayOptionValue {
9
+ constructor() {
10
+ //######################### protected fields #########################
11
+ /**
12
+ * Select bus used in Select for comunication between plugins and Select
13
+ */
14
+ this.selectBus = inject(SelectBus);
15
+ /**
16
+ * Logger used for logging in this pipe
17
+ */
18
+ this.logger = inject(LOGGER);
19
+ /**
20
+ * Function used for obtaining display value of option, used for transforming option into string
21
+ */
22
+ this.displayOptionValue = computed(() => this.selectBus.selectOptions().displayOptionValue ?? this.selectBus.selectOptions().displaySelectedValue, ...(ngDevMode ? [{ debugName: "displayOptionValue" }] : []));
23
+ }
24
+ //######################### public methods - implementation of PipeTransform #########################
25
+ /**
26
+ * Transforms option into string
27
+ * @param option - Option to be transformed into text
28
+ */
29
+ transform(option) {
30
+ if (this.lastOption !== option) {
31
+ this.lastOption = option;
32
+ this.computedValue = computed(() => {
33
+ this.logger.verbose('Select: DisplayOptionValue: transforming selected options {{@(4)options}}', { options: option });
34
+ const displayOptionValue = this.displayOptionValue();
35
+ return displayOptionValue(option);
36
+ }, ...(ngDevMode ? [{ debugName: "computedValue" }] : []));
37
+ }
38
+ return this.computedValue?.() ?? '';
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: DisplayOptionValue, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
41
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.5", ngImport: i0, type: DisplayOptionValue, isStandalone: true, name: "displayOptionValue", pure: false }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: DisplayOptionValue, decorators: [{
44
+ type: Pipe,
45
+ args: [{ name: 'displayOptionValue', pure: false }]
46
+ }] });
47
+ //# sourceMappingURL=displayOptionValue.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"displayOptionValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/displayOptionValue/displayOptionValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAwB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,MAAM,EAAS,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;;AAG7C;;GAEG;AAEH,MAAM,OAAO,kBAAkB;IAD/B;QAGI,sEAAsE;QAEtE;;WAEG;QACO,cAAS,GAAsB,MAAM,CAAoB,SAAS,CAAC,CAAC;QAE9E;;WAEG;QACO,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAY1C;;WAEG;QACO,uBAAkB,GAAoC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,oBAAoB,8DAAC,CAAC;KA0B5L;IAxBG,sGAAsG;IAEtG;;;OAGG;IACI,SAAS,CAAC,MAA4B;QAEzC,IAAG,IAAI,CAAC,UAAU,KAAK,MAAM,EAC7B,CAAC;YACG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YAEzB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,2EAA2E,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;gBAEpH,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAErD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC,yDAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;8GApDQ,kBAAkB;4GAAlB,kBAAkB;;2FAAlB,kBAAkB;kBAD9B,IAAI;mBAAC,EAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {computed, inject, Pipe, PipeTransform, Signal} from '@angular/core';\nimport {LOGGER, Logger} from '@anglr/common';\n\nimport {SelectOption} from '../../interfaces';\nimport {SelectBus} from '../../misc/classes';\nimport {DisplayTextFunc} from '../../misc/types';\n\n/**\n * Pipe to transform select option into string\n */\n@Pipe({name: 'displayOptionValue', pure: false})\nexport class DisplayOptionValue<TValue = unknown> implements PipeTransform\n{\n //######################### protected fields #########################\n\n /**\n * Select bus used in Select for comunication between plugins and Select\n */\n protected selectBus: SelectBus<TValue> = inject<SelectBus<TValue>>(SelectBus);\n\n /**\n * Logger used for logging in this pipe\n */\n protected logger: Logger = inject(LOGGER);\n\n /**\n * Last option provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same option is provided again\n */\n protected lastOption: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null;\n\n /**\n * Computed value of the transform function, used for optimization to prevent unnecessary calculations\n */\n protected computedValue: Signal<string>|undefined|null;\n\n /**\n * Function used for obtaining display value of option, used for transforming option into string\n */\n protected displayOptionValue: Signal<DisplayTextFunc<TValue>> = computed(() => this.selectBus.selectOptions().displayOptionValue ?? this.selectBus.selectOptions().displaySelectedValue);\n\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Transforms option into string\n * @param option - Option to be transformed into text\n */\n public transform(option: SelectOption<TValue>): string\n {\n if(this.lastOption !== option)\n {\n this.lastOption = option;\n\n this.computedValue = computed(() =>\n {\n this.logger.verbose('Select: DisplayOptionValue: transforming selected options {{@(4)options}}', {options: option});\n\n const displayOptionValue = this.displayOptionValue();\n\n return displayOptionValue(option);\n });\n }\n\n return this.computedValue?.() ?? '';\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"displayValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/displayValue/displayValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAwB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,MAAM,EAAS,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;;AAG7C;;GAEG;AAEH,MAAM,OAAO,YAAY;IADzB;QAGI,sEAAsE;QAEtE;;WAEG;QACO,cAAS,GAAsB,MAAM,CAAC,SAAS,CAAsB,CAAC;QAEhF;;WAEG;QACO,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAiB1C;;WAEG;QACO,gBAAW,GAAmB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,WAAW,uDAAC,CAAC;QAEnG;;WAEG;QACO,yBAAoB,GAAoC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,oBAAoB,gEAAC,CAAC;KAsCzI;IApCG,sGAAsG;IAEtG;;;;OAIG;IACI,SAAS,CAAC,MAAuE,EAAE,sBAA6C,SAAS;QAE5I,IAAG,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,uBAAuB,KAAK,mBAAmB,EACrF,CAAC;YACG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC;YAEnD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qEAAqE,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;gBAE9G,IAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/D,CAAC;oBACG,OAAO,mBAAmB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrD,CAAC;gBAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAEzD,IAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACxB,CAAC;oBACG,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;gBAED,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC,yDAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;8GA1EQ,YAAY;4GAAZ,YAAY;;2FAAZ,YAAY;kBADxB,IAAI;mBAAC,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {computed, inject, Pipe, PipeTransform, Signal} from '@angular/core';\nimport {LOGGER, Logger} from '@anglr/common';\nimport {isBlank} from '@jscrpt/common';\n\nimport {SelectOption} from '../../interfaces';\nimport {SelectBus} from '../../misc/classes';\nimport {DisplayTextFunc} from '../../misc/types';\n\n/**\n * Pipe to transform select selected option into string\n */\n@Pipe({name: 'displayValue', pure: false})\nexport class DisplayValue<TValue = unknown> implements PipeTransform\n{\n //######################### protected fields #########################\n\n /**\n * Select bus used in Select for comunication between plugins and Select\n */\n protected selectBus: SelectBus<TValue> = inject(SelectBus) as SelectBus<TValue>;\n\n /**\n * Logger used for logging in this pipe\n */\n protected logger: Logger = inject(LOGGER);\n\n /**\n * Last option provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same option is provided again\n */\n protected lastOption: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null;\n\n /**\n * Last placeholder override provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same placeholder override is provided again\n */\n protected lastPlaceholderOverride: string|undefined|null;\n\n /**\n * Computed value of the transform function, used for optimization to prevent unnecessary calculations\n */\n protected computedValue: Signal<string>|undefined|null;\n\n /**\n * Placeholder for select, used in case there is no option selected\n */\n protected placeholder: Signal<string> = computed(() => this.selectBus.selectOptions().placeholder);\n\n /**\n * Function used for obtaining display value of option, used for transforming selected option into string\n */\n protected displaySelectedValue: Signal<DisplayTextFunc<TValue>> = computed(() => this.selectBus.selectOptions().displaySelectedValue);\n\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Transforms selected option into string\n * @param option - Selected options to be transformed into text\n * @param placeholderOverride - Placeholder override to be used instead of default placeholder\n */\n public transform(option: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null, placeholderOverride: string|undefined|null = undefined): string\n {\n if(this.lastOption !== option || this.lastPlaceholderOverride !== placeholderOverride)\n {\n this.lastOption = option;\n this.lastPlaceholderOverride = placeholderOverride;\n\n this.computedValue = computed(() =>\n {\n this.logger.verbose('Select: DisplayValue: transforming selected options {{@(4)options}}', {options: option});\n\n if(isBlank(option) || (Array.isArray(option) && !option.length))\n {\n return placeholderOverride ?? this.placeholder();\n }\n\n const displaySelectedValue = this.displaySelectedValue();\n\n if(Array.isArray(option))\n {\n return option.map(displaySelectedValue).join(', ');\n }\n\n return displaySelectedValue(option);\n });\n }\n\n return this.computedValue?.() ?? '';\n }\n}\n"]}
1
+ {"version":3,"file":"displayValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/displayValue/displayValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAwB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,MAAM,EAAS,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;;AAG7C;;GAEG;AAEH,MAAM,OAAO,YAAY;IADzB;QAGI,sEAAsE;QAEtE;;WAEG;QACO,cAAS,GAAsB,MAAM,CAAoB,SAAS,CAAC,CAAC;QAE9E;;WAEG;QACO,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAiB1C;;WAEG;QACO,gBAAW,GAAmB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,WAAW,uDAAC,CAAC;QAEnG;;WAEG;QACO,yBAAoB,GAAoC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,oBAAoB,gEAAC,CAAC;KAsCzI;IApCG,sGAAsG;IAEtG;;;;OAIG;IACI,SAAS,CAAC,MAAuE,EAAE,sBAA6C,SAAS;QAE5I,IAAG,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,uBAAuB,KAAK,mBAAmB,EACrF,CAAC;YACG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC;YAEnD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qEAAqE,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;gBAE9G,IAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/D,CAAC;oBACG,OAAO,mBAAmB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrD,CAAC;gBAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAEzD,IAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACxB,CAAC;oBACG,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;gBAED,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC,yDAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;8GA1EQ,YAAY;4GAAZ,YAAY;;2FAAZ,YAAY;kBADxB,IAAI;mBAAC,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {computed, inject, Pipe, PipeTransform, Signal} from '@angular/core';\nimport {LOGGER, Logger} from '@anglr/common';\nimport {isBlank} from '@jscrpt/common';\n\nimport {SelectOption} from '../../interfaces';\nimport {SelectBus} from '../../misc/classes';\nimport {DisplayTextFunc} from '../../misc/types';\n\n/**\n * Pipe to transform select selected option into string\n */\n@Pipe({name: 'displayValue', pure: false})\nexport class DisplayValue<TValue = unknown> implements PipeTransform\n{\n //######################### protected fields #########################\n\n /**\n * Select bus used in Select for comunication between plugins and Select\n */\n protected selectBus: SelectBus<TValue> = inject<SelectBus<TValue>>(SelectBus);\n\n /**\n * Logger used for logging in this pipe\n */\n protected logger: Logger = inject(LOGGER);\n\n /**\n * Last option provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same option is provided again\n */\n protected lastOption: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null;\n\n /**\n * Last placeholder override provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same placeholder override is provided again\n */\n protected lastPlaceholderOverride: string|undefined|null;\n\n /**\n * Computed value of the transform function, used for optimization to prevent unnecessary calculations\n */\n protected computedValue: Signal<string>|undefined|null;\n\n /**\n * Placeholder for select, used in case there is no option selected\n */\n protected placeholder: Signal<string> = computed(() => this.selectBus.selectOptions().placeholder);\n\n /**\n * Function used for obtaining display value of option, used for transforming selected option into string\n */\n protected displaySelectedValue: Signal<DisplayTextFunc<TValue>> = computed(() => this.selectBus.selectOptions().displaySelectedValue);\n\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Transforms selected option into string\n * @param option - Selected options to be transformed into text\n * @param placeholderOverride - Placeholder override to be used instead of default placeholder\n */\n public transform(option: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null, placeholderOverride: string|undefined|null = undefined): string\n {\n if(this.lastOption !== option || this.lastPlaceholderOverride !== placeholderOverride)\n {\n this.lastOption = option;\n this.lastPlaceholderOverride = placeholderOverride;\n\n this.computedValue = computed(() =>\n {\n this.logger.verbose('Select: DisplayValue: transforming selected options {{@(4)options}}', {options: option});\n\n if(isBlank(option) || (Array.isArray(option) && !option.length))\n {\n return placeholderOverride ?? this.placeholder();\n }\n\n const displaySelectedValue = this.displaySelectedValue();\n\n if(Array.isArray(option))\n {\n return option.map(displaySelectedValue).join(', ');\n }\n\n return displaySelectedValue(option);\n });\n }\n\n return this.computedValue?.() ?? '';\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  export * from './addNewOption/addNewOption.pipe';
2
+ export * from './displayOptionValue/displayOptionValue.pipe';
2
3
  export * from './displayValue/displayValue.pipe';
3
4
  export * from './getPlugin/getPlugin.pipe';
4
5
  export * from './groupedListOptions/groupedListOptions.pipe';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC","sourcesContent":["export * from './addNewOption/addNewOption.pipe';\nexport * from './displayValue/displayValue.pipe';\nexport * from './getPlugin/getPlugin.pipe';\nexport * from './groupedListOptions/groupedListOptions.pipe';\nexport * from './hasValue/hasValue.pipe';\nexport * from './optionCssClasses/optionCssClasses.pipe';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC","sourcesContent":["export * from './addNewOption/addNewOption.pipe';\nexport * from './displayOptionValue/displayOptionValue.pipe';\nexport * from './displayValue/displayValue.pipe';\nexport * from './getPlugin/getPlugin.pipe';\nexport * from './groupedListOptions/groupedListOptions.pipe';\nexport * from './hasValue/hasValue.pipe';\nexport * from './optionCssClasses/optionCssClasses.pipe';\n"]}
@@ -6,7 +6,7 @@ import { deepCopyWithArrayOverride } from '@jscrpt/common/lodash';
6
6
  import { SelectPluginInstances, SelectBus } from '../../../misc/classes';
7
7
  import { CopyOptionsAsSignal } from '../../../decorators';
8
8
  import { POPUP_OPTIONS } from '../../../misc/tokens';
9
- import { AddNewOption, DisplayValue, GroupedListOptions, OptionCssClasses } from '../../../pipes';
9
+ import { AddNewOption, DisplayOptionValue, GroupedListOptions, OptionCssClasses } from '../../../pipes';
10
10
  import * as i0 from "@angular/core";
11
11
  //TODO: hover into mouseover => use "active"
12
12
  const defaultOptions = {
@@ -94,7 +94,7 @@ export class SimplePopup {
94
94
  });
95
95
  }
96
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: SimplePopup, deps: [{ token: POPUP_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", 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 }], ngImport: i0, template: "<ng-template #defaultOptionLook let-option>{{option | addNewOption | localize}}{{option | displayValue | 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", dependencies: [{ 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: DisplayValue, name: "displayValue" }, { kind: "pipe", type: OptionCssClasses, name: "optionCssClasses" }, { kind: "pipe", type: GroupedListOptions, name: "groupedListOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", 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 }], 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\">\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", dependencies: [{ 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
98
  }
99
99
  __decorate([
100
100
  CopyOptionsAsSignal(),
@@ -108,11 +108,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
108
108
  }, imports: [
109
109
  AddNewOption,
110
110
  LocalizePipe,
111
- DisplayValue,
112
111
  NgTemplateOutlet,
113
112
  OptionCssClasses,
113
+ DisplayOptionValue,
114
114
  GroupedListOptions,
115
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #defaultOptionLook let-option>{{option | addNewOption | localize}}{{option | displayValue | 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" }]
115
+ ], 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\">\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" }]
116
116
  }], ctorParameters: () => [{ type: undefined, decorators: [{
117
117
  type: Inject,
118
118
  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":"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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, DisplayValue, 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 DisplayValue,\n NgTemplateOutlet,\n OptionCssClasses,\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 | displayValue | 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';\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anglr/select",
3
- "version": "16.0.4-beta.20260511085948",
3
+ "version": "16.1.0",
4
4
  "description": "Angular component representing html select",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -1 +1 @@
1
- {"version":3,"file":"select.component.d.ts","sourceRoot":"","sources":["select.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.component.d.ts","sourceRoot":"","sources":["select.component.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,10 @@ export interface SelectBusOptions<TValue = unknown, TPublicValue = TValue> {
33
33
  * Function used for transformation of selected option into display text
34
34
  */
35
35
  displaySelectedValue: DisplayTextFunc<TValue>;
36
+ /**
37
+ * Function used for transformation of option into display text, if not specified, displaySelectedValue will be used for transforming option into display text
38
+ */
39
+ displayOptionValue: DisplayTextFunc<TValue> | undefined | null;
36
40
  /**
37
41
  * Function used to extract value from option, if not provided, select option value will be used as value
38
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"selectBusOptions.interface.d.ts","sourceRoot":"","sources":["selectBusOptions.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACzJ,OAAO,EAAC,eAAe,EAAC,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,gDAAgD,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM,GAAG,OAAO,EAAE,YAAY,GAAG,MAAM;IAIrE;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAEzC;;OAEG;IACH,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE3C;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,oBAAoB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAE9C;;OAEG;IACH,cAAc,EAAE,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEzD;;OAEG;IACH,aAAa,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAE/C;;OAEG;IACH,aAAa,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEzC;;OAEG;IACH,SAAS,EAAE,0BAA0B,CAAC;IAEtC;;OAEG;IACH,WAAW,EAAE,gBAAgB,CAAC;CACjC"}
1
+ {"version":3,"file":"selectBusOptions.interface.d.ts","sourceRoot":"","sources":["selectBusOptions.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACzJ,OAAO,EAAC,eAAe,EAAC,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,gDAAgD,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM,GAAG,OAAO,EAAE,YAAY,GAAG,MAAM;IAIrE;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAEzC;;OAEG;IACH,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE3C;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,oBAAoB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAE9C;;OAEG;IACH,kBAAkB,EAAE,eAAe,CAAC,MAAM,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC;IAC3D;;OAEG;IACH,cAAc,EAAE,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEzD;;OAEG;IACH,aAAa,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAE/C;;OAEG;IACH,aAAa,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEzC;;OAEG;IACH,SAAS,EAAE,0BAA0B,CAAC;IAEtC;;OAEG;IACH,WAAW,EAAE,gBAAgB,CAAC;CACjC"}
@@ -0,0 +1,39 @@
1
+ import { PipeTransform, Signal } from '@angular/core';
2
+ import { Logger } from '@anglr/common';
3
+ import { SelectOption } from '../../interfaces';
4
+ import { SelectBus } from '../../misc/classes';
5
+ import { DisplayTextFunc } from '../../misc/types';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Pipe to transform select option into string
9
+ */
10
+ export declare class DisplayOptionValue<TValue = unknown> implements PipeTransform {
11
+ /**
12
+ * Select bus used in Select for comunication between plugins and Select
13
+ */
14
+ protected selectBus: SelectBus<TValue>;
15
+ /**
16
+ * Logger used for logging in this pipe
17
+ */
18
+ protected logger: Logger;
19
+ /**
20
+ * Last option provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same option is provided again
21
+ */
22
+ protected lastOption: SelectOption<TValue> | Array<SelectOption<TValue>> | undefined | null;
23
+ /**
24
+ * Computed value of the transform function, used for optimization to prevent unnecessary calculations
25
+ */
26
+ protected computedValue: Signal<string> | undefined | null;
27
+ /**
28
+ * Function used for obtaining display value of option, used for transforming option into string
29
+ */
30
+ protected displayOptionValue: Signal<DisplayTextFunc<TValue>>;
31
+ /**
32
+ * Transforms option into string
33
+ * @param option - Option to be transformed into text
34
+ */
35
+ transform(option: SelectOption<TValue>): string;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<DisplayOptionValue<any>, never>;
37
+ static ɵpipe: i0.ɵɵPipeDeclaration<DisplayOptionValue<any>, "displayOptionValue", true>;
38
+ }
39
+ //# sourceMappingURL=displayOptionValue.pipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"displayOptionValue.pipe.d.ts","sourceRoot":"","sources":["displayOptionValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAS,MAAM,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;;AAEjD;;GAEG;AACH,qBACa,kBAAkB,CAAC,MAAM,GAAG,OAAO,CAAE,YAAW,aAAa;IAItE;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAwC;IAE9E;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAkB;IAE1C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,GAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC;IAEtF;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC;IAEvD;;OAEG;IACH,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAA4H;IAIzL;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM;yCAnC7C,kBAAkB;uCAAlB,kBAAkB;CAqD9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"displayValue.pipe.d.ts","sourceRoot":"","sources":["displayValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAS,MAAM,EAAC,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;;AAEjD;;GAEG;AACH,qBACa,YAAY,CAAC,MAAM,GAAG,OAAO,CAAE,YAAW,aAAa;IAIhE;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAA0C;IAEhF;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAkB;IAE1C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,GAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC;IAEtF;;OAEG;IACH,SAAS,CAAC,uBAAuB,EAAE,MAAM,GAAC,SAAS,GAAC,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC;IAEvD;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAA8D;IAEnG;;OAEG;IACH,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAuE;IAItI;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAC,SAAS,GAAC,IAAI,EAAE,mBAAmB,GAAE,MAAM,GAAC,SAAS,GAAC,IAAgB,GAAG,MAAM;yCA9ChJ,YAAY;uCAAZ,YAAY;CA2ExB"}
1
+ {"version":3,"file":"displayValue.pipe.d.ts","sourceRoot":"","sources":["displayValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAS,MAAM,EAAC,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;;AAEjD;;GAEG;AACH,qBACa,YAAY,CAAC,MAAM,GAAG,OAAO,CAAE,YAAW,aAAa;IAIhE;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAwC;IAE9E;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAkB;IAE1C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,GAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC;IAEtF;;OAEG;IACH,SAAS,CAAC,uBAAuB,EAAE,MAAM,GAAC,SAAS,GAAC,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC;IAEvD;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAA8D;IAEnG;;OAEG;IACH,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAuE;IAItI;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAC,SAAS,GAAC,IAAI,EAAE,mBAAmB,GAAE,MAAM,GAAC,SAAS,GAAC,IAAgB,GAAG,MAAM;yCA9ChJ,YAAY;uCAAZ,YAAY;CA2ExB"}
@@ -1,4 +1,5 @@
1
1
  export * from './addNewOption/addNewOption.pipe';
2
+ export * from './displayOptionValue/displayOptionValue.pipe';
2
3
  export * from './displayValue/displayValue.pipe';
3
4
  export * from './getPlugin/getPlugin.pipe';
4
5
  export * from './groupedListOptions/groupedListOptions.pipe';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC"}
@@ -1,4 +1,4 @@
1
- <ng-template #defaultOptionLook let-option>{{option | addNewOption | localize}}{{option | displayValue | localize}}</ng-template>
1
+ <ng-template #defaultOptionLook let-option>{{option | addNewOption | localize}}{{option | displayOptionValue | localize}}</ng-template>
2
2
  <ng-template #defaultOptionGroupLook let-text>{{text}}</ng-template>
3
3
 
4
4
  @if(selectBus.popupVisible() || options.visible)
package/version.bak CHANGED
@@ -1 +1 @@
1
- 16.0.4-beta.20260511085948
1
+ 16.1.0