@anglr/select 17.2.0 → 18.0.0-beta.20260805050455
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/angular-developer/SKILL.md +130 -130
- package/.claude/skills/angular-developer/references/angular-animations.md +160 -160
- package/.claude/skills/angular-developer/references/angular-aria.md +410 -410
- package/.claude/skills/angular-developer/references/cli.md +86 -86
- package/.claude/skills/angular-developer/references/component-harnesses.md +59 -59
- package/.claude/skills/angular-developer/references/component-styling.md +91 -91
- package/.claude/skills/angular-developer/references/components.md +117 -117
- package/.claude/skills/angular-developer/references/creating-services.md +97 -97
- package/.claude/skills/angular-developer/references/data-resolvers.md +69 -69
- package/.claude/skills/angular-developer/references/define-routes.md +67 -67
- package/.claude/skills/angular-developer/references/defining-providers.md +72 -72
- package/.claude/skills/angular-developer/references/di-fundamentals.md +120 -120
- package/.claude/skills/angular-developer/references/e2e-testing.md +66 -66
- package/.claude/skills/angular-developer/references/effects.md +83 -83
- package/.claude/skills/angular-developer/references/hierarchical-injectors.md +43 -43
- package/.claude/skills/angular-developer/references/host-elements.md +80 -80
- package/.claude/skills/angular-developer/references/injection-context.md +63 -63
- package/.claude/skills/angular-developer/references/inputs.md +101 -101
- package/.claude/skills/angular-developer/references/linked-signal.md +59 -59
- package/.claude/skills/angular-developer/references/loading-strategies.md +61 -61
- package/.claude/skills/angular-developer/references/mcp.md +106 -106
- package/.claude/skills/angular-developer/references/migrations.md +30 -30
- package/.claude/skills/angular-developer/references/navigate-to-routes.md +69 -69
- package/.claude/skills/angular-developer/references/outputs.md +86 -86
- package/.claude/skills/angular-developer/references/reactive-forms.md +122 -122
- package/.claude/skills/angular-developer/references/rendering-strategies.md +44 -44
- package/.claude/skills/angular-developer/references/resource.md +77 -77
- package/.claude/skills/angular-developer/references/route-animations.md +56 -56
- package/.claude/skills/angular-developer/references/route-guards.md +52 -52
- package/.claude/skills/angular-developer/references/router-lifecycle.md +45 -45
- package/.claude/skills/angular-developer/references/router-testing.md +87 -87
- package/.claude/skills/angular-developer/references/show-routes-with-outlets.md +68 -68
- package/.claude/skills/angular-developer/references/signal-forms.md +897 -897
- package/.claude/skills/angular-developer/references/signals-overview.md +94 -94
- package/.claude/skills/angular-developer/references/tailwind-css.md +69 -69
- package/.claude/skills/angular-developer/references/template-driven-forms.md +114 -114
- package/.claude/skills/angular-developer/references/testing-fundamentals.md +66 -66
- package/.github/instructions/typescript/code-conventions.md +7 -7
- package/.github/instructions/typescript/comments.md +40 -40
- package/.github/instructions/typescript/formatting.md +41 -41
- package/.github/instructions/typescript/naming-conventions.md +6 -6
- package/es2022/extensions/src/extensions/getSearch.js.map +1 -1
- package/es2022/extensions/src/extensions/getSelectedOption.js.map +1 -1
- package/es2022/extensions/src/extensions/getSelectedOptions.js.map +1 -1
- package/es2022/extensions/src/extensions/getValue.js.map +1 -1
- package/es2022/extensions/src/extensions/setReadonly.js.map +1 -1
- package/es2022/extensions/src/extensions/setValue.js.map +1 -1
- package/es2022/extensions/src/index.js.map +1 -1
- package/es2022/src/components/index.js.map +1 -1
- package/es2022/src/components/option/option.component.js.map +1 -1
- package/es2022/src/components/optionGroup/optgroup.component.js.map +1 -1
- package/es2022/src/components/select/select.component.js +2 -2
- package/es2022/src/components/select/select.component.js.map +1 -1
- package/es2022/src/decorators/index.js.map +1 -1
- package/es2022/src/decorators/mergeOptionsAsSignal/mergeOptionsAsSignal.decorator.js.map +1 -1
- package/es2022/src/directives/highlightInstance/highlightInstance.directive.js.map +1 -1
- package/es2022/src/directives/highlightSearch/highlightSearch.directive.js.map +1 -1
- package/es2022/src/directives/highlightText/highlightText.directive.js.map +1 -1
- package/es2022/src/directives/index.js.map +1 -1
- package/es2022/src/directives/normalStateTagTemplate/normalStateTagTemplate.directive.js.map +1 -1
- package/es2022/src/directives/normalStateTemplate/normalStateTemplate.directive.js.map +1 -1
- package/es2022/src/directives/optionGroupTemplate/optionGroupTemplate.directive.js.map +1 -1
- package/es2022/src/directives/optionTemplate/optionTemplate.directive.js.map +1 -1
- package/es2022/src/directives/selectAbsolute/selectAbsolute.directive.js.map +1 -1
- package/es2022/src/directives/selectControlValueAccessor/selectControlValueAccessor.directive.js.map +1 -1
- package/es2022/src/directives/selectEdit/selectEdit.directive.js.map +1 -1
- package/es2022/src/directives/selectFormControl/selectFormControl.directive.js.map +1 -1
- package/es2022/src/directives/selectMultipleKeepPopup/selectMultipleKeepPopup.directive.js.map +1 -1
- package/es2022/src/directives/selectNoCarret/selectNoCarret.directive.js.map +1 -1
- package/es2022/src/directives/selectPlaceholder/selectPlaceholder.directive.js.map +1 -1
- package/es2022/src/directives/withDirectAccess/withDirectAccess.directive.js.map +1 -1
- package/es2022/src/index.js.map +1 -1
- package/es2022/src/interfaces/index.js.map +1 -1
- package/es2022/src/interfaces/initState/initState.interface.js.map +1 -1
- package/es2022/src/interfaces/keyboardAction/keyboardAction.interface.js.map +1 -1
- package/es2022/src/interfaces/normalStateContext/normalStateContext.interface.js.map +1 -1
- package/es2022/src/interfaces/normalStateTagContext/normalStateTagContext.interface.js.map +1 -1
- package/es2022/src/interfaces/optionsGatherer/optionsGatherer.interface.js.map +1 -1
- package/es2022/src/interfaces/pluginDescription/pluginDescription.interface.js.map +1 -1
- package/es2022/src/interfaces/pluginOptions/pluginOptions.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/index.js.map +1 -1
- package/es2022/src/interfaces/plugins/interactions/interactions.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/keyboardHandler/keyboardHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/keyboardHandler/simpleKeyboardHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/liveSearch/editLiveSearch.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/liveSearch/filterLiveSearch.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/liveSearch/liveSearch.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/normalState/editNormalState.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/normalState/normalState.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/normalState/simpleNormalState.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/optionsHandler/optionsHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/optionsHandler/simpleOptionsHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/popup/popup.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/popup/simplePopup.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/positioner/commonPositioner.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/positioner/popoverPositioner.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/positioner/positioner.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/readonlyState/readonlyState.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/valueHandler/dynamicValueHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/plugins/valueHandler/valueHandler.interface.js.map +1 -1
- package/es2022/src/interfaces/popupContext/popupContext.interface.js.map +1 -1
- package/es2022/src/interfaces/selectApi/selectApi.interface.js.map +1 -1
- package/es2022/src/interfaces/selectBusOptions/selectBusOptions.interface.js.map +1 -1
- package/es2022/src/interfaces/selectCssClasses/selectCssClasses.interface.js.map +1 -1
- package/es2022/src/interfaces/selectEvent/selectEvent.interface.js.map +1 -1
- package/es2022/src/interfaces/selectEvents/selectEvents.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOption/selectOption.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOptionGroup/selectOptionGroup.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOptionState/selectOptionState.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOptionStateSyntetic/selectOptionStateSyntetic.interface.js.map +1 -1
- package/es2022/src/interfaces/selectOptions/selectOptions.interface.js.map +1 -1
- package/es2022/src/interfaces/selectPlugin/selectPlugin.interface.js.map +1 -1
- package/es2022/src/interfaces/selectPluginTypes/selectPluginTypes.interface.js.map +1 -1
- package/es2022/src/interfaces/tempValue/tempValue.interface.js.map +1 -1
- package/es2022/src/interfaces/templateGatherer/templateGatherer.interface.js.map +1 -1
- package/es2022/src/interfaces/visualPluginOptions/visualPluginOptions.interface.js.map +1 -1
- package/es2022/src/misc/classes/codeOptionsGatherer/codeOptionsGatherer.interface.js.map +1 -1
- package/es2022/src/misc/classes/index.js.map +1 -1
- package/es2022/src/misc/classes/selectBus/selectBus.js.map +1 -1
- package/es2022/src/misc/classes/selectPluginInstances/selectPluginInstances.js.map +1 -1
- package/es2022/src/misc/enums.js.map +1 -1
- package/es2022/src/misc/providers.js.map +1 -1
- package/es2022/src/misc/tokens.js.map +1 -1
- package/es2022/src/misc/types.js.map +1 -1
- package/es2022/src/misc/utils.js.map +1 -1
- package/es2022/src/modules/index.js.map +1 -1
- package/es2022/src/modules/select.module.js.map +1 -1
- package/es2022/src/pipes/addNewOption/addNewOption.pipe.js.map +1 -1
- package/es2022/src/pipes/displayOptionValue/displayOptionValue.pipe.js.map +1 -1
- package/es2022/src/pipes/displayValue/displayValue.pipe.js.map +1 -1
- package/es2022/src/pipes/getPlugin/getPlugin.pipe.js.map +1 -1
- package/es2022/src/pipes/groupedListOptions/groupedListOptions.pipe.js.map +1 -1
- package/es2022/src/pipes/hasValue/hasValue.pipe.js.map +1 -1
- package/es2022/src/pipes/index.js.map +1 -1
- package/es2022/src/pipes/optionCssClasses/optionCssClasses.pipe.js.map +1 -1
- package/es2022/src/plugins/index.js.map +1 -1
- package/es2022/src/plugins/interactions/index.js.map +1 -1
- package/es2022/src/plugins/interactions/simpleInteractions/simpleInteractions.component.js.map +1 -1
- package/es2022/src/plugins/keyboardHandler/index.js.map +1 -1
- package/es2022/src/plugins/keyboardHandler/simpleKeyboardHandler/simpleKeyboardHandler.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.js +2 -2
- package/es2022/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/filterLiveSearch/filterLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/liveSearch/index.js.map +1 -1
- package/es2022/src/plugins/liveSearch/noLiveSearch/noLiveSearch.component.js.map +1 -1
- package/es2022/src/plugins/normalState/editNormalState/editNormalState.component.js +3 -2
- package/es2022/src/plugins/normalState/editNormalState/editNormalState.component.js.map +1 -1
- package/es2022/src/plugins/normalState/index.js.map +1 -1
- package/es2022/src/plugins/normalState/simpleNormalState/simpleNormalState.component.js +5 -6
- package/es2022/src/plugins/normalState/simpleNormalState/simpleNormalState.component.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/index.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/noOptionsHandler/noOptionsHandler.component.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/optionsHandlerBase.js.map +1 -1
- package/es2022/src/plugins/optionsHandler/simpleOptionsHandler/simpleOptionsHandler.component.js.map +1 -1
- package/es2022/src/plugins/popup/index.js.map +1 -1
- package/es2022/src/plugins/popup/simplePopup/simplePopup.component.js +2 -2
- package/es2022/src/plugins/popup/simplePopup/simplePopup.component.js.map +1 -1
- package/es2022/src/plugins/positioner/commonPositioner/commonPositioner.component.js.map +1 -1
- package/es2022/src/plugins/positioner/index.js.map +1 -1
- package/es2022/src/plugins/positioner/noPositioner/noPositioner.component.js.map +1 -1
- package/es2022/src/plugins/positioner/popoverPositioner/popoverPositioner.component.js.map +1 -1
- package/es2022/src/plugins/valueHandler/dynamicValueHandler/dynamicValueHandler.component.js.map +1 -1
- package/es2022/src/plugins/valueHandler/index.js.map +1 -1
- package/es2022/src/plugins/valueHandler/staticValueHandler/staticValueHandler.component.js.map +1 -1
- package/package.json +125 -125
- package/src/components/select/select.component.css +5 -5
- package/src/interfaces/plugins/normalState/editNormalState.interface.d.ts +4 -0
- package/src/interfaces/plugins/normalState/editNormalState.interface.d.ts.map +1 -1
- package/src/interfaces/plugins/normalState/simpleNormalState.interface.d.ts +1 -5
- package/src/interfaces/plugins/normalState/simpleNormalState.interface.d.ts.map +1 -1
- package/src/plugins/liveSearch/editLiveSearch/editLiveSearch.component.html +19 -19
- package/src/plugins/normalState/editNormalState/editNormalState.component.d.ts.map +1 -1
- package/src/plugins/normalState/editNormalState/editNormalState.component.html +52 -50
- package/src/plugins/normalState/simpleNormalState/simpleNormalState.component.d.ts.map +1 -1
- package/src/plugins/normalState/simpleNormalState/simpleNormalState.component.html +36 -37
- package/src/plugins/popup/simplePopup/simplePopup.component.html +56 -56
- package/styles/components/_liveSearch.scss +32 -32
- package/styles/components/_normalState.scss +121 -116
- package/styles/components/_popup.scss +107 -107
- package/styles/components/_select.scss +14 -14
- package/styles/core/_defaultTheme.scss +105 -105
- package/styles/core/_misc.scss +34 -34
- package/styles/core/_mixins.scss +29 -29
- package/styles/index.scss +2 -2
- package/styles/themes/dark.scss +63 -63
- package/styles/themes/light.scss +64 -64
- package/version.bak +1 -1
|
@@ -1 +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 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<TValue, TPublicValue>>;\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';\r\nimport {getHostElement, LOGGER, Logger} from '@anglr/common';\r\nimport {isPresent, RecursivePartial, renderToBody, normalizeAccent} from '@jscrpt/common';\r\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\r\n\r\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';\r\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';\r\nimport {SelectPluginType} from '../../misc/enums';\r\nimport {SelectBus, SelectPluginInstances} from '../../misc/classes';\r\nimport {CommonPositioner, StaticValueHandler, SimpleInteractions, SimpleOptionsHandler, SimpleKeyboardHandler, SimpleNormalState, SimplePopup, NoLiveSearch} from '../../plugins';\r\nimport {CopyOptionsAsSignal} from '../../decorators';\r\nimport {SelectAction, SelectFunction} from '../../misc/types';\r\nimport {NormalStateTagTemplate, NormalStateTemplate, OptionTemplate} from '../../directives';\r\nimport {Option} from '../option/option.component';\r\n\r\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\r\n\r\n/**\r\n * Default 'SelectOptions'\r\n */\r\nconst defaultOptions: Omit<SelectOptions, 'optionsGatherer'|'templateGatherer'> =\r\n{\r\n absolute: false,\r\n multiple: false,\r\n readonly: false,\r\n containerElement: 'div.select-component',\r\n placeholder: 'please select value',\r\n closeOnSelect: true,\r\n displaySelectedValue: option => option.text(),\r\n displayOptionValue: null,\r\n valueExtractor: (option: SelectOption) => option.value(),\r\n valueComparer: (source, target) => source === target,\r\n textExtractor: (option: SelectOption) => option.text(),\r\n normalize: <TText extends string|undefined|null>(value: TText) => isPresent(value) ? normalizeAccent(value) as TText : value,\r\n textCompare: (source: string, target: string) => !!source.match(new RegExp(target, 'i')),\r\n cssClasses:\r\n {\r\n visualContainer: 'visual-container',\r\n selectElement: 'select-component',\r\n },\r\n plugins:\r\n {\r\n interactions: <PluginDescription<Interactions, InteractionsOptions>>\r\n {\r\n type: forwardRef(() => SimpleInteractions),\r\n },\r\n keyboardHandler: <PluginDescription<KeyboardHandler, KeyboardHandlerOptions>>\r\n {\r\n type: forwardRef(() => SimpleKeyboardHandler),\r\n },\r\n liveSearch: <PluginDescription<LiveSearch, LiveSearchOptions>>\r\n {\r\n type: forwardRef(() => NoLiveSearch),\r\n },\r\n normalState: <PluginDescription<NormalState, NormalStateOptions>>\r\n {\r\n type: forwardRef(() => SimpleNormalState),\r\n },\r\n optionsHandler: <PluginDescription<OptionsHandler, OptionsHandlerOptions>>\r\n {\r\n type: forwardRef(() => SimpleOptionsHandler),\r\n },\r\n popup: <PluginDescription<Popup, PopupOptions>>\r\n {\r\n type: forwardRef(() => SimplePopup),\r\n },\r\n positioner: <PluginDescription<Positioner, PositionerOptions>>\r\n {\r\n type: forwardRef(() => CommonPositioner),\r\n },\r\n readonlyState: <PluginDescription<ReadonlyState, ReadonlyStateOptions>>\r\n {\r\n type: forwardRef(() => SimpleNormalState),\r\n },\r\n valueHandler: <PluginDescription<ValueHandler, ValueHandlerOptions>>\r\n {\r\n type: forwardRef(() => StaticValueHandler),\r\n },\r\n },\r\n};\r\n\r\n/**\r\n * Component that represents Select itself, allows selection of value from options\r\n */\r\n@Component(\r\n{\r\n selector: 'ng-select',\r\n templateUrl: 'select.component.html',\r\n styleUrl: 'select.component.css',\r\n host:\r\n {\r\n '[class]': 'selectOptions.cssClasses.selectElement',\r\n },\r\n providers:\r\n [\r\n <FactoryProvider>\r\n {\r\n provide: SelectPluginInstances,\r\n useFactory: () => new SelectPluginInstances(),\r\n },\r\n SelectBus,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class Select<TValue = unknown, TPublicValue = TValue> implements SelectApi<TValue, TPublicValue, SelectCssClasses>, OptionsGatherer<TValue>, TemplateGatherer<TValue, TPublicValue>\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Instance of popup component used for positioning over page body when absolute option is true\r\n */\r\n protected popupComponentRef: ComponentRef<Popup<TValue, TPublicValue>>|undefined|null;\r\n\r\n /**\r\n * Object storing current used plugin type\r\n */\r\n protected pluginTypes: Record<SelectPluginType, Type<SelectPlugin<unknown, TValue, TPublicValue>>|undefined|null> =\r\n {\r\n Interactions: null,\r\n KeyboardHandler: null,\r\n LiveSearch: null,\r\n NormalState: null,\r\n OptionsHandler: null,\r\n Popup: null,\r\n Positioner: null,\r\n ReadonlyState: null,\r\n ValueHandler: null,\r\n };\r\n\r\n /**\r\n * Signal that holds init state of live search plugin\r\n */\r\n protected liveSearchInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Signal that holds init state of interactions plugin\r\n */\r\n protected interactionsInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Signal that holds init state of options handler plugin\r\n */\r\n protected optionsHandlerInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Signal that holds init state of positioner plugin\r\n */\r\n protected positionerInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Signal that holds init state of keyboard plugin\r\n */\r\n protected keyboardInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Signal that holds init state of value handler plugin\r\n */\r\n protected valueHandlerInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Signal that holds init state of readonly state plugin\r\n */\r\n protected readonlyStateInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Signal that holds init state of normal state plugin\r\n */\r\n protected normalStateInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Signal that holds init state of popup plugin\r\n */\r\n protected popupInit: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * Initialization state of all plugin init options\r\n */\r\n protected optionsInit: Signal<InitState> = computed(() => ({initialized: this.normalStateInit() &&\r\n this.keyboardInit() &&\r\n this.popupInit() &&\r\n this.positionerInit() &&\r\n this.readonlyStateInit() &&\r\n this.valueHandlerInit() &&\r\n this.liveSearchInit() &&\r\n this.interactionsInit() &&\r\n this.optionsHandlerInit()}));\r\n\r\n /**\r\n * Information whether is select initialized or not, changes when Select is initialized or reinitialized, if value is false Select was not initialized yet\r\n */\r\n protected initializedSignal: WritableSignal<boolean> = signal(false);\r\n\r\n //######################### protected properties - children #########################\r\n\r\n /**\r\n * Container used for rendering live search plugin\r\n */\r\n protected liveSearchContainer: Signal<ViewContainerRef> = viewChild.required('liveSearch', {read: ViewContainerRef});\r\n\r\n /**\r\n * Container used for rendering interactions plugin\r\n */\r\n protected interactionsContainer: Signal<ViewContainerRef> = viewChild.required('interactions', {read: ViewContainerRef});\r\n\r\n /**\r\n * Container used for rendering options handler plugin\r\n */\r\n protected optionsHandlerContainer: Signal<ViewContainerRef> = viewChild.required('optionsHandler', {read: ViewContainerRef});\r\n\r\n /**\r\n * Container used for rendering positioner plugin\r\n */\r\n protected positionerContainer: Signal<ViewContainerRef> = viewChild.required('positioner', {read: ViewContainerRef});\r\n\r\n /**\r\n * Container used for rendering keyboard handler plugin\r\n */\r\n protected keyboardHandlerContainer: Signal<ViewContainerRef> = viewChild.required('keyboardHandler', {read: ViewContainerRef});\r\n\r\n /**\r\n * Container used for rendering value handler plugin\r\n */\r\n protected valueHandlerContainer: Signal<ViewContainerRef> = viewChild.required('valueHandler', {read: ViewContainerRef});\r\n\r\n /**\r\n * Container used for rendering readonly state plugin\r\n */\r\n protected readonlyStateContainer: Signal<ViewContainerRef> = viewChild.required('readonlyState', {read: ViewContainerRef});\r\n\r\n /**\r\n * Container used for rendering normal state plugin\r\n */\r\n protected normalStateContainer: Signal<ViewContainerRef> = viewChild.required('normalState', {read: ViewContainerRef});\r\n\r\n /**\r\n * Container used for rendering popup plugin\r\n */\r\n protected popupContainer: Signal<ViewContainerRef> = viewChild.required('popup', {read: ViewContainerRef});\r\n\r\n //######################### public properties #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n @CopyOptionsAsSignal()\r\n public selectOptions: SelectOptions<TValue, TPublicValue, SelectCssClasses>;\r\n\r\n //######################### public properties - inputs #########################\r\n\r\n /**\r\n * Gets or sets Select options\r\n */\r\n @Input({alias: 'selectOptions'})\r\n public get selectOptionsInput(): SelectOptions<TValue, TPublicValue, SelectCssClasses>\r\n {\r\n return this.selectOptions;\r\n }\r\n public set selectOptionsInput(value: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>)\r\n {\r\n this.selectOptions = value as SelectOptions<TValue, TPublicValue, SelectCssClasses>;\r\n }\r\n\r\n /**\r\n * Indication whether should be Select disabled or not\r\n */\r\n public disabled: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\r\n\r\n /**\r\n * Indication whether should be Select readonly or not\r\n */\r\n public readonly: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\r\n\r\n //######################### public properties - implementation of SelectApi #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public get initialized(): Signal<boolean>\r\n {\r\n return this.initializedSignal.asReadonly();\r\n }\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public get events(): SelectEvents\r\n {\r\n return this.bus;\r\n }\r\n\r\n //######################### public properties - implementation of TemplateGatherer #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public readonly normalStateTemplate: Signal<TemplateRef<NormalStateContext<TValue, TPublicValue>>|undefined|null> = contentChild(NormalStateTemplate, {read: TemplateRef});\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public readonly optionTemplate: Signal<TemplateRef<PopupContext<TValue, TPublicValue>>|undefined|null> = contentChild(OptionTemplate, {read: TemplateRef});\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public readonly normalStateTagTemplate: Signal<TemplateRef<NormalStateTagContext<TValue, TPublicValue>>|undefined|null> = contentChild(NormalStateTagTemplate, {read: TemplateRef});\r\n\r\n //######################### public properties - implementation of OptionsGatherer #########################\r\n\r\n /**\r\n * Array of all available options for select\r\n */\r\n public readonly availableOptions: Signal<readonly SelectOptionState<TValue>[]|undefined|null> = contentChildren<SelectOptionState<TValue>>(Option, {descendants: true});\r\n\r\n //######################### constructors #########################\r\n constructor(protected pluginInstances: SelectPluginInstances<TValue, TPublicValue>,\r\n protected bus: SelectBus<TValue, TPublicValue>,\r\n @Inject(LOGGER) protected logger: Logger,\r\n element: ElementRef<HTMLElement>,\r\n @Inject(DOCUMENT) document: HTMLDocument,\r\n @Attribute('multiple') multiple?: string|null,\r\n @Inject(NORMAL_STATE_TYPE) @Optional() normalStateType?: Type<NormalState<TValue, TPublicValue>>|null,\r\n @Inject(KEYBOARD_HANDLER_TYPE) @Optional() keyboardHandlerType?: Type<KeyboardHandler<TValue, TPublicValue>>|null,\r\n @Inject(POPUP_TYPE) @Optional() popupType?: Type<Popup<TValue, TPublicValue>>|null,\r\n @Inject(POSITIONER_TYPE) @Optional() positionerType?: Type<Positioner<TValue, TPublicValue>>|null,\r\n @Inject(READONLY_STATE_TYPE) @Optional() readonlyStateType?: Type<ReadonlyState<TValue, TPublicValue>>|null,\r\n @Inject(VALUE_HANDLER_TYPE) @Optional() valueHandlerType?: Type<ValueHandler<TValue, TPublicValue>>|null,\r\n @Inject(LIVE_SEARCH_TYPE) @Optional() liveSearchType?: Type<LiveSearch<TValue, TPublicValue>>|null,\r\n @Inject(INTERACTIONS_TYPE) @Optional() interactionsType?: Type<Interactions<TValue, TPublicValue>>|null,\r\n @Inject(OPTIONS_HANDLER_TYPE) @Optional() optionsHandlerType?: Type<OptionsHandler<TValue, TPublicValue>>|null,\r\n @Inject(SELECT_OPTIONS) @Optional() options?: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>|null,)\r\n {\r\n //is present (value is not important)\r\n const multipleDefault = isPresent(multiple);\r\n const opts: RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>> = deepCopyWithArrayOverride({}, options);\r\n\r\n opts.plugins ??= {};\r\n\r\n if(keyboardHandlerType)\r\n {\r\n opts.plugins.keyboardHandler ??= {};\r\n opts.plugins.keyboardHandler.type = keyboardHandlerType;\r\n }\r\n\r\n if(normalStateType)\r\n {\r\n opts.plugins.normalState ??= {};\r\n opts.plugins.normalState.type = normalStateType;\r\n }\r\n\r\n if(popupType)\r\n {\r\n opts.plugins.popup ??= {};\r\n opts.plugins.popup.type = popupType;\r\n }\r\n\r\n if(positionerType)\r\n {\r\n opts.plugins.positioner ??= {};\r\n opts.plugins.positioner.type = positionerType;\r\n }\r\n\r\n if(readonlyStateType)\r\n {\r\n opts.plugins.readonlyState ??= {};\r\n opts.plugins.readonlyState.type = readonlyStateType;\r\n }\r\n\r\n if(valueHandlerType)\r\n {\r\n opts.plugins.valueHandler ??= {};\r\n opts.plugins.valueHandler.type = valueHandlerType;\r\n }\r\n\r\n if(liveSearchType)\r\n {\r\n opts.plugins.liveSearch ??= {};\r\n opts.plugins.liveSearch.type = liveSearchType;\r\n }\r\n\r\n if(interactionsType)\r\n {\r\n opts.plugins.interactions ??= {};\r\n opts.plugins.interactions.type = interactionsType;\r\n }\r\n\r\n if(optionsHandlerType)\r\n {\r\n opts.plugins.optionsHandler ??= {};\r\n opts.plugins.optionsHandler.type = optionsHandlerType;\r\n }\r\n\r\n this.selectOptions = deepCopyWithArrayOverride(\r\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\r\n {\r\n optionsGatherer: this,\r\n templateGatherer: this,\r\n },\r\n defaultOptions as SelectOptions<TValue, TPublicValue, SelectCssClasses>,\r\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\r\n {\r\n multiple: multipleDefault,\r\n },\r\n opts);\r\n\r\n this.logger.verbose('Select: ctor options initialized {{@(4)options}}', {options: this.selectOptions});\r\n\r\n bus.selectElement = signal(element).asReadonly();\r\n bus.selectOptions = computed(() => this.selectOptions);\r\n\r\n //dynamic update of readonly state in options\r\n effect(() =>\r\n {\r\n const readonly = this.readonly() || this.disabled();\r\n\r\n this.selectOptions =\r\n <RecursivePartial<SelectOptions<TValue, TPublicValue, SelectCssClasses>>>\r\n {\r\n readonly: readonly,\r\n } as SelectOptions<TValue, TPublicValue, SelectCssClasses>;\r\n\r\n this.logger.verbose('Select: readonly updated {{readonly}}', {readonly});\r\n });\r\n\r\n //create and initialize options for static plugins\r\n effect(async () =>\r\n {\r\n const selectOptions = this.selectOptions;\r\n const liveSearchContainer = this.liveSearchContainer();\r\n const interactionsContainer = this.interactionsContainer();\r\n const optionsHandlerContainer = this.optionsHandlerContainer();\r\n const positionerContainer = this.positionerContainer();\r\n const keyboardHandlerContainer = this.keyboardHandlerContainer();\r\n const valueHandlerContainer = this.valueHandlerContainer();\r\n\r\n await this.createPlugin(selectOptions.plugins?.liveSearch, SelectPluginType.LiveSearch, liveSearchContainer, this.liveSearchInit);\r\n await this.createPlugin(selectOptions.plugins?.interactions, SelectPluginType.Interactions, interactionsContainer, this.interactionsInit);\r\n await this.createPlugin(selectOptions.plugins?.optionsHandler, SelectPluginType.OptionsHandler, optionsHandlerContainer, this.optionsHandlerInit);\r\n await this.createPlugin(selectOptions.plugins?.positioner, SelectPluginType.Positioner, positionerContainer, this.positionerInit);\r\n await this.createPlugin(selectOptions.plugins?.keyboardHandler, SelectPluginType.KeyboardHandler, keyboardHandlerContainer, this.keyboardInit);\r\n await this.createPlugin(selectOptions.plugins?.valueHandler, SelectPluginType.ValueHandler, valueHandlerContainer, this.valueHandlerInit);\r\n });\r\n\r\n //create and initialize options for state plugins (normal and readonly)\r\n effect(() =>\r\n {\r\n const readonlyStateContainer = this.readonlyStateContainer();\r\n const normalStateContainer = this.normalStateContainer();\r\n const selectOptions = this.selectOptions;\r\n\r\n if(selectOptions.readonly)\r\n {\r\n this.destroyPlugin(SelectPluginType.NormalState, normalStateContainer, this.normalStateInit);\r\n this.normalStateInit.set(true);\r\n this.createPlugin(this.selectOptions.plugins?.readonlyState, SelectPluginType.ReadonlyState, readonlyStateContainer, this.readonlyStateInit);\r\n }\r\n else\r\n {\r\n this.destroyPlugin(SelectPluginType.ReadonlyState, readonlyStateContainer, this.readonlyStateInit);\r\n this.readonlyStateInit.set(true);\r\n this.createPlugin(this.selectOptions.plugins?.normalState, SelectPluginType.NormalState, normalStateContainer, this.normalStateInit);\r\n }\r\n });\r\n\r\n //create and initialize options for popup plugin, allows absolute positioning\r\n effect(() =>\r\n {\r\n const selectOptions = this.selectOptions;\r\n const popupContainer = this.popupContainer();\r\n\r\n this.destroyPlugin(SelectPluginType.Popup, popupContainer, this.popupInit);\r\n this.createPlugin(this.selectOptions.plugins?.popup, SelectPluginType.Popup, this.popupContainer(), this.popupInit);\r\n\r\n if(selectOptions.absolute && this.popupComponentRef)\r\n {\r\n const element = getHostElement(this.popupComponentRef);\r\n\r\n if(!element)\r\n {\r\n throw new Error('Could not get element of popup component');\r\n }\r\n\r\n renderToBody(document, element, selectOptions.containerElement);\r\n }\r\n });\r\n\r\n //initialize plugins when all options are initialized\r\n effect(() =>\r\n {\r\n this.initializedSignal.set(false);\r\n\r\n if(this.optionsInit().initialized)\r\n {\r\n this.initializedSignal.set(true);\r\n }\r\n });\r\n }\r\n\r\n //######################### public methods #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public getPlugin(pluginType: SelectPluginType.Interactions): Interactions<TValue, TPublicValue>;\r\n public getPlugin(pluginType: SelectPluginType.KeyboardHandler): KeyboardHandler<TValue, TPublicValue>;\r\n public getPlugin(pluginType: SelectPluginType.LiveSearch): LiveSearch<TValue, TPublicValue>;\r\n public getPlugin(pluginType: SelectPluginType.NormalState): NormalState<TValue, TPublicValue>;\r\n public getPlugin(pluginType: SelectPluginType.OptionsHandler): OptionsHandler<TValue, TPublicValue>;\r\n public getPlugin(pluginType: SelectPluginType.Popup): Popup<TValue, TPublicValue>;\r\n public getPlugin(pluginType: SelectPluginType.Positioner): Positioner<TValue, TPublicValue>;\r\n public getPlugin(pluginType: SelectPluginType.ReadonlyState): ReadonlyState<TValue, TPublicValue>;\r\n public getPlugin(pluginType: SelectPluginType.ValueHandler): ValueHandler<TValue, TPublicValue>;\r\n public getPlugin<PluginInstance extends SelectPlugin<unknown, TValue, TPublicValue>>(pluginType: SelectPluginType): PluginInstance\r\n {\r\n return this.pluginInstances[pluginType] as PluginInstance;\r\n }\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public execute(...actions: SelectAction<TValue, TPublicValue, SelectCssClasses>[])\r\n {\r\n if(!actions)\r\n {\r\n return;\r\n }\r\n\r\n actions.forEach(action => action(this));\r\n }\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public executeAndReturn<TResult>(func: SelectFunction<TResult, TValue, TPublicValue, SelectCssClasses>): TResult\r\n {\r\n if(!func)\r\n {\r\n throw new Error('Function is required');\r\n }\r\n\r\n return func(this);\r\n }\r\n\r\n // //######################### protected methods #########################\r\n\r\n /**\r\n * Creates plugin\r\n * @param pluginDescription - Information about plugin that should be created\r\n * @param pluginType - Key of plugin used for pluginInstances\r\n * @param pluginViewContainer - Container where should be plugin created\r\n * @param initOptions - Signal that hold information about init options state for this plugin\r\n */\r\n protected async createPlugin<TPlugin extends SelectPlugin<unknown, TValue, TPublicValue>>(pluginDescription: PluginDescription<TPlugin>|undefined|null,\r\n pluginType: SelectPluginType,\r\n pluginViewContainer: ViewContainerRef,\r\n initOptions: WritableSignal<boolean>,): Promise<void>\r\n {\r\n this.logger.verbose('Select: creating plugin \"{{type}}\", with type \"{{typ}}\"', {type: pluginType, typ: pluginDescription?.type});\r\n\r\n if(!pluginDescription?.type)\r\n {\r\n this.destroyPlugin(pluginType, pluginViewContainer, initOptions);\r\n\r\n return;\r\n }\r\n\r\n const type = resolveForwardRef(pluginDescription.type);\r\n\r\n //new type provided\r\n if(type != this.pluginTypes[pluginType])\r\n {\r\n this.logger.verbose('Select: creating plugin instance for \"{{type}}\"', {type: pluginType});\r\n\r\n initOptions.set(false);\r\n this.pluginTypes[pluginType] = type;\r\n pluginViewContainer.clear();\r\n\r\n const component = pluginViewContainer.createComponent(type);\r\n component.changeDetectorRef.detectChanges();\r\n this.pluginInstances[pluginType] = component.instance;\r\n\r\n if(pluginType == SelectPluginType.Popup)\r\n {\r\n this.popupComponentRef = component as ComponentRef<Popup<TValue, TPublicValue>>;\r\n }\r\n }\r\n\r\n //options are available, set them\r\n if(pluginDescription.options)\r\n {\r\n this.logger.verbose('Select: setting options for \"{{type}}\" plugin, options: {{@(4)options}}', {type: pluginType, options: pluginDescription.options});\r\n\r\n initOptions.set(false);\r\n this.pluginInstances[pluginType].options = pluginDescription.options;\r\n }\r\n\r\n this.logger.verbose('Select: options initialized for \"{{type}}\" plugin', {type: pluginType});\r\n initOptions.set(true);\r\n }\r\n\r\n /**\r\n * Destroys plugin\r\n * @param pluginType - Plugin type to be destroyed\r\n * @param plugiViewContainer - Container which will be emptied\r\n * @param initOptions - Signal that hold information about init options state for this plugin\r\n */\r\n protected destroyPlugin(pluginType: SelectPluginType,\r\n pluginViewContainer: ViewContainerRef,\r\n initOptions: WritableSignal<boolean>,): void\r\n {\r\n if(pluginType == SelectPluginType.Popup)\r\n {\r\n this.popupComponentRef = null;\r\n }\r\n\r\n this.logger.verbose('Select: destroying plugin \"{{type}}\"', {type: pluginType});\r\n\r\n pluginViewContainer.clear();\r\n initOptions.set(false);\r\n this.pluginTypes[pluginType] = null;\r\n }\r\n}\r\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":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,uDAAuD,CAAC","sourcesContent":["export * from './mergeOptionsAsSignal/mergeOptionsAsSignal.decorator';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,uDAAuD,CAAC","sourcesContent":["export * from './mergeOptionsAsSignal/mergeOptionsAsSignal.decorator';\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeOptionsAsSignal.decorator.js","sourceRoot":"","sources":["../../../../src/decorators/mergeOptionsAsSignal/mergeOptionsAsSignal.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAEhE,SAAS,gBAAgB,CAAC,cAAuB,EAAE,OAAgB;IAE/D,OAAO,yBAAyB,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAE/B,OAAO,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import {AsSignal} from '@anglr/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nfunction optionsTransform(currentOptions: unknown, options: unknown): unknown\n{\n return deepCopyWithArrayOverride({}, currentOptions, options);\n}\n\n/**\n * Creates backing field for this property as WritableSignal, reads and write to it, and merges options\n */\nexport function CopyOptionsAsSignal(): PropertyDecorator\n{\n return AsSignal(optionsTransform);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mergeOptionsAsSignal.decorator.js","sourceRoot":"","sources":["../../../../src/decorators/mergeOptionsAsSignal/mergeOptionsAsSignal.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAEhE,SAAS,gBAAgB,CAAC,cAAuB,EAAE,OAAgB;IAE/D,OAAO,yBAAyB,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAE/B,OAAO,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import {AsSignal} from '@anglr/common';\r\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\r\n\r\nfunction optionsTransform(currentOptions: unknown, options: unknown): unknown\r\n{\r\n return deepCopyWithArrayOverride({}, currentOptions, options);\r\n}\r\n\r\n/**\r\n * Creates backing field for this property as WritableSignal, reads and write to it, and merges options\r\n */\r\nexport function CopyOptionsAsSignal(): PropertyDecorator\r\n{\r\n return AsSignal(optionsTransform);\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlightInstance.directive.js","sourceRoot":"","sources":["../../../../src/directives/highlightInstance/highlightInstance.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAoB,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;;AAElD;;GAEG;AAKH,MAAM,OAAO,iBAAiB;IA8C1B,iEAAiE;IACjE;QA7CA,sEAAsE;QAEtE;;WAEG;QACO,WAAM,GAAiC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhE;;WAEG;QACO,cAAS,GAAc,IAAI,SAAS,EAAE,CAAC;QAEjD,uEAAuE;QAEvE;;WAEG;QACI,gBAAW,GAAmB,QAAQ,CAAC,GAAG,EAAE;YAE/C,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAC7B,CAAC;gBACG,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAEtE,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;wFAAC,CAAC;QAEH;;WAEG;QACI,YAAO,GAAoB,QAAQ,CAAC,GAAG,EAAE;YAE5C,IAAG,CAAC,GAAG,CAAC,UAAU,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAC/C,CAAC;gBACG,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAE5D,OAAO,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC5C,CAAC;oFAAC,CAAC;QAKC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACI,uBAAuB,CAAC,MAAe;QAE1C,KAAI,MAAM,KAAK,IAAI,MAAM,EACzB,CAAC;YACG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,yBAAyB,CAAC,MAAe;QAE5C,KAAI,MAAM,KAAK,IAAI,MAAM,EACzB,CAAC;YACG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;8GAtFQ,iBAAiB;kGAAjB,iBAAiB;;2FAAjB,iBAAiB;kBAJ7B,SAAS;mBACV;oBACI,QAAQ,EAAE,qBAAqB;iBAClC","sourcesContent":["import {computed, Directive, inject, OnDestroy, Signal} from '@angular/core';\n\nimport {Select} from '../../components';\nimport {SelectPluginType} from '../../misc/enums';\n\n/**\n * Directive that manages highlighting for popup\n */\n@Directive(\n{\n selector: '[highlightInstance]',\n})\nexport class HighlightInstance<TValue = unknown, TPublicValue = TValue> implements OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Instance of select component\n */\n protected select: Select<TValue, TPublicValue> = inject(Select);\n\n /**\n * Shared instance of highlight\n */\n protected highlight: Highlight = new Highlight();\n\n //######################### public properties #########################\n\n /**\n * Signal that represents current search query\n */\n public searchQuery: Signal<string> = computed(() =>\n {\n if(!this.select.initialized())\n {\n return '';\n }\n\n const liveSearch = this.select.getPlugin(SelectPluginType.LiveSearch);\n\n return liveSearch.search();\n });\n\n /**\n * Indication whether highlighting is enabled or not\n */\n public enabled: Signal<boolean> = computed(() =>\n {\n if(!CSS.highlights ||!this.select.initialized())\n {\n return false;\n }\n\n const popup = this.select.getPlugin(SelectPluginType.Popup);\n\n return popup.options.searchHighlighting;\n });\n\n //######################### constructor #########################\n constructor()\n {\n CSS.highlights.set('search-query', this.highlight);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy(): void\n {\n CSS.highlights.delete('search-query');\n }\n\n //######################### public methods #########################\n\n /**\n * Registers ranges for highlighting\n * @param ranges - Ranges to be registered for highlighting\n */\n public registerHighlightRanges(ranges: Range[]): void\n {\n for(const range of ranges)\n {\n this.highlight.add(range);\n }\n }\n\n /**\n * Unregisters ranges from highlighting\n * @param ranges - Ranges to be unregistered from highlighting\n */\n public unregisterHighlightRanges(ranges: Range[]): void\n {\n for(const range of ranges)\n {\n this.highlight.delete(range);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"highlightInstance.directive.js","sourceRoot":"","sources":["../../../../src/directives/highlightInstance/highlightInstance.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAoB,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;;AAElD;;GAEG;AAKH,MAAM,OAAO,iBAAiB;IA8C1B,iEAAiE;IACjE;QA7CA,sEAAsE;QAEtE;;WAEG;QACO,WAAM,GAAiC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhE;;WAEG;QACO,cAAS,GAAc,IAAI,SAAS,EAAE,CAAC;QAEjD,uEAAuE;QAEvE;;WAEG;QACI,gBAAW,GAAmB,QAAQ,CAAC,GAAG,EAAE;YAE/C,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAC7B,CAAC;gBACG,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAEtE,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;wFAAC,CAAC;QAEH;;WAEG;QACI,YAAO,GAAoB,QAAQ,CAAC,GAAG,EAAE;YAE5C,IAAG,CAAC,GAAG,CAAC,UAAU,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAC/C,CAAC;gBACG,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAE5D,OAAO,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC5C,CAAC;oFAAC,CAAC;QAKC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACI,uBAAuB,CAAC,MAAe;QAE1C,KAAI,MAAM,KAAK,IAAI,MAAM,EACzB,CAAC;YACG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,yBAAyB,CAAC,MAAe;QAE5C,KAAI,MAAM,KAAK,IAAI,MAAM,EACzB,CAAC;YACG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;8GAtFQ,iBAAiB;kGAAjB,iBAAiB;;2FAAjB,iBAAiB;kBAJ7B,SAAS;mBACV;oBACI,QAAQ,EAAE,qBAAqB;iBAClC","sourcesContent":["import {computed, Directive, inject, OnDestroy, Signal} from '@angular/core';\r\n\r\nimport {Select} from '../../components';\r\nimport {SelectPluginType} from '../../misc/enums';\r\n\r\n/**\r\n * Directive that manages highlighting for popup\r\n */\r\n@Directive(\r\n{\r\n selector: '[highlightInstance]',\r\n})\r\nexport class HighlightInstance<TValue = unknown, TPublicValue = TValue> implements OnDestroy\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Instance of select component\r\n */\r\n protected select: Select<TValue, TPublicValue> = inject(Select);\r\n\r\n /**\r\n * Shared instance of highlight\r\n */\r\n protected highlight: Highlight = new Highlight();\r\n\r\n //######################### public properties #########################\r\n\r\n /**\r\n * Signal that represents current search query\r\n */\r\n public searchQuery: Signal<string> = computed(() =>\r\n {\r\n if(!this.select.initialized())\r\n {\r\n return '';\r\n }\r\n\r\n const liveSearch = this.select.getPlugin(SelectPluginType.LiveSearch);\r\n\r\n return liveSearch.search();\r\n });\r\n\r\n /**\r\n * Indication whether highlighting is enabled or not\r\n */\r\n public enabled: Signal<boolean> = computed(() =>\r\n {\r\n if(!CSS.highlights ||!this.select.initialized())\r\n {\r\n return false;\r\n }\r\n\r\n const popup = this.select.getPlugin(SelectPluginType.Popup);\r\n\r\n return popup.options.searchHighlighting;\r\n });\r\n\r\n //######################### constructor #########################\r\n constructor()\r\n {\r\n CSS.highlights.set('search-query', this.highlight);\r\n }\r\n\r\n //######################### public methods - implementation of OnDestroy #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public ngOnDestroy(): void\r\n {\r\n CSS.highlights.delete('search-query');\r\n }\r\n\r\n //######################### public methods #########################\r\n\r\n /**\r\n * Registers ranges for highlighting\r\n * @param ranges - Ranges to be registered for highlighting\r\n */\r\n public registerHighlightRanges(ranges: Range[]): void\r\n {\r\n for(const range of ranges)\r\n {\r\n this.highlight.add(range);\r\n }\r\n }\r\n\r\n /**\r\n * Unregisters ranges from highlighting\r\n * @param ranges - Ranges to be unregistered from highlighting\r\n */\r\n public unregisterHighlightRanges(ranges: Range[]): void\r\n {\r\n for(const range of ranges)\r\n {\r\n this.highlight.delete(range);\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlightSearch.directive.js","sourceRoot":"","sources":["../../../../src/directives/highlightSearch/highlightSearch.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {afterRenderEffect, Directive, effect, ElementRef, inject, Injector, OnDestroy, signal, untracked, WritableSignal} from '@angular/core';\n\nimport {HighlightInstance} from '../highlightInstance/highlightInstance.directive';\n\n/**\n * Direcitve that handles highlighting of search text, attached directly to option where highlighting should occur.\n */\n@Directive(\n{\n selector: '[highlightSearch]',\n exportAs: 'highlightSearch',\n})\nexport class HighlightSearch implements OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Instance of highlight instance\n */\n protected highlightInstance: HighlightInstance = inject(HighlightInstance);\n\n /**\n * Instance of element reference\n */\n protected element: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * All nodes that are children of this element and can be highlighted\n */\n protected nodes: WritableSignal<Node[]> = signal([]);\n\n /**\n * Array of registered text nodes that are currently active on this element\n */\n protected textNodes: WritableSignal<Node[]> = signal([]);\n\n /**\n * Array of highlighted ranges that are currently active on this element\n */\n protected ranges: WritableSignal<Range[]> = signal([]);\n\n //######################### public properties #########################\n\n /**\n * Instance of injector used for obtaining dependencies in templates\n */\n public injector: Injector = inject(Injector);\n\n //######################### constructor #########################\n constructor()\n {\n afterRenderEffect(\n {\n read: () =>\n {\n const nodes: Node[] = [];\n\n for(let x = 0; x < this.element.nativeElement.childNodes.length; x++)\n {\n const node = this.element.nativeElement.childNodes.item(x);\n\n if(node && node.nodeType === Node.TEXT_NODE)\n {\n nodes.push(node);\n }\n }\n\n this.nodes.set(nodes);\n },\n });\n\n effect(() =>\n {\n const nodes = this.textNodes().length ? this.textNodes() : this.nodes();\n\n if(!this.highlightInstance.enabled() || !nodes.length)\n {\n return;\n }\n\n const searchQuery = this.highlightInstance.searchQuery();\n\n if(!searchQuery)\n {\n this.highlightInstance.unregisterHighlightRanges(untracked(() => this.ranges()));\n this.ranges.set([]);\n\n return;\n }\n\n this.highlightInstance.unregisterHighlightRanges(untracked(() => this.ranges()));\n\n this.ranges.set(nodes.flatMap(node =>\n {\n const ranges: Range[] = [];\n let text = node.textContent ?? '';\n let index: number;\n let length: number = 0;\n\n while((index = text.indexOf(searchQuery)) > -1)\n {\n const range = new Range();\n\n range.setStart(node, index + length);\n range.setEnd(node, index + length + searchQuery.length);\n ranges.push(range);\n\n text = text.slice(index + searchQuery.length);\n length += index + searchQuery.length;\n }\n\n return ranges;\n }));\n\n this.highlightInstance.registerHighlightRanges(untracked(() => this.ranges()));\n });\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy(): void\n {\n this.highlightInstance.unregisterHighlightRanges(untracked(() => this.ranges()));\n this.ranges.set([]);\n }\n\n //######################### public methods #########################\n\n /**\n * Adds nodes to the list of text nodes that are currently active on this element\n * @param nodes - Nodes to be added\n */\n public addNodes(nodes: Node[]): void\n {\n this.textNodes.set([...untracked(() => this.textNodes()), ...nodes]);\n }\n\n /**\n * Removes nodes from the list of text nodes that are currently active on this element\n * @param nodes - Nodes to be removed\n */\n public removeNodes(nodes: Node[]): void\n {\n this.textNodes.set(untracked(() => this.textNodes()).filter(node => !nodes.includes(node)));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"highlightSearch.directive.js","sourceRoot":"","sources":["../../../../src/directives/highlightSearch/highlightSearch.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {afterRenderEffect, Directive, effect, ElementRef, inject, Injector, OnDestroy, signal, untracked, WritableSignal} from '@angular/core';\r\n\r\nimport {HighlightInstance} from '../highlightInstance/highlightInstance.directive';\r\n\r\n/**\r\n * Direcitve that handles highlighting of search text, attached directly to option where highlighting should occur.\r\n */\r\n@Directive(\r\n{\r\n selector: '[highlightSearch]',\r\n exportAs: 'highlightSearch',\r\n})\r\nexport class HighlightSearch implements OnDestroy\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Instance of highlight instance\r\n */\r\n protected highlightInstance: HighlightInstance = inject(HighlightInstance);\r\n\r\n /**\r\n * Instance of element reference\r\n */\r\n protected element: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n /**\r\n * All nodes that are children of this element and can be highlighted\r\n */\r\n protected nodes: WritableSignal<Node[]> = signal([]);\r\n\r\n /**\r\n * Array of registered text nodes that are currently active on this element\r\n */\r\n protected textNodes: WritableSignal<Node[]> = signal([]);\r\n\r\n /**\r\n * Array of highlighted ranges that are currently active on this element\r\n */\r\n protected ranges: WritableSignal<Range[]> = signal([]);\r\n\r\n //######################### public properties #########################\r\n\r\n /**\r\n * Instance of injector used for obtaining dependencies in templates\r\n */\r\n public injector: Injector = inject(Injector);\r\n\r\n //######################### constructor #########################\r\n constructor()\r\n {\r\n afterRenderEffect(\r\n {\r\n read: () =>\r\n {\r\n const nodes: Node[] = [];\r\n\r\n for(let x = 0; x < this.element.nativeElement.childNodes.length; x++)\r\n {\r\n const node = this.element.nativeElement.childNodes.item(x);\r\n\r\n if(node && node.nodeType === Node.TEXT_NODE)\r\n {\r\n nodes.push(node);\r\n }\r\n }\r\n\r\n this.nodes.set(nodes);\r\n },\r\n });\r\n\r\n effect(() =>\r\n {\r\n const nodes = this.textNodes().length ? this.textNodes() : this.nodes();\r\n\r\n if(!this.highlightInstance.enabled() || !nodes.length)\r\n {\r\n return;\r\n }\r\n\r\n const searchQuery = this.highlightInstance.searchQuery();\r\n\r\n if(!searchQuery)\r\n {\r\n this.highlightInstance.unregisterHighlightRanges(untracked(() => this.ranges()));\r\n this.ranges.set([]);\r\n\r\n return;\r\n }\r\n\r\n this.highlightInstance.unregisterHighlightRanges(untracked(() => this.ranges()));\r\n\r\n this.ranges.set(nodes.flatMap(node =>\r\n {\r\n const ranges: Range[] = [];\r\n let text = node.textContent ?? '';\r\n let index: number;\r\n let length: number = 0;\r\n\r\n while((index = text.indexOf(searchQuery)) > -1)\r\n {\r\n const range = new Range();\r\n\r\n range.setStart(node, index + length);\r\n range.setEnd(node, index + length + searchQuery.length);\r\n ranges.push(range);\r\n\r\n text = text.slice(index + searchQuery.length);\r\n length += index + searchQuery.length;\r\n }\r\n\r\n return ranges;\r\n }));\r\n\r\n this.highlightInstance.registerHighlightRanges(untracked(() => this.ranges()));\r\n });\r\n }\r\n\r\n //######################### public methods - implementation of OnDestroy #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public ngOnDestroy(): void\r\n {\r\n this.highlightInstance.unregisterHighlightRanges(untracked(() => this.ranges()));\r\n this.ranges.set([]);\r\n }\r\n\r\n //######################### public methods #########################\r\n\r\n /**\r\n * Adds nodes to the list of text nodes that are currently active on this element\r\n * @param nodes - Nodes to be added\r\n */\r\n public addNodes(nodes: Node[]): void\r\n {\r\n this.textNodes.set([...untracked(() => this.textNodes()), ...nodes]);\r\n }\r\n\r\n /**\r\n * Removes nodes from the list of text nodes that are currently active on this element\r\n * @param nodes - Nodes to be removed\r\n */\r\n public removeNodes(nodes: Node[]): void\r\n {\r\n this.textNodes.set(untracked(() => this.textNodes()).filter(node => !nodes.includes(node)));\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlightText.directive.js","sourceRoot":"","sources":["../../../../src/directives/highlightText/highlightText.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAa,MAAM,EAAiB,MAAM,eAAe,CAAC;AAE1H,OAAO,EAAC,eAAe,EAAC,MAAM,8CAA8C,CAAC;;AAE7E;;GAEG;AAKH,MAAM,OAAO,aAAa;IAmBtB,iEAAiE;IACjE;QAlBA,sEAAsE;QAEtE;;WAEG;QACO,YAAO,GAA4B,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhE;;WAEG;QACO,oBAAe,GAAmC,MAAM,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAEtG;;WAEG;QACO,cAAS,GAA2B,MAAM,CAAC,EAAE;sFAAC,CAAC;QAKrD,IAAG,CAAC,IAAI,CAAC,eAAe,EACxB,CAAC;YACG,MAAM,IAAI,KAAK,CAAC,8HAA8H,CAAC,CAAC;QACpJ,CAAC;QAED,iBAAiB,CACjB;YACI,IAAI,EAAE,GAAG,EAAE;gBAEP,MAAM,KAAK,GAAW,EAAE,CAAC;gBAEzB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EACpE,CAAC;oBACG,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAE3D,IAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAC3C,CAAC;wBACG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,EAAE;YAER,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAE/B,IAAG,CAAC,KAAK,CAAC,MAAM,EAChB,CAAC;gBACG,OAAO;YACX,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;8GApEQ,aAAa;kGAAb,aAAa;;2FAAb,aAAa;kBAJzB,SAAS;mBACV;oBACI,QAAQ,EAAE,iBAAiB;iBAC9B","sourcesContent":["import {afterRenderEffect, Directive, effect, ElementRef, inject, OnDestroy, signal, WritableSignal} from '@angular/core';\n\nimport {HighlightSearch} from '../highlightSearch/highlightSearch.directive';\n\n/**\n * Directive that marks element that contains text that should be highlighted\n */\n@Directive(\n{\n selector: '[highlightText]',\n})\nexport class HighlightText implements OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Instance of element that will have highlighted text\n */\n protected element: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * Instance of HighlightSearch directive that is used to highlight text in the element\n */\n protected highlightSearch: HighlightSearch|undefined|null = inject(HighlightSearch, {optional: true});\n\n /**\n * Array of registered text nodes that are currently active on this element\n */\n protected textNodes: WritableSignal<Node[]> = signal([]);\n\n //######################### constructor #########################\n constructor()\n {\n if(!this.highlightSearch)\n {\n throw new Error('HighlightText: HighlightSearch directive is not found on parent elements. Use HighlightText within OptionTemplate directive.');\n }\n\n afterRenderEffect(\n {\n read: () =>\n {\n const nodes: Node[] = [];\n\n for(let x = 0; x < this.element.nativeElement.childNodes.length; x++)\n {\n const node = this.element.nativeElement.childNodes.item(x);\n\n if(node && node.nodeType === Node.TEXT_NODE)\n {\n nodes.push(node);\n }\n }\n\n this.textNodes.set(nodes);\n },\n });\n\n effect(() =>\n {\n const nodes = this.textNodes();\n\n if(!nodes.length)\n {\n return;\n }\n\n this.highlightSearch?.addNodes(nodes);\n });\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy(): void\n {\n this.highlightSearch?.removeNodes(this.textNodes());\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"highlightText.directive.js","sourceRoot":"","sources":["../../../../src/directives/highlightText/highlightText.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAa,MAAM,EAAiB,MAAM,eAAe,CAAC;AAE1H,OAAO,EAAC,eAAe,EAAC,MAAM,8CAA8C,CAAC;;AAE7E;;GAEG;AAKH,MAAM,OAAO,aAAa;IAmBtB,iEAAiE;IACjE;QAlBA,sEAAsE;QAEtE;;WAEG;QACO,YAAO,GAA4B,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhE;;WAEG;QACO,oBAAe,GAAmC,MAAM,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAEtG;;WAEG;QACO,cAAS,GAA2B,MAAM,CAAC,EAAE;sFAAC,CAAC;QAKrD,IAAG,CAAC,IAAI,CAAC,eAAe,EACxB,CAAC;YACG,MAAM,IAAI,KAAK,CAAC,8HAA8H,CAAC,CAAC;QACpJ,CAAC;QAED,iBAAiB,CACjB;YACI,IAAI,EAAE,GAAG,EAAE;gBAEP,MAAM,KAAK,GAAW,EAAE,CAAC;gBAEzB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EACpE,CAAC;oBACG,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAE3D,IAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAC3C,CAAC;wBACG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,EAAE;YAER,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAE/B,IAAG,CAAC,KAAK,CAAC,MAAM,EAChB,CAAC;gBACG,OAAO;YACX,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;8GApEQ,aAAa;kGAAb,aAAa;;2FAAb,aAAa;kBAJzB,SAAS;mBACV;oBACI,QAAQ,EAAE,iBAAiB;iBAC9B","sourcesContent":["import {afterRenderEffect, Directive, effect, ElementRef, inject, OnDestroy, signal, WritableSignal} from '@angular/core';\r\n\r\nimport {HighlightSearch} from '../highlightSearch/highlightSearch.directive';\r\n\r\n/**\r\n * Directive that marks element that contains text that should be highlighted\r\n */\r\n@Directive(\r\n{\r\n selector: '[highlightText]',\r\n})\r\nexport class HighlightText implements OnDestroy\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Instance of element that will have highlighted text\r\n */\r\n protected element: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n /**\r\n * Instance of HighlightSearch directive that is used to highlight text in the element\r\n */\r\n protected highlightSearch: HighlightSearch|undefined|null = inject(HighlightSearch, {optional: true});\r\n\r\n /**\r\n * Array of registered text nodes that are currently active on this element\r\n */\r\n protected textNodes: WritableSignal<Node[]> = signal([]);\r\n\r\n //######################### constructor #########################\r\n constructor()\r\n {\r\n if(!this.highlightSearch)\r\n {\r\n throw new Error('HighlightText: HighlightSearch directive is not found on parent elements. Use HighlightText within OptionTemplate directive.');\r\n }\r\n\r\n afterRenderEffect(\r\n {\r\n read: () =>\r\n {\r\n const nodes: Node[] = [];\r\n\r\n for(let x = 0; x < this.element.nativeElement.childNodes.length; x++)\r\n {\r\n const node = this.element.nativeElement.childNodes.item(x);\r\n\r\n if(node && node.nodeType === Node.TEXT_NODE)\r\n {\r\n nodes.push(node);\r\n }\r\n }\r\n\r\n this.textNodes.set(nodes);\r\n },\r\n });\r\n\r\n effect(() =>\r\n {\r\n const nodes = this.textNodes();\r\n\r\n if(!nodes.length)\r\n {\r\n return;\r\n }\r\n\r\n this.highlightSearch?.addNodes(nodes);\r\n });\r\n }\r\n\r\n //######################### public methods - implementation of OnDestroy #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public ngOnDestroy(): void\r\n {\r\n this.highlightSearch?.removeNodes(this.textNodes());\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,iDAAiD,CAAC;AAChE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,qDAAqD,CAAC;AACpE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,qDAAqD,CAAC;AACpE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mEAAmE,CAAC;AAClF,cAAc,mCAAmC,CAAC;AAClD,cAAc,iDAAiD,CAAC;AAChE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iDAAiD,CAAC;AAChE,cAAc,+CAA+C,CAAC","sourcesContent":["export * from './highlightInstance/highlightInstance.directive';\nexport * from './highlightSearch/highlightSearch.directive';\nexport * from './highlightText/highlightText.directive';\nexport * from './normalStateTemplate/normalStateTemplate.directive';\nexport * from './normalStateTagTemplate/normalStateTagTemplate.directive';\nexport * from './optionGroupTemplate/optionGroupTemplate.directive';\nexport * from './optionTemplate/optionTemplate.directive';\nexport * from './selectAbsolute/selectAbsolute.directive';\nexport * from './selectControlValueAccessor/selectControlValueAccessor.directive';\nexport * from './selectEdit/selectEdit.directive';\nexport * from './selectFormControl/selectFormControl.directive';\nexport * from './selectMultipleKeepPopup/selectMultipleKeepPopup.directive';\nexport * from './selectNoCarret/selectNoCarret.directive';\nexport * from './selectPlaceholder/selectPlaceholder.directive';\nexport * from './withDirectAccess/withDirectAccess.directive';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,iDAAiD,CAAC;AAChE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,qDAAqD,CAAC;AACpE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,qDAAqD,CAAC;AACpE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mEAAmE,CAAC;AAClF,cAAc,mCAAmC,CAAC;AAClD,cAAc,iDAAiD,CAAC;AAChE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iDAAiD,CAAC;AAChE,cAAc,+CAA+C,CAAC","sourcesContent":["export * from './highlightInstance/highlightInstance.directive';\r\nexport * from './highlightSearch/highlightSearch.directive';\r\nexport * from './highlightText/highlightText.directive';\r\nexport * from './normalStateTemplate/normalStateTemplate.directive';\r\nexport * from './normalStateTagTemplate/normalStateTagTemplate.directive';\r\nexport * from './optionGroupTemplate/optionGroupTemplate.directive';\r\nexport * from './optionTemplate/optionTemplate.directive';\r\nexport * from './selectAbsolute/selectAbsolute.directive';\r\nexport * from './selectControlValueAccessor/selectControlValueAccessor.directive';\r\nexport * from './selectEdit/selectEdit.directive';\r\nexport * from './selectFormControl/selectFormControl.directive';\r\nexport * from './selectMultipleKeepPopup/selectMultipleKeepPopup.directive';\r\nexport * from './selectNoCarret/selectNoCarret.directive';\r\nexport * from './selectPlaceholder/selectPlaceholder.directive';\r\nexport * from './withDirectAccess/withDirectAccess.directive';\r\n"]}
|
package/es2022/src/directives/normalStateTagTemplate/normalStateTagTemplate.directive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalStateTagTemplate.directive.js","sourceRoot":"","sources":["../../../../src/directives/normalStateTagTemplate/normalStateTagTemplate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;;AAI7D;;GAEG;AAMH,MAAM,OAAO,sBAAsB;IALnC;QAOI,uEAAuE;QAEvE;;WAEG;QACI,aAAQ,GAA4C,MAAM,CAAC,WAAW,CAAC,CAAC;KAWlF;IATG,wEAAwE;IAExE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAA4B,EAAE,IAAa;QAErE,OAAO,IAAI,CAAC;IAChB,CAAC;8GAjBQ,sBAAsB;kGAAtB,sBAAsB;;2FAAtB,sBAAsB;kBALlC,SAAS;mBACV;oBACI,QAAQ,EAAE,0BAA0B;oBACpC,QAAQ,EAAE,yBAAyB;iBACtC","sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\n\nimport {NormalStateTagContext} from '../../interfaces';\n\n/**\n * Directive used for obtaining template for normal state tag\n */\n@Directive(\n{\n selector: '[normalStateTagTemplate]',\n exportAs: 'normalStateTagTemplate,',\n})\nexport class NormalStateTagTemplate\n{\n //######################### public properties #########################\n\n /**\n * Instance of template for normal state tag\n */\n public template: TemplateRef<NormalStateTagContext<any>> = inject(TemplateRef);\n\n //######################### ng language server #########################\n\n /**\n * Allows typechecking for template\n */\n static ngTemplateContextGuard(_dir: NormalStateTagTemplate, _ctx: unknown): _ctx is NormalStateTagContext<any>\n {\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"normalStateTagTemplate.directive.js","sourceRoot":"","sources":["../../../../src/directives/normalStateTagTemplate/normalStateTagTemplate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;;AAI7D;;GAEG;AAMH,MAAM,OAAO,sBAAsB;IALnC;QAOI,uEAAuE;QAEvE;;WAEG;QACI,aAAQ,GAA4C,MAAM,CAAC,WAAW,CAAC,CAAC;KAWlF;IATG,wEAAwE;IAExE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAA4B,EAAE,IAAa;QAErE,OAAO,IAAI,CAAC;IAChB,CAAC;8GAjBQ,sBAAsB;kGAAtB,sBAAsB;;2FAAtB,sBAAsB;kBALlC,SAAS;mBACV;oBACI,QAAQ,EAAE,0BAA0B;oBACpC,QAAQ,EAAE,yBAAyB;iBACtC","sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\r\n\r\nimport {NormalStateTagContext} from '../../interfaces';\r\n\r\n/**\r\n * Directive used for obtaining template for normal state tag\r\n */\r\n@Directive(\r\n{\r\n selector: '[normalStateTagTemplate]',\r\n exportAs: 'normalStateTagTemplate,',\r\n})\r\nexport class NormalStateTagTemplate\r\n{\r\n //######################### public properties #########################\r\n\r\n /**\r\n * Instance of template for normal state tag\r\n */\r\n public template: TemplateRef<NormalStateTagContext<any>> = inject(TemplateRef);\r\n\r\n //######################### ng language server #########################\r\n\r\n /**\r\n * Allows typechecking for template\r\n */\r\n static ngTemplateContextGuard(_dir: NormalStateTagTemplate, _ctx: unknown): _ctx is NormalStateTagContext<any>\r\n {\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalStateTemplate.directive.js","sourceRoot":"","sources":["../../../../src/directives/normalStateTemplate/normalStateTemplate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;;AAI7D;;GAEG;AAMH,MAAM,OAAO,mBAAmB;IALhC;QAOI,uEAAuE;QAEvE;;WAEG;QACI,aAAQ,GAAoC,MAAM,CAAC,WAAW,CAAC,CAAC;KAW1E;IATG,wEAAwE;IAExE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAyB,EAAE,IAAa;QAElE,OAAO,IAAI,CAAC;IAChB,CAAC;8GAjBQ,mBAAmB;kGAAnB,mBAAmB;;2FAAnB,mBAAmB;kBAL/B,SAAS;mBACV;oBACI,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ,EAAE,sBAAsB;iBACnC","sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\n\nimport {NormalStateContext} from '../../interfaces';\n\n/**\n * Directive used for obtaining template for normal state\n */\n@Directive(\n{\n selector: '[normalStateTemplate]',\n exportAs: 'normalStateTemplate,',\n})\nexport class NormalStateTemplate\n{\n //######################### public properties #########################\n\n /**\n * Instance of template for normal state\n */\n public template: TemplateRef<NormalStateContext> = inject(TemplateRef);\n\n //######################### ng language server #########################\n\n /**\n * Allows typechecking for template\n */\n static ngTemplateContextGuard(_dir: NormalStateTemplate, _ctx: unknown): _ctx is NormalStateContext<any, any>\n {\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"normalStateTemplate.directive.js","sourceRoot":"","sources":["../../../../src/directives/normalStateTemplate/normalStateTemplate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;;AAI7D;;GAEG;AAMH,MAAM,OAAO,mBAAmB;IALhC;QAOI,uEAAuE;QAEvE;;WAEG;QACI,aAAQ,GAAoC,MAAM,CAAC,WAAW,CAAC,CAAC;KAW1E;IATG,wEAAwE;IAExE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAyB,EAAE,IAAa;QAElE,OAAO,IAAI,CAAC;IAChB,CAAC;8GAjBQ,mBAAmB;kGAAnB,mBAAmB;;2FAAnB,mBAAmB;kBAL/B,SAAS;mBACV;oBACI,QAAQ,EAAE,uBAAuB;oBACjC,QAAQ,EAAE,sBAAsB;iBACnC","sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\r\n\r\nimport {NormalStateContext} from '../../interfaces';\r\n\r\n/**\r\n * Directive used for obtaining template for normal state\r\n */\r\n@Directive(\r\n{\r\n selector: '[normalStateTemplate]',\r\n exportAs: 'normalStateTemplate,',\r\n})\r\nexport class NormalStateTemplate\r\n{\r\n //######################### public properties #########################\r\n\r\n /**\r\n * Instance of template for normal state\r\n */\r\n public template: TemplateRef<NormalStateContext> = inject(TemplateRef);\r\n\r\n //######################### ng language server #########################\r\n\r\n /**\r\n * Allows typechecking for template\r\n */\r\n static ngTemplateContextGuard(_dir: NormalStateTemplate, _ctx: unknown): _ctx is NormalStateContext<any, any>\r\n {\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optionGroupTemplate.directive.js","sourceRoot":"","sources":["../../../../src/directives/optionGroupTemplate/optionGroupTemplate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;;AAE7D;;GAEG;AAKH,MAAM,OAAO,mBAAmB;IAJhC;QAMI,uEAAuE;QAEvE;;WAEG;QACI,aAAQ,GAAqC,MAAM,CAAC,WAAW,CAAC,CAAC;KAW3E;IATG,wEAAwE;IAExE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAyB,EAAE,IAAa;QAElE,OAAO,IAAI,CAAC;IAChB,CAAC;8GAjBQ,mBAAmB;kGAAnB,mBAAmB;;2FAAnB,mBAAmB;kBAJ/B,SAAS;mBACV;oBACI,QAAQ,EAAE,uBAAuB;iBACpC","sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\n\n/**\n * Directive used for obtaining template for option group in popup\n */\n@Directive(\n{\n selector: '[optionGroupTemplate]',\n})\nexport class OptionGroupTemplate\n{\n //######################### public properties #########################\n\n /**\n * Instance of template for options in popup\n */\n public template: TemplateRef<{$implicit: string}> = inject(TemplateRef);\n\n //######################### ng language server #########################\n\n /**\n * Allows typechecking for template\n */\n static ngTemplateContextGuard(_dir: OptionGroupTemplate, _ctx: unknown): _ctx is {$implicit: string}\n {\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"optionGroupTemplate.directive.js","sourceRoot":"","sources":["../../../../src/directives/optionGroupTemplate/optionGroupTemplate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;;AAE7D;;GAEG;AAKH,MAAM,OAAO,mBAAmB;IAJhC;QAMI,uEAAuE;QAEvE;;WAEG;QACI,aAAQ,GAAqC,MAAM,CAAC,WAAW,CAAC,CAAC;KAW3E;IATG,wEAAwE;IAExE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAyB,EAAE,IAAa;QAElE,OAAO,IAAI,CAAC;IAChB,CAAC;8GAjBQ,mBAAmB;kGAAnB,mBAAmB;;2FAAnB,mBAAmB;kBAJ/B,SAAS;mBACV;oBACI,QAAQ,EAAE,uBAAuB;iBACpC","sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\r\n\r\n/**\r\n * Directive used for obtaining template for option group in popup\r\n */\r\n@Directive(\r\n{\r\n selector: '[optionGroupTemplate]',\r\n})\r\nexport class OptionGroupTemplate\r\n{\r\n //######################### public properties #########################\r\n\r\n /**\r\n * Instance of template for options in popup\r\n */\r\n public template: TemplateRef<{$implicit: string}> = inject(TemplateRef);\r\n\r\n //######################### ng language server #########################\r\n\r\n /**\r\n * Allows typechecking for template\r\n */\r\n static ngTemplateContextGuard(_dir: OptionGroupTemplate, _ctx: unknown): _ctx is {$implicit: string}\r\n {\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optionTemplate.directive.js","sourceRoot":"","sources":["../../../../src/directives/optionTemplate/optionTemplate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;;AAI7D;;GAEG;AAMH,MAAM,OAAO,cAAc;IAL3B;QAOI,uEAAuE;QAEvE;;WAEG;QACI,aAAQ,GAAmC,MAAM,CAAC,WAAW,CAAC,CAAC;KAWzE;IATG,wEAAwE;IAExE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAoB,EAAE,IAAa;QAE7D,OAAO,IAAI,CAAC;IAChB,CAAC;8GAjBQ,cAAc;kGAAd,cAAc;;2FAAd,cAAc;kBAL1B,SAAS;mBACV;oBACI,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,gBAAgB;iBAC7B","sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\n\nimport {PopupContext} from '../../interfaces';\n\n/**\n * Directive used for obtaining template for option in popup\n */\n@Directive(\n{\n selector: '[optionTemplate]',\n exportAs: 'optionTemplate',\n})\nexport class OptionTemplate\n{\n //######################### public properties #########################\n\n /**\n * Instance of template for options in popup\n */\n public template: TemplateRef<PopupContext<any>> = inject(TemplateRef);\n\n //######################### ng language server #########################\n\n /**\n * Allows typechecking for template\n */\n static ngTemplateContextGuard(_dir: OptionTemplate, _ctx: unknown): _ctx is PopupContext<any>\n {\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"optionTemplate.directive.js","sourceRoot":"","sources":["../../../../src/directives/optionTemplate/optionTemplate.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;;AAI7D;;GAEG;AAMH,MAAM,OAAO,cAAc;IAL3B;QAOI,uEAAuE;QAEvE;;WAEG;QACI,aAAQ,GAAmC,MAAM,CAAC,WAAW,CAAC,CAAC;KAWzE;IATG,wEAAwE;IAExE;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,IAAoB,EAAE,IAAa;QAE7D,OAAO,IAAI,CAAC;IAChB,CAAC;8GAjBQ,cAAc;kGAAd,cAAc;;2FAAd,cAAc;kBAL1B,SAAS;mBACV;oBACI,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,gBAAgB;iBAC7B","sourcesContent":["import {Directive, inject, TemplateRef} from '@angular/core';\r\n\r\nimport {PopupContext} from '../../interfaces';\r\n\r\n/**\r\n * Directive used for obtaining template for option in popup\r\n */\r\n@Directive(\r\n{\r\n selector: '[optionTemplate]',\r\n exportAs: 'optionTemplate',\r\n})\r\nexport class OptionTemplate\r\n{\r\n //######################### public properties #########################\r\n\r\n /**\r\n * Instance of template for options in popup\r\n */\r\n public template: TemplateRef<PopupContext<any>> = inject(TemplateRef);\r\n\r\n //######################### ng language server #########################\r\n\r\n /**\r\n * Allows typechecking for template\r\n */\r\n static ngTemplateContextGuard(_dir: OptionTemplate, _ctx: unknown): _ctx is PopupContext<any>\r\n {\r\n return true;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectAbsolute.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectAbsolute/selectAbsolute.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAEhE;;GAEG;AAKH,MAAM,OAAO,cAAc;IAEvB,iEAAiE;IACjE,YAAY,MAAoC;QAE5C,MAAM,CAAC,aAAa;YACpB;gBACI,QAAQ,EAAE,IAAI;aACsB,CAAC;IAC7C,CAAC;8GATQ,cAAc;kGAAd,cAAc;;2FAAd,cAAc;kBAJ1B,SAAS;mBACV;oBACI,QAAQ,EAAE,qBAAqB;iBAClC","sourcesContent":["import {Directive} from '@angular/core';\n\nimport {SelectOptions} from '../../interfaces';\nimport {Select} from '../../components/select/select.component';\n\n/**\n * Directive used for setting absolute option for ng-select\n */\n@Directive(\n{\n selector: 'ng-select[absolute]',\n})\nexport class SelectAbsolute<TValue = unknown, TPublicValue = TValue>\n{\n //######################### constructor #########################\n constructor(select: Select<TValue, TPublicValue>)\n {\n select.selectOptions =\n {\n absolute: true,\n } as SelectOptions<TValue, TPublicValue>;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"selectAbsolute.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectAbsolute/selectAbsolute.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAEhE;;GAEG;AAKH,MAAM,OAAO,cAAc;IAEvB,iEAAiE;IACjE,YAAY,MAAoC;QAE5C,MAAM,CAAC,aAAa;YACpB;gBACI,QAAQ,EAAE,IAAI;aACsB,CAAC;IAC7C,CAAC;8GATQ,cAAc;kGAAd,cAAc;;2FAAd,cAAc;kBAJ1B,SAAS;mBACV;oBACI,QAAQ,EAAE,qBAAqB;iBAClC","sourcesContent":["import {Directive} from '@angular/core';\r\n\r\nimport {SelectOptions} from '../../interfaces';\r\nimport {Select} from '../../components/select/select.component';\r\n\r\n/**\r\n * Directive used for setting absolute option for ng-select\r\n */\r\n@Directive(\r\n{\r\n selector: 'ng-select[absolute]',\r\n})\r\nexport class SelectAbsolute<TValue = unknown, TPublicValue = TValue>\r\n{\r\n //######################### constructor #########################\r\n constructor(select: Select<TValue, TPublicValue>)\r\n {\r\n select.selectOptions =\r\n {\r\n absolute: true,\r\n } as SelectOptions<TValue, TPublicValue>;\r\n }\r\n}\r\n"]}
|
package/es2022/src/directives/selectControlValueAccessor/selectControlValueAccessor.directive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectControlValueAccessor.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectControlValueAccessor/selectControlValueAccessor.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {forwardRef, ExistingProvider, Directive, OnDestroy, WritableSignal, signal, effect, untracked} from '@angular/core';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\nimport {Action1, nameof, NoopAction} from '@jscrpt/common';\nimport {isEqual} from 'lodash-es';\nimport {Subscription} from 'rxjs';\n\nimport {SelectPluginType} from '../../misc/enums';\nimport {Select} from '../../components/select/select.component';\nimport {TempValue} from '../../interfaces';\n\n/**\n * Provider for control value accessor\n */\nconst SELECT_VALUE_ACCESSOR: ExistingProvider =\n{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectControlValueAccessor),\n multi: true,\n};\n\n/**\n * Control value accessor for Select\n */\n@Directive(\n{\n selector: 'ng-select[formControlName],ng-select[formControl],ng-select[ngModel]',\n providers: [SELECT_VALUE_ACCESSOR],\n})\nexport class SelectControlValueAccessor<TValue = unknown, TPublicValue = TValue> implements ControlValueAccessor, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Subscriptions created during initialization\n */\n protected initSubscriptions: Subscription = new Subscription();\n\n /**\n * Temporary value used for storing value during async write\n */\n protected tmpValue: TempValue<TPublicValue|TPublicValue[]> = {};\n\n /**\n * Last set value to this control\n */\n protected value: WritableSignal<TPublicValue|TPublicValue[]|undefined|null> = signal(undefined);\n\n /**\n * Indication whether disable Select\n */\n protected disabled: WritableSignal<boolean> = signal(false);\n\n /**\n * On change callback for setting value back to control\n */\n protected onChange: Action1<TPublicValue|TPublicValue[]|undefined|null>|undefined|null;\n\n /**\n * On touched callback for setting touched back to control\n */\n protected onTouched: NoopAction|undefined|null;\n\n //######################### constructor #########################\n constructor(select: Select<TValue, TPublicValue>)\n {\n //setting value\n effect(() =>\n {\n if(!select.initialized())\n {\n return;\n }\n\n const value = this.value();\n\n untracked(async () =>\n {\n if(!isEqual(value, select.getPlugin(SelectPluginType.ValueHandler).value()))\n {\n this.tmpValue.value = value;\n await select.getPlugin(SelectPluginType.ValueHandler).setValue(value);\n delete this.tmpValue.value;\n }\n });\n });\n\n effect(() =>\n {\n if(!select.initialized())\n {\n return;\n }\n\n select.selectOptions.readonly = this.disabled();\n });\n\n //getting value\n effect(() =>\n {\n if(!select.initialized())\n {\n return;\n }\n\n let value = select.getPlugin(SelectPluginType.ValueHandler).value();\n\n if(nameof<TempValue<TPublicValue|TPublicValue[]>>('value') in this.tmpValue)\n {\n value = this.tmpValue.value;\n }\n\n untracked(() =>\n {\n if(!isEqual(value, this.value()))\n {\n this.value.set(value);\n this.onChange?.(value);\n }\n });\n });\n\n this.initSubscriptions.add(select.events.focus.subscribe(() => this.onTouched?.()));\n }\n\n //######################### public methods - implementation of ControlValueAccessor #########################\n\n /**\n * @inheritdoc\n */\n public writeValue(value: TPublicValue|TPublicValue[]|undefined|null): void\n {\n this.value.set(value);\n }\n\n /**\n * @inheritdoc\n */\n public registerOnChange(fn: (data: TPublicValue|TPublicValue[]|undefined|null) => void): void\n {\n this.onChange = fn;\n }\n\n /**\n * @inheritdoc\n */\n public registerOnTouched(fn: () => void): void\n {\n this.onTouched = fn;\n }\n\n /**\n * @inheritdoc\n */\n public setDisabledState(isDisabled: boolean): void\n {\n this.disabled.set(isDisabled);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy()\n {\n this.initSubscriptions.unsubscribe();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"selectControlValueAccessor.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectControlValueAccessor/selectControlValueAccessor.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {forwardRef, ExistingProvider, Directive, OnDestroy, WritableSignal, signal, effect, untracked} from '@angular/core';\r\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\r\nimport {Action1, nameof, NoopAction} from '@jscrpt/common';\r\nimport {isEqual} from 'lodash-es';\r\nimport {Subscription} from 'rxjs';\r\n\r\nimport {SelectPluginType} from '../../misc/enums';\r\nimport {Select} from '../../components/select/select.component';\r\nimport {TempValue} from '../../interfaces';\r\n\r\n/**\r\n * Provider for control value accessor\r\n */\r\nconst SELECT_VALUE_ACCESSOR: ExistingProvider =\r\n{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectControlValueAccessor),\r\n multi: true,\r\n};\r\n\r\n/**\r\n * Control value accessor for Select\r\n */\r\n@Directive(\r\n{\r\n selector: 'ng-select[formControlName],ng-select[formControl],ng-select[ngModel]',\r\n providers: [SELECT_VALUE_ACCESSOR],\r\n})\r\nexport class SelectControlValueAccessor<TValue = unknown, TPublicValue = TValue> implements ControlValueAccessor, OnDestroy\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Subscriptions created during initialization\r\n */\r\n protected initSubscriptions: Subscription = new Subscription();\r\n\r\n /**\r\n * Temporary value used for storing value during async write\r\n */\r\n protected tmpValue: TempValue<TPublicValue|TPublicValue[]> = {};\r\n\r\n /**\r\n * Last set value to this control\r\n */\r\n protected value: WritableSignal<TPublicValue|TPublicValue[]|undefined|null> = signal(undefined);\r\n\r\n /**\r\n * Indication whether disable Select\r\n */\r\n protected disabled: WritableSignal<boolean> = signal(false);\r\n\r\n /**\r\n * On change callback for setting value back to control\r\n */\r\n protected onChange: Action1<TPublicValue|TPublicValue[]|undefined|null>|undefined|null;\r\n\r\n /**\r\n * On touched callback for setting touched back to control\r\n */\r\n protected onTouched: NoopAction|undefined|null;\r\n\r\n //######################### constructor #########################\r\n constructor(select: Select<TValue, TPublicValue>)\r\n {\r\n //setting value\r\n effect(() =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return;\r\n }\r\n\r\n const value = this.value();\r\n\r\n untracked(async () =>\r\n {\r\n if(!isEqual(value, select.getPlugin(SelectPluginType.ValueHandler).value()))\r\n {\r\n this.tmpValue.value = value;\r\n await select.getPlugin(SelectPluginType.ValueHandler).setValue(value);\r\n delete this.tmpValue.value;\r\n }\r\n });\r\n });\r\n\r\n effect(() =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return;\r\n }\r\n\r\n select.selectOptions.readonly = this.disabled();\r\n });\r\n\r\n //getting value\r\n effect(() =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return;\r\n }\r\n\r\n let value = select.getPlugin(SelectPluginType.ValueHandler).value();\r\n\r\n if(nameof<TempValue<TPublicValue|TPublicValue[]>>('value') in this.tmpValue)\r\n {\r\n value = this.tmpValue.value;\r\n }\r\n\r\n untracked(() =>\r\n {\r\n if(!isEqual(value, this.value()))\r\n {\r\n this.value.set(value);\r\n this.onChange?.(value);\r\n }\r\n });\r\n });\r\n\r\n this.initSubscriptions.add(select.events.focus.subscribe(() => this.onTouched?.()));\r\n }\r\n\r\n //######################### public methods - implementation of ControlValueAccessor #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public writeValue(value: TPublicValue|TPublicValue[]|undefined|null): void\r\n {\r\n this.value.set(value);\r\n }\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public registerOnChange(fn: (data: TPublicValue|TPublicValue[]|undefined|null) => void): void\r\n {\r\n this.onChange = fn;\r\n }\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public registerOnTouched(fn: () => void): void\r\n {\r\n this.onTouched = fn;\r\n }\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public setDisabledState(isDisabled: boolean): void\r\n {\r\n this.disabled.set(isDisabled);\r\n }\r\n\r\n //######################### public methods - implementation of OnDestroy #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public ngOnDestroy()\r\n {\r\n this.initSubscriptions.unsubscribe();\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectEdit.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectEdit/selectEdit.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAC,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAGhE;;GAEG;AAUH,MAAM,OAAO,UAAU;IAEnB,iEAAiE;IACjE,YAAY,MAAoC;QAE5C,MAAM,CAAC,aAAa;YACpB;gBACI,OAAO,EACP;oBACI,eAAe,EACf;wBACI,OAAO,EACP;4BACI,kBAAkB,EAAE,KAAK;4BACzB,gBAAgB,EAAE,IAAI;yBACzB;qBACJ;iBACJ;aACmC,CAAC;IAC7C,CAAC;8GAnBQ,UAAU;kGAAV,UAAU,8DALnB;YACI,sBAAsB,CAAC,eAAe,CAAC;YACvC,qBAAqB,CAAC,cAAc,CAAC;SACxC;;2FAEQ,UAAU;kBATtB,SAAS;mBACV;oBACI,QAAQ,EAAE,iBAAiB;oBAC3B,SAAS,EACT;wBACI,sBAAsB,CAAC,eAAe,CAAC;wBACvC,qBAAqB,CAAC,cAAc,CAAC;qBACxC;iBACJ","sourcesContent":["import {Directive} from '@angular/core';\nimport {RecursivePartial} from '@jscrpt/common';\n\nimport {provideLiveSearchType, provideNormalStateType} from '../../misc/providers';\nimport {EditLiveSearch, EditNormalState} from '../../plugins';\nimport {Select} from '../../components/select/select.component';\nimport {SelectOptions, SimpleKeyboardHandlerOptions} from '../../interfaces';\n\n/**\n * Directive that applies options for Select which switch it to edit mode.\n */\n@Directive(\n{\n selector: 'ng-select[edit]',\n providers:\n [\n provideNormalStateType(EditNormalState),\n provideLiveSearchType(EditLiveSearch),\n ],\n})\nexport class SelectEdit<TValue = unknown, TPublicValue = TValue>\n{\n //######################### constructor #########################\n constructor(select: Select<TValue, TPublicValue>)\n {\n select.selectOptions =\n {\n plugins:\n {\n keyboardHandler:\n {\n options: <RecursivePartial<SimpleKeyboardHandlerOptions>>\n {\n alphanumericSearch: false,\n liveSearchEvents: true,\n },\n },\n },\n } as SelectOptions<TValue, TPublicValue>;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"selectEdit.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectEdit/selectEdit.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAC,qBAAqB,EAAE,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAGhE;;GAEG;AAUH,MAAM,OAAO,UAAU;IAEnB,iEAAiE;IACjE,YAAY,MAAoC;QAE5C,MAAM,CAAC,aAAa;YACpB;gBACI,OAAO,EACP;oBACI,eAAe,EACf;wBACI,OAAO,EACP;4BACI,kBAAkB,EAAE,KAAK;4BACzB,gBAAgB,EAAE,IAAI;yBACzB;qBACJ;iBACJ;aACmC,CAAC;IAC7C,CAAC;8GAnBQ,UAAU;kGAAV,UAAU,8DALnB;YACI,sBAAsB,CAAC,eAAe,CAAC;YACvC,qBAAqB,CAAC,cAAc,CAAC;SACxC;;2FAEQ,UAAU;kBATtB,SAAS;mBACV;oBACI,QAAQ,EAAE,iBAAiB;oBAC3B,SAAS,EACT;wBACI,sBAAsB,CAAC,eAAe,CAAC;wBACvC,qBAAqB,CAAC,cAAc,CAAC;qBACxC;iBACJ","sourcesContent":["import {Directive} from '@angular/core';\r\nimport {RecursivePartial} from '@jscrpt/common';\r\n\r\nimport {provideLiveSearchType, provideNormalStateType} from '../../misc/providers';\r\nimport {EditLiveSearch, EditNormalState} from '../../plugins';\r\nimport {Select} from '../../components/select/select.component';\r\nimport {SelectOptions, SimpleKeyboardHandlerOptions} from '../../interfaces';\r\n\r\n/**\r\n * Directive that applies options for Select which switch it to edit mode.\r\n */\r\n@Directive(\r\n{\r\n selector: 'ng-select[edit]',\r\n providers:\r\n [\r\n provideNormalStateType(EditNormalState),\r\n provideLiveSearchType(EditLiveSearch),\r\n ],\r\n})\r\nexport class SelectEdit<TValue = unknown, TPublicValue = TValue>\r\n{\r\n //######################### constructor #########################\r\n constructor(select: Select<TValue, TPublicValue>)\r\n {\r\n select.selectOptions =\r\n {\r\n plugins:\r\n {\r\n keyboardHandler:\r\n {\r\n options: <RecursivePartial<SimpleKeyboardHandlerOptions>>\r\n {\r\n alphanumericSearch: false,\r\n liveSearchEvents: true,\r\n },\r\n },\r\n },\r\n } as SelectOptions<TValue, TPublicValue>;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectFormControl.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectFormControl/selectFormControl.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {Directive, effect, inject, input, InputSignal, model, ModelSignal, OnDestroy, untracked} from '@angular/core';\nimport {FormValueControl} from '@angular/forms/signals';\nimport {LOGGER, Logger} from '@anglr/common';\nimport {nameof} from '@jscrpt/common';\nimport {isEqual} from 'lodash-es';\nimport {Subscription} from 'rxjs';\n\nimport {Select} from '../../components/select/select.component';\nimport {SelectPluginType} from '../../misc/enums';\nimport {TempValue} from '../../interfaces';\n\n/**\n * Form value control for Select\n */\n@Directive(\n{\n selector: 'ng-select[formField]',\n})\nexport class SelectFormControl<TValue = unknown, TPublicValue = TValue> implements FormValueControl<TPublicValue|TPublicValue[]|undefined|null>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Instance of logger for logging purposes\n */\n protected logger: Logger = inject(LOGGER);\n\n /**\n * Subscriptions created during initialization\n */\n protected initSubscriptions: Subscription = new Subscription();\n\n /**\n * Temporary value used for storing value during async write\n */\n protected tmpValue: TempValue<TPublicValue|TPublicValue[]> = {};\n\n //######################### public properties - implementation of FormValueControl #########################\n\n /**\n * @inheritdoc\n */\n public readonly value: ModelSignal<TPublicValue|TPublicValue[]|null|undefined> = model<TPublicValue|TPublicValue[]|null|undefined>(undefined);\n\n /**\n * @inheritdoc\n */\n public checked: undefined;\n\n /**\n * @inheritdoc\n */\n public readonly disabled: InputSignal<boolean> = input(false);\n\n /**\n * @inheritdoc\n */\n public readonly readonly: InputSignal<boolean> = input(false);\n\n /**\n * @inheritdoc\n */\n public readonly touched: ModelSignal<boolean> = model(false);\n\n //######################### constructor #########################\n constructor(protected select: Select<TValue, TPublicValue>)\n {\n this.initSubscriptions.add(this.select.events.focus.subscribe(() => this.touched.set(true)));\n\n effect(() => this.select.selectOptions.readonly = this.disabled() || this.readonly());\n\n //setting value\n effect(() =>\n {\n if(!this.select.initialized())\n {\n return;\n }\n\n const value = this.value();\n this.logger.verbose('Select: Form control: control value changed \"{{@(4)value}}\"', {value});\n\n untracked(async () =>\n {\n if(!isEqual(this.select.getPlugin(SelectPluginType.ValueHandler).value(), value))\n {\n this.tmpValue.value = value;\n this.logger.verbose('Select: Form control: setting select value \"{{@(4)value}}\"', {value});\n await this.select.getPlugin(SelectPluginType.ValueHandler).setValue(value);\n delete this.tmpValue.value;\n }\n });\n });\n\n //getting value\n effect(() =>\n {\n if(!this.select.initialized())\n {\n return;\n }\n\n let value = this.select.getPlugin(SelectPluginType.ValueHandler).value();\n this.logger.verbose('Select: Form control: select value changed \"{{@(4)value}}\"', {value});\n\n if(nameof<TempValue<TPublicValue|TPublicValue[]>>('value') in this.tmpValue)\n {\n value = this.tmpValue.value;\n }\n\n untracked(() =>\n {\n if(!isEqual(this.value(), value))\n {\n this.logger.verbose('Select: Form control: setting control value \"{{@(4)value}}\"', {value});\n this.value.set(value);\n }\n });\n });\n }\n\n //######################### public methods - implementation of FormValueControl #########################\n\n /**\n * @inheritdoc\n */\n public focus(): void\n {\n this.select.events.setFocus();\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy(): void\n {\n this.initSubscriptions.unsubscribe();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"selectFormControl.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectFormControl/selectFormControl.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAe,KAAK,EAA0B,SAAS,EAAC,MAAM,eAAe,CAAC;AAEtH,OAAO,EAAC,MAAM,EAAS,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAC;AAElC,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;AAChE,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;;;AAGlD;;GAEG;AAKH,MAAM,OAAO,iBAAiB;IA8C1B,iEAAiE;IACjE,YAAsB,MAAoC;QAApC,WAAM,GAAN,MAAM,CAA8B;QA7C1D,sEAAsE;QAEtE;;WAEG;QACO,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAE1C;;WAEG;QACO,sBAAiB,GAAiB,IAAI,YAAY,EAAE,CAAC;QAE/D;;WAEG;QACO,aAAQ,GAA2C,EAAE,CAAC;QAEhE,4GAA4G;QAE5G;;WAEG;QACa,UAAK,GAA4D,KAAK,CAA6C,SAAS;kFAAC,CAAC;QAO9I;;WAEG;QACa,aAAQ,GAAyB,KAAK,CAAC,KAAK;qFAAC,CAAC;QAE9D;;WAEG;QACa,aAAQ,GAAyB,KAAK,CAAC,KAAK;qFAAC,CAAC;QAE9D;;WAEG;QACa,YAAO,GAAyB,KAAK,CAAC,KAAK;oFAAC,CAAC;QAKzD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7F,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtF,eAAe;QACf,MAAM,CAAC,GAAG,EAAE;YAER,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAC7B,CAAC;gBACG,OAAO;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,6DAA6D,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;YAE5F,SAAS,CAAC,KAAK,IAAI,EAAE;gBAEjB,IAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAChF,CAAC;oBACG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4DAA4D,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;oBAC3F,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC3E,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,CAAC,GAAG,EAAE;YAER,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAC7B,CAAC;gBACG,OAAO;YACX,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4DAA4D,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;YAE3F,IAAG,MAAM,CAAyC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAC3E,CAAC;gBACG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,CAAC;YAED,SAAS,CAAC,GAAG,EAAE;gBAEX,IAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAChC,CAAC;oBACG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,6DAA6D,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;oBAC5F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yGAAyG;IAEzG;;OAEG;IACI,KAAK;QAER,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;8GAzHQ,iBAAiB;kGAAjB,iBAAiB;;2FAAjB,iBAAiB;kBAJ7B,SAAS;mBACV;oBACI,QAAQ,EAAE,sBAAsB;iBACnC","sourcesContent":["import {Directive, effect, inject, input, InputSignal, model, ModelSignal, OnDestroy, untracked} from '@angular/core';\r\nimport {FormValueControl} from '@angular/forms/signals';\r\nimport {LOGGER, Logger} from '@anglr/common';\r\nimport {nameof} from '@jscrpt/common';\r\nimport {isEqual} from 'lodash-es';\r\nimport {Subscription} from 'rxjs';\r\n\r\nimport {Select} from '../../components/select/select.component';\r\nimport {SelectPluginType} from '../../misc/enums';\r\nimport {TempValue} from '../../interfaces';\r\n\r\n/**\r\n * Form value control for Select\r\n */\r\n@Directive(\r\n{\r\n selector: 'ng-select[formField]',\r\n})\r\nexport class SelectFormControl<TValue = unknown, TPublicValue = TValue> implements FormValueControl<TPublicValue|TPublicValue[]|undefined|null>, OnDestroy\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Instance of logger for logging purposes\r\n */\r\n protected logger: Logger = inject(LOGGER);\r\n\r\n /**\r\n * Subscriptions created during initialization\r\n */\r\n protected initSubscriptions: Subscription = new Subscription();\r\n\r\n /**\r\n * Temporary value used for storing value during async write\r\n */\r\n protected tmpValue: TempValue<TPublicValue|TPublicValue[]> = {};\r\n\r\n //######################### public properties - implementation of FormValueControl #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public readonly value: ModelSignal<TPublicValue|TPublicValue[]|null|undefined> = model<TPublicValue|TPublicValue[]|null|undefined>(undefined);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public checked: undefined;\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public readonly disabled: InputSignal<boolean> = input(false);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public readonly readonly: InputSignal<boolean> = input(false);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public readonly touched: ModelSignal<boolean> = model(false);\r\n\r\n //######################### constructor #########################\r\n constructor(protected select: Select<TValue, TPublicValue>)\r\n {\r\n this.initSubscriptions.add(this.select.events.focus.subscribe(() => this.touched.set(true)));\r\n\r\n effect(() => this.select.selectOptions.readonly = this.disabled() || this.readonly());\r\n\r\n //setting value\r\n effect(() =>\r\n {\r\n if(!this.select.initialized())\r\n {\r\n return;\r\n }\r\n\r\n const value = this.value();\r\n this.logger.verbose('Select: Form control: control value changed \"{{@(4)value}}\"', {value});\r\n\r\n untracked(async () =>\r\n {\r\n if(!isEqual(this.select.getPlugin(SelectPluginType.ValueHandler).value(), value))\r\n {\r\n this.tmpValue.value = value;\r\n this.logger.verbose('Select: Form control: setting select value \"{{@(4)value}}\"', {value});\r\n await this.select.getPlugin(SelectPluginType.ValueHandler).setValue(value);\r\n delete this.tmpValue.value;\r\n }\r\n });\r\n });\r\n\r\n //getting value\r\n effect(() =>\r\n {\r\n if(!this.select.initialized())\r\n {\r\n return;\r\n }\r\n\r\n let value = this.select.getPlugin(SelectPluginType.ValueHandler).value();\r\n this.logger.verbose('Select: Form control: select value changed \"{{@(4)value}}\"', {value});\r\n\r\n if(nameof<TempValue<TPublicValue|TPublicValue[]>>('value') in this.tmpValue)\r\n {\r\n value = this.tmpValue.value;\r\n }\r\n\r\n untracked(() =>\r\n {\r\n if(!isEqual(this.value(), value))\r\n {\r\n this.logger.verbose('Select: Form control: setting control value \"{{@(4)value}}\"', {value});\r\n this.value.set(value);\r\n }\r\n });\r\n });\r\n }\r\n\r\n //######################### public methods - implementation of FormValueControl #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public focus(): void\r\n {\r\n this.select.events.setFocus();\r\n }\r\n\r\n //######################### public methods - implementation of OnDestroy #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public ngOnDestroy(): void\r\n {\r\n this.initSubscriptions.unsubscribe();\r\n }\r\n}\r\n"]}
|
package/es2022/src/directives/selectMultipleKeepPopup/selectMultipleKeepPopup.directive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectMultipleKeepPopup.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectMultipleKeepPopup/selectMultipleKeepPopup.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAExC,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAEhE;;GAEG;AAKH,MAAM,OAAO,uBAAuB;IAEhC,iEAAiE;IACjE,YAAY,MAAoC;QAE5C,MAAM,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/C,CAAC;8GANQ,uBAAuB;kGAAvB,uBAAuB;;2FAAvB,uBAAuB;kBAJnC,SAAS;mBACV;oBACI,QAAQ,EAAE,qBAAqB;iBAClC","sourcesContent":["import {Directive} from '@angular/core';\n\nimport {Select} from '../../components/select/select.component';\n\n/**\n * Directive that keeps popup open when multiple is set for Select\n */\n@Directive(\n{\n selector: 'ng-select[multiple]',\n})\nexport class SelectMultipleKeepPopup<TValue = unknown, TPublicValue = TValue>\n{\n //######################### constructor #########################\n constructor(select: Select<TValue, TPublicValue>)\n {\n select.selectOptions.closeOnSelect = false;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"selectMultipleKeepPopup.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectMultipleKeepPopup/selectMultipleKeepPopup.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAExC,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAEhE;;GAEG;AAKH,MAAM,OAAO,uBAAuB;IAEhC,iEAAiE;IACjE,YAAY,MAAoC;QAE5C,MAAM,CAAC,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/C,CAAC;8GANQ,uBAAuB;kGAAvB,uBAAuB;;2FAAvB,uBAAuB;kBAJnC,SAAS;mBACV;oBACI,QAAQ,EAAE,qBAAqB;iBAClC","sourcesContent":["import {Directive} from '@angular/core';\r\n\r\nimport {Select} from '../../components/select/select.component';\r\n\r\n/**\r\n * Directive that keeps popup open when multiple is set for Select\r\n */\r\n@Directive(\r\n{\r\n selector: 'ng-select[multiple]',\r\n})\r\nexport class SelectMultipleKeepPopup<TValue = unknown, TPublicValue = TValue>\r\n{\r\n //######################### constructor #########################\r\n constructor(select: Select<TValue, TPublicValue>)\r\n {\r\n select.selectOptions.closeOnSelect = false;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectNoCarret.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectNoCarret/selectNoCarret.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAEhE;;GAEG;AAKH,MAAM,OAAO,cAAc;IAEvB,iEAAiE;IACjE,YAAY,MAAoC;QAE5C,MAAM,CAAC,aAAa;YACpB;gBACI,OAAO,EACP;oBACI,WAAW,EACX;wBACI,OAAO,EACP;4BACI,MAAM,EAAE,KAAK;yBAChB;qBACJ;iBACJ;aACmC,CAAC;IAC7C,CAAC;8GAlBQ,cAAc;kGAAd,cAAc;;2FAAd,cAAc;kBAJ1B,SAAS;mBACV;oBACI,QAAQ,EAAE,qBAAqB;iBAClC","sourcesContent":["import {Directive} from '@angular/core';\nimport {RecursivePartial} from '@jscrpt/common';\n\nimport {EditNormalStateOptions, SelectOptions} from '../../interfaces';\nimport {Select} from '../../components/select/select.component';\n\n/**\n * Directive used for hiding carret on Select (normal state)\n */\n@Directive(\n{\n selector: 'ng-select[noCarret]',\n})\nexport class SelectNoCarret<TValue = unknown, TPublicValue = TValue>\n{\n //######################### constructor #########################\n constructor(select: Select<TValue, TPublicValue>)\n {\n select.selectOptions =\n {\n plugins:\n {\n normalState:\n {\n options: <RecursivePartial<EditNormalStateOptions>>\n {\n carret: false,\n },\n },\n },\n } as SelectOptions<TValue, TPublicValue>;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"selectNoCarret.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectNoCarret/selectNoCarret.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAEhE;;GAEG;AAKH,MAAM,OAAO,cAAc;IAEvB,iEAAiE;IACjE,YAAY,MAAoC;QAE5C,MAAM,CAAC,aAAa;YACpB;gBACI,OAAO,EACP;oBACI,WAAW,EACX;wBACI,OAAO,EACP;4BACI,MAAM,EAAE,KAAK;yBAChB;qBACJ;iBACJ;aACmC,CAAC;IAC7C,CAAC;8GAlBQ,cAAc;kGAAd,cAAc;;2FAAd,cAAc;kBAJ1B,SAAS;mBACV;oBACI,QAAQ,EAAE,qBAAqB;iBAClC","sourcesContent":["import {Directive} from '@angular/core';\r\nimport {RecursivePartial} from '@jscrpt/common';\r\n\r\nimport {EditNormalStateOptions, SelectOptions} from '../../interfaces';\r\nimport {Select} from '../../components/select/select.component';\r\n\r\n/**\r\n * Directive used for hiding carret on Select (normal state)\r\n */\r\n@Directive(\r\n{\r\n selector: 'ng-select[noCarret]',\r\n})\r\nexport class SelectNoCarret<TValue = unknown, TPublicValue = TValue>\r\n{\r\n //######################### constructor #########################\r\n constructor(select: Select<TValue, TPublicValue>)\r\n {\r\n select.selectOptions =\r\n {\r\n plugins:\r\n {\r\n normalState:\r\n {\r\n options: <RecursivePartial<EditNormalStateOptions>>\r\n {\r\n carret: false,\r\n },\r\n },\r\n },\r\n } as SelectOptions<TValue, TPublicValue>;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectPlaceholder.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectPlaceholder/selectPlaceholder.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAc,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAEhE;;GAEG;AAKH,MAAM,OAAO,iBAAiB;IAS1B,iEAAiE;IACjE,YAAY,MAAoC;QARhD,gFAAgF;QAEhF;;WAEG;QACI,gBAAW,GAAwB,KAAK,CAAC,QAAQ;wFAAE,CAAC;QAKvD,MAAM,CAAC,GAAG,EAAE;YAER,MAAM,CAAC,aAAa;gBACpB;oBACI,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;iBACK,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;8GAnBQ,iBAAiB;kGAAjB,iBAAiB;;2FAAjB,iBAAiB;kBAJ7B,SAAS;mBACV;oBACI,QAAQ,EAAE,wBAAwB;iBACrC","sourcesContent":["import {Directive, effect, input, InputSignal} from '@angular/core';\n\nimport {SelectOptions} from '../../interfaces';\nimport {Select} from '../../components/select/select.component';\n\n/**\n * Directive used for setting live search placeholder text\n */\n@Directive(\n{\n selector: 'ng-select[placeholder]',\n})\nexport class SelectPlaceholder<TValue = unknown, TPublicValue = TValue>\n{\n //######################### public properties - inputs #########################\n\n /**\n * Placeholder text used for Select\n */\n public placeholder: InputSignal<string> = input.required();\n\n //######################### constructor #########################\n constructor(select: Select<TValue, TPublicValue>)\n {\n effect(() =>\n {\n select.selectOptions =\n {\n placeholder: this.placeholder(),\n } as SelectOptions<TValue, TPublicValue>;\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"selectPlaceholder.directive.js","sourceRoot":"","sources":["../../../../src/directives/selectPlaceholder/selectPlaceholder.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAc,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAEhE;;GAEG;AAKH,MAAM,OAAO,iBAAiB;IAS1B,iEAAiE;IACjE,YAAY,MAAoC;QARhD,gFAAgF;QAEhF;;WAEG;QACI,gBAAW,GAAwB,KAAK,CAAC,QAAQ;wFAAE,CAAC;QAKvD,MAAM,CAAC,GAAG,EAAE;YAER,MAAM,CAAC,aAAa;gBACpB;oBACI,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;iBACK,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;8GAnBQ,iBAAiB;kGAAjB,iBAAiB;;2FAAjB,iBAAiB;kBAJ7B,SAAS;mBACV;oBACI,QAAQ,EAAE,wBAAwB;iBACrC","sourcesContent":["import {Directive, effect, input, InputSignal} from '@angular/core';\r\n\r\nimport {SelectOptions} from '../../interfaces';\r\nimport {Select} from '../../components/select/select.component';\r\n\r\n/**\r\n * Directive used for setting live search placeholder text\r\n */\r\n@Directive(\r\n{\r\n selector: 'ng-select[placeholder]',\r\n})\r\nexport class SelectPlaceholder<TValue = unknown, TPublicValue = TValue>\r\n{\r\n //######################### public properties - inputs #########################\r\n\r\n /**\r\n * Placeholder text used for Select\r\n */\r\n public placeholder: InputSignal<string> = input.required();\r\n\r\n //######################### constructor #########################\r\n constructor(select: Select<TValue, TPublicValue>)\r\n {\r\n effect(() =>\r\n {\r\n select.selectOptions =\r\n {\r\n placeholder: this.placeholder(),\r\n } as SelectOptions<TValue, TPublicValue>;\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withDirectAccess.directive.js","sourceRoot":"","sources":["../../../../src/directives/withDirectAccess/withDirectAccess.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAe,SAAS,EAAC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAGhE;;GAEG;AAKH,MAAM,OAAO,gBAAgB;IAgBzB,iEAAiE;IACjE,YAAY,MAAoC;QAfhD,sEAAsE;QAEtE;;WAEG;QACO,aAAQ,GAA2C,EAAE,CAAC;QAEhE,wFAAwF;QAExF;;WAEG;QACI,UAAK,GAA4D,KAAK,CAA6C,SAAS;kFAAC,CAAC;QAKjI,eAAe;QACf,MAAM,CAAC,GAAG,EAAE;YAER,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;gBACG,OAAO;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE3B,SAAS,CAAC,KAAK,IAAI,EAAE;gBAEjB,IAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAC3E,CAAC;oBACG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;oBAC5B,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACtE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,CAAC,GAAG,EAAE;YAER,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;gBACG,OAAO;YACX,CAAC;YAED,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YAEpE,IAAG,MAAM,CAAyC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAC3E,CAAC;gBACG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,CAAC;YAED,SAAS,CAAC,GAAG,EAAE;gBAEX,IAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAChC,CAAC;oBACG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;8GA/DQ,gBAAgB;kGAAhB,gBAAgB;;2FAAhB,gBAAgB;kBAJ5B,SAAS;mBACV;oBACI,QAAQ,EAAE,6BAA6B;iBAC1C","sourcesContent":["import {Directive, effect, model, ModelSignal, untracked} from '@angular/core';\nimport {nameof} from '@jscrpt/common';\nimport {isEqual} from 'lodash-es';\n\nimport {SelectPluginType} from '../../misc/enums';\nimport {Select} from '../../components/select/select.component';\nimport {TempValue} from '../../interfaces';\n\n/**\n * Directive that allows direct access to select properties using inputs, outputs\n */\n@Directive(\n{\n selector: 'ng-select[withDirectAccess]',\n})\nexport class WithDirectAccess<TValue = unknown, TPublicValue = TValue>\n{\n //######################### protected fields #########################\n\n /**\n * Temporary value used for storing value during async write\n */\n protected tmpValue: TempValue<TPublicValue|TPublicValue[]> = {};\n\n //######################### public properties - inputs/outputs #########################\n\n /**\n * Value of the Select to be set\n */\n public value: ModelSignal<TPublicValue|TPublicValue[]|undefined|null> = model<TPublicValue|TPublicValue[]|undefined|null>(undefined);\n\n //######################### constructor #########################\n constructor(select: Select<TValue, TPublicValue>,)\n {\n //setting value\n effect(() =>\n {\n if(!select.initialized())\n {\n return;\n }\n\n const value = this.value();\n\n untracked(async () =>\n {\n if(!isEqual(select.getPlugin(SelectPluginType.ValueHandler).value(), value))\n {\n this.tmpValue.value = value;\n await select.getPlugin(SelectPluginType.ValueHandler).setValue(value);\n delete this.tmpValue.value;\n }\n });\n });\n\n //getting value\n effect(() =>\n {\n if(!select.initialized())\n {\n return;\n }\n\n let value = select.getPlugin(SelectPluginType.ValueHandler).value();\n\n if(nameof<TempValue<TPublicValue|TPublicValue[]>>('value') in this.tmpValue)\n {\n value = this.tmpValue.value;\n }\n\n untracked(() =>\n {\n if(!isEqual(this.value(), value))\n {\n this.value.set(value);\n }\n });\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"withDirectAccess.directive.js","sourceRoot":"","sources":["../../../../src/directives/withDirectAccess/withDirectAccess.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAe,SAAS,EAAC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,0CAA0C,CAAC;;;AAGhE;;GAEG;AAKH,MAAM,OAAO,gBAAgB;IAgBzB,iEAAiE;IACjE,YAAY,MAAoC;QAfhD,sEAAsE;QAEtE;;WAEG;QACO,aAAQ,GAA2C,EAAE,CAAC;QAEhE,wFAAwF;QAExF;;WAEG;QACI,UAAK,GAA4D,KAAK,CAA6C,SAAS;kFAAC,CAAC;QAKjI,eAAe;QACf,MAAM,CAAC,GAAG,EAAE;YAER,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;gBACG,OAAO;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAE3B,SAAS,CAAC,KAAK,IAAI,EAAE;gBAEjB,IAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAC3E,CAAC;oBACG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;oBAC5B,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACtE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,CAAC,GAAG,EAAE;YAER,IAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EACxB,CAAC;gBACG,OAAO;YACX,CAAC;YAED,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YAEpE,IAAG,MAAM,CAAyC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAC3E,CAAC;gBACG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,CAAC;YAED,SAAS,CAAC,GAAG,EAAE;gBAEX,IAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAChC,CAAC;oBACG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;8GA/DQ,gBAAgB;kGAAhB,gBAAgB;;2FAAhB,gBAAgB;kBAJ5B,SAAS;mBACV;oBACI,QAAQ,EAAE,6BAA6B;iBAC1C","sourcesContent":["import {Directive, effect, model, ModelSignal, untracked} from '@angular/core';\r\nimport {nameof} from '@jscrpt/common';\r\nimport {isEqual} from 'lodash-es';\r\n\r\nimport {SelectPluginType} from '../../misc/enums';\r\nimport {Select} from '../../components/select/select.component';\r\nimport {TempValue} from '../../interfaces';\r\n\r\n/**\r\n * Directive that allows direct access to select properties using inputs, outputs\r\n */\r\n@Directive(\r\n{\r\n selector: 'ng-select[withDirectAccess]',\r\n})\r\nexport class WithDirectAccess<TValue = unknown, TPublicValue = TValue>\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Temporary value used for storing value during async write\r\n */\r\n protected tmpValue: TempValue<TPublicValue|TPublicValue[]> = {};\r\n\r\n //######################### public properties - inputs/outputs #########################\r\n\r\n /**\r\n * Value of the Select to be set\r\n */\r\n public value: ModelSignal<TPublicValue|TPublicValue[]|undefined|null> = model<TPublicValue|TPublicValue[]|undefined|null>(undefined);\r\n\r\n //######################### constructor #########################\r\n constructor(select: Select<TValue, TPublicValue>,)\r\n {\r\n //setting value\r\n effect(() =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return;\r\n }\r\n\r\n const value = this.value();\r\n\r\n untracked(async () =>\r\n {\r\n if(!isEqual(select.getPlugin(SelectPluginType.ValueHandler).value(), value))\r\n {\r\n this.tmpValue.value = value;\r\n await select.getPlugin(SelectPluginType.ValueHandler).setValue(value);\r\n delete this.tmpValue.value;\r\n }\r\n });\r\n });\r\n\r\n //getting value\r\n effect(() =>\r\n {\r\n if(!select.initialized())\r\n {\r\n return;\r\n }\r\n\r\n let value = select.getPlugin(SelectPluginType.ValueHandler).value();\r\n\r\n if(nameof<TempValue<TPublicValue|TPublicValue[]>>('value') in this.tmpValue)\r\n {\r\n value = this.tmpValue.value;\r\n }\r\n\r\n untracked(() =>\r\n {\r\n if(!isEqual(this.value(), value))\r\n {\r\n this.value.set(value);\r\n }\r\n });\r\n });\r\n }\r\n}\r\n"]}
|
package/es2022/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC","sourcesContent":["export * from './components';\nexport * from './decorators';\nexport * from './directives';\nexport * from './interfaces';\nexport * from './misc/classes';\nexport * from './misc/enums';\nexport * from './misc/providers';\nexport * from './misc/tokens';\nexport * from './misc/types';\nexport * from './misc/utils';\nexport * from './modules';\nexport * from './pipes';\nexport * from './plugins';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC","sourcesContent":["export * from './components';\r\nexport * from './decorators';\r\nexport * from './directives';\r\nexport * from './interfaces';\r\nexport * from './misc/classes';\r\nexport * from './misc/enums';\r\nexport * from './misc/providers';\r\nexport * from './misc/tokens';\r\nexport * from './misc/types';\r\nexport * from './misc/utils';\r\nexport * from './modules';\r\nexport * from './pipes';\r\nexport * from './plugins';\r\n"]}
|