@jetbrains/ring-ui 5.0.155 → 5.0.157
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/components/checkbox/checkbox.css +1 -1
- package/components/global/variables_dark.css +2 -2
- package/components/radio/radio.css +1 -1
- package/dist/_helpers/_rollupPluginBabelHelpers.js +642 -1
- package/dist/_helpers/anchor.js +6 -7
- package/dist/_helpers/button__classes.js +16 -28
- package/dist/_helpers/card.js +107 -95
- package/dist/_helpers/dialog__body-scroll-preventer.js +20 -11
- package/dist/_helpers/footer.js +29 -34
- package/dist/_helpers/query-assist__suggestions.js +91 -74
- package/dist/_helpers/select__filter.js +71 -48
- package/dist/_helpers/services-link.js +41 -29
- package/dist/_helpers/sidebar.js +103 -99
- package/dist/_helpers/theme.js +42 -35
- package/dist/_helpers/title.js +71 -57
- package/dist/alert/alert.js +199 -158
- package/dist/alert/container.js +43 -32
- package/dist/alert-service/alert-service.js +172 -104
- package/dist/analytics/analytics.js +92 -68
- package/dist/analytics/analytics__custom-plugin.js +84 -60
- package/dist/analytics/analytics__fus-plugin.js +28 -15
- package/dist/analytics/analytics__ga-plugin.js +60 -43
- package/dist/analytics/analytics__plugin-utils.js +28 -22
- package/dist/auth/auth.js +36 -4
- package/dist/auth/auth__core.js +1458 -732
- package/dist/auth/background-flow.js +129 -87
- package/dist/auth/down-notification.js +75 -30
- package/dist/auth/iframe-flow.js +136 -75
- package/dist/auth/landing.js +90 -30
- package/dist/auth/request-builder.js +82 -46
- package/dist/auth/response-parser.js +119 -86
- package/dist/auth/storage.js +333 -171
- package/dist/auth/token-validator.js +244 -137
- package/dist/auth/window-flow.js +136 -92
- package/dist/auth-dialog/auth-dialog.js +176 -114
- package/dist/auth-dialog-service/auth-dialog-service.js +32 -7
- package/dist/auth-ng/auth-ng.js +70 -34
- package/dist/auth-ng/auth-ng.mock.js +6 -6
- package/dist/autofocus-ng/autofocus-ng.js +23 -8
- package/dist/avatar/avatar-example-datauri.js +1 -23
- package/dist/avatar/avatar.js +155 -119
- package/dist/avatar/fallback-avatar.js +41 -22
- package/dist/avatar-editor-ng/avatar-editor-ng.js +56 -23
- package/dist/avatar-editor-ng/avatar-editor-ng__template.js +1 -28
- package/dist/avatar-ng/avatar-ng.js +23 -1
- package/dist/badge/badge.js +43 -35
- package/dist/badge-ng/badge-ng.js +13 -1
- package/dist/breadcrumb-ng/breadcrumb-ng.js +15 -29
- package/dist/button/button.js +111 -87
- package/dist/button/button__classes.js +1 -0
- package/dist/button-group/button-group.js +35 -19
- package/dist/button-group/caption.js +22 -14
- package/dist/button-group-ng/button-group-ng.js +13 -7
- package/dist/button-ng/button-ng.js +154 -133
- package/dist/button-set/button-set.js +34 -20
- package/dist/button-set-ng/button-set-ng.js +2 -2
- package/dist/button-toolbar/button-toolbar.js +33 -19
- package/dist/button-toolbar-ng/button-toolbar-ng.js +5 -3
- package/dist/caret/caret.js +225 -188
- package/dist/checkbox/checkbox.js +104 -76
- package/dist/checkbox-ng/checkbox-ng.js +18 -27
- package/dist/clipboard/clipboard-fallback.js +10 -10
- package/dist/clipboard/clipboard.js +131 -34
- package/dist/code/code.js +168 -92
- package/dist/compiler-ng/compiler-ng.js +18 -15
- package/dist/confirm/confirm.js +108 -66
- package/dist/confirm-ng/confirm-ng.js +33 -4
- package/dist/confirm-service/confirm-service.js +66 -42
- package/dist/content-layout/content-layout.js +64 -43
- package/dist/content-layout/sidebar.js +1 -0
- package/dist/contenteditable/contenteditable.js +61 -50
- package/dist/control-label/control-label.js +11 -15
- package/dist/data-list/data-list.js +184 -128
- package/dist/data-list/data-list.mock.js +11 -2
- package/dist/data-list/item.js +174 -143
- package/dist/data-list/selection.js +139 -76
- package/dist/data-list/title.js +13 -1
- package/dist/data-list-ng/data-list-ng.js +31 -1
- package/dist/date-picker/consts.js +18 -15
- package/dist/date-picker/date-input.js +147 -115
- package/dist/date-picker/date-picker.js +285 -228
- package/dist/date-picker/date-popup.js +397 -356
- package/dist/date-picker/day.js +98 -84
- package/dist/date-picker/month-names.js +64 -43
- package/dist/date-picker/month-slider.js +74 -51
- package/dist/date-picker/month.js +21 -15
- package/dist/date-picker/months.js +48 -43
- package/dist/date-picker/weekdays.js +18 -12
- package/dist/date-picker/years.js +109 -84
- package/dist/dialog/dialog.js +189 -141
- package/dist/dialog/dialog__body-scroll-preventer.js +5 -0
- package/dist/dialog-ng/dialog-ng.js +401 -287
- package/dist/dialog-ng/dialog-ng__template.js +1 -70
- package/dist/docked-panel-ng/docked-panel-ng.js +33 -18
- package/dist/dropdown/anchor.js +10 -0
- package/dist/dropdown/dropdown.js +214 -182
- package/dist/dropdown-menu/dropdown-menu.js +102 -72
- package/dist/editable-heading/editable-heading.js +100 -58
- package/dist/error-bubble/error-bubble.js +64 -31
- package/dist/error-message/error-message.js +61 -38
- package/dist/error-message-ng/error-message-ng.js +11 -22
- package/dist/footer/footer.js +11 -1
- package/dist/footer-ng/footer-ng.js +64 -36
- package/dist/form-ng/form-ng.js +66 -56
- package/dist/global/angular-component-factory.js +76 -53
- package/dist/global/compose.js +10 -1
- package/dist/global/composeRefs.js +12 -7
- package/dist/global/controls-height.js +2 -2
- package/dist/global/create-stateful-context.js +19 -19
- package/dist/global/data-tests.js +15 -7
- package/dist/global/dom.js +95 -53
- package/dist/global/focus-sensor-hoc.js +134 -122
- package/dist/global/fuzzy-highlight.js +41 -27
- package/dist/global/get-event-key.js +8 -8
- package/dist/global/get-uid.js +8 -4
- package/dist/global/inject-styles.js +15 -10
- package/dist/global/linear-function.js +2 -2
- package/dist/global/listeners.js +53 -27
- package/dist/global/memoize.js +13 -6
- package/dist/global/normalize-indent.js +51 -19
- package/dist/global/promise-with-timeout.js +8 -6
- package/dist/global/prop-types.js +5 -3
- package/dist/global/react-dom-renderer.js +47 -28
- package/dist/global/react-render-adapter.js +19 -13
- package/dist/global/rerender-hoc.js +41 -16
- package/dist/global/ring-angular-component.js +20 -10
- package/dist/global/schedule-raf.js +6 -5
- package/dist/global/sniffer.js +1 -1
- package/dist/global/theme.js +24 -0
- package/dist/global/trivial-template-tag.js +10 -3
- package/dist/global/typescript-utils.js +6 -2
- package/dist/global/url.js +27 -21
- package/dist/global/use-event-callback.js +4 -6
- package/dist/grid/col.js +55 -35
- package/dist/grid/grid.js +36 -17
- package/dist/grid/row.js +48 -35
- package/dist/group/group.js +27 -17
- package/dist/group-ng/group-ng.js +2 -2
- package/dist/header/header.js +80 -33
- package/dist/header/logo.js +39 -20
- package/dist/header/profile.js +188 -150
- package/dist/header/services-link.js +9 -0
- package/dist/header/services.js +118 -73
- package/dist/header/smart-profile.js +207 -111
- package/dist/header/smart-services.js +115 -62
- package/dist/header/tray-icon.js +38 -21
- package/dist/header/tray.js +34 -21
- package/dist/heading/heading.js +25 -26
- package/dist/heading-ng/heading-ng.js +11 -1
- package/dist/http/http.js +368 -215
- package/dist/http/http.mock.js +104 -49
- package/dist/hub-source/hub-source.js +191 -83
- package/dist/hub-source/hub-source__user.js +45 -11
- package/dist/hub-source/hub-source__users-groups.js +67 -37
- package/dist/i18n/i18n-context.js +14 -10
- package/dist/i18n/i18n.js +11 -7
- package/dist/icon/icon.js +94 -76
- package/dist/icon/icon__svg.js +31 -24
- package/dist/icon/index.js +9 -0
- package/dist/icon-ng/icon-ng.js +27 -15
- package/dist/input/input.js +184 -145
- package/dist/input-ng/input-ng.js +96 -118
- package/dist/island/adaptive-island-hoc.js +45 -30
- package/dist/island/content.js +130 -115
- package/dist/island/header.js +69 -56
- package/dist/island/island.js +40 -28
- package/dist/island-legacy/content-legacy.js +27 -17
- package/dist/island-legacy/header-legacy.js +29 -19
- package/dist/island-legacy/island-legacy.js +27 -17
- package/dist/island-ng/island-content-ng.js +17 -26
- package/dist/island-ng/island-header-ng.js +9 -12
- package/dist/island-ng/island-ng-class-fixer.js +3 -0
- package/dist/island-ng/island-ng.js +6 -10
- package/dist/link/clickableLink.js +61 -44
- package/dist/link/link.js +85 -74
- package/dist/link-ng/link-ng.js +3 -5
- package/dist/list/consts.js +1 -1
- package/dist/list/list.js +696 -602
- package/dist/list/list__custom.js +61 -44
- package/dist/list/list__hint.js +21 -10
- package/dist/list/list__item.js +167 -129
- package/dist/list/list__link.js +54 -37
- package/dist/list/list__separator.js +24 -14
- package/dist/list/list__title.js +32 -22
- package/dist/list/list__users-groups-source.js +131 -54
- package/dist/loader/loader.js +78 -43
- package/dist/loader/loader__core.js +257 -189
- package/dist/loader-inline/loader-inline.js +37 -23
- package/dist/loader-inline-ng/loader-inline-ng.js +2 -2
- package/dist/loader-ng/loader-ng.js +46 -19
- package/dist/loader-screen/loader-screen.js +48 -25
- package/dist/loader-screen-ng/loader-screen-ng.js +46 -30
- package/dist/login-dialog/login-dialog.js +162 -111
- package/dist/login-dialog/service.js +35 -7
- package/dist/markdown/code.js +31 -9
- package/dist/markdown/heading.js +3 -5
- package/dist/markdown/link.js +13 -6
- package/dist/markdown/markdown.js +66 -33
- package/dist/message/message.js +157 -125
- package/dist/message-bundle-ng/message-bundle-ng.js +128 -44
- package/dist/old-browsers-message/old-browsers-message.js +19 -11
- package/dist/old-browsers-message/old-browsers-message__stop.js +8 -0
- package/dist/old-browsers-message/white-list.js +16 -9
- package/dist/pager/pager.js +275 -210
- package/dist/pager-ng/pager-ng.js +36 -1
- package/dist/panel/panel.js +27 -17
- package/dist/panel-ng/panel-ng.js +14 -1
- package/dist/permissions/permissions.js +173 -127
- package/dist/permissions/permissions__cache.js +225 -194
- package/dist/permissions-ng/permissions-ng.js +86 -35
- package/dist/place-under-ng/place-under-ng.js +68 -45
- package/dist/popup/popup.consts.js +1 -1
- package/dist/popup/popup.js +342 -280
- package/dist/popup/popup.target.js +8 -9
- package/dist/popup/position.js +153 -153
- package/dist/popup-menu/popup-menu.js +86 -44
- package/dist/progress-bar/progress-bar.js +97 -80
- package/dist/progress-bar-ng/progress-bar-ng.js +11 -1
- package/dist/promised-click-ng/promised-click-ng.js +92 -58
- package/dist/proxy-attrs/proxy-attrs.js +18 -9
- package/dist/query-assist/query-assist.js +903 -832
- package/dist/query-assist/query-assist__suggestions.js +33 -1
- package/dist/query-assist-ng/query-assist-ng.js +38 -1
- package/dist/radio/radio.js +36 -19
- package/dist/radio/radio__item.js +71 -52
- package/dist/radio-ng/radio-ng.js +14 -25
- package/dist/save-field-ng/save-field-ng.js +86 -52
- package/dist/save-field-ng/save-field-ng__template.js +1 -32
- package/dist/select/select.js +937 -835
- package/dist/select/select__filter.js +33 -0
- package/dist/select/select__popup.js +472 -359
- package/dist/select-ng/select-ng.js +125 -74
- package/dist/select-ng/select-ng__lazy.js +101 -50
- package/dist/select-ng/select-ng__options.js +107 -81
- package/dist/shortcuts/core.js +218 -166
- package/dist/shortcuts/shortcut-title.js +11 -6
- package/dist/shortcuts/shortcuts-hoc.js +47 -19
- package/dist/shortcuts/shortcuts.js +77 -50
- package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +104 -53
- package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +1 -48
- package/dist/shortcuts-ng/shortcuts-ng.js +86 -51
- package/dist/sidebar-ng/sidebar-ng.js +53 -22
- package/dist/sidebar-ng/sidebar-ng__button-template.js +1 -18
- package/dist/sidebar-ng/sidebar-ng__template.js +1 -10
- package/dist/storage/storage.js +35 -4
- package/dist/storage/storage__fallback.js +224 -149
- package/dist/storage/storage__local.js +156 -90
- package/dist/style.css +1 -1
- package/dist/tab-trap/tab-trap.js +157 -122
- package/dist/table/cell.js +28 -14
- package/dist/table/disable-hover-hoc.js +53 -33
- package/dist/table/header-cell.js +87 -64
- package/dist/table/header.js +126 -98
- package/dist/table/multitable.js +127 -107
- package/dist/table/row-with-focus-sensor.js +73 -25
- package/dist/table/row.js +208 -170
- package/dist/table/selection-adapter.js +3 -1
- package/dist/table/selection-shortcuts-hoc.js +184 -181
- package/dist/table/selection.js +228 -156
- package/dist/table/smart-table.js +93 -51
- package/dist/table/table.js +348 -281
- package/dist/table-legacy-ng/table-legacy-ng.js +117 -102
- package/dist/table-legacy-ng/table-legacy-ng__pager.js +42 -10
- package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +92 -69
- package/dist/table-legacy-ng/table-legacy-ng__selection.js +169 -119
- package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +36 -21
- package/dist/table-ng/smart-table-ng.js +31 -1
- package/dist/table-ng/table-ng.js +31 -1
- package/dist/tabs/collapsible-more.js +87 -50
- package/dist/tabs/collapsible-tab.js +45 -38
- package/dist/tabs/collapsible-tabs.js +161 -94
- package/dist/tabs/custom-item.js +2 -4
- package/dist/tabs/dumb-tabs.js +122 -75
- package/dist/tabs/smart-tabs.js +75 -29
- package/dist/tabs/tab-link.js +29 -19
- package/dist/tabs/tab.js +33 -19
- package/dist/tabs/tabs.js +35 -0
- package/dist/tabs-ng/tabs-ng.js +38 -24
- package/dist/tabs-ng/tabs-ng__template.js +1 -38
- package/dist/tag/tag.js +170 -133
- package/dist/tags-input/tags-input.js +428 -327
- package/dist/tags-input-ng/tags-input-ng.js +37 -1
- package/dist/tags-list/tags-list.js +80 -56
- package/dist/template-ng/template-ng.js +50 -39
- package/dist/text/text.js +38 -28
- package/dist/title-ng/title-ng.js +28 -23
- package/dist/toggle/toggle.js +72 -56
- package/dist/toggle-ng/toggle-ng.js +14 -1
- package/dist/tooltip/tooltip.js +192 -146
- package/dist/tooltip-ng/tooltip-ng.js +51 -25
- package/dist/user-agreement/service.js +374 -227
- package/dist/user-agreement/toolbox.eula.js +1 -160
- package/dist/user-agreement/user-agreement.js +128 -86
- package/dist/user-card/card.js +32 -0
- package/dist/user-card/smart-user-card-tooltip.js +116 -51
- package/dist/user-card/tooltip.js +90 -48
- package/dist/user-card/user-card.js +32 -0
- package/dist/user-card-ng/user-card-ng.js +34 -2
- package/package.json +13 -13
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as _objectSpread2, i as _extends, d as _typeof } from '../_helpers/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import 'core-js/modules/es.number.constructor.js';
|
|
3
|
+
import 'core-js/modules/es.array.concat.js';
|
|
4
|
+
import 'core-js/modules/es.array.map.js';
|
|
5
|
+
import 'core-js/modules/es.array.filter.js';
|
|
6
|
+
import 'core-js/modules/es.object.to-string.js';
|
|
7
|
+
import 'core-js/modules/web.dom-collections.for-each.js';
|
|
8
|
+
import 'core-js/modules/es.object.keys.js';
|
|
2
9
|
import angular from 'angular';
|
|
3
10
|
import React from 'react';
|
|
4
11
|
import { unmountComponentAtNode, render } from '../global/react-render-adapter.js';
|
|
@@ -8,7 +15,20 @@ import MessageBundle from '../message-bundle-ng/message-bundle-ng.js';
|
|
|
8
15
|
import { ControlsHeight } from '../global/controls-height.js';
|
|
9
16
|
import SelectNgOptions from './select-ng__options.js';
|
|
10
17
|
import SelectLazy from './select-ng__lazy.js';
|
|
18
|
+
import 'core-js/modules/es.array.iterator.js';
|
|
19
|
+
import 'core-js/modules/es.string.iterator.js';
|
|
20
|
+
import 'core-js/modules/es.weak-map.js';
|
|
21
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
11
22
|
import 'react-dom';
|
|
23
|
+
import 'core-js/modules/es.array.index-of.js';
|
|
24
|
+
import 'core-js/modules/es.array.reduce.js';
|
|
25
|
+
import 'core-js/modules/es.string.trim.js';
|
|
26
|
+
import 'core-js/modules/es.regexp.exec.js';
|
|
27
|
+
import 'core-js/modules/es.array.find.js';
|
|
28
|
+
import 'core-js/modules/es.string.replace.js';
|
|
29
|
+
import 'core-js/modules/es.array.slice.js';
|
|
30
|
+
import 'core-js/modules/es.object.assign.js';
|
|
31
|
+
import 'core-js/modules/es.object.values.js';
|
|
12
32
|
import 'classnames';
|
|
13
33
|
import 'prop-types';
|
|
14
34
|
import '@jetbrains/icons/chevron-down';
|
|
@@ -16,6 +36,7 @@ import '@jetbrains/icons/close-12px';
|
|
|
16
36
|
import 'deep-equal';
|
|
17
37
|
import '../dropdown/dropdown.js';
|
|
18
38
|
import '../global/data-tests.js';
|
|
39
|
+
import 'core-js/modules/es.object.entries.js';
|
|
19
40
|
import '../global/typescript-utils.js';
|
|
20
41
|
import '../_helpers/anchor.js';
|
|
21
42
|
import '@jetbrains/icons/chevron-10px';
|
|
@@ -24,27 +45,41 @@ import 'util-deprecate';
|
|
|
24
45
|
import '../icon/icon__constants.js';
|
|
25
46
|
import '../_helpers/icon.js';
|
|
26
47
|
import '../icon/icon__svg.js';
|
|
48
|
+
import 'core-js/modules/es.string.starts-with.js';
|
|
27
49
|
import '../global/memoize.js';
|
|
50
|
+
import 'core-js/modules/es.map.js';
|
|
28
51
|
import '../button/button.js';
|
|
29
52
|
import '../link/clickableLink.js';
|
|
30
53
|
import '../_helpers/button__classes.js';
|
|
31
54
|
import '../avatar/avatar.js';
|
|
32
55
|
import '../global/url.js';
|
|
56
|
+
import 'core-js/modules/es.string.match.js';
|
|
33
57
|
import '../global/dom.js';
|
|
58
|
+
import 'core-js/modules/es.string.split.js';
|
|
59
|
+
import 'core-js/modules/es.set.js';
|
|
34
60
|
import '../avatar/fallback-avatar.js';
|
|
61
|
+
import 'core-js/modules/es.array.from.js';
|
|
35
62
|
import '../global/get-uid.js';
|
|
63
|
+
import 'core-js/modules/es.regexp.to-string.js';
|
|
36
64
|
import '../popup/popup.js';
|
|
37
65
|
import '../global/schedule-raf.js';
|
|
38
66
|
import '../shortcuts/shortcuts.js';
|
|
39
67
|
import '../shortcuts/core.js';
|
|
68
|
+
import 'core-js/modules/es.array.includes.js';
|
|
69
|
+
import 'core-js/modules/es.string.includes.js';
|
|
70
|
+
import 'core-js/modules/es.array.splice.js';
|
|
71
|
+
import 'core-js/modules/es.array.find-index.js';
|
|
40
72
|
import 'combokeys';
|
|
41
73
|
import '../global/sniffer.js';
|
|
42
74
|
import 'sniffr';
|
|
43
75
|
import '../tab-trap/tab-trap.js';
|
|
44
76
|
import '../popup/position.js';
|
|
77
|
+
import 'core-js/modules/es.array.sort.js';
|
|
45
78
|
import '../popup/popup.consts.js';
|
|
46
79
|
import '../popup/popup.target.js';
|
|
47
80
|
import '../list/list.js';
|
|
81
|
+
import 'core-js/modules/es.symbol.js';
|
|
82
|
+
import 'core-js/modules/es.symbol.description.js';
|
|
48
83
|
import 'react-virtualized/dist/es/List';
|
|
49
84
|
import 'react-virtualized/dist/es/AutoSizer';
|
|
50
85
|
import 'react-virtualized/dist/es/WindowScroller';
|
|
@@ -86,22 +121,22 @@ import '../caret/caret.js';
|
|
|
86
121
|
import '../text/text.js';
|
|
87
122
|
import '../_helpers/select__filter.js';
|
|
88
123
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
124
|
+
var LOADER_DELAY = 150; // delay to show loader in ms
|
|
125
|
+
var INFINITE_SCROLL_PACK_SIZE = 50;
|
|
126
|
+
var DIALOG_NG_SELECTOR = '[data-anchor=dialog-container][data-in-sidebar=false]';
|
|
92
127
|
/**
|
|
93
128
|
* @name Select Ng
|
|
94
129
|
*/
|
|
95
130
|
|
|
96
|
-
|
|
131
|
+
var angularModule = angular.module('Ring.select', [SelectNgOptions, MessageBundle]);
|
|
97
132
|
angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
98
|
-
|
|
133
|
+
var types = {
|
|
99
134
|
input: Select.Type.INPUT,
|
|
100
135
|
button: Select.Type.BUTTON,
|
|
101
136
|
dropdown: Select.Type.CUSTOM,
|
|
102
137
|
suggest: Select.Type.INPUT
|
|
103
138
|
};
|
|
104
|
-
|
|
139
|
+
var sizes = {
|
|
105
140
|
FULL: Select.Size.FULL,
|
|
106
141
|
S: Select.Size.S,
|
|
107
142
|
M: Select.Size.M,
|
|
@@ -167,17 +202,17 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
167
202
|
controllerAs: 'selectCtrl',
|
|
168
203
|
require: ['?ngModel', 'rgSelect'],
|
|
169
204
|
link: function link(scope, iElement, iAttrs, ctrls) {
|
|
170
|
-
|
|
171
|
-
|
|
205
|
+
var ngModelCtrl = ctrls[0];
|
|
206
|
+
var rgSelectCtrl = ctrls[1];
|
|
172
207
|
rgSelectCtrl.setNgModelCtrl(ngModelCtrl);
|
|
173
208
|
},
|
|
174
209
|
controller: ["$q", "$scope", "$element", "$attrs", "$timeout", "SelectOptions", "RingMessageBundle", function controller($q, $scope, $element, $attrs, $timeout, SelectOptions, RingMessageBundle) {
|
|
175
210
|
/*eslint-disable consistent-this*/
|
|
176
|
-
|
|
211
|
+
var ctrl = this;
|
|
177
212
|
/*eslint-enable consistent-this*/
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
213
|
+
var element = $element[0];
|
|
214
|
+
var container = document.createElement('span');
|
|
215
|
+
var infiniteScrollPackSize = Number(ctrl.infiniteScrollPackSize) || (ctrl.withInfiniteScroll ? INFINITE_SCROLL_PACK_SIZE : 0);
|
|
181
216
|
|
|
182
217
|
/**
|
|
183
218
|
* Properties
|
|
@@ -187,8 +222,8 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
187
222
|
ctrl.query = null;
|
|
188
223
|
ctrl.dataReceived = false;
|
|
189
224
|
ctrl.skipNextModelSync = false;
|
|
190
|
-
|
|
191
|
-
ctrl.setNgModelCtrl = ngModelCtrl
|
|
225
|
+
var scope = ctrl.optionsScope ? ctrl.optionsScope : $scope.$parent;
|
|
226
|
+
ctrl.setNgModelCtrl = function (ngModelCtrl) {
|
|
192
227
|
ctrl.ngModelCtrl = ngModelCtrl;
|
|
193
228
|
};
|
|
194
229
|
|
|
@@ -221,10 +256,10 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
221
256
|
return ctrl.lastSkip < 0 ? 0 : ctrl.lastSkip + infiniteScrollPackSize;
|
|
222
257
|
}
|
|
223
258
|
function isInDialog() {
|
|
224
|
-
|
|
259
|
+
var dialogContainer = document.querySelector(DIALOG_NG_SELECTOR);
|
|
225
260
|
return dialogContainer && dialogContainer.contains(element);
|
|
226
261
|
}
|
|
227
|
-
ctrl.syncSelectToNgModel = selectedValue
|
|
262
|
+
ctrl.syncSelectToNgModel = function (selectedValue) {
|
|
228
263
|
function valueOf(option) {
|
|
229
264
|
if (option && option.originalModel) {
|
|
230
265
|
return ctrl.optionsParser.getValue(option.originalModel);
|
|
@@ -242,9 +277,9 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
242
277
|
}
|
|
243
278
|
}
|
|
244
279
|
};
|
|
245
|
-
ctrl.convertNgModelToSelect = model
|
|
280
|
+
ctrl.convertNgModelToSelect = function (model) {
|
|
246
281
|
function convertItem(modelValue) {
|
|
247
|
-
|
|
282
|
+
var item = ctrl.optionsParser.getOptionByValue(modelValue, ctrl.loadedOptions || []);
|
|
248
283
|
|
|
249
284
|
// could happen when lazily fetching the data
|
|
250
285
|
if (item === undefined) {
|
|
@@ -256,7 +291,7 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
256
291
|
selectedLabel: ctrl.optionsParser.getSelectedLabel(item),
|
|
257
292
|
description: ctrl.optionsParser.getDescription(item),
|
|
258
293
|
originalModel: item
|
|
259
|
-
},
|
|
294
|
+
}, _typeof(item) === 'object' ? item : null);
|
|
260
295
|
}
|
|
261
296
|
if (model !== undefined && model !== null) {
|
|
262
297
|
if (Array.isArray(model)) {
|
|
@@ -267,23 +302,25 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
267
302
|
}
|
|
268
303
|
return undefined;
|
|
269
304
|
};
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
ctrl.getOptions = (query, skip)
|
|
273
|
-
|
|
274
|
-
|
|
305
|
+
var lastQuery = null;
|
|
306
|
+
var inProcessQueries = 0;
|
|
307
|
+
ctrl.getOptions = function (query, skip) {
|
|
308
|
+
return $q.when(ctrl.optionsParser.getOptions(query, skip));
|
|
309
|
+
};
|
|
310
|
+
var loaderDelayTimeout = null;
|
|
311
|
+
ctrl.showLoader = function () {
|
|
275
312
|
if (getType() !== 'suggest') {
|
|
276
313
|
reRenderSelect({
|
|
277
314
|
loading: true
|
|
278
315
|
});
|
|
279
316
|
}
|
|
280
317
|
};
|
|
281
|
-
ctrl.loadOptionsToSelect = query
|
|
318
|
+
ctrl.loadOptionsToSelect = function (query) {
|
|
282
319
|
if (ctrl.stopLoadingNewOptions && query === lastQuery) {
|
|
283
320
|
return $q.resolve();
|
|
284
321
|
}
|
|
285
322
|
ctrl.stopLoadingNewOptions = false;
|
|
286
|
-
|
|
323
|
+
var skip = getCurrentSkipParameter(query, lastQuery);
|
|
287
324
|
lastQuery = query;
|
|
288
325
|
$timeout.cancel(loaderDelayTimeout);
|
|
289
326
|
|
|
@@ -295,7 +332,7 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
295
332
|
ctrl.showLoader();
|
|
296
333
|
}
|
|
297
334
|
inProcessQueries++;
|
|
298
|
-
return ctrl.getOptions(query, skip).then(results
|
|
335
|
+
return ctrl.getOptions(query, skip).then(function (results) {
|
|
299
336
|
inProcessQueries--;
|
|
300
337
|
if (query !== lastQuery) {
|
|
301
338
|
return; // do not process the result if queries don't match
|
|
@@ -305,14 +342,14 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
305
342
|
return; // do not process the result if skips not match
|
|
306
343
|
}
|
|
307
344
|
|
|
308
|
-
|
|
345
|
+
var items = memorizeOptions(results.data || results, skip).map(ctrl.convertNgModelToSelect);
|
|
309
346
|
$timeout.cancel(loaderDelayTimeout);
|
|
310
347
|
ctrl.dataReceived = true;
|
|
311
348
|
reRenderSelect({
|
|
312
349
|
data: items,
|
|
313
350
|
loading: false
|
|
314
351
|
});
|
|
315
|
-
}).catch(error
|
|
352
|
+
}).catch(function (error) {
|
|
316
353
|
inProcessQueries--;
|
|
317
354
|
$timeout.cancel(loaderDelayTimeout);
|
|
318
355
|
reRenderSelect({
|
|
@@ -333,17 +370,21 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
333
370
|
}
|
|
334
371
|
}
|
|
335
372
|
function syncNgModelToSelect() {
|
|
336
|
-
$scope.$watch(()
|
|
373
|
+
$scope.$watch(function () {
|
|
374
|
+
return ctrl.ngModelCtrl && ctrl.ngModelCtrl.$modelValue;
|
|
375
|
+
}, setSelectModel, true);
|
|
337
376
|
}
|
|
338
377
|
function syncDisabled() {
|
|
339
|
-
$attrs.$observe('disabled', newValue
|
|
378
|
+
$attrs.$observe('disabled', function (newValue) {
|
|
340
379
|
reRenderSelect({
|
|
341
380
|
disabled: newValue
|
|
342
381
|
});
|
|
343
382
|
});
|
|
344
383
|
}
|
|
345
384
|
function syncMultiple() {
|
|
346
|
-
$scope.$watch(
|
|
385
|
+
$scope.$watch(function () {
|
|
386
|
+
return ctrl.multiple;
|
|
387
|
+
}, function () {
|
|
347
388
|
if (angular.isDefined(ctrl.multiple)) {
|
|
348
389
|
reRenderSelect({
|
|
349
390
|
multiple: ctrl.multiple
|
|
@@ -352,7 +393,9 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
352
393
|
});
|
|
353
394
|
}
|
|
354
395
|
function syncConfig() {
|
|
355
|
-
$scope.$watchCollection(
|
|
396
|
+
$scope.$watchCollection(function () {
|
|
397
|
+
return ctrl.config;
|
|
398
|
+
}, function (config, old) {
|
|
356
399
|
if (config !== old) {
|
|
357
400
|
reRenderSelect(config);
|
|
358
401
|
}
|
|
@@ -363,13 +406,13 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
363
406
|
}
|
|
364
407
|
function attachDropdownIfNeeded() {
|
|
365
408
|
if (getType() === 'dropdown') {
|
|
366
|
-
|
|
409
|
+
var handler = function handler() {
|
|
367
410
|
ctrl.selectInstance._clickHandler();
|
|
368
411
|
};
|
|
369
412
|
element.addEventListener('click', handler);
|
|
370
|
-
element.addEventListener('keydown', event
|
|
371
|
-
|
|
372
|
-
|
|
413
|
+
element.addEventListener('keydown', function (event) {
|
|
414
|
+
var key = getEventKey(event);
|
|
415
|
+
var modifier = event.ctrlKey || event.altKey || event.metaKey || event.shiftKey;
|
|
373
416
|
if (key === 'Enter' && !modifier || key === ' ') {
|
|
374
417
|
if (!isSelectPopupOpen()) {
|
|
375
418
|
handler();
|
|
@@ -391,7 +434,7 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
391
434
|
}
|
|
392
435
|
}
|
|
393
436
|
function listenToRouteChanges() {
|
|
394
|
-
$scope.$on('$locationChangeSuccess', ()
|
|
437
|
+
$scope.$on('$locationChangeSuccess', function () {
|
|
395
438
|
if (isSelectPopupOpen()) {
|
|
396
439
|
ctrl.selectInstance._hidePopup();
|
|
397
440
|
}
|
|
@@ -409,11 +452,11 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
409
452
|
}
|
|
410
453
|
}
|
|
411
454
|
function reRenderSelect(props) {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
455
|
+
var _ctrl$selectInstance;
|
|
456
|
+
if ((_ctrl$selectInstance = ctrl.selectInstance) !== null && _ctrl$selectInstance !== void 0 && _ctrl$selectInstance.node) {
|
|
457
|
+
ctrl.selectInstance.rerender(_objectSpread2(_objectSpread2({}, props), {}, {
|
|
415
458
|
ref: selectRef
|
|
416
|
-
});
|
|
459
|
+
}));
|
|
417
460
|
}
|
|
418
461
|
}
|
|
419
462
|
|
|
@@ -431,7 +474,7 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
431
474
|
}
|
|
432
475
|
}
|
|
433
476
|
function createDefaultConfig() {
|
|
434
|
-
|
|
477
|
+
var defaultConfig = {
|
|
435
478
|
label: ctrl.label || RingMessageBundle.select_label(),
|
|
436
479
|
selectedLabel: ctrl.selectedLabel,
|
|
437
480
|
allowAny: getType() === 'suggest',
|
|
@@ -450,49 +493,49 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
450
493
|
targetElement: getType() === 'dropdown' ? element : null,
|
|
451
494
|
size: getSelectSize(),
|
|
452
495
|
height: ControlsHeight.S,
|
|
453
|
-
onBeforeOpen: ()
|
|
496
|
+
onBeforeOpen: function onBeforeOpen() {
|
|
454
497
|
resetMemorizedOptions();
|
|
455
498
|
ctrl.loadOptionsToSelect(ctrl.query);
|
|
456
|
-
$scope.$evalAsync(()
|
|
499
|
+
$scope.$evalAsync(function () {});
|
|
457
500
|
},
|
|
458
|
-
onOpen: ()
|
|
459
|
-
$scope.$evalAsync(()
|
|
501
|
+
onOpen: function onOpen() {
|
|
502
|
+
$scope.$evalAsync(function () {
|
|
460
503
|
ctrl.onOpen();
|
|
461
504
|
});
|
|
462
505
|
},
|
|
463
|
-
onClose: ()
|
|
506
|
+
onClose: function onClose() {
|
|
464
507
|
ctrl.query = null;
|
|
465
|
-
$scope.$evalAsync(()
|
|
508
|
+
$scope.$evalAsync(function () {
|
|
466
509
|
ctrl.onClose();
|
|
467
510
|
});
|
|
468
511
|
},
|
|
469
|
-
onSelect: (selected, event)
|
|
470
|
-
$scope.$evalAsync(()
|
|
512
|
+
onSelect: function onSelect(selected, event) {
|
|
513
|
+
$scope.$evalAsync(function () {
|
|
471
514
|
ctrl.onSelect({
|
|
472
|
-
selected,
|
|
473
|
-
event
|
|
515
|
+
selected: selected,
|
|
516
|
+
event: event
|
|
474
517
|
});
|
|
475
518
|
});
|
|
476
519
|
},
|
|
477
|
-
onDeselect: (deselected, event)
|
|
478
|
-
$scope.$evalAsync(()
|
|
520
|
+
onDeselect: function onDeselect(deselected, event) {
|
|
521
|
+
$scope.$evalAsync(function () {
|
|
479
522
|
ctrl.onDeselect({
|
|
480
|
-
deselected,
|
|
481
|
-
event
|
|
523
|
+
deselected: deselected,
|
|
524
|
+
event: event
|
|
482
525
|
});
|
|
483
526
|
});
|
|
484
527
|
},
|
|
485
|
-
onChange: (selected, event)
|
|
528
|
+
onChange: function onChange(selected, event) {
|
|
486
529
|
ctrl.syncSelectToNgModel(selected);
|
|
487
|
-
$scope.$evalAsync(()
|
|
530
|
+
$scope.$evalAsync(function () {
|
|
488
531
|
ctrl.onChange({
|
|
489
|
-
selected,
|
|
490
|
-
event
|
|
532
|
+
selected: selected,
|
|
533
|
+
event: event
|
|
491
534
|
});
|
|
492
535
|
});
|
|
493
536
|
},
|
|
494
|
-
onFilter: query
|
|
495
|
-
$scope.$evalAsync(()
|
|
537
|
+
onFilter: function onFilter(query) {
|
|
538
|
+
$scope.$evalAsync(function () {
|
|
496
539
|
ctrl.query = query;
|
|
497
540
|
if (ctrl.externalFilter) {
|
|
498
541
|
ctrl.loadOptionsToSelect(query);
|
|
@@ -502,17 +545,19 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
502
545
|
}
|
|
503
546
|
});
|
|
504
547
|
},
|
|
505
|
-
reloadOptions: query
|
|
506
|
-
$scope.$evalAsync(()
|
|
548
|
+
reloadOptions: function reloadOptions(query) {
|
|
549
|
+
$scope.$evalAsync(function () {
|
|
507
550
|
ctrl.loadOptionsToSelect(query || ctrl.query);
|
|
508
551
|
});
|
|
509
552
|
},
|
|
510
|
-
getLoadedOptions: ()
|
|
553
|
+
getLoadedOptions: function getLoadedOptions() {
|
|
554
|
+
return ctrl.loadedOptions;
|
|
555
|
+
}
|
|
511
556
|
};
|
|
512
557
|
if (infiniteScrollPackSize) {
|
|
513
|
-
defaultConfig.onLoadMore = ()
|
|
558
|
+
defaultConfig.onLoadMore = function () {
|
|
514
559
|
if (inProcessQueries === 0) {
|
|
515
|
-
$scope.$evalAsync(()
|
|
560
|
+
$scope.$evalAsync(function () {
|
|
516
561
|
ctrl.loadOptionsToSelect(ctrl.query);
|
|
517
562
|
});
|
|
518
563
|
}
|
|
@@ -524,15 +569,17 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
524
569
|
if (!ctrl.defaultConfig || !ctrl.config) {
|
|
525
570
|
return;
|
|
526
571
|
}
|
|
527
|
-
Object.keys(ctrl.defaultConfig).filter(
|
|
572
|
+
Object.keys(ctrl.defaultConfig).filter(function (propName) {
|
|
573
|
+
return ctrl.config[propName] === ctrl.defaultConfig[propName];
|
|
574
|
+
}).forEach(function (propName) {
|
|
528
575
|
delete ctrl.config[propName];
|
|
529
576
|
});
|
|
530
577
|
}
|
|
531
|
-
ctrl.$onDestroy = ()
|
|
578
|
+
ctrl.$onDestroy = function () {
|
|
532
579
|
unmountComponentAtNode(container);
|
|
533
580
|
removeDefaultConfigPropFromUserConfig();
|
|
534
581
|
};
|
|
535
|
-
ctrl.$onInit = ()
|
|
582
|
+
ctrl.$onInit = function () {
|
|
536
583
|
ctrl.optionsParser = new SelectOptions(scope, ctrl.options);
|
|
537
584
|
ctrl.lazy = ctrl.hasOwnProperty('lazy') ? ctrl.lazy : true;
|
|
538
585
|
|
|
@@ -541,7 +588,9 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
541
588
|
*/
|
|
542
589
|
if (ctrl.externalFilter) {
|
|
543
590
|
ctrl.filter = ctrl.filter || {};
|
|
544
|
-
ctrl.filter.fn = ()
|
|
591
|
+
ctrl.filter.fn = function () {
|
|
592
|
+
return true;
|
|
593
|
+
};
|
|
545
594
|
}
|
|
546
595
|
ctrl.defaultConfig = createDefaultConfig();
|
|
547
596
|
ctrl.config = angular.extend({}, ctrl.defaultConfig, ctrl.config || {});
|
|
@@ -557,7 +606,9 @@ angularModule.directive('rgSelect', function rgSelectDirective() {
|
|
|
557
606
|
element.appendChild(container);
|
|
558
607
|
if (!ctrl.lazy) {
|
|
559
608
|
if (!ctrl.optionsParser.datasourceIsFunction) {
|
|
560
|
-
$scope.$watch(
|
|
609
|
+
$scope.$watch(function () {
|
|
610
|
+
return ctrl.optionsParser.getOptions(ctrl.query, 0);
|
|
611
|
+
}, optionsWatcher, true);
|
|
561
612
|
} else {
|
|
562
613
|
ctrl.loadOptionsToSelect(ctrl.query);
|
|
563
614
|
}
|