@coolon/angular-ui-powerups 16.1.0-aplpha.13 → 16.1.0-aplpha.130
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/assets/activities/input-activities.scss +14 -6
- package/assets/draw.scss +20 -0
- package/assets/form.scss +74 -27
- package/assets/icons.scss +1 -0
- package/assets/layout.scss +3 -0
- package/assets/styles.scss +2 -0
- package/assets/table.scss +47 -27
- package/assets/tabs.scss +15 -5
- package/esm2022/lib/animations/slide-animations.mjs +15 -10
- package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
- package/esm2022/lib/components/commands/command/command.component.mjs +24 -10
- package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
- package/esm2022/lib/components/commands/command-face.mjs +11 -11
- package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +11 -11
- package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +6 -4
- package/esm2022/lib/components/components.module.mjs +27 -8
- package/esm2022/lib/components/disposable-component.mjs +36 -40
- package/esm2022/lib/components/exports.mjs +9 -2
- package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
- package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +2 -2
- package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -6
- package/esm2022/lib/components/forms/form-field.mjs +2 -0
- package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +2 -2
- package/esm2022/lib/components/forms/number-input/number-input.component.mjs +84 -9
- package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
- package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
- package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
- package/esm2022/lib/components/forms/string-input/string-input.component.mjs +26 -10
- package/esm2022/lib/components/forms/text-input/text-input.component.mjs +6 -2
- package/esm2022/lib/components/icon/icon.component.mjs +7 -4
- package/esm2022/lib/components/loadable-component.mjs +49 -0
- package/esm2022/lib/components/resize-aware.component.mjs +61 -24
- package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
- package/esm2022/lib/components/tables/abstract-table-model.mjs +77 -47
- package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
- package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
- package/esm2022/lib/components/tables/column/column-model.mjs +16 -6
- package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
- package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/selection-column-model.mjs +35 -13
- package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +1 -1
- package/esm2022/lib/components/tables/editor/edit-session.mjs +3 -1
- package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
- package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
- package/esm2022/lib/components/tables/footer/footer-row-model.mjs +38 -0
- package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +7 -0
- package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +23 -5
- package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
- package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +3 -2
- package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +150 -40
- package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +6 -6
- package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +30 -0
- package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +7 -2
- package/esm2022/lib/components/tables/table/table-model.mjs +12 -3
- package/esm2022/lib/components/tables/table/table.component.mjs +39 -61
- package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
- package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
- package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +12 -5
- package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +4 -7
- package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
- package/esm2022/lib/directives/directives.module.mjs +1 -1
- package/esm2022/lib/directives/exports.mjs +2 -1
- package/esm2022/lib/directives/highlight.pipe.mjs +9 -7
- package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
- package/esm2022/lib/interaction/activity.mjs +14 -6
- package/esm2022/lib/interaction/alert.mjs +2 -2
- package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +8 -4
- package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +20 -11
- package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +28 -11
- package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
- package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
- package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
- package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
- package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
- package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +3 -3
- package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +21 -5
- package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
- package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +4 -2
- package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
- package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +134 -0
- package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
- package/esm2022/lib/interaction/exports.mjs +3 -1
- package/esm2022/lib/interaction/interaction-context-provider.mjs +3 -0
- package/esm2022/lib/interaction/interaction-context.mjs +3 -2
- package/esm2022/lib/interaction/interaction.module.mjs +7 -9
- package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +3 -4
- package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
- package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
- package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
- package/esm2022/lib/place/guards/place.guard.mjs +6 -5
- package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
- package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
- package/esm2022/lib/place/place-auth-service.mjs +5 -5
- package/esm2022/lib/place/place-component.mjs +29 -19
- package/esm2022/lib/place/place-definition.mjs +15 -4
- package/esm2022/lib/place/place-history.mjs +2 -2
- package/esm2022/lib/place/place-router.mjs +22 -20
- package/esm2022/lib/place/place.decorator.mjs +2 -2
- package/esm2022/lib/place/place.module.mjs +1 -5
- package/esm2022/lib/place/route/formatter.mjs +2 -2
- package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
- package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
- package/esm2022/lib/place/url-snapshot.mjs +3 -3
- package/esm2022/lib/place/visit-segment.mjs +2 -2
- package/esm2022/lib/place/visit.mjs +2 -2
- package/fesm2022/coolon-angular-ui-powerups.mjs +1532 -637
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/animations/slide-animations.d.ts +1 -0
- package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
- package/lib/components/commands/command/command.component.d.ts +2 -1
- package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
- package/lib/components/commands/command-face.d.ts +5 -7
- package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
- package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
- package/lib/components/components.module.d.ts +56 -53
- package/lib/components/disposable-component.d.ts +16 -8
- package/lib/components/exports.d.ts +8 -1
- package/lib/components/forms/abstract-input.component.d.ts +13 -5
- package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
- package/lib/components/forms/form-field.d.ts +5 -0
- package/lib/components/forms/number-input/number-input.component.d.ts +16 -4
- package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
- package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
- package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
- package/lib/components/forms/string-input/string-input.component.d.ts +6 -1
- package/lib/components/forms/text-input/text-input.component.d.ts +3 -0
- package/lib/components/loadable-component.d.ts +17 -0
- package/lib/components/resize-aware.component.d.ts +24 -5
- package/lib/components/switch-case/switch-case.component.d.ts +2 -3
- package/lib/components/tables/abstract-table-model.d.ts +29 -11
- package/lib/components/tables/abstract-table.component.d.ts +4 -3
- package/lib/components/tables/column/column-manager.d.ts +19 -0
- package/lib/components/tables/column/column-model.d.ts +7 -3
- package/lib/components/tables/column/column-order-manager.d.ts +20 -0
- package/lib/components/tables/column/custom-template-column-model.d.ts +3 -2
- package/lib/components/tables/column/custom-value-column-model.d.ts +3 -2
- package/lib/components/tables/column/editor-controls-column-model.d.ts +3 -2
- package/lib/components/tables/column/list-propery-column-model.d.ts +3 -2
- package/lib/components/tables/column/property-column-model.d.ts +3 -2
- package/lib/components/tables/column/selection-column-model.d.ts +10 -4
- package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
- package/lib/components/tables/editor/edit-session.d.ts +1 -1
- package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
- package/lib/components/tables/footer/footer-row-model.d.ts +22 -0
- package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +6 -0
- package/lib/components/tables/renderer/cell-portal-ref.d.ts +20 -12
- package/lib/components/tables/renderer/table-body/table-body.component.d.ts +40 -16
- package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +2 -3
- package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +11 -0
- package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +2 -1
- package/lib/components/tables/table/table-model.d.ts +4 -4
- package/lib/components/tables/table/table.component.d.ts +14 -10
- package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
- package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -2
- package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
- package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
- package/lib/directives/exports.d.ts +1 -0
- package/lib/directives/resize-observer.directive.d.ts +16 -0
- package/lib/interaction/activity.d.ts +4 -2
- package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -0
- package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +10 -5
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +7 -3
- package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
- package/lib/interaction/components/editors/edit-context.d.ts +1 -1
- package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +5 -3
- package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
- package/lib/interaction/exports.d.ts +2 -0
- package/lib/interaction/interaction-context-provider.d.ts +6 -0
- package/lib/interaction/interaction-context.d.ts +2 -0
- package/lib/interaction/interaction.module.d.ts +28 -28
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
- package/lib/place/place-auth-service.d.ts +4 -4
- package/lib/place/place-component.d.ts +7 -5
- package/lib/place/place-definition.d.ts +2 -0
- package/lib/place/place-router.d.ts +6 -2
- package/lib/place/place.module.d.ts +4 -5
- package/package.json +6 -4
- package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
- package/lib/components/tables/column/column-list-model.d.ts +0 -13
|
@@ -2,27 +2,27 @@ import { ObserversModule } from '@angular/cdk/observers';
|
|
|
2
2
|
import * as i1$1 from '@angular/common';
|
|
3
3
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { ElementRef, Directive, Inject, Host, Optional, Input, HostListener, inject, NgZone, Injectable, Pipe, NgModule, Component, ContentChild, HostBinding, ViewEncapsulation, InjectionToken, ViewChild, ViewChildren, EventEmitter, Output, SkipSelf, Self, ContentChildren, ComponentRef, Injector, PLATFORM_ID } from '@angular/core';
|
|
5
|
+
import { ElementRef, Directive, Inject, Host, Optional, Input, HostListener, ChangeDetectorRef, inject, NgZone, Injectable, Pipe, NgModule, Component, ContentChild, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, InjectionToken, ViewChild, ViewChildren, EventEmitter, Output, SkipSelf, Self, ContentChildren, ComponentRef, Injector, PLATFORM_ID } from '@angular/core';
|
|
6
6
|
import * as i2$4 from '@angular/forms';
|
|
7
7
|
import { FormsModule } from '@angular/forms';
|
|
8
8
|
import * as i4$2 from '@angular/material/form-field';
|
|
9
9
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
10
10
|
import * as i3 from '@angular/material/input';
|
|
11
11
|
import { MatInputModule, MatInput } from '@angular/material/input';
|
|
12
|
-
import * as i4$
|
|
12
|
+
import * as i4$3 from '@angular/material/select';
|
|
13
13
|
import { MatSelectModule } from '@angular/material/select';
|
|
14
|
-
import * as i3$
|
|
14
|
+
import * as i3$2 from '@angular/material/tabs';
|
|
15
15
|
import { MatTabsModule, MAT_TABS_CONFIG } from '@angular/material/tabs';
|
|
16
16
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
17
|
-
import * as
|
|
17
|
+
import * as i1$4 from '@angular/cdk/portal';
|
|
18
18
|
import { ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';
|
|
19
19
|
import * as i1$2 from '@angular/cdk/scrolling';
|
|
20
|
-
import { CdkScrollableModule } from '@angular/cdk/scrolling';
|
|
20
|
+
import { CdkVirtualScrollViewport, CdkScrollableModule, ScrollingModule } from '@angular/cdk/scrolling';
|
|
21
21
|
import * as i7 from '@angular/material/autocomplete';
|
|
22
22
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
23
23
|
import * as i2 from '@angular/material/button';
|
|
24
24
|
import { MatButton, MatButtonModule } from '@angular/material/button';
|
|
25
|
-
import * as
|
|
25
|
+
import * as i3$1 from '@angular/material/checkbox';
|
|
26
26
|
import { MAT_CHECKBOX_DEFAULT_OPTIONS, MatCheckboxModule } from '@angular/material/checkbox';
|
|
27
27
|
import * as i2$3 from '@angular/material/divider';
|
|
28
28
|
import { MatDividerModule } from '@angular/material/divider';
|
|
@@ -38,35 +38,34 @@ import * as i2$6 from '@angular/material/table';
|
|
|
38
38
|
import { MatTableModule } from '@angular/material/table';
|
|
39
39
|
import * as i4$1 from '@angular/material/tooltip';
|
|
40
40
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
41
|
+
import * as i4$4 from 'ng-table-virtual-scroll';
|
|
42
|
+
import { TableVirtualScrollDataSource, TableVirtualScrollModule } from 'ng-table-virtual-scroll';
|
|
41
43
|
import * as i1$3 from '@coolon/pectin';
|
|
42
|
-
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl,
|
|
43
|
-
import { __decorate,
|
|
44
|
+
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, proxify, ValueModel, Proxify, Logger, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, DelegatingListModel, MutableValueModel, DelegateToValueModel, FocusManager, EventListenerList, Guard, DelegatingFormListModel, Binding, DebugContext, DelegateToListModel, DelegatingFormValueModel, ListModel, Functions, PageController, SelectionModel, CanProxy, MultipleSelectionModel, WatchList, ProxyRegistry, DirtyTrackingForm, DependsOnOptions, DelegatingCommand, ComputedListModel, Deferred, ReducingValueModel, AndValueModel } from '@coolon/pectin';
|
|
45
|
+
import { __decorate, __metadata, __param } from 'tslib';
|
|
44
46
|
import * as i1 from '@angular/platform-browser';
|
|
45
47
|
import escapeStringRegexp from 'escape-string-regexp';
|
|
46
|
-
import { isEmpty, isString, isFunction, isNil, isInteger, isObject, isEqual, join, first, uniq,
|
|
48
|
+
import { escape, isEmpty, isString, isFunction, isNil, isInteger, isObject, isEqual, join, last, first, uniq, findLast, isNumber, isNaN as isNaN$1 } from 'lodash-es';
|
|
47
49
|
import { marked } from 'marked';
|
|
48
|
-
import {
|
|
50
|
+
import { MemoizeGet, lang as lang$1, assert as assert$1, Stringy, Klass, Opts } from '@coolon/typescript-utilities';
|
|
49
51
|
import { Enum } from 'typescript-string-enums';
|
|
50
|
-
import { lang as lang$1, assert as assert$1, Stringy, Klass, Opts } from '@coolon/typescript-utilities';
|
|
51
52
|
import * as i5 from '@angular/material/core';
|
|
53
|
+
import { Memoize } from 'fast-typescript-memoize';
|
|
52
54
|
import { produce } from 'immer';
|
|
53
55
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
54
|
-
import {
|
|
56
|
+
import { generateKeyBetween } from 'fractional-indexing';
|
|
55
57
|
import * as i5$1 from '@angular/cdk/a11y';
|
|
56
58
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
57
|
-
import * as
|
|
58
|
-
import { FlexModule, GridModule } from '@angular/flex-layout';
|
|
59
|
-
import * as i1$6 from '@angular/material/dialog';
|
|
59
|
+
import * as i1$7 from '@angular/material/dialog';
|
|
60
60
|
import { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
|
|
61
|
-
import * as i1$
|
|
62
|
-
import { ActivatedRouteSnapshot, UrlSegment, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterModule } from '@angular/router';
|
|
63
|
-
import { Memoize as Memoize$1 } from 'typescript-memoize';
|
|
61
|
+
import * as i1$5 from '@angular/router';
|
|
62
|
+
import { ActivatedRoute, ActivatedRouteSnapshot, UrlSegment, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterModule } from '@angular/router';
|
|
64
63
|
import 'reflect-metadata';
|
|
65
|
-
import * as i1$
|
|
64
|
+
import * as i1$6 from '@angular/cdk/overlay';
|
|
65
|
+
import { style, trigger, transition, animate, group, query } from '@angular/animations';
|
|
66
66
|
import { MatCardModule } from '@angular/material/card';
|
|
67
67
|
import * as i3$3 from '@angular/material/list';
|
|
68
68
|
import { MatListModule } from '@angular/material/list';
|
|
69
|
-
import { style, query, group, animate, trigger, transition } from '@angular/animations';
|
|
70
69
|
|
|
71
70
|
class CommandDirective extends GarbageCollector {
|
|
72
71
|
elementRef;
|
|
@@ -187,6 +186,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
187
186
|
args: ['click', ['$event']]
|
|
188
187
|
}] } });
|
|
189
188
|
|
|
189
|
+
class HighlightTextModelDirective extends GarbageCollector {
|
|
190
|
+
#aupHighlightTextModel_accessor_storage = proxify((ValueModel));
|
|
191
|
+
get aupHighlightTextModel() { return this.#aupHighlightTextModel_accessor_storage; }
|
|
192
|
+
set aupHighlightTextModel(value) { this.#aupHighlightTextModel_accessor_storage = value; }
|
|
193
|
+
constructor() {
|
|
194
|
+
super();
|
|
195
|
+
}
|
|
196
|
+
ngOnDestroy() {
|
|
197
|
+
this.dispose();
|
|
198
|
+
}
|
|
199
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightTextModelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
200
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: { aupHighlightTextModel: "aupHighlightTextModel" }, usesInheritance: true, ngImport: i0 });
|
|
201
|
+
}
|
|
202
|
+
__decorate([
|
|
203
|
+
Proxify(),
|
|
204
|
+
__metadata("design:type", Object)
|
|
205
|
+
], HighlightTextModelDirective.prototype, "aupHighlightTextModel", null);
|
|
206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightTextModelDirective, decorators: [{
|
|
207
|
+
type: Directive,
|
|
208
|
+
args: [{
|
|
209
|
+
selector: '[aupHighlightTextModel]'
|
|
210
|
+
}]
|
|
211
|
+
}], ctorParameters: function () { return []; }, propDecorators: { aupHighlightTextModel: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}] } });
|
|
214
|
+
|
|
190
215
|
var Track;
|
|
191
216
|
(function (Track) {
|
|
192
217
|
Track.byIndex = (index, item) => index;
|
|
@@ -213,11 +238,21 @@ var Track;
|
|
|
213
238
|
|
|
214
239
|
class DisposableComponent extends GarbageCollector {
|
|
215
240
|
trackById = Track.byId();
|
|
216
|
-
#_loaded$ = new MutableValueModel();
|
|
217
|
-
#asyncLoadables = [];
|
|
218
|
-
#awaitedLoadables = [];
|
|
241
|
+
// #_loaded$ = new MutableValueModel<boolean>();
|
|
242
|
+
// #asyncLoadables: Loadable[] = [];
|
|
243
|
+
// #awaitedLoadables: Loadable[] = [];
|
|
219
244
|
#initCallbacks = [];
|
|
220
245
|
#initialised = false;
|
|
246
|
+
cdr = this.inject(ChangeDetectorRef);
|
|
247
|
+
highlightContext = this.inject(HighlightTextModelDirective, {
|
|
248
|
+
optional: true
|
|
249
|
+
});
|
|
250
|
+
constructor() {
|
|
251
|
+
super();
|
|
252
|
+
if (this.highlightContext) { // the component might be rendered outside a table
|
|
253
|
+
this.viewStateDependsOn(this.highlightContext.aupHighlightTextModel);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
221
256
|
onInit(callback) {
|
|
222
257
|
if (this.#initialised) {
|
|
223
258
|
callback();
|
|
@@ -226,51 +261,36 @@ class DisposableComponent extends GarbageCollector {
|
|
|
226
261
|
this.#initCallbacks.push(callback);
|
|
227
262
|
}
|
|
228
263
|
}
|
|
229
|
-
get loaded$() {
|
|
230
|
-
return this.#_loaded$.readonly$;
|
|
231
|
-
}
|
|
232
264
|
ngOnInit() {
|
|
233
265
|
this.#initCallbacks.forEach(it => it());
|
|
234
|
-
this.#asyncLoadables.forEach(it => it.ensureLoaded());
|
|
235
|
-
if (this.#awaitedLoadables.length > 0) {
|
|
236
|
-
Promise.all(this.#awaitedLoadables.map(it => {
|
|
237
|
-
return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
|
|
238
|
-
})).then(() => {
|
|
239
|
-
this.#_loaded$.value = true;
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
this.#_loaded$.value = true;
|
|
244
|
-
}
|
|
245
266
|
this.#initialised = true;
|
|
246
267
|
}
|
|
247
|
-
inject(token) {
|
|
248
|
-
return inject(token);
|
|
249
|
-
}
|
|
250
|
-
injectLoadable(token, options) {
|
|
251
|
-
const loadable = inject(token);
|
|
252
|
-
if (this.loaded$.value) {
|
|
253
|
-
loadable.ensureLoaded();
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
if (!options || options.wait === true) {
|
|
257
|
-
this.#awaitedLoadables.push(loadable);
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
this.#asyncLoadables.push(loadable);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
return loadable;
|
|
264
|
-
}
|
|
265
268
|
ngOnDestroy() {
|
|
266
269
|
this.dispose();
|
|
267
270
|
}
|
|
268
|
-
|
|
271
|
+
inject(token, options) {
|
|
272
|
+
return inject(token, options);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Monitors the specified models for any change and triggers and angular change detect cycle. This is intended for use
|
|
276
|
+
* when the component uses the ON_PUSH change detection strategy or when it is contained within another component that
|
|
277
|
+
* does (e.g. aup-table, aup-tree-table)
|
|
278
|
+
* @param models
|
|
279
|
+
* @protected
|
|
280
|
+
*/
|
|
281
|
+
viewStateDependsOn(...models) {
|
|
282
|
+
const { when } = Dsl.disposeWith(this);
|
|
283
|
+
when.anyOf(...models).changes(() => this.markForCheck());
|
|
284
|
+
}
|
|
285
|
+
markForCheck() {
|
|
286
|
+
this.cdr.markForCheck();
|
|
287
|
+
}
|
|
288
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
269
289
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: DisposableComponent, usesInheritance: true, ngImport: i0 });
|
|
270
290
|
}
|
|
271
291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, decorators: [{
|
|
272
292
|
type: Directive
|
|
273
|
-
}] });
|
|
293
|
+
}], ctorParameters: function () { return []; } });
|
|
274
294
|
|
|
275
295
|
let FocusBinding = class FocusBinding extends GarbageCollector {
|
|
276
296
|
focusTargetElement;
|
|
@@ -466,32 +486,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
466
486
|
}]
|
|
467
487
|
}], ctorParameters: function () { return []; } });
|
|
468
488
|
|
|
469
|
-
class HighlightTextModelDirective extends GarbageCollector {
|
|
470
|
-
#aupHighlightTextModel_accessor_storage = proxify((ValueModel));
|
|
471
|
-
get aupHighlightTextModel() { return this.#aupHighlightTextModel_accessor_storage; }
|
|
472
|
-
set aupHighlightTextModel(value) { this.#aupHighlightTextModel_accessor_storage = value; }
|
|
473
|
-
constructor() {
|
|
474
|
-
super();
|
|
475
|
-
}
|
|
476
|
-
ngOnDestroy() {
|
|
477
|
-
this.dispose();
|
|
478
|
-
}
|
|
479
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightTextModelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
480
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: { aupHighlightTextModel: "aupHighlightTextModel" }, usesInheritance: true, ngImport: i0 });
|
|
481
|
-
}
|
|
482
|
-
__decorate([
|
|
483
|
-
Proxify(),
|
|
484
|
-
__metadata("design:type", Object)
|
|
485
|
-
], HighlightTextModelDirective.prototype, "aupHighlightTextModel", null);
|
|
486
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightTextModelDirective, decorators: [{
|
|
487
|
-
type: Directive,
|
|
488
|
-
args: [{
|
|
489
|
-
selector: '[aupHighlightTextModel]'
|
|
490
|
-
}]
|
|
491
|
-
}], ctorParameters: function () { return []; }, propDecorators: { aupHighlightTextModel: [{
|
|
492
|
-
type: Input
|
|
493
|
-
}] } });
|
|
494
|
-
|
|
495
489
|
class HighlightPipe extends GarbageCollector {
|
|
496
490
|
sanitizer;
|
|
497
491
|
highlightContext;
|
|
@@ -504,19 +498,20 @@ class HighlightPipe extends GarbageCollector {
|
|
|
504
498
|
this.dispose();
|
|
505
499
|
}
|
|
506
500
|
transform(value, searchModel) {
|
|
501
|
+
const sanitisedValue = escape(value);
|
|
507
502
|
const model = searchModel ?? this.highlightContext?.aupHighlightTextModel;
|
|
508
|
-
const searchText = model?.value;
|
|
503
|
+
const searchText = escape(model?.value);
|
|
509
504
|
if (isEmpty(searchText) || !isString(value)) {
|
|
510
|
-
return
|
|
505
|
+
return sanitisedValue;
|
|
511
506
|
}
|
|
512
507
|
// Match in a case insensitive manner
|
|
513
508
|
const re = new RegExp(escapeStringRegexp(searchText), 'gi');
|
|
514
|
-
const match =
|
|
509
|
+
const match = sanitisedValue.match(re);
|
|
515
510
|
// If there's no match, just return the original value.
|
|
516
511
|
if (!match) {
|
|
517
|
-
return
|
|
512
|
+
return sanitisedValue;
|
|
518
513
|
}
|
|
519
|
-
const result =
|
|
514
|
+
const result = sanitisedValue.replace(re, '<mark>' + match[0] + '</mark>');
|
|
520
515
|
return this.sanitizer.bypassSecurityTrustHtml(result);
|
|
521
516
|
}
|
|
522
517
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightPipe, deps: [{ token: i1.DomSanitizer }, { token: HighlightTextModelDirective, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
@@ -736,42 +731,42 @@ var CommandFace;
|
|
|
736
731
|
}
|
|
737
732
|
}
|
|
738
733
|
__decorate([
|
|
739
|
-
|
|
734
|
+
MemoizeGet(),
|
|
740
735
|
__metadata("design:type", Object),
|
|
741
736
|
__metadata("design:paramtypes", [])
|
|
742
737
|
], Adapter.prototype, "text", null);
|
|
743
738
|
__decorate([
|
|
744
|
-
|
|
739
|
+
MemoizeGet(),
|
|
745
740
|
__metadata("design:type", Object),
|
|
746
741
|
__metadata("design:paramtypes", [])
|
|
747
742
|
], Adapter.prototype, "icon", null);
|
|
748
743
|
__decorate([
|
|
749
|
-
|
|
744
|
+
MemoizeGet(),
|
|
750
745
|
__metadata("design:type", Object),
|
|
751
746
|
__metadata("design:paramtypes", [])
|
|
752
747
|
], Adapter.prototype, "iconPosition", null);
|
|
753
748
|
__decorate([
|
|
754
|
-
|
|
749
|
+
MemoizeGet(),
|
|
755
750
|
__metadata("design:type", Object),
|
|
756
751
|
__metadata("design:paramtypes", [])
|
|
757
752
|
], Adapter.prototype, "tooltip", null);
|
|
758
753
|
__decorate([
|
|
759
|
-
|
|
754
|
+
MemoizeGet(),
|
|
760
755
|
__metadata("design:type", Boolean),
|
|
761
756
|
__metadata("design:paramtypes", [])
|
|
762
757
|
], Adapter.prototype, "iconPositionStart", null);
|
|
763
758
|
__decorate([
|
|
764
|
-
|
|
759
|
+
MemoizeGet(),
|
|
765
760
|
__metadata("design:type", Boolean),
|
|
766
761
|
__metadata("design:paramtypes", [])
|
|
767
762
|
], Adapter.prototype, "iconPositionEnd", null);
|
|
768
763
|
__decorate([
|
|
769
|
-
|
|
764
|
+
MemoizeGet(),
|
|
770
765
|
__metadata("design:type", String),
|
|
771
766
|
__metadata("design:paramtypes", [])
|
|
772
767
|
], Adapter.prototype, "color", null);
|
|
773
768
|
__decorate([
|
|
774
|
-
|
|
769
|
+
MemoizeGet(),
|
|
775
770
|
__metadata("design:type", String),
|
|
776
771
|
__metadata("design:paramtypes", [])
|
|
777
772
|
], Adapter.prototype, "style", null);
|
|
@@ -842,6 +837,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
842
837
|
args: ["class.disable-scroll"]
|
|
843
838
|
}] } });
|
|
844
839
|
|
|
840
|
+
/* eslint-disable @angular-eslint/no-host-metadata-property */
|
|
845
841
|
class IconComponent {
|
|
846
842
|
_icon;
|
|
847
843
|
prefix;
|
|
@@ -873,11 +869,13 @@ class IconComponent {
|
|
|
873
869
|
return `fa-${this.suffix}`;
|
|
874
870
|
}
|
|
875
871
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
876
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IconComponent, selector: "aup-icon", inputs: { icon: "icon" }, host: { properties: { "attr.icon": "this.icon" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size) fa-icon
|
|
872
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IconComponent, selector: "aup-icon", inputs: { icon: "icon" }, host: { properties: { "attr.icon": "this.icon" }, classAttribute: "mat-icon" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
877
873
|
}
|
|
878
874
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, decorators: [{
|
|
879
875
|
type: Component,
|
|
880
|
-
args: [{ selector: 'aup-icon',
|
|
876
|
+
args: [{ selector: 'aup-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
877
|
+
class: "mat-icon" // this ensures angular form styles that target mat icon also work with us
|
|
878
|
+
}, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"] }]
|
|
881
879
|
}], propDecorators: { icon: [{
|
|
882
880
|
type: Input
|
|
883
881
|
}, {
|
|
@@ -908,6 +906,7 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
908
906
|
// tslint:disable-next-line:no-input-rename
|
|
909
907
|
get _rawFaces() { return this.#_rawFaces_accessor_storage; }
|
|
910
908
|
set _rawFaces(value) { this.#_rawFaces_accessor_storage = value; }
|
|
909
|
+
hasTextAndLeadingIcon$;
|
|
911
910
|
set face(face) {
|
|
912
911
|
this.faces$.value = [face];
|
|
913
912
|
}
|
|
@@ -927,6 +926,7 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
927
926
|
const activeFace = this.faceAdapters.first();
|
|
928
927
|
this.activeIcon = activeFace.pluck("icon");
|
|
929
928
|
this.activeColor = activeFace.pluck("color");
|
|
929
|
+
this.hasTextAndLeadingIcon$ = valueOf.all(this.activeIcon.isNotNil(), activeFace.pluckString('text').isNotBlank(), activeFace.pluck("iconPosition").doesNotEqual(CommandFace.Position.END)).areTruthy();
|
|
930
930
|
}
|
|
931
931
|
shouldIncludeIcon(face) {
|
|
932
932
|
return (!this.ignoreIcon && face.icon) || this.includeMissingIconInLayout;
|
|
@@ -940,8 +940,11 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
940
940
|
get color() {
|
|
941
941
|
return this.activeColor.value;
|
|
942
942
|
}
|
|
943
|
+
get hasTextAndIcon() {
|
|
944
|
+
return this.hasTextAndLeadingIcon$.value;
|
|
945
|
+
}
|
|
943
946
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandFaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
944
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CommandFaceComponent, selector: "aup-command-face", inputs: { _rawFaces: ["faces", "_rawFaces"], face: "face", ignoreIcon: "ignoreIcon", ignoreText: "ignoreText", includeMissingIconInLayout: "includeMissingIconInLayout" }, host: { properties: { "class.hide-icon": "this.requiresMissingIconInLayout", "attr.color": "this.color" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n", styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
947
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CommandFaceComponent, selector: "aup-command-face", inputs: { _rawFaces: ["faces", "_rawFaces"], face: "face", ignoreIcon: "ignoreIcon", ignoreText: "ignoreText", includeMissingIconInLayout: "includeMissingIconInLayout" }, host: { properties: { "class.hide-icon": "this.requiresMissingIconInLayout", "attr.color": "this.color", "class.has-text-and-leading-icon": "this.hasTextAndIcon" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n", styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container>span{white-space:nowrap}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}aup-command-face.has-text-and-leading-icon{margin-top:4px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
945
948
|
}
|
|
946
949
|
__decorate([
|
|
947
950
|
StoreInListModel("faces$"),
|
|
@@ -949,7 +952,7 @@ __decorate([
|
|
|
949
952
|
], CommandFaceComponent.prototype, "_rawFaces", null);
|
|
950
953
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandFaceComponent, decorators: [{
|
|
951
954
|
type: Component,
|
|
952
|
-
args: [{ selector: 'aup-command-face', encapsulation: ViewEncapsulation.None, template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n", styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}\n"] }]
|
|
955
|
+
args: [{ selector: 'aup-command-face', encapsulation: ViewEncapsulation.None, template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n", styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container>span{white-space:nowrap}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}aup-command-face.has-text-and-leading-icon{margin-top:4px}\n"] }]
|
|
953
956
|
}], ctorParameters: function () { return []; }, propDecorators: { _rawFaces: [{
|
|
954
957
|
type: Input,
|
|
955
958
|
args: ['faces']
|
|
@@ -967,6 +970,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
967
970
|
}], color: [{
|
|
968
971
|
type: HostBinding,
|
|
969
972
|
args: ['attr.color']
|
|
973
|
+
}], hasTextAndIcon: [{
|
|
974
|
+
type: HostBinding,
|
|
975
|
+
args: ['class.has-text-and-leading-icon']
|
|
970
976
|
}] } });
|
|
971
977
|
|
|
972
978
|
/**
|
|
@@ -1070,11 +1076,11 @@ class CardContainerComponent extends AbstractCardContainerComponent {
|
|
|
1070
1076
|
}
|
|
1071
1077
|
}
|
|
1072
1078
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CardContainerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1073
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CardContainerComponent, selector: "aup-card-container", inputs: { columnCount: "columnCount", enableScroll: "enableScroll" }, host: { properties: { "class.auto-columns": "this.isAutoColumns", "class.single-column": "this.isSingleColumn" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled$.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enableScroll\">\n
|
|
1079
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CardContainerComponent, selector: "aup-card-container", inputs: { columnCount: "columnCount", enableScroll: "enableScroll" }, host: { properties: { "class.auto-columns": "this.isAutoColumns", "class.single-column": "this.isSingleColumn" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header], [slot=header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled$.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enableScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<aup-scroll-container *ngIf=\"enableScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</aup-scroll-container>\n\n<div class=\"footer-container\">\n <ng-content select=\"[card-container-footer], [slot=footer]\"></ng-content>\n</div>\n\n", styles: [":host{--resolved-card-gap: var(--card-gap, 16px);--resolved-card-width: var(--card-width, 300px);--resolved-card-min-width: var(--card-min-width, var(--card-width, var(--card-max-width)));--resolved-card-max-width: var(--card-max-width, var(--card-width, var(--card-min-width)));--resolved-card-height: var(--card-height, auto);--resolved-card-min-height: var(--card-min-height, auto);--resolved-card-background: var(--card-background, var(--aup-card-container-default-background-color));flex:1;display:flex;flex-direction:column;align-items:stretch;background:var(--resolved-card-background)}:host.auto-columns>*>.card-container{grid-template-columns:repeat(auto-fill,minmax(var(--resolved-card-min-width),var(--resolved-card-max-width)))}:host:not(.auto-columns)>*>.card-container{grid-template-columns:repeat(var(--aup-card-container-column-count),1fr)}.card-container{display:grid;box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));max-width:100%;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap)}aup-scroll-container,.no-scroll-container{flex:1}.add-card-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.add-card-container:hover{border-color:transparent;background-color:#fff;color:#0000008a}.add-card-template-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: ScrollContainerComponent, selector: "aup-scroll-container", inputs: ["disableScroll$", "disableScroll"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
1074
1080
|
}
|
|
1075
1081
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CardContainerComponent, decorators: [{
|
|
1076
1082
|
type: Component,
|
|
1077
|
-
args: [{ selector: 'aup-card-container', template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled$.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enableScroll\">\n
|
|
1083
|
+
args: [{ selector: 'aup-card-container', template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header], [slot=header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled$.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enableScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<aup-scroll-container *ngIf=\"enableScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</aup-scroll-container>\n\n<div class=\"footer-container\">\n <ng-content select=\"[card-container-footer], [slot=footer]\"></ng-content>\n</div>\n\n", styles: [":host{--resolved-card-gap: var(--card-gap, 16px);--resolved-card-width: var(--card-width, 300px);--resolved-card-min-width: var(--card-min-width, var(--card-width, var(--card-max-width)));--resolved-card-max-width: var(--card-max-width, var(--card-width, var(--card-min-width)));--resolved-card-height: var(--card-height, auto);--resolved-card-min-height: var(--card-min-height, auto);--resolved-card-background: var(--card-background, var(--aup-card-container-default-background-color));flex:1;display:flex;flex-direction:column;align-items:stretch;background:var(--resolved-card-background)}:host.auto-columns>*>.card-container{grid-template-columns:repeat(auto-fill,minmax(var(--resolved-card-min-width),var(--resolved-card-max-width)))}:host:not(.auto-columns)>*>.card-container{grid-template-columns:repeat(var(--aup-card-container-column-count),1fr)}.card-container{display:grid;box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));max-width:100%;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap)}aup-scroll-container,.no-scroll-container{flex:1}.add-card-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.add-card-container:hover{border-color:transparent;background-color:#fff;color:#0000008a}.add-card-template-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}\n"] }]
|
|
1078
1084
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { columnCount: [{
|
|
1079
1085
|
type: Input
|
|
1080
1086
|
}], enableScroll: [{
|
|
@@ -1150,14 +1156,24 @@ class CommandComponent extends PopupAwareComponent {
|
|
|
1150
1156
|
activeFace$;
|
|
1151
1157
|
iconOnly$;
|
|
1152
1158
|
tooltip$;
|
|
1159
|
+
visible$;
|
|
1153
1160
|
constructor(element, parent) {
|
|
1154
1161
|
super(element, parent);
|
|
1155
1162
|
const { chain, switchOn } = Dsl.disposeWith(this);
|
|
1156
|
-
this.faces$ = chain(this.command.busy$)
|
|
1163
|
+
this.faces$ = chain(this.command.busy$)
|
|
1164
|
+
.mapToList(busy => {
|
|
1157
1165
|
return busy ?
|
|
1158
|
-
[this.busyFace$.value, this.face$.value] :
|
|
1159
|
-
[this.face$.value, this.busyFace$.value];
|
|
1160
|
-
}, {
|
|
1166
|
+
[this.busyFace$.value ?? this.command.busyFace$.value, this.face$.value ?? this.command.defaultFace$.value] :
|
|
1167
|
+
[this.face$.value ?? this.command.defaultFace$.value, this.busyFace$.value ?? this.command.busyFace$.value];
|
|
1168
|
+
}, {
|
|
1169
|
+
allowNil: true,
|
|
1170
|
+
dependsOn: [
|
|
1171
|
+
this.face$,
|
|
1172
|
+
this.busyFace$,
|
|
1173
|
+
this.command.defaultFace$,
|
|
1174
|
+
this.command.busyFace$
|
|
1175
|
+
]
|
|
1176
|
+
})
|
|
1161
1177
|
.rejectNil();
|
|
1162
1178
|
this.activeFace$ = this.faces$.first();
|
|
1163
1179
|
this.buttonStyle$ = chain(this.activeFace$).map(f => CommandFace.getStyleOf(f));
|
|
@@ -1166,18 +1182,19 @@ class CommandComponent extends PopupAwareComponent {
|
|
|
1166
1182
|
this.iconOnly$ = this.faces$.select(face => {
|
|
1167
1183
|
return isEmpty(CommandFace.getTextOf(face)) && !isEmpty(CommandFace.getIconOf(face));
|
|
1168
1184
|
}).count().equals(this.faces$.count());
|
|
1185
|
+
this.visible$ = chain(this.command.visible$);
|
|
1186
|
+
}
|
|
1187
|
+
get cssDisplayProperty() {
|
|
1188
|
+
return this.visible$.value ? undefined : 'none';
|
|
1169
1189
|
}
|
|
1170
1190
|
isActive(face) {
|
|
1171
1191
|
return this.activeFace$.query().equals(face);
|
|
1172
1192
|
}
|
|
1173
|
-
getFace() {
|
|
1174
|
-
return this.face;
|
|
1175
|
-
}
|
|
1176
1193
|
requestFocus() {
|
|
1177
1194
|
this.button.focus();
|
|
1178
1195
|
}
|
|
1179
1196
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandComponent, deps: [{ token: i0.ElementRef }, { token: POPUP_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1180
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CommandComponent, selector: "aup-command", inputs: { command: "command", face$: "face$", face: "face", busyFace$: "busyFace$", busyFace: "busyFace", alignFace: "alignFace" }, host: { properties: { "class": "this.alignFace" } }, viewQueries: [{ propertyName: "button", first: true, predicate: MatButton, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"iconOnly$.value\">\n <button mat-icon-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n</ng-container>\n<ng-container *ngIf=\"!iconOnly$.value\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}button{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
1197
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CommandComponent, selector: "aup-command", inputs: { command: "command", face$: "face$", face: "face", busyFace$: "busyFace$", busyFace: "busyFace", alignFace: "alignFace" }, host: { properties: { "class": "this.alignFace", "style.display": "this.cssDisplayProperty" } }, viewQueries: [{ propertyName: "button", first: true, predicate: MatButton, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"iconOnly$.value\">\n <button mat-icon-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n</ng-container>\n<ng-container *ngIf=\"!iconOnly$.value\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}button{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
1181
1198
|
}
|
|
1182
1199
|
__decorate([
|
|
1183
1200
|
Proxify(),
|
|
@@ -1225,6 +1242,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1225
1242
|
}], button: [{
|
|
1226
1243
|
type: ViewChild,
|
|
1227
1244
|
args: [MatButton]
|
|
1245
|
+
}], cssDisplayProperty: [{
|
|
1246
|
+
type: HostBinding,
|
|
1247
|
+
args: ["style.display"]
|
|
1228
1248
|
}] } });
|
|
1229
1249
|
|
|
1230
1250
|
/**
|
|
@@ -1252,12 +1272,12 @@ class AbstractPopupMenuComponent extends PopupAwareComponent {
|
|
|
1252
1272
|
xPosition = 'after';
|
|
1253
1273
|
yPosition = 'below';
|
|
1254
1274
|
triggers;
|
|
1255
|
-
#enabled_accessor_storage;
|
|
1256
|
-
get enabled() { return this.#enabled_accessor_storage; }
|
|
1257
|
-
set enabled(value) { this.#enabled_accessor_storage = value; }
|
|
1258
1275
|
#enabled$_accessor_storage = proxify((ValueModel));
|
|
1259
1276
|
get enabled$() { return this.#enabled$_accessor_storage; }
|
|
1260
1277
|
set enabled$(value) { this.#enabled$_accessor_storage = value; }
|
|
1278
|
+
#enabled_accessor_storage = true;
|
|
1279
|
+
get enabled() { return this.#enabled_accessor_storage; }
|
|
1280
|
+
set enabled(value) { this.#enabled_accessor_storage = value; }
|
|
1261
1281
|
children;
|
|
1262
1282
|
faces$;
|
|
1263
1283
|
constructor(element, parent) {
|
|
@@ -1299,16 +1319,16 @@ class AbstractPopupMenuComponent extends PopupAwareComponent {
|
|
|
1299
1319
|
return this.faceAdapter.face;
|
|
1300
1320
|
}
|
|
1301
1321
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractPopupMenuComponent, deps: [{ token: i0.ElementRef }, { token: POPUP_CONTAINER }], target: i0.ɵɵFactoryTarget.Component });
|
|
1302
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractPopupMenuComponent, selector: "aup-abstract-popup-menu", inputs: { xPosition: "xPosition", yPosition: "yPosition", enabled
|
|
1322
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractPopupMenuComponent, selector: "aup-abstract-popup-menu", inputs: { xPosition: "xPosition", yPosition: "yPosition", enabled$: "enabled$", enabled: "enabled" }, viewQueries: [{ propertyName: "triggers", predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
1303
1323
|
}
|
|
1304
|
-
__decorate([
|
|
1305
|
-
StoreInValueModel(),
|
|
1306
|
-
__metadata("design:type", Boolean)
|
|
1307
|
-
], AbstractPopupMenuComponent.prototype, "enabled", null);
|
|
1308
1324
|
__decorate([
|
|
1309
1325
|
Proxify(),
|
|
1310
1326
|
__metadata("design:type", Object)
|
|
1311
1327
|
], AbstractPopupMenuComponent.prototype, "enabled$", null);
|
|
1328
|
+
__decorate([
|
|
1329
|
+
StoreInValueModel(),
|
|
1330
|
+
__metadata("design:type", Object)
|
|
1331
|
+
], AbstractPopupMenuComponent.prototype, "enabled", null);
|
|
1312
1332
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractPopupMenuComponent, decorators: [{
|
|
1313
1333
|
type: Component,
|
|
1314
1334
|
args: [{ selector: 'aup-abstract-popup-menu', template: '' }]
|
|
@@ -1322,10 +1342,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1322
1342
|
}], triggers: [{
|
|
1323
1343
|
type: ViewChildren,
|
|
1324
1344
|
args: [MatMenuTrigger]
|
|
1325
|
-
}], enabled: [{
|
|
1326
|
-
type: Input
|
|
1327
1345
|
}], enabled$: [{
|
|
1328
1346
|
type: Input
|
|
1347
|
+
}], enabled: [{
|
|
1348
|
+
type: Input
|
|
1329
1349
|
}] } });
|
|
1330
1350
|
|
|
1331
1351
|
class CommandContainer extends GarbageCollector {
|
|
@@ -1358,13 +1378,15 @@ class ToolBarComponent extends CommandContainer {
|
|
|
1358
1378
|
get orientation() {
|
|
1359
1379
|
return CommandContainer.Orientation.HORIZONTAL;
|
|
1360
1380
|
}
|
|
1361
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, deps: [{ token: CommandContainer }], target: i0.ɵɵFactoryTarget.Component });
|
|
1381
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, deps: [{ token: CommandContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1362
1382
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ToolBarComponent, selector: "aup-tool-bar", usesInheritance: true, ngImport: i0, template: '<div class="toolbar-content"><ng-content></ng-content></div>', isInline: true, styles: [":host{display:inline-block}.toolbar-content{display:inline-flex;flex-direction:row;align-items:center}.toolbar-content>aup-separator{align-self:stretch;margin:4px 0 4px 8px}.toolbar-content>aup-flex{flex:1}.toolbar-content>*+*{margin-left:8px}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
1363
1383
|
}
|
|
1364
1384
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, decorators: [{
|
|
1365
1385
|
type: Component,
|
|
1366
1386
|
args: [{ selector: 'aup-tool-bar', template: '<div class="toolbar-content"><ng-content></ng-content></div>', encapsulation: ViewEncapsulation.None, styles: [":host{display:inline-block}.toolbar-content{display:inline-flex;flex-direction:row;align-items:center}.toolbar-content>aup-separator{align-self:stretch;margin:4px 0 4px 8px}.toolbar-content>aup-flex{flex:1}.toolbar-content>*+*{margin-left:8px}\n"] }]
|
|
1367
|
-
}], ctorParameters: function () { return [{ type: CommandContainer
|
|
1387
|
+
}], ctorParameters: function () { return [{ type: CommandContainer, decorators: [{
|
|
1388
|
+
type: Optional
|
|
1389
|
+
}] }]; } });
|
|
1368
1390
|
|
|
1369
1391
|
/**
|
|
1370
1392
|
*
|
|
@@ -1675,7 +1697,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1675
1697
|
args: ['blur']
|
|
1676
1698
|
}] } });
|
|
1677
1699
|
|
|
1678
|
-
/* tslint:disable:no-input-rename */
|
|
1679
1700
|
const INPUT_TOKEN_HACK = new InjectionToken("INPUT_TOKEN_HACK");
|
|
1680
1701
|
class AbstractInputComponent extends DisposableComponent {
|
|
1681
1702
|
onValueEditedListeners = new EventListenerList();
|
|
@@ -1690,11 +1711,16 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1690
1711
|
* gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
|
|
1691
1712
|
*/
|
|
1692
1713
|
formValue$;
|
|
1693
|
-
|
|
1694
|
-
|
|
1714
|
+
#i18n$_accessor_storage = proxify((MutableValueModel));
|
|
1715
|
+
get i18n$() { return this.#i18n$_accessor_storage; }
|
|
1716
|
+
set i18n$(value) { this.#i18n$_accessor_storage = value; }
|
|
1717
|
+
#i18n_accessor_storage;
|
|
1718
|
+
get i18n() { return this.#i18n_accessor_storage; }
|
|
1719
|
+
set i18n(value) { this.#i18n_accessor_storage = value; }
|
|
1720
|
+
_label;
|
|
1695
1721
|
userFloatLabel = 'always'; // TODO: make this an injectable default
|
|
1696
|
-
|
|
1697
|
-
|
|
1722
|
+
_hint;
|
|
1723
|
+
_placeholder;
|
|
1698
1724
|
dense = false;
|
|
1699
1725
|
_enabled$ = this.registerDisposable(new DelegatingValueModel());
|
|
1700
1726
|
set enabled$(condition$) {
|
|
@@ -1761,6 +1787,9 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1761
1787
|
isEnabled() {
|
|
1762
1788
|
return this.enabled$.value;
|
|
1763
1789
|
}
|
|
1790
|
+
get disabled() {
|
|
1791
|
+
return !this.isEnabled();
|
|
1792
|
+
}
|
|
1764
1793
|
hasErrors() {
|
|
1765
1794
|
return !this.errorList$.query().isEmpty();
|
|
1766
1795
|
}
|
|
@@ -1773,6 +1802,15 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1773
1802
|
get focusContext() {
|
|
1774
1803
|
return this.formValue$.focusContext;
|
|
1775
1804
|
}
|
|
1805
|
+
get label() {
|
|
1806
|
+
return this._label ?? this.i18n?.label();
|
|
1807
|
+
}
|
|
1808
|
+
get hint() {
|
|
1809
|
+
return this._hint ?? this.hackyGetI18n("hint");
|
|
1810
|
+
}
|
|
1811
|
+
get placeholder() {
|
|
1812
|
+
return this._placeholder ?? this.hackyGetI18n("placeholder");
|
|
1813
|
+
}
|
|
1776
1814
|
get floatLabel() {
|
|
1777
1815
|
// return this.dense ? 'never' : this.userFloatLabel;
|
|
1778
1816
|
return this.userFloatLabel;
|
|
@@ -1787,24 +1825,45 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1787
1825
|
onValueEdited(callback) {
|
|
1788
1826
|
return this.onValueEditedListeners.add(callback);
|
|
1789
1827
|
}
|
|
1828
|
+
hackyGetI18n(key) {
|
|
1829
|
+
// TODO: update I18n to make it possible to get an optional value with return the missing key message.
|
|
1830
|
+
const i18nFn = this.i18n ? this.i18n[key] : undefined;
|
|
1831
|
+
const i18nValue = i18nFn && i18nFn();
|
|
1832
|
+
return i18nValue?.startsWith("missing key") ? undefined : i18nValue;
|
|
1833
|
+
}
|
|
1790
1834
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractInputComponent, deps: [{ token: INPUT_TOKEN_HACK }], target: i0.ɵɵFactoryTarget.Component });
|
|
1791
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractInputComponent, selector: "ng-component", inputs: {
|
|
1835
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractInputComponent, selector: "ng-component", inputs: { i18n$: "i18n$", i18n: "i18n", _label: ["label", "_label"], userFloatLabel: ["floatLabel", "userFloatLabel"], _hint: ["hint", "_hint"], _placeholder: ["placeholder", "_placeholder"], dense: "dense", enabled$: "enabled$", focusCommand: ["command.focus", "focusCommand"], blurCommand: ["command.blur", "blurCommand"], enterCommand: ["command.enter", "enterCommand"], escapeCommand: ["command.escape", "escapeCommand"], clickCommand: ["command.click", "clickCommand"] }, outputs: { focus: "focus", blur: "blur", enterKey: "enterKey", escapeKey: "escapeKey" }, host: { listeners: { "click": "notifyClick()", "focusin": "notifyFocusIn()", "focusout": "notifyFocusOut()" }, properties: { "class.dense": "this.dense", "class": "this.baseClassName", "class.disabled": "this.disabled" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
1792
1836
|
}
|
|
1837
|
+
__decorate([
|
|
1838
|
+
Proxify(),
|
|
1839
|
+
__metadata("design:type", Object)
|
|
1840
|
+
], AbstractInputComponent.prototype, "i18n$", null);
|
|
1841
|
+
__decorate([
|
|
1842
|
+
StoreInValueModel(),
|
|
1843
|
+
__metadata("design:type", Object)
|
|
1844
|
+
], AbstractInputComponent.prototype, "i18n", null);
|
|
1793
1845
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractInputComponent, decorators: [{
|
|
1794
1846
|
type: Component,
|
|
1795
1847
|
args: [{ template: '' }]
|
|
1796
1848
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1797
1849
|
type: Inject,
|
|
1798
1850
|
args: [INPUT_TOKEN_HACK]
|
|
1799
|
-
}] }]; }, propDecorators: {
|
|
1851
|
+
}] }]; }, propDecorators: { i18n$: [{
|
|
1800
1852
|
type: Input
|
|
1853
|
+
}], i18n: [{
|
|
1854
|
+
type: Input
|
|
1855
|
+
}], _label: [{
|
|
1856
|
+
type: Input,
|
|
1857
|
+
args: ["label"]
|
|
1801
1858
|
}], userFloatLabel: [{
|
|
1802
1859
|
type: Input,
|
|
1803
1860
|
args: ['floatLabel']
|
|
1804
|
-
}],
|
|
1805
|
-
type: Input
|
|
1806
|
-
|
|
1807
|
-
|
|
1861
|
+
}], _hint: [{
|
|
1862
|
+
type: Input,
|
|
1863
|
+
args: ['hint']
|
|
1864
|
+
}], _placeholder: [{
|
|
1865
|
+
type: Input,
|
|
1866
|
+
args: ['placeholder']
|
|
1808
1867
|
}], dense: [{
|
|
1809
1868
|
type: HostBinding,
|
|
1810
1869
|
args: ['class.dense']
|
|
@@ -1847,6 +1906,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1847
1906
|
}], notifyFocusOut: [{
|
|
1848
1907
|
type: HostListener,
|
|
1849
1908
|
args: ['focusout']
|
|
1909
|
+
}], disabled: [{
|
|
1910
|
+
type: HostBinding,
|
|
1911
|
+
args: ["class.disabled"]
|
|
1850
1912
|
}] } });
|
|
1851
1913
|
|
|
1852
1914
|
class AbstractListInputComponent extends AbstractInputComponent {
|
|
@@ -2084,12 +2146,15 @@ class CheckboxInputComponent extends AbstractValueInputComponent {
|
|
|
2084
2146
|
constructor() {
|
|
2085
2147
|
super();
|
|
2086
2148
|
}
|
|
2149
|
+
select($event) {
|
|
2150
|
+
this.componentValue$.value = $event.checked;
|
|
2151
|
+
}
|
|
2087
2152
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CheckboxInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2088
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CheckboxInputComponent, selector: "aup-checkbox-input", inputs: { color: "color", labelPosition: "labelPosition" }, usesInheritance: true, ngImport: i0, template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [
|
|
2153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CheckboxInputComponent, selector: "aup-checkbox-input", inputs: { color: "color", labelPosition: "labelPosition" }, usesInheritance: true, ngImport: i0, template: "<!-- TODO: add focus binding -->\n<!-- NOTE: using [(ngModel)] affects how material renders the component and makes it harder to test so we're using [checked] and (change) -->\n<mat-checkbox\n [checked]=\"componentValue$.value\"\n (change)=\"select($event)\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{ label }}\n</mat-checkbox>\n<ng-container *ngIf=\"!dense\">\n <mat-hint *ngIf=\"showHint\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:10px 0 0}:host.dense{padding:4px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
2089
2154
|
}
|
|
2090
2155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CheckboxInputComponent, decorators: [{
|
|
2091
2156
|
type: Component,
|
|
2092
|
-
args: [{ selector: 'aup-checkbox-input', template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [
|
|
2157
|
+
args: [{ selector: 'aup-checkbox-input', template: "<!-- TODO: add focus binding -->\n<!-- NOTE: using [(ngModel)] affects how material renders the component and makes it harder to test so we're using [checked] and (change) -->\n<mat-checkbox\n [checked]=\"componentValue$.value\"\n (change)=\"select($event)\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{ label }}\n</mat-checkbox>\n<ng-container *ngIf=\"!dense\">\n <mat-hint *ngIf=\"showHint\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:10px 0 0}:host.dense{padding:4px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"] }]
|
|
2093
2158
|
}], ctorParameters: function () { return []; }, propDecorators: { color: [{
|
|
2094
2159
|
type: Input
|
|
2095
2160
|
}], labelPosition: [{
|
|
@@ -2128,7 +2193,7 @@ class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
|
2128
2193
|
const self = this;
|
|
2129
2194
|
this.registerDisposable(new Binding(this.componentList$, this.ids$, {
|
|
2130
2195
|
toLeft(selectedItems, currentLeftValue) {
|
|
2131
|
-
const newValues = selectedItems.map(it => lookup.get(it)).filter(it =>
|
|
2196
|
+
const newValues = selectedItems.map(it => lookup.get(it)).filter(it => !!it);
|
|
2132
2197
|
// if our lookup didn't find anything then we return the previous values so we don't clobber selections when the options go empty
|
|
2133
2198
|
return newValues.length < 1 && selectedItems.length > 0 ? currentLeftValue : newValues;
|
|
2134
2199
|
},
|
|
@@ -2139,7 +2204,7 @@ class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
|
2139
2204
|
})).writeRight();
|
|
2140
2205
|
}
|
|
2141
2206
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: MultipleSelectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2142
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: MultipleSelectInputComponent, selector: "aup-multiple-select-input", inputs: { options$: "options$", options: "options", optionLabel: "optionLabel", optionLabelFormat: "optionLabelFormat" }, queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [ngModel]=\"componentList$.value\"\n (ngModelChange)=\"selectAll($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of options$.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div>{{placeholder}}</div>\n <div class=\"item\" *ngFor=\"let item of options\">{{optionLabelFormat(item)}}</div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:30px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$
|
|
2207
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: MultipleSelectInputComponent, selector: "aup-multiple-select-input", inputs: { options$: "options$", options: "options", optionLabel: "optionLabel", optionLabelFormat: "optionLabelFormat" }, queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [ngModel]=\"componentList$.value\"\n (ngModelChange)=\"selectAll($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of options$.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div>{{placeholder}}</div>\n <div class=\"item\" *ngFor=\"let item of options\">{{optionLabelFormat(item)}}</div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:30px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
|
|
2143
2208
|
}
|
|
2144
2209
|
__decorate([
|
|
2145
2210
|
Proxify(),
|
|
@@ -2167,48 +2232,178 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2167
2232
|
|
|
2168
2233
|
class NumberInputComponent extends AbstractValueInputComponent {
|
|
2169
2234
|
autocomplete;
|
|
2170
|
-
min =
|
|
2171
|
-
|
|
2172
|
-
|
|
2235
|
+
#min$_accessor_storage = proxify((ValueModel));
|
|
2236
|
+
get min$() { return this.#min$_accessor_storage; }
|
|
2237
|
+
set min$(value) { this.#min$_accessor_storage = value; }
|
|
2238
|
+
#min_accessor_storage = Number.MIN_SAFE_INTEGER;
|
|
2239
|
+
get min() { return this.#min_accessor_storage; }
|
|
2240
|
+
set min(value) { this.#min_accessor_storage = value; }
|
|
2241
|
+
#max$_accessor_storage = proxify((ValueModel));
|
|
2242
|
+
get max$() { return this.#max$_accessor_storage; }
|
|
2243
|
+
set max$(value) { this.#max$_accessor_storage = value; }
|
|
2244
|
+
#max_accessor_storage = Number.MAX_SAFE_INTEGER;
|
|
2245
|
+
get max() { return this.#max_accessor_storage; }
|
|
2246
|
+
set max(value) { this.#max_accessor_storage = value; }
|
|
2247
|
+
#significantDigits$_accessor_storage = proxify((ValueModel));
|
|
2248
|
+
get significantDigits$() { return this.#significantDigits$_accessor_storage; }
|
|
2249
|
+
set significantDigits$(value) { this.#significantDigits$_accessor_storage = value; }
|
|
2250
|
+
#significantDigits_accessor_storage;
|
|
2251
|
+
get significantDigits() { return this.#significantDigits_accessor_storage; }
|
|
2252
|
+
set significantDigits(value) { this.#significantDigits_accessor_storage = value; }
|
|
2253
|
+
incrementCommand;
|
|
2254
|
+
decrementCommand;
|
|
2255
|
+
displayValue$;
|
|
2256
|
+
step$;
|
|
2173
2257
|
constructor() {
|
|
2174
2258
|
super();
|
|
2259
|
+
const { chain } = Dsl.disposeWith(this);
|
|
2260
|
+
this.step$ = chain(this.significantDigits$).map(v => 10 ** (-v)).otherwise(1);
|
|
2261
|
+
this.displayValue$ = chain(this.value$).map(v => this.clampSignificantDigits(v), {
|
|
2262
|
+
dependsOn: this.significantDigits$
|
|
2263
|
+
});
|
|
2264
|
+
const normalisedValue$ = chain(this.value$).otherwise(0);
|
|
2265
|
+
this.incrementCommand = Command.create(() => {
|
|
2266
|
+
this.value$.value = this.increment(this.value$.value);
|
|
2267
|
+
}).enableWhile(chain.numericValue(normalisedValue$).isLessThan(this.max$).and(this.enabled$));
|
|
2268
|
+
this.decrementCommand = Command.create(() => {
|
|
2269
|
+
this.value$.value = this.decrement(this.value$.value);
|
|
2270
|
+
}).enableWhile(chain.numericValue(normalisedValue$).isGreaterThan(this.min$).and(this.enabled$));
|
|
2271
|
+
}
|
|
2272
|
+
increment(value) {
|
|
2273
|
+
return this.clampSignificantDigits((value ?? 0) + this.step$.value);
|
|
2274
|
+
}
|
|
2275
|
+
decrement(value) {
|
|
2276
|
+
return this.clampSignificantDigits((value ?? 0) - this.step$.value);
|
|
2277
|
+
}
|
|
2278
|
+
clampSignificantDigits(value) {
|
|
2279
|
+
return Number(value.toFixed(this.significantDigits));
|
|
2280
|
+
}
|
|
2281
|
+
onValueChange(value) {
|
|
2282
|
+
this.value$.value = value;
|
|
2175
2283
|
}
|
|
2176
2284
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2177
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: NumberInputComponent, selector: "aup-number-input", inputs: { autocomplete: "autocomplete", min: "min", max: "max",
|
|
2285
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: NumberInputComponent, selector: "aup-number-input", inputs: { autocomplete: "autocomplete", min$: "min$", min: "min", max$: "max$", max: "max", significantDigits$: "significantDigits$", significantDigits: "significantDigits" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [ngModel]=\"displayValue$.value\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\"\n [step]=\"step$.value\"\n >\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2$4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
|
|
2178
2286
|
}
|
|
2287
|
+
__decorate([
|
|
2288
|
+
Proxify(),
|
|
2289
|
+
__metadata("design:type", ValueModel)
|
|
2290
|
+
], NumberInputComponent.prototype, "min$", null);
|
|
2291
|
+
__decorate([
|
|
2292
|
+
StoreInValueModel(),
|
|
2293
|
+
__metadata("design:type", Object)
|
|
2294
|
+
], NumberInputComponent.prototype, "min", null);
|
|
2295
|
+
__decorate([
|
|
2296
|
+
Proxify(),
|
|
2297
|
+
__metadata("design:type", ValueModel)
|
|
2298
|
+
], NumberInputComponent.prototype, "max$", null);
|
|
2299
|
+
__decorate([
|
|
2300
|
+
StoreInValueModel(),
|
|
2301
|
+
__metadata("design:type", Object)
|
|
2302
|
+
], NumberInputComponent.prototype, "max", null);
|
|
2303
|
+
__decorate([
|
|
2304
|
+
Proxify(),
|
|
2305
|
+
__metadata("design:type", ValueModel)
|
|
2306
|
+
], NumberInputComponent.prototype, "significantDigits$", null);
|
|
2307
|
+
__decorate([
|
|
2308
|
+
StoreInValueModel(),
|
|
2309
|
+
__metadata("design:type", Number)
|
|
2310
|
+
], NumberInputComponent.prototype, "significantDigits", null);
|
|
2179
2311
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
2180
2312
|
type: Component,
|
|
2181
|
-
args: [{ selector: 'aup-number-input', template: "<mat-form-field
|
|
2313
|
+
args: [{ selector: 'aup-number-input', template: "<mat-form-field floatLabel=\"always\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [ngModel]=\"displayValue$.value\"\n (ngModelChange)=\"onValueChange($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"4\"\n [step]=\"step$.value\"\n >\n <section matIconSuffix>\n <button [pectinCommand]=\"decrementCommand\">-</button>\n <button [pectinCommand]=\"incrementCommand\">+</button>\n </section>\n <mat-hint *ngIf=\"hint && !dense\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</mat-form-field>\n", styles: [":host{--width: 56px;--height: 42px;--margin-right: 1px;--border-radius: 3px;--border-color:#d5d5d5;--button-background: #fafafa;--button-background-hover: #efefef}:host input[type=number]{appearance:textfield}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}:host:focus-within:has(section:not(:focus-within)){--height: 40px;--margin-right: 2px;--border-radius: 2px}:host section[maticonsuffix]{display:flex;flex-direction:row;align-items:stretch;gap:1px;background-color:var(--border-color);border-left:1px solid var(--border-color);width:var(--width);min-width:var(--width);height:var(--height);min-height:var(--height);margin-right:var(--margin-right);border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);overflow:hidden}:host button{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:600;border-style:none;background-color:var(--button-background)}:host button:hover{background-color:var(--button-background-hover)}\n"] }]
|
|
2182
2314
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2183
2315
|
type: Input
|
|
2316
|
+
}], min$: [{
|
|
2317
|
+
type: Input
|
|
2184
2318
|
}], min: [{
|
|
2185
2319
|
type: Input
|
|
2320
|
+
}], max$: [{
|
|
2321
|
+
type: Input
|
|
2186
2322
|
}], max: [{
|
|
2187
2323
|
type: Input
|
|
2188
|
-
}],
|
|
2324
|
+
}], significantDigits$: [{
|
|
2325
|
+
type: Input
|
|
2326
|
+
}], significantDigits: [{
|
|
2189
2327
|
type: Input
|
|
2190
2328
|
}] } });
|
|
2191
2329
|
|
|
2192
2330
|
class PasswordInputComponent extends AbstractValueInputComponent {
|
|
2193
2331
|
autocomplete;
|
|
2332
|
+
#enableShowPassword$_accessor_storage = proxify((ValueModel));
|
|
2333
|
+
get enableShowPassword$() { return this.#enableShowPassword$_accessor_storage; }
|
|
2334
|
+
set enableShowPassword$(value) { this.#enableShowPassword$_accessor_storage = value; }
|
|
2335
|
+
#enableShowPassword_accessor_storage = false;
|
|
2336
|
+
get enableShowPassword() { return this.#enableShowPassword_accessor_storage; }
|
|
2337
|
+
set enableShowPassword(value) { this.#enableShowPassword_accessor_storage = value; }
|
|
2338
|
+
showPassword$ = new MutableValueModel(false);
|
|
2339
|
+
toggleShowPasswordCommand;
|
|
2194
2340
|
constructor() {
|
|
2195
2341
|
super();
|
|
2342
|
+
const { chain, valueOf } = Dsl.disposeWith(this);
|
|
2343
|
+
const face$ = chain(this.showPassword$).map(show => {
|
|
2344
|
+
return {
|
|
2345
|
+
icon: () => show ? "mat:visibility_off" : "mat:visibility"
|
|
2346
|
+
};
|
|
2347
|
+
});
|
|
2348
|
+
this.toggleShowPasswordCommand = Command.create(() => {
|
|
2349
|
+
this.showPassword$.value = !this.showPassword$.value;
|
|
2350
|
+
})
|
|
2351
|
+
.withFace(face$)
|
|
2352
|
+
.enableWhile(chain.stringValue(this.componentValue$).isNotBlank());
|
|
2353
|
+
}
|
|
2354
|
+
get fieldType() {
|
|
2355
|
+
return this.showPassword$.value ? "text" : "password";
|
|
2196
2356
|
}
|
|
2197
2357
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2198
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: PasswordInputComponent, selector: "aup-password-input", inputs: { autocomplete: "autocomplete" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"
|
|
2358
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: PasswordInputComponent, selector: "aup-password-input", inputs: { autocomplete: "autocomplete", enableShowPassword$: "enableShowPassword$", enableShowPassword: "enableShowPassword" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input [type]=\"fieldType\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <span matSuffix *ngIf=\"enableShowPassword$.value\">\n <aup-command [command]=\"toggleShowPasswordCommand\" data-cy=\"showPassword\"></aup-command>\n </span>\n</mat-form-field>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
|
|
2199
2359
|
}
|
|
2360
|
+
__decorate([
|
|
2361
|
+
Proxify(),
|
|
2362
|
+
__metadata("design:type", Object)
|
|
2363
|
+
], PasswordInputComponent.prototype, "enableShowPassword$", null);
|
|
2364
|
+
__decorate([
|
|
2365
|
+
StoreInValueModel(),
|
|
2366
|
+
__metadata("design:type", Object)
|
|
2367
|
+
], PasswordInputComponent.prototype, "enableShowPassword", null);
|
|
2200
2368
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PasswordInputComponent, decorators: [{
|
|
2201
2369
|
type: Component,
|
|
2202
|
-
args: [{ selector: 'aup-password-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"
|
|
2370
|
+
args: [{ selector: 'aup-password-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input [type]=\"fieldType\"\n matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <span matSuffix *ngIf=\"enableShowPassword$.value\">\n <aup-command [command]=\"toggleShowPasswordCommand\" data-cy=\"showPassword\"></aup-command>\n </span>\n</mat-form-field>\n\n" }]
|
|
2371
|
+
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2372
|
+
type: Input
|
|
2373
|
+
}], enableShowPassword$: [{
|
|
2374
|
+
type: Input
|
|
2375
|
+
}], enableShowPassword: [{
|
|
2376
|
+
type: Input
|
|
2377
|
+
}] } });
|
|
2378
|
+
|
|
2379
|
+
class SearchInputComponent extends AbstractValueInputComponent {
|
|
2380
|
+
autocomplete;
|
|
2381
|
+
clearCommand;
|
|
2382
|
+
constructor() {
|
|
2383
|
+
super();
|
|
2384
|
+
this.dense = true;
|
|
2385
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2386
|
+
this.clearCommand = Command.create(() => {
|
|
2387
|
+
this.componentValue$.value = "";
|
|
2388
|
+
});
|
|
2389
|
+
this.clearCommand.disableWhile(chain.stringValue(this.componentValue$).isBlank());
|
|
2390
|
+
}
|
|
2391
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2392
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SearchInputComponent, selector: "aup-search-input", inputs: { autocomplete: "autocomplete" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <aup-icon matPrefix icon=\"mat:search\"></aup-icon>\n <button mat-icon-button matSuffix [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n", styles: ["button[disabled]{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }] });
|
|
2393
|
+
}
|
|
2394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
2395
|
+
type: Component,
|
|
2396
|
+
args: [{ selector: 'aup-search-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <aup-icon matPrefix icon=\"mat:search\"></aup-icon>\n <button mat-icon-button matSuffix [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n", styles: ["button[disabled]{visibility:hidden}\n"] }]
|
|
2203
2397
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2204
2398
|
type: Input
|
|
2205
2399
|
}] } });
|
|
2206
2400
|
|
|
2207
2401
|
/**
|
|
2208
2402
|
* Using templates:
|
|
2209
|
-
* <aup-select-input [
|
|
2403
|
+
* <aup-select-input [value$]="myModel" [options]="myOptions">
|
|
2210
2404
|
* <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
2211
|
-
* <ng-template #
|
|
2405
|
+
* <ng-template #selectedOptionTemplate let-option>{{option.thePropertyYouWant}} note, not used for nils (the placeholder is used)</ng-template>
|
|
2406
|
+
* <ng-template #nilOptionTemplate>Uses the placeholder by default but you can customise it</ng-template>
|
|
2212
2407
|
* </aup-select_input>
|
|
2213
2408
|
*/
|
|
2214
2409
|
class SelectInputComponent extends AbstractValueInputComponent {
|
|
@@ -2233,7 +2428,7 @@ class SelectInputComponent extends AbstractValueInputComponent {
|
|
|
2233
2428
|
super();
|
|
2234
2429
|
const { chain } = Dsl.disposeWith(this);
|
|
2235
2430
|
this.cookedOptions$ = chain(this.options$)
|
|
2236
|
-
.
|
|
2431
|
+
.mapAll(options => {
|
|
2237
2432
|
return options.length < 1 && !isNil(this.componentValue$.value) ? [this.componentValue$.value] : options;
|
|
2238
2433
|
}, {
|
|
2239
2434
|
dependsOn: this.componentValue$
|
|
@@ -2272,21 +2467,21 @@ class SelectInputComponent extends AbstractValueInputComponent {
|
|
|
2272
2467
|
id: this.delegatedIdentityOf(value)
|
|
2273
2468
|
});
|
|
2274
2469
|
let lastIdSnapshot = snapshotValueAndId(this.componentValue$.value);
|
|
2275
|
-
console.log(lastIdSnapshot)
|
|
2470
|
+
// console.log(lastIdSnapshot)
|
|
2276
2471
|
before(this.options$).changes(() => {
|
|
2277
2472
|
lastIdSnapshot = snapshotValueAndId(this.componentValue$.value);
|
|
2278
|
-
console.log(lastIdSnapshot)
|
|
2473
|
+
// console.log(lastIdSnapshot)
|
|
2279
2474
|
});
|
|
2280
2475
|
when(this.options$).changes((is, was) => {
|
|
2281
2476
|
const newIdSnapshot = snapshotValueAndId(lastIdSnapshot.value);
|
|
2282
|
-
console.log(lastIdSnapshot, newIdSnapshot)
|
|
2477
|
+
// console.log(lastIdSnapshot, newIdSnapshot)
|
|
2283
2478
|
if (newIdSnapshot !== lastIdSnapshot.id) {
|
|
2284
2479
|
this.id$.value = this.delegatedIdentityOf(this.componentValue$.value);
|
|
2285
2480
|
}
|
|
2286
2481
|
});
|
|
2287
2482
|
}
|
|
2288
2483
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2289
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectInputComponent, selector: "aup-select-input", inputs: { options$: "options$", options: "options", optionLabel: "optionLabel", allowNil: "allowNil", optionLabelFormat: "optionLabelFormat" }, queries: [{ propertyName: "selectedOptionTemplateRef", first: true, predicate: ["selectedOptionTemplate"], descendants: true }, { propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "nilOptionTemplateRef", first: true, predicate: ["nilOptionTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValue$.value\"\n (ngModelChange)=\"select($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n\n <!--\n TODO: dave has a scenario where the selected item isn't rendering that I can't reproduce so we explicity render it..\n It typically happens because the ngModel value isn't the one contained in the list - this means our source model\n identifyOf function has changed and our id$/lookup$/componentValue$ are out of sync.\n We get around this for now by explicity rendering the component value.\n Please Note: I haven't been able to reproduce this\n -->\n <mat-select-trigger *ngIf=\"!selectedOptionTemplateRef\">\n {{optionLabelFormat(componentValue$.value)}}\n </mat-select-trigger>\n\n <mat-select-trigger *ngIf=\"selectedOptionTemplateRef\">\n <ng-container [ngTemplateOutlet]=\"selectedOptionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: componentValue$.value}\"></ng-container>\n </mat-select-trigger>\n\n <mat-option *ngIf=\"allowNil\">\n <ng-container *ngIf=\"!nilOptionTemplateRef\">{{placeholder}}</ng-container>\n <ng-container *ngIf=\"nilOptionTemplateRef\" [ngTemplateOutlet]=\"nilOptionTemplateRef\"></ng-container>\n </mat-option>\n <mat-option *ngFor=\"let option of cookedOptions$.value; trackBy: trackByIdentity;let i = index\"\n [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div class=\"item\" *ngFor=\"let item of cookedOptions$.value\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(item)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: 0 }\"\n >\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$
|
|
2484
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectInputComponent, selector: "aup-select-input", inputs: { options$: "options$", options: "options", optionLabel: "optionLabel", allowNil: "allowNil", optionLabelFormat: "optionLabelFormat" }, queries: [{ propertyName: "selectedOptionTemplateRef", first: true, predicate: ["selectedOptionTemplate"], descendants: true }, { propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "nilOptionTemplateRef", first: true, predicate: ["nilOptionTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValue$.value\"\n (ngModelChange)=\"select($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n\n <!--\n TODO: dave has a scenario where the selected item isn't rendering that I can't reproduce so we explicity render it..\n It typically happens because the ngModel value isn't the one contained in the list - this means our source model\n identifyOf function has changed and our id$/lookup$/componentValue$ are out of sync.\n We get around this for now by explicity rendering the component value.\n Please Note: I haven't been able to reproduce this\n -->\n <mat-select-trigger *ngIf=\"!selectedOptionTemplateRef\">\n {{optionLabelFormat(componentValue$.value)}}\n </mat-select-trigger>\n\n <mat-select-trigger *ngIf=\"selectedOptionTemplateRef\">\n <ng-container [ngTemplateOutlet]=\"selectedOptionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: componentValue$.value}\"></ng-container>\n </mat-select-trigger>\n\n <mat-option *ngIf=\"allowNil\">\n <ng-container *ngIf=\"!nilOptionTemplateRef\">{{placeholder}}</ng-container>\n <ng-container *ngIf=\"nilOptionTemplateRef\" [ngTemplateOutlet]=\"nilOptionTemplateRef\"></ng-container>\n </mat-option>\n <mat-option *ngFor=\"let option of cookedOptions$.value; trackBy: trackByIdentity;let i = index\"\n [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n <ng-content select=\"[select-option-footer]\"></ng-content>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div class=\"item\" *ngFor=\"let item of cookedOptions$.value\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(item)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: 0 }\"\n >\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$3.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
|
|
2290
2485
|
}
|
|
2291
2486
|
__decorate([
|
|
2292
2487
|
Proxify(),
|
|
@@ -2298,7 +2493,7 @@ __decorate([
|
|
|
2298
2493
|
], SelectInputComponent.prototype, "options", null);
|
|
2299
2494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputComponent, decorators: [{
|
|
2300
2495
|
type: Component,
|
|
2301
|
-
args: [{ selector: 'aup-select-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValue$.value\"\n (ngModelChange)=\"select($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n\n <!--\n TODO: dave has a scenario where the selected item isn't rendering that I can't reproduce so we explicity render it..\n It typically happens because the ngModel value isn't the one contained in the list - this means our source model\n identifyOf function has changed and our id$/lookup$/componentValue$ are out of sync.\n We get around this for now by explicity rendering the component value.\n Please Note: I haven't been able to reproduce this\n -->\n <mat-select-trigger *ngIf=\"!selectedOptionTemplateRef\">\n {{optionLabelFormat(componentValue$.value)}}\n </mat-select-trigger>\n\n <mat-select-trigger *ngIf=\"selectedOptionTemplateRef\">\n <ng-container [ngTemplateOutlet]=\"selectedOptionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: componentValue$.value}\"></ng-container>\n </mat-select-trigger>\n\n <mat-option *ngIf=\"allowNil\">\n <ng-container *ngIf=\"!nilOptionTemplateRef\">{{placeholder}}</ng-container>\n <ng-container *ngIf=\"nilOptionTemplateRef\" [ngTemplateOutlet]=\"nilOptionTemplateRef\"></ng-container>\n </mat-option>\n <mat-option *ngFor=\"let option of cookedOptions$.value; trackBy: trackByIdentity;let i = index\"\n [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div class=\"item\" *ngFor=\"let item of cookedOptions$.value\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(item)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: 0 }\"\n >\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:0}\n"] }]
|
|
2496
|
+
args: [{ selector: 'aup-select-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValue$.value\"\n (ngModelChange)=\"select($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n\n <!--\n TODO: dave has a scenario where the selected item isn't rendering that I can't reproduce so we explicity render it..\n It typically happens because the ngModel value isn't the one contained in the list - this means our source model\n identifyOf function has changed and our id$/lookup$/componentValue$ are out of sync.\n We get around this for now by explicity rendering the component value.\n Please Note: I haven't been able to reproduce this\n -->\n <mat-select-trigger *ngIf=\"!selectedOptionTemplateRef\">\n {{optionLabelFormat(componentValue$.value)}}\n </mat-select-trigger>\n\n <mat-select-trigger *ngIf=\"selectedOptionTemplateRef\">\n <ng-container [ngTemplateOutlet]=\"selectedOptionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: componentValue$.value}\"></ng-container>\n </mat-select-trigger>\n\n <mat-option *ngIf=\"allowNil\">\n <ng-container *ngIf=\"!nilOptionTemplateRef\">{{placeholder}}</ng-container>\n <ng-container *ngIf=\"nilOptionTemplateRef\" [ngTemplateOutlet]=\"nilOptionTemplateRef\"></ng-container>\n </mat-option>\n <mat-option *ngFor=\"let option of cookedOptions$.value; trackBy: trackByIdentity;let i = index\"\n [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n <ng-content select=\"[select-option-footer]\"></ng-content>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div class=\"item\" *ngFor=\"let item of cookedOptions$.value\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(item)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: 0 }\"\n >\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:0}\n"] }]
|
|
2302
2497
|
}], ctorParameters: function () { return []; }, propDecorators: { options$: [{
|
|
2303
2498
|
type: Input
|
|
2304
2499
|
}], options: [{
|
|
@@ -2329,17 +2524,28 @@ class StringInputComponent extends AbstractValueInputComponent {
|
|
|
2329
2524
|
get enableClear() { return this.#enableClear_accessor_storage; }
|
|
2330
2525
|
set enableClear(value) { this.#enableClear_accessor_storage = value; }
|
|
2331
2526
|
iconPrefix;
|
|
2527
|
+
#suffixCommand_accessor_storage = proxify(Command);
|
|
2528
|
+
get suffixCommand() { return this.#suffixCommand_accessor_storage; }
|
|
2529
|
+
set suffixCommand(value) { this.#suffixCommand_accessor_storage = value; }
|
|
2332
2530
|
clearCommand;
|
|
2531
|
+
elementRef = this.inject(ElementRef);
|
|
2333
2532
|
constructor() {
|
|
2334
2533
|
super();
|
|
2335
2534
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2336
2535
|
this.clearCommand = Command.create(() => {
|
|
2337
2536
|
this.componentValue$.value = "";
|
|
2338
|
-
})
|
|
2339
|
-
|
|
2537
|
+
})
|
|
2538
|
+
.withFace({ icon: () => "mat:clear" })
|
|
2539
|
+
.enableWhile(chain.stringValue(this.componentValue$).isNotBlank());
|
|
2540
|
+
}
|
|
2541
|
+
get hasSuffixCommand() {
|
|
2542
|
+
return Proxify.hasTarget(this.suffixCommand);
|
|
2543
|
+
}
|
|
2544
|
+
select() {
|
|
2545
|
+
this.elementRef.nativeElement.querySelector('input').select();
|
|
2340
2546
|
}
|
|
2341
2547
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2342
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: StringInputComponent, selector: "aup-string-input", inputs: { autocomplete: "autocomplete", enableClear$: "enableClear$", enableClear: "enableClear", iconPrefix: "iconPrefix" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>\n <
|
|
2548
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: StringInputComponent, selector: "aup-string-input", inputs: { autocomplete: "autocomplete", enableClear$: "enableClear$", enableClear: "enableClear", iconPrefix: "iconPrefix", suffixCommand: "suffixCommand" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>\n <span matSuffix>\n <aup-command *ngIf=\"enableClear\" [command]=\"clearCommand\" data-cy=\"clearCommand\"></aup-command>\n <aup-command *ngIf=\"hasSuffixCommand\" [command]=\"suffixCommand\" data-cy=\"suffixCommand\"></aup-command>\n </span>\n</mat-form-field>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
|
|
2343
2549
|
}
|
|
2344
2550
|
__decorate([
|
|
2345
2551
|
Proxify(),
|
|
@@ -2349,9 +2555,13 @@ __decorate([
|
|
|
2349
2555
|
StoreInValueModel(),
|
|
2350
2556
|
__metadata("design:type", Object)
|
|
2351
2557
|
], StringInputComponent.prototype, "enableClear", null);
|
|
2558
|
+
__decorate([
|
|
2559
|
+
Proxify(),
|
|
2560
|
+
__metadata("design:type", Command)
|
|
2561
|
+
], StringInputComponent.prototype, "suffixCommand", null);
|
|
2352
2562
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputComponent, decorators: [{
|
|
2353
2563
|
type: Component,
|
|
2354
|
-
args: [{ selector: 'aup-string-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>\n <
|
|
2564
|
+
args: [{ selector: 'aup-string-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>\n <span matSuffix>\n <aup-command *ngIf=\"enableClear\" [command]=\"clearCommand\" data-cy=\"clearCommand\"></aup-command>\n <aup-command *ngIf=\"hasSuffixCommand\" [command]=\"suffixCommand\" data-cy=\"suffixCommand\"></aup-command>\n </span>\n</mat-form-field>\n\n" }]
|
|
2355
2565
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2356
2566
|
type: Input
|
|
2357
2567
|
}], enableClear$: [{
|
|
@@ -2360,6 +2570,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2360
2570
|
type: Input
|
|
2361
2571
|
}], iconPrefix: [{
|
|
2362
2572
|
type: Input
|
|
2573
|
+
}], suffixCommand: [{
|
|
2574
|
+
type: Input
|
|
2363
2575
|
}] } });
|
|
2364
2576
|
|
|
2365
2577
|
class TextInputComponent extends AbstractValueInputComponent {
|
|
@@ -2367,10 +2579,14 @@ class TextInputComponent extends AbstractValueInputComponent {
|
|
|
2367
2579
|
// valueModel: Form.ValueModelBase<string> | MutableValueModel<string>;
|
|
2368
2580
|
rows = 2;
|
|
2369
2581
|
cols;
|
|
2582
|
+
elementRef = this.inject(ElementRef);
|
|
2370
2583
|
constructor() {
|
|
2371
2584
|
super();
|
|
2372
2585
|
// const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2373
2586
|
}
|
|
2587
|
+
select() {
|
|
2588
|
+
this.elementRef.nativeElement.querySelector('input').select();
|
|
2589
|
+
}
|
|
2374
2590
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2375
2591
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TextInputComponent, selector: "aup-text-input", inputs: { rows: "rows", cols: "cols" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n </textarea>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n", styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
|
|
2376
2592
|
}
|
|
@@ -2547,7 +2763,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2547
2763
|
* </aup-switch-case>
|
|
2548
2764
|
*/
|
|
2549
2765
|
class SwitchCaseComponent extends DisposableComponent {
|
|
2550
|
-
cdr;
|
|
2551
2766
|
#switch$_accessor_storage = proxify((ValueModel));
|
|
2552
2767
|
get switch$() { return this.#switch$_accessor_storage; }
|
|
2553
2768
|
set switch$(value) { this.#switch$_accessor_storage = value; }
|
|
@@ -2556,9 +2771,8 @@ class SwitchCaseComponent extends DisposableComponent {
|
|
|
2556
2771
|
set switch(value) { this.#switch_accessor_storage = value; }
|
|
2557
2772
|
switchCaseOptions;
|
|
2558
2773
|
selectedIndex = 0;
|
|
2559
|
-
constructor(
|
|
2774
|
+
constructor() {
|
|
2560
2775
|
super();
|
|
2561
|
-
this.cdr = cdr;
|
|
2562
2776
|
}
|
|
2563
2777
|
ngAfterContentInit() {
|
|
2564
2778
|
const subscription = this.switchCaseOptions.changes.subscribe(change => this.updateSelection());
|
|
@@ -2595,8 +2809,8 @@ class SwitchCaseComponent extends DisposableComponent {
|
|
|
2595
2809
|
this.selectedIndex = -1;
|
|
2596
2810
|
}
|
|
2597
2811
|
}
|
|
2598
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [
|
|
2599
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SwitchCaseComponent, selector: "aup-switch-case", inputs: { switch$: "switch$", switch: "switch" }, queries: [{ propertyName: "switchCaseOptions", predicate: SwitchCaseOption }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group class=\"content-wrapper\" no-tab-header full-height-tabs [selectedIndex]=\"selectedIndex\">\n <mat-tab *ngFor=\"let option of switchCaseOptions\">\n <ng-template [ngTemplateOutlet]=\"option.templateRef\"></ng-template>\n </mat-tab>\n</mat-tab-group>\n\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$
|
|
2812
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2813
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SwitchCaseComponent, selector: "aup-switch-case", inputs: { switch$: "switch$", switch: "switch" }, queries: [{ propertyName: "switchCaseOptions", predicate: SwitchCaseOption }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group class=\"content-wrapper\" no-tab-header full-height-tabs [selectedIndex]=\"selectedIndex\">\n <mat-tab *ngFor=\"let option of switchCaseOptions\">\n <ng-template [ngTemplateOutlet]=\"option.templateRef\"></ng-template>\n </mat-tab>\n</mat-tab-group>\n\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$2.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }] });
|
|
2600
2814
|
}
|
|
2601
2815
|
__decorate([
|
|
2602
2816
|
Proxify(),
|
|
@@ -2609,7 +2823,7 @@ __decorate([
|
|
|
2609
2823
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, decorators: [{
|
|
2610
2824
|
type: Component,
|
|
2611
2825
|
args: [{ selector: 'aup-switch-case', template: "<mat-tab-group class=\"content-wrapper\" no-tab-header full-height-tabs [selectedIndex]=\"selectedIndex\">\n <mat-tab *ngFor=\"let option of switchCaseOptions\">\n <ng-template [ngTemplateOutlet]=\"option.templateRef\"></ng-template>\n </mat-tab>\n</mat-tab-group>\n\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"] }]
|
|
2612
|
-
}], ctorParameters: function () { return [
|
|
2826
|
+
}], ctorParameters: function () { return []; }, propDecorators: { switch$: [{
|
|
2613
2827
|
type: Input
|
|
2614
2828
|
}], switch: [{
|
|
2615
2829
|
type: Input
|
|
@@ -2619,6 +2833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2619
2833
|
}] } });
|
|
2620
2834
|
|
|
2621
2835
|
const HEADER_CELL_RENDERER_PORTAL = Symbol('aup-cell-header-renderer-component-ref');
|
|
2836
|
+
const FOOTER_CELL_RENDERER_PORTAL = Symbol('aup-cell-footer-renderer-component-ref');
|
|
2622
2837
|
const CELL_RENDERER_PORTAL = Symbol('aup-cell-renderer-component-ref');
|
|
2623
2838
|
const CELL_EDITOR_PORTAL = Symbol('aup-cell-editor-component-ref');
|
|
2624
2839
|
const PORTAL_RENDERER_COMPONENT = Symbol('aup-cell-renderer-portal-component');
|
|
@@ -2633,7 +2848,7 @@ class CellHeaderPortalRef extends CellPortalRef {
|
|
|
2633
2848
|
this.componentType = componentType;
|
|
2634
2849
|
this.initialiseHeader = initialiseHeader;
|
|
2635
2850
|
}
|
|
2636
|
-
initialiseHost(host
|
|
2851
|
+
initialiseHost(host) {
|
|
2637
2852
|
assert$1.isTruthy(host);
|
|
2638
2853
|
host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
2639
2854
|
}
|
|
@@ -2652,7 +2867,7 @@ class ComponentCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
2652
2867
|
this.componentType = componentType;
|
|
2653
2868
|
this.updateComponent = updateComponent;
|
|
2654
2869
|
}
|
|
2655
|
-
initialiseHost(host
|
|
2870
|
+
initialiseHost(host) {
|
|
2656
2871
|
host[CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
2657
2872
|
}
|
|
2658
2873
|
// @Trace()
|
|
@@ -2675,7 +2890,7 @@ class CellEditorPortalRef extends CellPortalRef {
|
|
|
2675
2890
|
this.componentType = componentType;
|
|
2676
2891
|
this.initialiseEditorSession = initialiseEditorSession;
|
|
2677
2892
|
}
|
|
2678
|
-
initialiseHost(host
|
|
2893
|
+
initialiseHost(host) {
|
|
2679
2894
|
assert$1.isTruthy(host);
|
|
2680
2895
|
host[CELL_EDITOR_PORTAL] = new ComponentPortal(this.componentType);
|
|
2681
2896
|
}
|
|
@@ -2699,7 +2914,7 @@ class TemplateCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
2699
2914
|
this.fillCell = fillCell;
|
|
2700
2915
|
this.padChild = padChild;
|
|
2701
2916
|
}
|
|
2702
|
-
initialiseHost(host
|
|
2917
|
+
initialiseHost(host) {
|
|
2703
2918
|
assert$1.isTruthy(host);
|
|
2704
2919
|
}
|
|
2705
2920
|
// @Trace()
|
|
@@ -2716,6 +2931,23 @@ class TemplateCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
2716
2931
|
return new TemplatePortal(this.templateRef, this.viewContainer, { ...(data), $implicit: data.row });
|
|
2717
2932
|
}
|
|
2718
2933
|
}
|
|
2934
|
+
class CellFooterPortalRef extends CellPortalRef {
|
|
2935
|
+
componentType;
|
|
2936
|
+
initialiseHeader;
|
|
2937
|
+
constructor(componentType, initialiseHeader) {
|
|
2938
|
+
super();
|
|
2939
|
+
this.componentType = componentType;
|
|
2940
|
+
this.initialiseHeader = initialiseHeader;
|
|
2941
|
+
}
|
|
2942
|
+
initialiseHost(host) {
|
|
2943
|
+
assert$1.isTruthy(host);
|
|
2944
|
+
host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
2945
|
+
}
|
|
2946
|
+
// @Trace()
|
|
2947
|
+
onPortalAttached(host, portalComponent) {
|
|
2948
|
+
this.initialiseHeader(portalComponent, host.column);
|
|
2949
|
+
}
|
|
2950
|
+
}
|
|
2719
2951
|
|
|
2720
2952
|
class ColumnTextSearchFormatter {
|
|
2721
2953
|
}
|
|
@@ -2806,6 +3038,7 @@ class ColumnTextSearchWrapper extends ColumnTextSearchFormatter.Delegate {
|
|
|
2806
3038
|
}
|
|
2807
3039
|
class ColumnModel extends GarbageCollector {
|
|
2808
3040
|
columnId;
|
|
3041
|
+
order;
|
|
2809
3042
|
textPropertiesProvider;
|
|
2810
3043
|
_columnTextProperties;
|
|
2811
3044
|
_columnHeaderPortalRef;
|
|
@@ -2819,9 +3052,10 @@ class ColumnModel extends GarbageCollector {
|
|
|
2819
3052
|
dasherisedColumnId;
|
|
2820
3053
|
textSearchDelegate = new ColumnTextSearchWrapper();
|
|
2821
3054
|
visible$;
|
|
2822
|
-
constructor(columnId, textPropertiesProvider) {
|
|
3055
|
+
constructor(columnId, order, textPropertiesProvider) {
|
|
2823
3056
|
super();
|
|
2824
3057
|
this.columnId = columnId;
|
|
3058
|
+
this.order = order;
|
|
2825
3059
|
this.textPropertiesProvider = textPropertiesProvider;
|
|
2826
3060
|
const { valueOf } = Dsl.disposeWith(this);
|
|
2827
3061
|
this.installHeaderRenderer();
|
|
@@ -2866,6 +3100,14 @@ class ColumnModel extends GarbageCollector {
|
|
|
2866
3100
|
this._columnTextProperties = columnTextProperties;
|
|
2867
3101
|
return this;
|
|
2868
3102
|
}
|
|
3103
|
+
positionAfter(column) {
|
|
3104
|
+
this.order.position(this, { after: column });
|
|
3105
|
+
return this;
|
|
3106
|
+
}
|
|
3107
|
+
positionBefore(column) {
|
|
3108
|
+
this.order.position(this, { before: column });
|
|
3109
|
+
return this;
|
|
3110
|
+
}
|
|
2869
3111
|
getSearchTextFor(row) {
|
|
2870
3112
|
return this.textSearchDelegate.format(row);
|
|
2871
3113
|
}
|
|
@@ -2898,12 +3140,12 @@ class ColumnModel extends GarbageCollector {
|
|
|
2898
3140
|
return !!this._cellEditorPortalRef;
|
|
2899
3141
|
}
|
|
2900
3142
|
attachHeaderCell(host) {
|
|
2901
|
-
this._columnHeaderPortalRef.initialiseHost(host
|
|
3143
|
+
this._columnHeaderPortalRef.initialiseHost(host);
|
|
2902
3144
|
}
|
|
2903
3145
|
attachCell(host) {
|
|
2904
|
-
this._cellRendererPortalRef.initialiseHost(host
|
|
3146
|
+
this._cellRendererPortalRef.initialiseHost(host);
|
|
2905
3147
|
if (this.hasEditorPortal()) {
|
|
2906
|
-
this._cellEditorPortalRef.initialiseHost(host
|
|
3148
|
+
this._cellEditorPortalRef.initialiseHost(host);
|
|
2907
3149
|
}
|
|
2908
3150
|
}
|
|
2909
3151
|
onHeaderAttached(host, ref) {
|
|
@@ -2967,8 +3209,8 @@ __decorate([
|
|
|
2967
3209
|
|
|
2968
3210
|
class CustomTemplateColumnModel extends ColumnModel {
|
|
2969
3211
|
config = new TemplateCellRendererPortalRef();
|
|
2970
|
-
constructor(columnId, defaults) {
|
|
2971
|
-
super(columnId, defaults);
|
|
3212
|
+
constructor(columnId, order, defaults) {
|
|
3213
|
+
super(columnId, order, defaults);
|
|
2972
3214
|
this.configureCellRenderer(this.config);
|
|
2973
3215
|
}
|
|
2974
3216
|
setTemplate(templateRef, viewContainer, fillCell, padChild) {
|
|
@@ -3046,12 +3288,17 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3046
3288
|
#showHeader_accessor_storage = true;
|
|
3047
3289
|
get showHeader() { return this.#showHeader_accessor_storage; }
|
|
3048
3290
|
set showHeader(value) { this.#showHeader_accessor_storage = value; }
|
|
3291
|
+
#enableScrolling$_accessor_storage = proxify((ValueModel));
|
|
3049
3292
|
/**
|
|
3050
3293
|
* Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
|
|
3051
3294
|
* need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
|
|
3052
3295
|
* containment area.
|
|
3053
3296
|
*/
|
|
3054
|
-
enableScrolling
|
|
3297
|
+
get enableScrolling$() { return this.#enableScrolling$_accessor_storage; }
|
|
3298
|
+
set enableScrolling$(value) { this.#enableScrolling$_accessor_storage = value; }
|
|
3299
|
+
#enableScrolling_accessor_storage = false;
|
|
3300
|
+
get enableScrolling() { return this.#enableScrolling_accessor_storage; }
|
|
3301
|
+
set enableScrolling(value) { this.#enableScrolling_accessor_storage = value; }
|
|
3055
3302
|
columns;
|
|
3056
3303
|
columnIds;
|
|
3057
3304
|
columnsById;
|
|
@@ -3070,7 +3317,6 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3070
3317
|
super();
|
|
3071
3318
|
this.injector = injector;
|
|
3072
3319
|
const { chain, when } = Dsl.disposeWith(this);
|
|
3073
|
-
this._visibleRows$.setDelegate(this._dataSource$);
|
|
3074
3320
|
when(chain(this._dataSource$).first()).becomesTruthy(it => {
|
|
3075
3321
|
if (it === this.identityOf(it)) {
|
|
3076
3322
|
console.warn("Table model identity function is using reference equality. This can cause lots of table re-rendering", {
|
|
@@ -3089,7 +3335,7 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3089
3335
|
if (!model) {
|
|
3090
3336
|
lang$1.illegalState("aup-table tableModel is nil");
|
|
3091
3337
|
}
|
|
3092
|
-
this.columnsById = chain(model.columns).indexBy('columnId');
|
|
3338
|
+
this.columnsById = chain(model.columns$).indexBy('columnId');
|
|
3093
3339
|
this._dataSource$.setDelegate(model.dataSource$);
|
|
3094
3340
|
model.initialise(this.injector, (row) => this.identityOf(row));
|
|
3095
3341
|
}
|
|
@@ -3106,7 +3352,7 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3106
3352
|
}
|
|
3107
3353
|
}
|
|
3108
3354
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractTableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
3109
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractTableComponent, selector: "aup-abstract-table", inputs: { showHeader$: "showHeader$", showHeader: "showHeader", enableScrolling: "enableScrolling" }, host: { properties: { "class": "this.baseCssClass" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
3355
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractTableComponent, selector: "aup-abstract-table", inputs: { showHeader$: "showHeader$", showHeader: "showHeader", enableScrolling$: "enableScrolling$", enableScrolling: "enableScrolling" }, host: { properties: { "class": "this.baseCssClass" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
3110
3356
|
}
|
|
3111
3357
|
__decorate([
|
|
3112
3358
|
Proxify(),
|
|
@@ -3116,6 +3362,14 @@ __decorate([
|
|
|
3116
3362
|
StoreInValueModel(),
|
|
3117
3363
|
__metadata("design:type", Object)
|
|
3118
3364
|
], AbstractTableComponent.prototype, "showHeader", null);
|
|
3365
|
+
__decorate([
|
|
3366
|
+
Proxify(),
|
|
3367
|
+
__metadata("design:type", ValueModel)
|
|
3368
|
+
], AbstractTableComponent.prototype, "enableScrolling$", null);
|
|
3369
|
+
__decorate([
|
|
3370
|
+
StoreInValueModel(),
|
|
3371
|
+
__metadata("design:type", Boolean)
|
|
3372
|
+
], AbstractTableComponent.prototype, "enableScrolling", null);
|
|
3119
3373
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractTableComponent, decorators: [{
|
|
3120
3374
|
type: Component,
|
|
3121
3375
|
args: [{
|
|
@@ -3126,6 +3380,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
3126
3380
|
type: Input
|
|
3127
3381
|
}], showHeader: [{
|
|
3128
3382
|
type: Input
|
|
3383
|
+
}], enableScrolling$: [{
|
|
3384
|
+
type: Input
|
|
3129
3385
|
}], enableScrolling: [{
|
|
3130
3386
|
type: Input
|
|
3131
3387
|
}], baseCssClass: [{
|
|
@@ -3186,6 +3442,8 @@ class EditSession extends GarbageCollector {
|
|
|
3186
3442
|
// console.warn()
|
|
3187
3443
|
// }
|
|
3188
3444
|
this._liveRowValue$.value = produce(this._liveRowValue$.value, draft => {
|
|
3445
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3446
|
+
// @ts-ignore
|
|
3189
3447
|
this.form.writeDirtyStateTo(draft);
|
|
3190
3448
|
});
|
|
3191
3449
|
});
|
|
@@ -3288,11 +3546,11 @@ class DefaultCellRendererComponent {
|
|
|
3288
3546
|
return this._value;
|
|
3289
3547
|
}
|
|
3290
3548
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DefaultCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3291
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: DefaultCellRendererComponent, selector: "aup-default-cell-renderer", inputs: { value: "value" }, ngImport: i0, template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n", styles: [""], dependencies: [{ kind: "pipe", type: HighlightPipe, name: "aupHighlight" }] });
|
|
3549
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: DefaultCellRendererComponent, selector: "aup-default-cell-renderer", inputs: { value: "value" }, ngImport: i0, template: "<span [innerHTML]=\"value?.toString() | aupHighlight\"></span>\n", styles: [""], dependencies: [{ kind: "pipe", type: HighlightPipe, name: "aupHighlight" }] });
|
|
3292
3550
|
}
|
|
3293
3551
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
|
|
3294
3552
|
type: Component,
|
|
3295
|
-
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n" }]
|
|
3553
|
+
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value?.toString() | aupHighlight\"></span>\n" }]
|
|
3296
3554
|
}], propDecorators: { value: [{
|
|
3297
3555
|
type: Input
|
|
3298
3556
|
}] } });
|
|
@@ -3308,7 +3566,8 @@ class SelectionHeaderCellComponent extends DisposableComponent {
|
|
|
3308
3566
|
super();
|
|
3309
3567
|
this.selectCommand = Command.create(() => {
|
|
3310
3568
|
this.selectionModel.toggleAllCommand.execute();
|
|
3311
|
-
})
|
|
3569
|
+
}).visibleWhile(this.selectionModel.toggleAllCommand.visible$)
|
|
3570
|
+
.enableWhile(this.selectionModel.toggleAllCommand.enabled$);
|
|
3312
3571
|
}
|
|
3313
3572
|
isSelected() {
|
|
3314
3573
|
return this.ifMultiSelectionModel(m => m.allSelected$.value, false);
|
|
@@ -3336,7 +3595,7 @@ class SelectionHeaderCellComponent extends DisposableComponent {
|
|
|
3336
3595
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3337
3596
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectionHeaderCellComponent, selector: "aup-selection-header-cell", providers: [
|
|
3338
3597
|
{ provide: MAT_CHECKBOX_DEFAULT_OPTIONS, useValue: { clickAction: 'noop' } }
|
|
3339
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-checkbox *ngIf=\"isVisible()\"\n (click)=\"handleClick($event)\"\n [checked]=\"isSelected()\"\n [indeterminate]=\"this.isIntermediate()\"\n [color]=\"color\"\n></mat-checkbox>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type:
|
|
3598
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-checkbox *ngIf=\"isVisible()\"\n (click)=\"handleClick($event)\"\n [checked]=\"isSelected()\"\n [indeterminate]=\"this.isIntermediate()\"\n [color]=\"color\"\n></mat-checkbox>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
3340
3599
|
}
|
|
3341
3600
|
__decorate([
|
|
3342
3601
|
Proxify(),
|
|
@@ -3369,7 +3628,7 @@ class SelectionCellComponent extends DisposableComponent {
|
|
|
3369
3628
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3370
3629
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectionCellComponent, selector: "aup-selection-cell", inputs: { row: "row" }, providers: [
|
|
3371
3630
|
{ provide: MAT_CHECKBOX_DEFAULT_OPTIONS, useValue: { clickAction: 'noop' } }
|
|
3372
|
-
], usesInheritance: true, ngImport: i0, template: "<mat-checkbox (click)=\"select($event)\" [checked]=\"isSelected()\" [color]=\"color\"></mat-checkbox>\n", styles: [""], dependencies: [{ kind: "component", type:
|
|
3631
|
+
], usesInheritance: true, ngImport: i0, template: "<mat-checkbox (click)=\"select($event)\" [checked]=\"isSelected()\" [color]=\"color\"></mat-checkbox>\n", styles: [""], dependencies: [{ kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
3373
3632
|
}
|
|
3374
3633
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionCellComponent, decorators: [{
|
|
3375
3634
|
type: Component,
|
|
@@ -3430,25 +3689,14 @@ class Bounds extends Dimension {
|
|
|
3430
3689
|
})(Bounds || (Bounds = {}));
|
|
3431
3690
|
|
|
3432
3691
|
class ResizeAwareComponent extends DisposableComponent {
|
|
3433
|
-
elementRef;
|
|
3434
|
-
ngZone;
|
|
3435
|
-
|
|
3436
|
-
constructor(elementRef, ngZone) {
|
|
3437
|
-
super();
|
|
3438
|
-
this.elementRef = elementRef;
|
|
3439
|
-
this.ngZone = ngZone;
|
|
3440
|
-
}
|
|
3692
|
+
elementRef = this.inject(ElementRef);
|
|
3693
|
+
ngZone = this.inject(NgZone);
|
|
3694
|
+
boundsTracker = new ResizeAwareComponent.ResizeTracker(this.elementRef, this.ngZone);
|
|
3441
3695
|
ngAfterViewInit() {
|
|
3442
|
-
|
|
3443
|
-
const ro = new ResizeObserver((entries, observer) => {
|
|
3444
|
-
this.ngZone.run(() => this._updateBounds());
|
|
3445
|
-
});
|
|
3446
|
-
ro.observe(element);
|
|
3447
|
-
this.onDispose(() => ro.disconnect());
|
|
3448
|
-
setTimeout(() => this._updateBounds());
|
|
3696
|
+
this.boundsTracker.notifyViewReady();
|
|
3449
3697
|
}
|
|
3450
3698
|
get bounds$() {
|
|
3451
|
-
return this.
|
|
3699
|
+
return this.boundsTracker.bounds$;
|
|
3452
3700
|
}
|
|
3453
3701
|
get nativeElement() {
|
|
3454
3702
|
return this.elementRef.nativeElement;
|
|
@@ -3458,57 +3706,160 @@ class ResizeAwareComponent extends DisposableComponent {
|
|
|
3458
3706
|
return this.bounds.relativePositionOf(point);
|
|
3459
3707
|
}
|
|
3460
3708
|
get bounds() {
|
|
3461
|
-
return this.
|
|
3709
|
+
return this.bounds$.value;
|
|
3462
3710
|
}
|
|
3463
|
-
|
|
3464
|
-
this._bounds$.value = Bounds.ofElement(this.nativeElement);
|
|
3465
|
-
}
|
|
3466
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3711
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
3467
3712
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ResizeAwareComponent, usesInheritance: true, ngImport: i0 });
|
|
3468
3713
|
}
|
|
3469
3714
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, decorators: [{
|
|
3470
3715
|
type: Directive
|
|
3471
|
-
}]
|
|
3716
|
+
}] });
|
|
3717
|
+
(function (ResizeAwareComponent) {
|
|
3718
|
+
class ResizeTracker extends GarbageCollector {
|
|
3719
|
+
elementRef;
|
|
3720
|
+
ngZone;
|
|
3721
|
+
_bounds$ = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
3722
|
+
width$;
|
|
3723
|
+
height$;
|
|
3724
|
+
top$;
|
|
3725
|
+
left$;
|
|
3726
|
+
bottom$;
|
|
3727
|
+
right$;
|
|
3728
|
+
constructor(elementRef, ngZone) {
|
|
3729
|
+
super();
|
|
3730
|
+
this.elementRef = elementRef;
|
|
3731
|
+
this.ngZone = ngZone;
|
|
3732
|
+
const { chain } = Dsl.disposeWith(this);
|
|
3733
|
+
this.width$ = chain(this.bounds$).pluck("width");
|
|
3734
|
+
this.height$ = chain(this.bounds$).pluck("height");
|
|
3735
|
+
this.top$ = chain(this.bounds$).pluck("top");
|
|
3736
|
+
this.left$ = chain(this.bounds$).pluck("left");
|
|
3737
|
+
this.bottom$ = chain.numericValue(this.top$).add(this.height$);
|
|
3738
|
+
this.right$ = chain.numericValue(this.left$).add(this.width$);
|
|
3739
|
+
}
|
|
3740
|
+
notifyViewReady() {
|
|
3741
|
+
const element = this.elementRef.nativeElement;
|
|
3742
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
3743
|
+
this.ngZone.run(() => this._updateBounds());
|
|
3744
|
+
});
|
|
3745
|
+
ro.observe(element);
|
|
3746
|
+
this.onDispose(() => ro.disconnect());
|
|
3747
|
+
setTimeout(() => this._updateBounds());
|
|
3748
|
+
}
|
|
3749
|
+
get bounds$() {
|
|
3750
|
+
return this._bounds$.readonly$;
|
|
3751
|
+
}
|
|
3752
|
+
get nativeElement() {
|
|
3753
|
+
return this.elementRef.nativeElement;
|
|
3754
|
+
}
|
|
3755
|
+
// TODO: Make this handle body scroll
|
|
3756
|
+
relativePositionOf(point) {
|
|
3757
|
+
return this.bounds.relativePositionOf(point);
|
|
3758
|
+
}
|
|
3759
|
+
get bounds() {
|
|
3760
|
+
return this._bounds$.value;
|
|
3761
|
+
}
|
|
3762
|
+
_updateBounds() {
|
|
3763
|
+
this._bounds$.value = Bounds.ofElement(this.nativeElement);
|
|
3764
|
+
}
|
|
3765
|
+
}
|
|
3766
|
+
ResizeAwareComponent.ResizeTracker = ResizeTracker;
|
|
3767
|
+
})(ResizeAwareComponent || (ResizeAwareComponent = {}));
|
|
3472
3768
|
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3769
|
+
var ColumnOrderManager;
|
|
3770
|
+
(function (ColumnOrderManager) {
|
|
3771
|
+
function processPosition(position, callback) {
|
|
3772
|
+
if (position) {
|
|
3773
|
+
const keys = Object.keys(position);
|
|
3774
|
+
if (keys.includes("before")) {
|
|
3775
|
+
return position["before"] ? callback.before(position["before"]) : callback.first();
|
|
3776
|
+
}
|
|
3777
|
+
else {
|
|
3778
|
+
return position["after"] ? callback.after(position["after"]) : callback.last();
|
|
3779
|
+
}
|
|
3780
|
+
}
|
|
3781
|
+
else {
|
|
3782
|
+
return callback.last();
|
|
3783
|
+
}
|
|
3784
|
+
}
|
|
3785
|
+
ColumnOrderManager.processPosition = processPosition;
|
|
3786
|
+
})(ColumnOrderManager || (ColumnOrderManager = {}));
|
|
3787
|
+
|
|
3788
|
+
class ColumnRef {
|
|
3789
|
+
column;
|
|
3790
|
+
position;
|
|
3791
|
+
constructor(column, position) {
|
|
3792
|
+
this.column = column;
|
|
3793
|
+
this.position = position;
|
|
3794
|
+
}
|
|
3795
|
+
}
|
|
3796
|
+
class ColumnManager extends GarbageCollector {
|
|
3797
|
+
_columnRefs$ = new MutableListModel();
|
|
3798
|
+
orderedColumnRefs$;
|
|
3799
|
+
_columnsById$;
|
|
3800
|
+
allColumns$;
|
|
3801
|
+
columnVisibilities$ = new WatchList();
|
|
3802
|
+
visibleColumns$;
|
|
3476
3803
|
constructor() {
|
|
3477
3804
|
super();
|
|
3478
3805
|
const { chain } = Dsl.disposeWith(this);
|
|
3479
|
-
this.
|
|
3806
|
+
this.orderedColumnRefs$ = chain(this._columnRefs$).orderBy("position", "asc");
|
|
3807
|
+
this.allColumns$ = this.orderedColumnRefs$.pluck("column");
|
|
3808
|
+
this._columnsById$ = chain(this.allColumns$).indexBy('columnId');
|
|
3809
|
+
this.visibleColumns$ = chain(this.allColumns$).select(it => it.visible$.value, {
|
|
3810
|
+
dependsOn: this.columnVisibilities$
|
|
3811
|
+
});
|
|
3480
3812
|
}
|
|
3481
|
-
|
|
3482
|
-
|
|
3813
|
+
position(column, newPosition) {
|
|
3814
|
+
const target = this._columnRefs$.query().findMatching(it => it.column === column);
|
|
3815
|
+
const position = this.computePosition(newPosition);
|
|
3816
|
+
this._columnRefs$.replace(target, { with: new ColumnRef(target.column, position) });
|
|
3483
3817
|
}
|
|
3484
3818
|
getColumn(id) {
|
|
3485
|
-
return this.
|
|
3819
|
+
return this._columnsById$.get(id);
|
|
3486
3820
|
}
|
|
3487
3821
|
hasColumn(id) {
|
|
3488
|
-
return !!this.
|
|
3822
|
+
return !!this._columnsById$.get(id);
|
|
3489
3823
|
}
|
|
3490
3824
|
hasMatchingColumn(row, regex) {
|
|
3491
3825
|
// only search the visible columns
|
|
3492
|
-
return !!this.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3826
|
+
return !!this.visibleColumns$.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3493
3827
|
}
|
|
3494
|
-
addColumn(column,
|
|
3828
|
+
addColumn(column, position) {
|
|
3495
3829
|
if (this.hasColumn(column.columnId)) {
|
|
3496
3830
|
lang.illegalState(`Column with id=${column.columnId} already exists`);
|
|
3497
3831
|
}
|
|
3498
3832
|
this.registerDisposable(column);
|
|
3499
|
-
this.
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3833
|
+
this._columnRefs$.push(new ColumnRef(column, this.computePosition(position)));
|
|
3834
|
+
this.columnVisibilities$.add(column.visible$);
|
|
3835
|
+
return column;
|
|
3836
|
+
}
|
|
3837
|
+
computePosition(position) {
|
|
3838
|
+
const q = this.orderedColumnRefs$.query();
|
|
3839
|
+
return ColumnOrderManager.processPosition(position, {
|
|
3840
|
+
before(col) {
|
|
3841
|
+
const index = q.findIndex(ref => ref.column === col);
|
|
3842
|
+
const beforeCol = q.value[index];
|
|
3843
|
+
const afterCol = index - 1 >= 0 ? q.value[index - 1] : undefined;
|
|
3844
|
+
return generateKeyBetween(afterCol?.position, beforeCol.position);
|
|
3845
|
+
},
|
|
3846
|
+
after(col) {
|
|
3847
|
+
const index = q.findIndex(ref => ref.column === col);
|
|
3848
|
+
const afterCol = q.value[index];
|
|
3849
|
+
const beforeCol = index + 1 < q.length ? q.value[index + 1] : undefined;
|
|
3850
|
+
return generateKeyBetween(afterCol.position, beforeCol?.position);
|
|
3851
|
+
},
|
|
3852
|
+
first() {
|
|
3853
|
+
return generateKeyBetween(null, q.first()?.position);
|
|
3854
|
+
},
|
|
3855
|
+
last() {
|
|
3856
|
+
// add it to the end of the list
|
|
3857
|
+
return generateKeyBetween(q.last()?.position, null);
|
|
3505
3858
|
}
|
|
3506
|
-
this.registerDisposable(this.trackSource(column.visible$));
|
|
3507
3859
|
});
|
|
3508
|
-
return column;
|
|
3509
3860
|
}
|
|
3510
3861
|
doComputeValue() {
|
|
3511
|
-
return this.
|
|
3862
|
+
return this.allColumns$.value.filter(c => c.visible$.value);
|
|
3512
3863
|
}
|
|
3513
3864
|
}
|
|
3514
3865
|
|
|
@@ -3542,8 +3893,8 @@ function EnableCellTextSearch(options) {
|
|
|
3542
3893
|
|
|
3543
3894
|
class CustomValueColumnModel extends ColumnModel {
|
|
3544
3895
|
getValue;
|
|
3545
|
-
constructor(columnId, defaults, getValue) {
|
|
3546
|
-
super(columnId, defaults);
|
|
3896
|
+
constructor(columnId, order, defaults, getValue) {
|
|
3897
|
+
super(columnId, order, defaults);
|
|
3547
3898
|
this.getValue = getValue;
|
|
3548
3899
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3549
3900
|
}
|
|
@@ -3551,17 +3902,17 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
3551
3902
|
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => new ColumnTextSearchFormatter.Null()), row => this.getValue(row));
|
|
3552
3903
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3553
3904
|
if (firstTime) {
|
|
3554
|
-
if (isFunction
|
|
3905
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3555
3906
|
onComponentInitOrOptions(component);
|
|
3556
3907
|
}
|
|
3557
3908
|
else {
|
|
3558
|
-
if (isFunction
|
|
3909
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3559
3910
|
onComponentInitOrOptions.onComponentInit(component);
|
|
3560
3911
|
}
|
|
3561
3912
|
}
|
|
3562
3913
|
}
|
|
3563
3914
|
component.value = this.getValue(rowData.row);
|
|
3564
|
-
if (!isFunction
|
|
3915
|
+
if (!isFunction(onComponentInitOrOptions) && isFunction(onComponentInitOrOptions?.onRowUpdate)) {
|
|
3565
3916
|
onComponentInitOrOptions.onRowUpdate(component, rowData.row);
|
|
3566
3917
|
}
|
|
3567
3918
|
}));
|
|
@@ -3573,8 +3924,8 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
3573
3924
|
}
|
|
3574
3925
|
|
|
3575
3926
|
class EditorControlColumnModel extends ColumnModel {
|
|
3576
|
-
constructor(columnId, saveCommandFactory, defaults) {
|
|
3577
|
-
super(columnId, defaults);
|
|
3927
|
+
constructor(columnId, order, saveCommandFactory, defaults) {
|
|
3928
|
+
super(columnId, order, defaults);
|
|
3578
3929
|
this.cellRenderer(EditRowControlsComponent);
|
|
3579
3930
|
}
|
|
3580
3931
|
cellRenderer(componentType) {
|
|
@@ -3599,8 +3950,8 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3599
3950
|
intermediate.map(v => v?.toString()).join(", ") :
|
|
3600
3951
|
intermediate?.toString();
|
|
3601
3952
|
};
|
|
3602
|
-
constructor(id, property, defaults) {
|
|
3603
|
-
super(id, defaults);
|
|
3953
|
+
constructor(id, order, property, defaults) {
|
|
3954
|
+
super(id, order, defaults);
|
|
3604
3955
|
this.property = property;
|
|
3605
3956
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3606
3957
|
}
|
|
@@ -3616,7 +3967,7 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3616
3967
|
}
|
|
3617
3968
|
cellEditor(editor, validatorsOrInitialiser, initialiseComponent) {
|
|
3618
3969
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3619
|
-
const initialiser = isFunction
|
|
3970
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
|
|
3620
3971
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3621
3972
|
const formListModel = editSession.form.pluckList(this.property);
|
|
3622
3973
|
if (validators) {
|
|
@@ -3645,8 +3996,8 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3645
3996
|
_defaultSearchTextFormatter = (value) => {
|
|
3646
3997
|
return (this._userFormat ?? Functions.identity)(value)?.toString();
|
|
3647
3998
|
};
|
|
3648
|
-
constructor(id, property, defaults) {
|
|
3649
|
-
super(id, defaults);
|
|
3999
|
+
constructor(id, order, property, defaults) {
|
|
4000
|
+
super(id, order, defaults);
|
|
3650
4001
|
this.property = property;
|
|
3651
4002
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3652
4003
|
}
|
|
@@ -3654,11 +4005,11 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3654
4005
|
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => ColumnTextSearchFormatter.forFormatter(this._defaultSearchTextFormatter)), row => row[this.property]);
|
|
3655
4006
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3656
4007
|
if (firstTime) {
|
|
3657
|
-
if (isFunction
|
|
4008
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3658
4009
|
onComponentInitOrOptions(component);
|
|
3659
4010
|
}
|
|
3660
4011
|
else {
|
|
3661
|
-
if (isFunction
|
|
4012
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3662
4013
|
onComponentInitOrOptions.onComponentInit(component);
|
|
3663
4014
|
}
|
|
3664
4015
|
}
|
|
@@ -3683,7 +4034,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3683
4034
|
component[ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
|
|
3684
4035
|
let disableEditCallback = false;
|
|
3685
4036
|
if (firstTime) {
|
|
3686
|
-
if (isFunction
|
|
4037
|
+
if (isFunction(options?.onComponentInit)) {
|
|
3687
4038
|
options.onComponentInit(component);
|
|
3688
4039
|
}
|
|
3689
4040
|
// install our edit callback
|
|
@@ -3698,7 +4049,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3698
4049
|
disableEditCallback = true;
|
|
3699
4050
|
component.value = rowData.row[this.property];
|
|
3700
4051
|
disableEditCallback = false;
|
|
3701
|
-
if (!isFunction
|
|
4052
|
+
if (!isFunction(options) && isFunction(options?.onRowUpdate)) {
|
|
3702
4053
|
options.onRowUpdate(component, rowData.row);
|
|
3703
4054
|
}
|
|
3704
4055
|
}));
|
|
@@ -3706,7 +4057,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3706
4057
|
}
|
|
3707
4058
|
cellEditor(editor, validatorsOrInitialiser, onComponentInit) {
|
|
3708
4059
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3709
|
-
const initialiser = isFunction
|
|
4060
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
|
|
3710
4061
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3711
4062
|
const formValueModel = editSession.form.pluck(this.property);
|
|
3712
4063
|
if (validators) {
|
|
@@ -3730,29 +4081,37 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3730
4081
|
}
|
|
3731
4082
|
|
|
3732
4083
|
class SelectionColumnModel extends ColumnModel {
|
|
3733
|
-
selectionModel;
|
|
3734
4084
|
_enableHeaderControls = true;
|
|
3735
4085
|
_color = "accent";
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
4086
|
+
_selectionModelProxy = proxify((SelectionModel));
|
|
4087
|
+
_isUsingTemporarySelection$ = new MutableValueModel(false);
|
|
4088
|
+
_userSelectionModel;
|
|
4089
|
+
constructor(columnId, order, defaults) {
|
|
4090
|
+
super(columnId, order, defaults);
|
|
3739
4091
|
const { chain } = Dsl.disposeWith(this);
|
|
3740
4092
|
this._selectRowOnClick(false);
|
|
3741
4093
|
this.cellHeaderRenderer(SelectionHeaderCellComponent, (component) => {
|
|
3742
|
-
component.selectionModel = this.
|
|
4094
|
+
component.selectionModel = this._selectionModelProxy;
|
|
3743
4095
|
component.enableHeaderControls = this._enableHeaderControls;
|
|
3744
4096
|
component.color = this._color;
|
|
3745
4097
|
});
|
|
3746
4098
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(SelectionCellComponent, (component, rowData) => {
|
|
3747
4099
|
component.row = rowData.row;
|
|
3748
|
-
component.selectionModel = this.
|
|
4100
|
+
component.selectionModel = this._selectionModelProxy;
|
|
3749
4101
|
component.color = this._color;
|
|
3750
4102
|
}));
|
|
3751
|
-
this.setMasterVisibility(this.
|
|
3752
|
-
this.setDefaultVisibility(chain(this.
|
|
4103
|
+
this.setMasterVisibility(this._selectionModelProxy.enabled$);
|
|
4104
|
+
this.setDefaultVisibility(chain(this._selectionModelProxy.mode$).equals(SelectionModel.Mode.MULTIPLE));
|
|
4105
|
+
}
|
|
4106
|
+
get selectionModel() {
|
|
4107
|
+
return this._selectionModelProxy;
|
|
4108
|
+
}
|
|
4109
|
+
get isUsingTemporarySelectionModel$() {
|
|
4110
|
+
return this._isUsingTemporarySelection$.readonly$;
|
|
3753
4111
|
}
|
|
3754
4112
|
useSelectionModel(selectionModel) {
|
|
3755
|
-
this.selectionModel
|
|
4113
|
+
this._userSelectionModel = selectionModel;
|
|
4114
|
+
this._selectionModelProxy.setProxyTarget(selectionModel);
|
|
3756
4115
|
}
|
|
3757
4116
|
getDefaultHeaderText() {
|
|
3758
4117
|
return '';
|
|
@@ -3768,13 +4127,63 @@ class SelectionColumnModel extends ColumnModel {
|
|
|
3768
4127
|
this._color = color;
|
|
3769
4128
|
}
|
|
3770
4129
|
selectRow(row) {
|
|
3771
|
-
this.
|
|
4130
|
+
this._selectionModelProxy.selectCommand.execute(row);
|
|
3772
4131
|
}
|
|
3773
4132
|
isSelected(row) {
|
|
3774
|
-
return this.
|
|
4133
|
+
return this._selectionModelProxy.isSelected(row);
|
|
4134
|
+
}
|
|
4135
|
+
async withTemporarySelectionModel(createSelectionModel, process) {
|
|
4136
|
+
const garbage = new GarbageCollector();
|
|
4137
|
+
this._isUsingTemporarySelection$.value = true;
|
|
4138
|
+
const selectionModel = createSelectionModel(garbage);
|
|
4139
|
+
this._selectionModelProxy.setProxyTarget(selectionModel);
|
|
4140
|
+
try {
|
|
4141
|
+
await process(selectionModel);
|
|
4142
|
+
}
|
|
4143
|
+
finally {
|
|
4144
|
+
this._selectionModelProxy.setProxyTarget(this._userSelectionModel);
|
|
4145
|
+
garbage.dispose();
|
|
4146
|
+
this._isUsingTemporarySelection$.value = false;
|
|
4147
|
+
}
|
|
3775
4148
|
}
|
|
3776
4149
|
}
|
|
3777
4150
|
|
|
4151
|
+
let RowClass$1 = class RowClass {
|
|
4152
|
+
className;
|
|
4153
|
+
matches;
|
|
4154
|
+
constructor(className, matches) {
|
|
4155
|
+
this.className = className;
|
|
4156
|
+
this.matches = matches;
|
|
4157
|
+
}
|
|
4158
|
+
};
|
|
4159
|
+
class FooterRowModel {
|
|
4160
|
+
_rowClasses = [];
|
|
4161
|
+
noPadding() {
|
|
4162
|
+
this.addClass("no-padding");
|
|
4163
|
+
}
|
|
4164
|
+
addClass(className, condition) {
|
|
4165
|
+
this._rowClasses.push(new RowClass$1(className, condition ?? (() => true)));
|
|
4166
|
+
}
|
|
4167
|
+
}
|
|
4168
|
+
(function (FooterRowModel) {
|
|
4169
|
+
class Impl extends FooterRowModel {
|
|
4170
|
+
component;
|
|
4171
|
+
onInit;
|
|
4172
|
+
portal;
|
|
4173
|
+
constructor(component, onInit) {
|
|
4174
|
+
super();
|
|
4175
|
+
this.component = component;
|
|
4176
|
+
this.onInit = onInit;
|
|
4177
|
+
this.portal = new ComponentPortal(component);
|
|
4178
|
+
}
|
|
4179
|
+
getActiveRowClasses() {
|
|
4180
|
+
return this._rowClasses.filter(c => c.matches()).map(c => c.className).join(" ");
|
|
4181
|
+
}
|
|
4182
|
+
}
|
|
4183
|
+
FooterRowModel.Impl = Impl;
|
|
4184
|
+
})(FooterRowModel || (FooterRowModel = {}));
|
|
4185
|
+
ProxyRegistry.registerOneTimeBinding(FooterRowModel);
|
|
4186
|
+
|
|
3778
4187
|
class TableMoreMenuComponent extends DisposableComponent {
|
|
3779
4188
|
value$ = new MutableValueModel();
|
|
3780
4189
|
#value_accessor_storage;
|
|
@@ -3784,13 +4193,15 @@ class TableMoreMenuComponent extends DisposableComponent {
|
|
|
3784
4193
|
popupType$ = new MutableValueModel();
|
|
3785
4194
|
popupComponentPortal$;
|
|
3786
4195
|
_visible$ = this.registerDisposable(new DelegatingValueModel());
|
|
4196
|
+
initialiseCallback;
|
|
3787
4197
|
constructor() {
|
|
3788
4198
|
super();
|
|
3789
4199
|
const { chain } = Dsl.disposeWith(this);
|
|
3790
4200
|
this.popupComponentPortal$ = chain(this.popupType$).map(type => new ComponentPortal(type));
|
|
3791
4201
|
}
|
|
3792
|
-
configurePopupComponentType(popupComponentType) {
|
|
4202
|
+
configurePopupComponentType(popupComponentType, configureCallback) {
|
|
3793
4203
|
this.popupType$.value = popupComponentType;
|
|
4204
|
+
this.initialiseCallback = configureCallback;
|
|
3794
4205
|
}
|
|
3795
4206
|
// Stops tree selection when clicking the menu button
|
|
3796
4207
|
preventDefault($event) {
|
|
@@ -3801,12 +4212,15 @@ class TableMoreMenuComponent extends DisposableComponent {
|
|
|
3801
4212
|
const component = $event.instance;
|
|
3802
4213
|
component.initialise(this.value$, Command.create(() => this.matMenuTrigger.closeMenu()));
|
|
3803
4214
|
this._visible$.setDelegate(component.visible$);
|
|
4215
|
+
if (this.initialiseCallback) {
|
|
4216
|
+
this.initialiseCallback(component);
|
|
4217
|
+
}
|
|
3804
4218
|
}
|
|
3805
4219
|
get visible$() {
|
|
3806
4220
|
return this._visible$.readonly$;
|
|
3807
4221
|
}
|
|
3808
4222
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableMoreMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3809
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableMoreMenuComponent, selector: "aup-table-more-menu", host: { listeners: { "click": "preventDefault($event)" } }, viewQueries: [{ propertyName: "matMenuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-template matMenuContent [cdkPortalOutlet]=\"popupComponentPortal$.value\"\n (attached)=\"initialise($event)\"></ng-template>\n</mat-menu>\n\n<button mat-icon-button [matMenuTriggerFor]=\"menu\" data-cy=\"more-menu-trigger\" *ngIf=\"visible$.value\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n</button>\n", styles: [":host{display:inline;text-align:end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type:
|
|
4223
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableMoreMenuComponent, selector: "aup-table-more-menu", host: { listeners: { "click": "preventDefault($event)" } }, viewQueries: [{ propertyName: "matMenuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-menu #menu=\"matMenu\" xPosition=\"before\">\n <ng-template matMenuContent [cdkPortalOutlet]=\"popupComponentPortal$.value\"\n (attached)=\"initialise($event)\"></ng-template>\n</mat-menu>\n\n<button mat-icon-button [matMenuTriggerFor]=\"menu\" data-cy=\"more-menu-trigger\" *ngIf=\"visible$.value\">\n <aup-icon icon=\"mat:more_vert\"></aup-icon>\n</button>\n", styles: [":host{display:inline;text-align:end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i4.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }] });
|
|
3810
4224
|
}
|
|
3811
4225
|
__decorate([
|
|
3812
4226
|
StoreInValueModel(),
|
|
@@ -3835,16 +4249,25 @@ class RowClass {
|
|
|
3835
4249
|
this.matches = matches;
|
|
3836
4250
|
}
|
|
3837
4251
|
}
|
|
4252
|
+
class RowAttribute {
|
|
4253
|
+
attributeName;
|
|
4254
|
+
getValue;
|
|
4255
|
+
constructor(attributeName, getValue) {
|
|
4256
|
+
this.attributeName = attributeName;
|
|
4257
|
+
this.getValue = getValue;
|
|
4258
|
+
}
|
|
4259
|
+
}
|
|
3838
4260
|
class AbstractTableModel extends GarbageCollector {
|
|
3839
4261
|
_dataSource$ = this.registerDisposable(new DelegatingListModel());
|
|
3840
4262
|
_filteredRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3841
4263
|
_visibleRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3842
|
-
|
|
4264
|
+
columnManager = this.registerDisposable(new ColumnManager());
|
|
3843
4265
|
_editorSessions = new MutableListModel();
|
|
3844
4266
|
_rowsBeingEdited$;
|
|
3845
4267
|
saveCommandFactory;
|
|
3846
4268
|
_editorSessionByRowId;
|
|
3847
4269
|
rowClassNamePredicates = [];
|
|
4270
|
+
rowAttributeGenerators = [];
|
|
3848
4271
|
_columnTextPropertiesLookup;
|
|
3849
4272
|
editing$;
|
|
3850
4273
|
firstEditableColumn$;
|
|
@@ -3857,10 +4280,11 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3857
4280
|
textSearchPredicate$;
|
|
3858
4281
|
identityOf;
|
|
3859
4282
|
dataSourceEmpty$;
|
|
3860
|
-
selectionModelProxy = proxify((SelectionModel));
|
|
3861
4283
|
selectedItems$;
|
|
3862
4284
|
leadSelection$;
|
|
3863
4285
|
hasSelection$;
|
|
4286
|
+
footerRowModel;
|
|
4287
|
+
_viewDependencies = new Set();
|
|
3864
4288
|
constructor() {
|
|
3865
4289
|
super();
|
|
3866
4290
|
const { chain } = Dsl.disposeWith(this);
|
|
@@ -3869,18 +4293,21 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3869
4293
|
});
|
|
3870
4294
|
this._editorSessionByRowId = chain(this._editorSessions).indexBy("rowId");
|
|
3871
4295
|
this.editing$ = chain(this._editorSessions).count().isGreaterThan(0);
|
|
3872
|
-
this.textSearchPredicate$ = chain(this.visibleColumns).
|
|
4296
|
+
this.textSearchPredicate$ = chain(this.visibleColumns$).reduceAll(columns => {
|
|
3873
4297
|
return (row, regex) => {
|
|
3874
4298
|
return (!regex || !!columns.find(c => regex.test(c.getSearchTextFor(row))));
|
|
3875
4299
|
};
|
|
3876
4300
|
});
|
|
3877
|
-
this.
|
|
3878
|
-
this.
|
|
3879
|
-
this.
|
|
3880
|
-
this.
|
|
4301
|
+
this.selectionColumnModel = new SelectionColumnModel("selection-column", this.columnManager, () => this.getColumnTextProperties("selection-column"));
|
|
4302
|
+
this.addColumn(this.selectionColumnModel, { before: null }); // first column
|
|
4303
|
+
this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
|
|
4304
|
+
this.firstEditableColumn$ = chain(this.columns$).select(c => c.hasEditorPortal()).first();
|
|
4305
|
+
this.firstVisibleColumn$ = chain(this.visibleColumns$).first();
|
|
4306
|
+
this.lastVisibleColumn$ = chain(this.visibleColumns$).last();
|
|
4307
|
+
this.rowSelectionDisabledOnAllColumns$ = chain(this.columnManager.visibleColumns$).select(column => column.isRowSelectionEnabled()).count().equals(0);
|
|
3881
4308
|
this.dataSourceEmpty$ = chain(this.dataSource$).isEmpty();
|
|
3882
|
-
this.selectedItems$ = this.
|
|
3883
|
-
this.leadSelection$ = this.
|
|
4309
|
+
this.selectedItems$ = this.selectionColumnModel.selectionModel.selectedItems$;
|
|
4310
|
+
this.leadSelection$ = this.selectionColumnModel.selectionModel.leadSelection$;
|
|
3884
4311
|
this.hasSelection$ = chain(this.selectedItems$).isNotEmpty();
|
|
3885
4312
|
}
|
|
3886
4313
|
setDataSource(dataSource$) {
|
|
@@ -3901,9 +4328,23 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3901
4328
|
],
|
|
3902
4329
|
parent: injector
|
|
3903
4330
|
});
|
|
3904
|
-
this.columns
|
|
4331
|
+
this.columns$.value.forEach(c => c.initialise(customInjector));
|
|
3905
4332
|
this.identityOf = identityOf;
|
|
3906
4333
|
}
|
|
4334
|
+
/**
|
|
4335
|
+
* Adds additional models that will trigger a table repaint. This is required if the table
|
|
4336
|
+
* needs to be redrawn outside of changes to the rows of filters. i.e. some eternal state is used
|
|
4337
|
+
* to assign row classes etc.
|
|
4338
|
+
*
|
|
4339
|
+
* Note: This function must be called before the table is bound to the model.
|
|
4340
|
+
* @param hasValues
|
|
4341
|
+
*/
|
|
4342
|
+
viewStateDependsOn(...hasValues) {
|
|
4343
|
+
hasValues.forEach(it => this._viewDependencies.add(it));
|
|
4344
|
+
}
|
|
4345
|
+
get viewStateDependencies() {
|
|
4346
|
+
return Array.from(this._viewDependencies.values());
|
|
4347
|
+
}
|
|
3907
4348
|
get dataSource$() {
|
|
3908
4349
|
return this._dataSource$.readonly$;
|
|
3909
4350
|
}
|
|
@@ -3954,64 +4395,62 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3954
4395
|
});
|
|
3955
4396
|
});
|
|
3956
4397
|
}
|
|
3957
|
-
get columns() {
|
|
3958
|
-
return this.
|
|
4398
|
+
get columns$() {
|
|
4399
|
+
return this.columnManager.allColumns$;
|
|
3959
4400
|
}
|
|
3960
|
-
get visibleColumns() {
|
|
3961
|
-
return this.
|
|
4401
|
+
get visibleColumns$() {
|
|
4402
|
+
return this.columnManager.visibleColumns$;
|
|
3962
4403
|
}
|
|
3963
4404
|
pluck(property, options) {
|
|
3964
4405
|
const columnId = options?.columnId || property.toString();
|
|
3965
|
-
return this.addColumn(new PropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
|
|
4406
|
+
return this.addColumn(new PropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
3966
4407
|
}
|
|
3967
4408
|
pluckList(property, options) {
|
|
3968
4409
|
const columnId = options?.columnId || property.toString();
|
|
3969
|
-
return this.addColumn(new ListPropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
|
|
3970
|
-
}
|
|
3971
|
-
|
|
3972
|
-
// tableModel.useSelectionModel(model) and have the seleciton column automatically
|
|
3973
|
-
// added. Need to look at how we're using the visibility controls as well.
|
|
3974
|
-
// Should also lazy create the selection column model if someone accesses it.
|
|
3975
|
-
_addSelectionColumn(selectionModel, visible) {
|
|
3976
|
-
assert.isNil(this.selectionColumnModel);
|
|
3977
|
-
const columnId = "selection-column";
|
|
3978
|
-
this.selectionColumnModel = new SelectionColumnModel(columnId, () => this.getColumnTextProperties(columnId), this.selectionModelProxy);
|
|
4410
|
+
return this.addColumn(new ListPropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
4411
|
+
}
|
|
4412
|
+
useSelectionModel(selectionModel) {
|
|
3979
4413
|
this.selectionColumnModel.useSelectionModel(selectionModel);
|
|
3980
|
-
this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
|
|
3981
|
-
const selectionColumnModel = this.addColumn(this.selectionColumnModel, 0);
|
|
3982
|
-
if (!isNil$1(visible)) {
|
|
3983
|
-
selectionColumnModel.visibleWhile(visible instanceof ValueModel ? visible : ValueModel.constant(visible));
|
|
3984
|
-
}
|
|
3985
|
-
return selectionColumnModel;
|
|
3986
4414
|
}
|
|
3987
4415
|
addEditControls(saveCommandFactory, formFactory) {
|
|
3988
4416
|
this.saveCommandFactory = saveCommandFactory;
|
|
3989
|
-
if (isFunction
|
|
4417
|
+
if (isFunction(formFactory)) {
|
|
3990
4418
|
this._createForm = formFactory;
|
|
3991
4419
|
}
|
|
3992
4420
|
const columnId = "editControls";
|
|
3993
|
-
return this.addColumn(new EditorControlColumnModel(columnId, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
4421
|
+
return this.addColumn(new EditorControlColumnModel(columnId, this.columnManager, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
3994
4422
|
}
|
|
3995
4423
|
addCustomColumn(columnId, dataAccessor) {
|
|
3996
|
-
return this.addColumn(new CustomValueColumnModel(columnId, () => this.getColumnTextProperties(columnId), dataAccessor));
|
|
4424
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), dataAccessor));
|
|
3997
4425
|
}
|
|
3998
4426
|
addComponentColumn(columnId, component, onComponentInitOrOptions) {
|
|
3999
|
-
return this.addColumn(new CustomValueColumnModel(columnId, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
4427
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
4000
4428
|
}
|
|
4001
|
-
addMoreMenu(componentClass) {
|
|
4429
|
+
addMoreMenu(componentClass, initialiseCallback) {
|
|
4002
4430
|
return this.addComponentColumn("more-menu", TableMoreMenuComponent, (component) => {
|
|
4003
|
-
component.configurePopupComponentType(componentClass);
|
|
4431
|
+
component.configurePopupComponentType(componentClass, initialiseCallback);
|
|
4004
4432
|
}).columnTextProperties({
|
|
4005
4433
|
headerText() {
|
|
4006
4434
|
return "";
|
|
4007
4435
|
}
|
|
4008
4436
|
});
|
|
4009
4437
|
}
|
|
4438
|
+
addFooterRow(component, initialiseCallback) {
|
|
4439
|
+
assert.isNil(this.footerRowModel);
|
|
4440
|
+
this.footerRowModel = new FooterRowModel.Impl(component, initialiseCallback);
|
|
4441
|
+
return this.footerRowModel;
|
|
4442
|
+
}
|
|
4010
4443
|
addTemplateColumn(columnId) {
|
|
4011
|
-
return this.addColumn(new CustomTemplateColumnModel(columnId, () => this.getColumnTextProperties(columnId)));
|
|
4444
|
+
return this.addColumn(new CustomTemplateColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId)));
|
|
4012
4445
|
}
|
|
4013
|
-
addRowClass(className, predicate) {
|
|
4446
|
+
addRowClass(className, predicate, options) {
|
|
4014
4447
|
this.rowClassNamePredicates.push(new RowClass(className, predicate));
|
|
4448
|
+
if (options) {
|
|
4449
|
+
this.viewStateDependsOn(...DependsOnOptions.extract(options));
|
|
4450
|
+
}
|
|
4451
|
+
}
|
|
4452
|
+
addRowAttribute(attributeName, getValue) {
|
|
4453
|
+
this.rowAttributeGenerators.push(new RowAttribute(attributeName, getValue));
|
|
4015
4454
|
}
|
|
4016
4455
|
getRowClasses(row) {
|
|
4017
4456
|
const classNames = [];
|
|
@@ -4022,8 +4461,13 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
4022
4461
|
});
|
|
4023
4462
|
return classNames;
|
|
4024
4463
|
}
|
|
4025
|
-
|
|
4026
|
-
return this.
|
|
4464
|
+
getRowAttributes(row) {
|
|
4465
|
+
return this.rowAttributeGenerators.reduce((result, generator) => {
|
|
4466
|
+
return { ...result, [generator.attributeName]: generator.getValue(row) };
|
|
4467
|
+
}, {});
|
|
4468
|
+
}
|
|
4469
|
+
addColumn(column, position) {
|
|
4470
|
+
return this.columnManager.addColumn(column, position);
|
|
4027
4471
|
}
|
|
4028
4472
|
columnTextProperties(columnTextProperties) {
|
|
4029
4473
|
this._columnTextPropertiesLookup = columnTextProperties;
|
|
@@ -4038,11 +4482,10 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
4038
4482
|
return this.hasUserSelectionModelThatIsEnabled() && !this.rowSelectionDisabledOnAllColumns$.value;
|
|
4039
4483
|
}
|
|
4040
4484
|
hasUserSelectionModelThatIsEnabled() {
|
|
4041
|
-
|
|
4042
|
-
return !!userSelectionModel && userSelectionModel.enabled$.value;
|
|
4485
|
+
return this.selectionColumnModel.selectionModel.enabled$.value;
|
|
4043
4486
|
}
|
|
4044
4487
|
getSelectionModel() {
|
|
4045
|
-
return this.selectionColumnModel
|
|
4488
|
+
return this.selectionColumnModel.selectionModel;
|
|
4046
4489
|
}
|
|
4047
4490
|
isHoverEnabled() {
|
|
4048
4491
|
return this.isRowSelectionEnabled() || this.rowClickListeners.listenerCount > 0;
|
|
@@ -4084,15 +4527,15 @@ class TableCellComponent extends DisposableComponent {
|
|
|
4084
4527
|
defaultClassNames = 'aup-cell-renderer';
|
|
4085
4528
|
fillCell = false;
|
|
4086
4529
|
padChild = false;
|
|
4087
|
-
firstEditableColumn;
|
|
4088
4530
|
constructor() {
|
|
4089
4531
|
super();
|
|
4090
4532
|
this.editRowCommand = Command.create(() => {
|
|
4091
4533
|
this.tableModel.startEditSession(this.row);
|
|
4092
4534
|
});
|
|
4093
4535
|
this.onInit(() => {
|
|
4094
|
-
|
|
4095
|
-
|
|
4536
|
+
// This binding was triggering a memory leak... not sure why.
|
|
4537
|
+
// const { chain} = Dsl.disposeWith(this);
|
|
4538
|
+
// this.firstEditableColumn = chain(this.tableModel.firstEditableColumn$).equals(this.column); // this would break if the column changed.
|
|
4096
4539
|
this.column.attachCell(this);
|
|
4097
4540
|
});
|
|
4098
4541
|
}
|
|
@@ -4104,7 +4547,7 @@ class TableCellComponent extends DisposableComponent {
|
|
|
4104
4547
|
}
|
|
4105
4548
|
initialiseEditor(ref) {
|
|
4106
4549
|
this.column.onEditorAttached(this, ref);
|
|
4107
|
-
if (this.firstEditableColumn.
|
|
4550
|
+
if (this.tableModel.firstEditableColumn$.value === this.column) {
|
|
4108
4551
|
// @see https://github.com/angular/components/issues/12070
|
|
4109
4552
|
setTimeout(() => this.tryAndFocusEditor(ref));
|
|
4110
4553
|
}
|
|
@@ -4140,7 +4583,7 @@ class TableCellComponent extends DisposableComponent {
|
|
|
4140
4583
|
};
|
|
4141
4584
|
}
|
|
4142
4585
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4143
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableCellComponent, selector: "aup-table-cell", inputs: { row: "row", column: "column", editSession: "editSession", tableModel: "tableModel" }, host: { properties: { "class": "this.defaultClassNames", "class.fillCell": "this.fillCell", "class.padChild": "this.padChild" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!hasActiveEditor()\" [cdkPortalOutlet]=\"getRendererPortal()\" (attached)=\"initialiseRenderer($event)\"></ng-container>\n<ng-container *ngIf=\"hasActiveEditor()\" [cdkPortalOutlet]=\"getEditorPortal()\" (attached)=\"initialiseEditor($event)\"></ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
4586
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableCellComponent, selector: "aup-table-cell", inputs: { row: "row", column: "column", editSession: "editSession", tableModel: "tableModel" }, host: { properties: { "class": "this.defaultClassNames", "class.fillCell": "this.fillCell", "class.padChild": "this.padChild" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!hasActiveEditor()\" [cdkPortalOutlet]=\"getRendererPortal()\" (attached)=\"initialiseRenderer($event)\"></ng-container>\n<ng-container *ngIf=\"hasActiveEditor()\" [cdkPortalOutlet]=\"getEditorPortal()\" (attached)=\"initialiseEditor($event)\"></ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
|
|
4144
4587
|
}
|
|
4145
4588
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCellComponent, decorators: [{
|
|
4146
4589
|
type: Component,
|
|
@@ -4179,7 +4622,7 @@ class TableHeaderCellComponent {
|
|
|
4179
4622
|
return this[HEADER_CELL_RENDERER_PORTAL];
|
|
4180
4623
|
}
|
|
4181
4624
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4182
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: { column: "column" }, host: { properties: { "class": "this.defaultClassNames" } }, ngImport: i0, template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"], dependencies: [{ kind: "directive", type:
|
|
4625
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: { column: "column" }, host: { properties: { "class": "this.defaultClassNames" } }, ngImport: i0, template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"], dependencies: [{ kind: "directive", type: i1$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
|
|
4183
4626
|
}
|
|
4184
4627
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableHeaderCellComponent, decorators: [{
|
|
4185
4628
|
type: Component,
|
|
@@ -4191,61 +4634,132 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
4191
4634
|
args: ['class']
|
|
4192
4635
|
}] } });
|
|
4193
4636
|
|
|
4637
|
+
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
4638
|
+
class TableFooterRow {
|
|
4639
|
+
row;
|
|
4640
|
+
defaultClassNames = 'aup-footer-row-renderer';
|
|
4641
|
+
get rowClasses() {
|
|
4642
|
+
return this.row.getActiveRowClasses();
|
|
4643
|
+
}
|
|
4644
|
+
initialise($event) {
|
|
4645
|
+
this.row.onInit && this.row.onInit($event.instance);
|
|
4646
|
+
}
|
|
4647
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableFooterRow, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4648
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableFooterRow, selector: "aup-table-footer-row", inputs: { row: "row" }, host: { properties: { "class": "this.rowClasses" } }, ngImport: i0, template: "<ng-container [cdkPortalOutlet]=\"row.portal\" (attached)=\"initialise($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"], dependencies: [{ kind: "directive", type: i1$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
|
|
4649
|
+
}
|
|
4650
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableFooterRow, decorators: [{
|
|
4651
|
+
type: Component,
|
|
4652
|
+
args: [{ selector: 'aup-table-footer-row', template: "<ng-container [cdkPortalOutlet]=\"row.portal\" (attached)=\"initialise($event)\"></ng-container>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}\n"] }]
|
|
4653
|
+
}], propDecorators: { row: [{
|
|
4654
|
+
type: Input
|
|
4655
|
+
}], defaultClassNames: [{
|
|
4656
|
+
type: HostBinding,
|
|
4657
|
+
args: ['class']
|
|
4658
|
+
}], rowClasses: [{
|
|
4659
|
+
type: HostBinding,
|
|
4660
|
+
args: ['class']
|
|
4661
|
+
}] } });
|
|
4662
|
+
|
|
4663
|
+
const AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER = new InjectionToken("AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER");
|
|
4664
|
+
class TableRowAttributesDirective {
|
|
4665
|
+
elementRef;
|
|
4666
|
+
aupTableRowAttributes;
|
|
4667
|
+
constructor(elementRef) {
|
|
4668
|
+
this.elementRef = elementRef;
|
|
4669
|
+
}
|
|
4670
|
+
ngOnInit() {
|
|
4671
|
+
for (const attr in this.aupTableRowAttributes) {
|
|
4672
|
+
this.elementRef.nativeElement.setAttribute(attr, this.aupTableRowAttributes[attr]);
|
|
4673
|
+
}
|
|
4674
|
+
}
|
|
4675
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4676
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: TableRowAttributesDirective, selector: "[aupTableRowAttributes]", inputs: { aupTableRowAttributes: "aupTableRowAttributes" }, ngImport: i0 });
|
|
4677
|
+
}
|
|
4678
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, decorators: [{
|
|
4679
|
+
type: Directive,
|
|
4680
|
+
args: [{
|
|
4681
|
+
selector: "[aupTableRowAttributes]",
|
|
4682
|
+
}]
|
|
4683
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { aupTableRowAttributes: [{
|
|
4684
|
+
type: Input
|
|
4685
|
+
}] } });
|
|
4194
4686
|
class TableBodyComponent extends ResizeAwareComponent {
|
|
4687
|
+
bufferMultiplier;
|
|
4195
4688
|
#data$_accessor_storage = proxify((ListModel));
|
|
4196
4689
|
get data$() { return this.#data$_accessor_storage; }
|
|
4197
4690
|
set data$(value) { this.#data$_accessor_storage = value; }
|
|
4198
4691
|
#tableModel_accessor_storage = proxify((AbstractTableModel));
|
|
4199
4692
|
get tableModel() { return this.#tableModel_accessor_storage; }
|
|
4200
4693
|
set tableModel(value) { this.#tableModel_accessor_storage = value; }
|
|
4694
|
+
#footerRow_accessor_storage = proxify((FooterRowModel.Impl));
|
|
4695
|
+
get footerRow() { return this.#footerRow_accessor_storage; }
|
|
4696
|
+
set footerRow(value) { this.#footerRow_accessor_storage = value; }
|
|
4201
4697
|
#showHeader$_accessor_storage = proxify((ValueModel));
|
|
4202
4698
|
get showHeader$() { return this.#showHeader$_accessor_storage; }
|
|
4203
4699
|
set showHeader$(value) { this.#showHeader$_accessor_storage = value; }
|
|
4204
4700
|
#showHeader_accessor_storage = true;
|
|
4205
4701
|
get showHeader() { return this.#showHeader_accessor_storage; }
|
|
4206
4702
|
set showHeader(value) { this.#showHeader_accessor_storage = value; }
|
|
4207
|
-
visibleRowCount = new EventEmitter();
|
|
4208
4703
|
trackBy;
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4704
|
+
#scrollMode$_accessor_storage = proxify((ValueModel));
|
|
4705
|
+
get scrollMode$() { return this.#scrollMode$_accessor_storage; }
|
|
4706
|
+
set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
|
|
4707
|
+
#scrollMode_accessor_storage = "none";
|
|
4708
|
+
get scrollMode() { return this.#scrollMode_accessor_storage; }
|
|
4709
|
+
set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
|
|
4710
|
+
scrollViewport;
|
|
4215
4711
|
columns$;
|
|
4216
4712
|
columnIds$;
|
|
4217
4713
|
columnsById$;
|
|
4218
|
-
_visibleRowCount$;
|
|
4219
4714
|
// TODO: support user defined header and row heights via css vars.
|
|
4220
|
-
headerHeight$ = new MutableValueModel(
|
|
4221
|
-
rowHeight$ = new MutableValueModel(
|
|
4715
|
+
headerHeight$ = new MutableValueModel(48);
|
|
4716
|
+
rowHeight$ = new MutableValueModel(44);
|
|
4222
4717
|
baseCssClass = "aup-table-component";
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4718
|
+
virtualScrollDataSource = new TableVirtualScrollDataSource();
|
|
4719
|
+
virtualScrollActive$ = new MutableValueModel(false);
|
|
4720
|
+
scrollTimeout;
|
|
4721
|
+
constructor(bufferMultiplier = 1) {
|
|
4722
|
+
super();
|
|
4723
|
+
this.bufferMultiplier = bufferMultiplier;
|
|
4724
|
+
const { chain, when, observe } = Dsl.disposeWith(this);
|
|
4226
4725
|
const actualHeaderHeight$ = chain(this.showHeader$).map(show => {
|
|
4227
4726
|
return show ? this.headerHeight$.value : 0;
|
|
4228
4727
|
}, { dependsOn: this.headerHeight$ });
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
});
|
|
4237
|
-
when(this._visibleRowCount$).changes(visibleRows => {
|
|
4238
|
-
this.visibleRowCount.emit(visibleRows);
|
|
4239
|
-
}, { initialValue: "triggerChangeUnlessNil" });
|
|
4728
|
+
// performance is terrible if the data changes while we're scrolling, so we postpone updates until
|
|
4729
|
+
// scrolling stops.
|
|
4730
|
+
const delayedDatea$ = chain(this.data$).postponeWhile(this.virtualScrollActive$);
|
|
4731
|
+
when(delayedDatea$).changes(delatedData => {
|
|
4732
|
+
this.virtualScrollDataSource.data = delatedData;
|
|
4733
|
+
this.scheduleTableHeightCheck();
|
|
4734
|
+
}, { initialValue: "evaluate" });
|
|
4240
4735
|
this.onInit(() => {
|
|
4241
|
-
this.columns$ = chain(this.tableModel.
|
|
4736
|
+
this.columns$ = chain(this.tableModel.visibleColumns$);
|
|
4242
4737
|
this.columnIds$ = chain(this.columns$).pluck("columnId");
|
|
4243
4738
|
this.columnsById$ = chain(this.columns$).indexBy('columnId');
|
|
4244
4739
|
});
|
|
4740
|
+
// const txo = new TransactionObserver({verbose: false}).onEvent(e => console.log(e.name, e.payload));
|
|
4741
|
+
// txo.observe('this.virtualScrollRowRange$', this.virtualScrollRowRange$);
|
|
4742
|
+
// txo.observe('this.virtualScrollSpacerSize$', this.virtualScrollSpacerSize$);
|
|
4743
|
+
// txo.observe('this.virtualRows$', this.virtualRows$);
|
|
4744
|
+
// txo.observe('this.tableBodyHeight$', this.tableBodyHeight$);
|
|
4745
|
+
// txo.observe('this.virtualScrollActive$', this.virtualScrollActive$);
|
|
4746
|
+
}
|
|
4747
|
+
ngAfterViewInit() {
|
|
4748
|
+
super.ngAfterViewInit();
|
|
4749
|
+
if (this.scrollViewport) {
|
|
4750
|
+
const { observe } = Dsl.disposeWith(this);
|
|
4751
|
+
this.scrollViewport.elementScrolled().subscribe(() => this.notifyScrolled());
|
|
4752
|
+
}
|
|
4245
4753
|
}
|
|
4246
4754
|
get hideHeader() {
|
|
4247
4755
|
return !this.showHeader;
|
|
4248
4756
|
}
|
|
4757
|
+
get headerHeightCssVar() {
|
|
4758
|
+
return `${this.headerHeight$.value}px`;
|
|
4759
|
+
}
|
|
4760
|
+
get rowHeightCssVar() {
|
|
4761
|
+
return `${this.rowHeight$.value}px`;
|
|
4762
|
+
}
|
|
4249
4763
|
isEditing(row) {
|
|
4250
4764
|
return !!this.tableModel.getEditSessionFor(row);
|
|
4251
4765
|
}
|
|
@@ -4270,51 +4784,110 @@ class TableBodyComponent extends ResizeAwareComponent {
|
|
|
4270
4784
|
}
|
|
4271
4785
|
return classes;
|
|
4272
4786
|
}
|
|
4273
|
-
|
|
4274
|
-
|
|
4787
|
+
scheduleTableHeightCheck(waitMillis = 50) {
|
|
4788
|
+
setTimeout(() => {
|
|
4789
|
+
const tbody = this.elementRef.nativeElement.querySelector("tbody");
|
|
4790
|
+
const bodyHeight = tbody.offsetHeight;
|
|
4791
|
+
if (this.data$.length > 0 && bodyHeight < this.rowHeight$.value) {
|
|
4792
|
+
// Hacks to get our virtual scroll to repaint
|
|
4793
|
+
// Logger.get(this).log(`rowCount=${this.data$.length}, bodyHeight=${bodyHeight} -> virtual table not rendering, triggering resize to force repaint`)
|
|
4794
|
+
window.dispatchEvent(new Event('resize'));
|
|
4795
|
+
if (waitMillis < 500) {
|
|
4796
|
+
this.scheduleTableHeightCheck(waitMillis + 50);
|
|
4797
|
+
}
|
|
4798
|
+
}
|
|
4799
|
+
}, waitMillis);
|
|
4800
|
+
}
|
|
4801
|
+
notifyScrolled() {
|
|
4802
|
+
this.virtualScrollActive$.value = true;
|
|
4803
|
+
this.clearScrollTimeout();
|
|
4804
|
+
this.scrollTimeout = setTimeout(() => {
|
|
4805
|
+
return this.virtualScrollActive$.value = false;
|
|
4806
|
+
}, 200);
|
|
4807
|
+
}
|
|
4808
|
+
clearScrollTimeout() {
|
|
4809
|
+
if (this.scrollTimeout) {
|
|
4810
|
+
clearTimeout(this.scrollTimeout);
|
|
4811
|
+
}
|
|
4812
|
+
}
|
|
4813
|
+
initialiseFooter($event) {
|
|
4814
|
+
const portalRef = $event;
|
|
4815
|
+
this.footerRow.onInit(portalRef.instance);
|
|
4816
|
+
}
|
|
4817
|
+
Proxify = Proxify;
|
|
4818
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, deps: [{ token: AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4819
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableBodyComponent, selector: "aup-table-body", inputs: { data$: "data$", tableModel: "tableModel", footerRow: "footerRow", showHeader$: "showHeader$", showHeader: "showHeader", trackBy: "trackBy", scrollMode$: "scrollMode$", scrollMode: "scrollMode" }, host: { properties: { "attr.scrollMode": "this.scrollMode", "class": "this.baseCssClass", "class.hide-header": "this.hideHeader", "style.--aup-table-header-height": "this.headerHeightCssVar", "style.--aup-table-row-height": "this.rowHeightCssVar" } }, viewQueries: [{ propertyName: "scrollViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "\n<div class=\"classic-scroll-container\" *ngIf=\"scrollMode$.value !== 'virtual'\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\" [multiTemplateDataRows]>\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"$any(column)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [aupTableRowAttributes]=\"tableModel.getRowAttributes(row)\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n <ng-container matColumnDef=\"sticky-footer\" *ngIf=\"Proxify.hasTarget(footerRow)\">\n <td mat-footer-cell *matFooterCellDef [attr.colspan]=\"columns$.length\" [ngClass]=\"'footer-cell'\">\n <aup-table-footer-row [row]=\"$any(footerRow)\"></aup-table-footer-row>\n </td>\n <tr mat-footer-row *matFooterRowDef=\"['sticky-footer']; sticky: true\"></tr>\n </ng-container>\n\n </table>\n</div>\n\n<cdk-virtual-scroll-viewport *ngIf=\"scrollMode$.value === 'virtual'\"\n [tvsItemSize]=\"rowHeight$.value\"\n [headerHeight]=\"headerHeight$.value\"\n [bufferMultiplier]=\"bufferMultiplier\"\n>\n <table mat-table [dataSource]=\"virtualScrollDataSource\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [aupTableRowAttributes]=\"tableModel.getRowAttributes(row)\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n<!-- Layout doesn't work yet - probably needs fixed footer row height -->\n<!-- <ng-container matColumnDef=\"sticky-footer\" *ngIf=\"tableModel.footerRowPortalRef\">-->\n<!-- <td mat-footer-cell *matFooterCellDef [attr.colspan]=\"columns$.length\">-->\n<!-- <ng-container [cdkPortalOutlet]=\"tableModel.footerRowPortalRef.portal\" (attached)=\"initialiseFooter($event)\"></ng-container>-->\n<!-- </td>-->\n<!-- <tr mat-footer-row *matFooterRowDef=\"['sticky-footer']; sticky: true\"></tr>-->\n<!-- </ng-container>-->\n\n\n </table>\n</cdk-virtual-scroll-viewport>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host[scrollMode=virtual] cdk-virtual-scroll-viewport{flex:1}:host[scrollMode=virtual] table th{height:var(--aup-table-header-height);max-height:var(--aup-table-header-height);min-height:var(--aup-table-header-height)}:host[scrollMode=virtual] table td{height:var(--aup-table-row-height);max-height:var(--aup-table-row-height);min-height:var(--aup-table-row-height)}:host[scrollMode=classic]{min-height:0}:host[scrollMode=classic] .classic-scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2$6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2$6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2$6.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2$6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2$6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2$6.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i2$6.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i2$6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2$6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i2$6.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i2$6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2$6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i2$6.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: i1$2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i4$4.TableItemSizeDirective, selector: "cdk-virtual-scroll-viewport[tvsItemSize]", inputs: ["tvsItemSize", "headerEnabled", "headerHeight", "footerEnabled", "footerHeight", "bufferMultiplier"] }, { kind: "directive", type: TableRowAttributesDirective, selector: "[aupTableRowAttributes]", inputs: ["aupTableRowAttributes"] }, { kind: "component", type: TableCellComponent, selector: "aup-table-cell", inputs: ["row", "column", "editSession", "tableModel"] }, { kind: "component", type: TableHeaderCellComponent, selector: "aup-table-header-cell", inputs: ["column"] }, { kind: "component", type: TableFooterRow, selector: "aup-table-footer-row", inputs: ["row"] }] });
|
|
4275
4820
|
}
|
|
4276
4821
|
__decorate([
|
|
4277
4822
|
Proxify(),
|
|
4278
|
-
__metadata("design:type",
|
|
4823
|
+
__metadata("design:type", ListModel)
|
|
4279
4824
|
], TableBodyComponent.prototype, "data$", null);
|
|
4280
4825
|
__decorate([
|
|
4281
4826
|
Proxify(),
|
|
4282
|
-
__metadata("design:type",
|
|
4827
|
+
__metadata("design:type", AbstractTableModel)
|
|
4283
4828
|
], TableBodyComponent.prototype, "tableModel", null);
|
|
4284
4829
|
__decorate([
|
|
4285
4830
|
Proxify(),
|
|
4286
|
-
__metadata("design:type",
|
|
4831
|
+
__metadata("design:type", FooterRowModel.Impl)
|
|
4832
|
+
], TableBodyComponent.prototype, "footerRow", null);
|
|
4833
|
+
__decorate([
|
|
4834
|
+
Proxify(),
|
|
4835
|
+
__metadata("design:type", ValueModel)
|
|
4287
4836
|
], TableBodyComponent.prototype, "showHeader$", null);
|
|
4288
4837
|
__decorate([
|
|
4289
4838
|
StoreInValueModel(),
|
|
4290
4839
|
__metadata("design:type", Object)
|
|
4291
4840
|
], TableBodyComponent.prototype, "showHeader", null);
|
|
4841
|
+
__decorate([
|
|
4842
|
+
Proxify(),
|
|
4843
|
+
__metadata("design:type", ValueModel)
|
|
4844
|
+
], TableBodyComponent.prototype, "scrollMode$", null);
|
|
4845
|
+
__decorate([
|
|
4846
|
+
StoreInValueModel(),
|
|
4847
|
+
__metadata("design:type", String)
|
|
4848
|
+
], TableBodyComponent.prototype, "scrollMode", null);
|
|
4292
4849
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, decorators: [{
|
|
4293
4850
|
type: Component,
|
|
4294
|
-
args: [{ selector: "aup-table-body", template: "<div class=\"scroll-container\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n </table>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host
|
|
4295
|
-
}], ctorParameters: function () { return [{ type:
|
|
4851
|
+
args: [{ selector: "aup-table-body", template: "\n<div class=\"classic-scroll-container\" *ngIf=\"scrollMode$.value !== 'virtual'\">\n <table mat-table [dataSource]=\"data$.value\" [trackBy]=\"trackBy\" [multiTemplateDataRows]>\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"$any(column)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [aupTableRowAttributes]=\"tableModel.getRowAttributes(row)\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n <ng-container matColumnDef=\"sticky-footer\" *ngIf=\"Proxify.hasTarget(footerRow)\">\n <td mat-footer-cell *matFooterCellDef [attr.colspan]=\"columns$.length\" [ngClass]=\"'footer-cell'\">\n <aup-table-footer-row [row]=\"$any(footerRow)\"></aup-table-footer-row>\n </td>\n <tr mat-footer-row *matFooterRowDef=\"['sticky-footer']; sticky: true\"></tr>\n </ng-container>\n\n </table>\n</div>\n\n<cdk-virtual-scroll-viewport *ngIf=\"scrollMode$.value === 'virtual'\"\n [tvsItemSize]=\"rowHeight$.value\"\n [headerHeight]=\"headerHeight$.value\"\n [bufferMultiplier]=\"bufferMultiplier\"\n>\n <table mat-table [dataSource]=\"virtualScrollDataSource\" [trackBy]=\"trackBy\">\n\n <ng-container *ngFor=\"let column of columns$.value; index as index; first as first; last as last\"\n matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef [class.flex]=\"column.isFlex()\" [class.hide]=\"!column.isVisible()\">\n <aup-table-header-cell [column]=\"column\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-header-cell>\n </th>\n <td mat-cell *matCellDef=\"let row\" (click)=\"notifyCellClicked(column, row)\"\n [class.enable-cursor]=\"tableModel.isCursorEnabled(column)\"\n [class.flex]=\"column.isFlex()\"\n [class.hide]=\"!column.isVisible()\"\n >\n <aup-table-cell [column]=\"$any(column)\"\n [row]=\"row\"\n [tableModel]=\"$any(tableModel)\"\n [editSession]=\"$any(tableModel.getEditSessionFor(row))\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class]=\"getColumnClasses(column.columnId)\"\n ></aup-table-cell>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds$.value; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds$.value; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\"\n [class.enable-hover]=\"tableModel.isHoverEnabled()\"\n [aupTableRowAttributes]=\"tableModel.getRowAttributes(row)\"\n [attr.aup-row-id]=\"trackBy(i, row)\"\n ></tr>\n\n<!-- Layout doesn't work yet - probably needs fixed footer row height -->\n<!-- <ng-container matColumnDef=\"sticky-footer\" *ngIf=\"tableModel.footerRowPortalRef\">-->\n<!-- <td mat-footer-cell *matFooterCellDef [attr.colspan]=\"columns$.length\">-->\n<!-- <ng-container [cdkPortalOutlet]=\"tableModel.footerRowPortalRef.portal\" (attached)=\"initialiseFooter($event)\"></ng-container>-->\n<!-- </td>-->\n<!-- <tr mat-footer-row *matFooterRowDef=\"['sticky-footer']; sticky: true\"></tr>-->\n<!-- </ng-container>-->\n\n\n </table>\n</cdk-virtual-scroll-viewport>\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{width:100%}:host[scrollMode=virtual] cdk-virtual-scroll-viewport{flex:1}:host[scrollMode=virtual] table th{height:var(--aup-table-header-height);max-height:var(--aup-table-header-height);min-height:var(--aup-table-header-height)}:host[scrollMode=virtual] table td{height:var(--aup-table-row-height);max-height:var(--aup-table-row-height);min-height:var(--aup-table-row-height)}:host[scrollMode=classic]{min-height:0}:host[scrollMode=classic] .classic-scroll-container{flex:1;flex-basis:0;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch}\n"] }]
|
|
4852
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
4853
|
+
type: Inject,
|
|
4854
|
+
args: [AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER]
|
|
4855
|
+
}, {
|
|
4856
|
+
type: Optional
|
|
4857
|
+
}] }]; }, propDecorators: { data$: [{
|
|
4296
4858
|
type: Input
|
|
4297
4859
|
}], tableModel: [{
|
|
4298
4860
|
type: Input
|
|
4861
|
+
}], footerRow: [{
|
|
4862
|
+
type: Input
|
|
4299
4863
|
}], showHeader$: [{
|
|
4300
4864
|
type: Input
|
|
4301
4865
|
}], showHeader: [{
|
|
4302
4866
|
type: Input
|
|
4303
|
-
}], visibleRowCount: [{
|
|
4304
|
-
type: Output
|
|
4305
4867
|
}], trackBy: [{
|
|
4306
4868
|
type: Input
|
|
4307
|
-
}],
|
|
4869
|
+
}], scrollMode$: [{
|
|
4870
|
+
type: Input
|
|
4871
|
+
}], scrollMode: [{
|
|
4308
4872
|
type: Input
|
|
4309
4873
|
}, {
|
|
4310
4874
|
type: HostBinding,
|
|
4311
|
-
args: ["
|
|
4875
|
+
args: ["attr.scrollMode"]
|
|
4876
|
+
}], scrollViewport: [{
|
|
4877
|
+
type: ViewChild,
|
|
4878
|
+
args: [CdkVirtualScrollViewport]
|
|
4312
4879
|
}], baseCssClass: [{
|
|
4313
4880
|
type: HostBinding,
|
|
4314
4881
|
args: ["class"]
|
|
4315
4882
|
}], hideHeader: [{
|
|
4316
4883
|
type: HostBinding,
|
|
4317
4884
|
args: ["class.hide-header"]
|
|
4885
|
+
}], headerHeightCssVar: [{
|
|
4886
|
+
type: HostBinding,
|
|
4887
|
+
args: ["style.--aup-table-header-height"]
|
|
4888
|
+
}], rowHeightCssVar: [{
|
|
4889
|
+
type: HostBinding,
|
|
4890
|
+
args: ["style.--aup-table-row-height"]
|
|
4318
4891
|
}] } });
|
|
4319
4892
|
|
|
4320
4893
|
class TableMoreMenuPopupComponent extends DisposableComponent {
|
|
@@ -4435,8 +5008,10 @@ class TableFilterModel extends GarbageCollector {
|
|
|
4435
5008
|
this.useSearchText(options.searchText$);
|
|
4436
5009
|
this.useRowPredicate(options.predicate$);
|
|
4437
5010
|
const { chain } = Dsl.disposeWith(this);
|
|
4438
|
-
const textSearchRegex$ = chain(this._searchText$)
|
|
4439
|
-
|
|
5011
|
+
const textSearchRegex$ = chain(this._searchText$)
|
|
5012
|
+
.debounce(250)
|
|
5013
|
+
.map(text => {
|
|
5014
|
+
return isEmpty(text) ? undefined : new RegExp(escapeStringRegexp(text), "i");
|
|
4440
5015
|
}, { allowNil: true });
|
|
4441
5016
|
this._rowPredicate = chain(this._rowPredicate$)
|
|
4442
5017
|
.map(predicate => {
|
|
@@ -4572,8 +5147,16 @@ class TableModel extends AbstractTableModel {
|
|
|
4572
5147
|
this._filteredRows$.setDelegate(filteredRows$);
|
|
4573
5148
|
this._visibleRows$.setDelegate(visibleRows$);
|
|
4574
5149
|
}
|
|
4575
|
-
|
|
4576
|
-
return this.
|
|
5150
|
+
get isUsingTemporarySelectionModel$() {
|
|
5151
|
+
return this.selectionColumnModel.isUsingTemporarySelectionModel$;
|
|
5152
|
+
}
|
|
5153
|
+
async withTemporaryMultipleSelectionModel(process) {
|
|
5154
|
+
return this.selectionColumnModel.withTemporarySelectionModel(garbage => {
|
|
5155
|
+
return new MultipleSelectionModel(this.filteredRows$, {
|
|
5156
|
+
identifiedWith: this.dataSource$.identityOf,
|
|
5157
|
+
disposedWith: garbage
|
|
5158
|
+
});
|
|
5159
|
+
}, process);
|
|
4577
5160
|
}
|
|
4578
5161
|
}
|
|
4579
5162
|
|
|
@@ -4644,31 +5227,30 @@ class TableComponent extends AbstractTableComponent {
|
|
|
4644
5227
|
#filterModel_accessor_storage = proxify((TableFilterModel));
|
|
4645
5228
|
get filterModel() { return this.#filterModel_accessor_storage; }
|
|
4646
5229
|
set filterModel(value) { this.#filterModel_accessor_storage = value; }
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
// }
|
|
4659
|
-
// }
|
|
5230
|
+
tableBody;
|
|
5231
|
+
#scrollMode$_accessor_storage = proxify((ValueModel));
|
|
5232
|
+
/**
|
|
5233
|
+
* Set to true to scroll mode to classic or virtual (default). Virtual scrolll performs better for large data sets but clamps the row height. Classic scroll
|
|
5234
|
+
* renders all rows but allows row heights to grow.
|
|
5235
|
+
*/
|
|
5236
|
+
get scrollMode$() { return this.#scrollMode$_accessor_storage; }
|
|
5237
|
+
set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
|
|
5238
|
+
#scrollMode_accessor_storage;
|
|
5239
|
+
get scrollMode() { return this.#scrollMode_accessor_storage; }
|
|
5240
|
+
set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
|
|
4660
5241
|
_footerContentAdded = false;
|
|
4661
5242
|
_filteredRows$ = this.registerDisposable(new DelegatingListModel());
|
|
4662
|
-
|
|
4663
|
-
pagedListModel;
|
|
5243
|
+
tableBodyScrollMode$;
|
|
4664
5244
|
constructor(injector) {
|
|
4665
5245
|
super(injector);
|
|
4666
|
-
const { when } = Dsl.disposeWith(this);
|
|
4667
|
-
this.
|
|
4668
|
-
|
|
5246
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
5247
|
+
this.tableBodyScrollMode$ = chain(this.enableScrolling$).map(enable => {
|
|
5248
|
+
return enable ? (this.scrollMode$.value ?? "virtual") : 'none';
|
|
5249
|
+
}, { dependsOn: this.scrollMode$ });
|
|
4669
5250
|
}
|
|
4670
5251
|
ngOnInit() {
|
|
4671
5252
|
super.ngOnInit();
|
|
5253
|
+
const { when } = Dsl.disposeWith(this);
|
|
4672
5254
|
if (CanProxy.hasTarget(this.filterModel)) {
|
|
4673
5255
|
this.registerDisposable(this.filterModel.bindToTable(this._dataSource$, this.getModel().textSearchPredicate$));
|
|
4674
5256
|
this.highlightText$.setDelegate(this.filterModel.highlightText$);
|
|
@@ -4677,50 +5259,27 @@ class TableComponent extends AbstractTableComponent {
|
|
|
4677
5259
|
else {
|
|
4678
5260
|
this._filteredRows$.setDelegate(this._dataSource$);
|
|
4679
5261
|
}
|
|
4680
|
-
this.
|
|
5262
|
+
this._visibleRows$.setDelegate(this._filteredRows$);
|
|
5263
|
+
// let users of the model know what the current visible and filtered rows are for selection models and what not
|
|
4681
5264
|
this.tableModel.bindToTable(this._filteredRows$, this._visibleRows$);
|
|
5265
|
+
when.anyOf(...this.tableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
|
|
5266
|
+
this.viewStateDependsOn(this._filteredRows$, this.tableModel.visibleColumns$);
|
|
4682
5267
|
}
|
|
4683
5268
|
getModel() {
|
|
4684
5269
|
return this.tableModel;
|
|
4685
5270
|
}
|
|
4686
|
-
get pageController() {
|
|
4687
|
-
// TODO: need to support external page controllers if the paging occurs to our primary data source.
|
|
4688
|
-
return this.pagedListModel.pageController;
|
|
4689
|
-
}
|
|
4690
|
-
configurePaging(enable) {
|
|
4691
|
-
if (enable) {
|
|
4692
|
-
if (!this.pagedListModel) {
|
|
4693
|
-
this.pagedListModel = PagedListModel.create(this._filteredRows$, this._pageSize);
|
|
4694
|
-
}
|
|
4695
|
-
this._visibleRows$.setDelegate(this.pagedListModel);
|
|
4696
|
-
}
|
|
4697
|
-
else {
|
|
4698
|
-
this.disposeOfPagedListModel();
|
|
4699
|
-
this._visibleRows$.setDelegate(this._filteredRows$);
|
|
4700
|
-
}
|
|
4701
|
-
}
|
|
4702
|
-
disposeOfPagedListModel() {
|
|
4703
|
-
if (this.pagedListModel) {
|
|
4704
|
-
this.pagedListModel.dispose();
|
|
4705
|
-
this.pagedListModel = null;
|
|
4706
|
-
}
|
|
4707
|
-
}
|
|
4708
5271
|
footerContentChanged($event) {
|
|
4709
5272
|
// console.log($event);
|
|
4710
5273
|
this._footerContentAdded = true;
|
|
4711
5274
|
}
|
|
4712
|
-
//@Trace()
|
|
4713
|
-
updatePageSize(count) {
|
|
4714
|
-
this._pageSize.value = count;
|
|
4715
|
-
}
|
|
4716
5275
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
4717
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel", filterModel: "filterModel",
|
|
5276
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TableComponent, selector: "aup-table", inputs: { tableModel: "tableModel", filterModel: "filterModel", scrollMode$: "scrollMode$", scrollMode: "scrollMode" }, providers: [
|
|
4718
5277
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
4719
|
-
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [
|
|
5278
|
+
], viewQueries: [{ propertyName: "tableBody", first: true, predicate: TableBodyComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"$any(tableModel)\"\n [footerRow]=\"tableModel.footerRowModel\"\n [showHeader$]=\"$any(showHeader$)\"\n [scrollMode$]=\"tableBodyScrollMode$\"\n [trackBy]=\"trackBy\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer], [slot=footer]\"></ng-content></div>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"], dependencies: [{ kind: "directive", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "footerRow", "showHeader$", "showHeader", "trackBy", "scrollMode$", "scrollMode"] }] });
|
|
4720
5279
|
}
|
|
4721
5280
|
__decorate([
|
|
4722
5281
|
Proxify(),
|
|
4723
|
-
__metadata("design:type",
|
|
5282
|
+
__metadata("design:type", TableModel)
|
|
4724
5283
|
], TableComponent.prototype, "tableModel", null);
|
|
4725
5284
|
__decorate([
|
|
4726
5285
|
Proxify(),
|
|
@@ -4728,24 +5287,27 @@ __decorate([
|
|
|
4728
5287
|
], TableComponent.prototype, "filterModel", null);
|
|
4729
5288
|
__decorate([
|
|
4730
5289
|
Proxify(),
|
|
4731
|
-
__metadata("design:type",
|
|
4732
|
-
], TableComponent.prototype, "
|
|
5290
|
+
__metadata("design:type", ValueModel)
|
|
5291
|
+
], TableComponent.prototype, "scrollMode$", null);
|
|
4733
5292
|
__decorate([
|
|
4734
5293
|
StoreInValueModel(),
|
|
4735
5294
|
__metadata("design:type", Object)
|
|
4736
|
-
], TableComponent.prototype, "
|
|
5295
|
+
], TableComponent.prototype, "scrollMode", null);
|
|
4737
5296
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, decorators: [{
|
|
4738
5297
|
type: Component,
|
|
4739
5298
|
args: [{ selector: 'aup-table', providers: [
|
|
4740
5299
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
4741
|
-
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [
|
|
5300
|
+
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"$any(tableModel)\"\n [footerRow]=\"tableModel.footerRowModel\"\n [showHeader$]=\"$any(showHeader$)\"\n [scrollMode$]=\"tableBodyScrollMode$\"\n [trackBy]=\"trackBy\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer], [slot=footer]\"></ng-content></div>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"] }]
|
|
4742
5301
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { tableModel: [{
|
|
4743
5302
|
type: Input
|
|
4744
5303
|
}], filterModel: [{
|
|
4745
5304
|
type: Input
|
|
4746
|
-
}],
|
|
5305
|
+
}], tableBody: [{
|
|
5306
|
+
type: ViewChild,
|
|
5307
|
+
args: [TableBodyComponent]
|
|
5308
|
+
}], scrollMode$: [{
|
|
4747
5309
|
type: Input
|
|
4748
|
-
}],
|
|
5310
|
+
}], scrollMode: [{
|
|
4749
5311
|
type: Input
|
|
4750
5312
|
}] } });
|
|
4751
5313
|
|
|
@@ -4927,7 +5489,7 @@ var DecoratedTreeNode;
|
|
|
4927
5489
|
}
|
|
4928
5490
|
}
|
|
4929
5491
|
__decorate([
|
|
4930
|
-
|
|
5492
|
+
MemoizeGet(),
|
|
4931
5493
|
__metadata("design:type", Array),
|
|
4932
5494
|
__metadata("design:paramtypes", [])
|
|
4933
5495
|
], Decorator.prototype, "children", null);
|
|
@@ -4980,7 +5542,7 @@ var DecoratedTreeNode;
|
|
|
4980
5542
|
__metadata("design:returntype", Array)
|
|
4981
5543
|
], Decorator.prototype, "ancestors", null);
|
|
4982
5544
|
__decorate([
|
|
4983
|
-
|
|
5545
|
+
MemoizeGet(),
|
|
4984
5546
|
__metadata("design:type", Number),
|
|
4985
5547
|
__metadata("design:paramtypes", [])
|
|
4986
5548
|
], Decorator.prototype, "depth", null);
|
|
@@ -4991,8 +5553,8 @@ class TreeLabelColumnModel extends ColumnModel {
|
|
|
4991
5553
|
expansionModel;
|
|
4992
5554
|
labelFactory = () => undefined;
|
|
4993
5555
|
iconFactory;
|
|
4994
|
-
constructor(columnId, textPropertiesProvider, expansionModel) {
|
|
4995
|
-
super(columnId, textPropertiesProvider);
|
|
5556
|
+
constructor(columnId, order, textPropertiesProvider, expansionModel) {
|
|
5557
|
+
super(columnId, order, textPropertiesProvider);
|
|
4996
5558
|
this.expansionModel = expansionModel;
|
|
4997
5559
|
this.cellRenderer(TreeLabelCellRendererComponent);
|
|
4998
5560
|
}
|
|
@@ -5051,7 +5613,7 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5051
5613
|
get isExpandedPredicate$() {
|
|
5052
5614
|
return this._isExpandedPredicate$.readonly$;
|
|
5053
5615
|
}
|
|
5054
|
-
bindToTable(expansionModel, filteredRows$, visibleRows
|
|
5616
|
+
bindToTable(expansionModel, filteredRows$, visibleRows$, cdr) {
|
|
5055
5617
|
this.treeExpansionModel = expansionModel;
|
|
5056
5618
|
// TODO: Move all the expansion model stuff out of here and have things use the expansion model directly
|
|
5057
5619
|
this._isExpandedPredicate$.setDelegate(this.treeExpansionModel.isExpandedPredicate$);
|
|
@@ -5060,7 +5622,7 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5060
5622
|
}
|
|
5061
5623
|
treeControlColumn(builder) {
|
|
5062
5624
|
const columnId = 'tree-label';
|
|
5063
|
-
const column = new TreeLabelColumnModel(columnId, () => this.getColumnTextProperties(columnId), this);
|
|
5625
|
+
const column = new TreeLabelColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), this);
|
|
5064
5626
|
builder(column);
|
|
5065
5627
|
this.addColumn(column);
|
|
5066
5628
|
}
|
|
@@ -5079,9 +5641,6 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5079
5641
|
isExpanded(row) {
|
|
5080
5642
|
return this.treeExpansionModel.isExpanded(row);
|
|
5081
5643
|
}
|
|
5082
|
-
addSelectionColumn(selectionModel, showSelectionColumn) {
|
|
5083
|
-
return this._addSelectionColumn(selectionModel, showSelectionColumn);
|
|
5084
|
-
}
|
|
5085
5644
|
}
|
|
5086
5645
|
// export class FlattenStrategy<T extends VisitableTree<any>> extends SelfAndDescendantsVisitor<T> {
|
|
5087
5646
|
//
|
|
@@ -5386,11 +5945,15 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5386
5945
|
#expansionModel_accessor_storage = proxify((TreeExpansionModel));
|
|
5387
5946
|
get expansionModel() { return this.#expansionModel_accessor_storage; }
|
|
5388
5947
|
set expansionModel(value) { this.#expansionModel_accessor_storage = value; }
|
|
5948
|
+
scrollMode$;
|
|
5389
5949
|
constructor(injector) {
|
|
5390
5950
|
super(injector);
|
|
5951
|
+
const { chain } = Dsl.disposeWith(this);
|
|
5952
|
+
this.scrollMode$ = chain(this.enableScrolling$).map(enabled => enabled ? "classic" : "none");
|
|
5391
5953
|
}
|
|
5392
5954
|
ngOnInit() {
|
|
5393
5955
|
super.ngOnInit();
|
|
5956
|
+
const { when } = Dsl.disposeWith(this);
|
|
5394
5957
|
// TODO: clean up all this tightly coupled shit, should the expansion model really be separate from the tree model?
|
|
5395
5958
|
if (!this.expansionModel) {
|
|
5396
5959
|
this.expansionModel = new TreeExpansionModel({ disposedWith: this });
|
|
@@ -5399,7 +5962,10 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5399
5962
|
const visibleRows$ = new FlattenedTreeListModel(this._dataSource$, row => this.treeTableModel.childExtractor(row), this.expansionModel);
|
|
5400
5963
|
this._visibleRows$.setDelegate(visibleRows$);
|
|
5401
5964
|
this.expansionModel.bindToTable(this._dataSource$, visibleRows$);
|
|
5402
|
-
this.treeTableModel.bindToTable(this.expansionModel, visibleRows$, this._visibleRows
|
|
5965
|
+
this.treeTableModel.bindToTable(this.expansionModel, visibleRows$, this._visibleRows$, this.cdr);
|
|
5966
|
+
this.viewStateDependsOn(this.treeTableModel.visibleRows$);
|
|
5967
|
+
this.viewStateDependsOn(this.treeTableModel.visibleRows$);
|
|
5968
|
+
when.anyOf(...this.treeTableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
|
|
5403
5969
|
}
|
|
5404
5970
|
getModel() {
|
|
5405
5971
|
return this.treeTableModel;
|
|
@@ -5407,7 +5973,7 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5407
5973
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TreeTableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
5408
5974
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TreeTableComponent, selector: "aup-tree-table", inputs: { treeTableModel: "treeTableModel", expansionModel: "expansionModel" }, providers: [
|
|
5409
5975
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
5410
|
-
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [
|
|
5976
|
+
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [scrollMode$]=\"scrollMode$\"\n [aupHighlightTextModel]=\"highlightText$\"\n [trackBy]=\"trackBy\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-mdc-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}aup-table-body{flex:1}\n"], dependencies: [{ kind: "directive", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "footerRow", "showHeader$", "showHeader", "trackBy", "scrollMode$", "scrollMode"] }] });
|
|
5411
5977
|
}
|
|
5412
5978
|
__decorate([
|
|
5413
5979
|
Proxify(),
|
|
@@ -5421,7 +5987,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5421
5987
|
type: Component,
|
|
5422
5988
|
args: [{ selector: 'aup-tree-table', providers: [
|
|
5423
5989
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
5424
|
-
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [
|
|
5990
|
+
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [scrollMode$]=\"scrollMode$\"\n [aupHighlightTextModel]=\"highlightText$\"\n [trackBy]=\"trackBy\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-mdc-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}aup-table-body{flex:1}\n"] }]
|
|
5425
5991
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { treeTableModel: [{
|
|
5426
5992
|
type: Input
|
|
5427
5993
|
}], expansionModel: [{
|
|
@@ -5603,6 +6169,7 @@ class ComponentsModule {
|
|
|
5603
6169
|
FocusableComponent,
|
|
5604
6170
|
CardContainerComponent,
|
|
5605
6171
|
TableComponent,
|
|
6172
|
+
TableRowAttributesDirective,
|
|
5606
6173
|
EditRowControlsComponent,
|
|
5607
6174
|
ColumnTemplateDirective,
|
|
5608
6175
|
DefaultCellRendererComponent,
|
|
@@ -5636,7 +6203,9 @@ class ComponentsModule {
|
|
|
5636
6203
|
MarkdownComponent,
|
|
5637
6204
|
TableBodyComponent,
|
|
5638
6205
|
TableMoreMenuComponent,
|
|
5639
|
-
TableMoreMenuPopupComponent
|
|
6206
|
+
TableMoreMenuPopupComponent,
|
|
6207
|
+
SearchInputComponent,
|
|
6208
|
+
TableFooterRow], imports: [CommonModule,
|
|
5640
6209
|
BrowserAnimationsModule,
|
|
5641
6210
|
FormsModule,
|
|
5642
6211
|
MatInputModule,
|
|
@@ -5655,7 +6224,10 @@ class ComponentsModule {
|
|
|
5655
6224
|
MatMenuModule,
|
|
5656
6225
|
MatDividerModule,
|
|
5657
6226
|
MatProgressSpinnerModule,
|
|
5658
|
-
MatProgressBarModule
|
|
6227
|
+
MatProgressBarModule,
|
|
6228
|
+
ScrollingModule,
|
|
6229
|
+
TableVirtualScrollModule], exports: [TableFooterRow,
|
|
6230
|
+
NumberInputComponent,
|
|
5659
6231
|
StringInputComponent,
|
|
5660
6232
|
TextInputComponent,
|
|
5661
6233
|
PasswordInputComponent,
|
|
@@ -5693,7 +6265,8 @@ class ComponentsModule {
|
|
|
5693
6265
|
LoadingContainerComponent,
|
|
5694
6266
|
MarkdownComponent,
|
|
5695
6267
|
TableMoreMenuComponent,
|
|
5696
|
-
TableMoreMenuPopupComponent
|
|
6268
|
+
TableMoreMenuPopupComponent,
|
|
6269
|
+
SearchInputComponent] });
|
|
5697
6270
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, providers: [
|
|
5698
6271
|
FocusBindingFactory,
|
|
5699
6272
|
MarkdownService
|
|
@@ -5716,7 +6289,9 @@ class ComponentsModule {
|
|
|
5716
6289
|
MatMenuModule,
|
|
5717
6290
|
MatDividerModule,
|
|
5718
6291
|
MatProgressSpinnerModule,
|
|
5719
|
-
MatProgressBarModule
|
|
6292
|
+
MatProgressBarModule,
|
|
6293
|
+
ScrollingModule,
|
|
6294
|
+
TableVirtualScrollModule] });
|
|
5720
6295
|
}
|
|
5721
6296
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
|
|
5722
6297
|
type: NgModule,
|
|
@@ -5741,7 +6316,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5741
6316
|
MatMenuModule,
|
|
5742
6317
|
MatDividerModule,
|
|
5743
6318
|
MatProgressSpinnerModule,
|
|
5744
|
-
MatProgressBarModule
|
|
6319
|
+
MatProgressBarModule,
|
|
6320
|
+
ScrollingModule,
|
|
6321
|
+
TableVirtualScrollModule
|
|
5745
6322
|
],
|
|
5746
6323
|
declarations: [
|
|
5747
6324
|
AbstractInputComponent,
|
|
@@ -5765,6 +6342,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5765
6342
|
FocusableComponent,
|
|
5766
6343
|
CardContainerComponent,
|
|
5767
6344
|
TableComponent,
|
|
6345
|
+
TableRowAttributesDirective,
|
|
5768
6346
|
EditRowControlsComponent,
|
|
5769
6347
|
ColumnTemplateDirective,
|
|
5770
6348
|
DefaultCellRendererComponent,
|
|
@@ -5799,8 +6377,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5799
6377
|
TableBodyComponent,
|
|
5800
6378
|
TableMoreMenuComponent,
|
|
5801
6379
|
TableMoreMenuPopupComponent,
|
|
6380
|
+
SearchInputComponent,
|
|
6381
|
+
TableFooterRow
|
|
5802
6382
|
],
|
|
5803
6383
|
exports: [
|
|
6384
|
+
TableFooterRow,
|
|
5804
6385
|
NumberInputComponent,
|
|
5805
6386
|
StringInputComponent,
|
|
5806
6387
|
TextInputComponent,
|
|
@@ -5840,6 +6421,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5840
6421
|
MarkdownComponent,
|
|
5841
6422
|
TableMoreMenuComponent,
|
|
5842
6423
|
TableMoreMenuPopupComponent,
|
|
6424
|
+
SearchInputComponent
|
|
5843
6425
|
],
|
|
5844
6426
|
providers: [
|
|
5845
6427
|
FocusBindingFactory,
|
|
@@ -5848,6 +6430,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5848
6430
|
}]
|
|
5849
6431
|
}] });
|
|
5850
6432
|
|
|
6433
|
+
class LoadableComponent extends DisposableComponent {
|
|
6434
|
+
#_loaded$ = new MutableValueModel();
|
|
6435
|
+
#asyncLoadables = [];
|
|
6436
|
+
#awaitedLoadables = [];
|
|
6437
|
+
get loaded$() {
|
|
6438
|
+
return this.#_loaded$.readonly$;
|
|
6439
|
+
}
|
|
6440
|
+
ngOnInit() {
|
|
6441
|
+
super.ngOnInit();
|
|
6442
|
+
this.#asyncLoadables.forEach(it => it.ensureLoaded());
|
|
6443
|
+
if (this.#awaitedLoadables.length > 0) {
|
|
6444
|
+
Promise.all(this.#awaitedLoadables.map(it => {
|
|
6445
|
+
return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
|
|
6446
|
+
})).then(() => {
|
|
6447
|
+
this.#_loaded$.value = true;
|
|
6448
|
+
});
|
|
6449
|
+
}
|
|
6450
|
+
else {
|
|
6451
|
+
this.#_loaded$.value = true;
|
|
6452
|
+
}
|
|
6453
|
+
}
|
|
6454
|
+
injectLoadable(token, options) {
|
|
6455
|
+
return this.registerLoadable(inject(token, options), options);
|
|
6456
|
+
}
|
|
6457
|
+
registerLoadable(loadable, options) {
|
|
6458
|
+
if (this.loaded$.value) {
|
|
6459
|
+
loadable.ensureLoaded();
|
|
6460
|
+
}
|
|
6461
|
+
else {
|
|
6462
|
+
if (!options || options.wait === true) {
|
|
6463
|
+
this.#awaitedLoadables.push(loadable);
|
|
6464
|
+
}
|
|
6465
|
+
else {
|
|
6466
|
+
this.#asyncLoadables.push(loadable);
|
|
6467
|
+
}
|
|
6468
|
+
}
|
|
6469
|
+
return loadable;
|
|
6470
|
+
}
|
|
6471
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
6472
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: LoadableComponent, usesInheritance: true, ngImport: i0 });
|
|
6473
|
+
}
|
|
6474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
|
|
6475
|
+
type: Directive
|
|
6476
|
+
}] });
|
|
6477
|
+
|
|
6478
|
+
class TextSearchContext {
|
|
6479
|
+
row;
|
|
6480
|
+
searchText;
|
|
6481
|
+
searchRegex;
|
|
6482
|
+
constructor(row, searchText, searchRegex) {
|
|
6483
|
+
this.row = row;
|
|
6484
|
+
this.searchText = searchText;
|
|
6485
|
+
this.searchRegex = searchRegex;
|
|
6486
|
+
}
|
|
6487
|
+
getOrCreate(type, create) {
|
|
6488
|
+
}
|
|
6489
|
+
matchesText(text) {
|
|
6490
|
+
return this.searchRegex.test(text);
|
|
6491
|
+
}
|
|
6492
|
+
}
|
|
6493
|
+
|
|
6494
|
+
class AbstractCellRenderer extends LoadableComponent {
|
|
6495
|
+
constructor() {
|
|
6496
|
+
super();
|
|
6497
|
+
}
|
|
6498
|
+
}
|
|
6499
|
+
|
|
5851
6500
|
/**
|
|
5852
6501
|
* @file Automatically generated by barrelsby.
|
|
5853
6502
|
*/
|
|
@@ -5874,7 +6523,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5874
6523
|
* </aup-activity-actions>
|
|
5875
6524
|
*/
|
|
5876
6525
|
class ActivityActionsComponent extends DisposableComponent {
|
|
5877
|
-
cdr;
|
|
5878
6526
|
confirmCommandComponent;
|
|
5879
6527
|
cancelCommandComponent;
|
|
5880
6528
|
#confirmCommand_accessor_storage = proxify((Command));
|
|
@@ -5903,9 +6551,9 @@ class ActivityActionsComponent extends DisposableComponent {
|
|
|
5903
6551
|
}
|
|
5904
6552
|
layout = ActivityActionsComponent.Layout.BLOCK;
|
|
5905
6553
|
align = ActivityActionsComponent.Align.STRETCH;
|
|
5906
|
-
|
|
6554
|
+
alignContent = ActivityActionsComponent.AlignContent.CENTER;
|
|
6555
|
+
constructor() {
|
|
5907
6556
|
super();
|
|
5908
|
-
this.cdr = cdr;
|
|
5909
6557
|
}
|
|
5910
6558
|
hasConfirmFace() {
|
|
5911
6559
|
return !!this.confirmFace;
|
|
@@ -5924,8 +6572,8 @@ class ActivityActionsComponent extends DisposableComponent {
|
|
|
5924
6572
|
focusCancel() {
|
|
5925
6573
|
this.cancelCommandComponent.requestFocus();
|
|
5926
6574
|
}
|
|
5927
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [
|
|
5928
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"
|
|
6575
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6576
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align", alignContent: "alignContent" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align", "attr.align-content": "this.alignContent" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px);grid-gap:var(--resolved-activity-actions-gap)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}:host .cancel{grid-area:cancel}:host .confirm{grid-area:confirm}:host .content{display:flex;flex-direction:row;align-items:center}:host[align-content=start] .content{justify-items:start}:host[align-content=end]{justify-items:end}:host[align-content=center]{justify-items:center}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
|
|
5929
6577
|
}
|
|
5930
6578
|
__decorate([
|
|
5931
6579
|
Proxify(),
|
|
@@ -5937,8 +6585,8 @@ __decorate([
|
|
|
5937
6585
|
], ActivityActionsComponent.prototype, "cancelCommand", null);
|
|
5938
6586
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
|
|
5939
6587
|
type: Component,
|
|
5940
|
-
args: [{ selector: 'aup-activity-actions', template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"
|
|
5941
|
-
}], ctorParameters: function () { return [
|
|
6588
|
+
args: [{ selector: 'aup-activity-actions', template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px);grid-gap:var(--resolved-activity-actions-gap)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}:host .cancel{grid-area:cancel}:host .confirm{grid-area:confirm}:host .content{display:flex;flex-direction:row;align-items:center}:host[align-content=start] .content{justify-items:start}:host[align-content=end]{justify-items:end}:host[align-content=center]{justify-items:center}\n"] }]
|
|
6589
|
+
}], ctorParameters: function () { return []; }, propDecorators: { confirmCommandComponent: [{
|
|
5942
6590
|
type: ViewChild,
|
|
5943
6591
|
args: ["confirmCommandComponent"]
|
|
5944
6592
|
}], cancelCommandComponent: [{
|
|
@@ -5966,6 +6614,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5966
6614
|
}, {
|
|
5967
6615
|
type: HostBinding,
|
|
5968
6616
|
args: ['attr.align']
|
|
6617
|
+
}], alignContent: [{
|
|
6618
|
+
type: Input
|
|
6619
|
+
}, {
|
|
6620
|
+
type: HostBinding,
|
|
6621
|
+
args: ['attr.align-content']
|
|
5969
6622
|
}] } });
|
|
5970
6623
|
(function (ActivityActionsComponent) {
|
|
5971
6624
|
ActivityActionsComponent.Layout = Enum({
|
|
@@ -5974,14 +6627,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5974
6627
|
});
|
|
5975
6628
|
ActivityActionsComponent.Align = Enum({
|
|
5976
6629
|
START: 'start',
|
|
5977
|
-
|
|
5978
|
-
|
|
6630
|
+
STRETCH: 'stretch',
|
|
6631
|
+
END: 'end'
|
|
6632
|
+
});
|
|
6633
|
+
ActivityActionsComponent.AlignContent = Enum({
|
|
6634
|
+
START: 'start',
|
|
6635
|
+
CENTER: 'center',
|
|
6636
|
+
END: 'end'
|
|
5979
6637
|
});
|
|
5980
6638
|
})(ActivityActionsComponent || (ActivityActionsComponent = {}));
|
|
5981
6639
|
|
|
6640
|
+
const INTERACTION_CONTEXT_PROVIDER = new InjectionToken("INTERACTION_CONTEXT_PROVIDER");
|
|
6641
|
+
|
|
5982
6642
|
const ACTIVITY_DATA = new InjectionToken("InteractionActivityData");
|
|
5983
6643
|
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
5984
|
-
class Activity extends
|
|
6644
|
+
class Activity extends LoadableComponent {
|
|
5985
6645
|
activityData = inject(ACTIVITY_DATA);
|
|
5986
6646
|
activityReadyListeners = new EventListenerList();
|
|
5987
6647
|
_busy$ = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
@@ -6036,7 +6696,6 @@ class Activity extends DisposableComponent {
|
|
|
6036
6696
|
notifyActivityReady() {
|
|
6037
6697
|
this.activityReadyListeners.fire(l => l(this));
|
|
6038
6698
|
this._ready$.value = true;
|
|
6039
|
-
console.log("ready");
|
|
6040
6699
|
}
|
|
6041
6700
|
onActivityReady(callback) {
|
|
6042
6701
|
return this.activityReadyListeners.add(callback);
|
|
@@ -6069,8 +6728,13 @@ class Activity extends DisposableComponent {
|
|
|
6069
6728
|
isInitialised() {
|
|
6070
6729
|
return !!this._activityContext;
|
|
6071
6730
|
}
|
|
6731
|
+
getInteractionContext() {
|
|
6732
|
+
return this.interactionContext;
|
|
6733
|
+
}
|
|
6072
6734
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: Activity, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6073
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: Activity, selector: "ng-component", host: { properties: { "class": "this.class", "attr.focused": "this.isFocused" } },
|
|
6735
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: Activity, selector: "ng-component", host: { properties: { "class": "this.class", "attr.focused": "this.isFocused" } }, providers: [{
|
|
6736
|
+
provide: INTERACTION_CONTEXT_PROVIDER, useExisting: Activity
|
|
6737
|
+
}], viewQueries: [{ propertyName: "activityActions", first: true, predicate: ActivityActionsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "", isInline: true });
|
|
6074
6738
|
}
|
|
6075
6739
|
__decorate([
|
|
6076
6740
|
Proxify(),
|
|
@@ -6083,7 +6747,10 @@ __decorate([
|
|
|
6083
6747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: Activity, decorators: [{
|
|
6084
6748
|
type: Component,
|
|
6085
6749
|
args: [{
|
|
6086
|
-
template: ""
|
|
6750
|
+
template: "",
|
|
6751
|
+
providers: [{
|
|
6752
|
+
provide: INTERACTION_CONTEXT_PROVIDER, useExisting: Activity
|
|
6753
|
+
}],
|
|
6087
6754
|
}]
|
|
6088
6755
|
}], ctorParameters: function () { return []; }, propDecorators: { activityActions: [{
|
|
6089
6756
|
type: ViewChild,
|
|
@@ -6156,7 +6823,7 @@ class AbstractDialogComponent extends Activity {
|
|
|
6156
6823
|
}
|
|
6157
6824
|
}
|
|
6158
6825
|
isDestructive() {
|
|
6159
|
-
return isFunction
|
|
6826
|
+
return isFunction(this.config['destructive']) && this.config["destructive"]();
|
|
6160
6827
|
}
|
|
6161
6828
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractDialogComponent, deps: [{ token: ALERT_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
6162
6829
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractDialogComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
@@ -6173,6 +6840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6173
6840
|
|
|
6174
6841
|
class AbstractConfirmDialogComponent extends AbstractDialogComponent {
|
|
6175
6842
|
cancelFace;
|
|
6843
|
+
confirmClass = "aup-confirm-activity";
|
|
6176
6844
|
constructor(config) {
|
|
6177
6845
|
super(config);
|
|
6178
6846
|
this.cancelFace = {
|
|
@@ -6183,7 +6851,7 @@ class AbstractConfirmDialogComponent extends AbstractDialogComponent {
|
|
|
6183
6851
|
});
|
|
6184
6852
|
}
|
|
6185
6853
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractConfirmDialogComponent, deps: [{ token: ALERT_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
6186
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractConfirmDialogComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
6854
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractConfirmDialogComponent, selector: "ng-component", host: { properties: { "class": "this.confirmClass" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
6187
6855
|
}
|
|
6188
6856
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractConfirmDialogComponent, decorators: [{
|
|
6189
6857
|
type: Component,
|
|
@@ -6193,7 +6861,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6193
6861
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
6194
6862
|
type: Inject,
|
|
6195
6863
|
args: [ALERT_CONFIG]
|
|
6196
|
-
}] }]; }
|
|
6864
|
+
}] }]; }, propDecorators: { confirmClass: [{
|
|
6865
|
+
type: HostBinding,
|
|
6866
|
+
args: ["class"]
|
|
6867
|
+
}] } });
|
|
6197
6868
|
|
|
6198
6869
|
class ActivityBodyComponent extends DisposableComponent {
|
|
6199
6870
|
fullWidth = false;
|
|
@@ -6523,6 +7194,7 @@ class PlaceDefinition {
|
|
|
6523
7194
|
children;
|
|
6524
7195
|
redirectToFirstChild;
|
|
6525
7196
|
_parent;
|
|
7197
|
+
name;
|
|
6526
7198
|
constructor(component, path, authenticate, role, data, routeParameters, children, redirectToFirstChild) {
|
|
6527
7199
|
this.component = component;
|
|
6528
7200
|
this.path = path;
|
|
@@ -6532,6 +7204,8 @@ class PlaceDefinition {
|
|
|
6532
7204
|
this.routeParameters = routeParameters;
|
|
6533
7205
|
this.children = children;
|
|
6534
7206
|
this.redirectToFirstChild = redirectToFirstChild;
|
|
7207
|
+
const s = component.name.replace(/Component$/, '');
|
|
7208
|
+
this.name = s.charAt(0).toLowerCase() + s.slice(1);
|
|
6535
7209
|
this.children.forEach(it => it.setParent(this));
|
|
6536
7210
|
}
|
|
6537
7211
|
ancestors() {
|
|
@@ -6540,6 +7214,9 @@ class PlaceDefinition {
|
|
|
6540
7214
|
ancestorsAndSelf() {
|
|
6541
7215
|
return this.ancestors().concat(this);
|
|
6542
7216
|
}
|
|
7217
|
+
get placeId() {
|
|
7218
|
+
return this.ancestorsAndSelf().map(d => Stringy.from(d.name).dasherize().toString()).join('.');
|
|
7219
|
+
}
|
|
6543
7220
|
setParent(parent) {
|
|
6544
7221
|
assert.isNil(this._parent);
|
|
6545
7222
|
this._parent = parent;
|
|
@@ -6701,6 +7378,11 @@ __decorate([
|
|
|
6701
7378
|
__metadata("design:paramtypes", []),
|
|
6702
7379
|
__metadata("design:returntype", Array)
|
|
6703
7380
|
], PlaceDefinition.prototype, "ancestorsAndSelf", null);
|
|
7381
|
+
__decorate([
|
|
7382
|
+
Memoize(),
|
|
7383
|
+
__metadata("design:type", String),
|
|
7384
|
+
__metadata("design:paramtypes", [])
|
|
7385
|
+
], PlaceDefinition.prototype, "placeId", null);
|
|
6704
7386
|
__decorate([
|
|
6705
7387
|
Memoize(),
|
|
6706
7388
|
__metadata("design:type", Function),
|
|
@@ -6732,31 +7414,38 @@ const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
|
|
|
6732
7414
|
// return true;
|
|
6733
7415
|
// }
|
|
6734
7416
|
// }
|
|
6735
|
-
class PlaceComponent extends
|
|
7417
|
+
class PlaceComponent extends LoadableComponent {
|
|
6736
7418
|
_placeReadyCallbacks = [];
|
|
6737
|
-
|
|
7419
|
+
visit$ = new MutableValueModel();
|
|
6738
7420
|
_inVisitUpdate = new Guard();
|
|
6739
7421
|
_active = new MutableValueModel(false);
|
|
6740
7422
|
interactionContext;
|
|
6741
7423
|
childPlaces$;
|
|
7424
|
+
// private readonly _parameterChangeInterceptors: ParameterChangeInterceptor<any>[] = [];
|
|
7425
|
+
placeId;
|
|
6742
7426
|
placeRouter = inject(PlaceRouter);
|
|
7427
|
+
activatedRoute = inject(ActivatedRoute);
|
|
6743
7428
|
constructor() {
|
|
6744
7429
|
super();
|
|
6745
7430
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
6746
7431
|
when(this._active).becomesTruthy(() => this._notifyPlaceReady());
|
|
6747
7432
|
this.childPlaces$ = ListModel.constant(this.placeDefinition.children.map(d => d.component));
|
|
7433
|
+
this.placeId = this.placeDefinition.placeId;
|
|
7434
|
+
if (isEmpty(this.placeId)) {
|
|
7435
|
+
lang.illegalState("placeId property is missing from the route data parameters");
|
|
7436
|
+
}
|
|
6748
7437
|
}
|
|
6749
7438
|
initialiseVisit(visit, notifyVisitChanged) {
|
|
6750
|
-
assert.isNil(this.
|
|
7439
|
+
assert.isNil(this.visit$.value);
|
|
6751
7440
|
const { when } = Dsl.disposeWith(this);
|
|
6752
|
-
this.
|
|
6753
|
-
DebugContext.getOrCreate(this.
|
|
7441
|
+
this.visit$.value = visit;
|
|
7442
|
+
DebugContext.getOrCreate(this.visit$).tag(`${this.placeDefinition.component.name}.visit$`);
|
|
6754
7443
|
// we track if the any of the bindings updated the route. If so we remember it and update the
|
|
6755
7444
|
// route in one go at the end.
|
|
6756
7445
|
this.placeDefinition
|
|
6757
7446
|
.getVisitParameterDefs()
|
|
6758
7447
|
.forEach(parameterDef => this.installAndInitialiseBinding(visit, parameterDef));
|
|
6759
|
-
when(this.
|
|
7448
|
+
when(this.visit$).changes((current, previous) => {
|
|
6760
7449
|
notifyVisitChanged(current, previous);
|
|
6761
7450
|
}, { unless: this._inVisitUpdate });
|
|
6762
7451
|
// TODO: this needs to do a replace url option so that the new url isn't put in the history.... for
|
|
@@ -6775,11 +7464,11 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6775
7464
|
assert.isTruthy(this.isInitialised());
|
|
6776
7465
|
assert.notNil(visit);
|
|
6777
7466
|
this._inVisitUpdate.whileTrue(() => {
|
|
6778
|
-
this.
|
|
7467
|
+
this.visit$.value = visit;
|
|
6779
7468
|
});
|
|
6780
7469
|
}
|
|
6781
7470
|
isInitialised() {
|
|
6782
|
-
return !!this.
|
|
7471
|
+
return !!this.visit$.value;
|
|
6783
7472
|
}
|
|
6784
7473
|
// @Trace()
|
|
6785
7474
|
/**
|
|
@@ -6789,8 +7478,9 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6789
7478
|
*/
|
|
6790
7479
|
installAndInitialiseBinding(initialVisit, parameterDef) {
|
|
6791
7480
|
const model = this[parameterDef.propertyName];
|
|
7481
|
+
assert.notNil(model);
|
|
6792
7482
|
DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
|
|
6793
|
-
const binding = this.registerDisposable(new Binding(this.
|
|
7483
|
+
const binding = this.registerDisposable(new Binding(this.visit$, model, {
|
|
6794
7484
|
toRight(visit) {
|
|
6795
7485
|
const value = visit.getParameterValue(parameterDef);
|
|
6796
7486
|
// console.log('push to component', { name: parameterDef.name, value, visit });
|
|
@@ -6870,16 +7560,19 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6870
7560
|
this._placeReadyCallbacks.push(callback);
|
|
6871
7561
|
}
|
|
6872
7562
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6873
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: PlaceComponent, usesInheritance: true, ngImport: i0 });
|
|
7563
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: PlaceComponent, host: { properties: { "attr.place-id": "this.placeId" } }, usesInheritance: true, ngImport: i0 });
|
|
6874
7564
|
}
|
|
6875
7565
|
__decorate([
|
|
6876
|
-
|
|
7566
|
+
MemoizeGet(),
|
|
6877
7567
|
__metadata("design:type", PlaceDefinition),
|
|
6878
7568
|
__metadata("design:paramtypes", [])
|
|
6879
7569
|
], PlaceComponent.prototype, "placeDefinition", null);
|
|
6880
7570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceComponent, decorators: [{
|
|
6881
7571
|
type: Directive
|
|
6882
|
-
}], ctorParameters: function () { return []; }, propDecorators: {
|
|
7572
|
+
}], ctorParameters: function () { return []; }, propDecorators: { placeId: [{
|
|
7573
|
+
type: HostBinding,
|
|
7574
|
+
args: ["attr.place-id"]
|
|
7575
|
+
}], placeDefinition: [] } });
|
|
6883
7576
|
(function (PlaceComponent) {
|
|
6884
7577
|
function isPlaceComponentConstructor(target) {
|
|
6885
7578
|
return lang.constructorChain(target).includes(PlaceComponent);
|
|
@@ -7063,7 +7756,7 @@ class Visit {
|
|
|
7063
7756
|
getRouterCommands() {
|
|
7064
7757
|
return this.segments.reduce((result, v) => {
|
|
7065
7758
|
const path = v.placeDefinition.path;
|
|
7066
|
-
return isEmpty
|
|
7759
|
+
return isEmpty(path) ?
|
|
7067
7760
|
[...result, path] : // Angular doesn't support route params on empty path segments
|
|
7068
7761
|
[...result, path, ...v.createRouterCommands()];
|
|
7069
7762
|
}, []);
|
|
@@ -7079,7 +7772,7 @@ class Visit {
|
|
|
7079
7772
|
}
|
|
7080
7773
|
}
|
|
7081
7774
|
__decorate([
|
|
7082
|
-
Memoize
|
|
7775
|
+
Memoize(),
|
|
7083
7776
|
__metadata("design:type", Function),
|
|
7084
7777
|
__metadata("design:paramtypes", [PlaceDefinition]),
|
|
7085
7778
|
__metadata("design:returntype", VisitSegment)
|
|
@@ -7460,10 +8153,7 @@ class SynchroniseInteractionContextIdsWithRoute extends NavigationSession {
|
|
|
7460
8153
|
return true;
|
|
7461
8154
|
}
|
|
7462
8155
|
notifyActive() {
|
|
7463
|
-
|
|
7464
|
-
setTimeout(() => {
|
|
7465
|
-
this.syncInteractionIdsWithRouter();
|
|
7466
|
-
});
|
|
8156
|
+
this.syncInteractionIdsWithRouter();
|
|
7467
8157
|
}
|
|
7468
8158
|
// @Trace()
|
|
7469
8159
|
onRouterEnd(event) {
|
|
@@ -8002,12 +8692,12 @@ class PlaceAuthService extends GarbageCollector {
|
|
|
8002
8692
|
await toPromise(this, this._authZReady$);
|
|
8003
8693
|
await this.enabledPlaceChecker.waitUntilReady(placeDef);
|
|
8004
8694
|
}
|
|
8005
|
-
getAuthenticationFailureRedirect(activatedRoute, state) {
|
|
8006
|
-
const redirect = this.authNOptions.redirectTo(activatedRoute, state);
|
|
8695
|
+
async getAuthenticationFailureRedirect(activatedRoute, state) {
|
|
8696
|
+
const redirect = await this.authNOptions.redirectTo(activatedRoute, state);
|
|
8007
8697
|
return redirect instanceof Visit ? redirect : Visit.goto(redirect);
|
|
8008
8698
|
}
|
|
8009
|
-
getAuthorisationFailureRedirectOptions(component) {
|
|
8010
|
-
return this.authZOptions.redirectTo(component).map(it => it instanceof Visit ? it : Visit.goto(it));
|
|
8699
|
+
async getAuthorisationFailureRedirectOptions(component) {
|
|
8700
|
+
return (await this.authZOptions.redirectTo(component)).map(it => it instanceof Visit ? it : Visit.goto(it));
|
|
8011
8701
|
}
|
|
8012
8702
|
isAuthenticated() {
|
|
8013
8703
|
return this.accessGuard$.value.isAuthenticated();
|
|
@@ -8206,7 +8896,7 @@ class ConsolidatedParameterMap {
|
|
|
8206
8896
|
}
|
|
8207
8897
|
}
|
|
8208
8898
|
__decorate([
|
|
8209
|
-
|
|
8899
|
+
MemoizeGet(),
|
|
8210
8900
|
__metadata("design:type", Array),
|
|
8211
8901
|
__metadata("design:paramtypes", [])
|
|
8212
8902
|
], ConsolidatedParameterMap.prototype, "keys", null);
|
|
@@ -8284,7 +8974,7 @@ class UrlSnapshot {
|
|
|
8284
8974
|
return this.getPrimaryUrlSegments().find(s => s.path === placeDef.path);
|
|
8285
8975
|
}
|
|
8286
8976
|
isLastPlaceInUrl(placeDef) {
|
|
8287
|
-
return last
|
|
8977
|
+
return last(this.getPrimaryUrlSegments()).path === placeDef.path;
|
|
8288
8978
|
}
|
|
8289
8979
|
createVisitSegmentFor(placeDef) {
|
|
8290
8980
|
return new VisitSegment(placeDef, new ConsolidatedParameterMap(this.getPrimaryUrlSegments()));
|
|
@@ -8400,7 +9090,7 @@ class UrlService {
|
|
|
8400
9090
|
back() {
|
|
8401
9091
|
this.angularLocation.back();
|
|
8402
9092
|
}
|
|
8403
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, deps: [{ token: i1$
|
|
9093
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, deps: [{ token: i1$5.Router }, { token: i1$1.Location }, { token: i1$5.UrlSerializer }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
8404
9094
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, providedIn: 'root' });
|
|
8405
9095
|
}
|
|
8406
9096
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, decorators: [{
|
|
@@ -8408,7 +9098,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
8408
9098
|
args: [{
|
|
8409
9099
|
providedIn: 'root'
|
|
8410
9100
|
}]
|
|
8411
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9101
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: i1$1.Location }, { type: i1$5.UrlSerializer }]; } });
|
|
8412
9102
|
|
|
8413
9103
|
// function asArray<T>(item: T | T[]): T[] {
|
|
8414
9104
|
// return Array.isArray(item) ? item : [item];
|
|
@@ -8428,6 +9118,8 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8428
9118
|
routerInteractionAdapter;
|
|
8429
9119
|
sessionFinishedJobs = [];
|
|
8430
9120
|
authService = new PlaceAuthService();
|
|
9121
|
+
_ready$ = this.registerDisposable(new DelegatingValueModel().withDefault(true));
|
|
9122
|
+
ready$ = this._ready$.readonly$;
|
|
8431
9123
|
constructor(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
|
|
8432
9124
|
super();
|
|
8433
9125
|
this.angularRouter = angularRouter;
|
|
@@ -8449,7 +9141,7 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8449
9141
|
});
|
|
8450
9142
|
const { chain } = Dsl.disposeWith(this);
|
|
8451
9143
|
this.navigationInProgress$ = chain(this.navigationSession$).isNotNil();
|
|
8452
|
-
this.interactionSyncInProgress$ = chain(this.navigationSession$).pluck("isInteractionSync");
|
|
9144
|
+
this.interactionSyncInProgress$ = chain(this.navigationSession$).pluck("isInteractionSync").otherwise(false);
|
|
8453
9145
|
const idleStateName = chain(this.interactionService.active).map(active => active ? "IdleDuringInteraction" : "Idle");
|
|
8454
9146
|
this.navigationSessionName$ = chain(this.navigationSession$)
|
|
8455
9147
|
.pluck("name")
|
|
@@ -8493,10 +9185,13 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8493
9185
|
// the back button was clicked.
|
|
8494
9186
|
angularLocation.onUrlChange(url => this.onUrlChanged(url));
|
|
8495
9187
|
}
|
|
8496
|
-
|
|
9188
|
+
postponeRoutingUntil(condition$) {
|
|
9189
|
+
this._ready$.setDelegate(condition$);
|
|
9190
|
+
}
|
|
9191
|
+
async getAuthenticationFailureRedirect(activatedRoute, state) {
|
|
8497
9192
|
return this.authService.getAuthenticationFailureRedirect(activatedRoute, state);
|
|
8498
9193
|
}
|
|
8499
|
-
getAuthorisationFailureRedirectOptions(component) {
|
|
9194
|
+
async getAuthorisationFailureRedirectOptions(component) {
|
|
8500
9195
|
return this.authService.getAuthorisationFailureRedirectOptions(component);
|
|
8501
9196
|
}
|
|
8502
9197
|
get navigationSession() {
|
|
@@ -8508,23 +9203,20 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8508
9203
|
isNavigating() {
|
|
8509
9204
|
return this.navigationInProgress$.value;
|
|
8510
9205
|
}
|
|
8511
|
-
|
|
8512
|
-
const {
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
9206
|
+
async waitUntilRouterReady() {
|
|
9207
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9208
|
+
await waitUntil(this.ready$).becomesTruthy();
|
|
9209
|
+
return this;
|
|
9210
|
+
}
|
|
9211
|
+
async waitUntilIdle() {
|
|
9212
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9213
|
+
await waitUntil(this.navigationInProgress$).becomesFalsey();
|
|
9214
|
+
return this;
|
|
8519
9215
|
}
|
|
8520
9216
|
async waitActivitiesSynchronised() {
|
|
8521
|
-
const {
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
initialValue: "evaluate",
|
|
8525
|
-
once: true
|
|
8526
|
-
});
|
|
8527
|
-
});
|
|
9217
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9218
|
+
await waitUntil(this.interactionSyncInProgress$).becomesFalsey();
|
|
9219
|
+
return this;
|
|
8528
9220
|
}
|
|
8529
9221
|
// @Trace()
|
|
8530
9222
|
onPopState(event) {
|
|
@@ -8710,7 +9402,7 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8710
9402
|
return Visit.goto(visitOrPlaceComponent, params);
|
|
8711
9403
|
}
|
|
8712
9404
|
}
|
|
8713
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, deps: [{ token: i1$
|
|
9405
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, deps: [{ token: i1$5.Router }, { token: i1$1.Location }, { token: InteractionService }, { token: UrlService }, { token: PlaceHistory }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
8714
9406
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, providedIn: "root" });
|
|
8715
9407
|
}
|
|
8716
9408
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, decorators: [{
|
|
@@ -8718,7 +9410,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
8718
9410
|
args: [{
|
|
8719
9411
|
providedIn: "root"
|
|
8720
9412
|
}]
|
|
8721
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9413
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: i1$1.Location }, { type: InteractionService }, { type: UrlService }, { type: PlaceHistory }]; } });
|
|
8722
9414
|
|
|
8723
9415
|
class ActivityTitleComponent extends DisposableComponent {
|
|
8724
9416
|
_color;
|
|
@@ -8740,11 +9432,11 @@ class ActivityTitleComponent extends DisposableComponent {
|
|
|
8740
9432
|
return this._color;
|
|
8741
9433
|
}
|
|
8742
9434
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityTitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
8743
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: { hasTransparentBackground: "hasTransparentBackground", color: "color" }, host: { properties: { "class.transparent-background": "this.hasTransparentBackground", "attr.color": "this.color" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:
|
|
9435
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: { hasTransparentBackground: "hasTransparentBackground", color: "color" }, host: { properties: { "class.transparent-background": "this.hasTransparentBackground", "attr.color": "this.color" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<span style=\"flex:1\"></span>\n<ng-content select=\"[slot='title-end']\"></ng-content>\n", styles: [":host{display:flex;flex-direction:row;align-items:center}\n"] });
|
|
8744
9436
|
}
|
|
8745
9437
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityTitleComponent, decorators: [{
|
|
8746
9438
|
type: Component,
|
|
8747
|
-
args: [{ selector: 'aup-activity-title', template: "<ng-content></ng-content>\n", styles: [":host{display:
|
|
9439
|
+
args: [{ selector: 'aup-activity-title', template: "<ng-content></ng-content>\n<span style=\"flex:1\"></span>\n<ng-content select=\"[slot='title-end']\"></ng-content>\n", styles: [":host{display:flex;flex-direction:row;align-items:center}\n"] }]
|
|
8748
9440
|
}], propDecorators: { hasTransparentBackground: [{
|
|
8749
9441
|
type: Input
|
|
8750
9442
|
}, {
|
|
@@ -8765,7 +9457,7 @@ class AlertDialogComponent extends AbstractDialogComponent {
|
|
|
8765
9457
|
});
|
|
8766
9458
|
}
|
|
8767
9459
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AlertDialogComponent, deps: [{ token: ACTIVITY_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
8768
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AlertDialogComponent, selector: "aup-alert-dialog", usesInheritance: true, ngImport: i0, template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\"></aup-activity-actions>\n", styles: [":host{display:block}.mat-mdc-dialog-content{margin:0;padding:0}.mat-mdc-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MarkdownComponent, selector: "aup-markdown, [aupMarkdown]", inputs: ["content$", "content", "inline"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align"] }, { kind: "component", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: ["hasTransparentBackground", "color"] }, { kind: "component", type: ActivityBodyComponent, selector: "aup-activity-body", inputs: ["fullWidth"] }] });
|
|
9460
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AlertDialogComponent, selector: "aup-alert-dialog", usesInheritance: true, ngImport: i0, template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\"></aup-activity-actions>\n", styles: [":host{display:block}.mat-mdc-dialog-content{margin:0;padding:0}.mat-mdc-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MarkdownComponent, selector: "aup-markdown, [aupMarkdown]", inputs: ["content$", "content", "inline"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align", "alignContent"] }, { kind: "component", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: ["hasTransparentBackground", "color"] }, { kind: "component", type: ActivityBodyComponent, selector: "aup-activity-body", inputs: ["fullWidth"] }] });
|
|
8769
9461
|
}
|
|
8770
9462
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AlertDialogComponent, decorators: [{
|
|
8771
9463
|
type: Component,
|
|
@@ -8785,7 +9477,7 @@ class ConfirmThenDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8785
9477
|
});
|
|
8786
9478
|
}
|
|
8787
9479
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenDialogComponent, deps: [{ token: ACTIVITY_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
8788
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ConfirmThenDialogComponent, selector: "aup-confirmation-then-dialog", usesInheritance: true, ngImport: i0, template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n", styles: [":host{display:block}.mat-mdc-dialog-content{margin:0;padding:0}.mat-mdc-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MarkdownComponent, selector: "aup-markdown, [aupMarkdown]", inputs: ["content$", "content", "inline"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align"] }, { kind: "component", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: ["hasTransparentBackground", "color"] }, { kind: "component", type: ActivityBodyComponent, selector: "aup-activity-body", inputs: ["fullWidth"] }] });
|
|
9480
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ConfirmThenDialogComponent, selector: "aup-confirmation-then-dialog", usesInheritance: true, ngImport: i0, template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n", styles: [":host{display:block}.mat-mdc-dialog-content{margin:0;padding:0}.mat-mdc-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MarkdownComponent, selector: "aup-markdown, [aupMarkdown]", inputs: ["content$", "content", "inline"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align", "alignContent"] }, { kind: "component", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: ["hasTransparentBackground", "color"] }, { kind: "component", type: ActivityBodyComponent, selector: "aup-activity-body", inputs: ["fullWidth"] }] });
|
|
8789
9481
|
}
|
|
8790
9482
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenDialogComponent, decorators: [{
|
|
8791
9483
|
type: Component,
|
|
@@ -8809,7 +9501,7 @@ class ConfirmThenExecuteDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8809
9501
|
});
|
|
8810
9502
|
}
|
|
8811
9503
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenExecuteDialogComponent, deps: [{ token: ACTIVITY_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
8812
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ConfirmThenExecuteDialogComponent, selector: "aup-confirmation-execute-dialog", usesInheritance: true, ngImport: i0, template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n", styles: [":host{display:block}.mat-mdc-dialog-content{margin:0;padding:0}.mat-mdc-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MarkdownComponent, selector: "aup-markdown, [aupMarkdown]", inputs: ["content$", "content", "inline"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align"] }, { kind: "component", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: ["hasTransparentBackground", "color"] }, { kind: "component", type: ActivityBodyComponent, selector: "aup-activity-body", inputs: ["fullWidth"] }] });
|
|
9504
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ConfirmThenExecuteDialogComponent, selector: "aup-confirmation-execute-dialog", usesInheritance: true, ngImport: i0, template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n", styles: [":host{display:block}.mat-mdc-dialog-content{margin:0;padding:0}.mat-mdc-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MarkdownComponent, selector: "aup-markdown, [aupMarkdown]", inputs: ["content$", "content", "inline"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align", "alignContent"] }, { kind: "component", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: ["hasTransparentBackground", "color"] }, { kind: "component", type: ActivityBodyComponent, selector: "aup-activity-body", inputs: ["fullWidth"] }] });
|
|
8813
9505
|
}
|
|
8814
9506
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenExecuteDialogComponent, decorators: [{
|
|
8815
9507
|
type: Component,
|
|
@@ -8829,7 +9521,7 @@ class ConfirmationDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8829
9521
|
});
|
|
8830
9522
|
}
|
|
8831
9523
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: ACTIVITY_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
8832
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ConfirmationDialogComponent, selector: "aup-confirmation-dialog", usesInheritance: true, ngImport: i0, template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n\n", styles: [":host{display:block}.mat-mdc-dialog-content{margin:0;padding:0}.mat-mdc-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MarkdownComponent, selector: "aup-markdown, [aupMarkdown]", inputs: ["content$", "content", "inline"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align"] }, { kind: "component", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: ["hasTransparentBackground", "color"] }, { kind: "component", type: ActivityBodyComponent, selector: "aup-activity-body", inputs: ["fullWidth"] }] });
|
|
9524
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ConfirmationDialogComponent, selector: "aup-confirmation-dialog", usesInheritance: true, ngImport: i0, template: "<aup-activity-title *ngIf=\"title\" [color]=\"color\"><aup-markdown [content]=\"title\" [inline]=\"true\"></aup-markdown></aup-activity-title>\n<aup-activity-body>\n <aup-markdown *ngFor=\"let line of content\" [content]=\"line\"></aup-markdown>\n</aup-activity-body>\n<aup-activity-actions [confirmFace]=\"confirmFace\" [cancelFace]=\"cancelFace\"></aup-activity-actions>\n\n", styles: [":host{display:block}.mat-mdc-dialog-content{margin:0;padding:0}.mat-mdc-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MarkdownComponent, selector: "aup-markdown, [aupMarkdown]", inputs: ["content$", "content", "inline"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align", "alignContent"] }, { kind: "component", type: ActivityTitleComponent, selector: "aup-activity-title", inputs: ["hasTransparentBackground", "color"] }, { kind: "component", type: ActivityBodyComponent, selector: "aup-activity-body", inputs: ["fullWidth"] }] });
|
|
8833
9525
|
}
|
|
8834
9526
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
8835
9527
|
type: Component,
|
|
@@ -9009,6 +9701,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9009
9701
|
tabs;
|
|
9010
9702
|
activityOutlets;
|
|
9011
9703
|
activityRefs = [];
|
|
9704
|
+
animationDuration = "500ms";
|
|
9012
9705
|
_identifier;
|
|
9013
9706
|
_deferredCleanUp;
|
|
9014
9707
|
interactionServiceApi;
|
|
@@ -9021,6 +9714,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9021
9714
|
busy = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
9022
9715
|
syncTabsJob = undefined;
|
|
9023
9716
|
stable$;
|
|
9717
|
+
wasActive = false;
|
|
9024
9718
|
constructor(placeRouter) {
|
|
9025
9719
|
super();
|
|
9026
9720
|
this.placeRouter = placeRouter;
|
|
@@ -9057,7 +9751,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9057
9751
|
* Returns true if an activity is currently running.
|
|
9058
9752
|
*/
|
|
9059
9753
|
isActive() {
|
|
9060
|
-
|
|
9754
|
+
const isActive = this.getActiveActivityCount() > 0;
|
|
9755
|
+
// if (this.wasActive !== isActive) {
|
|
9756
|
+
// console.log({was: this.wasActive, is: isActive});
|
|
9757
|
+
// }
|
|
9758
|
+
// this.wasActive = isActive
|
|
9759
|
+
return isActive;
|
|
9061
9760
|
}
|
|
9062
9761
|
registerDisposable(disposable) {
|
|
9063
9762
|
return this.garbage.registerDisposable(disposable);
|
|
@@ -9140,7 +9839,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9140
9839
|
// by activity index)
|
|
9141
9840
|
setTimeout(() => {
|
|
9142
9841
|
this.activityRefs = []; // we have to do it after the animation timeout or the activity disappears before the animatin finsihes
|
|
9143
|
-
}, this.
|
|
9842
|
+
}, this.getTabAnimationDurationInMillis());
|
|
9144
9843
|
const promise = this.interactionServiceApi.notifyFinished(this);
|
|
9145
9844
|
this._deferredCleanUp = promise
|
|
9146
9845
|
.finally(() => {
|
|
@@ -9166,7 +9865,6 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9166
9865
|
/**
|
|
9167
9866
|
* Synchronises the selected tab index.
|
|
9168
9867
|
*/
|
|
9169
|
-
// @Trace()
|
|
9170
9868
|
synchroniseSelectedTabIndex() {
|
|
9171
9869
|
assert.isTruthy(this.isActive());
|
|
9172
9870
|
const previousIndex = this.tabs.selectedIndex;
|
|
@@ -9178,10 +9876,10 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9178
9876
|
activityRef.setFocused(false);
|
|
9179
9877
|
this.busy.setDelegate(activityRef.activityBusy);
|
|
9180
9878
|
this.tabs.selectedIndex = newIndex;
|
|
9181
|
-
if (this.ready$.value) {
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
}
|
|
9879
|
+
// if (this.ready$.value) {
|
|
9880
|
+
// // Note: We're not using the animation done event as it's firing almost immeadiately.
|
|
9881
|
+
// setTimeout(() => this.finaliseActivityStates(), animate ? this.getTabAnimationDurationInMillis() : 0);
|
|
9882
|
+
// }
|
|
9185
9883
|
}
|
|
9186
9884
|
}
|
|
9187
9885
|
finaliseActivityStates() {
|
|
@@ -9195,7 +9893,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9195
9893
|
return this.activityOutlets.toArray()[this.tabs.selectedIndex];
|
|
9196
9894
|
}
|
|
9197
9895
|
getTabAnimationDuration() {
|
|
9198
|
-
const
|
|
9896
|
+
// const s = this._started$.value ? this.animationDuration : "0";
|
|
9897
|
+
// return s
|
|
9898
|
+
return this.animationDuration;
|
|
9899
|
+
}
|
|
9900
|
+
getTabAnimationDurationInMillis() {
|
|
9901
|
+
const match = this.animationDuration.match(/(\d+)(.*)/);
|
|
9199
9902
|
const numericValue = parseFloat(match[1]);
|
|
9200
9903
|
switch (match[2].trim()) {
|
|
9201
9904
|
case "ms":
|
|
@@ -9221,12 +9924,16 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9221
9924
|
}
|
|
9222
9925
|
}, 75);
|
|
9223
9926
|
}
|
|
9927
|
+
onAnimationDone() {
|
|
9928
|
+
this._started$.value = true;
|
|
9929
|
+
this.finaliseActivityStates();
|
|
9930
|
+
}
|
|
9224
9931
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, deps: [{ token: PlaceRouter }], target: i0.ɵɵFactoryTarget.Component });
|
|
9225
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: { dynamicHeight: "dynamicHeight" }, viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$
|
|
9932
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: { dynamicHeight: "dynamicHeight", animationDuration: "animationDuration" }, viewQueries: [{ propertyName: "tabs", first: true, predicate: ["tabs"], descendants: true, static: true }, { propertyName: "activityOutlets", predicate: ActivityOutletComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$2.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: BusyOverlayComponent, selector: "aup-busy-overlay", inputs: ["busy$", "busy"] }, { kind: "directive", type: i5$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: ActivityOutletComponent, selector: "aup-activity-outlet", inputs: ["nestedInteractionContext", "activityRef"] }] });
|
|
9226
9933
|
}
|
|
9227
9934
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, decorators: [{
|
|
9228
9935
|
type: Component,
|
|
9229
|
-
args: [{ selector: "aup-activity-container", template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"] }]
|
|
9936
|
+
args: [{ selector: "aup-activity-container", template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\"\n [animationDuration]=\"getTabAnimationDuration()\"\n (animationDone)=\"onAnimationDone()\"\n>\n <mat-tab *ngFor=\"let activityRef of activityRefs; let i = index; trackBy: activityIndex\">\n <aup-busy-overlay [busy$]=\"busy\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <!--\n We have issues where angular is triggering a leave animation when an\n new activity is started, but is not running the enter animation\n when it is scrolled back into view. So we track the tab changes and\n disable all animations inside the tab while we're animating.\n -->\n <div class=\"activity-outlet-wrapper\" [@.disabled]=\"!activityRef.focused\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"activityRef\"></aup-activity-outlet>\n </div>\n </aup-busy-overlay>\n </mat-tab>\n</mat-tab-group>\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-busy-overlay{flex:1}.activity-outlet-wrapper{flex:1}\n"] }]
|
|
9230
9937
|
}], ctorParameters: function () { return [{ type: PlaceRouter }]; }, propDecorators: { dynamicHeight: [{
|
|
9231
9938
|
type: Input
|
|
9232
9939
|
}], tabs: [{
|
|
@@ -9235,6 +9942,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9235
9942
|
}], activityOutlets: [{
|
|
9236
9943
|
type: ViewChildren,
|
|
9237
9944
|
args: [ActivityOutletComponent]
|
|
9945
|
+
}], animationDuration: [{
|
|
9946
|
+
type: Input
|
|
9238
9947
|
}] } });
|
|
9239
9948
|
|
|
9240
9949
|
class AbstractActivityTriggerComponent extends DisposableComponent {
|
|
@@ -9335,14 +10044,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9335
10044
|
args: ['class.active']
|
|
9336
10045
|
}] } });
|
|
9337
10046
|
|
|
9338
|
-
const
|
|
10047
|
+
const INTERACTION_CONTEXT = new InjectionToken('interactionContext');
|
|
10048
|
+
|
|
10049
|
+
const cssDurationRegex$1 = /(\d+)(m?s)/;
|
|
9339
10050
|
/**
|
|
9340
10051
|
* @example
|
|
9341
10052
|
* <aup-in-place-interaction-context #inPlaceInteractionContext>
|
|
9342
10053
|
* </aup-in-place-interaction-context>
|
|
9343
10054
|
*
|
|
9344
10055
|
* in your component
|
|
9345
|
-
* @ViewChild(
|
|
10056
|
+
* @ViewChild(InPlaceInteractionContextComponent)
|
|
9346
10057
|
* interactionContext: InteractionContext;
|
|
9347
10058
|
*
|
|
9348
10059
|
*
|
|
@@ -9361,11 +10072,13 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9361
10072
|
* active interactions.
|
|
9362
10073
|
*/
|
|
9363
10074
|
syncWithRoutes = true;
|
|
10075
|
+
started = new EventEmitter();
|
|
10076
|
+
finished = new EventEmitter();
|
|
9364
10077
|
get animationDuration() {
|
|
9365
10078
|
return this.animateFirstActivity ? (this.tabConfig?.animationDuration || "500ms") : "0ms";
|
|
9366
10079
|
}
|
|
9367
10080
|
get animationDurationMillis() {
|
|
9368
|
-
const result = cssDurationRegex.exec(this.animationDuration);
|
|
10081
|
+
const result = cssDurationRegex$1.exec(this.animationDuration);
|
|
9369
10082
|
if (!result) {
|
|
9370
10083
|
lang.illegalState(`unsupported css duration: ${this.animationDuration}`);
|
|
9371
10084
|
}
|
|
@@ -9387,11 +10100,16 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9387
10100
|
this.interactionService.registerInplaceInteractionContext(this);
|
|
9388
10101
|
}
|
|
9389
10102
|
else {
|
|
10103
|
+
const self = this;
|
|
9390
10104
|
this.activityContainerComponent.initialise("dont-care", {
|
|
9391
10105
|
async notifyActive(interactionContext) {
|
|
10106
|
+
self.started.emit();
|
|
9392
10107
|
return undefined;
|
|
9393
10108
|
},
|
|
9394
10109
|
async notifyFinished(interactionContext) {
|
|
10110
|
+
// I've noticed some rendering fails when returning the the transcluded content we'll fire an event
|
|
10111
|
+
// so components can do stuff if they need to.
|
|
10112
|
+
self.started.emit();
|
|
9395
10113
|
return undefined;
|
|
9396
10114
|
}
|
|
9397
10115
|
});
|
|
@@ -9438,11 +10156,15 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9438
10156
|
}
|
|
9439
10157
|
}
|
|
9440
10158
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InPlaceInteractionContextComponent, deps: [{ token: MAT_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
9441
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: { animateFirstActivity: "animateFirstActivity", syncWithRoutes: "syncWithRoutes" },
|
|
10159
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: { animateFirstActivity: "animateFirstActivity", syncWithRoutes: "syncWithRoutes" }, outputs: { started: "started", finished: "finished" }, host: { properties: { "class.active": "this.active" } }, providers: [
|
|
10160
|
+
{ provide: INTERACTION_CONTEXT, useExisting: InPlaceInteractionContextComponent }
|
|
10161
|
+
], viewQueries: [{ propertyName: "activityContainerComponent", first: true, predicate: ["activityContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group no-tab-header [selectedIndex]=\"isActive() ? 1 : 0\" full-height-tabs\n (selectedTabChange)=\"onTabChanged($event)\"\n [dynamicHeight]=\"false\"\n [animationDuration]=\"animationDuration\">\n <mat-tab>\n <ng-content></ng-content>\n </mat-tab>\n <mat-tab>\n <aup-activity-container #activityContainer [dynamicHeight]=\"false\"></aup-activity-container>\n </mat-tab>\n</mat-tab-group>\n\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-activity-container{flex:1}\n"], dependencies: [{ kind: "component", type: i3$2.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i3$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "component", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: ["dynamicHeight", "animationDuration"] }] });
|
|
9442
10162
|
}
|
|
9443
10163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InPlaceInteractionContextComponent, decorators: [{
|
|
9444
10164
|
type: Component,
|
|
9445
|
-
args: [{ selector: "aup-in-place-interaction-context",
|
|
10165
|
+
args: [{ selector: "aup-in-place-interaction-context", providers: [
|
|
10166
|
+
{ provide: INTERACTION_CONTEXT, useExisting: InPlaceInteractionContextComponent }
|
|
10167
|
+
], template: "<mat-tab-group no-tab-header [selectedIndex]=\"isActive() ? 1 : 0\" full-height-tabs\n (selectedTabChange)=\"onTabChanged($event)\"\n [dynamicHeight]=\"false\"\n [animationDuration]=\"animationDuration\">\n <mat-tab>\n <ng-content></ng-content>\n </mat-tab>\n <mat-tab>\n <aup-activity-container #activityContainer [dynamicHeight]=\"false\"></aup-activity-container>\n </mat-tab>\n</mat-tab-group>\n\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-activity-container{flex:1}\n"] }]
|
|
9446
10168
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
9447
10169
|
type: Inject,
|
|
9448
10170
|
args: [MAT_TABS_CONFIG]
|
|
@@ -9455,6 +10177,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9455
10177
|
type: Input
|
|
9456
10178
|
}], syncWithRoutes: [{
|
|
9457
10179
|
type: Input
|
|
10180
|
+
}], started: [{
|
|
10181
|
+
type: Output
|
|
10182
|
+
}], finished: [{
|
|
10183
|
+
type: Output
|
|
9458
10184
|
}], active: [{
|
|
9459
10185
|
type: HostBinding,
|
|
9460
10186
|
args: ["class.active"]
|
|
@@ -9469,7 +10195,7 @@ class InlineActivityTriggerComponent extends AbstractActivityTriggerComponent {
|
|
|
9469
10195
|
super();
|
|
9470
10196
|
}
|
|
9471
10197
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineActivityTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9472
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InlineActivityTriggerComponent, selector: "aup-inline-activity-trigger", viewQueries: [{ propertyName: "_interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\">\n <aup-command [command]=\"startActivityCommand\" [face$]=\"face$\" [alignFace]=\"alignFace\"></aup-command>\n</aup-in-place-interaction-context>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"] }] });
|
|
10198
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InlineActivityTriggerComponent, selector: "aup-inline-activity-trigger", viewQueries: [{ propertyName: "_interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\">\n <aup-command [command]=\"startActivityCommand\" [face$]=\"face$\" [alignFace]=\"alignFace\"></aup-command>\n</aup-in-place-interaction-context>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"], outputs: ["started", "finished"] }] });
|
|
9473
10199
|
}
|
|
9474
10200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineActivityTriggerComponent, decorators: [{
|
|
9475
10201
|
type: Component,
|
|
@@ -9593,7 +10319,7 @@ class PopupInteractionContextComponent extends DisposableComponent {
|
|
|
9593
10319
|
isActive() {
|
|
9594
10320
|
return this.interactionContext && this.interactionContext.isActive();
|
|
9595
10321
|
}
|
|
9596
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
10322
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, deps: [{ token: i0.ElementRef }, { token: i1$6.Overlay }, { token: i1$6.CdkScrollable, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
9597
10323
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: PopupInteractionContextComponent, selector: "aup-popup-interaction-context", inputs: { anchorX: "anchorX", anchorY: "anchorY", cancelOnEscape$: "cancelOnEscape$", cancelOnEscape: "cancelOnEscape" }, host: { properties: { "class.interaction-active": "this.active" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}:host::ng-deep .popup-interaction-context-backdrop{background-color:#0000}\n"] });
|
|
9598
10324
|
}
|
|
9599
10325
|
__decorate([
|
|
@@ -9607,7 +10333,7 @@ __decorate([
|
|
|
9607
10333
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, decorators: [{
|
|
9608
10334
|
type: Component,
|
|
9609
10335
|
args: [{ selector: 'aup-popup-interaction-context', template: "<ng-content></ng-content>\n", styles: [":host{display:inline-block}:host.interaction-active{background:rgba(0,0,0,.05)}:host::ng-deep .popup-interaction-context-backdrop{background-color:#0000}\n"] }]
|
|
9610
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$
|
|
10336
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$6.Overlay }, { type: i1$6.CdkScrollable, decorators: [{
|
|
9611
10337
|
type: Optional
|
|
9612
10338
|
}, {
|
|
9613
10339
|
type: SkipSelf
|
|
@@ -9692,7 +10418,7 @@ class AddCardActivityComponent extends AbstractActivityTriggerComponent {
|
|
|
9692
10418
|
return this.interactionStyle === 'inline';
|
|
9693
10419
|
}
|
|
9694
10420
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddCardActivityComponent, deps: [{ token: InteractionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
9695
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AddCardActivityComponent, selector: "aup-add-card-activity", inputs: { interactionStyle: "interactionStyle", renderAs: "renderAs" }, host: { properties: { "class": "this.activityTypeClass", "class.not-card": "this.notCard" } }, viewQueries: [{ propertyName: "inlineInteractionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\" [pectinCommand]=\"startActivityCommand\">\n <aup-command *ngIf=\"isRenderAsButton()\" [command]=\"startActivityCommand\" [face$]=\"face$\" [alignFace]=\"alignFace\"></aup-command>\n <section *ngIf=\"isRenderAsCard()\" class=\"face-wrapper\">\n <aup-command-face class=\"mat-button\" [faces]=\"faceList.value\"></aup-command-face>\n </section>\n</aup-in-place-interaction-context>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;background-color:#fff}:host[interactionStyle=inline][renderas=card]:not(.active){transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=inline][renderas=card]:not(.active):hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=inline][renderas=card]:not(.active):hover{border-color:transparent;background-color:#fff;color:#0000008a}:host[interactionStyle=modal][renderas=card]{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=modal][renderas=card]:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=modal][renderas=card]:hover{border-color:transparent;background-color:#fff;color:#0000008a}:host-context(aup-card-container)[renderas=button]{align-self:start}section.face-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}aup-in-place-interaction-context{flex:1}aup-in-place-interaction-context.active{border:3px solid #6273c7;border-radius:4px;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }, { kind: "component", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"] }] });
|
|
10421
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AddCardActivityComponent, selector: "aup-add-card-activity", inputs: { interactionStyle: "interactionStyle", renderAs: "renderAs" }, host: { properties: { "class": "this.activityTypeClass", "class.not-card": "this.notCard" } }, viewQueries: [{ propertyName: "inlineInteractionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\" [pectinCommand]=\"startActivityCommand\">\n <aup-command *ngIf=\"isRenderAsButton()\" [command]=\"startActivityCommand\" [face$]=\"face$\" [alignFace]=\"alignFace\"></aup-command>\n <section *ngIf=\"isRenderAsCard()\" class=\"face-wrapper\">\n <aup-command-face class=\"mat-button\" [faces]=\"faceList.value\"></aup-command-face>\n </section>\n</aup-in-place-interaction-context>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch;background-color:#fff}:host[interactionStyle=inline][renderas=card]:not(.active){transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=inline][renderas=card]:not(.active):hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=inline][renderas=card]:not(.active):hover{border-color:transparent;background-color:#fff;color:#0000008a}:host[interactionStyle=modal][renderas=card]{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}:host[interactionStyle=modal][renderas=card]:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}:host[interactionStyle=modal][renderas=card]:hover{border-color:transparent;background-color:#fff;color:#0000008a}:host-context(aup-card-container)[renderas=button]{align-self:start}section.face-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}aup-in-place-interaction-context{flex:1}aup-in-place-interaction-context.active{border:3px solid #6273c7;border-radius:4px;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }, { kind: "component", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"], outputs: ["started", "finished"] }] });
|
|
9696
10422
|
}
|
|
9697
10423
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddCardActivityComponent, decorators: [{
|
|
9698
10424
|
type: Component,
|
|
@@ -9768,7 +10494,7 @@ class AddItemInteractionContextComponent extends DisposableComponent {
|
|
|
9768
10494
|
return this.interactionContext.startActivity(activityType, data);
|
|
9769
10495
|
}
|
|
9770
10496
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddItemInteractionContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9771
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AddItemInteractionContextComponent, selector: "aup-add-item-interaction-context", inputs: { label: "label", icon: "icon", activityClass: "activityClass", activityData: "activityData", addCommand: "addCommand" }, host: { properties: { "class.interaction-active": "this.active", "tabindex": "this.tabindex" } }, viewQueries: [{ propertyName: "interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\">\n <a part=\"link\" class=\"link\" [pectinCommand]=\"clickCommand\"><aup-icon [icon]=\"icon\"></aup-icon> {{label}}</a>\n</aup-in-place-interaction-context>\n", styles: [":host{--def-link-color: var(--link-color, currentColor);--def-link-color-hover: var(--link-color-hover, currentColor);--def-link-background: var(--link-background, transparent);--def-link-background-hover: var(--link-background-hover, rgba(0, 0, 0, .05));--def-link-border-radius: var(--link-border-radius, 4px);--def-link-padding: var(--link-padding, calc(var(--aup-default-padding) / 2));display:flex;flex-direction:column;border-radius:var(--def-link-border-radius);box-sizing:border-box;outline:none}:host:hover a.link{color:var(--def-link-color-hover);background-color:var(--def-link-background-hover)}aup-in-place-interaction-context{border-radius:var(--def-link-border-radius)}a.link{display:flex;flex-direction:row;align-items:center;border-radius:var(--def-link-border-radius);color:var(--def-link-color);background:var(--def-link-background);padding:var(--def-link-padding);cursor:pointer;text-decoration:none}a.link mat-icon{margin-right:8px}\n"], dependencies: [{ kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }, { kind: "component", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"] }] });
|
|
10497
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AddItemInteractionContextComponent, selector: "aup-add-item-interaction-context", inputs: { label: "label", icon: "icon", activityClass: "activityClass", activityData: "activityData", addCommand: "addCommand" }, host: { properties: { "class.interaction-active": "this.active", "tabindex": "this.tabindex" } }, viewQueries: [{ propertyName: "interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<aup-in-place-interaction-context [animateFirstActivity]=\"false\">\n <a part=\"link\" class=\"link\" [pectinCommand]=\"clickCommand\"><aup-icon [icon]=\"icon\"></aup-icon> {{label}}</a>\n</aup-in-place-interaction-context>\n", styles: [":host{--def-link-color: var(--link-color, currentColor);--def-link-color-hover: var(--link-color-hover, currentColor);--def-link-background: var(--link-background, transparent);--def-link-background-hover: var(--link-background-hover, rgba(0, 0, 0, .05));--def-link-border-radius: var(--link-border-radius, 4px);--def-link-padding: var(--link-padding, calc(var(--aup-default-padding) / 2));display:flex;flex-direction:column;border-radius:var(--def-link-border-radius);box-sizing:border-box;outline:none}:host:hover a.link{color:var(--def-link-color-hover);background-color:var(--def-link-background-hover)}aup-in-place-interaction-context{border-radius:var(--def-link-border-radius)}a.link{display:flex;flex-direction:row;align-items:center;border-radius:var(--def-link-border-radius);color:var(--def-link-color);background:var(--def-link-background);padding:var(--def-link-padding);cursor:pointer;text-decoration:none}a.link mat-icon{margin-right:8px}\n"], dependencies: [{ kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }, { kind: "component", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"], outputs: ["started", "finished"] }] });
|
|
9772
10498
|
}
|
|
9773
10499
|
__decorate([
|
|
9774
10500
|
Proxify(),
|
|
@@ -9907,12 +10633,14 @@ class StringInputActivity extends InputActivity {
|
|
|
9907
10633
|
[label]="activityData.label"
|
|
9908
10634
|
[placeholder]="activityData.placeholder"
|
|
9909
10635
|
[command.enter]="confirmCommand"
|
|
9910
|
-
[command.escape]="cancelCommand"
|
|
10636
|
+
[command.escape]="cancelCommand"
|
|
10637
|
+
[dense]="true"
|
|
10638
|
+
></aup-string-input>
|
|
9911
10639
|
<aup-activity-actions [layout]="layout" align="end"
|
|
9912
10640
|
[confirmFace]="confirmFace"
|
|
9913
10641
|
[cancelFace]="cancelFace"
|
|
9914
10642
|
></aup-activity-actions>
|
|
9915
|
-
`, isInline: true, dependencies: [{ kind: "component", type: StringInputComponent, selector: "aup-string-input", inputs: ["autocomplete", "enableClear$", "enableClear", "iconPrefix"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align"] }] });
|
|
10643
|
+
`, isInline: true, dependencies: [{ kind: "component", type: StringInputComponent, selector: "aup-string-input", inputs: ["autocomplete", "enableClear$", "enableClear", "iconPrefix", "suffixCommand"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align", "alignContent"] }] });
|
|
9916
10644
|
}
|
|
9917
10645
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputActivity, decorators: [{
|
|
9918
10646
|
type: Component,
|
|
@@ -9923,7 +10651,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9923
10651
|
[label]="activityData.label"
|
|
9924
10652
|
[placeholder]="activityData.placeholder"
|
|
9925
10653
|
[command.enter]="confirmCommand"
|
|
9926
|
-
[command.escape]="cancelCommand"
|
|
10654
|
+
[command.escape]="cancelCommand"
|
|
10655
|
+
[dense]="true"
|
|
10656
|
+
></aup-string-input>
|
|
9927
10657
|
<aup-activity-actions [layout]="layout" align="end"
|
|
9928
10658
|
[confirmFace]="confirmFace"
|
|
9929
10659
|
[cancelFace]="cancelFace"
|
|
@@ -10106,7 +10836,7 @@ class InlineStringEditorComponent extends DisposableComponent {
|
|
|
10106
10836
|
return !this.editingEnabled$.value;
|
|
10107
10837
|
}
|
|
10108
10838
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineStringEditorComponent, deps: [{ token: InteractionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10109
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InlineStringEditorComponent, selector: "aup-inline-string-editor", inputs: { editorModel: "editorModel", facesModel: "facesModel", faces: "faces", label: "label", placeHolder: "placeHolder", placeHolder$: "placeHolder$" }, host: { properties: { "class.disabled": "this.isDisabled" } }, viewQueries: [{ propertyName: "interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container\" *ngIf=\"!editorModel.isEditing()\">\n <mat-form-field floatLabel=\"always\" (click)=\"startEdit()\"\n [class.editable]=\"editingEnabled$.value\" [class.empty]=\"isEmpty()\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeHolder}}\"\n [ngModel]=\"editorModel.valueModel.value\"\n [disabled]=\"true\"\n >\n <!-- <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>-->\n <!-- <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>-->\n <!-- <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>-->\n </mat-form-field>\n <aup-command *ngIf=\"editCommand.enabled$.value\" [command]=\"editCommand\" [face$]=\"editFaceModel\"></aup-command>\n</div>\n<aup-in-place-interaction-context [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "component", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"] }] });
|
|
10839
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InlineStringEditorComponent, selector: "aup-inline-string-editor", inputs: { editorModel: "editorModel", facesModel: "facesModel", faces: "faces", label: "label", placeHolder: "placeHolder", placeHolder$: "placeHolder$" }, host: { properties: { "class.disabled": "this.isDisabled" } }, viewQueries: [{ propertyName: "interactionContext", first: true, predicate: InPlaceInteractionContextComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"container\" *ngIf=\"!editorModel.isEditing()\">\n <mat-form-field floatLabel=\"always\" (click)=\"startEdit()\"\n [class.editable]=\"editingEnabled$.value\" [class.empty]=\"isEmpty()\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeHolder}}\"\n [ngModel]=\"editorModel.valueModel.value\"\n [disabled]=\"true\"\n >\n <!-- <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>-->\n <!-- <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>-->\n <!-- <aup-icon *ngIf=\"iconPrefix\" matPrefix [icon]=\"iconPrefix\"></aup-icon>-->\n </mat-form-field>\n <aup-command *ngIf=\"editCommand.enabled$.value\" [command]=\"editCommand\" [face$]=\"editFaceModel\"></aup-command>\n</div>\n<aup-in-place-interaction-context [animateFirstActivity]=\"false\"></aup-in-place-interaction-context>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }, { kind: "directive", type: i2$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "component", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: ["animateFirstActivity", "syncWithRoutes"], outputs: ["started", "finished"] }] });
|
|
10110
10840
|
}
|
|
10111
10841
|
__decorate([
|
|
10112
10842
|
Proxify(),
|
|
@@ -10189,6 +10919,7 @@ class SelectInputActivity extends InputActivity {
|
|
|
10189
10919
|
[options]="options"
|
|
10190
10920
|
[optionLabelFormat]="optionLabelFormat"
|
|
10191
10921
|
[allowNil]="activityData.allowNil"
|
|
10922
|
+
[dense]="true"
|
|
10192
10923
|
>
|
|
10193
10924
|
<ng-template #nilOptionTemplate>{{activityData.nilLabel}}</ng-template>
|
|
10194
10925
|
</aup-select-input>
|
|
@@ -10196,7 +10927,7 @@ class SelectInputActivity extends InputActivity {
|
|
|
10196
10927
|
[confirmFace]="confirmFace"
|
|
10197
10928
|
[cancelFace]="cancelFace"
|
|
10198
10929
|
></aup-activity-actions>
|
|
10199
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SelectInputComponent, selector: "aup-select-input", inputs: ["options$", "options", "optionLabel", "allowNil", "optionLabelFormat"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align"] }] });
|
|
10930
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SelectInputComponent, selector: "aup-select-input", inputs: ["options$", "options", "optionLabel", "allowNil", "optionLabelFormat"] }, { kind: "component", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: ["confirmCommand", "cancelCommand", "faces", "confirmFace", "cancelFace", "style", "layout", "align", "alignContent"] }] });
|
|
10200
10931
|
}
|
|
10201
10932
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputActivity, decorators: [{
|
|
10202
10933
|
type: Component,
|
|
@@ -10211,6 +10942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10211
10942
|
[options]="options"
|
|
10212
10943
|
[optionLabelFormat]="optionLabelFormat"
|
|
10213
10944
|
[allowNil]="activityData.allowNil"
|
|
10945
|
+
[dense]="true"
|
|
10214
10946
|
>
|
|
10215
10947
|
<ng-template #nilOptionTemplate>{{activityData.nilLabel}}</ng-template>
|
|
10216
10948
|
</aup-select-input>
|
|
@@ -10222,6 +10954,186 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10222
10954
|
}]
|
|
10223
10955
|
}] });
|
|
10224
10956
|
|
|
10957
|
+
const slideDownOnEnterDef = style({
|
|
10958
|
+
opacity: 0,
|
|
10959
|
+
'height': '0',
|
|
10960
|
+
'max-height': '0',
|
|
10961
|
+
paddingTop: '0',
|
|
10962
|
+
paddingBottom: '0'
|
|
10963
|
+
});
|
|
10964
|
+
const slideLeftOnEnterDef = style({
|
|
10965
|
+
opacity: 0,
|
|
10966
|
+
'width': '0',
|
|
10967
|
+
paddingLeft: '0',
|
|
10968
|
+
paddingRight: '0'
|
|
10969
|
+
});
|
|
10970
|
+
const ZERO_WIDTH = {
|
|
10971
|
+
opacity: 0,
|
|
10972
|
+
width: '0',
|
|
10973
|
+
paddingLeft: '0',
|
|
10974
|
+
paddingRight: '0',
|
|
10975
|
+
};
|
|
10976
|
+
const ZERO_HEIGHT = {
|
|
10977
|
+
opacity: 0,
|
|
10978
|
+
height: '0',
|
|
10979
|
+
paddingTop: '0',
|
|
10980
|
+
paddingBottom: '0',
|
|
10981
|
+
};
|
|
10982
|
+
// TODO: params aren't getting customised in the view. Need to figure out the correct approach.
|
|
10983
|
+
const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
|
|
10984
|
+
transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10985
|
+
transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
10986
|
+
]);
|
|
10987
|
+
const slideDownWhenOpenAnimation = trigger('slideDownWhenOpen', [
|
|
10988
|
+
transition('closed => open', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10989
|
+
transition('open => closed', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
10990
|
+
]);
|
|
10991
|
+
const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
|
|
10992
|
+
transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10993
|
+
transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
|
|
10994
|
+
]);
|
|
10995
|
+
const slideDownAndRightOnEnterAnimation = trigger('slideDownAndRightOnEnter', [
|
|
10996
|
+
transition(':enter', [
|
|
10997
|
+
style({ overflow: "hidden", whiteSpace: "nowrap", ...ZERO_WIDTH, ...ZERO_HEIGHT }),
|
|
10998
|
+
animate('{{duration}}')
|
|
10999
|
+
], { params: { duration: '100ms' } }),
|
|
11000
|
+
transition(':leave', [
|
|
11001
|
+
style({ overflow: "hidden", whiteSpace: "nowrap" }),
|
|
11002
|
+
group([
|
|
11003
|
+
animate('{{duration}}', style(ZERO_HEIGHT)),
|
|
11004
|
+
// Hack: 100ms is too quick as it animates from * - 0 as we only see it animate the width is greater than the parent.
|
|
11005
|
+
// Not sure how to animate from * to natural new width of parent. This hack won't work for text that's just a little
|
|
11006
|
+
// bit wider than the parent as it'll fall within the parent bounds very early in the animation cycle.
|
|
11007
|
+
animate('300ms', style(ZERO_WIDTH)),
|
|
11008
|
+
])
|
|
11009
|
+
], { params: { duration: '100ms' } })
|
|
11010
|
+
]);
|
|
11011
|
+
|
|
11012
|
+
const cssDurationRegex = /(\d+)(m?s)/;
|
|
11013
|
+
/**
|
|
11014
|
+
* This interaction context remains hidden (height: 0) until it is active.
|
|
11015
|
+
* @example
|
|
11016
|
+
* <aup-slide-down-interaction-context #inPlaceInteractionContext>
|
|
11017
|
+
* </aup-slide-down-interaction-context>
|
|
11018
|
+
*
|
|
11019
|
+
* in your component
|
|
11020
|
+
* @ViewChild(SlideDownInteractionContextComponent)
|
|
11021
|
+
* interactionContext: InteractionContext;
|
|
11022
|
+
*
|
|
11023
|
+
*
|
|
11024
|
+
*/
|
|
11025
|
+
class SlideDownInteractionContextComponent extends DisposableComponent {
|
|
11026
|
+
tabConfig;
|
|
11027
|
+
activityContainerComponent;
|
|
11028
|
+
// NOTE: disabling this as I'm using the initialise callback to release the hacky height clamp.
|
|
11029
|
+
// The whole registration thing is a bit naf so I should really clean that up at some point.
|
|
11030
|
+
// /**
|
|
11031
|
+
// * If true the activity will sync with the router to enable back button support. This is a work around for
|
|
11032
|
+
// * deeply nested activities that can't be linked with the root place interactionContext hook for cancelling
|
|
11033
|
+
// * active interactions.
|
|
11034
|
+
// */
|
|
11035
|
+
// @Input()
|
|
11036
|
+
// syncWithRoutes = true;
|
|
11037
|
+
dynamicHeight = true;
|
|
11038
|
+
get active() {
|
|
11039
|
+
return this.isActive();
|
|
11040
|
+
}
|
|
11041
|
+
// Horrible hack to stop the div and activity container bouncing back for a bit in after closing. No idea why it's doing that.
|
|
11042
|
+
clampShut = true;
|
|
11043
|
+
interactionService = this.inject(InteractionService);
|
|
11044
|
+
constructor(tabConfig) {
|
|
11045
|
+
super();
|
|
11046
|
+
this.tabConfig = tabConfig;
|
|
11047
|
+
}
|
|
11048
|
+
ngAfterViewInit() {
|
|
11049
|
+
// NOTE: this is a temp work around to detach inplace contexts from the router until AUP-88 is implemented.
|
|
11050
|
+
// https://coolon.atlassian.net/browse/AUP-88?atlOrigin=eyJpIjoiOTg5YjEzZGUzZjRmNDg0NmExOWU3ZGJmMzJiNTRmNGYiLCJwIjoiaiJ9
|
|
11051
|
+
const self = this;
|
|
11052
|
+
this.activityContainerComponent.initialise("dont-care", {
|
|
11053
|
+
async notifyActive(interactionContext) {
|
|
11054
|
+
self.clampShut = false;
|
|
11055
|
+
return undefined;
|
|
11056
|
+
},
|
|
11057
|
+
async notifyFinished(interactionContext) {
|
|
11058
|
+
return undefined;
|
|
11059
|
+
}
|
|
11060
|
+
});
|
|
11061
|
+
// if (this.syncWithRoutes) {
|
|
11062
|
+
// this.interactionService.registerInplaceInteractionContext(this);
|
|
11063
|
+
// }
|
|
11064
|
+
}
|
|
11065
|
+
getAnimationState() {
|
|
11066
|
+
return {
|
|
11067
|
+
value: this.isActive() ? "open" : "closed",
|
|
11068
|
+
params: { duration: "200ms" }
|
|
11069
|
+
};
|
|
11070
|
+
}
|
|
11071
|
+
// this is a regsitration callback from the interaction service
|
|
11072
|
+
// @Trace() // webstorm says no usages... but I'm not sure.
|
|
11073
|
+
onInplaceInteractionContextRegistered(id, api) {
|
|
11074
|
+
this.activityContainerComponent.initialise(id, api);
|
|
11075
|
+
}
|
|
11076
|
+
get identifier() {
|
|
11077
|
+
return this.activityContainerComponent.identifier;
|
|
11078
|
+
}
|
|
11079
|
+
alert(alert) {
|
|
11080
|
+
return this.activityContainerComponent.alert(alert);
|
|
11081
|
+
}
|
|
11082
|
+
cancelActiveActivity() {
|
|
11083
|
+
return this.activityContainerComponent.cancelActiveActivity();
|
|
11084
|
+
}
|
|
11085
|
+
confirm(confirm) {
|
|
11086
|
+
return this.activityContainerComponent.confirm(confirm);
|
|
11087
|
+
}
|
|
11088
|
+
confirmOrReject(confirm) {
|
|
11089
|
+
return this.activityContainerComponent.confirmOrReject(confirm);
|
|
11090
|
+
}
|
|
11091
|
+
confirmThen(confirm, activityType, data) {
|
|
11092
|
+
return this.activityContainerComponent.confirmThen(confirm, activityType);
|
|
11093
|
+
}
|
|
11094
|
+
confirmThenExecute(confirm, operation) {
|
|
11095
|
+
return this.activityContainerComponent.confirmThenExecute(confirm, operation);
|
|
11096
|
+
}
|
|
11097
|
+
isActive() {
|
|
11098
|
+
return this.activityContainerComponent.isActive();
|
|
11099
|
+
}
|
|
11100
|
+
startActivity(activityType, data, options) {
|
|
11101
|
+
return this.activityContainerComponent.startActivity(activityType, data, options);
|
|
11102
|
+
}
|
|
11103
|
+
onAnimationDone() {
|
|
11104
|
+
if (!this.isActive()) {
|
|
11105
|
+
this.clampShut = true;
|
|
11106
|
+
}
|
|
11107
|
+
}
|
|
11108
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SlideDownInteractionContextComponent, deps: [{ token: MAT_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11109
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SlideDownInteractionContextComponent, selector: "aup-slide-down-interaction-context", inputs: { dynamicHeight: "dynamicHeight" }, host: { properties: { "class.active": "this.active" } }, providers: [
|
|
11110
|
+
{ provide: INTERACTION_CONTEXT, useExisting: SlideDownInteractionContextComponent }
|
|
11111
|
+
], viewQueries: [{ propertyName: "activityContainerComponent", first: true, predicate: ["activityContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [@slideDownWhenOpen]=\"getAnimationState()\" (@slideDownWhenOpen.done)=\"onAnimationDone()\" [style.max-height.px]=\"clampShut ? 0 : undefined\">\n <aup-activity-container #activityContainer [dynamicHeight]=\"dynamicHeight\"></aup-activity-container>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column}:host>div{overflow:hidden}\n"], dependencies: [{ kind: "component", type: ActivityContainerComponent, selector: "aup-activity-container", inputs: ["dynamicHeight", "animationDuration"] }], animations: [
|
|
11112
|
+
slideDownWhenOpenAnimation
|
|
11113
|
+
] });
|
|
11114
|
+
}
|
|
11115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SlideDownInteractionContextComponent, decorators: [{
|
|
11116
|
+
type: Component,
|
|
11117
|
+
args: [{ selector: "aup-slide-down-interaction-context", providers: [
|
|
11118
|
+
{ provide: INTERACTION_CONTEXT, useExisting: SlideDownInteractionContextComponent }
|
|
11119
|
+
], animations: [
|
|
11120
|
+
slideDownWhenOpenAnimation
|
|
11121
|
+
], template: "<div [@slideDownWhenOpen]=\"getAnimationState()\" (@slideDownWhenOpen.done)=\"onAnimationDone()\" [style.max-height.px]=\"clampShut ? 0 : undefined\">\n <aup-activity-container #activityContainer [dynamicHeight]=\"dynamicHeight\"></aup-activity-container>\n</div>\n\n", styles: [":host{display:flex;flex-direction:column}:host>div{overflow:hidden}\n"] }]
|
|
11122
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
11123
|
+
type: Inject,
|
|
11124
|
+
args: [MAT_TABS_CONFIG]
|
|
11125
|
+
}, {
|
|
11126
|
+
type: Optional
|
|
11127
|
+
}] }]; }, propDecorators: { activityContainerComponent: [{
|
|
11128
|
+
type: ViewChild,
|
|
11129
|
+
args: ["activityContainer", { static: true }]
|
|
11130
|
+
}], dynamicHeight: [{
|
|
11131
|
+
type: Input
|
|
11132
|
+
}], active: [{
|
|
11133
|
+
type: HostBinding,
|
|
11134
|
+
args: ["class.active"]
|
|
11135
|
+
}] } });
|
|
11136
|
+
|
|
10225
11137
|
class InteractionContextTriggerForDirective extends GarbageCollector {
|
|
10226
11138
|
aupInteractionContextTriggerFor;
|
|
10227
11139
|
activityClass;
|
|
@@ -10304,6 +11216,7 @@ class InteractionModule {
|
|
|
10304
11216
|
AlertDialogComponent,
|
|
10305
11217
|
ActivityOutletComponent,
|
|
10306
11218
|
InPlaceInteractionContextComponent,
|
|
11219
|
+
SlideDownInteractionContextComponent,
|
|
10307
11220
|
AddItemInteractionContextComponent,
|
|
10308
11221
|
ActivityActionsComponent,
|
|
10309
11222
|
PopupInteractionContextComponent,
|
|
@@ -10330,8 +11243,6 @@ class InteractionModule {
|
|
|
10330
11243
|
RouterModule,
|
|
10331
11244
|
MatIconModule,
|
|
10332
11245
|
DirectivesModule,
|
|
10333
|
-
FlexModule,
|
|
10334
|
-
GridModule,
|
|
10335
11246
|
ComponentsModule,
|
|
10336
11247
|
FormsModule,
|
|
10337
11248
|
MatInputModule,
|
|
@@ -10351,7 +11262,8 @@ class InteractionModule {
|
|
|
10351
11262
|
InlineActivityTriggerComponent,
|
|
10352
11263
|
ModalActivityTriggerComponent,
|
|
10353
11264
|
AddCardActivityComponent,
|
|
10354
|
-
InlineStringEditorComponent
|
|
11265
|
+
InlineStringEditorComponent,
|
|
11266
|
+
SlideDownInteractionContextComponent] });
|
|
10355
11267
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InteractionModule, providers: [
|
|
10356
11268
|
InteractionService
|
|
10357
11269
|
// {
|
|
@@ -10365,8 +11277,6 @@ class InteractionModule {
|
|
|
10365
11277
|
RouterModule,
|
|
10366
11278
|
MatIconModule,
|
|
10367
11279
|
DirectivesModule,
|
|
10368
|
-
FlexModule,
|
|
10369
|
-
GridModule,
|
|
10370
11280
|
ComponentsModule,
|
|
10371
11281
|
FormsModule,
|
|
10372
11282
|
MatInputModule,
|
|
@@ -10385,8 +11295,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10385
11295
|
RouterModule,
|
|
10386
11296
|
MatIconModule,
|
|
10387
11297
|
DirectivesModule,
|
|
10388
|
-
FlexModule,
|
|
10389
|
-
GridModule,
|
|
10390
11298
|
ComponentsModule,
|
|
10391
11299
|
FormsModule,
|
|
10392
11300
|
MatInputModule,
|
|
@@ -10401,6 +11309,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10401
11309
|
AlertDialogComponent,
|
|
10402
11310
|
ActivityOutletComponent,
|
|
10403
11311
|
InPlaceInteractionContextComponent,
|
|
11312
|
+
SlideDownInteractionContextComponent,
|
|
10404
11313
|
AddItemInteractionContextComponent,
|
|
10405
11314
|
ActivityActionsComponent,
|
|
10406
11315
|
PopupInteractionContextComponent,
|
|
@@ -10438,6 +11347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10438
11347
|
ModalActivityTriggerComponent,
|
|
10439
11348
|
AddCardActivityComponent,
|
|
10440
11349
|
InlineStringEditorComponent,
|
|
11350
|
+
SlideDownInteractionContextComponent,
|
|
10441
11351
|
],
|
|
10442
11352
|
providers: [
|
|
10443
11353
|
InteractionService
|
|
@@ -10508,7 +11418,6 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10508
11418
|
router;
|
|
10509
11419
|
placeRouter;
|
|
10510
11420
|
placeConfig;
|
|
10511
|
-
cdr;
|
|
10512
11421
|
#animate$_accessor_storage = proxify((ValueModel));
|
|
10513
11422
|
get animate$() { return this.#animate$_accessor_storage; }
|
|
10514
11423
|
set animate$(value) { this.#animate$_accessor_storage = value; }
|
|
@@ -10542,12 +11451,11 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10542
11451
|
animationEnabled;
|
|
10543
11452
|
authorised;
|
|
10544
11453
|
notAuthorisedNoticePortal;
|
|
10545
|
-
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet
|
|
11454
|
+
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet) {
|
|
10546
11455
|
super();
|
|
10547
11456
|
this.router = router;
|
|
10548
11457
|
this.placeRouter = placeRouter;
|
|
10549
11458
|
this.placeConfig = placeConfig;
|
|
10550
|
-
this.cdr = cdr;
|
|
10551
11459
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
10552
11460
|
this.parentOutletModel = new MutableValueModel(parentOutlet);
|
|
10553
11461
|
const defaultPlaceAnimationOrder = chain(this.parentOutletModel)
|
|
@@ -10559,7 +11467,7 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10559
11467
|
this.placesInAnimationOrder = chain(this.customPlaceAnimationOrder$)
|
|
10560
11468
|
.otherwise(defaultPlaceAnimationOrder);
|
|
10561
11469
|
this.activePlaceAnimationPosition = this.placesInAnimationOrder
|
|
10562
|
-
.
|
|
11470
|
+
.reduceAll((placesInOrder) => {
|
|
10563
11471
|
let placeIndex = 0;
|
|
10564
11472
|
if (activatePlaceType.value) {
|
|
10565
11473
|
placeIndex = placesInOrder.indexOf(activatePlaceType.value);
|
|
@@ -10713,8 +11621,8 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10713
11621
|
this.onAnimationFinishedJob = undefined;
|
|
10714
11622
|
}
|
|
10715
11623
|
}
|
|
10716
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceOutletComponent, deps: [{ token: i1$
|
|
10717
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: PlaceOutletComponent, selector: "aup-place-outlet", inputs: { animate$: "animate$", animate: "animate", customPlaceAnimationOrder$: ["placeAnimationOrderModel", "customPlaceAnimationOrder$"], customPlaceAnimationOrder: ["placeAnimationOrder", "customPlaceAnimationOrder"] }, outputs: { placeChanged: "placeChanged" }, host: { properties: { "class.authorised": "this.isAuthorised" } }, viewQueries: [{ propertyName: "routerOut", first: true, predicate: ["routeOutlet"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$
|
|
11624
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceOutletComponent, deps: [{ token: i1$5.Router }, { token: PlaceRouter }, { token: AUP_PLACE_CONFIG, optional: true }, { token: AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, optional: true }, { token: PlaceOutletComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11625
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: PlaceOutletComponent, selector: "aup-place-outlet", inputs: { animate$: "animate$", animate: "animate", customPlaceAnimationOrder$: ["placeAnimationOrderModel", "customPlaceAnimationOrder$"], customPlaceAnimationOrder: ["placeAnimationOrder", "customPlaceAnimationOrder"] }, outputs: { placeChanged: "placeChanged" }, host: { properties: { "class.authorised": "this.isAuthorised" } }, viewQueries: [{ propertyName: "routerOut", first: true, predicate: ["routeOutlet"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i1$2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i1$4.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [LEFT_RIGHT_PLACE_ANIMATION] });
|
|
10718
11626
|
}
|
|
10719
11627
|
__decorate([
|
|
10720
11628
|
Proxify(),
|
|
@@ -10735,7 +11643,7 @@ __decorate([
|
|
|
10735
11643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceOutletComponent, decorators: [{
|
|
10736
11644
|
type: Component,
|
|
10737
11645
|
args: [{ selector: 'aup-place-outlet', animations: [LEFT_RIGHT_PLACE_ANIMATION], template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}\n"] }]
|
|
10738
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
11646
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: PlaceRouter }, { type: undefined, decorators: [{
|
|
10739
11647
|
type: Optional
|
|
10740
11648
|
}, {
|
|
10741
11649
|
type: Inject,
|
|
@@ -10749,7 +11657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10749
11657
|
type: SkipSelf
|
|
10750
11658
|
}, {
|
|
10751
11659
|
type: Optional
|
|
10752
|
-
}] }
|
|
11660
|
+
}] }]; }, propDecorators: { animate$: [{
|
|
10753
11661
|
type: Input
|
|
10754
11662
|
}], animate: [{
|
|
10755
11663
|
type: Input
|
|
@@ -10882,7 +11790,7 @@ class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
|
|
|
10882
11790
|
super(router);
|
|
10883
11791
|
}
|
|
10884
11792
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ListPlaceNavComponent, deps: [{ token: PlaceRouter }], target: i0.ɵɵFactoryTarget.Component });
|
|
10885
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ListPlaceNavComponent, selector: "aup-list-place-nav", usesInheritance: true, ngImport: i0, template: "<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n aup-gc #gc=\"aup-gc\"\n [pectinCommand]=\"commandFactory.create(item.place, {disposedWith: gc})\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n", styles: [":host{display:flex;flex-direction:column;--selected-border-color: #838383;--selected-color: inherit;--selected-background: #f1f1f1}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$3.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i3$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: GarbageCollectorDirective, selector: "[aup-gc]", exportAs: ["aup-gc"] }, { kind: "
|
|
11793
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ListPlaceNavComponent, selector: "aup-list-place-nav", usesInheritance: true, ngImport: i0, template: "<mat-nav-list fxFlex>\n <a mat-list-item *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n aup-gc #gc=\"aup-gc\"\n [pectinCommand]=\"commandFactory.create(item.place, {disposedWith: gc})\"\n [class.active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n</mat-nav-list>\n", styles: [":host{display:flex;flex-direction:column;--selected-border-color: #838383;--selected-color: inherit;--selected-background: #f1f1f1}mat-nav-list{padding-top:0}a{border-right:2px solid transparent}a.active{border-right:2px solid var(--selected-border-color);background:var(--selected-background);color:var(--selected-color)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$3.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i3$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: GarbageCollectorDirective, selector: "[aup-gc]", exportAs: ["aup-gc"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
10886
11794
|
}
|
|
10887
11795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ListPlaceNavComponent, decorators: [{
|
|
10888
11796
|
type: Component,
|
|
@@ -10957,7 +11865,7 @@ class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
|
10957
11865
|
this.expanded = !this.expanded;
|
|
10958
11866
|
}
|
|
10959
11867
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SidePlaceNavigationComponent, deps: [{ token: PlaceRouter }], target: i0.ɵɵFactoryTarget.Component });
|
|
10960
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SidePlaceNavigationComponent, selector: "aup-side-place-navigation", inputs: { expanded$: "expanded$", expanded: "expanded" }, host: { properties: { "class.expanded": "this.expanded" } }, queries: [{ propertyName: "navEndTemplate", first: true, predicate: ["navEndTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\">\n <aup-icon matListItemIcon [icon]=\"homeIcon$.value\"></aup-icon>\n <span matListItemTitle class=\"expanded-only\">Menu</span>\n </a>\n <a *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n mat-list-item\n [pectinCommand]=\"commandFactory.create(item.place, {disposedWith: gc})\"\n [activated]=\"item.active\"\n aup-gc #gc=\"aup-gc\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\"\n >\n <aup-icon matListItemIcon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span matListItemTitle class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n", styles: [":host{display:flex;flex-direction:column;--resolved-nav-item-width: var(--nav-width, 56px);--resolved-expanded-width: var(--nav-expanded-width, 235px);--resolved-color: var(--nav-color, rgba(255, 255, 255, .9));--resolved-background-color: var(--nav-background-color, #555);color:var(--resolved-color);background-color:var(--resolved-background-color);width:var(--resolved-nav-item-width);transition:width 125ms linear}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host aup-icon{margin-right:12px}:host>mat-nav-list{flex:1;display:flex;flex-direction:column;padding:0}:host .mat-mdc-list-item,:host .mat-mdc-list-item-icon,:host .mat-mdc-list-item-icon.activated,:host .mdc-list-item__primary-text{color:var(--resolved-color)}:host .mdc-list-item--activated .mdc-list-item__primary-text,:host .mdc-list-item--activated .mat-mdc-list-item-icon{color:var(--resolved-color)}:host .mdc-list-item--activated{background-color:#444}:host *.flip-horizontal{transform:scaleX(-1)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$3.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i3$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i3$3.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i3$3.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: GarbageCollectorDirective, selector: "[aup-gc]", exportAs: ["aup-gc"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }] });
|
|
11868
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SidePlaceNavigationComponent, selector: "aup-side-place-navigation", inputs: { expanded$: "expanded$", expanded: "expanded" }, host: { properties: { "class.expanded": "this.expanded" } }, queries: [{ propertyName: "navEndTemplate", first: true, predicate: ["navEndTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\">\n <aup-icon matListItemIcon [icon]=\"homeIcon$.value\"></aup-icon>\n <span matListItemTitle class=\"expanded-only\">Menu</span>\n </a>\n <a *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n mat-list-item\n [pectinCommand]=\"commandFactory.create(item.place, {disposedWith: gc})\"\n [activated]=\"item.active\"\n aup-gc #gc=\"aup-gc\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\"\n >\n <aup-icon matListItemIcon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span matListItemTitle class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n", styles: [":host{display:flex;flex-direction:column;--resolved-nav-item-width: var(--nav-width, 56px);--resolved-expanded-width: var(--nav-expanded-width, 235px);--resolved-color: var(--nav-color, rgba(255, 255, 255, .9));--resolved-background-color: var(--nav-background-color, #555);color:var(--resolved-color);background-color:var(--resolved-background-color);width:var(--resolved-nav-item-width);transition:width 125ms linear}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host aup-icon{margin-right:12px}:host>mat-nav-list{flex:1;display:flex;flex-direction:column;padding:0}:host .mat-mdc-list-item,:host .mat-mdc-list-item-icon,:host .mat-mdc-list-item-icon.activated,:host .mdc-list-item--with-leading-icon:hover .mdc-list-item__start,:host .mdc-list-item__primary-text{color:var(--resolved-color)}:host .mdc-list-item--activated .mdc-list-item__primary-text,:host .mdc-list-item--activated .mat-mdc-list-item-icon{color:var(--resolved-color)}:host .mdc-list-item:hover{background-color:#444}:host .mdc-list-item:hover .mdc-list-item__primary-text{color:var(--resolved-color)}:host .mdc-list-item--activated{background-color:#444}:host *.flip-horizontal{transform:scaleX(-1)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$3.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i3$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i3$3.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i3$3.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: GarbageCollectorDirective, selector: "[aup-gc]", exportAs: ["aup-gc"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }] });
|
|
10961
11869
|
}
|
|
10962
11870
|
__decorate([
|
|
10963
11871
|
Proxify(),
|
|
@@ -10969,7 +11877,7 @@ __decorate([
|
|
|
10969
11877
|
], SidePlaceNavigationComponent.prototype, "expanded", null);
|
|
10970
11878
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SidePlaceNavigationComponent, decorators: [{
|
|
10971
11879
|
type: Component,
|
|
10972
|
-
args: [{ selector: 'aup-side-place-navigation', template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\">\n <aup-icon matListItemIcon [icon]=\"homeIcon$.value\"></aup-icon>\n <span matListItemTitle class=\"expanded-only\">Menu</span>\n </a>\n <a *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n mat-list-item\n [pectinCommand]=\"commandFactory.create(item.place, {disposedWith: gc})\"\n [activated]=\"item.active\"\n aup-gc #gc=\"aup-gc\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\"\n >\n <aup-icon matListItemIcon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span matListItemTitle class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n", styles: [":host{display:flex;flex-direction:column;--resolved-nav-item-width: var(--nav-width, 56px);--resolved-expanded-width: var(--nav-expanded-width, 235px);--resolved-color: var(--nav-color, rgba(255, 255, 255, .9));--resolved-background-color: var(--nav-background-color, #555);color:var(--resolved-color);background-color:var(--resolved-background-color);width:var(--resolved-nav-item-width);transition:width 125ms linear}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host aup-icon{margin-right:12px}:host>mat-nav-list{flex:1;display:flex;flex-direction:column;padding:0}:host .mat-mdc-list-item,:host .mat-mdc-list-item-icon,:host .mat-mdc-list-item-icon.activated,:host .mdc-list-item__primary-text{color:var(--resolved-color)}:host .mdc-list-item--activated .mdc-list-item__primary-text,:host .mdc-list-item--activated .mat-mdc-list-item-icon{color:var(--resolved-color)}:host .mdc-list-item--activated{background-color:#444}:host *.flip-horizontal{transform:scaleX(-1)}\n"] }]
|
|
11880
|
+
args: [{ selector: 'aup-side-place-navigation', template: "<mat-nav-list>\n <a mat-list-item (click)=\"toggleMenu()\">\n <aup-icon matListItemIcon [icon]=\"homeIcon$.value\"></aup-icon>\n <span matListItemTitle class=\"expanded-only\">Menu</span>\n </a>\n <a *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n mat-list-item\n [pectinCommand]=\"commandFactory.create(item.place, {disposedWith: gc})\"\n [activated]=\"item.active\"\n aup-gc #gc=\"aup-gc\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\"\n >\n <aup-icon matListItemIcon *ngIf=\"getNavigationFace(item.place).icon()\" [icon]=\"getNavigationFace(item.place).icon()\"></aup-icon>\n <span matListItemTitle class=\"expanded-only\">{{getNavigationFace(item.place).text()}}</span>\n </a>\n <span [style.flex]=\"1\"></span>\n <ng-container *ngIf=\"navEndTemplate\" [ngTemplateOutlet]=\"navEndTemplate\"></ng-container>\n</mat-nav-list>\n", styles: [":host{display:flex;flex-direction:column;--resolved-nav-item-width: var(--nav-width, 56px);--resolved-expanded-width: var(--nav-expanded-width, 235px);--resolved-color: var(--nav-color, rgba(255, 255, 255, .9));--resolved-background-color: var(--nav-background-color, #555);color:var(--resolved-color);background-color:var(--resolved-background-color);width:var(--resolved-nav-item-width);transition:width 125ms linear}:host.expanded{width:var(--resolved-expanded-width);max-width:var(--resolved-expanded-width)}:host aup-icon{margin-right:12px}:host>mat-nav-list{flex:1;display:flex;flex-direction:column;padding:0}:host .mat-mdc-list-item,:host .mat-mdc-list-item-icon,:host .mat-mdc-list-item-icon.activated,:host .mdc-list-item--with-leading-icon:hover .mdc-list-item__start,:host .mdc-list-item__primary-text{color:var(--resolved-color)}:host .mdc-list-item--activated .mdc-list-item__primary-text,:host .mdc-list-item--activated .mat-mdc-list-item-icon{color:var(--resolved-color)}:host .mdc-list-item:hover{background-color:#444}:host .mdc-list-item:hover .mdc-list-item__primary-text{color:var(--resolved-color)}:host .mdc-list-item--activated{background-color:#444}:host *.flip-horizontal{transform:scaleX(-1)}\n"] }]
|
|
10973
11881
|
}], ctorParameters: function () { return [{ type: PlaceRouter }]; }, propDecorators: { expanded$: [{
|
|
10974
11882
|
type: Input
|
|
10975
11883
|
}], expanded: [{
|
|
@@ -10987,7 +11895,7 @@ class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
|
10987
11895
|
super(router);
|
|
10988
11896
|
}
|
|
10989
11897
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TabbedPlaceNavigationComponent, deps: [{ token: PlaceRouter }], target: i0.ɵɵFactoryTarget.Component });
|
|
10990
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TabbedPlaceNavigationComponent, selector: "aup-tabbed-place-navigation", usesInheritance: true, ngImport: i0, template: "<nav mat-tab-nav-bar [tabPanel]=\"tabPanel\">\n <ng-content select=\"[nav-start]\"></ng-content>\n <a mat-tab-link *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n aup-gc #gc=\"aup-gc\"\n [pectinCommand]=\"commandFactory.create(item.place, {disposedWith: gc})\"\n [active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n <ng-content select=\"[nav-end]\"></ng-content>\n</nav>\n<mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n", styles: [":host{display:block}div.place-holder{border:1px solid green}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$
|
|
11898
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TabbedPlaceNavigationComponent, selector: "aup-tabbed-place-navigation", usesInheritance: true, ngImport: i0, template: "<nav mat-tab-nav-bar [tabPanel]=\"tabPanel\">\n <ng-content select=\"[nav-start]\"></ng-content>\n <a mat-tab-link *ngFor=\"let item of menuItems.value; trackBy: trackByPlaceDef\"\n aup-gc #gc=\"aup-gc\"\n [pectinCommand]=\"commandFactory.create(item.place, {disposedWith: gc})\"\n [active]=\"item.active\"\n [matTooltip]=\"getNavigationFace(item.place).tooltip()\">\n <aup-command-face [faces]=\"[getNavigationFace(item.place)]\"></aup-command-face>\n </a>\n <ng-content select=\"[nav-end]\"></ng-content>\n</nav>\n<mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n", styles: [":host{display:block}div.place-holder{border:1px solid green}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$2.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "animationDuration"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i3$2.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i3$2.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex", "active", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "directive", type: GarbageCollectorDirective, selector: "[aup-gc]", exportAs: ["aup-gc"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
10991
11899
|
}
|
|
10992
11900
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TabbedPlaceNavigationComponent, decorators: [{
|
|
10993
11901
|
type: Component,
|
|
@@ -11010,7 +11918,6 @@ class PlaceModule {
|
|
|
11010
11918
|
MatTooltipModule,
|
|
11011
11919
|
MatIconModule,
|
|
11012
11920
|
DirectivesModule,
|
|
11013
|
-
FlexModule,
|
|
11014
11921
|
ComponentsModule,
|
|
11015
11922
|
PortalModule,
|
|
11016
11923
|
MatCardModule], exports: [PlaceOutletComponent,
|
|
@@ -11027,7 +11934,6 @@ class PlaceModule {
|
|
|
11027
11934
|
MatTooltipModule,
|
|
11028
11935
|
MatIconModule,
|
|
11029
11936
|
DirectivesModule,
|
|
11030
|
-
FlexModule,
|
|
11031
11937
|
ComponentsModule,
|
|
11032
11938
|
PortalModule,
|
|
11033
11939
|
MatCardModule] });
|
|
@@ -11045,7 +11951,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11045
11951
|
MatTooltipModule,
|
|
11046
11952
|
MatIconModule,
|
|
11047
11953
|
DirectivesModule,
|
|
11048
|
-
FlexModule,
|
|
11049
11954
|
ComponentsModule,
|
|
11050
11955
|
PortalModule,
|
|
11051
11956
|
MatCardModule
|
|
@@ -11135,60 +12040,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11135
12040
|
}]
|
|
11136
12041
|
}] });
|
|
11137
12042
|
|
|
11138
|
-
const slideDownOnEnterDef = style({
|
|
11139
|
-
opacity: 0,
|
|
11140
|
-
'height': '0',
|
|
11141
|
-
paddingTop: '0',
|
|
11142
|
-
paddingBottom: '0'
|
|
11143
|
-
});
|
|
11144
|
-
// TODO: params aren't getting customised in the view. Need to figure out the correct approach.
|
|
11145
|
-
const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
|
|
11146
|
-
transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
11147
|
-
transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
11148
|
-
]);
|
|
11149
|
-
const slideLeftOnEnterDef = style({
|
|
11150
|
-
opacity: 0,
|
|
11151
|
-
'width': '0',
|
|
11152
|
-
paddingLeft: '0',
|
|
11153
|
-
paddingRight: '0'
|
|
11154
|
-
});
|
|
11155
|
-
const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
|
|
11156
|
-
transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
11157
|
-
transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
|
|
11158
|
-
]);
|
|
11159
|
-
const ZERO_WIDTH = {
|
|
11160
|
-
opacity: 0,
|
|
11161
|
-
width: '0',
|
|
11162
|
-
paddingLeft: '0',
|
|
11163
|
-
paddingRight: '0',
|
|
11164
|
-
};
|
|
11165
|
-
const ZERO_HEIGHT = {
|
|
11166
|
-
opacity: 0,
|
|
11167
|
-
height: '0',
|
|
11168
|
-
paddingTop: '0',
|
|
11169
|
-
paddingBottom: '0',
|
|
11170
|
-
};
|
|
11171
|
-
const slideDownAndRightOnEnterAnimation = trigger('slideDownAndRightOnEnter', [
|
|
11172
|
-
transition(':enter', [
|
|
11173
|
-
style({ overflow: "hidden", whiteSpace: "nowrap", ...ZERO_WIDTH, ...ZERO_HEIGHT }),
|
|
11174
|
-
animate('{{duration}}')
|
|
11175
|
-
], { params: { duration: '100ms' } }),
|
|
11176
|
-
transition(':leave', [
|
|
11177
|
-
style({ overflow: "hidden", whiteSpace: "nowrap" }),
|
|
11178
|
-
group([
|
|
11179
|
-
animate('{{duration}}', style(ZERO_HEIGHT)),
|
|
11180
|
-
// Hack: 100ms is too quick as it animates from * - 0 as we only see it animate the width is greater than the parent.
|
|
11181
|
-
// Not sure how to animate from * to natural new width of parent. This hack won't work for text that's just a little
|
|
11182
|
-
// bit wider than the parent as it'll fall within the parent bounds very early in the animation cycle.
|
|
11183
|
-
animate('300ms', style(ZERO_WIDTH)),
|
|
11184
|
-
])
|
|
11185
|
-
], { params: { duration: '100ms' } })
|
|
11186
|
-
]);
|
|
11187
|
-
|
|
11188
12043
|
/**
|
|
11189
12044
|
* @file Automatically generated by barrelsby.
|
|
11190
12045
|
*/
|
|
11191
12046
|
|
|
12047
|
+
class ResizeObserverDirective extends DisposableComponent {
|
|
12048
|
+
aupOnResize = new EventEmitter();
|
|
12049
|
+
elementRef = this.inject(ElementRef);
|
|
12050
|
+
ngZone = this.inject(NgZone);
|
|
12051
|
+
_bounds$ = new MutableValueModel();
|
|
12052
|
+
ngAfterViewInit() {
|
|
12053
|
+
const element = this.elementRef.nativeElement;
|
|
12054
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
12055
|
+
this.ngZone.run(() => this._updateBounds());
|
|
12056
|
+
});
|
|
12057
|
+
ro.observe(element);
|
|
12058
|
+
this.onDispose(() => ro.disconnect());
|
|
12059
|
+
setTimeout(() => this._updateBounds());
|
|
12060
|
+
}
|
|
12061
|
+
get bounds$() {
|
|
12062
|
+
return this._bounds$.readonly$;
|
|
12063
|
+
}
|
|
12064
|
+
_updateBounds() {
|
|
12065
|
+
this._bounds$.value = Bounds.ofElement(this.elementRef.nativeElement);
|
|
12066
|
+
this.aupOnResize.emit(this._bounds$.value);
|
|
12067
|
+
}
|
|
12068
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeObserverDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
12069
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ResizeObserverDirective, isStandalone: true, selector: "[aupOnResize]", outputs: { aupOnResize: "aupOnResize" }, usesInheritance: true, ngImport: i0 });
|
|
12070
|
+
}
|
|
12071
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeObserverDirective, decorators: [{
|
|
12072
|
+
type: Directive,
|
|
12073
|
+
args: [{
|
|
12074
|
+
selector: "[aupOnResize]",
|
|
12075
|
+
standalone: true
|
|
12076
|
+
}]
|
|
12077
|
+
}], propDecorators: { aupOnResize: [{
|
|
12078
|
+
type: Output
|
|
12079
|
+
}] } });
|
|
12080
|
+
|
|
11192
12081
|
/**
|
|
11193
12082
|
* @file Automatically generated by barrelsby.
|
|
11194
12083
|
*/
|
|
@@ -11279,7 +12168,7 @@ class DialogInteractionContextFactory extends ModalInteractionContextFactory {
|
|
|
11279
12168
|
};
|
|
11280
12169
|
return new DialogInteractionContext(identifier, api, this.dialogService, config);
|
|
11281
12170
|
}
|
|
11282
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, deps: [{ token: i1$
|
|
12171
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, deps: [{ token: i1$7.MatDialog }, { token: DIALOG_INTERACTION_SERVICE_DEFAULTS, optional: true }, { token: MAT_DIALOG_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11283
12172
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, providedIn: 'root' });
|
|
11284
12173
|
}
|
|
11285
12174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, decorators: [{
|
|
@@ -11287,12 +12176,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11287
12176
|
args: [{
|
|
11288
12177
|
providedIn: 'root'
|
|
11289
12178
|
}]
|
|
11290
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12179
|
+
}], ctorParameters: function () { return [{ type: i1$7.MatDialog }, { type: i1$7.MatDialogConfig, decorators: [{
|
|
11291
12180
|
type: Optional
|
|
11292
12181
|
}, {
|
|
11293
12182
|
type: Inject,
|
|
11294
12183
|
args: [DIALOG_INTERACTION_SERVICE_DEFAULTS]
|
|
11295
|
-
}] }, { type: i1$
|
|
12184
|
+
}] }, { type: i1$7.MatDialogConfig, decorators: [{
|
|
11296
12185
|
type: Optional
|
|
11297
12186
|
}, {
|
|
11298
12187
|
type: Inject,
|
|
@@ -11412,13 +12301,14 @@ class PlaceGuard {
|
|
|
11412
12301
|
}
|
|
11413
12302
|
// @Trace()
|
|
11414
12303
|
async canActivate(activatedRoute, state) {
|
|
12304
|
+
await this.placeRouter.waitUntilRouterReady();
|
|
11415
12305
|
if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
|
|
11416
12306
|
const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
|
|
11417
12307
|
if (placeDefinition.authenticate) {
|
|
11418
12308
|
await this.placeRouter.authService.waitUntilAuthenticationReady();
|
|
11419
12309
|
const authenticated = this.authService.isAuthenticated();
|
|
11420
12310
|
if (!authenticated) {
|
|
11421
|
-
const redirect = this.authService.getAuthenticationFailureRedirect(activatedRoute, state);
|
|
12311
|
+
const redirect = await this.authService.getAuthenticationFailureRedirect(activatedRoute, state);
|
|
11422
12312
|
// const nextPlaceDef = this.getPlaceDefinition(redirect);
|
|
11423
12313
|
if (redirect.requiresAuthentication()) {
|
|
11424
12314
|
lang.illegalState(`onAuthenticationFailure hook returned place ${redirect.toDebugString()} that requires authentication.`);
|
|
@@ -11427,7 +12317,7 @@ class PlaceGuard {
|
|
|
11427
12317
|
}
|
|
11428
12318
|
await this.authService.waitUntilAuthorisationReadyFor(placeDefinition);
|
|
11429
12319
|
if (!this.authService.isAuthorised(placeDefinition)) {
|
|
11430
|
-
const nextRedirect = this.findBestAuthenticatedAlternative(placeDefinition, activatedRoute);
|
|
12320
|
+
const nextRedirect = await this.findBestAuthenticatedAlternative(placeDefinition, activatedRoute);
|
|
11431
12321
|
return this.createUrlTree(nextRedirect);
|
|
11432
12322
|
}
|
|
11433
12323
|
}
|
|
@@ -11471,7 +12361,7 @@ class PlaceGuard {
|
|
|
11471
12361
|
return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);
|
|
11472
12362
|
}
|
|
11473
12363
|
}
|
|
11474
|
-
findBestAuthenticatedAlternative(placeDefinition, activatedRoute) {
|
|
12364
|
+
async findBestAuthenticatedAlternative(placeDefinition, activatedRoute) {
|
|
11475
12365
|
let currentPlace = placeDefinition;
|
|
11476
12366
|
while (!currentPlace.isRoot()) {
|
|
11477
12367
|
currentPlace = currentPlace.parent;
|
|
@@ -11481,7 +12371,7 @@ class PlaceGuard {
|
|
|
11481
12371
|
}
|
|
11482
12372
|
}
|
|
11483
12373
|
// Couldn't find an authorised ancestor so we check if there are router level defined alternatives
|
|
11484
|
-
const alternativeRoutes = this.placeRouter.getAuthorisationFailureRedirectOptions(activatedRoute.component);
|
|
12374
|
+
const alternativeRoutes = await this.placeRouter.getAuthorisationFailureRedirectOptions(activatedRoute.component);
|
|
11485
12375
|
if (alternativeRoutes.length < 1) {
|
|
11486
12376
|
return lang.illegalState(`onAuthorisationFailure hook didn't return any alternate places`);
|
|
11487
12377
|
}
|
|
@@ -11524,13 +12414,13 @@ class PlaceGuard {
|
|
|
11524
12414
|
return next();
|
|
11525
12415
|
}
|
|
11526
12416
|
}
|
|
11527
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, deps: [{ token: i1$
|
|
12417
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, deps: [{ token: i1$5.Router }, { token: UrlService }, { token: PlaceRouter }, { token: PlaceHistory }, { token: InteractionService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11528
12418
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, providedIn: 'root' });
|
|
11529
12419
|
}
|
|
11530
12420
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, decorators: [{
|
|
11531
12421
|
type: Injectable,
|
|
11532
12422
|
args: [{ providedIn: 'root' }]
|
|
11533
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12423
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: UrlService }, { type: PlaceRouter }, { type: PlaceHistory }, { type: InteractionService }, { type: i0.Injector }]; } });
|
|
11534
12424
|
|
|
11535
12425
|
var Formatter;
|
|
11536
12426
|
(function (Formatter) {
|
|
@@ -11564,69 +12454,74 @@ var Formatter;
|
|
|
11564
12454
|
Formatter.BOOLEAN = new BooleanType();
|
|
11565
12455
|
})(Formatter || (Formatter = {}));
|
|
11566
12456
|
|
|
11567
|
-
function installMechanics(parameterDef
|
|
11568
|
-
|
|
11569
|
-
|
|
11570
|
-
|
|
11571
|
-
|
|
11572
|
-
|
|
11573
|
-
|
|
11574
|
-
|
|
11575
|
-
|
|
11576
|
-
|
|
11577
|
-
|
|
11578
|
-
|
|
11579
|
-
|
|
11580
|
-
|
|
11581
|
-
|
|
11582
|
-
|
|
11583
|
-
|
|
11584
|
-
|
|
11585
|
-
|
|
11586
|
-
|
|
11587
|
-
|
|
11588
|
-
|
|
11589
|
-
|
|
11590
|
-
|
|
11591
|
-
|
|
11592
|
-
|
|
11593
|
-
|
|
11594
|
-
|
|
11595
|
-
|
|
11596
|
-
|
|
11597
|
-
|
|
11598
|
-
|
|
11599
|
-
|
|
11600
|
-
|
|
11601
|
-
|
|
11602
|
-
|
|
11603
|
-
|
|
11604
|
-
|
|
11605
|
-
|
|
11606
|
-
|
|
11607
|
-
|
|
11608
|
-
|
|
11609
|
-
|
|
11610
|
-
|
|
11611
|
-
}
|
|
12457
|
+
// function installMechanics<M extends HasValue<any>>(parameterDef: ParameterDefinition<any>, prototype: object, propertyKey: string | symbol, tagPrefix: string) {
|
|
12458
|
+
//
|
|
12459
|
+
// Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12460
|
+
//
|
|
12461
|
+
// function getMechanics(instance: M, propertyName: string | symbol) {
|
|
12462
|
+
// const key = `__mechanics_${propertyName.toString()}`;
|
|
12463
|
+
// if (!instance[key]) {
|
|
12464
|
+
// const backingModel = parameterDef.createBackingModel();
|
|
12465
|
+
// instance[key] = {
|
|
12466
|
+
// backingModel: backingModel,
|
|
12467
|
+
// binding: null as Binding<any, any>
|
|
12468
|
+
// };
|
|
12469
|
+
// const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
|
|
12470
|
+
// DebugContext.getOrCreate(instance[key].backingModel).tag(tag);
|
|
12471
|
+
// }
|
|
12472
|
+
// return instance[key];
|
|
12473
|
+
// }
|
|
12474
|
+
//
|
|
12475
|
+
// Object.defineProperty(prototype, propertyKey, {
|
|
12476
|
+
// get: function() {
|
|
12477
|
+
// return getMechanics(this, propertyKey).backingModel;
|
|
12478
|
+
// },
|
|
12479
|
+
// set: function(userModel: M) {
|
|
12480
|
+
// const mechanics = getMechanics(this, propertyKey);
|
|
12481
|
+
// // This handles the scenario where we want to push an existing value model (such as a form model)
|
|
12482
|
+
// // to and from the route.
|
|
12483
|
+
// if (mechanics.binding) {
|
|
12484
|
+
// mechanics.binding.dispose();
|
|
12485
|
+
// }
|
|
12486
|
+
// if (userModel) {
|
|
12487
|
+
// mechanics.binding = new Binding(mechanics.backingModel, userModel, {
|
|
12488
|
+
// toLeft: Functions.identity,
|
|
12489
|
+
// toRight: Functions.identity
|
|
12490
|
+
// });
|
|
12491
|
+
// if (parameterDef.isEmptyValue(userModel.value)) {
|
|
12492
|
+
// // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
|
|
12493
|
+
// mechanics.binding.writeRight(); // push the visit into the user model;
|
|
12494
|
+
// } else {
|
|
12495
|
+
// if (!parameterDef.isEmptyValue(mechanics.backingModel.value)) {
|
|
12496
|
+
// console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');
|
|
12497
|
+
// }
|
|
12498
|
+
// mechanics.binding.writeLeft(); // push the user model into the visit
|
|
12499
|
+
// }
|
|
12500
|
+
// }
|
|
12501
|
+
// }
|
|
12502
|
+
// });
|
|
12503
|
+
// }
|
|
11612
12504
|
function RouteId(formatter, options) {
|
|
11613
12505
|
return (prototype, propertyKey) => {
|
|
11614
12506
|
const parameterDef = new ParameterDefinition.RouteId(propertyKey.toString(), options, formatter);
|
|
11615
|
-
installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
|
|
12507
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
|
|
12508
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
11616
12509
|
};
|
|
11617
12510
|
}
|
|
11618
12511
|
function VisitParameter(options) {
|
|
11619
12512
|
const opts = Opts.get(options);
|
|
11620
12513
|
return (prototype, propertyKey) => {
|
|
11621
12514
|
const parameterDef = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
|
|
11622
|
-
|
|
12515
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12516
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@VisitParameter');
|
|
11623
12517
|
};
|
|
11624
12518
|
}
|
|
11625
12519
|
function VisitParameterList(options) {
|
|
11626
12520
|
const opts = Opts.get(options);
|
|
11627
12521
|
return (prototype, propertyKey) => {
|
|
11628
12522
|
const parameterDef = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
|
|
11629
|
-
|
|
12523
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12524
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@VisitParameterList');
|
|
11630
12525
|
};
|
|
11631
12526
|
}
|
|
11632
12527
|
|
|
@@ -11720,5 +12615,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11720
12615
|
* Generated bundle index. Do not edit.
|
|
11721
12616
|
*/
|
|
11722
12617
|
|
|
11723
|
-
export { ACTIVITY_DATA, ALERT_CONFIG, AUP_PLACE_CONFIG, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractCardContainerComponent, AbstractConfirmDialogComponent, AbstractDialogComponent, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddCardActivityComponent, AddItemInteractionContextComponent, Alert, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent,
|
|
12618
|
+
export { ACTIVITY_DATA, ALERT_CONFIG, AUP_PLACE_CONFIG, AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractCardContainerComponent, AbstractCellRenderer, AbstractConfirmDialogComponent, AbstractDialogComponent, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddCardActivityComponent, AddItemInteractionContextComponent, Alert, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellFooterPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnManager, ColumnModel, ColumnOrderManager, ColumnTemplateDirective, ColumnTextSearchFormatter, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmThenExecuteDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControlsComponent, EditSession, EditorControlColumnModel, EmptyStateComponent, EnableCellTextSearch, EventCleanUpSession, FOOTER_CELL_RENDERER_PORTAL, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, FooterRowModel, Formatter, GarbageCollectorDirective, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, INTERACTION_CONTEXT, INTERACTION_CONTEXT_PROVIDER, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextTriggerForDirective, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, Keys, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, LoadableComponent, LoadingContainerComponent, MarkdownComponent, MarkdownService, ModalActivityTriggerComponent, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceAuthService, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, ResizeObserverDirective, RouteId, ScrollContainerComponent, SearchInputComponent, SectionHeaderComponent, SelectInputActivity, SelectInputComponent, SelectionCellComponent, SelectionColumnModel, SelectionHeaderCellComponent, SeparatorComponent, SidePlaceNavigationComponent, SlideDownInteractionContextComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableBodyComponent, TableCellComponent, TableComponent, TableFilterModel, TableFooterRow, TableHeaderCellComponent, TableModel, TableMoreMenuComponent, TableMoreMenuPopupComponent, TableRowAttributesDirective, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, TextSearchContext, ToolBarComponent, Track, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSegment, VisitSegmentSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, markdownPillExtension, slideDownAndRightOnEnterAnimation, slideDownOnEnterAnimation, slideDownWhenOpenAnimation, slideRightOnEnterAnimation, treeNodeDecorator };
|
|
11724
12619
|
//# sourceMappingURL=coolon-angular-ui-powerups.mjs.map
|