@anglr/select 17.2.0 → 18.0.0-beta.20260805043138
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 +2 -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/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.html +50 -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 +116 -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":"selectPluginInstances.js","sourceRoot":"","sources":["../../../../../src/misc/classes/selectPluginInstances/selectPluginInstances.ts"],"names":[],"mappings":"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","sourcesContent":["import {signal, WritableSignal} from '@angular/core';\n\nimport {Interactions, KeyboardHandler, LiveSearch, NormalState, OptionsHandler, Popup, Positioner, ReadonlyState, SelectPlugin, ValueHandler} from '../../../interfaces';\nimport {SelectPluginType} from '../../enums';\n\n/**\n * Implementation of GridPluginInstances\n */\nexport class SelectPluginInstances<TValue = unknown, TPublicValue = TValue> implements Record<SelectPluginType, SelectPlugin<unknown, TValue, TPublicValue>>\n{\n //######################### public properties #########################\n\n /**\n * Instance of plugin that handles interactions of plugins and select\n */\n public interactions: WritableSignal<Interactions<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that handles keyboard input from user\n */\n public keyboardHandler: WritableSignal<KeyboardHandler<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that is used for live search of options\n */\n public liveSearch: WritableSignal<LiveSearch<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that is used for displaying normal state of selected value\n */\n public normalState: WritableSignal<NormalState<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that is used for handling available options\n */\n public optionsHandler: WritableSignal<OptionsHandler<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that handles displaying popup\n */\n public popup: WritableSignal<Popup<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that handles positioning of popup\n */\n public positioner: WritableSignal<Positioner<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that is used for displaying readonly state of selected value\n */\n public readonlyState: WritableSignal<ReadonlyState<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that is used for storing and handling value of select\n */\n public valueHandler: WritableSignal<ValueHandler<TValue, TPublicValue>|undefined|null> = signal(null);\n\n /**\n * Instance of plugin that handles interactions of plugins and select\n */\n public get Interactions(): Interactions<TValue, TPublicValue>\n {\n const interactions = this.interactions();\n\n if(!interactions)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of Interactions');\n }\n\n return interactions;\n }\n public set Interactions(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.interactions.set(value as Interactions<TValue, TPublicValue>);\n }\n\n /**\n * Instance of plugin that handles keyboard input from user\n */\n public get KeyboardHandler(): KeyboardHandler<TValue, TPublicValue>\n {\n const keyboardHandler = this.keyboardHandler();\n\n if(!keyboardHandler)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of KeyboardHandler');\n }\n\n return keyboardHandler;\n }\n public set KeyboardHandler(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.keyboardHandler.set(value as KeyboardHandler<TValue, TPublicValue>);\n }\n\n /**\n * Instance of plugin that is used for live search of options\n */\n public get LiveSearch(): LiveSearch<TValue, TPublicValue>\n {\n const liveSearch = this.liveSearch();\n\n if(!liveSearch)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of LiveSearch');\n }\n\n return liveSearch;\n }\n public set LiveSearch(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.liveSearch.set(value as LiveSearch<TValue, TPublicValue>);\n }\n\n /**\n * Instance of plugin that is used for displaying normal state of selected value\n */\n public get NormalState(): NormalState<TValue, TPublicValue>\n {\n const normalState = this.normalState();\n\n if(!normalState)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of NormalState');\n }\n\n return normalState;\n }\n public set NormalState(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.normalState.set(value as NormalState<TValue, TPublicValue>);\n }\n\n /**\n * Instance of plugin that is used for handling available options\n */\n public get OptionsHandler(): OptionsHandler<TValue, TPublicValue>\n {\n const optionsHandler = this.optionsHandler();\n\n if(!optionsHandler)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of OptionsHandler');\n }\n\n return optionsHandler;\n }\n public set OptionsHandler(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.optionsHandler.set(value as OptionsHandler<TValue, TPublicValue>);\n }\n\n /**\n * Instance of plugin that handles displaying popup\n */\n public get Popup(): Popup<TValue, TPublicValue>\n {\n const popup = this.popup();\n\n if(!popup)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of Popup');\n }\n\n return popup;\n }\n public set Popup(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.popup.set(value as Popup<TValue, TPublicValue>);\n }\n\n /**\n * Instance of plugin that handles positioning of popup\n */\n public get Positioner(): Positioner<TValue, TPublicValue>\n {\n const positioner = this.positioner();\n\n if(!positioner)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of Positioner');\n }\n\n return positioner;\n }\n public set Positioner(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.positioner.set(value as Positioner<TValue, TPublicValue>);\n }\n\n /**\n * Instance of plugin that is used for displaying readonly state of selected value\n */\n public get ReadonlyState(): ReadonlyState<TValue, TPublicValue>\n {\n const readonlyState = this.readonlyState();\n\n if(!readonlyState)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of ReadonlyState');\n }\n\n return readonlyState;\n }\n public set ReadonlyState(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.readonlyState.set(value as ReadonlyState<TValue, TPublicValue>);\n }\n\n /**\n * Instance of plugin that is used for storing and handling value of select\n */\n public get ValueHandler(): ValueHandler<TValue, TPublicValue>\n {\n const valueHandler = this.valueHandler();\n\n if(!valueHandler)\n {\n throw new Error('SelectPluginInstances: missing plugin instance of ValueHandler');\n }\n\n return valueHandler;\n }\n public set ValueHandler(value: SelectPlugin<unknown, TValue, TPublicValue>)\n {\n this.valueHandler.set(value as ValueHandler<TValue, TPublicValue>);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"selectPluginInstances.js","sourceRoot":"","sources":["../../../../../src/misc/classes/selectPluginInstances/selectPluginInstances.ts"],"names":[],"mappings":"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","sourcesContent":["import {signal, WritableSignal} from '@angular/core';\r\n\r\nimport {Interactions, KeyboardHandler, LiveSearch, NormalState, OptionsHandler, Popup, Positioner, ReadonlyState, SelectPlugin, ValueHandler} from '../../../interfaces';\r\nimport {SelectPluginType} from '../../enums';\r\n\r\n/**\r\n * Implementation of GridPluginInstances\r\n */\r\nexport class SelectPluginInstances<TValue = unknown, TPublicValue = TValue> implements Record<SelectPluginType, SelectPlugin<unknown, TValue, TPublicValue>>\r\n{\r\n //######################### public properties #########################\r\n\r\n /**\r\n * Instance of plugin that handles interactions of plugins and select\r\n */\r\n public interactions: WritableSignal<Interactions<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that handles keyboard input from user\r\n */\r\n public keyboardHandler: WritableSignal<KeyboardHandler<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that is used for live search of options\r\n */\r\n public liveSearch: WritableSignal<LiveSearch<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that is used for displaying normal state of selected value\r\n */\r\n public normalState: WritableSignal<NormalState<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that is used for handling available options\r\n */\r\n public optionsHandler: WritableSignal<OptionsHandler<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that handles displaying popup\r\n */\r\n public popup: WritableSignal<Popup<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that handles positioning of popup\r\n */\r\n public positioner: WritableSignal<Positioner<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that is used for displaying readonly state of selected value\r\n */\r\n public readonlyState: WritableSignal<ReadonlyState<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that is used for storing and handling value of select\r\n */\r\n public valueHandler: WritableSignal<ValueHandler<TValue, TPublicValue>|undefined|null> = signal(null);\r\n\r\n /**\r\n * Instance of plugin that handles interactions of plugins and select\r\n */\r\n public get Interactions(): Interactions<TValue, TPublicValue>\r\n {\r\n const interactions = this.interactions();\r\n\r\n if(!interactions)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of Interactions');\r\n }\r\n\r\n return interactions;\r\n }\r\n public set Interactions(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.interactions.set(value as Interactions<TValue, TPublicValue>);\r\n }\r\n\r\n /**\r\n * Instance of plugin that handles keyboard input from user\r\n */\r\n public get KeyboardHandler(): KeyboardHandler<TValue, TPublicValue>\r\n {\r\n const keyboardHandler = this.keyboardHandler();\r\n\r\n if(!keyboardHandler)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of KeyboardHandler');\r\n }\r\n\r\n return keyboardHandler;\r\n }\r\n public set KeyboardHandler(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.keyboardHandler.set(value as KeyboardHandler<TValue, TPublicValue>);\r\n }\r\n\r\n /**\r\n * Instance of plugin that is used for live search of options\r\n */\r\n public get LiveSearch(): LiveSearch<TValue, TPublicValue>\r\n {\r\n const liveSearch = this.liveSearch();\r\n\r\n if(!liveSearch)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of LiveSearch');\r\n }\r\n\r\n return liveSearch;\r\n }\r\n public set LiveSearch(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.liveSearch.set(value as LiveSearch<TValue, TPublicValue>);\r\n }\r\n\r\n /**\r\n * Instance of plugin that is used for displaying normal state of selected value\r\n */\r\n public get NormalState(): NormalState<TValue, TPublicValue>\r\n {\r\n const normalState = this.normalState();\r\n\r\n if(!normalState)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of NormalState');\r\n }\r\n\r\n return normalState;\r\n }\r\n public set NormalState(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.normalState.set(value as NormalState<TValue, TPublicValue>);\r\n }\r\n\r\n /**\r\n * Instance of plugin that is used for handling available options\r\n */\r\n public get OptionsHandler(): OptionsHandler<TValue, TPublicValue>\r\n {\r\n const optionsHandler = this.optionsHandler();\r\n\r\n if(!optionsHandler)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of OptionsHandler');\r\n }\r\n\r\n return optionsHandler;\r\n }\r\n public set OptionsHandler(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.optionsHandler.set(value as OptionsHandler<TValue, TPublicValue>);\r\n }\r\n\r\n /**\r\n * Instance of plugin that handles displaying popup\r\n */\r\n public get Popup(): Popup<TValue, TPublicValue>\r\n {\r\n const popup = this.popup();\r\n\r\n if(!popup)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of Popup');\r\n }\r\n\r\n return popup;\r\n }\r\n public set Popup(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.popup.set(value as Popup<TValue, TPublicValue>);\r\n }\r\n\r\n /**\r\n * Instance of plugin that handles positioning of popup\r\n */\r\n public get Positioner(): Positioner<TValue, TPublicValue>\r\n {\r\n const positioner = this.positioner();\r\n\r\n if(!positioner)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of Positioner');\r\n }\r\n\r\n return positioner;\r\n }\r\n public set Positioner(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.positioner.set(value as Positioner<TValue, TPublicValue>);\r\n }\r\n\r\n /**\r\n * Instance of plugin that is used for displaying readonly state of selected value\r\n */\r\n public get ReadonlyState(): ReadonlyState<TValue, TPublicValue>\r\n {\r\n const readonlyState = this.readonlyState();\r\n\r\n if(!readonlyState)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of ReadonlyState');\r\n }\r\n\r\n return readonlyState;\r\n }\r\n public set ReadonlyState(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.readonlyState.set(value as ReadonlyState<TValue, TPublicValue>);\r\n }\r\n\r\n /**\r\n * Instance of plugin that is used for storing and handling value of select\r\n */\r\n public get ValueHandler(): ValueHandler<TValue, TPublicValue>\r\n {\r\n const valueHandler = this.valueHandler();\r\n\r\n if(!valueHandler)\r\n {\r\n throw new Error('SelectPluginInstances: missing plugin instance of ValueHandler');\r\n }\r\n\r\n return valueHandler;\r\n }\r\n public set ValueHandler(value: SelectPlugin<unknown, TValue, TPublicValue>)\r\n {\r\n this.valueHandler.set(value as ValueHandler<TValue, TPublicValue>);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/misc/enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,gBA8CX;AA9CD,WAAY,gBAAgB;IAExB;;OAEG;IACH,iDAA6B,CAAA;IAE7B;;OAEG;IACH,uDAAmC,CAAA;IAEnC;;OAEG;IACH,6CAAyB,CAAA;IAEzB;;OAEG;IACH,+CAA2B,CAAA;IAE3B;;OAEG;IACH,qDAAiC,CAAA;IAEjC;;OAEG;IACH,mCAAe,CAAA;IAEf;;OAEG;IACH,6CAAyB,CAAA;IAEzB;;OAEG;IACH,mDAA+B,CAAA;IAE/B;;OAEG;IACH,iDAA6B,CAAA;AACjC,CAAC,EA9CW,gBAAgB,KAAhB,gBAAgB,QA8C3B","sourcesContent":["/**\n * Available plugin types\n */\nexport enum SelectPluginType\n{\n /**\n * Plugin that handles interactions of plugins and select\n */\n Interactions = 'Interactions',\n\n /**\n * Plugin that handles keyboard input from user\n */\n KeyboardHandler = 'KeyboardHandler',\n\n /**\n * Plugin that is used for live search of options\n */\n LiveSearch = 'LiveSearch',\n\n /**\n * Plugin that is used for displaying normal state of selected value\n */\n NormalState = 'NormalState',\n\n /**\n * Plugin that is used for handling available options\n */\n OptionsHandler = 'OptionsHandler',\n\n /**\n * Plugin that handles displaying popup\n */\n Popup = 'Popup',\n\n /**\n * Plugin that handles positioning of popup\n */\n Positioner = 'Positioner',\n\n /**\n * Plugin that is used for displaying readonly state of selected value\n */\n ReadonlyState = 'ReadonlyState',\n\n /**\n * Plugin that is used for storing and handling value of select\n */\n ValueHandler = 'ValueHandler',\n}\n"]}
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/misc/enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,gBA8CX;AA9CD,WAAY,gBAAgB;IAExB;;OAEG;IACH,iDAA6B,CAAA;IAE7B;;OAEG;IACH,uDAAmC,CAAA;IAEnC;;OAEG;IACH,6CAAyB,CAAA;IAEzB;;OAEG;IACH,+CAA2B,CAAA;IAE3B;;OAEG;IACH,qDAAiC,CAAA;IAEjC;;OAEG;IACH,mCAAe,CAAA;IAEf;;OAEG;IACH,6CAAyB,CAAA;IAEzB;;OAEG;IACH,mDAA+B,CAAA;IAE/B;;OAEG;IACH,iDAA6B,CAAA;AACjC,CAAC,EA9CW,gBAAgB,KAAhB,gBAAgB,QA8C3B","sourcesContent":["/**\r\n * Available plugin types\r\n */\r\nexport enum SelectPluginType\r\n{\r\n /**\r\n * Plugin that handles interactions of plugins and select\r\n */\r\n Interactions = 'Interactions',\r\n\r\n /**\r\n * Plugin that handles keyboard input from user\r\n */\r\n KeyboardHandler = 'KeyboardHandler',\r\n\r\n /**\r\n * Plugin that is used for live search of options\r\n */\r\n LiveSearch = 'LiveSearch',\r\n\r\n /**\r\n * Plugin that is used for displaying normal state of selected value\r\n */\r\n NormalState = 'NormalState',\r\n\r\n /**\r\n * Plugin that is used for handling available options\r\n */\r\n OptionsHandler = 'OptionsHandler',\r\n\r\n /**\r\n * Plugin that handles displaying popup\r\n */\r\n Popup = 'Popup',\r\n\r\n /**\r\n * Plugin that handles positioning of popup\r\n */\r\n Positioner = 'Positioner',\r\n\r\n /**\r\n * Plugin that is used for displaying readonly state of selected value\r\n */\r\n ReadonlyState = 'ReadonlyState',\r\n\r\n /**\r\n * Plugin that is used for storing and handling value of select\r\n */\r\n ValueHandler = 'ValueHandler',\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/misc/providers.ts"],"names":[],"mappings":"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","sourcesContent":["import {Provider, Type, ValueProvider} from '@angular/core';\nimport {RecursivePartial} from '@jscrpt/common';\n\nimport {Interactions, InteractionsOptions, KeyboardHandler, KeyboardHandlerOptions, LiveSearch, LiveSearchOptions, NormalState, NormalStateOptions, OptionsHandler, OptionsHandlerOptions, Popup, PopupOptions, Positioner, PositionerOptions, ReadonlyState, ReadonlyStateOptions, SelectOptions, ValueHandler, ValueHandlerOptions} from '../interfaces';\nimport {INTERACTIONS_OPTIONS, INTERACTIONS_TYPE, KEYBOARD_HANDLER_OPTIONS, KEYBOARD_HANDLER_TYPE, LIVE_SEARCH_OPTIONS, LIVE_SEARCH_TYPE, NORMAL_STATE_OPTIONS, NORMAL_STATE_TYPE, OPTIONS_HANDLER_OPTIONS, OPTIONS_HANDLER_TYPE, POPUP_OPTIONS, POPUP_TYPE, POSITIONER_OPTIONS, POSITIONER_TYPE, READONLY_STATE_OPTIONS, READONLY_STATE_TYPE, SELECT_OPTIONS, VALUE_HANDLER_OPTIONS, VALUE_HANDLER_TYPE} from './tokens';\n\n/**\n * Provides options for select globally\n * @param options - Options to be provided\n */\nexport function provideSelectOptions(options: RecursivePartial<SelectOptions>): Provider\n{\n return <ValueProvider>{\n provide: SELECT_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides type of keyboard handler that will be used for select globally\n * @param type - Type to be used as keyboard handler\n */\nexport function provideKeyboardHandlerType(type: Type<KeyboardHandler>): Provider\n{\n return <ValueProvider>{\n provide: KEYBOARD_HANDLER_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides type of normal state that will be used for select globally\n * @param type - Type to be used as normal state\n */\nexport function provideNormalStateType(type: Type<NormalState>): Provider\n{\n return <ValueProvider>{\n provide: NORMAL_STATE_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides type of popup that will be used for select globally\n * @param type - Type to be used as popup\n */\nexport function providePopupType(type: Type<Popup>): Provider\n{\n return <ValueProvider>{\n provide: POPUP_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides type of positioner that will be used for select globally\n * @param type - Type to be used as positioner\n */\nexport function providePositionerType(type: Type<Positioner>): Provider\n{\n return <ValueProvider>{\n provide: POSITIONER_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides type of readonly state that will be used for select globally\n * @param type - Type to be used as readonly state\n */\nexport function provideReadonlyStateType(type: Type<ReadonlyState>): Provider\n{\n return <ValueProvider>{\n provide: READONLY_STATE_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides type of value handler that will be used for select globally\n * @param type - Type to be used as value handler\n */\nexport function provideValueHandlerType(type: Type<ValueHandler>): Provider\n{\n return <ValueProvider>{\n provide: VALUE_HANDLER_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides type of live search that will be used for select globally\n * @param type - Type to be used as live search\n */\nexport function provideLiveSearchType(type: Type<LiveSearch>): Provider\n{\n return <ValueProvider>{\n provide: LIVE_SEARCH_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides type of interactions that will be used for select globally\n * @param type - Type to be used as interactions\n */\nexport function provideInteractionsType(type: Type<Interactions>): Provider\n{\n return <ValueProvider>{\n provide: INTERACTIONS_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides type of options handler that will be used for select globally\n * @param type - Type to be used as options handler\n */\nexport function provideOptionsHandlerType(type: Type<OptionsHandler>): Provider\n{\n return <ValueProvider>{\n provide: OPTIONS_HANDLER_TYPE,\n useValue: type,\n };\n}\n\n/**\n * Provides options for keyboard handler that will be used for select globally\n * @param options - Options to be used for keyboard handler\n */\nexport function provideKeyboardHandlerOptions<TOptions extends KeyboardHandlerOptions = KeyboardHandlerOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: KEYBOARD_HANDLER_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides options for normal state that will be used for select globally\n * @param options - Options to be used for normal state\n */\nexport function provideNormalStateOptions<TOptions extends NormalStateOptions = NormalStateOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: NORMAL_STATE_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides options for popup that will be used for select globally\n * @param options - Options to be used for popup\n */\nexport function providePopupOptions<TOptions extends PopupOptions = PopupOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: POPUP_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides options for positioner that will be used for select globally\n * @param options - Options to be used for positioner\n */\nexport function providePositionerOptions<TOptions extends PositionerOptions = PositionerOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: POSITIONER_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides options for readonly state that will be used for select globally\n * @param options - Options to be used for readonly state\n */\nexport function provideReadonlyStateOptions<TOptions extends ReadonlyStateOptions = ReadonlyStateOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: READONLY_STATE_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides options for value handler that will be used for select globally\n * @param options - Options to be used for value handler\n */\nexport function provideValueHandlerOptions<TOptions extends ValueHandlerOptions = ValueHandlerOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: VALUE_HANDLER_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides options for live search that will be used for select globally\n * @param options - Options to be used for live search\n */\nexport function provideLiveSearchOptions<TOptions extends LiveSearchOptions = LiveSearchOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: LIVE_SEARCH_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides options for interactions that will be used for select globally\n * @param options - Options to be used for interactions\n */\nexport function provideInteractionsOptions<TOptions extends InteractionsOptions = InteractionsOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: INTERACTIONS_OPTIONS,\n useValue: options,\n };\n}\n\n/**\n * Provides options for options handler that will be used for select globally\n * @param options - Options to be used for options handler\n */\nexport function provideOptionsHandlerOptions<TOptions extends OptionsHandlerOptions = OptionsHandlerOptions>(options: RecursivePartial<TOptions>): Provider\n{\n return <ValueProvider>{\n provide: OPTIONS_HANDLER_OPTIONS,\n useValue: options,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/misc/providers.ts"],"names":[],"mappings":"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","sourcesContent":["import {Provider, Type, ValueProvider} from '@angular/core';\r\nimport {RecursivePartial} from '@jscrpt/common';\r\n\r\nimport {Interactions, InteractionsOptions, KeyboardHandler, KeyboardHandlerOptions, LiveSearch, LiveSearchOptions, NormalState, NormalStateOptions, OptionsHandler, OptionsHandlerOptions, Popup, PopupOptions, Positioner, PositionerOptions, ReadonlyState, ReadonlyStateOptions, SelectOptions, ValueHandler, ValueHandlerOptions} from '../interfaces';\r\nimport {INTERACTIONS_OPTIONS, INTERACTIONS_TYPE, KEYBOARD_HANDLER_OPTIONS, KEYBOARD_HANDLER_TYPE, LIVE_SEARCH_OPTIONS, LIVE_SEARCH_TYPE, NORMAL_STATE_OPTIONS, NORMAL_STATE_TYPE, OPTIONS_HANDLER_OPTIONS, OPTIONS_HANDLER_TYPE, POPUP_OPTIONS, POPUP_TYPE, POSITIONER_OPTIONS, POSITIONER_TYPE, READONLY_STATE_OPTIONS, READONLY_STATE_TYPE, SELECT_OPTIONS, VALUE_HANDLER_OPTIONS, VALUE_HANDLER_TYPE} from './tokens';\r\n\r\n/**\r\n * Provides options for select globally\r\n * @param options - Options to be provided\r\n */\r\nexport function provideSelectOptions(options: RecursivePartial<SelectOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: SELECT_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of keyboard handler that will be used for select globally\r\n * @param type - Type to be used as keyboard handler\r\n */\r\nexport function provideKeyboardHandlerType(type: Type<KeyboardHandler>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: KEYBOARD_HANDLER_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of normal state that will be used for select globally\r\n * @param type - Type to be used as normal state\r\n */\r\nexport function provideNormalStateType(type: Type<NormalState>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: NORMAL_STATE_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of popup that will be used for select globally\r\n * @param type - Type to be used as popup\r\n */\r\nexport function providePopupType(type: Type<Popup>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: POPUP_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of positioner that will be used for select globally\r\n * @param type - Type to be used as positioner\r\n */\r\nexport function providePositionerType(type: Type<Positioner>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: POSITIONER_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of readonly state that will be used for select globally\r\n * @param type - Type to be used as readonly state\r\n */\r\nexport function provideReadonlyStateType(type: Type<ReadonlyState>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: READONLY_STATE_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of value handler that will be used for select globally\r\n * @param type - Type to be used as value handler\r\n */\r\nexport function provideValueHandlerType(type: Type<ValueHandler>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: VALUE_HANDLER_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of live search that will be used for select globally\r\n * @param type - Type to be used as live search\r\n */\r\nexport function provideLiveSearchType(type: Type<LiveSearch>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: LIVE_SEARCH_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of interactions that will be used for select globally\r\n * @param type - Type to be used as interactions\r\n */\r\nexport function provideInteractionsType(type: Type<Interactions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: INTERACTIONS_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides type of options handler that will be used for select globally\r\n * @param type - Type to be used as options handler\r\n */\r\nexport function provideOptionsHandlerType(type: Type<OptionsHandler>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: OPTIONS_HANDLER_TYPE,\r\n useValue: type,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for keyboard handler that will be used for select globally\r\n * @param options - Options to be used for keyboard handler\r\n */\r\nexport function provideKeyboardHandlerOptions<TOptions extends KeyboardHandlerOptions = KeyboardHandlerOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: KEYBOARD_HANDLER_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for normal state that will be used for select globally\r\n * @param options - Options to be used for normal state\r\n */\r\nexport function provideNormalStateOptions<TOptions extends NormalStateOptions = NormalStateOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: NORMAL_STATE_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for popup that will be used for select globally\r\n * @param options - Options to be used for popup\r\n */\r\nexport function providePopupOptions<TOptions extends PopupOptions = PopupOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: POPUP_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for positioner that will be used for select globally\r\n * @param options - Options to be used for positioner\r\n */\r\nexport function providePositionerOptions<TOptions extends PositionerOptions = PositionerOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: POSITIONER_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for readonly state that will be used for select globally\r\n * @param options - Options to be used for readonly state\r\n */\r\nexport function provideReadonlyStateOptions<TOptions extends ReadonlyStateOptions = ReadonlyStateOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: READONLY_STATE_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for value handler that will be used for select globally\r\n * @param options - Options to be used for value handler\r\n */\r\nexport function provideValueHandlerOptions<TOptions extends ValueHandlerOptions = ValueHandlerOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: VALUE_HANDLER_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for live search that will be used for select globally\r\n * @param options - Options to be used for live search\r\n */\r\nexport function provideLiveSearchOptions<TOptions extends LiveSearchOptions = LiveSearchOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: LIVE_SEARCH_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for interactions that will be used for select globally\r\n * @param options - Options to be used for interactions\r\n */\r\nexport function provideInteractionsOptions<TOptions extends InteractionsOptions = InteractionsOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: INTERACTIONS_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n\r\n/**\r\n * Provides options for options handler that will be used for select globally\r\n * @param options - Options to be used for options handler\r\n */\r\nexport function provideOptionsHandlerOptions<TOptions extends OptionsHandlerOptions = OptionsHandlerOptions>(options: RecursivePartial<TOptions>): Provider\r\n{\r\n return <ValueProvider>{\r\n provide: OPTIONS_HANDLER_OPTIONS,\r\n useValue: options,\r\n };\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/misc/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAO,MAAM,eAAe,CAAC;AAMnD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoD,IAAI,cAAc,CAAkC,gBAAgB,CAAC,CAAC;AAErJ;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0C,IAAI,cAAc,CAAwB,uBAAuB,CAAC,CAAC;AAE/I;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsC,IAAI,cAAc,CAAoB,mBAAmB,CAAC,CAAC;AAE/H;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgC,IAAI,cAAc,CAAc,YAAY,CAAC,CAAC;AAErG;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC,IAAI,cAAc,CAAmB,iBAAiB,CAAC,CAAC;AAEzH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwC,IAAI,cAAc,CAAsB,qBAAqB,CAAC,CAAC;AAEvI;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAuC,IAAI,cAAc,CAAqB,oBAAoB,CAAC,CAAC;AAEnI;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAqC,IAAI,cAAc,CAAmB,kBAAkB,CAAC,CAAC;AAE3H;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAuC,IAAI,cAAc,CAAqB,cAAc,CAAC,CAAC;AAE5H;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAyC,IAAI,cAAc,CAAuB,sBAAsB,CAAC,CAAC;AAE3I;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA2C,IAAI,cAAc,CAAyB,0BAA0B,CAAC,CAAC;AAEvJ;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAuC,IAAI,cAAc,CAAqB,sBAAsB,CAAC,CAAC;AAEvI;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC,IAAI,cAAc,CAAe,eAAe,CAAC,CAAC;AAE7G;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsC,IAAI,cAAc,CAAoB,oBAAoB,CAAC,CAAC;AAEjI;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAyC,IAAI,cAAc,CAAuB,wBAAwB,CAAC,CAAC;AAE/I;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwC,IAAI,cAAc,CAAsB,uBAAuB,CAAC,CAAC;AAE3I;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsC,IAAI,cAAc,CAAoB,qBAAqB,CAAC,CAAC;AAEnI;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAwC,IAAI,cAAc,CAAsB,sBAAsB,CAAC,CAAC;AAEzI;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA0C,IAAI,cAAc,CAAwB,yBAAyB,CAAC,CAAC","sourcesContent":["import {InjectionToken, Type} from '@angular/core';\nimport {RecursivePartial} from '@jscrpt/common';\n\nimport {SelectOptions} from '../interfaces/selectOptions/selectOptions.interface';\nimport {Interactions, InteractionsOptions, KeyboardHandler, KeyboardHandlerOptions, LiveSearch, LiveSearchOptions, NormalState, NormalStateOptions, OptionsHandler, OptionsHandlerOptions, Popup, PopupOptions, Positioner, PositionerOptions, ReadonlyState, ReadonlyStateOptions, ValueHandler, ValueHandlerOptions} from '../interfaces';\n\n/**\n * Injection token for 'SelectOptions'\n */\nexport const SELECT_OPTIONS: InjectionToken<RecursivePartial<SelectOptions>> = new InjectionToken<RecursivePartial<SelectOptions>>('SELECT_OPTIONS');\n\n/**\n * Injection token for 'KeyboardHandler' implementation\n */\nexport const KEYBOARD_HANDLER_TYPE: InjectionToken<Type<KeyboardHandler>> = new InjectionToken<Type<KeyboardHandler>>('KEYBOARD_HANDLER_TYPE');\n\n/**\n * Injection token for 'NormalState' implementation\n */\nexport const NORMAL_STATE_TYPE: InjectionToken<Type<NormalState>> = new InjectionToken<Type<NormalState>>('NORMAL_STATE_TYPE');\n\n/**\n * Injection token for 'Popup' implementation\n */\nexport const POPUP_TYPE: InjectionToken<Type<Popup>> = new InjectionToken<Type<Popup>>('POPUP_TYPE');\n\n/**\n * Injection token for 'Positioner' implementation\n */\nexport const POSITIONER_TYPE: InjectionToken<Type<Positioner>> = new InjectionToken<Type<Positioner>>('POSITIONER_TYPE');\n\n/**\n * Injection token for 'ReadonlyState' implementation\n */\nexport const READONLY_STATE_TYPE: InjectionToken<Type<ReadonlyState>> = new InjectionToken<Type<ReadonlyState>>('READONLY_STATE_TYPE');\n\n/**\n * Injection token for 'ValueHandler' implementation\n */\nexport const VALUE_HANDLER_TYPE: InjectionToken<Type<ValueHandler>> = new InjectionToken<Type<ValueHandler>>('VALUE_HANDLER_TYPE');\n\n/**\n * Injection token for 'LiveSearch' implementation\n */\nexport const LIVE_SEARCH_TYPE: InjectionToken<Type<LiveSearch>> = new InjectionToken<Type<LiveSearch>>('LIVE_SEARCH_TYPE');\n\n/**\n * Injection token for 'Interactions' implementation\n */\nexport const INTERACTIONS_TYPE: InjectionToken<Type<Interactions>> = new InjectionToken<Type<Interactions>>('INTERACTIONS');\n\n/**\n * Injection token for 'OptionsHandler' implementation\n */\nexport const OPTIONS_HANDLER_TYPE: InjectionToken<Type<OptionsHandler>> = new InjectionToken<Type<OptionsHandler>>('OPTIONS_HANDLER_TYPE');\n\n/**\n * Injection token for 'KeyboardHandlerOptions' implementation\n */\nexport const KEYBOARD_HANDLER_OPTIONS: InjectionToken<KeyboardHandlerOptions> = new InjectionToken<KeyboardHandlerOptions>('KEYBOARD_HANDLER_OPTIONS');\n\n/**\n * Injection token for 'NormalStateOptions' implementation\n */\nexport const NORMAL_STATE_OPTIONS: InjectionToken<NormalStateOptions> = new InjectionToken<NormalStateOptions>('NORMAL_STATE_OPTIONS');\n\n/**\n * Injection token for 'PopupOptions' implementation\n */\nexport const POPUP_OPTIONS: InjectionToken<PopupOptions> = new InjectionToken<PopupOptions>('POPUP_OPTIONS');\n\n/**\n * Injection token for 'PositionerOptions' implementation\n */\nexport const POSITIONER_OPTIONS: InjectionToken<PositionerOptions> = new InjectionToken<PositionerOptions>('POSITIONER_OPTIONS');\n\n/**\n * Injection token for 'ReadonlyStateOptions' implementation\n */\nexport const READONLY_STATE_OPTIONS: InjectionToken<ReadonlyStateOptions> = new InjectionToken<ReadonlyStateOptions>('READONLY_STATE_OPTIONS');\n\n/**\n * Injection token for 'ValueHandlerOptions' implementation\n */\nexport const VALUE_HANDLER_OPTIONS: InjectionToken<ValueHandlerOptions> = new InjectionToken<ValueHandlerOptions>('VALUE_HANDLER_OPTIONS');\n\n/**\n * Injection token for 'LiveSearchOptions' implementation\n */\nexport const LIVE_SEARCH_OPTIONS: InjectionToken<LiveSearchOptions> = new InjectionToken<LiveSearchOptions>('LIVE_SEARCH_OPTIONS');\n\n/**\n * Injection token for 'InteractionsOptions' implementation\n */\nexport const INTERACTIONS_OPTIONS: InjectionToken<InteractionsOptions> = new InjectionToken<InteractionsOptions>('INTERACTIONS_OPTIONS');\n\n/**\n * Injection token for 'OptionsHandlerOptions' implementation\n */\nexport const OPTIONS_HANDLER_OPTIONS: InjectionToken<OptionsHandlerOptions> = new InjectionToken<OptionsHandlerOptions>('OPTIONS_HANDLER_OPTIONS');\n"]}
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/misc/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAO,MAAM,eAAe,CAAC;AAMnD;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoD,IAAI,cAAc,CAAkC,gBAAgB,CAAC,CAAC;AAErJ;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA0C,IAAI,cAAc,CAAwB,uBAAuB,CAAC,CAAC;AAE/I;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsC,IAAI,cAAc,CAAoB,mBAAmB,CAAC,CAAC;AAE/H;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgC,IAAI,cAAc,CAAc,YAAY,CAAC,CAAC;AAErG;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAqC,IAAI,cAAc,CAAmB,iBAAiB,CAAC,CAAC;AAEzH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwC,IAAI,cAAc,CAAsB,qBAAqB,CAAC,CAAC;AAEvI;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAuC,IAAI,cAAc,CAAqB,oBAAoB,CAAC,CAAC;AAEnI;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAqC,IAAI,cAAc,CAAmB,kBAAkB,CAAC,CAAC;AAE3H;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAuC,IAAI,cAAc,CAAqB,cAAc,CAAC,CAAC;AAE5H;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAyC,IAAI,cAAc,CAAuB,sBAAsB,CAAC,CAAC;AAE3I;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA2C,IAAI,cAAc,CAAyB,0BAA0B,CAAC,CAAC;AAEvJ;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAuC,IAAI,cAAc,CAAqB,sBAAsB,CAAC,CAAC;AAEvI;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC,IAAI,cAAc,CAAe,eAAe,CAAC,CAAC;AAE7G;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsC,IAAI,cAAc,CAAoB,oBAAoB,CAAC,CAAC;AAEjI;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAyC,IAAI,cAAc,CAAuB,wBAAwB,CAAC,CAAC;AAE/I;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAwC,IAAI,cAAc,CAAsB,uBAAuB,CAAC,CAAC;AAE3I;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsC,IAAI,cAAc,CAAoB,qBAAqB,CAAC,CAAC;AAEnI;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAwC,IAAI,cAAc,CAAsB,sBAAsB,CAAC,CAAC;AAEzI;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA0C,IAAI,cAAc,CAAwB,yBAAyB,CAAC,CAAC","sourcesContent":["import {InjectionToken, Type} from '@angular/core';\r\nimport {RecursivePartial} from '@jscrpt/common';\r\n\r\nimport {SelectOptions} from '../interfaces/selectOptions/selectOptions.interface';\r\nimport {Interactions, InteractionsOptions, KeyboardHandler, KeyboardHandlerOptions, LiveSearch, LiveSearchOptions, NormalState, NormalStateOptions, OptionsHandler, OptionsHandlerOptions, Popup, PopupOptions, Positioner, PositionerOptions, ReadonlyState, ReadonlyStateOptions, ValueHandler, ValueHandlerOptions} from '../interfaces';\r\n\r\n/**\r\n * Injection token for 'SelectOptions'\r\n */\r\nexport const SELECT_OPTIONS: InjectionToken<RecursivePartial<SelectOptions>> = new InjectionToken<RecursivePartial<SelectOptions>>('SELECT_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'KeyboardHandler' implementation\r\n */\r\nexport const KEYBOARD_HANDLER_TYPE: InjectionToken<Type<KeyboardHandler>> = new InjectionToken<Type<KeyboardHandler>>('KEYBOARD_HANDLER_TYPE');\r\n\r\n/**\r\n * Injection token for 'NormalState' implementation\r\n */\r\nexport const NORMAL_STATE_TYPE: InjectionToken<Type<NormalState>> = new InjectionToken<Type<NormalState>>('NORMAL_STATE_TYPE');\r\n\r\n/**\r\n * Injection token for 'Popup' implementation\r\n */\r\nexport const POPUP_TYPE: InjectionToken<Type<Popup>> = new InjectionToken<Type<Popup>>('POPUP_TYPE');\r\n\r\n/**\r\n * Injection token for 'Positioner' implementation\r\n */\r\nexport const POSITIONER_TYPE: InjectionToken<Type<Positioner>> = new InjectionToken<Type<Positioner>>('POSITIONER_TYPE');\r\n\r\n/**\r\n * Injection token for 'ReadonlyState' implementation\r\n */\r\nexport const READONLY_STATE_TYPE: InjectionToken<Type<ReadonlyState>> = new InjectionToken<Type<ReadonlyState>>('READONLY_STATE_TYPE');\r\n\r\n/**\r\n * Injection token for 'ValueHandler' implementation\r\n */\r\nexport const VALUE_HANDLER_TYPE: InjectionToken<Type<ValueHandler>> = new InjectionToken<Type<ValueHandler>>('VALUE_HANDLER_TYPE');\r\n\r\n/**\r\n * Injection token for 'LiveSearch' implementation\r\n */\r\nexport const LIVE_SEARCH_TYPE: InjectionToken<Type<LiveSearch>> = new InjectionToken<Type<LiveSearch>>('LIVE_SEARCH_TYPE');\r\n\r\n/**\r\n * Injection token for 'Interactions' implementation\r\n */\r\nexport const INTERACTIONS_TYPE: InjectionToken<Type<Interactions>> = new InjectionToken<Type<Interactions>>('INTERACTIONS');\r\n\r\n/**\r\n * Injection token for 'OptionsHandler' implementation\r\n */\r\nexport const OPTIONS_HANDLER_TYPE: InjectionToken<Type<OptionsHandler>> = new InjectionToken<Type<OptionsHandler>>('OPTIONS_HANDLER_TYPE');\r\n\r\n/**\r\n * Injection token for 'KeyboardHandlerOptions' implementation\r\n */\r\nexport const KEYBOARD_HANDLER_OPTIONS: InjectionToken<KeyboardHandlerOptions> = new InjectionToken<KeyboardHandlerOptions>('KEYBOARD_HANDLER_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'NormalStateOptions' implementation\r\n */\r\nexport const NORMAL_STATE_OPTIONS: InjectionToken<NormalStateOptions> = new InjectionToken<NormalStateOptions>('NORMAL_STATE_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'PopupOptions' implementation\r\n */\r\nexport const POPUP_OPTIONS: InjectionToken<PopupOptions> = new InjectionToken<PopupOptions>('POPUP_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'PositionerOptions' implementation\r\n */\r\nexport const POSITIONER_OPTIONS: InjectionToken<PositionerOptions> = new InjectionToken<PositionerOptions>('POSITIONER_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'ReadonlyStateOptions' implementation\r\n */\r\nexport const READONLY_STATE_OPTIONS: InjectionToken<ReadonlyStateOptions> = new InjectionToken<ReadonlyStateOptions>('READONLY_STATE_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'ValueHandlerOptions' implementation\r\n */\r\nexport const VALUE_HANDLER_OPTIONS: InjectionToken<ValueHandlerOptions> = new InjectionToken<ValueHandlerOptions>('VALUE_HANDLER_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'LiveSearchOptions' implementation\r\n */\r\nexport const LIVE_SEARCH_OPTIONS: InjectionToken<LiveSearchOptions> = new InjectionToken<LiveSearchOptions>('LIVE_SEARCH_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'InteractionsOptions' implementation\r\n */\r\nexport const INTERACTIONS_OPTIONS: InjectionToken<InteractionsOptions> = new InjectionToken<InteractionsOptions>('INTERACTIONS_OPTIONS');\r\n\r\n/**\r\n * Injection token for 'OptionsHandlerOptions' implementation\r\n */\r\nexport const OPTIONS_HANDLER_OPTIONS: InjectionToken<OptionsHandlerOptions> = new InjectionToken<OptionsHandlerOptions>('OPTIONS_HANDLER_OPTIONS');\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/misc/types.ts"],"names":[],"mappings":"","sourcesContent":["import {PromiseOr} from '@jscrpt/common';\n\nimport {RemoveLastSelectedValueKeyboardAction, SelectActiveKeyboardAction, SelectApi, SelectCssClasses, SelectFirstKeyboardAction, SelectOption} from '../interfaces';\n\n/**\n * Defintion of action that can be executed on Select\n */\nexport type SelectAction<TValue = unknown, TPublicValue = TValue, TCssClasses = SelectCssClasses> = (select: SelectApi<TValue, TPublicValue, TCssClasses>) => void;\n\n/**\n * Definition of function that can be executed on Select and returns some data\n */\nexport type SelectFunction<TResult = unknown, TValue = unknown, TPublicValue = TValue, TCssClasses = SelectCssClasses> = (select: SelectApi<TValue, TPublicValue, TCssClasses>) => TResult;\n\n/**\n * Definition of function used for transformation of select option into display text\n */\nexport type DisplayTextFunc<TValue = unknown> = (option: SelectOption<TValue>) => string;\n\n/**\n * Definition of function used for checking equality of select value\n */\nexport type ValueEqualityFunc<TValue = unknown> = (source: TValue, target: TValue) => boolean;\n\n/**\n * Definition of function used for extracting value from select option\n */\nexport type ValueExtractorFunc<TValue = unknown, TPublicValue = TValue> = (option: SelectOption<TValue>) => TPublicValue;\n\n/**\n * Normalize text for comparison, removes accent sensitive data\n */\nexport type NormalizeTextForComparison = <TText extends string|undefined|null>(text: TText) => TText;\n\n/**\n * Definition of function that extracts text for comparison/filtering/searching\n */\nexport type TextExtractorFunc<TValue> = (option: SelectOption<TValue>) => string;\n\n/**\n * Definition of function used for comparison two texts\n */\nexport type TextComparerFunc = (source: string, target: string) => boolean;\n\n/**\n * Definition of simple keyboard actions\n */\nexport type SimpleKeyboardActions = SelectActiveKeyboardAction|SelectFirstKeyboardAction|RemoveLastSelectedValueKeyboardAction;\n\n/**\n * Names of simple keyboard action types\n */\nexport type SimpleKeyboardActionTypes = 'SELECT_ACTIVE'|'SELECT_FIRST'|'REMOVE_LAST_SELECTED_VALUE';\n\n/**\n * Definition of function for computed value signal\n */\nexport type ValueComputedFunc<TValue> = () => TValue|TValue[]|undefined|null;\n\n/**\n * Definition of function for obtaining option for provided value\n */\nexport type OptionGetterFunc<TValue, TPublicValue> = (value: TPublicValue) => PromiseOr<SelectOption<TValue>|undefined|null>;\n\n/**\n * Definition of function for obtaining new option, allows adding new options\n */\nexport type NewOptionGetterFunc<TValue> = (text: string) => SelectOption<TValue>;\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/misc/types.ts"],"names":[],"mappings":"","sourcesContent":["import {PromiseOr} from '@jscrpt/common';\r\n\r\nimport {RemoveLastSelectedValueKeyboardAction, SelectActiveKeyboardAction, SelectApi, SelectCssClasses, SelectFirstKeyboardAction, SelectOption} from '../interfaces';\r\n\r\n/**\r\n * Defintion of action that can be executed on Select\r\n */\r\nexport type SelectAction<TValue = unknown, TPublicValue = TValue, TCssClasses = SelectCssClasses> = (select: SelectApi<TValue, TPublicValue, TCssClasses>) => void;\r\n\r\n/**\r\n * Definition of function that can be executed on Select and returns some data\r\n */\r\nexport type SelectFunction<TResult = unknown, TValue = unknown, TPublicValue = TValue, TCssClasses = SelectCssClasses> = (select: SelectApi<TValue, TPublicValue, TCssClasses>) => TResult;\r\n\r\n/**\r\n * Definition of function used for transformation of select option into display text\r\n */\r\nexport type DisplayTextFunc<TValue = unknown> = (option: SelectOption<TValue>) => string;\r\n\r\n/**\r\n * Definition of function used for checking equality of select value\r\n */\r\nexport type ValueEqualityFunc<TValue = unknown> = (source: TValue, target: TValue) => boolean;\r\n\r\n/**\r\n * Definition of function used for extracting value from select option\r\n */\r\nexport type ValueExtractorFunc<TValue = unknown, TPublicValue = TValue> = (option: SelectOption<TValue>) => TPublicValue;\r\n\r\n/**\r\n * Normalize text for comparison, removes accent sensitive data\r\n */\r\nexport type NormalizeTextForComparison = <TText extends string|undefined|null>(text: TText) => TText;\r\n\r\n/**\r\n * Definition of function that extracts text for comparison/filtering/searching\r\n */\r\nexport type TextExtractorFunc<TValue> = (option: SelectOption<TValue>) => string;\r\n\r\n/**\r\n * Definition of function used for comparison two texts\r\n */\r\nexport type TextComparerFunc = (source: string, target: string) => boolean;\r\n\r\n/**\r\n * Definition of simple keyboard actions\r\n */\r\nexport type SimpleKeyboardActions = SelectActiveKeyboardAction|SelectFirstKeyboardAction|RemoveLastSelectedValueKeyboardAction;\r\n\r\n/**\r\n * Names of simple keyboard action types\r\n */\r\nexport type SimpleKeyboardActionTypes = 'SELECT_ACTIVE'|'SELECT_FIRST'|'REMOVE_LAST_SELECTED_VALUE';\r\n\r\n/**\r\n * Definition of function for computed value signal\r\n */\r\nexport type ValueComputedFunc<TValue> = () => TValue|TValue[]|undefined|null;\r\n\r\n/**\r\n * Definition of function for obtaining option for provided value\r\n */\r\nexport type OptionGetterFunc<TValue, TPublicValue> = (value: TPublicValue) => PromiseOr<SelectOption<TValue>|undefined|null>;\r\n\r\n/**\r\n * Definition of function for obtaining new option, allows adding new options\r\n */\r\nexport type NewOptionGetterFunc<TValue> = (text: string) => SelectOption<TValue>;\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/misc/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {untracked} from '@angular/core';\nimport {isBlank, isDescendant, NoopAction} from '@jscrpt/common';\n\nimport {SelectOption, SelectOptionState, ValueHandler, ValueHandlerOptions} from '../interfaces';\nimport {SelectBus, SelectPluginInstances} from './classes';\n\n/**\n * Compares value and select option\n * @param value - Value to be compared\n * @param option - Option to be compared with\n * @param selectBus - Instance of select bus use for obtaining value comparerer and value extractor functions\n */\nexport function compareValueAndOption<TValue, TPublicValue, TAction>(value: TPublicValue, option: SelectOption<TValue>, selectBus: SelectBus<TValue, TPublicValue, TAction>): boolean\n{\n return untracked(() => selectBus.selectOptions().valueComparer(value, selectBus.selectOptions().valueExtractor(option)));\n}\n\n/**\n * Compares two select options\n * @param source - Source option to be compared\n * @param target - Target option to be compared with\n * @param selectBus - Instance of select bus use for obtaining value comparerer and value extractor functions\n */\nexport function compareSelectOptions<TValue, TPublicValue, TAction>(source: SelectOption<TValue>|undefined|null, target: SelectOption<TValue>|undefined|null, selectBus: SelectBus<TValue, TPublicValue, TAction>): boolean\n{\n return untracked(() => source === target || ((!!source && !!target) ? selectBus.selectOptions().valueComparer(selectBus.selectOptions().valueExtractor(source), selectBus.selectOptions().valueExtractor(target)) : false));\n}\n\n/**\n * Toggles popup visiblity\n * @param selectBus - Instance of select bus\n */\nexport function togglePopup<TValue, TPublicValue, TAction>(selectBus: SelectBus<TValue, TPublicValue, TAction>): void\n{\n selectBus.popupVisible.update(val => !val);\n}\n\n/**\n * Handles selection of options\n * @param selectBus - Instance of select bus\n * @param option - Option that was 'clicked'\n */\nexport function selectOption<TValue, TPublicValue, TAction>(selectBus: SelectBus<TValue, TPublicValue, TAction>, option: SelectOptionState<TValue>|undefined|null): void\n{\n //handle multiselect\n if(selectBus.selectOptions().multiple)\n {\n if(!option)\n {\n const selectedOptions = selectBus.selectedOptions();\n\n if(Array.isArray(selectedOptions))\n {\n for(const selected of selectedOptions)\n {\n selected.selected.set(false);\n }\n }\n\n selectBus.selectedOptions.set([]);\n }\n else\n {\n option.selected.update(val => !val);\n let selectedOptions = selectBus.selectedOptions();\n\n if(!Array.isArray(selectedOptions))\n {\n selectedOptions = [];\n }\n\n const selected = selectedOptions.filter(itm => itm.selected());\n\n if(option?.selected())\n {\n selected.push(option);\n }\n\n selectBus.selectedOptions.set(selected);\n }\n }\n //handle single select\n else\n {\n const selectedOption = selectBus.selectedOptions();\n\n if(Array.isArray(selectedOption))\n {\n throw new Error('Unexpected array of values! Remove multiple attribute!');\n }\n\n //select new option\n if(!compareSelectOptions(selectedOption, option, selectBus))\n {\n selectedOption?.selected.set(false);\n option?.selected.set(true);\n\n selectBus.selectedOptions.set(option);\n }\n }\n\n if(selectBus.selectOptions().closeOnSelect)\n {\n selectBus.popupVisible.set(false);\n }\n}\n\n/**\n * Handles click outside of select for closing popover\n *\n * Returns function that unregisters callback\n *\n * @param document - HTML document instance\n * @param selectBus - Instance of select bus\n * @param selectPlugins - Instance with select plugins\n */\nexport function handleClickOutside<TValue, TPublicValue, TAction>(document: Document, selectBus: SelectBus<TValue, TPublicValue, TAction>, selectPlugins: SelectPluginInstances<TValue, TPublicValue>): NoopAction\n{\n const handleClick = (event: MouseEvent) =>\n {\n if(selectBus.selectElement().nativeElement != event.target &&\n !isDescendant(selectBus.selectElement().nativeElement, event.target as HTMLElement) &&\n (!selectPlugins.Popup.pluginElement.nativeElement || (selectPlugins.Popup.pluginElement.nativeElement != event.target &&\n !isDescendant(selectPlugins.Popup.pluginElement.nativeElement, event.target as HTMLElement))))\n {\n selectBus.popupVisible.set(false);\n }\n };\n\n document.addEventListener('mouseup', handleClick);\n\n return () => document.removeEventListener('mouseup', handleClick);\n}\n\n/**\n * Function for computed value signal\n * @param this - Instance of bound `ValueHandler`\n */\nexport function computedValue<TValue, TPublicValue>(this: ValueHandler<TValue, TPublicValue, ValueHandlerOptions>): TPublicValue|TPublicValue[]|undefined|null\n{\n const selected = this.selectBus.selectedOptions();\n const valueExtractor = this.selectBus.selectOptions().valueExtractor;\n\n if(isBlank(selected))\n {\n return selected;\n }\n\n if(Array.isArray(selected))\n {\n return selected.map(option => valueExtractor(option));\n }\n\n return valueExtractor(selected);\n}\n\n/**\n * Tests whether value is set\n * @param value - Value to be tested\n */\nexport function hasValue<TValue>(value: SelectOptionState<TValue>|SelectOptionState<TValue>[]|undefined|null): boolean\n{\n if(Array.isArray(value))\n {\n return value.length > 0;\n }\n\n return !!value;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/misc/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {untracked} from '@angular/core';\r\nimport {isBlank, isDescendant, NoopAction} from '@jscrpt/common';\r\n\r\nimport {SelectOption, SelectOptionState, ValueHandler, ValueHandlerOptions} from '../interfaces';\r\nimport {SelectBus, SelectPluginInstances} from './classes';\r\n\r\n/**\r\n * Compares value and select option\r\n * @param value - Value to be compared\r\n * @param option - Option to be compared with\r\n * @param selectBus - Instance of select bus use for obtaining value comparerer and value extractor functions\r\n */\r\nexport function compareValueAndOption<TValue, TPublicValue, TAction>(value: TPublicValue, option: SelectOption<TValue>, selectBus: SelectBus<TValue, TPublicValue, TAction>): boolean\r\n{\r\n return untracked(() => selectBus.selectOptions().valueComparer(value, selectBus.selectOptions().valueExtractor(option)));\r\n}\r\n\r\n/**\r\n * Compares two select options\r\n * @param source - Source option to be compared\r\n * @param target - Target option to be compared with\r\n * @param selectBus - Instance of select bus use for obtaining value comparerer and value extractor functions\r\n */\r\nexport function compareSelectOptions<TValue, TPublicValue, TAction>(source: SelectOption<TValue>|undefined|null, target: SelectOption<TValue>|undefined|null, selectBus: SelectBus<TValue, TPublicValue, TAction>): boolean\r\n{\r\n return untracked(() => source === target || ((!!source && !!target) ? selectBus.selectOptions().valueComparer(selectBus.selectOptions().valueExtractor(source), selectBus.selectOptions().valueExtractor(target)) : false));\r\n}\r\n\r\n/**\r\n * Toggles popup visiblity\r\n * @param selectBus - Instance of select bus\r\n */\r\nexport function togglePopup<TValue, TPublicValue, TAction>(selectBus: SelectBus<TValue, TPublicValue, TAction>): void\r\n{\r\n selectBus.popupVisible.update(val => !val);\r\n}\r\n\r\n/**\r\n * Handles selection of options\r\n * @param selectBus - Instance of select bus\r\n * @param option - Option that was 'clicked'\r\n */\r\nexport function selectOption<TValue, TPublicValue, TAction>(selectBus: SelectBus<TValue, TPublicValue, TAction>, option: SelectOptionState<TValue>|undefined|null): void\r\n{\r\n //handle multiselect\r\n if(selectBus.selectOptions().multiple)\r\n {\r\n if(!option)\r\n {\r\n const selectedOptions = selectBus.selectedOptions();\r\n\r\n if(Array.isArray(selectedOptions))\r\n {\r\n for(const selected of selectedOptions)\r\n {\r\n selected.selected.set(false);\r\n }\r\n }\r\n\r\n selectBus.selectedOptions.set([]);\r\n }\r\n else\r\n {\r\n option.selected.update(val => !val);\r\n let selectedOptions = selectBus.selectedOptions();\r\n\r\n if(!Array.isArray(selectedOptions))\r\n {\r\n selectedOptions = [];\r\n }\r\n\r\n const selected = selectedOptions.filter(itm => itm.selected());\r\n\r\n if(option?.selected())\r\n {\r\n selected.push(option);\r\n }\r\n\r\n selectBus.selectedOptions.set(selected);\r\n }\r\n }\r\n //handle single select\r\n else\r\n {\r\n const selectedOption = selectBus.selectedOptions();\r\n\r\n if(Array.isArray(selectedOption))\r\n {\r\n throw new Error('Unexpected array of values! Remove multiple attribute!');\r\n }\r\n\r\n //select new option\r\n if(!compareSelectOptions(selectedOption, option, selectBus))\r\n {\r\n selectedOption?.selected.set(false);\r\n option?.selected.set(true);\r\n\r\n selectBus.selectedOptions.set(option);\r\n }\r\n }\r\n\r\n if(selectBus.selectOptions().closeOnSelect)\r\n {\r\n selectBus.popupVisible.set(false);\r\n }\r\n}\r\n\r\n/**\r\n * Handles click outside of select for closing popover\r\n *\r\n * Returns function that unregisters callback\r\n *\r\n * @param document - HTML document instance\r\n * @param selectBus - Instance of select bus\r\n * @param selectPlugins - Instance with select plugins\r\n */\r\nexport function handleClickOutside<TValue, TPublicValue, TAction>(document: Document, selectBus: SelectBus<TValue, TPublicValue, TAction>, selectPlugins: SelectPluginInstances<TValue, TPublicValue>): NoopAction\r\n{\r\n const handleClick = (event: MouseEvent) =>\r\n {\r\n if(selectBus.selectElement().nativeElement != event.target &&\r\n !isDescendant(selectBus.selectElement().nativeElement, event.target as HTMLElement) &&\r\n (!selectPlugins.Popup.pluginElement.nativeElement || (selectPlugins.Popup.pluginElement.nativeElement != event.target &&\r\n !isDescendant(selectPlugins.Popup.pluginElement.nativeElement, event.target as HTMLElement))))\r\n {\r\n selectBus.popupVisible.set(false);\r\n }\r\n };\r\n\r\n document.addEventListener('mouseup', handleClick);\r\n\r\n return () => document.removeEventListener('mouseup', handleClick);\r\n}\r\n\r\n/**\r\n * Function for computed value signal\r\n * @param this - Instance of bound `ValueHandler`\r\n */\r\nexport function computedValue<TValue, TPublicValue>(this: ValueHandler<TValue, TPublicValue, ValueHandlerOptions>): TPublicValue|TPublicValue[]|undefined|null\r\n{\r\n const selected = this.selectBus.selectedOptions();\r\n const valueExtractor = this.selectBus.selectOptions().valueExtractor;\r\n\r\n if(isBlank(selected))\r\n {\r\n return selected;\r\n }\r\n\r\n if(Array.isArray(selected))\r\n {\r\n return selected.map(option => valueExtractor(option));\r\n }\r\n\r\n return valueExtractor(selected);\r\n}\r\n\r\n/**\r\n * Tests whether value is set\r\n * @param value - Value to be tested\r\n */\r\nexport function hasValue<TValue>(value: SelectOptionState<TValue>|SelectOptionState<TValue>[]|undefined|null): boolean\r\n{\r\n if(Array.isArray(value))\r\n {\r\n return value.length > 0;\r\n }\r\n\r\n return !!value;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './select.module';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './select.module';\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.module.js","sourceRoot":"","sources":["../../../src/modules/select.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;;AAE1D;;GAEG;AAgBH,MAAM,OAAO,YAAY;8GAAZ,YAAY;+GAAZ,YAAY,YAXjB,MAAM;YACN,MAAM;YACN,WAAW,aAIX,MAAM;YACN,MAAM;YACN,WAAW;+GAGN,YAAY;;2FAAZ,YAAY;kBAfxB,QAAQ;mBACT;oBACI,OAAO,EACP;wBACI,MAAM;wBACN,MAAM;wBACN,WAAW;qBACd;oBACD,OAAO,EACP;wBACI,MAAM;wBACN,MAAM;wBACN,WAAW;qBACd;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\n\nimport {Option, OptionGroup, Select} from '../components';\n\n/**\n * Module for select and its options\n */\n@NgModule(\n{\n imports:\n [\n Option,\n Select,\n OptionGroup,\n ],\n exports:\n [\n Option,\n Select,\n OptionGroup,\n ],\n})\nexport class SelectModule\n{\n}\n"]}
|
|
1
|
+
{"version":3,"file":"select.module.js","sourceRoot":"","sources":["../../../src/modules/select.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;;AAE1D;;GAEG;AAgBH,MAAM,OAAO,YAAY;8GAAZ,YAAY;+GAAZ,YAAY,YAXjB,MAAM;YACN,MAAM;YACN,WAAW,aAIX,MAAM;YACN,MAAM;YACN,WAAW;+GAGN,YAAY;;2FAAZ,YAAY;kBAfxB,QAAQ;mBACT;oBACI,OAAO,EACP;wBACI,MAAM;wBACN,MAAM;wBACN,WAAW;qBACd;oBACD,OAAO,EACP;wBACI,MAAM;wBACN,MAAM;wBACN,WAAW;qBACd;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\r\n\r\nimport {Option, OptionGroup, Select} from '../components';\r\n\r\n/**\r\n * Module for select and its options\r\n */\r\n@NgModule(\r\n{\r\n imports:\r\n [\r\n Option,\r\n Select,\r\n OptionGroup,\r\n ],\r\n exports:\r\n [\r\n Option,\r\n Select,\r\n OptionGroup,\r\n ],\r\n})\r\nexport class SelectModule\r\n{\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addNewOption.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/addNewOption/addNewOption.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;AAG1D,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;;AAEzD;;GAEG;AAEH,MAAM,OAAO,YAAY;IADzB;QAGI,sEAAsE;QAEtE;;WAEG;QACO,oBAAe,GAA0B,MAAM,CAAC,qBAAqB,CAAC,CAAC;KAsBpF;IApBG,sGAAsG;IAEtG;;;OAGG;IACI,SAAS,CAAS,KAAuD;QAE5E,IAAG,CAAC,KAAK,EACT,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAG,CAAC,KAAK,CAAC,OAAO,EACjB,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC;IACvE,CAAC;8GA5BQ,YAAY;4GAAZ,YAAY;;2FAAZ,YAAY;kBADxB,IAAI;mBAAC,EAAC,IAAI,EAAE,cAAc,EAAC","sourcesContent":["import {inject, Pipe, PipeTransform} from '@angular/core';\n\nimport {SelectOptionStateSyntetic} from '../../interfaces';\nimport {SelectPluginInstances} from '../../misc/classes';\n\n/**\n * For syntetic option displays text that new option is being added\n */\n@Pipe({name: 'addNewOption'})\nexport class AddNewOption implements PipeTransform\n{\n //######################### protected fields #########################\n\n /**\n * Instance of select bus\n */\n protected pluginInstances: SelectPluginInstances = inject(SelectPluginInstances);\n\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * For syntetic option displays text that new option is being added\n * @param value - Option\n */\n public transform<TValue>(value: SelectOptionStateSyntetic<TValue>|undefined|null): string\n {\n if(!value)\n {\n return '';\n }\n\n if(!value.created)\n {\n return '';\n }\n\n return `${this.pluginInstances.Popup.options.texts.addNewOption} `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"addNewOption.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/addNewOption/addNewOption.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAC;AAG1D,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;;AAEzD;;GAEG;AAEH,MAAM,OAAO,YAAY;IADzB;QAGI,sEAAsE;QAEtE;;WAEG;QACO,oBAAe,GAA0B,MAAM,CAAC,qBAAqB,CAAC,CAAC;KAsBpF;IApBG,sGAAsG;IAEtG;;;OAGG;IACI,SAAS,CAAS,KAAuD;QAE5E,IAAG,CAAC,KAAK,EACT,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAG,CAAC,KAAK,CAAC,OAAO,EACjB,CAAC;YACG,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC;IACvE,CAAC;8GA5BQ,YAAY;4GAAZ,YAAY;;2FAAZ,YAAY;kBADxB,IAAI;mBAAC,EAAC,IAAI,EAAE,cAAc,EAAC","sourcesContent":["import {inject, Pipe, PipeTransform} from '@angular/core';\r\n\r\nimport {SelectOptionStateSyntetic} from '../../interfaces';\r\nimport {SelectPluginInstances} from '../../misc/classes';\r\n\r\n/**\r\n * For syntetic option displays text that new option is being added\r\n */\r\n@Pipe({name: 'addNewOption'})\r\nexport class AddNewOption implements PipeTransform\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Instance of select bus\r\n */\r\n protected pluginInstances: SelectPluginInstances = inject(SelectPluginInstances);\r\n\r\n //######################### public methods - implementation of PipeTransform #########################\r\n\r\n /**\r\n * For syntetic option displays text that new option is being added\r\n * @param value - Option\r\n */\r\n public transform<TValue>(value: SelectOptionStateSyntetic<TValue>|undefined|null): string\r\n {\r\n if(!value)\r\n {\r\n return '';\r\n }\r\n\r\n if(!value.created)\r\n {\r\n return '';\r\n }\r\n\r\n return `${this.pluginInstances.Popup.options.texts.addNewOption} `;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displayOptionValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/displayOptionValue/displayOptionValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAwB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,MAAM,EAAS,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;;AAG7C;;GAEG;AAEH,MAAM,OAAO,kBAAkB;IAD/B;QAGI,sEAAsE;QAEtE;;WAEG;QACO,cAAS,GAAsB,MAAM,CAAoB,SAAS,CAAC,CAAC;QAE9E;;WAEG;QACO,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAY1C;;WAEG;QACO,uBAAkB,GAAoC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,oBAAoB;+FAAC,CAAC;KA0B5L;IAxBG,sGAAsG;IAEtG;;;OAGG;IACI,SAAS,CAAC,MAA4B;QAEzC,IAAG,IAAI,CAAC,UAAU,KAAK,MAAM,EAC7B,CAAC;YACG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YAEzB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,2EAA2E,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;gBAEpH,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAErD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;8FAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;8GApDQ,kBAAkB;4GAAlB,kBAAkB;;2FAAlB,kBAAkB;kBAD9B,IAAI;mBAAC,EAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {computed, inject, Pipe, PipeTransform, Signal} from '@angular/core';\nimport {LOGGER, Logger} from '@anglr/common';\n\nimport {SelectOption} from '../../interfaces';\nimport {SelectBus} from '../../misc/classes';\nimport {DisplayTextFunc} from '../../misc/types';\n\n/**\n * Pipe to transform select option into string\n */\n@Pipe({name: 'displayOptionValue', pure: false})\nexport class DisplayOptionValue<TValue = unknown> implements PipeTransform\n{\n //######################### protected fields #########################\n\n /**\n * Select bus used in Select for comunication between plugins and Select\n */\n protected selectBus: SelectBus<TValue> = inject<SelectBus<TValue>>(SelectBus);\n\n /**\n * Logger used for logging in this pipe\n */\n protected logger: Logger = inject(LOGGER);\n\n /**\n * Last option provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same option is provided again\n */\n protected lastOption: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null;\n\n /**\n * Computed value of the transform function, used for optimization to prevent unnecessary calculations\n */\n protected computedValue: Signal<string>|undefined|null;\n\n /**\n * Function used for obtaining display value of option, used for transforming option into string\n */\n protected displayOptionValue: Signal<DisplayTextFunc<TValue>> = computed(() => this.selectBus.selectOptions().displayOptionValue ?? this.selectBus.selectOptions().displaySelectedValue);\n\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Transforms option into string\n * @param option - Option to be transformed into text\n */\n public transform(option: SelectOption<TValue>): string\n {\n if(this.lastOption !== option)\n {\n this.lastOption = option;\n\n this.computedValue = computed(() =>\n {\n this.logger.verbose('Select: DisplayOptionValue: transforming selected options {{@(4)options}}', {options: option});\n\n const displayOptionValue = this.displayOptionValue();\n\n return displayOptionValue(option);\n });\n }\n\n return this.computedValue?.() ?? '';\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"displayOptionValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/displayOptionValue/displayOptionValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAwB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,MAAM,EAAS,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;;AAG7C;;GAEG;AAEH,MAAM,OAAO,kBAAkB;IAD/B;QAGI,sEAAsE;QAEtE;;WAEG;QACO,cAAS,GAAsB,MAAM,CAAoB,SAAS,CAAC,CAAC;QAE9E;;WAEG;QACO,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAY1C;;WAEG;QACO,uBAAkB,GAAoC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,oBAAoB;+FAAC,CAAC;KA0B5L;IAxBG,sGAAsG;IAEtG;;;OAGG;IACI,SAAS,CAAC,MAA4B;QAEzC,IAAG,IAAI,CAAC,UAAU,KAAK,MAAM,EAC7B,CAAC;YACG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YAEzB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,2EAA2E,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;gBAEpH,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAErD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;8FAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;8GApDQ,kBAAkB;4GAAlB,kBAAkB;;2FAAlB,kBAAkB;kBAD9B,IAAI;mBAAC,EAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {computed, inject, Pipe, PipeTransform, Signal} from '@angular/core';\r\nimport {LOGGER, Logger} from '@anglr/common';\r\n\r\nimport {SelectOption} from '../../interfaces';\r\nimport {SelectBus} from '../../misc/classes';\r\nimport {DisplayTextFunc} from '../../misc/types';\r\n\r\n/**\r\n * Pipe to transform select option into string\r\n */\r\n@Pipe({name: 'displayOptionValue', pure: false})\r\nexport class DisplayOptionValue<TValue = unknown> implements PipeTransform\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Select bus used in Select for comunication between plugins and Select\r\n */\r\n protected selectBus: SelectBus<TValue> = inject<SelectBus<TValue>>(SelectBus);\r\n\r\n /**\r\n * Logger used for logging in this pipe\r\n */\r\n protected logger: Logger = inject(LOGGER);\r\n\r\n /**\r\n * Last option provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same option is provided again\r\n */\r\n protected lastOption: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null;\r\n\r\n /**\r\n * Computed value of the transform function, used for optimization to prevent unnecessary calculations\r\n */\r\n protected computedValue: Signal<string>|undefined|null;\r\n\r\n /**\r\n * Function used for obtaining display value of option, used for transforming option into string\r\n */\r\n protected displayOptionValue: Signal<DisplayTextFunc<TValue>> = computed(() => this.selectBus.selectOptions().displayOptionValue ?? this.selectBus.selectOptions().displaySelectedValue);\r\n\r\n //######################### public methods - implementation of PipeTransform #########################\r\n\r\n /**\r\n * Transforms option into string\r\n * @param option - Option to be transformed into text\r\n */\r\n public transform(option: SelectOption<TValue>): string\r\n {\r\n if(this.lastOption !== option)\r\n {\r\n this.lastOption = option;\r\n\r\n this.computedValue = computed(() =>\r\n {\r\n this.logger.verbose('Select: DisplayOptionValue: transforming selected options {{@(4)options}}', {options: option});\r\n\r\n const displayOptionValue = this.displayOptionValue();\r\n\r\n return displayOptionValue(option);\r\n });\r\n }\r\n\r\n return this.computedValue?.() ?? '';\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"displayValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/displayValue/displayValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAwB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,MAAM,EAAS,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;;AAG7C;;GAEG;AAEH,MAAM,OAAO,YAAY;IADzB;QAGI,sEAAsE;QAEtE;;WAEG;QACO,cAAS,GAAsB,MAAM,CAAoB,SAAS,CAAC,CAAC;QAE9E;;WAEG;QACO,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAiB1C;;WAEG;QACO,gBAAW,GAAmB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,WAAW;wFAAC,CAAC;QAEnG;;WAEG;QACO,yBAAoB,GAAoC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,oBAAoB;iGAAC,CAAC;KAsCzI;IApCG,sGAAsG;IAEtG;;;;OAIG;IACI,SAAS,CAAC,MAAuE,EAAE,sBAA6C,SAAS;QAE5I,IAAG,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,uBAAuB,KAAK,mBAAmB,EACrF,CAAC;YACG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC;YAEnD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qEAAqE,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;gBAE9G,IAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/D,CAAC;oBACG,OAAO,mBAAmB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrD,CAAC;gBAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAEzD,IAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACxB,CAAC;oBACG,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;gBAED,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;8FAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;8GA1EQ,YAAY;4GAAZ,YAAY;;2FAAZ,YAAY;kBADxB,IAAI;mBAAC,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {computed, inject, Pipe, PipeTransform, Signal} from '@angular/core';\nimport {LOGGER, Logger} from '@anglr/common';\nimport {isBlank} from '@jscrpt/common';\n\nimport {SelectOption} from '../../interfaces';\nimport {SelectBus} from '../../misc/classes';\nimport {DisplayTextFunc} from '../../misc/types';\n\n/**\n * Pipe to transform select selected option into string\n */\n@Pipe({name: 'displayValue', pure: false})\nexport class DisplayValue<TValue = unknown> implements PipeTransform\n{\n //######################### protected fields #########################\n\n /**\n * Select bus used in Select for comunication between plugins and Select\n */\n protected selectBus: SelectBus<TValue> = inject<SelectBus<TValue>>(SelectBus);\n\n /**\n * Logger used for logging in this pipe\n */\n protected logger: Logger = inject(LOGGER);\n\n /**\n * Last option provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same option is provided again\n */\n protected lastOption: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null;\n\n /**\n * Last placeholder override provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same placeholder override is provided again\n */\n protected lastPlaceholderOverride: string|undefined|null;\n\n /**\n * Computed value of the transform function, used for optimization to prevent unnecessary calculations\n */\n protected computedValue: Signal<string>|undefined|null;\n\n /**\n * Placeholder for select, used in case there is no option selected\n */\n protected placeholder: Signal<string> = computed(() => this.selectBus.selectOptions().placeholder);\n\n /**\n * Function used for obtaining display value of option, used for transforming selected option into string\n */\n protected displaySelectedValue: Signal<DisplayTextFunc<TValue>> = computed(() => this.selectBus.selectOptions().displaySelectedValue);\n\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Transforms selected option into string\n * @param option - Selected options to be transformed into text\n * @param placeholderOverride - Placeholder override to be used instead of default placeholder\n */\n public transform(option: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null, placeholderOverride: string|undefined|null = undefined): string\n {\n if(this.lastOption !== option || this.lastPlaceholderOverride !== placeholderOverride)\n {\n this.lastOption = option;\n this.lastPlaceholderOverride = placeholderOverride;\n\n this.computedValue = computed(() =>\n {\n this.logger.verbose('Select: DisplayValue: transforming selected options {{@(4)options}}', {options: option});\n\n if(isBlank(option) || (Array.isArray(option) && !option.length))\n {\n return placeholderOverride ?? this.placeholder();\n }\n\n const displaySelectedValue = this.displaySelectedValue();\n\n if(Array.isArray(option))\n {\n return option.map(displaySelectedValue).join(', ');\n }\n\n return displaySelectedValue(option);\n });\n }\n\n return this.computedValue?.() ?? '';\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"displayValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/displayValue/displayValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAwB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,MAAM,EAAS,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;;AAG7C;;GAEG;AAEH,MAAM,OAAO,YAAY;IADzB;QAGI,sEAAsE;QAEtE;;WAEG;QACO,cAAS,GAAsB,MAAM,CAAoB,SAAS,CAAC,CAAC;QAE9E;;WAEG;QACO,WAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;QAiB1C;;WAEG;QACO,gBAAW,GAAmB,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,WAAW;wFAAC,CAAC;QAEnG;;WAEG;QACO,yBAAoB,GAAoC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,oBAAoB;iGAAC,CAAC;KAsCzI;IApCG,sGAAsG;IAEtG;;;;OAIG;IACI,SAAS,CAAC,MAAuE,EAAE,sBAA6C,SAAS;QAE5I,IAAG,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,uBAAuB,KAAK,mBAAmB,EACrF,CAAC;YACG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC;YAEnD,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;gBAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qEAAqE,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;gBAE9G,IAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/D,CAAC;oBACG,OAAO,mBAAmB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrD,CAAC;gBAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAEzD,IAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACxB,CAAC;oBACG,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;gBAED,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;8FAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;8GA1EQ,YAAY;4GAAZ,YAAY;;2FAAZ,YAAY;kBADxB,IAAI;mBAAC,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {computed, inject, Pipe, PipeTransform, Signal} from '@angular/core';\r\nimport {LOGGER, Logger} from '@anglr/common';\r\nimport {isBlank} from '@jscrpt/common';\r\n\r\nimport {SelectOption} from '../../interfaces';\r\nimport {SelectBus} from '../../misc/classes';\r\nimport {DisplayTextFunc} from '../../misc/types';\r\n\r\n/**\r\n * Pipe to transform select selected option into string\r\n */\r\n@Pipe({name: 'displayValue', pure: false})\r\nexport class DisplayValue<TValue = unknown> implements PipeTransform\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Select bus used in Select for comunication between plugins and Select\r\n */\r\n protected selectBus: SelectBus<TValue> = inject<SelectBus<TValue>>(SelectBus);\r\n\r\n /**\r\n * Logger used for logging in this pipe\r\n */\r\n protected logger: Logger = inject(LOGGER);\r\n\r\n /**\r\n * Last option provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same option is provided again\r\n */\r\n protected lastOption: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null;\r\n\r\n /**\r\n * Last placeholder override provided to transform function, used for optimization of transform function to prevent unnecessary calculations in case the same placeholder override is provided again\r\n */\r\n protected lastPlaceholderOverride: string|undefined|null;\r\n\r\n /**\r\n * Computed value of the transform function, used for optimization to prevent unnecessary calculations\r\n */\r\n protected computedValue: Signal<string>|undefined|null;\r\n\r\n /**\r\n * Placeholder for select, used in case there is no option selected\r\n */\r\n protected placeholder: Signal<string> = computed(() => this.selectBus.selectOptions().placeholder);\r\n\r\n /**\r\n * Function used for obtaining display value of option, used for transforming selected option into string\r\n */\r\n protected displaySelectedValue: Signal<DisplayTextFunc<TValue>> = computed(() => this.selectBus.selectOptions().displaySelectedValue);\r\n\r\n //######################### public methods - implementation of PipeTransform #########################\r\n\r\n /**\r\n * Transforms selected option into string\r\n * @param option - Selected options to be transformed into text\r\n * @param placeholderOverride - Placeholder override to be used instead of default placeholder\r\n */\r\n public transform(option: SelectOption<TValue>|Array<SelectOption<TValue>>|undefined|null, placeholderOverride: string|undefined|null = undefined): string\r\n {\r\n if(this.lastOption !== option || this.lastPlaceholderOverride !== placeholderOverride)\r\n {\r\n this.lastOption = option;\r\n this.lastPlaceholderOverride = placeholderOverride;\r\n\r\n this.computedValue = computed(() =>\r\n {\r\n this.logger.verbose('Select: DisplayValue: transforming selected options {{@(4)options}}', {options: option});\r\n\r\n if(isBlank(option) || (Array.isArray(option) && !option.length))\r\n {\r\n return placeholderOverride ?? this.placeholder();\r\n }\r\n\r\n const displaySelectedValue = this.displaySelectedValue();\r\n\r\n if(Array.isArray(option))\r\n {\r\n return option.map(displaySelectedValue).join(', ');\r\n }\r\n\r\n return displaySelectedValue(option);\r\n });\r\n }\r\n\r\n return this.computedValue?.() ?? '';\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPlugin.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/getPlugin/getPlugin.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAC;;AAKlD;;GAEG;AAEH,MAAM,OAAO,SAAS;IAkBX,SAAS,CAAsC,MAAoB,EAAE,UAAyC;QAEjH,OAAO,MAAM,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC;IAC9D,CAAC;8GArBQ,SAAS;4GAAT,SAAS;;2FAAT,SAAS;kBADrB,IAAI;mBAAC,EAAC,IAAI,EAAE,WAAW,EAAC","sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\n\nimport {SelectPluginType} from '../../misc/enums';\nimport {Interactions, KeyboardHandler, LiveSearch, NormalState, OptionsHandler, Popup, Positioner, ReadonlyState, ValueHandler, SelectPlugin} from '../../interfaces';\n\n/**\n * Gets instance of select plugin from another plugin instance\n */\n@Pipe({name: 'getPlugin'})\nexport class GetPlugin implements PipeTransform\n{\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Gets instance of select plugin from another plugin instance\n * @param plugin - Plugin instance from which plugin should be retrieved\n * @param pluginType - Name of plugin to be retrieved\n */\n public transform(plugin: SelectPlugin, pluginType: 'Interactions'): Interactions;\n public transform(plugin: SelectPlugin, pluginType: 'KeyboardHandler'): KeyboardHandler;\n public transform(plugin: SelectPlugin, pluginType: 'LiveSearch'): LiveSearch;\n public transform(plugin: SelectPlugin, pluginType: 'NormalState'): NormalState;\n public transform(plugin: SelectPlugin, pluginType: 'OptionsHandler'): OptionsHandler;\n public transform(plugin: SelectPlugin, pluginType: 'Popup'): Popup;\n public transform(plugin: SelectPlugin, pluginType: 'Positioner'): Positioner;\n public transform(plugin: SelectPlugin, pluginType: 'ReadonlyState'): ReadonlyState;\n public transform(plugin: SelectPlugin, pluginType: 'ValueHandler'): ValueHandler;\n public transform<PluginInstance extends SelectPlugin>(plugin: SelectPlugin, pluginType: keyof typeof SelectPluginType): PluginInstance\n {\n return plugin.selectPlugins[pluginType] as PluginInstance;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"getPlugin.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/getPlugin/getPlugin.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAC;;AAKlD;;GAEG;AAEH,MAAM,OAAO,SAAS;IAkBX,SAAS,CAAsC,MAAoB,EAAE,UAAyC;QAEjH,OAAO,MAAM,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC;IAC9D,CAAC;8GArBQ,SAAS;4GAAT,SAAS;;2FAAT,SAAS;kBADrB,IAAI;mBAAC,EAAC,IAAI,EAAE,WAAW,EAAC","sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\r\n\r\nimport {SelectPluginType} from '../../misc/enums';\r\nimport {Interactions, KeyboardHandler, LiveSearch, NormalState, OptionsHandler, Popup, Positioner, ReadonlyState, ValueHandler, SelectPlugin} from '../../interfaces';\r\n\r\n/**\r\n * Gets instance of select plugin from another plugin instance\r\n */\r\n@Pipe({name: 'getPlugin'})\r\nexport class GetPlugin implements PipeTransform\r\n{\r\n //######################### public methods - implementation of PipeTransform #########################\r\n\r\n /**\r\n * Gets instance of select plugin from another plugin instance\r\n * @param plugin - Plugin instance from which plugin should be retrieved\r\n * @param pluginType - Name of plugin to be retrieved\r\n */\r\n public transform(plugin: SelectPlugin, pluginType: 'Interactions'): Interactions;\r\n public transform(plugin: SelectPlugin, pluginType: 'KeyboardHandler'): KeyboardHandler;\r\n public transform(plugin: SelectPlugin, pluginType: 'LiveSearch'): LiveSearch;\r\n public transform(plugin: SelectPlugin, pluginType: 'NormalState'): NormalState;\r\n public transform(plugin: SelectPlugin, pluginType: 'OptionsHandler'): OptionsHandler;\r\n public transform(plugin: SelectPlugin, pluginType: 'Popup'): Popup;\r\n public transform(plugin: SelectPlugin, pluginType: 'Positioner'): Positioner;\r\n public transform(plugin: SelectPlugin, pluginType: 'ReadonlyState'): ReadonlyState;\r\n public transform(plugin: SelectPlugin, pluginType: 'ValueHandler'): ValueHandler;\r\n public transform<PluginInstance extends SelectPlugin>(plugin: SelectPlugin, pluginType: keyof typeof SelectPluginType): PluginInstance\r\n {\r\n return plugin.selectPlugins[pluginType] as PluginInstance;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupedListOptions.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/groupedListOptions/groupedListOptions.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAC;;AAIlD;;GAEG;AAEH,MAAM,OAAO,kBAAkB;IAE3B;;;OAGG;IACI,SAAS,CAAS,KAA0D;QAE/E,IAAG,CAAC,KAAK,EAAE,MAAM,EACjB,CAAC;YACG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAA4D,EAAE,CAAC;QAC3E,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAI,MAAM,MAAM,IAAI,KAAK,EACzB,CAAC;YACG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAE7B,IAAG,KAAK,EACR,CAAC;gBACG,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;YAEvB,WAAW;YACX,IAAG,CAAC,MAAM,CAAC,MAAM,EACjB,CAAC;gBACG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3C,CAAC;iBAED,CAAC;gBACG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEvC,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EACpB,CAAC;oBACG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;qBAED,CAAC;oBACG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;8GAhDQ,kBAAkB;4GAAlB,kBAAkB;;2FAAlB,kBAAkB;kBAD9B,IAAI;mBAAC,EAAC,IAAI,EAAE,oBAAoB,EAAC","sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\n\nimport {SelectOptionGroup, SelectOptionState} from '../../interfaces';\n\n/**\n * Gets list of options grouped\n */\n@Pipe({name: 'groupedListOptions'})\nexport class GroupedListOptions implements PipeTransform\n{\n /**\n * Gets list of options grouped\n * @param value - Obtains tuple with options and their corresponding groups\n */\n public transform<TValue>(value: readonly SelectOptionState<TValue>[]|null|undefined): [[readonly SelectOptionState<TValue>[], SelectOptionGroup|null][], number]\n {\n if(!value?.length)\n {\n return [[], 0];\n }\n\n const result: [SelectOptionState<TValue>[], SelectOptionGroup|null][] = [];\n let index = 0;\n\n for(const option of value)\n {\n const group = option.group();\n\n if(group)\n {\n group.index = index++;\n }\n\n option.index = index++;\n\n //first one\n if(!result.length)\n {\n result.push([[option], group ?? null]);\n }\n else\n {\n const last = result[result.length - 1];\n\n if(last[1] === group)\n {\n last[0].push(option);\n }\n else\n {\n result.push([[option], group ?? null]);\n }\n }\n }\n\n return [result, index];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"groupedListOptions.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/groupedListOptions/groupedListOptions.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAC;;AAIlD;;GAEG;AAEH,MAAM,OAAO,kBAAkB;IAE3B;;;OAGG;IACI,SAAS,CAAS,KAA0D;QAE/E,IAAG,CAAC,KAAK,EAAE,MAAM,EACjB,CAAC;YACG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAA4D,EAAE,CAAC;QAC3E,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAI,MAAM,MAAM,IAAI,KAAK,EACzB,CAAC;YACG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAE7B,IAAG,KAAK,EACR,CAAC;gBACG,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;YAEvB,WAAW;YACX,IAAG,CAAC,MAAM,CAAC,MAAM,EACjB,CAAC;gBACG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;YAC3C,CAAC;iBAED,CAAC;gBACG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEvC,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EACpB,CAAC;oBACG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;qBAED,CAAC;oBACG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;8GAhDQ,kBAAkB;4GAAlB,kBAAkB;;2FAAlB,kBAAkB;kBAD9B,IAAI;mBAAC,EAAC,IAAI,EAAE,oBAAoB,EAAC","sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\r\n\r\nimport {SelectOptionGroup, SelectOptionState} from '../../interfaces';\r\n\r\n/**\r\n * Gets list of options grouped\r\n */\r\n@Pipe({name: 'groupedListOptions'})\r\nexport class GroupedListOptions implements PipeTransform\r\n{\r\n /**\r\n * Gets list of options grouped\r\n * @param value - Obtains tuple with options and their corresponding groups\r\n */\r\n public transform<TValue>(value: readonly SelectOptionState<TValue>[]|null|undefined): [[readonly SelectOptionState<TValue>[], SelectOptionGroup|null][], number]\r\n {\r\n if(!value?.length)\r\n {\r\n return [[], 0];\r\n }\r\n\r\n const result: [SelectOptionState<TValue>[], SelectOptionGroup|null][] = [];\r\n let index = 0;\r\n\r\n for(const option of value)\r\n {\r\n const group = option.group();\r\n\r\n if(group)\r\n {\r\n group.index = index++;\r\n }\r\n\r\n option.index = index++;\r\n\r\n //first one\r\n if(!result.length)\r\n {\r\n result.push([[option], group ?? null]);\r\n }\r\n else\r\n {\r\n const last = result[result.length - 1];\r\n\r\n if(last[1] === group)\r\n {\r\n last[0].push(option);\r\n }\r\n else\r\n {\r\n result.push([[option], group ?? null]);\r\n }\r\n }\r\n }\r\n\r\n return [result, index];\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/hasValue/hasValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;;AAE1C;;GAEG;AAEH,MAAM,OAAO,QAAQ;IAEjB;;;OAGG;IACI,SAAS,CAAS,KAA2E;QAEhG,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;8GATQ,QAAQ;4GAAR,QAAQ;;2FAAR,QAAQ;kBADpB,IAAI;mBAAC,EAAC,IAAI,EAAE,UAAU,EAAC","sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\n\nimport {SelectOptionState} from '../../interfaces';\nimport {hasValue} from '../../misc/utils';\n\n/**\n * Gets information whether is there any value selected\n */\n@Pipe({name: 'hasValue'})\nexport class HasValue implements PipeTransform\n{\n /**\n * Gets information whether is there any value selected\n * @param value - The value or values to check\n */\n public transform<TValue>(value: SelectOptionState<TValue>|SelectOptionState<TValue>[]|undefined|null): boolean\n {\n return hasValue(value);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"hasValue.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/hasValue/hasValue.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;;AAE1C;;GAEG;AAEH,MAAM,OAAO,QAAQ;IAEjB;;;OAGG;IACI,SAAS,CAAS,KAA2E;QAEhG,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;8GATQ,QAAQ;4GAAR,QAAQ;;2FAAR,QAAQ;kBADpB,IAAI;mBAAC,EAAC,IAAI,EAAE,UAAU,EAAC","sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\r\n\r\nimport {SelectOptionState} from '../../interfaces';\r\nimport {hasValue} from '../../misc/utils';\r\n\r\n/**\r\n * Gets information whether is there any value selected\r\n */\r\n@Pipe({name: 'hasValue'})\r\nexport class HasValue implements PipeTransform\r\n{\r\n /**\r\n * Gets information whether is there any value selected\r\n * @param value - The value or values to check\r\n */\r\n public transform<TValue>(value: SelectOptionState<TValue>|SelectOptionState<TValue>[]|undefined|null): boolean\r\n {\r\n return hasValue(value);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC","sourcesContent":["export * from './addNewOption/addNewOption.pipe';\nexport * from './displayOptionValue/displayOptionValue.pipe';\nexport * from './displayValue/displayValue.pipe';\nexport * from './getPlugin/getPlugin.pipe';\nexport * from './groupedListOptions/groupedListOptions.pipe';\nexport * from './hasValue/hasValue.pipe';\nexport * from './optionCssClasses/optionCssClasses.pipe';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pipes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC","sourcesContent":["export * from './addNewOption/addNewOption.pipe';\r\nexport * from './displayOptionValue/displayOptionValue.pipe';\r\nexport * from './displayValue/displayValue.pipe';\r\nexport * from './getPlugin/getPlugin.pipe';\r\nexport * from './groupedListOptions/groupedListOptions.pipe';\r\nexport * from './hasValue/hasValue.pipe';\r\nexport * from './optionCssClasses/optionCssClasses.pipe';\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optionCssClasses.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/optionCssClasses/optionCssClasses.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAC;;AAIlD;;GAEG;AAEH,MAAM,OAAO,gBAAgB;IAEzB,sGAAsG;IAEtG;;;;;OAKG;IACI,SAAS,CAAS,KAAgC,EAAE,UAAiC,EAAE,KAA6B;QAEvH,OAAO,CAAC,UAAU,CAAC,MAAM;YACrB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YAChD,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5C,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;SACvC,CAAC;IACN,CAAC;8GAjBQ,gBAAgB;4GAAhB,gBAAgB;;2FAAhB,gBAAgB;kBAD5B,IAAI;mBAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\n\nimport {SelectOptionGroup, SelectOptionState, SimplePopupCssClasses} from '../../interfaces';\n\n/**\n * Obtains css classes for popup option\n */\n@Pipe({name: 'optionCssClasses', pure: false})\nexport class OptionCssClasses implements PipeTransform\n{\n //######################### public methods - implementation of PipeTransform #########################\n\n /**\n * Obtains css classes for popup option\n * @param value - Instance of option\n * @param cssClasses - Css classes for simple popup\n * @param group - Option group name\n */\n public transform<TValue>(value: SelectOptionState<TValue>, cssClasses: SimplePopupCssClasses, group: SelectOptionGroup|null): string[]\n {\n return [cssClasses.option,\n ...value.selected() ? [cssClasses.selected] : [],\n ...value.active() ? [cssClasses.active] : [],\n ...group ? [cssClasses.inGroup] : [],\n ];\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"optionCssClasses.pipe.js","sourceRoot":"","sources":["../../../../src/pipes/optionCssClasses/optionCssClasses.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAgB,MAAM,eAAe,CAAC;;AAIlD;;GAEG;AAEH,MAAM,OAAO,gBAAgB;IAEzB,sGAAsG;IAEtG;;;;;OAKG;IACI,SAAS,CAAS,KAAgC,EAAE,UAAiC,EAAE,KAA6B;QAEvH,OAAO,CAAC,UAAU,CAAC,MAAM;YACrB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YAChD,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5C,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;SACvC,CAAC;IACN,CAAC;8GAjBQ,gBAAgB;4GAAhB,gBAAgB;;2FAAhB,gBAAgB;kBAD5B,IAAI;mBAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAC","sourcesContent":["import {Pipe, PipeTransform} from '@angular/core';\r\n\r\nimport {SelectOptionGroup, SelectOptionState, SimplePopupCssClasses} from '../../interfaces';\r\n\r\n/**\r\n * Obtains css classes for popup option\r\n */\r\n@Pipe({name: 'optionCssClasses', pure: false})\r\nexport class OptionCssClasses implements PipeTransform\r\n{\r\n //######################### public methods - implementation of PipeTransform #########################\r\n\r\n /**\r\n * Obtains css classes for popup option\r\n * @param value - Instance of option\r\n * @param cssClasses - Css classes for simple popup\r\n * @param group - Option group name\r\n */\r\n public transform<TValue>(value: SelectOptionState<TValue>, cssClasses: SimplePopupCssClasses, group: SelectOptionGroup|null): string[]\r\n {\r\n return [cssClasses.option,\r\n ...value.selected() ? [cssClasses.selected] : [],\r\n ...value.active() ? [cssClasses.active] : [],\r\n ...group ? [cssClasses.inGroup] : [],\r\n ];\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,mCAAmC;AACnC,cAAc,gBAAgB,CAAC","sourcesContent":["export * from './interactions';\nexport * from './keyboardHandler';\nexport * from './liveSearch';\nexport * from './normalState';\nexport * from './optionsHandler';\nexport * from './popup';\nexport * from './positioner';\n// export * from './readonlyState';\nexport * from './valueHandler';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,mCAAmC;AACnC,cAAc,gBAAgB,CAAC","sourcesContent":["export * from './interactions';\r\nexport * from './keyboardHandler';\r\nexport * from './liveSearch';\r\nexport * from './normalState';\r\nexport * from './optionsHandler';\r\nexport * from './popup';\r\nexport * from './positioner';\r\n// export * from './readonlyState';\r\nexport * from './valueHandler';\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/interactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC","sourcesContent":["export * from './simpleInteractions/simpleInteractions.component';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/interactions/index.ts"],"names":[],"mappings":"AAAA,cAAc,mDAAmD,CAAC","sourcesContent":["export * from './simpleInteractions/simpleInteractions.component';\r\n"]}
|
package/es2022/src/plugins/interactions/simpleInteractions/simpleInteractions.component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleInteractions.component.js","sourceRoot":"","sources":["../../../../../src/plugins/interactions/simpleInteractions/simpleInteractions.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectionStrategy, Component, DOCUMENT, effect, ElementRef, Inject, inject, OnDestroy, Optional} from '@angular/core';\nimport {NoopAction, RecursivePartial} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\nimport {Subscription} from 'rxjs';\n\nimport {Interactions, InteractionsOptions, SelectFirstKeyboardAction, SelectOptionState, SelectPlugin} from '../../../interfaces';\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\nimport {CopyOptionsAsSignal} from '../../../decorators';\nimport {INTERACTIONS_OPTIONS} from '../../../misc/tokens';\nimport {handleClickOutside, selectOption, togglePopup} from '../../../misc/utils';\nimport {SimpleKeyboardActionTypes} from '../../../misc/types';\n\nconst defaultOptions: InteractionsOptions =\n{\n handleClickOutside: true,\n};\n\n/**\n * Provides simple interactions within select among plugins\n */\n@Component(\n{\n selector: 'simple-interactions',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SimpleInteractions<TValue = unknown, TPublicValue = TValue> implements Interactions<TValue, TPublicValue, InteractionsOptions, SimpleKeyboardActionTypes>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Subscription for all events in select bus\n */\n protected initSubscriptions: Subscription = new Subscription();\n\n /**\n * Instance of HTML document\n */\n protected document: Document = inject(DOCUMENT);\n\n /**\n * Method used for unregistering click outside handler\n */\n protected clickOutsideUnregister: NoopAction|undefined|null;\n\n //######################### public properties - implementation of SelectPlugin #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public options: InteractionsOptions;\n\n /**\n * @inheritdoc\n */\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\n\n /**\n * @inheritdoc\n */\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * @inheritdoc\n */\n public selectBus: SelectBus<TValue, TPublicValue, SimpleKeyboardActionTypes> = inject(SelectBus) as SelectBus<TValue, TPublicValue, SimpleKeyboardActionTypes>;\n\n //######################### constructor #########################\n constructor(@Inject(INTERACTIONS_OPTIONS) @Optional() options?: RecursivePartial<InteractionsOptions>|null,)\n {\n this.options = deepCopyWithArrayOverride(defaultOptions as InteractionsOptions,\n options);\n\n this.initSubscriptions.add(this.selectBus.click.subscribe(() => togglePopup(this.selectBus)));\n this.initSubscriptions.add(this.selectBus.optionActivate.subscribe(event => selectOption(this.selectBus, event.data)));\n this.initSubscriptions.add(this.selectBus.internalsFocus.subscribe(() => this.selectBus.hasFocus.set(true)));\n this.initSubscriptions.add(this.selectBus.internalsBlur.subscribe(() => this.selectBus.hasFocus.set(false)));\n this.initSubscriptions.add(this.selectBus.focusSet.subscribe(() =>\n {\n this.selectPlugins.normalState()?.focus();\n this.selectPlugins.liveSearch()?.focus();\n }));\n\n effect(() =>\n {\n const hasFocus = this.selectBus.hasFocusComputed();\n\n if(!hasFocus)\n {\n this.selectBus.blur.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.pluginElement.nativeElement,\n data: null,\n });\n }\n else\n {\n this.selectBus.focus.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.pluginElement.nativeElement,\n data: null,\n });\n }\n });\n\n effect(() =>\n {\n if(!this.options.handleClickOutside)\n {\n return;\n }\n\n const popupVisible = this.selectBus.popupVisible();\n\n this.clickOutsideUnregister?.();\n\n if(popupVisible)\n {\n this.clickOutsideUnregister = handleClickOutside(this.document, this.selectBus, this.selectPlugins);\n }\n else\n {\n this.clickOutsideUnregister = null;\n }\n });\n\n effect(() =>\n {\n const optionsHandler = this.selectPlugins.optionsHandler();\n const listOptions = optionsHandler?.listOptions();\n const availableOptions = optionsHandler?.availableOptions();\n const activeOption = listOptions?.find(itm => itm.active());\n\n if(!activeOption)\n {\n availableOptions?.forEach(itm => itm.active.set(false));\n listOptions?.[0]?.active.set(true);\n }\n });\n\n this.initSubscriptions.add(this.selectBus.showPopup.subscribe(() => this.selectBus.popupVisible.set(true)));\n this.initSubscriptions.add(this.selectBus.hidePopup.subscribe(() => this.selectBus.popupVisible.set(false)));\n this.initSubscriptions.add(this.selectBus.markOption.subscribe(event =>\n {\n this.selectBus.popupVisible.set(true);\n const options = this.selectPlugins.OptionsHandler.listOptions();\n const activeOption = options?.find(itm => itm.active());\n\n activeOption?.active.set(false);\n event.data?.active.set(true);\n }));\n\n this.initSubscriptions.add((this.selectBus.keyboardAction).subscribe(event =>\n {\n switch(event.data?.type)\n {\n case 'SELECT_ACTIVE':\n {\n const options = this.selectPlugins.OptionsHandler.listOptions();\n const activeOption = options?.find(itm => itm.active()) as SelectOptionState<TValue>|undefined;\n\n selectOption(this.selectBus, activeOption);\n\n const actOption = options?.find(itm => itm.active());\n\n if(!actOption)\n {\n activeOption?.active.set(false);\n }\n\n break;\n }\n case 'SELECT_FIRST':\n {\n const options = this.selectPlugins.OptionsHandler.listOptions() as SelectOptionState<TValue>[]|null|undefined;\n const e = event.data as SelectFirstKeyboardAction;\n const textExtractor = this.selectBus.selectOptions().textExtractor;\n const normalize = this.selectBus.selectOptions().normalize;\n\n const foundOption = options?.find(itm => normalize(textExtractor(itm)).startsWith(e.search)) as SelectOptionState<TValue>|undefined;\n\n if(foundOption)\n {\n selectOption(this.selectBus, foundOption);\n\n const actOption = options?.find(itm => itm.active());\n\n if(!actOption)\n {\n foundOption.active.set(false);\n }\n }\n\n break;\n }\n case 'REMOVE_LAST_SELECTED_VALUE':\n {\n if(this.selectBus.selectOptions().multiple)\n {\n const selectedOptions = this.selectBus.selectedOptions();\n\n if(!Array.isArray(selectedOptions))\n {\n this.selectBus.selectedOptions.set(null);\n }\n else\n {\n const [removedOption] = selectedOptions.splice(selectedOptions.length - 1, 1);\n\n if(removedOption)\n {\n this.selectBus.selectedOptions.set([...selectedOptions]);\n removedOption.selected.set(false);\n }\n }\n }\n else\n {\n const selected = this.selectBus.selectedOptions();\n\n if(!Array.isArray(selected))\n {\n selected?.selected.set(false);\n }\n\n this.selectBus.selectedOptions.set(null);\n }\n\n break;\n }\n }\n }));\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy(): void\n {\n this.clickOutsideUnregister?.();\n this.initSubscriptions.unsubscribe();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"simpleInteractions.component.js","sourceRoot":"","sources":["../../../../../src/plugins/interactions/simpleInteractions/simpleInteractions.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {ChangeDetectionStrategy, Component, DOCUMENT, effect, ElementRef, Inject, inject, OnDestroy, Optional} from '@angular/core';\r\nimport {NoopAction, RecursivePartial} from '@jscrpt/common';\r\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\r\nimport {Subscription} from 'rxjs';\r\n\r\nimport {Interactions, InteractionsOptions, SelectFirstKeyboardAction, SelectOptionState, SelectPlugin} from '../../../interfaces';\r\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\r\nimport {CopyOptionsAsSignal} from '../../../decorators';\r\nimport {INTERACTIONS_OPTIONS} from '../../../misc/tokens';\r\nimport {handleClickOutside, selectOption, togglePopup} from '../../../misc/utils';\r\nimport {SimpleKeyboardActionTypes} from '../../../misc/types';\r\n\r\nconst defaultOptions: InteractionsOptions =\r\n{\r\n handleClickOutside: true,\r\n};\r\n\r\n/**\r\n * Provides simple interactions within select among plugins\r\n */\r\n@Component(\r\n{\r\n selector: 'simple-interactions',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleInteractions<TValue = unknown, TPublicValue = TValue> implements Interactions<TValue, TPublicValue, InteractionsOptions, SimpleKeyboardActionTypes>, OnDestroy\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Subscription for all events in select bus\r\n */\r\n protected initSubscriptions: Subscription = new Subscription();\r\n\r\n /**\r\n * Instance of HTML document\r\n */\r\n protected document: Document = inject(DOCUMENT);\r\n\r\n /**\r\n * Method used for unregistering click outside handler\r\n */\r\n protected clickOutsideUnregister: NoopAction|undefined|null;\r\n\r\n //######################### public properties - implementation of SelectPlugin #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n @CopyOptionsAsSignal()\r\n public options: InteractionsOptions;\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public selectBus: SelectBus<TValue, TPublicValue, SimpleKeyboardActionTypes> = inject(SelectBus) as SelectBus<TValue, TPublicValue, SimpleKeyboardActionTypes>;\r\n\r\n //######################### constructor #########################\r\n constructor(@Inject(INTERACTIONS_OPTIONS) @Optional() options?: RecursivePartial<InteractionsOptions>|null,)\r\n {\r\n this.options = deepCopyWithArrayOverride(defaultOptions as InteractionsOptions,\r\n options);\r\n\r\n this.initSubscriptions.add(this.selectBus.click.subscribe(() => togglePopup(this.selectBus)));\r\n this.initSubscriptions.add(this.selectBus.optionActivate.subscribe(event => selectOption(this.selectBus, event.data)));\r\n this.initSubscriptions.add(this.selectBus.internalsFocus.subscribe(() => this.selectBus.hasFocus.set(true)));\r\n this.initSubscriptions.add(this.selectBus.internalsBlur.subscribe(() => this.selectBus.hasFocus.set(false)));\r\n this.initSubscriptions.add(this.selectBus.focusSet.subscribe(() =>\r\n {\r\n this.selectPlugins.normalState()?.focus();\r\n this.selectPlugins.liveSearch()?.focus();\r\n }));\r\n\r\n effect(() =>\r\n {\r\n const hasFocus = this.selectBus.hasFocusComputed();\r\n\r\n if(!hasFocus)\r\n {\r\n this.selectBus.blur.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.pluginElement.nativeElement,\r\n data: null,\r\n });\r\n }\r\n else\r\n {\r\n this.selectBus.focus.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.pluginElement.nativeElement,\r\n data: null,\r\n });\r\n }\r\n });\r\n\r\n effect(() =>\r\n {\r\n if(!this.options.handleClickOutside)\r\n {\r\n return;\r\n }\r\n\r\n const popupVisible = this.selectBus.popupVisible();\r\n\r\n this.clickOutsideUnregister?.();\r\n\r\n if(popupVisible)\r\n {\r\n this.clickOutsideUnregister = handleClickOutside(this.document, this.selectBus, this.selectPlugins);\r\n }\r\n else\r\n {\r\n this.clickOutsideUnregister = null;\r\n }\r\n });\r\n\r\n effect(() =>\r\n {\r\n const optionsHandler = this.selectPlugins.optionsHandler();\r\n const listOptions = optionsHandler?.listOptions();\r\n const availableOptions = optionsHandler?.availableOptions();\r\n const activeOption = listOptions?.find(itm => itm.active());\r\n\r\n if(!activeOption)\r\n {\r\n availableOptions?.forEach(itm => itm.active.set(false));\r\n listOptions?.[0]?.active.set(true);\r\n }\r\n });\r\n\r\n this.initSubscriptions.add(this.selectBus.showPopup.subscribe(() => this.selectBus.popupVisible.set(true)));\r\n this.initSubscriptions.add(this.selectBus.hidePopup.subscribe(() => this.selectBus.popupVisible.set(false)));\r\n this.initSubscriptions.add(this.selectBus.markOption.subscribe(event =>\r\n {\r\n this.selectBus.popupVisible.set(true);\r\n const options = this.selectPlugins.OptionsHandler.listOptions();\r\n const activeOption = options?.find(itm => itm.active());\r\n\r\n activeOption?.active.set(false);\r\n event.data?.active.set(true);\r\n }));\r\n\r\n this.initSubscriptions.add((this.selectBus.keyboardAction).subscribe(event =>\r\n {\r\n switch(event.data?.type)\r\n {\r\n case 'SELECT_ACTIVE':\r\n {\r\n const options = this.selectPlugins.OptionsHandler.listOptions();\r\n const activeOption = options?.find(itm => itm.active()) as SelectOptionState<TValue>|undefined;\r\n\r\n selectOption(this.selectBus, activeOption);\r\n\r\n const actOption = options?.find(itm => itm.active());\r\n\r\n if(!actOption)\r\n {\r\n activeOption?.active.set(false);\r\n }\r\n\r\n break;\r\n }\r\n case 'SELECT_FIRST':\r\n {\r\n const options = this.selectPlugins.OptionsHandler.listOptions() as SelectOptionState<TValue>[]|null|undefined;\r\n const e = event.data as SelectFirstKeyboardAction;\r\n const textExtractor = this.selectBus.selectOptions().textExtractor;\r\n const normalize = this.selectBus.selectOptions().normalize;\r\n\r\n const foundOption = options?.find(itm => normalize(textExtractor(itm)).startsWith(e.search)) as SelectOptionState<TValue>|undefined;\r\n\r\n if(foundOption)\r\n {\r\n selectOption(this.selectBus, foundOption);\r\n\r\n const actOption = options?.find(itm => itm.active());\r\n\r\n if(!actOption)\r\n {\r\n foundOption.active.set(false);\r\n }\r\n }\r\n\r\n break;\r\n }\r\n case 'REMOVE_LAST_SELECTED_VALUE':\r\n {\r\n if(this.selectBus.selectOptions().multiple)\r\n {\r\n const selectedOptions = this.selectBus.selectedOptions();\r\n\r\n if(!Array.isArray(selectedOptions))\r\n {\r\n this.selectBus.selectedOptions.set(null);\r\n }\r\n else\r\n {\r\n const [removedOption] = selectedOptions.splice(selectedOptions.length - 1, 1);\r\n\r\n if(removedOption)\r\n {\r\n this.selectBus.selectedOptions.set([...selectedOptions]);\r\n removedOption.selected.set(false);\r\n }\r\n }\r\n }\r\n else\r\n {\r\n const selected = this.selectBus.selectedOptions();\r\n\r\n if(!Array.isArray(selected))\r\n {\r\n selected?.selected.set(false);\r\n }\r\n\r\n this.selectBus.selectedOptions.set(null);\r\n }\r\n\r\n break;\r\n }\r\n }\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.clickOutsideUnregister?.();\r\n this.initSubscriptions.unsubscribe();\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/keyboardHandler/index.ts"],"names":[],"mappings":"AAAA,cAAc,yDAAyD,CAAC","sourcesContent":["export * from './simpleKeyboardHandler/simpleKeyboardHandler.component';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/keyboardHandler/index.ts"],"names":[],"mappings":"AAAA,cAAc,yDAAyD,CAAC","sourcesContent":["export * from './simpleKeyboardHandler/simpleKeyboardHandler.component';\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleKeyboardHandler.component.js","sourceRoot":"","sources":["../../../../../src/plugins/keyboardHandler/simpleKeyboardHandler/simpleKeyboardHandler.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {Component, effect, ElementRef, Inject, inject, OnDestroy, Optional} from '@angular/core';\nimport {LOGGER, Logger} from '@anglr/common';\nimport {BindThis, isPresent, RecursivePartial} from '@jscrpt/common';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\n\nimport {KeyboardHandler, SimpleKeyboardHandlerOptions, SelectFirstKeyboardAction, SelectPlugin, SelectActiveKeyboardAction, RemoveLastSelectedValueKeyboardAction} from '../../../interfaces';\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\nimport {CopyOptionsAsSignal} from '../../../decorators';\nimport {KEYBOARD_HANDLER_OPTIONS} from '../../../misc/tokens';\nimport {SimpleKeyboardActionTypes} from '../../../misc/types';\n\nconst defaultOptions: SimpleKeyboardHandlerOptions =\n{\n selectFirstDebounceTimeout: 300,\n alphanumericSearch: true,\n liveSearchEvents: false,\n};\n\n/**\n * Simple keyboard handler, handling basic keyboard actions\n */\n@Component(\n{\n selector: 'simple-keyboard-handler',\n template: '',\n})\nexport class SimpleKeyboardHandler<TValue = unknown, TPublicValue = TValue> implements KeyboardHandler<TValue, TPublicValue, SimpleKeyboardHandlerOptions, SimpleKeyboardActionTypes>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Searched text\n */\n protected search: string = '';\n\n /**\n * Debounce timeout for search\n */\n protected searchDebounceTimeout: number|undefined|null;\n\n /**\n * Instance of logger for logging purposes\n */\n protected logger: Logger = inject(LOGGER);\n\n //######################### public properties - implementation of SelectPlugin #########################\n\n /**\n * @inheritdoc\n */\n @CopyOptionsAsSignal()\n public options: SimpleKeyboardHandlerOptions;\n\n /**\n * @inheritdoc\n */\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\n\n /**\n * @inheritdoc\n */\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * @inheritdoc\n */\n public selectBus: SelectBus<TValue, TPublicValue, SimpleKeyboardActionTypes> = inject(SelectBus) as SelectBus<TValue, TPublicValue, SimpleKeyboardActionTypes>;\n\n //######################### constructor #########################\n constructor(@Inject(KEYBOARD_HANDLER_OPTIONS) @Optional() options?: RecursivePartial<SimpleKeyboardHandlerOptions>|null,)\n {\n this.options = deepCopyWithArrayOverride(defaultOptions as SimpleKeyboardHandlerOptions,\n options);\n\n effect(() =>\n {\n this.logger.verbose('Select: Keyboard handler: registering keyboard \"keydown\" event listener');\n\n this.selectBus.selectElement().nativeElement.removeEventListener('keydown', this.handleKeyboardEvents);\n this.selectBus.selectElement().nativeElement.addEventListener('keydown', this.handleKeyboardEvents);\n });\n\n effect(() =>\n {\n const liveSearch = this.selectPlugins.liveSearch();\n\n if(this.options.liveSearchEvents && liveSearch)\n {\n liveSearch.pluginElement.nativeElement.removeEventListener('keydown', this.handleLiveSearchKeyboardEvents);\n liveSearch.pluginElement.nativeElement.addEventListener('keydown', this.handleLiveSearchKeyboardEvents);\n }\n });\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy(): void\n {\n this.logger.verbose('Select: Keyboard handler: destroying, removing keyboard \"keydown\" event listener, clearing search debounce timeout');\n this.selectBus.selectElement().nativeElement.removeEventListener('keydown', this.handleKeyboardEvents);\n\n if(isPresent(this.searchDebounceTimeout))\n {\n clearTimeout(this.searchDebounceTimeout);\n }\n }\n\n //######################### protected methods #########################\n\n /**\n * Handles live search keyboard events\n * @param event - Keyboard event that occured\n */\n @BindThis\n protected handleLiveSearchKeyboardEvents(event: KeyboardEvent): void\n {\n if(event.key == 'Backspace' && this.selectPlugins.liveSearch()?.emptyInput())\n {\n this.selectBus.keyboardAction.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.selectBus.selectElement().nativeElement,\n data: <RemoveLastSelectedValueKeyboardAction>{type: 'REMOVE_LAST_SELECTED_VALUE'},\n });\n }\n }\n\n /**\n * Handles keyboard events\n * @param event - Keyboard event that occured\n */\n @BindThis\n protected handleKeyboardEvents(event: KeyboardEvent): void\n {\n const options = this.selectPlugins.OptionsHandler.listOptions();\n\n if(event.key == 'ArrowDown' || event.key == 'ArrowUp')\n {\n const activeOption = options?.find(itm => itm.active());\n this.logger.verbose('Select: Keyboard handler: handling ArrowDown, ArrowUp');\n\n if(activeOption && options)\n {\n let index = options.indexOf(activeOption);\n\n //move down cursor\n if(event.key == 'ArrowDown')\n {\n index += 1;\n }\n //move up cursor\n else\n {\n index -= 1;\n }\n\n if(index < 0)\n {\n index = options.length - 1;\n }\n\n index = index % options.length;\n\n this.logger.verbose('Select: Keyboard handler: selecting option with index {{index}}', {index});\n\n this.selectBus.markOption.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.selectBus.selectElement().nativeElement,\n data: options[index],\n });\n }\n //none active before\n else if(options?.length)\n {\n this.logger.verbose('Select: Keyboard handler: selecting option with index {{index}}', {index: 0});\n\n this.selectBus.markOption.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.selectBus.selectElement().nativeElement,\n data: options[0],\n });\n }\n\n event.preventDefault();\n }\n\n //prevent enter if popup is opened\n if(event.key == 'Enter' && this.selectBus.popupVisible())\n {\n const activeOption = options?.find(itm => itm.active());\n this.logger.verbose('Select: Keyboard handler: handling Enter');\n\n if(activeOption)\n {\n this.logger.verbose('Select: Keyboard handler: selecting active option');\n\n this.selectBus.keyboardAction.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.selectBus.selectElement().nativeElement,\n data: <SelectActiveKeyboardAction>{type: 'SELECT_ACTIVE'},\n });\n }\n\n event.preventDefault();\n }\n\n if(event.key == 'Tab' || event.key == 'Escape')\n {\n this.logger.verbose('Select: Keyboard handler: handling Tab, Escape');\n\n this.selectBus.hidePopup.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.selectBus.selectElement().nativeElement,\n data: null,\n });\n }\n\n if(event.key == ' ')\n {\n this.logger.verbose('Select: Keyboard handler: handling Space');\n\n this.selectBus.showPopup.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.selectBus.selectElement().nativeElement,\n data: null,\n });\n\n event.preventDefault();\n }\n\n if(this.options.alphanumericSearch && event.key.match(/^[a-z0-9]$/i))\n {\n this.logger.verbose('Select: Keyboard handler: handling alphanumeric key');\n\n this.search += event.key;\n\n if(isPresent(this.searchDebounceTimeout))\n {\n clearTimeout(this.searchDebounceTimeout);\n }\n\n this.searchDebounceTimeout = setTimeout(() =>\n {\n this.logger.verbose('Select: Keyboard handler: seinding SELECT_FIRST keyboard action with search \"{{search}}\"', {search: this.search});\n\n this.selectBus.keyboardAction.next(\n {\n source: this as SelectPlugin,\n sourceElement: this.selectBus.selectElement().nativeElement,\n data: <SelectFirstKeyboardAction>{type: 'SELECT_FIRST', search: this.search},\n });\n\n this.search = '';\n }, this.options.selectFirstDebounceTimeout) as unknown as number;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"simpleKeyboardHandler.component.js","sourceRoot":"","sources":["../../../../../src/plugins/keyboardHandler/simpleKeyboardHandler/simpleKeyboardHandler.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {Component, effect, ElementRef, Inject, inject, OnDestroy, Optional} from '@angular/core';\r\nimport {LOGGER, Logger} from '@anglr/common';\r\nimport {BindThis, isPresent, RecursivePartial} from '@jscrpt/common';\r\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\r\n\r\nimport {KeyboardHandler, SimpleKeyboardHandlerOptions, SelectFirstKeyboardAction, SelectPlugin, SelectActiveKeyboardAction, RemoveLastSelectedValueKeyboardAction} from '../../../interfaces';\r\nimport {SelectPluginInstances, SelectBus} from '../../../misc/classes';\r\nimport {CopyOptionsAsSignal} from '../../../decorators';\r\nimport {KEYBOARD_HANDLER_OPTIONS} from '../../../misc/tokens';\r\nimport {SimpleKeyboardActionTypes} from '../../../misc/types';\r\n\r\nconst defaultOptions: SimpleKeyboardHandlerOptions =\r\n{\r\n selectFirstDebounceTimeout: 300,\r\n alphanumericSearch: true,\r\n liveSearchEvents: false,\r\n};\r\n\r\n/**\r\n * Simple keyboard handler, handling basic keyboard actions\r\n */\r\n@Component(\r\n{\r\n selector: 'simple-keyboard-handler',\r\n template: '',\r\n})\r\nexport class SimpleKeyboardHandler<TValue = unknown, TPublicValue = TValue> implements KeyboardHandler<TValue, TPublicValue, SimpleKeyboardHandlerOptions, SimpleKeyboardActionTypes>, OnDestroy\r\n{\r\n //######################### protected fields #########################\r\n\r\n /**\r\n * Searched text\r\n */\r\n protected search: string = '';\r\n\r\n /**\r\n * Debounce timeout for search\r\n */\r\n protected searchDebounceTimeout: number|undefined|null;\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 //######################### public properties - implementation of SelectPlugin #########################\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n @CopyOptionsAsSignal()\r\n public options: SimpleKeyboardHandlerOptions;\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public selectPlugins: SelectPluginInstances<TValue, TPublicValue> = inject(SelectPluginInstances);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public pluginElement: ElementRef<HTMLElement> = inject(ElementRef);\r\n\r\n /**\r\n * @inheritdoc\r\n */\r\n public selectBus: SelectBus<TValue, TPublicValue, SimpleKeyboardActionTypes> = inject(SelectBus) as SelectBus<TValue, TPublicValue, SimpleKeyboardActionTypes>;\r\n\r\n //######################### constructor #########################\r\n constructor(@Inject(KEYBOARD_HANDLER_OPTIONS) @Optional() options?: RecursivePartial<SimpleKeyboardHandlerOptions>|null,)\r\n {\r\n this.options = deepCopyWithArrayOverride(defaultOptions as SimpleKeyboardHandlerOptions,\r\n options);\r\n\r\n effect(() =>\r\n {\r\n this.logger.verbose('Select: Keyboard handler: registering keyboard \"keydown\" event listener');\r\n\r\n this.selectBus.selectElement().nativeElement.removeEventListener('keydown', this.handleKeyboardEvents);\r\n this.selectBus.selectElement().nativeElement.addEventListener('keydown', this.handleKeyboardEvents);\r\n });\r\n\r\n effect(() =>\r\n {\r\n const liveSearch = this.selectPlugins.liveSearch();\r\n\r\n if(this.options.liveSearchEvents && liveSearch)\r\n {\r\n liveSearch.pluginElement.nativeElement.removeEventListener('keydown', this.handleLiveSearchKeyboardEvents);\r\n liveSearch.pluginElement.nativeElement.addEventListener('keydown', this.handleLiveSearchKeyboardEvents);\r\n }\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.logger.verbose('Select: Keyboard handler: destroying, removing keyboard \"keydown\" event listener, clearing search debounce timeout');\r\n this.selectBus.selectElement().nativeElement.removeEventListener('keydown', this.handleKeyboardEvents);\r\n\r\n if(isPresent(this.searchDebounceTimeout))\r\n {\r\n clearTimeout(this.searchDebounceTimeout);\r\n }\r\n }\r\n\r\n //######################### protected methods #########################\r\n\r\n /**\r\n * Handles live search keyboard events\r\n * @param event - Keyboard event that occured\r\n */\r\n @BindThis\r\n protected handleLiveSearchKeyboardEvents(event: KeyboardEvent): void\r\n {\r\n if(event.key == 'Backspace' && this.selectPlugins.liveSearch()?.emptyInput())\r\n {\r\n this.selectBus.keyboardAction.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.selectBus.selectElement().nativeElement,\r\n data: <RemoveLastSelectedValueKeyboardAction>{type: 'REMOVE_LAST_SELECTED_VALUE'},\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Handles keyboard events\r\n * @param event - Keyboard event that occured\r\n */\r\n @BindThis\r\n protected handleKeyboardEvents(event: KeyboardEvent): void\r\n {\r\n const options = this.selectPlugins.OptionsHandler.listOptions();\r\n\r\n if(event.key == 'ArrowDown' || event.key == 'ArrowUp')\r\n {\r\n const activeOption = options?.find(itm => itm.active());\r\n this.logger.verbose('Select: Keyboard handler: handling ArrowDown, ArrowUp');\r\n\r\n if(activeOption && options)\r\n {\r\n let index = options.indexOf(activeOption);\r\n\r\n //move down cursor\r\n if(event.key == 'ArrowDown')\r\n {\r\n index += 1;\r\n }\r\n //move up cursor\r\n else\r\n {\r\n index -= 1;\r\n }\r\n\r\n if(index < 0)\r\n {\r\n index = options.length - 1;\r\n }\r\n\r\n index = index % options.length;\r\n\r\n this.logger.verbose('Select: Keyboard handler: selecting option with index {{index}}', {index});\r\n\r\n this.selectBus.markOption.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.selectBus.selectElement().nativeElement,\r\n data: options[index],\r\n });\r\n }\r\n //none active before\r\n else if(options?.length)\r\n {\r\n this.logger.verbose('Select: Keyboard handler: selecting option with index {{index}}', {index: 0});\r\n\r\n this.selectBus.markOption.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.selectBus.selectElement().nativeElement,\r\n data: options[0],\r\n });\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n //prevent enter if popup is opened\r\n if(event.key == 'Enter' && this.selectBus.popupVisible())\r\n {\r\n const activeOption = options?.find(itm => itm.active());\r\n this.logger.verbose('Select: Keyboard handler: handling Enter');\r\n\r\n if(activeOption)\r\n {\r\n this.logger.verbose('Select: Keyboard handler: selecting active option');\r\n\r\n this.selectBus.keyboardAction.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.selectBus.selectElement().nativeElement,\r\n data: <SelectActiveKeyboardAction>{type: 'SELECT_ACTIVE'},\r\n });\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n if(event.key == 'Tab' || event.key == 'Escape')\r\n {\r\n this.logger.verbose('Select: Keyboard handler: handling Tab, Escape');\r\n\r\n this.selectBus.hidePopup.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.selectBus.selectElement().nativeElement,\r\n data: null,\r\n });\r\n }\r\n\r\n if(event.key == ' ')\r\n {\r\n this.logger.verbose('Select: Keyboard handler: handling Space');\r\n\r\n this.selectBus.showPopup.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.selectBus.selectElement().nativeElement,\r\n data: null,\r\n });\r\n\r\n event.preventDefault();\r\n }\r\n\r\n if(this.options.alphanumericSearch && event.key.match(/^[a-z0-9]$/i))\r\n {\r\n this.logger.verbose('Select: Keyboard handler: handling alphanumeric key');\r\n\r\n this.search += event.key;\r\n\r\n if(isPresent(this.searchDebounceTimeout))\r\n {\r\n clearTimeout(this.searchDebounceTimeout);\r\n }\r\n\r\n this.searchDebounceTimeout = setTimeout(() =>\r\n {\r\n this.logger.verbose('Select: Keyboard handler: seinding SELECT_FIRST keyboard action with search \"{{search}}\"', {search: this.search});\r\n\r\n this.selectBus.keyboardAction.next(\r\n {\r\n source: this as SelectPlugin,\r\n sourceElement: this.selectBus.selectElement().nativeElement,\r\n data: <SelectFirstKeyboardAction>{type: 'SELECT_FIRST', search: this.search},\r\n });\r\n\r\n this.search = '';\r\n }, this.options.selectFirstDebounceTimeout) as unknown as number;\r\n }\r\n }\r\n}\r\n"]}
|