@anglr/select 11.0.2 → 12.0.0-beta.20230109082659
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +43 -0
- package/elements/src/components/ngSelectElements.component.d.ts +1 -1
- package/es2015/elements/src/components/ngSelectElements.component.js +7 -13
- package/es2015/elements/src/components/ngSelectElements.component.js.map +1 -1
- package/es2015/elements/src/modules/ngSelectElements.module.js +7 -9
- package/es2015/elements/src/modules/ngSelectElements.module.js.map +1 -1
- package/es2015/material/src/components/basicDialogPopup/basicDialogPopup.component.js +3 -3
- package/es2015/material/src/directives/dialogPopup/dialogPopup.directive.js +3 -3
- package/es2015/material/src/modules/dialogPopup.module.js +5 -7
- package/es2015/material/src/modules/dialogPopup.module.js.map +1 -1
- package/es2015/material/src/modules/virtualEditPopup.module.js +5 -7
- package/es2015/material/src/modules/virtualEditPopup.module.js.map +1 -1
- package/es2015/material/src/plugins/popup/dialog/dialogPopup.component.js +3 -3
- package/es2015/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.js +5 -5
- package/es2015/src/components/option/optgroup.component.js +3 -3
- package/es2015/src/components/option/option.component.js +3 -3
- package/es2015/src/components/select/select.component.js +9 -15
- package/es2015/src/components/select/select.component.js.map +1 -1
- package/es2015/src/directives/ngSelectAbsolute/ngSelectAbsolute.directive.js +3 -3
- package/es2015/src/directives/ngSelectEdit/ngSelectEdit.directive.js +3 -3
- package/es2015/src/directives/ngSelectPlaceholder/ngSelectPlaceholder.directive.js +3 -3
- package/es2015/src/misc/ngSelectControlValueAccessor.directive.js +3 -3
- package/es2015/src/misc/pluginBus/pluginBus.js +3 -3
- package/es2015/src/modules/ngSelect.module.js +8 -10
- package/es2015/src/modules/ngSelect.module.js.map +1 -1
- package/es2015/src/modules/ngSelectDynamic.module.js +4 -4
- package/es2015/src/modules/ngSelectEdit.module.js +5 -7
- package/es2015/src/modules/ngSelectEdit.module.js.map +1 -1
- package/es2015/src/pipes/ngSelectHasValue.pipe.js +3 -3
- package/es2015/src/pipes/ngSelectValue.pipe.js +3 -3
- package/es2015/src/plugins/keyboardHandler/basic/basicKeyboardHandler.component.js +3 -3
- package/es2015/src/plugins/keyboardHandler/edit/editKeyboardHandler.component.js +3 -3
- package/es2015/src/plugins/liveSearch/basic/basicLiveSearch.component.js +3 -3
- package/es2015/src/plugins/liveSearch/edit/editLiveSearch.component.js +3 -3
- package/es2015/src/plugins/liveSearch/no/noLiveSearch.component.js +3 -3
- package/es2015/src/plugins/liveSearch/no/noLiveSearch.component.js.map +1 -1
- package/es2015/src/plugins/normalState/basic/basicNormalState.component.js +3 -3
- package/es2015/src/plugins/normalState/edit/editNormalState.component.js +3 -3
- package/es2015/src/plugins/normalState/normalStateAbstract.component.js +3 -3
- package/es2015/src/plugins/popup/basic/basicPopup.component.js +3 -3
- package/es2015/src/plugins/popup/basic/basicPopup.component.js.map +1 -1
- package/es2015/src/plugins/popup/edit/editPopup.component.js +3 -3
- package/es2015/src/plugins/popup/edit/editPopup.component.js.map +1 -1
- package/es2015/src/plugins/popup/popupAbstract.component.js +3 -3
- package/es2015/src/plugins/popup/popupAbstract.component.js.map +1 -1
- package/es2015/src/plugins/positioner/components.js +1 -1
- package/es2015/src/plugins/positioner/components.js.map +1 -1
- package/es2015/src/plugins/positioner/default/defaultPositioner.component.js +175 -0
- package/es2015/src/plugins/positioner/default/defaultPositioner.component.js.map +1 -0
- package/es2015/src/plugins/positioner/default/defaultPositioner.interface.js +2 -0
- package/es2015/src/plugins/positioner/default/defaultPositioner.interface.js.map +1 -0
- package/es2015/src/plugins/positioner/index.js +1 -1
- package/es2015/src/plugins/positioner/index.js.map +1 -1
- package/es2015/src/plugins/positioner/no/noPositioner.component.js +12 -7
- package/es2015/src/plugins/positioner/no/noPositioner.component.js.map +1 -1
- package/es2015/src/plugins/positioner/positioner.interface.js.map +1 -1
- package/es2015/src/plugins/positioner/types.js +0 -1
- package/es2015/src/plugins/positioner/types.js.map +1 -1
- package/es2015/src/plugins/valueHandler/basic/basicValueHandler.component.js +3 -3
- package/es2015/src/plugins/valueHandler/dynamic/dynamicValueHandler.component.js +3 -3
- package/es2015/src/plugins/valueHandler/valueHandlerBase.js +3 -3
- package/es2020/elements/src/components/ngSelectElements.component.js +7 -13
- package/es2020/elements/src/components/ngSelectElements.component.js.map +1 -1
- package/es2020/elements/src/modules/ngSelectElements.module.js +7 -9
- package/es2020/elements/src/modules/ngSelectElements.module.js.map +1 -1
- package/es2020/material/src/components/basicDialogPopup/basicDialogPopup.component.js +3 -3
- package/es2020/material/src/directives/dialogPopup/dialogPopup.directive.js +3 -3
- package/es2020/material/src/modules/dialogPopup.module.js +5 -7
- package/es2020/material/src/modules/dialogPopup.module.js.map +1 -1
- package/es2020/material/src/modules/virtualEditPopup.module.js +5 -7
- package/es2020/material/src/modules/virtualEditPopup.module.js.map +1 -1
- package/es2020/material/src/plugins/popup/dialog/dialogPopup.component.js +3 -3
- package/es2020/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.js +5 -5
- package/es2020/src/components/option/optgroup.component.js +3 -3
- package/es2020/src/components/option/option.component.js +3 -3
- package/es2020/src/components/select/select.component.js +9 -15
- package/es2020/src/components/select/select.component.js.map +1 -1
- package/es2020/src/directives/ngSelectAbsolute/ngSelectAbsolute.directive.js +3 -3
- package/es2020/src/directives/ngSelectEdit/ngSelectEdit.directive.js +3 -3
- package/es2020/src/directives/ngSelectPlaceholder/ngSelectPlaceholder.directive.js +3 -3
- package/es2020/src/misc/ngSelectControlValueAccessor.directive.js +3 -3
- package/es2020/src/misc/pluginBus/pluginBus.js +3 -3
- package/es2020/src/modules/ngSelect.module.js +8 -10
- package/es2020/src/modules/ngSelect.module.js.map +1 -1
- package/es2020/src/modules/ngSelectDynamic.module.js +4 -4
- package/es2020/src/modules/ngSelectEdit.module.js +5 -7
- package/es2020/src/modules/ngSelectEdit.module.js.map +1 -1
- package/es2020/src/pipes/ngSelectHasValue.pipe.js +3 -3
- package/es2020/src/pipes/ngSelectValue.pipe.js +3 -3
- package/es2020/src/plugins/keyboardHandler/basic/basicKeyboardHandler.component.js +3 -3
- package/es2020/src/plugins/keyboardHandler/edit/editKeyboardHandler.component.js +3 -3
- package/es2020/src/plugins/liveSearch/basic/basicLiveSearch.component.js +3 -3
- package/es2020/src/plugins/liveSearch/edit/editLiveSearch.component.js +3 -3
- package/es2020/src/plugins/liveSearch/no/noLiveSearch.component.js +3 -3
- package/es2020/src/plugins/liveSearch/no/noLiveSearch.component.js.map +1 -1
- package/es2020/src/plugins/normalState/basic/basicNormalState.component.js +3 -3
- package/es2020/src/plugins/normalState/edit/editNormalState.component.js +3 -3
- package/es2020/src/plugins/normalState/normalStateAbstract.component.js +3 -3
- package/es2020/src/plugins/popup/basic/basicPopup.component.js +3 -3
- package/es2020/src/plugins/popup/basic/basicPopup.component.js.map +1 -1
- package/es2020/src/plugins/popup/edit/editPopup.component.js +3 -3
- package/es2020/src/plugins/popup/edit/editPopup.component.js.map +1 -1
- package/es2020/src/plugins/popup/popupAbstract.component.js +3 -3
- package/es2020/src/plugins/popup/popupAbstract.component.js.map +1 -1
- package/es2020/src/plugins/positioner/components.js +1 -1
- package/es2020/src/plugins/positioner/components.js.map +1 -1
- package/es2020/src/plugins/positioner/default/defaultPositioner.component.js +172 -0
- package/es2020/src/plugins/positioner/default/defaultPositioner.component.js.map +1 -0
- package/es2020/src/plugins/positioner/default/defaultPositioner.interface.js +2 -0
- package/es2020/src/plugins/positioner/default/defaultPositioner.interface.js.map +1 -0
- package/es2020/src/plugins/positioner/index.js +1 -1
- package/es2020/src/plugins/positioner/index.js.map +1 -1
- package/es2020/src/plugins/positioner/no/noPositioner.component.js +12 -7
- package/es2020/src/plugins/positioner/no/noPositioner.component.js.map +1 -1
- package/es2020/src/plugins/positioner/positioner.interface.js.map +1 -1
- package/es2020/src/plugins/positioner/types.js +0 -1
- package/es2020/src/plugins/positioner/types.js.map +1 -1
- package/es2020/src/plugins/valueHandler/basic/basicValueHandler.component.js +3 -3
- package/es2020/src/plugins/valueHandler/dynamic/dynamicValueHandler.component.js +3 -3
- package/es2020/src/plugins/valueHandler/valueHandlerBase.js +3 -3
- package/material/src/components/basicDialogPopup/basicDialogPopup.component.d.ts +1 -1
- package/material/src/directives/dialogPopup/dialogPopup.directive.d.ts +1 -1
- package/material/src/plugins/popup/dialog/dialogPopup.component.d.ts +1 -1
- package/material/src/plugins/popup/virtualEdit/virtualEditPopup.component.d.ts +1 -1
- package/package.json +37 -52
- package/src/components/option/optgroup.component.d.ts +1 -1
- package/src/components/option/option.component.d.ts +1 -1
- package/src/components/select/select.component.d.ts +1 -1
- package/src/directives/ngSelectAbsolute/ngSelectAbsolute.directive.d.ts +1 -1
- package/src/directives/ngSelectEdit/ngSelectEdit.directive.d.ts +1 -1
- package/src/directives/ngSelectPlaceholder/ngSelectPlaceholder.directive.d.ts +1 -1
- package/src/misc/ngSelectControlValueAccessor.directive.d.ts +1 -1
- package/src/modules/ngSelect.module.d.ts +2 -2
- package/src/pipes/ngSelectHasValue.pipe.d.ts +1 -1
- package/src/pipes/ngSelectValue.pipe.d.ts +1 -1
- package/src/plugins/keyboardHandler/basic/basicKeyboardHandler.component.d.ts +1 -1
- package/src/plugins/keyboardHandler/edit/editKeyboardHandler.component.d.ts +1 -1
- package/src/plugins/liveSearch/basic/basicLiveSearch.component.d.ts +1 -1
- package/src/plugins/liveSearch/edit/editLiveSearch.component.d.ts +1 -1
- package/src/plugins/liveSearch/no/noLiveSearch.component.d.ts +1 -1
- package/src/plugins/normalState/basic/basicNormalState.component.d.ts +1 -1
- package/src/plugins/normalState/edit/editNormalState.component.d.ts +1 -1
- package/src/plugins/normalState/normalStateAbstract.component.d.ts +1 -1
- package/src/plugins/popup/basic/basicPopup.component.d.ts +1 -1
- package/src/plugins/popup/edit/editPopup.component.d.ts +1 -1
- package/src/plugins/popup/popupAbstract.component.d.ts +1 -1
- package/src/plugins/positioner/components.d.ts +1 -1
- package/src/plugins/positioner/components.d.ts.map +1 -1
- package/src/plugins/positioner/default/defaultPositioner.component.d.ts +94 -0
- package/src/plugins/positioner/default/defaultPositioner.component.d.ts.map +1 -0
- package/src/plugins/positioner/default/defaultPositioner.interface.d.ts +12 -0
- package/src/plugins/positioner/default/defaultPositioner.interface.d.ts.map +1 -0
- package/src/plugins/positioner/index.d.ts +1 -1
- package/src/plugins/positioner/index.d.ts.map +1 -1
- package/src/plugins/positioner/no/noPositioner.component.d.ts +11 -3
- package/src/plugins/positioner/no/noPositioner.component.d.ts.map +1 -1
- package/src/plugins/positioner/positioner.interface.d.ts +8 -7
- package/src/plugins/positioner/positioner.interface.d.ts.map +1 -1
- package/src/plugins/positioner/types.d.ts +0 -1
- package/src/plugins/positioner/types.d.ts.map +1 -1
- package/src/plugins/valueHandler/basic/basicValueHandler.component.d.ts +1 -1
- package/src/plugins/valueHandler/dynamic/dynamicValueHandler.component.d.ts +1 -1
- package/src/plugins/valueHandler/valueHandlerBase.d.ts +1 -1
- package/version.bak +1 -1
- package/es2015/popperJs/src/index.js +0 -4
- package/es2015/popperJs/src/index.js.map +0 -1
- package/es2015/popperJs/src/modules/popperjsPositioner.module.js +0 -23
- package/es2015/popperJs/src/modules/popperjsPositioner.module.js.map +0 -1
- package/es2015/popperJs/src/plugins/positioner/components.js +0 -2
- package/es2015/popperJs/src/plugins/positioner/components.js.map +0 -1
- package/es2015/popperJs/src/plugins/positioner/index.js +0 -2
- package/es2015/popperJs/src/plugins/positioner/index.js.map +0 -1
- package/es2015/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.js +0 -151
- package/es2015/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.js.map +0 -1
- package/es2015/popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.js +0 -2
- package/es2015/popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.js.map +0 -1
- package/es2015/src/plugins/positioner/basic/basicPositioner.component.js +0 -193
- package/es2015/src/plugins/positioner/basic/basicPositioner.component.js.map +0 -1
- package/es2015/src/plugins/positioner/basic/basicPositioner.interface.js +0 -2
- package/es2015/src/plugins/positioner/basic/basicPositioner.interface.js.map +0 -1
- package/es2015/src/plugins/positioner/basic/types.js +0 -36
- package/es2015/src/plugins/positioner/basic/types.js.map +0 -1
- package/es2020/popperJs/src/index.js +0 -4
- package/es2020/popperJs/src/index.js.map +0 -1
- package/es2020/popperJs/src/modules/popperjsPositioner.module.js +0 -23
- package/es2020/popperJs/src/modules/popperjsPositioner.module.js.map +0 -1
- package/es2020/popperJs/src/plugins/positioner/components.js +0 -2
- package/es2020/popperJs/src/plugins/positioner/components.js.map +0 -1
- package/es2020/popperJs/src/plugins/positioner/index.js +0 -2
- package/es2020/popperJs/src/plugins/positioner/index.js.map +0 -1
- package/es2020/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.js +0 -148
- package/es2020/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.js.map +0 -1
- package/es2020/popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.js +0 -2
- package/es2020/popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.js.map +0 -1
- package/es2020/src/plugins/positioner/basic/basicPositioner.component.js +0 -190
- package/es2020/src/plugins/positioner/basic/basicPositioner.component.js.map +0 -1
- package/es2020/src/plugins/positioner/basic/basicPositioner.interface.js +0 -2
- package/es2020/src/plugins/positioner/basic/basicPositioner.interface.js.map +0 -1
- package/es2020/src/plugins/positioner/basic/types.js +0 -36
- package/es2020/src/plugins/positioner/basic/types.js.map +0 -1
- package/popperJs/package.json +0 -9
- package/popperJs/src/index.d.ts +0 -4
- package/popperJs/src/index.d.ts.map +0 -1
- package/popperJs/src/modules/popperjsPositioner.module.d.ts +0 -11
- package/popperJs/src/modules/popperjsPositioner.module.d.ts.map +0 -1
- package/popperJs/src/plugins/positioner/components.d.ts +0 -2
- package/popperJs/src/plugins/positioner/components.d.ts.map +0 -1
- package/popperJs/src/plugins/positioner/index.d.ts +0 -2
- package/popperJs/src/plugins/positioner/index.d.ts.map +0 -1
- package/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.d.ts +0 -78
- package/popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.d.ts.map +0 -1
- package/popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.d.ts +0 -12
- package/popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.d.ts.map +0 -1
- package/src/plugins/positioner/basic/basicPositioner.component.d.ts +0 -90
- package/src/plugins/positioner/basic/basicPositioner.component.d.ts.map +0 -1
- package/src/plugins/positioner/basic/basicPositioner.interface.d.ts +0 -29
- package/src/plugins/positioner/basic/basicPositioner.interface.d.ts.map +0 -1
- package/src/plugins/positioner/basic/types.d.ts +0 -22
- package/src/plugins/positioner/basic/types.d.ts.map +0 -1
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Inject, Optional, ElementRef, PLATFORM_ID, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
3
|
-
import { positionsWithFlip } from '@anglr/common/positions';
|
|
4
|
-
import { extend, isNumber } from '@jscrpt/common';
|
|
5
|
-
import { NG_SELECT_PLUGIN_INSTANCES } from '../../../components/select/types';
|
|
6
|
-
import { POSITIONER_OPTIONS } from '../types';
|
|
7
|
-
import { POPUP } from '../../popup/types';
|
|
8
|
-
import { PluginBus } from '../../../misc/pluginBus/pluginBus';
|
|
9
|
-
import { ScrollTargetSelector } from './types';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../../../misc/pluginBus/pluginBus";
|
|
12
|
-
import * as i2 from "./types";
|
|
13
|
-
/**
|
|
14
|
-
* Default options for positioner
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
const defaultOptions = {
|
|
18
|
-
optionsCoordinates: 'top left',
|
|
19
|
-
selectCoordinates: 'bottom left',
|
|
20
|
-
flipCallback: () => { },
|
|
21
|
-
scrollTarget: null,
|
|
22
|
-
activateOnResize: true,
|
|
23
|
-
activateOnScroll: true
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Component used for positioning popup element, handles resize, scroll and collision with viewport
|
|
27
|
-
*/
|
|
28
|
-
export class BasicPositionerComponent {
|
|
29
|
-
//######################### constructor #########################
|
|
30
|
-
constructor(ngSelectPlugins, pluginBus, pluginElement, _changeDetector, options, _document, _platformId, _scrollTargetSelector) {
|
|
31
|
-
this.ngSelectPlugins = ngSelectPlugins;
|
|
32
|
-
this.pluginBus = pluginBus;
|
|
33
|
-
this.pluginElement = pluginElement;
|
|
34
|
-
this._changeDetector = _changeDetector;
|
|
35
|
-
this._document = _document;
|
|
36
|
-
this._platformId = _platformId;
|
|
37
|
-
this._scrollTargetSelector = _scrollTargetSelector;
|
|
38
|
-
/**
|
|
39
|
-
* Indication whether is code running in browser
|
|
40
|
-
*/
|
|
41
|
-
this._isBrowser = isPlatformBrowser(this._platformId);
|
|
42
|
-
//######################### protected methods #########################
|
|
43
|
-
/**
|
|
44
|
-
* Handles resize and scroll event
|
|
45
|
-
*/
|
|
46
|
-
this._handleResizeAndScroll = () => {
|
|
47
|
-
this._updateMinWidth();
|
|
48
|
-
positionsWithFlip(this._popupElement, this.options.optionsCoordinates, this.pluginBus.selectElement.nativeElement, this.options.selectCoordinates, this._document, this.options.flipCallback);
|
|
49
|
-
};
|
|
50
|
-
this._options = extend(true, {}, defaultOptions, options);
|
|
51
|
-
}
|
|
52
|
-
//######################### public properties - implementation of BasicPositioner #########################
|
|
53
|
-
/**
|
|
54
|
-
* Options for NgSelect plugin
|
|
55
|
-
*/
|
|
56
|
-
get options() {
|
|
57
|
-
return this._options;
|
|
58
|
-
}
|
|
59
|
-
set options(options) {
|
|
60
|
-
this._options = extend(true, this._options, options);
|
|
61
|
-
}
|
|
62
|
-
//######################### protected properties #########################
|
|
63
|
-
/**
|
|
64
|
-
* Gets scroll target
|
|
65
|
-
*/
|
|
66
|
-
get scrollTarget() {
|
|
67
|
-
return this._options.scrollTarget || this._scrollTargetSelector.scrollTarget;
|
|
68
|
-
}
|
|
69
|
-
//######################### public methods - implementation of OnDestroy #########################
|
|
70
|
-
/**
|
|
71
|
-
* Called when component is destroyed
|
|
72
|
-
*/
|
|
73
|
-
ngOnDestroy() {
|
|
74
|
-
var _a, _b, _c;
|
|
75
|
-
(_a = this._visibilitySubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
76
|
-
this._visibilitySubscription = null;
|
|
77
|
-
(_b = this._optionsChangeSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
|
|
78
|
-
this._optionsChangeSubscription = null;
|
|
79
|
-
if (this._isBrowser) {
|
|
80
|
-
window.removeEventListener('resize', this._handleResizeAndScroll);
|
|
81
|
-
(_c = this.scrollTarget) === null || _c === void 0 ? void 0 : _c.removeEventListener('scroll', this._handleResizeAndScroll);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
//######################### public methods - implementation of BasicPositioner #########################
|
|
85
|
-
/**
|
|
86
|
-
* Initialize plugin, to be ready to use, initialize communication with other plugins
|
|
87
|
-
*/
|
|
88
|
-
initialize() {
|
|
89
|
-
var _a, _b;
|
|
90
|
-
if (this._optionsGatherer && this._optionsGatherer != ((_a = this.pluginBus) === null || _a === void 0 ? void 0 : _a.selectOptions.optionsGatherer)) {
|
|
91
|
-
this._optionsChangeSubscription.unsubscribe();
|
|
92
|
-
this._optionsChangeSubscription = null;
|
|
93
|
-
this._optionsGatherer = null;
|
|
94
|
-
}
|
|
95
|
-
if (!this._optionsGatherer) {
|
|
96
|
-
this._optionsGatherer = (_b = this.pluginBus) === null || _b === void 0 ? void 0 : _b.selectOptions.optionsGatherer;
|
|
97
|
-
this._optionsChangeSubscription = this._optionsGatherer.availableOptionsChange.subscribe(() => {
|
|
98
|
-
if (this._popup.popupElement && this._optionsGatherer.availableOptions) {
|
|
99
|
-
this._handlePosition();
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
const popup = this.ngSelectPlugins[POPUP];
|
|
104
|
-
if (this._popup && this._popup != popup) {
|
|
105
|
-
this._visibilitySubscription.unsubscribe();
|
|
106
|
-
this._visibilitySubscription = null;
|
|
107
|
-
this._popup = null;
|
|
108
|
-
}
|
|
109
|
-
if (!this._popup) {
|
|
110
|
-
this._popup = popup;
|
|
111
|
-
this._visibilitySubscription = this._popup.visibilityChange.subscribe(() => this._handlePosition());
|
|
112
|
-
}
|
|
113
|
-
this._handlePosition();
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Initialize plugin options, all operations required to be done with plugin options are handled here
|
|
117
|
-
*/
|
|
118
|
-
initOptions() {
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Explicitly runs invalidation of content (change detection)
|
|
122
|
-
*/
|
|
123
|
-
invalidateVisuals() {
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Handles position of popup
|
|
127
|
-
*/
|
|
128
|
-
_handlePosition() {
|
|
129
|
-
var _a, _b;
|
|
130
|
-
this._popupElement = this._popup.popupElement;
|
|
131
|
-
//this has meaning only when popup is outside of ng-element
|
|
132
|
-
this._changeDetector.markForCheck();
|
|
133
|
-
if (this._isBrowser) {
|
|
134
|
-
//register events and handle position of opened popup
|
|
135
|
-
if (this._popupElement) {
|
|
136
|
-
if (this._options.activateOnResize) {
|
|
137
|
-
window.addEventListener('resize', this._handleResizeAndScroll);
|
|
138
|
-
}
|
|
139
|
-
if (this._options.activateOnScroll) {
|
|
140
|
-
(_a = this.scrollTarget) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', this._handleResizeAndScroll);
|
|
141
|
-
}
|
|
142
|
-
this._handleResizeAndScroll();
|
|
143
|
-
}
|
|
144
|
-
//unregister events
|
|
145
|
-
else {
|
|
146
|
-
window.removeEventListener('resize', this._handleResizeAndScroll);
|
|
147
|
-
(_b = this.scrollTarget) === null || _b === void 0 ? void 0 : _b.removeEventListener('scroll', this._handleResizeAndScroll);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Updates min width of popup
|
|
153
|
-
*/
|
|
154
|
-
_updateMinWidth() {
|
|
155
|
-
if (!this._popupElement) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
const minWidth = this.pluginBus.selectElement.nativeElement.clientWidth;
|
|
159
|
-
if (isNaN(minWidth) || !isNumber(minWidth)) {
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
this._popupElement.style.minWidth = `${minWidth}px`;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
BasicPositionerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BasicPositionerComponent, deps: [{ token: NG_SELECT_PLUGIN_INSTANCES, optional: true }, { token: i1.PluginBus, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: POSITIONER_OPTIONS, optional: true }, { token: DOCUMENT }, { token: PLATFORM_ID }, { token: i2.ScrollTargetSelector }], target: i0.ɵɵFactoryTarget.Component });
|
|
166
|
-
BasicPositionerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BasicPositionerComponent, selector: "ng-basic-positioner", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BasicPositionerComponent, decorators: [{
|
|
168
|
-
type: Component,
|
|
169
|
-
args: [{
|
|
170
|
-
selector: 'ng-basic-positioner',
|
|
171
|
-
template: '',
|
|
172
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
173
|
-
}]
|
|
174
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
175
|
-
type: Inject,
|
|
176
|
-
args: [NG_SELECT_PLUGIN_INSTANCES]
|
|
177
|
-
}, {
|
|
178
|
-
type: Optional
|
|
179
|
-
}] }, { type: i1.PluginBus, decorators: [{
|
|
180
|
-
type: Optional
|
|
181
|
-
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
182
|
-
type: Inject,
|
|
183
|
-
args: [POSITIONER_OPTIONS]
|
|
184
|
-
}, {
|
|
185
|
-
type: Optional
|
|
186
|
-
}] }, { type: Document, decorators: [{
|
|
187
|
-
type: Inject,
|
|
188
|
-
args: [DOCUMENT]
|
|
189
|
-
}] }, { type: Object, decorators: [{
|
|
190
|
-
type: Inject,
|
|
191
|
-
args: [PLATFORM_ID]
|
|
192
|
-
}] }, { type: i2.ScrollTargetSelector }]; } });
|
|
193
|
-
//# sourceMappingURL=basicPositioner.component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basicPositioner.component.js","sourceRoot":"","sources":["../../../../../src/plugins/positioner/basic/basicPositioner.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, Inject, Optional, ElementRef, OnDestroy, PLATFORM_ID, ChangeDetectorRef} from '@angular/core';\nimport {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {positionsWithFlip} from '@anglr/common/positions';\nimport {extend, isNumber} from '@jscrpt/common';\nimport {Subscription} from 'rxjs';\n\nimport {BasicPositionerOptions, BasicPositioner} from './basicPositioner.interface';\nimport {NgSelectPlugin, OptionsGatherer} from '../../../misc';\nimport {NgSelectPluginInstances} from '../../../components/select';\nimport {NG_SELECT_PLUGIN_INSTANCES} from '../../../components/select/types';\nimport {POSITIONER_OPTIONS} from '../types';\nimport {Popup} from '../../popup';\nimport {POPUP} from '../../popup/types';\nimport {PluginBus} from '../../../misc/pluginBus/pluginBus';\nimport {ScrollTargetSelector} from './types';\n\n/**\n * Default options for positioner\n * @internal\n */\nconst defaultOptions: BasicPositionerOptions =\n{\n optionsCoordinates: 'top left',\n selectCoordinates: 'bottom left',\n flipCallback: () => {},\n scrollTarget: null,\n activateOnResize: true,\n activateOnScroll: true\n};\n\n/**\n * Component used for positioning popup element, handles resize, scroll and collision with viewport\n */\n@Component(\n{\n selector: 'ng-basic-positioner',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BasicPositionerComponent implements BasicPositioner, NgSelectPlugin<BasicPositionerOptions>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Instance of previous options gatherer, that is used for obtaining available options\n */\n protected _optionsGatherer: OptionsGatherer;\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: BasicPositionerOptions;\n\n /**\n * Subscription for visibility change of popup\n */\n protected _visibilitySubscription: Subscription;\n\n /**\n * Subscription for changes of options in options gatherer\n */\n protected _optionsChangeSubscription: Subscription;\n\n /**\n * Popup that is displayed\n */\n protected _popup: Popup;\n\n /**\n * Html element of popup plugin\n */\n protected _popupElement: HTMLElement;\n\n /**\n * Indication whether is code running in browser\n */\n protected _isBrowser: boolean = isPlatformBrowser(this._platformId);\n\n //######################### public properties - implementation of BasicPositioner #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): BasicPositionerOptions\n {\n return this._options;\n }\n public set options(options: BasicPositionerOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n //######################### protected properties #########################\n\n /**\n * Gets scroll target\n */\n public get scrollTarget(): EventTarget\n {\n return this._options.scrollTarget || this._scrollTargetSelector.scrollTarget;\n }\n\n //######################### constructor #########################\n constructor(@Inject(NG_SELECT_PLUGIN_INSTANCES) @Optional() public ngSelectPlugins: NgSelectPluginInstances,\n @Optional() public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n @Inject(POSITIONER_OPTIONS) @Optional() options?: BasicPositionerOptions,\n @Inject(DOCUMENT) protected _document?: Document,\n @Inject(PLATFORM_ID) protected _platformId?: Object,\n protected _scrollTargetSelector?: ScrollTargetSelector)\n {\n this._options = extend(true, {}, defaultOptions, options);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._visibilitySubscription?.unsubscribe();\n this._visibilitySubscription = null;\n\n this._optionsChangeSubscription?.unsubscribe();\n this._optionsChangeSubscription = null;\n\n if(this._isBrowser)\n {\n window.removeEventListener('resize', this._handleResizeAndScroll);\n this.scrollTarget?.removeEventListener('scroll', this._handleResizeAndScroll);\n }\n }\n\n //######################### public methods - implementation of BasicPositioner #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n if(this._optionsGatherer && this._optionsGatherer != this.pluginBus?.selectOptions.optionsGatherer)\n {\n this._optionsChangeSubscription.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._optionsGatherer = null;\n }\n\n if(!this._optionsGatherer)\n {\n this._optionsGatherer = this.pluginBus?.selectOptions.optionsGatherer;\n\n this._optionsChangeSubscription = this._optionsGatherer.availableOptionsChange.subscribe(() =>\n {\n if(this._popup.popupElement && this._optionsGatherer.availableOptions)\n {\n this._handlePosition();\n }\n });\n }\n\n const popup: Popup = this.ngSelectPlugins[POPUP] as Popup;\n\n if(this._popup && this._popup != popup)\n {\n this._visibilitySubscription.unsubscribe();\n this._visibilitySubscription = null;\n\n this._popup = null;\n }\n\n if(!this._popup)\n {\n this._popup = popup;\n\n this._visibilitySubscription = this._popup.visibilityChange.subscribe(() => this._handlePosition());\n }\n\n this._handlePosition();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n }\n\n //######################### protected methods #########################\n\n /**\n * Handles resize and scroll event\n */\n protected _handleResizeAndScroll = () =>\n {\n this._updateMinWidth();\n positionsWithFlip(this._popupElement, this.options.optionsCoordinates, this.pluginBus.selectElement.nativeElement, this.options.selectCoordinates, this._document, this.options.flipCallback);\n };\n\n /**\n * Handles position of popup\n */\n protected _handlePosition()\n {\n this._popupElement = this._popup.popupElement;\n\n //this has meaning only when popup is outside of ng-element\n this._changeDetector.markForCheck();\n\n if(this._isBrowser)\n {\n //register events and handle position of opened popup\n if(this._popupElement)\n {\n if(this._options.activateOnResize)\n {\n window.addEventListener('resize', this._handleResizeAndScroll);\n }\n\n if(this._options.activateOnScroll)\n {\n this.scrollTarget?.addEventListener('scroll', this._handleResizeAndScroll);\n }\n \n this._handleResizeAndScroll();\n }\n //unregister events\n else\n {\n window.removeEventListener('resize', this._handleResizeAndScroll);\n this.scrollTarget?.removeEventListener('scroll', this._handleResizeAndScroll);\n }\n }\n }\n\n /**\n * Updates min width of popup\n */\n protected _updateMinWidth()\n {\n if(!this._popupElement)\n {\n return;\n }\n\n const minWidth = this.pluginBus.selectElement.nativeElement.clientWidth;\n\n if(isNaN(minWidth) || !isNumber(minWidth))\n {\n return;\n }\n\n this._popupElement.style.minWidth = `${minWidth}px`;\n }\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basicPositioner.interface.js","sourceRoot":"","sources":["../../../../../src/plugins/positioner/basic/basicPositioner.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {FlipCallback} from '@anglr/common/positions';\n\nimport {Positioner, PositionerOptions} from '../positioner.interface';\n\n/**\n * Basic positioner options\n */\nexport interface BasicPositionerOptions extends PositionerOptions\n{\n /**\n * Callback that is called when flip occurs during positioning\n */\n flipCallback?: FlipCallback;\n\n /**\n * Target element that is used for handling scroll event\n */\n scrollTarget?: EventTarget;\n\n /**\n * Indication whether positioner should be sensitive/activated also to scroll of scrollTarget\n */\n activateOnScroll?: boolean;\n\n /**\n * Indication whether positioner should be sensitive/activated also on resize of window\n */\n activateOnResize?: boolean;\n}\n\n/**\n * Public API for 'BasicPositionerComponent'\n */\nexport interface BasicPositioner extends Positioner\n{\n}"]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Scroll target selector that is used for obtaining scroll target
|
|
5
|
-
*/
|
|
6
|
-
export class ScrollTargetSelector {
|
|
7
|
-
constructor() {
|
|
8
|
-
//######################### private fields #########################
|
|
9
|
-
/**
|
|
10
|
-
* Callback used for getting scroll target for scrolling
|
|
11
|
-
*/
|
|
12
|
-
this._scrollTargetCallback = () => window;
|
|
13
|
-
}
|
|
14
|
-
//######################### public properties #########################
|
|
15
|
-
/**
|
|
16
|
-
* Gets scroll target that is used for scrolling
|
|
17
|
-
*/
|
|
18
|
-
get scrollTarget() {
|
|
19
|
-
return this._scrollTargetCallback();
|
|
20
|
-
}
|
|
21
|
-
//######################### public methods #########################
|
|
22
|
-
/**
|
|
23
|
-
* Sets callback used for obtaining scroll target
|
|
24
|
-
* @param callback - Callback that is used for obtaining scroll target element
|
|
25
|
-
*/
|
|
26
|
-
setScrollTarget(callback) {
|
|
27
|
-
this._scrollTargetCallback = callback;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
ScrollTargetSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ScrollTargetSelector, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
-
ScrollTargetSelector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ScrollTargetSelector, providedIn: 'root' });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ScrollTargetSelector, decorators: [{
|
|
33
|
-
type: Injectable,
|
|
34
|
-
args: [{ providedIn: 'root' }]
|
|
35
|
-
}] });
|
|
36
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/plugins/positioner/basic/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;;AAEzC;;GAEG;AAEH,MAAM,OAAO,oBAAoB;IADjC;QAGI,oEAAoE;QAEpE;;WAEG;QACK,0BAAqB,GAAsB,GAAG,EAAE,CAAC,MAAM,CAAC;KAsBnE;IApBG,uEAAuE;IAEvE;;OAEG;IACH,IAAW,YAAY;QAEnB,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACxC,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACI,eAAe,CAAC,QAA2B;QAE9C,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;IAC1C,CAAC;;iHA5BQ,oBAAoB;qHAApB,oBAAoB,cADR,MAAM;2FAClB,oBAAoB;kBADhC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC","sourcesContent":["import {Injectable} from '@angular/core';\n\n/**\n * Scroll target selector that is used for obtaining scroll target\n */\n@Injectable({providedIn: 'root'})\nexport class ScrollTargetSelector\n{\n //######################### private fields #########################\n\n /**\n * Callback used for getting scroll target for scrolling\n */\n private _scrollTargetCallback: () => EventTarget = () => window;\n\n //######################### public properties #########################\n\n /**\n * Gets scroll target that is used for scrolling\n */\n public get scrollTarget(): EventTarget\n {\n return this._scrollTargetCallback();\n }\n\n //######################### public methods #########################\n\n /**\n * Sets callback used for obtaining scroll target\n * @param callback - Callback that is used for obtaining scroll target element\n */\n public setScrollTarget(callback: () => EventTarget)\n {\n this._scrollTargetCallback = callback;\n }\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../popperJs/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC","sourcesContent":["export * from './modules/popperjsPositioner.module';\nexport * from './plugins/positioner/components';\nexport * from './plugins/positioner';"]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { PopperJsPositionerComponent } from '../plugins/positioner/popperJs/popperJsPositioner.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Module for popperjs positioner plugin
|
|
6
|
-
*/
|
|
7
|
-
export class PopperJsPositionerModule {
|
|
8
|
-
}
|
|
9
|
-
PopperJsPositionerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PopperJsPositionerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
-
PopperJsPositionerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PopperJsPositionerModule, declarations: [PopperJsPositionerComponent], exports: [PopperJsPositionerComponent] });
|
|
11
|
-
PopperJsPositionerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PopperJsPositionerModule });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PopperJsPositionerModule, decorators: [{
|
|
13
|
-
type: NgModule,
|
|
14
|
-
args: [{
|
|
15
|
-
declarations: [
|
|
16
|
-
PopperJsPositionerComponent
|
|
17
|
-
],
|
|
18
|
-
exports: [
|
|
19
|
-
PopperJsPositionerComponent
|
|
20
|
-
]
|
|
21
|
-
}]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=popperjsPositioner.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popperjsPositioner.module.js","sourceRoot":"","sources":["../../../../popperJs/src/modules/popperjsPositioner.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,2BAA2B,EAAC,MAAM,6DAA6D,CAAC;;AAExG;;GAEG;AAYH,MAAM,OAAO,wBAAwB;;qHAAxB,wBAAwB;sHAAxB,wBAAwB,iBAP7B,2BAA2B,aAI3B,2BAA2B;sHAGtB,wBAAwB;2FAAxB,wBAAwB;kBAXpC,QAAQ;mBACT;oBACI,YAAY,EACZ;wBACI,2BAA2B;qBAC9B;oBACD,OAAO,EACP;wBACI,2BAA2B;qBAC9B;iBACJ","sourcesContent":["import {NgModule} from '@angular/core';\n\nimport {PopperJsPositionerComponent} from '../plugins/positioner/popperJs/popperJsPositioner.component';\n\n/**\n * Module for popperjs positioner plugin\n */\n@NgModule(\n{\n declarations:\n [\n PopperJsPositionerComponent\n ],\n exports:\n [\n PopperJsPositionerComponent\n ]\n})\nexport class PopperJsPositionerModule\n{\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../../../popperJs/src/plugins/positioner/components.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC","sourcesContent":["export * from './popperJs/popperJsPositioner.component';"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../popperJs/src/plugins/positioner/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC","sourcesContent":["export * from './popperJs/popperJsPositioner.interface';"]}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Inject, Optional, ElementRef, PLATFORM_ID, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
3
|
-
import { NG_SELECT_PLUGIN_INSTANCES, PluginBus, POPUP, POSITIONER_OPTIONS } from '@anglr/select';
|
|
4
|
-
import { extend } from '@jscrpt/common';
|
|
5
|
-
import { createPopper } from '@popperjs/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@anglr/select";
|
|
8
|
-
/**
|
|
9
|
-
* Default options for positioner
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
const defaultOptions = {};
|
|
13
|
-
/**
|
|
14
|
-
* Component used for positioning popup element, using popper js
|
|
15
|
-
*/
|
|
16
|
-
export class PopperJsPositionerComponent {
|
|
17
|
-
//######################### constructor #########################
|
|
18
|
-
constructor(ngSelectPlugins, pluginBus, pluginElement, _changeDetector, options, _document, _platformId) {
|
|
19
|
-
this.ngSelectPlugins = ngSelectPlugins;
|
|
20
|
-
this.pluginBus = pluginBus;
|
|
21
|
-
this.pluginElement = pluginElement;
|
|
22
|
-
this._changeDetector = _changeDetector;
|
|
23
|
-
this._document = _document;
|
|
24
|
-
this._platformId = _platformId;
|
|
25
|
-
/**
|
|
26
|
-
* Indication whether is code running in browser
|
|
27
|
-
*/
|
|
28
|
-
this._isBrowser = isPlatformBrowser(this._platformId);
|
|
29
|
-
this._options = extend(true, {}, defaultOptions, options);
|
|
30
|
-
}
|
|
31
|
-
//######################### public properties - implementation of BasicPositioner #########################
|
|
32
|
-
/**
|
|
33
|
-
* Options for NgSelect plugin
|
|
34
|
-
*/
|
|
35
|
-
get options() {
|
|
36
|
-
return this._options;
|
|
37
|
-
}
|
|
38
|
-
set options(options) {
|
|
39
|
-
this._options = extend(true, this._options, options);
|
|
40
|
-
}
|
|
41
|
-
//######################### public methods - implementation of OnDestroy #########################
|
|
42
|
-
/**
|
|
43
|
-
* Called when component is destroyed
|
|
44
|
-
*/
|
|
45
|
-
ngOnDestroy() {
|
|
46
|
-
this._visibilitySubscription?.unsubscribe();
|
|
47
|
-
this._visibilitySubscription = null;
|
|
48
|
-
this._optionsChangeSubscription?.unsubscribe();
|
|
49
|
-
this._optionsChangeSubscription = null;
|
|
50
|
-
this._popperJsInstance?.destroy();
|
|
51
|
-
this._popperJsInstance = null;
|
|
52
|
-
}
|
|
53
|
-
//######################### public methods - implementation of BasicPositioner #########################
|
|
54
|
-
/**
|
|
55
|
-
* Initialize plugin, to be ready to use, initialize communication with other plugins
|
|
56
|
-
*/
|
|
57
|
-
initialize() {
|
|
58
|
-
if (this._optionsGatherer && this._optionsGatherer != this.pluginBus?.selectOptions.optionsGatherer) {
|
|
59
|
-
this._optionsChangeSubscription.unsubscribe();
|
|
60
|
-
this._optionsChangeSubscription = null;
|
|
61
|
-
this._optionsGatherer = null;
|
|
62
|
-
}
|
|
63
|
-
if (!this._optionsGatherer) {
|
|
64
|
-
this._optionsGatherer = this.pluginBus?.selectOptions.optionsGatherer;
|
|
65
|
-
this._optionsChangeSubscription = this._optionsGatherer.availableOptionsChange.subscribe(() => {
|
|
66
|
-
if (this._popup.popupElement && this._optionsGatherer.availableOptions) {
|
|
67
|
-
this._handlePosition();
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
const popup = this.ngSelectPlugins[POPUP];
|
|
72
|
-
if (this._popup && this._popup != popup) {
|
|
73
|
-
this._visibilitySubscription.unsubscribe();
|
|
74
|
-
this._visibilitySubscription = null;
|
|
75
|
-
this._popup = null;
|
|
76
|
-
}
|
|
77
|
-
if (!this._popup) {
|
|
78
|
-
this._popup = popup;
|
|
79
|
-
this._visibilitySubscription = this._popup.visibilityChange.subscribe(() => this._handlePosition());
|
|
80
|
-
}
|
|
81
|
-
this._handlePosition();
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Initialize plugin options, all operations required to be done with plugin options are handled here
|
|
85
|
-
*/
|
|
86
|
-
initOptions() {
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Explicitly runs invalidation of content (change detection)
|
|
90
|
-
*/
|
|
91
|
-
invalidateVisuals() {
|
|
92
|
-
}
|
|
93
|
-
//######################### protected methods #########################
|
|
94
|
-
/**
|
|
95
|
-
* Handles position of popup
|
|
96
|
-
*/
|
|
97
|
-
_handlePosition() {
|
|
98
|
-
this._popupElement = this._popup.popupElement;
|
|
99
|
-
// //this has meaning only when popup is outside of ng-element
|
|
100
|
-
// this._changeDetector.markForCheck();
|
|
101
|
-
if (this._isBrowser) {
|
|
102
|
-
//register events and handle position of opened popup
|
|
103
|
-
if (this._popupElement) {
|
|
104
|
-
if (this._popperJsInstance) {
|
|
105
|
-
// this._popperJsInstance.update();
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
this._popperJsInstance = createPopper(this.pluginBus.selectElement.nativeElement, this._popupElement, {
|
|
109
|
-
placement: 'bottom-start'
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
//unregister events
|
|
113
|
-
else {
|
|
114
|
-
this._popperJsInstance?.destroy();
|
|
115
|
-
this._popperJsInstance = null;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
PopperJsPositionerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PopperJsPositionerComponent, deps: [{ token: NG_SELECT_PLUGIN_INSTANCES, optional: true }, { token: i1.PluginBus, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: POSITIONER_OPTIONS, optional: true }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
-
PopperJsPositionerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: PopperJsPositionerComponent, selector: "ng-popperjs-positioner", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: PopperJsPositionerComponent, decorators: [{
|
|
123
|
-
type: Component,
|
|
124
|
-
args: [{
|
|
125
|
-
selector: 'ng-popperjs-positioner',
|
|
126
|
-
template: '',
|
|
127
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
128
|
-
}]
|
|
129
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
130
|
-
type: Inject,
|
|
131
|
-
args: [NG_SELECT_PLUGIN_INSTANCES]
|
|
132
|
-
}, {
|
|
133
|
-
type: Optional
|
|
134
|
-
}] }, { type: i1.PluginBus, decorators: [{
|
|
135
|
-
type: Optional
|
|
136
|
-
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
137
|
-
type: Inject,
|
|
138
|
-
args: [POSITIONER_OPTIONS]
|
|
139
|
-
}, {
|
|
140
|
-
type: Optional
|
|
141
|
-
}] }, { type: Document, decorators: [{
|
|
142
|
-
type: Inject,
|
|
143
|
-
args: [DOCUMENT]
|
|
144
|
-
}] }, { type: Object, decorators: [{
|
|
145
|
-
type: Inject,
|
|
146
|
-
args: [PLATFORM_ID]
|
|
147
|
-
}] }]; } });
|
|
148
|
-
//# sourceMappingURL=popperJsPositioner.component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popperJsPositioner.component.js","sourceRoot":"","sources":["../../../../../../popperJs/src/plugins/positioner/popperJs/popperJsPositioner.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {Component, ChangeDetectionStrategy, Inject, Optional, ElementRef, OnDestroy, PLATFORM_ID, ChangeDetectorRef} from '@angular/core';\nimport {DOCUMENT, isPlatformBrowser} from '@angular/common';\nimport {NgSelectPlugin, NgSelectPluginInstances, NG_SELECT_PLUGIN_INSTANCES, OptionsGatherer, PluginBus, POPUP, Popup, POSITIONER_OPTIONS} from '@anglr/select';\nimport {extend} from '@jscrpt/common';\nimport {createPopper} from '@popperjs/core';\nimport type {Instance} from '@popperjs/core';\nimport {Subscription} from 'rxjs';\n\nimport {PopperJsPositioner, PopperJsPositionerOptions} from './popperjsPositioner.interface';\n\n/**\n * Default options for positioner\n * @internal\n */\nconst defaultOptions: PopperJsPositionerOptions =\n{\n};\n\n/**\n * Component used for positioning popup element, using popper js\n */\n@Component(\n{\n selector: 'ng-popperjs-positioner',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PopperJsPositionerComponent implements PopperJsPositioner, NgSelectPlugin<PopperJsPositionerOptions>, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Instance of previous options gatherer, that is used for obtaining available options\n */\n protected _optionsGatherer: OptionsGatherer;\n\n /**\n * Options for NgSelect plugin\n */\n protected _options: PopperJsPositionerOptions;\n\n /**\n * Subscription for visibility change of popup\n */\n protected _visibilitySubscription: Subscription;\n\n /**\n * Subscription for changes of options in options gatherer\n */\n protected _optionsChangeSubscription: Subscription;\n\n /**\n * Popup that is displayed\n */\n protected _popup: Popup;\n\n /**\n * Instance of popper js\n */\n protected _popperJsInstance: Instance;\n\n /**\n * Html element of popup plugin\n */\n protected _popupElement: HTMLElement;\n\n /**\n * Indication whether is code running in browser\n */\n protected _isBrowser: boolean = isPlatformBrowser(this._platformId);\n\n //######################### public properties - implementation of BasicPositioner #########################\n\n /**\n * Options for NgSelect plugin\n */\n public get options(): PopperJsPositionerOptions\n {\n return this._options;\n }\n public set options(options: PopperJsPositionerOptions)\n {\n this._options = extend(true, this._options, options);\n }\n\n //######################### constructor #########################\n constructor(@Inject(NG_SELECT_PLUGIN_INSTANCES) @Optional() public ngSelectPlugins: NgSelectPluginInstances,\n @Optional() public pluginBus: PluginBus,\n public pluginElement: ElementRef,\n protected _changeDetector: ChangeDetectorRef,\n @Inject(POSITIONER_OPTIONS) @Optional() options?: PopperJsPositionerOptions,\n @Inject(DOCUMENT) protected _document?: Document,\n @Inject(PLATFORM_ID) protected _platformId?: Object)\n {\n this._options = extend(true, {}, defaultOptions, options);\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy()\n {\n this._visibilitySubscription?.unsubscribe();\n this._visibilitySubscription = null;\n\n this._optionsChangeSubscription?.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._popperJsInstance?.destroy();\n this._popperJsInstance = null;\n }\n\n //######################### public methods - implementation of BasicPositioner #########################\n\n /**\n * Initialize plugin, to be ready to use, initialize communication with other plugins\n */\n public initialize()\n {\n if(this._optionsGatherer && this._optionsGatherer != this.pluginBus?.selectOptions.optionsGatherer)\n {\n this._optionsChangeSubscription.unsubscribe();\n this._optionsChangeSubscription = null;\n\n this._optionsGatherer = null;\n }\n\n if(!this._optionsGatherer)\n {\n this._optionsGatherer = this.pluginBus?.selectOptions.optionsGatherer;\n\n this._optionsChangeSubscription = this._optionsGatherer.availableOptionsChange.subscribe(() =>\n {\n if(this._popup.popupElement && this._optionsGatherer.availableOptions)\n {\n this._handlePosition();\n }\n });\n }\n\n const popup: Popup = this.ngSelectPlugins[POPUP] as Popup;\n\n if(this._popup && this._popup != popup)\n {\n this._visibilitySubscription.unsubscribe();\n this._visibilitySubscription = null;\n\n this._popup = null;\n }\n\n if(!this._popup)\n {\n this._popup = popup;\n\n this._visibilitySubscription = this._popup.visibilityChange.subscribe(() => this._handlePosition());\n }\n\n this._handlePosition();\n }\n\n /**\n * Initialize plugin options, all operations required to be done with plugin options are handled here\n */\n public initOptions()\n {\n }\n\n /**\n * Explicitly runs invalidation of content (change detection)\n */\n public invalidateVisuals(): void\n {\n }\n\n //######################### protected methods #########################\n\n /**\n * Handles position of popup\n */\n protected _handlePosition()\n {\n this._popupElement = this._popup.popupElement;\n\n // //this has meaning only when popup is outside of ng-element\n // this._changeDetector.markForCheck();\n\n if(this._isBrowser)\n {\n //register events and handle position of opened popup\n if(this._popupElement)\n {\n if(this._popperJsInstance)\n {\n // this._popperJsInstance.update();\n\n return;\n }\n\n this._popperJsInstance = createPopper(this.pluginBus.selectElement.nativeElement,\n this._popupElement,\n {\n placement: 'bottom-start'\n });\n }\n //unregister events\n else\n {\n this._popperJsInstance?.destroy();\n this._popperJsInstance = null;\n }\n }\n }\n\n // /**\n // * Updates min width of popup\n // */\n // protected _updateMinWidth()\n // {\n // if(!this._popupElement)\n // {\n // return;\n // }\n\n // let minWidth = this.pluginBus.selectElement.nativeElement.clientWidth;\n\n // if(isNaN(minWidth) || !isNumber(minWidth))\n // {\n // return;\n // }\n\n // this._popupElement.style.minWidth = `${minWidth}px`;\n // }\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popperjsPositioner.interface.js","sourceRoot":"","sources":["../../../../../../popperJs/src/plugins/positioner/popperJs/popperjsPositioner.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {Positioner} from '@anglr/select';\n\n/**\n * Popper js positioner options\n */\nexport interface PopperJsPositionerOptions\n{\n}\n\n/**\n * Public API for 'PopperJsPositionerComponent'\n */\nexport interface PopperJsPositioner extends Positioner\n{\n}"]}
|